diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..d8aab193465970f84d00fdcb8d3cb8c45d02f11d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,8 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +justdanceonline-main/node_modules/geoip-lite/data/geoip-city-names.dat filter=lfs diff=lfs merge=lfs -text +justdanceonline-main/node_modules/geoip-lite/data/geoip-city.dat filter=lfs diff=lfs merge=lfs -text +justdanceonline-main/node_modules/geoip-lite/data/geoip-city6.dat filter=lfs diff=lfs merge=lfs -text +justdanceonline-main/node_modules/geoip-lite/data/geoip-country.dat filter=lfs diff=lfs merge=lfs -text +justdanceonline-main/node_modules/geoip-lite/data/geoip-country6.dat filter=lfs diff=lfs merge=lfs -text diff --git a/justdanceonline-main/.env b/justdanceonline-main/.env new file mode 100644 index 0000000000000000000000000000000000000000..88e6fb877d43943e81e217df147c9dd3db8f1feb --- /dev/null +++ b/justdanceonline-main/.env @@ -0,0 +1,22 @@ +NODE_ENV=prod + +server_js=jdcs +server_url=localhost +server_version=2.1.0 + +connect_to_mongodb=true + +log_folder=logs +log_file=error.log +log_auth_file=unauthorized.log +log_debug_file=debug.log +log_dev_file=dev.log + +maps_folder=./maps +maps_block_folder=./maps_blocks + +dev_debug=true + +auth_checkPlatformType=false + +port=1300 diff --git a/justdanceonline-main/.gitignore b/justdanceonline-main/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ec019cc44899f6433c929c83d684e5057ee558a0 --- /dev/null +++ b/justdanceonline-main/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +tmp/tokens.json +settings/jd/jd_topPlayedSongs.json +.env +logs/ \ No newline at end of file diff --git a/justdanceonline-main/README.md b/justdanceonline-main/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d9d93566455e3c370fb07512793ab92e46a07df1 --- /dev/null +++ b/justdanceonline-main/README.md @@ -0,0 +1,37 @@ +# justdancebest (JDCS) +My version of Just Dance Custom Server API, used for Just Dance Best, I worked on up to June 2021. + +**JDCS (Just Dance Custom Service)** is a mock-up of **Just Dance Unlimited (JMCS)** servers by Ubisoft. + +**Just Dance Unlimited** is a online-subscription service created by Ubisoft back in 2015 for Just Dance 2016-2021 and on for Xbox One, Xbox Series, PS4, PS5, Wii U, Nintendo Switch, PC and Google Stadia. + +## Requirements +- [Node.js](https://nodejs.org/) +- A server to host (duh) +## How to install + +- Use `git clone https://github.com/devvjs/justdanceonline.git` or download the repo as a ZIP file directly. +- Once you are done, go into `jdcs` folder and run `npm i` to install all packages that are required. +- After that, you can run the server by `node jdcs.js`. + +### Configuration +There are 3 types of configuration in Just Dance Best. +- **Local Settings**, where all local JSONs are being returned +- **Settings**, where all server/game configurations are stored +- **Environment file** where the server's main config such as maps folder, server port are in +- **JDCS object** in jdcs.js, where all UbiServices and official JMCS server urls are in. + +## Admin Panel +**JDCS** comes with a free-easy to access admin panel along with itself. In this admin panel, we have scripts for you to control your server easily. +- Add/edit songs +- Add/edit aliases +- View your CDN files +- Make developer requests to access the server with no credientials + +and more! + +## License +There is no license for this project currently. + +#### Discord server +[Join our Discord server!](https://discord.gg/devd) diff --git a/justdanceonline-main/jdcs.js b/justdanceonline-main/jdcs.js new file mode 100644 index 0000000000000000000000000000000000000000..d0a52961b1faf815167d9b4ef8fa93d1fe81c91a --- /dev/null +++ b/justdanceonline-main/jdcs.js @@ -0,0 +1,500 @@ +// Just Dance Best Source Code (version 2.5) +// This file was created on April 24, 2021 10:23 PM + +// -- Modules + + // Global + const express = require("express"), + app = express(), + axios = require("axios"), + mongoose = require("mongoose"), + chalk = require("chalk"), + expressip = require('express-ip'), + md5Dir = require("md5-dir") + fs = require("fs") + + // Local + const basicFunc = require("./scripts/modules/basicFunc") + +// -- + + +// -- Mongoose DB connection +if (process.env.connect_to_mongodb === "true") { + mongoose.connect("mongodb://localhost/jdbestDatabase", {useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true}) + const db = mongoose.connection + db.on("error", (error) => { + console.error(error) + }) + db.on("open", () => { + basicFunc.debugLog("[mongoDB] Connected to database /jdbestDatabase") + }) +} +else basicFunc.debugLog("[mongoDB] Can't connect to database since connect_to_mongodb is false.", "yellow") +// -- + + +// -- JDCS +// The main module of the game. It is responsible for creating modules, configurations, +// maintaining the game state, as well as handling most of the server communication. +// Stable stuff goes into .env while configurations that can change at any moment are stored in here. + let jdcs = { + port: process.env.port, // Server port + server_url: "jdcs-prod.justdancebest.tk", + server_protocol: "https", + serverLanguage: "en", // Default language of the server + // Server status codes + statusCodes: { + banned: 401, + invalidticket: 401, + invalidskuid: 400, + missingheader: 403, + missingdata: 400, + servererror: 500, + notfound: 404 + }, + // Server URLs + urls: { + // JMCS JDU servers + jmcs: { + prod: "jmcs-prod.just-dance.com", + uat: "jmcs-uat.just-dance.com", + lt: "jmcs-lt.just-dance.com", + cert: "jmcs-cert.just-dance.com", + staging: "jmcs-staging.just-dance.com" + }, + jmcschn: { + prod: "prod-ws.jdcn.ubisoft.cn" + }, + // UbiServices + ubiservices: { + prod: "public-ubiservices.ubi.com", + uat: "uat-ubiservices.uplaypc.ubisoft.cn", + lt: "lt-public-ubiservices.ubi.com", + cert: "cert2-public-ubiservices.ubi.com", + staging: "public-ubiservices.ubi.com" + }, + // JDSkylight, custom CDN + jdskylight: { + prod: "public-cdn.justdancebest.tk" + }, + jdbest_cdn: { + url: "jdbest-cdn.justdancebest.tk" + } + }, + // Ticket Platform Types + platformTypes: { + orbis: "psn", + ps4: "psn", + xone: "xbl", + wiiu: "wiiu", + pc: "uplay", + nx: "switch" + }, + // Sessions + sessions: { + mapsFolderMD5: md5Dir.sync(process.env.maps_folder), // MD5 of maps folder. + sessionTimeLimit: 1200000, // The time limit of user's inactive time. + content_auth_expiration: 3600 // 1 hour. + }, + // Tickets + tickets: { + jmcs: "", // Global JMCS is currently disabled due to our accounts getting disabled. + jmcsCHN: basicFunc.generateJmcsTicket("jmcschn") // Generate China ticket to access JMCS China. + }, + // Other + skus: basicFunc.getSetting("skus"), // All available skuIds + envs: ["prod", "dev"] // All available server environments + } + exports.jdcs = jdcs // Export server settings for other scripts. +// -- + + + +// -- MIDDLEWARES +app.use(expressip().getIpInfoMiddleware) // Receiving user information by IP. +app.use(express.static("static")) // Make static folder public for access. +app.use(express.json()) +// -- + + +// Create required files that are ignored in environment file. +if (!fs.existsSync("./settings/jd/jd_topPlayedSongs.json")) { + fs.writeFileSync("./settings/jd/jd_topPlayedSongs.json", JSON.stringify({})) +} + + + +// CurrentUsers is an object for keeping all players that are connected. +let currentUsers = { + players: {}, + userCount: 0 +}; +exports.currentUsers = currentUsers + + +// - authenticateJMCS is used for checking user's headers to see if they are valid on JMCS. +// This is useful to avoid stealing files outside the game. +const authenticateJDCS = function async(req, res, next) { + + // Read required headers. + const authorization = req.header("authorization"); + const skuId = req.header("x-skuid"); + const userAgent = req.header("user-agent"); + + // Server boosters JSON file. + let serverBoostersJSON = basicFunc.getSetting("serverBoosters") + + + + // -- Update userCount of currentUsers + currentUsers.userCount = Object.keys(currentUsers.players).length + + + // -- If the skuId got isDev tag in skus or x-developer-acc (the header that bypasses all checks) header exists, pass the user without any check and set req.isDev + if (skuId && jdcs.skus[skuId] && jdcs.skus[skuId]["isDev"] || req.header("x-developer-acc")) { + res.profileData = { + nameOnPlatform: req.ipInfo.ip, // Assign dev Ip as nameOnPlatform. + sid: "dev" + } + basicFunc.debugLog(`[authenticateJDCS] Dev access received ${req.originalUrl}, ${req.header("x-skuid")}`) + basicFunc.writeLog("dev", `${new Date().toISOString()} ${req.ipInfo.ip} ${req.originalUrl} ${req.header("x-skuid")} ${JSON.stringify(req.body)}\n\n`) + req.isDev = true + next() + } + // -- + + + // -- If authorization is missing. + else if (!authorization) { + res.set("WWW-Authenticate", "Ubi_v1") // Set response WWW-Authenticate header. + return res.sendStatus(basicFunc.getStatusCode("missingHeader")) // Send missingHeader status back. + } + // If skuId is missing. + else if (!skuId) { + return res.sendStatus(basicFunc.getStatusCode("missingHeader")) // Send missingHeader status back. + } + // -- + + + // INIT + // If all required data is given, pass the user for security and data check. + // If the user passes, add them to currentUsers. If user is in currentUsers already, it does not + // Check anything, the functions at the end will check their info and update them. + // Developers do not pass this check. + if (authorization && skuId && !req.isDev) { + + // Decode Ubi_v1 ticket to read user's session ID, if the result is null, send invalidTicket status. + let ubiV1header = basicFunc.getUbiV1Header(authorization) + if (ubiV1header == null) { // If ubiV1 header is null or invalid, don't pass the user. + basicFunc.writeLog("unauthorized", `${new Date().toISOString()} ${req.headers['x-forwarded-for'] || req.connection.remoteAddress}${req.originalUrl} ${req.header("x-skuid")} ${JSON.stringify(req.body)}\n[INVALID TICKET]\n`) + basicFunc.debugLog(`[authenticateJDCS] Invalid ticket, not passing.`) + return res.sendStatus(basicFunc.getStatusCode("invalidTicket")); + } + + + // checkSkuId is a function that checks if client's skuId is valid or not, if skuId is invalid, it doesn't pass the client. + function checkSkuId(skuId) { + if (jdcs.skus[skuId] && ubiV1header.aid === jdcs.skus[skuId].appId) return true + else { + //basicFunc.debugLog(`[authenticateJDCS] User's skuId does not exist or appId does not equal skuId appId.`) + return false + } + } + + + // checkPlatformType returns the required platformType by reading skuId. + function checkPlatformType(platformType) { + if (process.env.checkPlatformType === "true") { + if (platformType === jdcs.platformTypes[skuId.split("-")[1]]) return true + } + else return true + } + + + + // createSessions checks the client's information, requests UbiServices data and adds them to currentUsers object. + async function createSessions(sessionId) { + + // Do GET on /v3/profiles/sessions on UbiServices to receive user's information. + const ubiResponse = await basicFunc.makeRequest("ubiservices", "post", "/v3/profiles/sessions", {}, { + "ubi-appid": "d03d28dd-4706-4808-ba6d-13f43ba62a11", + "authorization": authorization.replace("Ubi_v1 ", "Ubi_v1 t="), + "ubi-requestedplatformtype": jdcs.platformTypes[skuId.split("-")[1]] + }) + // If data was received, check client's ticket platformType and continue. + if (ubiResponse.data && checkPlatformType(ubiResponse.data.platformType)) { + + // ME + // This route is for receiving client's country. + const ubiMEResponse = await basicFunc.makeRequest("ubiservices", "get", "/v1/users/me", {}, { + "ubi-appid": "d03d28dd-4706-4808-ba6d-13f43ba62a11", + "authorization": authorization.replace("Ubi_v1 ", "Ubi_v1 t="), + "ubi-requestedplatformtype": jdcs.platformTypes[skuId.split("-")[1]] + }) + + // BAN CHECK + // If user's profileId or userId is banned from the server, don't pass them. + if (basicFunc.checkBanned(ubiResponse.data.userId) || basicFunc.checkBanned(ubiResponse.data.profileId)) { // If the profileId exists in banned users + basicFunc.writeLog("banned", `${new Date().toISOString()} ${ubiResponse.data.nameOnPlatform} ${req.header("x-skuid")} ${JSON.stringify(req.body)}\n[BANNED USER ACCESS]\n`) + // basicFunc.debugLog(`[authenticateJDCS - createSessions] ${ubiResponse.data.nameOnPlatform} is banned.`, "red") + return res.status(basicFunc.getStatusCode("banned")).send() + } + + + // ADDING USER TO SESSIONS + // If user is not banned, continue. + else { + // basicFunc.debugLog(`[authenticateJDCS - createSessions] ${ubiResponse.data.nameOnPlatform} was added to sessions.`) HAD TO DISABLE THIS CUZ IT WAS ANNOYING + + // If player's ME response gives "User not found" or they don't have a country, set default country as US. + if (!ubiMEResponse.data || !ubiMEResponse.data.country) { + ubiMEResponse.data = {}; + ubiMEResponse.data.country = "US"; + } + + // If user is not in sessions, continue + if (!currentUsers.players[sessionId]) { + currentUsers.players[sessionId] = { + nameOnPlatform: ubiResponse.data.nameOnPlatform, // uplay Username + clientIpCountry: ubiMEResponse.data.country, // Country from ME + uid: ubiResponse.data.userId, // userId + pid: ubiResponse.data.profileId, // profileId + sid: sessionId, // sessionId + skuId: skuId, // Current skuId + epoch: Date.now(), // Epoch to keep them connected with the server. + serverBooster: false // If the user is a server booster, this will be true. + } + + // If the user is a server booster, turn serverBooster to true. + if (serverBoostersJSON[ubiResponse.data.userId] || serverBoostersJSON[ubiResponse.data.profileId]) { + currentUsers.players[sessionId].serverBooster = true + } + + basicFunc.debugLog(`[authenticateJDCS - NEW PLAYER] ${ubiResponse.data.nameOnPlatform} from ${ubiMEResponse.data.country} entered JDCS from ${req.header("x-skuid")}`) + // Duplicate sessions of client and set as res.profileData for access everywhere. + res.profileData = Object.create(currentUsers.players[sessionId]) + next() // Pass the user. + } + } + } + + // If there was an issue with UbiServices response, don't pass the user. + else { + basicFunc.writeLog("unauthorized", `${new Date().toISOString()} ${req.headers['x-forwarded-for'] || req.connection.remoteAddress}${req.originalUrl} ${req.header("x-skuid")} ${JSON.stringify(req.body)}\n[NO PROFILE OR PLATFORMTYPE MATCH]\n`) + return res.sendStatus(basicFunc.getStatusCode("invalidTicket")); + } + } + + + // updateSessionId updates given key/value inside client's session object. + function updateSessionId(sessionId, update) { + // basicFunc.debugLog(`[authenticateJDCS - updateUserSession] Updated user in-game, old epoch was ${currentUsers.players[sessionId].epoch} and the new one is ${Date.now()}`, "blue") + + switch(update) { + // Epoch + case "epoch": + currentUsers.players[sessionId].epoch = Date.now() + } + // Update global response profileData for access everywhere. + res.profileData = currentUsers.players[sessionId] + return; + } + + + // deleteSessionId deletes given sessionId from currentUsers. + function deleteSessionId(sessionId) { + basicFunc.debugLog(`[authenticateJDCS- deleteSessionId] Removed expired user ${currentUsers.players[sessionId]["sid"]}`, "yellow") + delete currentUsers.players[sessionId] // Delete sessionId + return; + } + + + // -- EXECUTING THE FUNCTIONS + + + // If user's sessionId does not exist in players object create sessions. + if (!currentUsers.players[ubiV1header.sid]) { + if (checkSkuId(skuId)) { // If skuId exists + createSessions(ubiV1header.sid) // Create session + } else return res.sendStatus(basicFunc.getStatusCode("invalidSkuId")); + } + + // If user's sessionId is already in the object and skuId equals header skuId, update their data. + else if (currentUsers.players[ubiV1header.sid] && currentUsers.players[ubiV1header.sid].skuId === skuId) { + // If user's epoch has not passed the timeLimit, update their epoch. + if (Date.now() - currentUsers.players[ubiV1header.sid].epoch < jdcs["sessions"]["sessionTimeLimit"]) { + updateSessionId(ubiV1header.sid, "epoch") // Update epoch + next() + } + } + + // -- + + else { + return res.sendStatus(basicFunc.getStatusCode("missingData")) + } + + + // Read each sessionId and delete ones that passed the timeLimit, tag:COULDBEIMPROVED + Object.keys(currentUsers.players).forEach(sessionId => { + if (Date.now() - currentUsers.players[sessionId]["epoch"] > jdcs["sessions"]["sessionTimeLimit"]) { + deleteSessionId(sessionId) // Delete sessionId. + // If a client's session was removed and they send request at the same time it was removed, create a new session. + if (ubiV1header.sid === sessionId) createSessions(sessionId) + } + }) + + } + // -- +}; + +// -- ROUTES + + // -- ALIASDB + // A database of all available aliases / titles. + app.use("/aliasdb/", authenticateJDCS, require("./scripts/routes/aliasdb")) + // -- + + // -- AVATARDB + // A database of all available avatars. + app.use("/avatardb/", authenticateJDCS, require("./scripts/routes/avatardb")) + // -- + + // -- CAROUSEL + // Listing all available content such as maps, settings etc. + app.use("/carousel/", authenticateJDCS, require("./scripts/routes/carousel")) + // -- + + // -- COM-VIDEO + // Unknown route, tag:INFO + app.use("/com-video/", authenticateJDCS, require("./scripts/routes/com-video")) + // -- + + // -- COMMUNITY-REMIX + // Community remix configuration. + app.use("/community-remix/", authenticateJDCS, require("./scripts/routes/community-remix")) + // -- + + // -- CONSTANT-PROVIDER + // Configuration for such settings in-game. + app.use("/constant-provider/", authenticateJDCS, require("./scripts/routes/constant-provider")) + // -- + + // -- CONTENT-AUTHORIZATION + // Return specific map's video url data + app.use("/content-authorization/", authenticateJDCS, require("./scripts/routes/content-authorization")) + // -- + + // -- CUSTOMIZABLE-ITEMDB + // A database of all avatars, skins and portrait borders. + app.use("/customizable-itemdb/", authenticateJDCS, require("./scripts/routes/customizable-itemdb")) + // -- + + // -- DANCE-MACHINE + // A database of all available blocks for JDM. + app.use("/dance-machine/", authenticateJDCS, require("./scripts/routes/dance-machine")) + // -- + + // -- DEBUG + // Debug options and developer configuration, also used in adminPanel. Only access-able if isDev is enabled. + app.use("/debug", authenticateJDCS, function (req, res, next) { + if (req.isDev) { + next() + } else return res.sendStatus(basicFunc.getStatusCode("missingHeader")) + }, require("./scripts/routes/debug")); + // -- + + // -- LEADERBOARD + // List score data for songs worldwide for players. + app.use("/leaderboard/", authenticateJDCS, require("./scripts/routes/leaderboard")) + // -- + + // -- PACKAGES + // Packages is used for listing all skupackages for songs. + app.use("/packages/", authenticateJDCS, require("./scripts/routes/packages")) + // -- + + // -- PLAYLISTDB + // Playlist Database + app.use("/playlistdb/", authenticateJDCS, require("./scripts/routes/playlistdb")) + // -- + + // -- PRIVATE + // Private access to DB from JD19 and above. + app.use("/private/", require("./scripts/routes/private")) + // -- + + // -- PROFILES + // User profile database + app.use("/profile/", authenticateJDCS, require("./scripts/routes/profile")) + // -- + + // -- QUESTDB + // A database of all available quests. + app.use("/questdb/", require("./scripts/routes/questdb")) + // -- + + // -- SESSION-QUEST + // Session quest for JD18 and above online quests. + app.use("/session-quest/", authenticateJDCS, require("./scripts/routes/session-quest")) + // -- + + // -- SONGDB + // Song database is used for listing all songs' information such as artist, title, assets url and such. + app.use("/songdb/", authenticateJDCS, require("./scripts/routes/songdb")) + // -- + + // -- STATUS + // Server status and pinging. + app.use("/status/", require("./scripts/routes/status")) + // -- + + // -- SUBSCRIPTION + // PLayer's JDU subscription data. + app.use("/subscription/", authenticateJDCS, require("./scripts/routes/subscription")) + // -- + + // -- WDF + // World Dance Floor API + app.use("/wdf/", authenticateJDCS, require("./scripts/routes/wdf")) + // -- + + + +// -- + +// Send other routes that we do not have as 404 with empty response. +app.all("/*", (req, res) => { + return res.status(404).send() +}); + +// -- ERROR HANDLER +// This is for handling any server error and logging it for research purposes. +app.use(function (err, req, res, next) { + if (err) { + basicFunc.writeLog("error", `${new Date().toISOString()} ${req.originalUrl} ${req.header("x-skuid")} \n${err}\n\n`) + return res.sendStatus(basicFunc.getStatusCode("serverError")) + } +}) +// -- + +const listener = app.listen(jdcs.port, function() { + console.log( + chalk.blue(`---------- JUST DANCE BEST SERVER (JDCS) ----------\n`), + `${chalk.blue("Version")}: ${process.env.server_version} ${chalk.blue("Port")}: ${listener.address().port} ${chalk.blue("Environment")}: ${process.env.NODE_ENV}\n`, + `Server was started successfully.\n` + + ); +}); + + +// REPEATING FUNCTIONS +// This is a list of all functions that should be called each x sec/min/hr. + + // JMCS-CHN Ticket Generation + // Call ticket generation every 1.5 hour since it expires. + setInterval(function(){ + debugLog(`[generateJmcsTicketCHN] Ticket for JMCS CHN was called after 1 hour(s).`) + jdcs.tickets.jmcsCHN = basicFunc.generateJmcsTicket("jmcschn") + }, 3600000); \ No newline at end of file diff --git a/justdanceonline-main/local_settings/aliases/aliases.json b/justdanceonline-main/local_settings/aliases/aliases.json new file mode 100644 index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b --- /dev/null +++ b/justdanceonline-main/local_settings/aliases/aliases.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/carousel/actionLists.json b/justdanceonline-main/local_settings/carousel/actionLists.json new file mode 100644 index 0000000000000000000000000000000000000000..5e2b421bbf1dc92f54dc8d4c23e05a162a98859a --- /dev/null +++ b/justdanceonline-main/local_settings/carousel/actionLists.json @@ -0,0 +1,236 @@ +{ + "search": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "SEARCH", + "title": "Search", + "type": "open-keyboard" + }, + { + "__class": "Action", + "bannerContext": "default", + "bannerTheme": "DEFAULT", + "bannerType": "SEARCH", + "title": "Previous Search", + "type": "previous-search" + } + ], + "itemType": "search" + }, + "sweatMap": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerContext": "CONTEXT_SWEAT", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance", + "type": "play-song" + }, + { + "__class": "Action", + "bannerContext": "CONTEXT_SWEAT", + "bannerTheme": "DEFAULT", + "bannerType": "song_leaderboard", + "title": "Leaderboard", + "type": "leaderboard" + }, + { + "__class": "Action", + "bannerContext": "CONTEXT_SWEAT", + "bannerTheme": "DEFAULT", + "bannerType": "song_licensing", + "title": "Credits", + "type": "credits" + } + ], + "itemType": "map" + }, + "create-challenge": { + "__class": "ActionList", + "actions": [], + "itemType": "challengeV2" + }, + "create-playlist": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "title": "Add Song", + "type": "add-song" + } + ], + "itemType": "map" + }, + "searchPreset": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "SEARCH", + "title": "Search Preset", + "type": "search-preset" + } + ], + "itemType": "search" + }, + "NonStop": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "SHUFFLE", + "title": "Dance!", + "type": "start-rowPlaylist" + } + ], + "itemType": "map" + }, + "partyMap": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance!", + "type": "play-song" + }, + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Add to favorites", + "type": "set-favorite" + }, + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song_leaderboard", + "title": "Leaderboard", + "type": "leaderboard" + }, + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song_licensing", + "title": "Credits", + "type": "credits" + } + ], + "itemType": "map" + }, + "partyMapCoop": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerContext": "family_coop", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance!", + "type": "play-song" + }, + { + "__class": "Action", + "bannerContext": "family_coop", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Add to favorites", + "type": "set-favorite" + }, + { + "__class": "Action", + "bannerContext": "family_coop", + "bannerTheme": "DEFAULT", + "bannerType": "song_leaderboard", + "title": "Leaderboard", + "type": "leaderboard" + }, + { + "__class": "Action", + "bannerContext": "family_coop", + "bannerTheme": "DEFAULT", + "bannerType": "song_licensing", + "title": "Credits", + "type": "credits" + } + ], + "itemType": "map" + }, + "newsPage": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song_licensing", + "title": "", + "type": "credits" + } + ], + "itemType": "map" + }, + "comingSoon": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Coming Soon!", + "type": "credits" + } + ], + "itemType": "map" + }, + "upsell_rival": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Подписаться", + "type": "play-song" + } + ], + "itemType": "map" + }, + "ftue": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance", + "type": "play-song" + } + ], + "itemType": "map" + }, + "teaser_ftue": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "TEASER", + "title": "", + "type": "teaser" + } + ], + "itemType": "map" + } +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/carousel/categories.json b/justdanceonline-main/local_settings/carousel/categories.json new file mode 100644 index 0000000000000000000000000000000000000000..93dcd86c08656a1bc01083ed1b2fc407130be447 --- /dev/null +++ b/justdanceonline-main/local_settings/carousel/categories.json @@ -0,0 +1,305 @@ +[{ + "__class": "Category", + "title": { + "zh": "JUST DANCE BEST", + "en": "Just Dance Best" + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "Gōngtuī", + "es": "Recomendado", + "en": "Recommended" + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "DàZhòng", + "es": "Canciones Mas Jugadas", + "en": "Top Played Songs" + }, + "noShuffle": true, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 1", + "en": "Just Dance 1" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 1 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2", + "en": "Just Dance 2" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 3", + "en": "Just Dance 3" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 3 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 4", + "en": "Just Dance 4" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 4 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2014", + "en": "Just Dance 2014" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2014 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2015", + "en": "Just Dance 2015" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2015 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2016", + "en": "Just Dance 2016" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2016 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2017", + "en": "Just Dance 2017" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2017 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2018", + "en": "Just Dance 2018" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2018 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2019", + "en": "Just Dance 2019" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2019 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2020", + "en": "Just Dance 2020" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2020 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE 2021", + "en": "Just Dance 2021" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 2021 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "en": "Solo", + "zh": "Dúzòu" + }, + "filter": { + "type": "coachCount", + "coachCount": 1 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "Èrchóngchàng", + "en": "Duet" + }, + "filter": { + "type": "coachCount", + "coachCount": 2 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "Sānchóngzòu", + "en": "Trio" + }, + "filter": { + "type": "coachCount", + "coachCount": 3 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +},{ + "__class": "Category", + "title": { + "zh": "Sì gè", + "es": "Quatro", + "en": "Dance Crew" + }, + "filter": { + "type": "coachCount", + "coachCount": 4 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "Yìng gē", + "en": "Extreme" + }, + "filter": { + "type": "difficulty", + "difficulty": 4 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "JUST DANCE Yàzhōu", + "en": "Just Dance Asia" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 4514 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "ABBA: Wǔdǎo tiānhòu", + "en": "ABBA: You Can Dance" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 4884 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "Háizimen de gē", + "en": "Kids" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 123 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}, { + "__class": "Category", + "title": { + "zh": "Dújiā gēqǔ", + "en": "Exclusive" + }, + "filter": { + "type": "originalJDVersion", + "originalJDVersion": 8357 + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +}] \ No newline at end of file diff --git a/justdanceonline-main/local_settings/carousel/favorites.json b/justdanceonline-main/local_settings/carousel/favorites.json new file mode 100644 index 0000000000000000000000000000000000000000..f88ab93fc710510416d2f484ed854ab86275f236 --- /dev/null +++ b/justdanceonline-main/local_settings/carousel/favorites.json @@ -0,0 +1,11 @@ +{ + "__class": "Category", + "title": { + "en": "[icon:FAVORITE] Favorites", + "es": "[icon:FAVORITE] Favoritos", + "zh": "[icon:FAVORITE] Shōucáng Jiā" + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/carousel/search.json b/justdanceonline-main/local_settings/carousel/search.json new file mode 100644 index 0000000000000000000000000000000000000000..cc4a7283d5690bdc4e72881aa03b0f20a1831877 --- /dev/null +++ b/justdanceonline-main/local_settings/carousel/search.json @@ -0,0 +1,22 @@ +{ + "__class": "Category", + "title": { + "tr": "[icon:SEARCH_FILTER] Arama", + "zh": "[icon:SEARCH_FILTER] Sōusuǒ", + "es": "[icon:SEARCH_FILTER] Buscar", + "pt": "[icon:SEARCH_FILTER] Procurar", + "ru": "[icon:SEARCH_FILTER] Поиск", + "fr": "[icon:SEARCH_FILTER] Chercher", + "en": "[icon:SEARCH_FILTER] Search" + }, + "act": "ui_carousel", + "isc": "grp_row_search", + "noShuffle": true, + "items": [{ + "__class": "Item", + "act": "ui_component_base", + "components": [], + "isc": "grp_search", + "actionList": "search" + }] +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/carousel/serverBoosters.json b/justdanceonline-main/local_settings/carousel/serverBoosters.json new file mode 100644 index 0000000000000000000000000000000000000000..85de5c7fc1193e9ffca7e52edcee8b87b048f593 --- /dev/null +++ b/justdanceonline-main/local_settings/carousel/serverBoosters.json @@ -0,0 +1,13 @@ +{ + "__class": "Category", + "title": { + "en": "Server Boosters-Only" + }, + "filter": { + "type": "serverBoosterOnly", + "serverBoosterOnly": true + }, + "act": "ui_carousel", + "isc": "grp_row", + "items": [] +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/carousel/songItemLists.json b/justdanceonline-main/local_settings/carousel/songItemLists.json new file mode 100644 index 0000000000000000000000000000000000000000..cb10f93b595351e9bcd5a8541875c50a5775d647 --- /dev/null +++ b/justdanceonline-main/local_settings/carousel/songItemLists.json @@ -0,0 +1,13 @@ +{ + "teaser_ftue": { + "__class": "SongItemList", + "actionListName": "teaser_ftue", + "list": [ + { + "__class": "SongItem", + "act": "ui_component_base", + "isc": "teaser_item" + } + ] + } +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/itemdb/avatars.json b/justdanceonline-main/local_settings/itemdb/avatars.json new file mode 100644 index 0000000000000000000000000000000000000000..7e39f7b3a39037a8e30deb4f27e42b9753f05624 --- /dev/null +++ b/justdanceonline-main/local_settings/itemdb/avatars.json @@ -0,0 +1,19423 @@ +{ + "2": { + "JdNowVersion": 1, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DogsOut", + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DogsOut", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Dog", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/2/avatar.png/e7f9e109f9ff59e7dd0f760c28dbf9ca.png", + "itemType": 0, + "visibility": 1 + }, + "3": { + "Id": 3, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "EyeOfTheTiger", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/3/avatar.png/ec1f9f8ceb0d27f609114b8e9561f571.png", + "itemType": 0, + "visibility": 1 + }, + "4": { + "Id": 4, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GetAround", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/4/avatar.png/e6d6e32b74d6e12d5faa3b3457ba2c16.png", + "itemType": 0, + "visibility": 1 + }, + "5": { + "Id": 5, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HotNCold", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/5/avatar.png/95f54b56e5eb8b3dbabe088bdacd0e7e.png", + "itemType": 0, + "visibility": 1 + }, + "9": { + "Id": 9, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NineAfternoon", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Dog", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/9/avatar.png/624378301449741f8f790f53d54e609c.png", + "itemType": 0, + "visibility": 1 + }, + "10": { + "Id": 10, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BabyGirl", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/10/avatar.png/b4951e9399b5c4064656684e2934703e.png", + "itemType": 0, + "visibility": 1 + }, + "14": { + "Id": 14, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CosmicGirl", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/14/avatar.png/571f82e800d4c4496564c82398058545.png", + "itemType": 0, + "visibility": 1 + }, + "16": { + "Id": 16, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Firework", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/16/avatar.png/f4c99623a70f6e9b4f558247c3957db1.png", + "itemType": 0, + "visibility": 1 + }, + "17": { + "Id": 17, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FunkyTown", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Alien", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/17/avatar.png/4afeca70b3f208bc679294af76cd8469.png", + "itemType": 0, + "visibility": 1 + }, + "18": { + "Id": 18, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HeyYa", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/18/avatar.png/df2b4d4fb8ef74383960ba397ee449a4.png", + "itemType": 0, + "visibility": 1 + }, + "22": { + "Id": 22, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KattiKalandal", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boyllywood", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/22/avatar.png/ae5190b8be08fa09c542376157ad12cd.png", + "itemType": 0, + "visibility": 1 + }, + "23": { + "Id": 23, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Girllywood", + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/23/avatar.png/2ae9dec6af70c979d1b5f2111dcbc84c.png", + "itemType": 0, + "visibility": 1 + }, + "24": { + "JdNowVersion": 2, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KungFu", + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KungFu", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/24/avatar.png/c26a916b16ab6315ad67e5e60c8e0f21.png", + "itemType": 0, + "visibility": 1 + }, + "25": { + "Id": 25, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MonsterMash", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zombi", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/25/avatar.png/3b2d2f3d83fd339364ed9007d5e16c19.png", + "itemType": 0, + "visibility": 1 + }, + "26": { + "Id": 26, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MugsyBaloney", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/26/avatar.png/870d89f6bcbb23779f696f02fa67bc7b.png", + "itemType": 0, + "visibility": 1 + }, + "28": { + "Id": 28, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ProfesseurDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/28/avatar.png/3d892a081adb9fb85cec584244083842.png", + "itemType": 0, + "visibility": 1 + }, + "30": { + "Id": 30, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Rasputin", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ruskov", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/30/avatar.png/83126ab0ce18955805a030a6d36c0932.png", + "itemType": 0, + "visibility": 1 + }, + "33": { + "Id": 33, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/33/avatar.png/34a392c334a678ba03f614cfa9fdf82d.png", + "itemType": 0, + "visibility": 1 + }, + "36": { + "Id": 36, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Sway", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/36/avatar.png/81aab29b983f883b71879481438eec0a.png", + "itemType": 0, + "visibility": 1 + }, + "41": { + "Id": 41, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Xmas", + "relativeWDFBossName": "", + "soundFamily": "AVTR_SantaClaus", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/41/avatar.png/0306250d10762dd30a72931ca05321c7.png", + "itemType": 0, + "visibility": 1 + }, + "42": { + "JdNowVersion": 3, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AThousandDances", + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AThousandDances", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Croco", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/42/avatar.png/ab8f6fa81f37092955d6d60717130740.png", + "itemType": 0, + "visibility": 1 + }, + "43": { + "Id": 43, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Apache", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Indian", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/43/avatar.png/e0d281940cc17a24ec34b9a365159eb2.png", + "itemType": 0, + "visibility": 1 + }, + "44": { + "Id": 44, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BoogieWonderQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/44/avatar.png/c7796460f40b33b6c1be4bc3b7af68ad.png", + "itemType": 0, + "visibility": 1 + }, + "45": { + "Id": 45, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CaliforniaGurls", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/45/avatar.png/0a78ab3d1325e4a60a4baa0ef71a0778.png", + "itemType": 0, + "visibility": 1 + }, + "47": { + "Id": 47, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DynamiteQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_ChinaGirl", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/47/avatar.png/1116d87e2aa64a2ff8a5650313463ea2.png", + "itemType": 0, + "visibility": 1 + }, + "49": { + "Id": 49, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GotMeDancing", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/49/avatar.png/0ade695d7619d012c6f8c5b3a83d33a5.png", + "itemType": 0, + "visibility": 1 + }, + "50": { + "JdNowVersion": 3, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "HalloweenQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HalloweenQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_JackOLantern", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/50/avatar.png/9f9ab6d7e57205fa514ff8750d65c351.png", + "itemType": 0, + "visibility": 1 + }, + "51": { + "Id": 51, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Vampire", + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/51/avatar.png/23533b9975b1299600f860fe8094e0f5.png", + "itemType": 0, + "visibility": 1 + }, + "52": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_JackOLantern", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e8480d7b-519e-499b-aeed-795bae9c0f9b/avtr_jackolantern_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a6e4636d-5df4-485f-aa4f-d80a943ce7f3/avtr_jackolantern_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c8e6d884-e44f-4043-98f3-9ca9407d99a5/avtr_jackolantern_03.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/52/avatar.png/54ee591cd8d76f7ae1bfdc054d99375c.png", + "itemType": 0, + "visibility": 1 + }, + "54": { + "Id": 54, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IFeelLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/54/avatar.png/022fbe46063e068d51bc234699b9f5dd.png", + "itemType": 0, + "visibility": 1 + }, + "55": { + "Id": 55, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IWasMadeQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/55/avatar.png/a95ff10ac9cd877cbff639e8ca39d7d6.png", + "itemType": 0, + "visibility": 1 + }, + "58": { + "Id": 58, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PartyRock", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/58/avatar.png/28e506fdca5e3265f7a311bf1d26f3d7.png", + "itemType": 0, + "visibility": 1 + }, + "60": { + "Id": 60, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SomethinStupid", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Diver", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/60/avatar.png/54310243f46057bcc8a77ca6c493214e.png", + "itemType": 0, + "visibility": 1 + }, + "66": { + "Id": 66, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Americano", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/66/avatar.png/1759abf3da364650bc1e699a02a5a85c.png", + "itemType": 0, + "visibility": 1 + }, + "67": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Girl_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ad61a0b3-9510-48b6-b856-890730b9cdc4/avtr_common_girl_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/414be51c-f45d-4cf5-9a74-9a4c16af8ca3/avtr_common_girl_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c246e95a-c059-4ce6-945e-15ce421b88fd/avtr_common_girl_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1cb08c64-7df7-4c90-9f79-31396f8a72ac/avtr_common_girl_swag_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/67/avatar.png/8ba6187c84f438b4e11a1caffd977542.png", + "itemType": 0, + "visibility": 1 + }, + "68": { + "Id": 68, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BewareOf", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Girllywood", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/68/avatar.png/0da33cab94c00519c608c6eefff92bdd.png", + "itemType": 0, + "visibility": 1 + }, + "69": { + "Id": 69, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CantTakeMyEyes", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/69/avatar.png/da9bf3ca40d247e9ad64ecfddbe1cfe2.png", + "itemType": 0, + "visibility": 1 + }, + "70": { + "Id": 70, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CantTakeMyEyesALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/70/avatar.png/2194c4a25823654ef5d58e25d0057eb3.png", + "itemType": 0, + "visibility": 1 + }, + "71": { + "Id": 71, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CrucifiedQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/71/avatar.png/fe7f1388719a1bf6fecc8bef3acaba15.png", + "itemType": 0, + "visibility": 1 + }, + "72": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Boy_Techno", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/54ce0909-80dd-4224-ba6b-88599f51b272/avtr_common_boy_techno_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/085239be-93a1-4566-93b5-5578b8be1c5f/avtr_common_boy_techno_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/190bde3b-cd43-4b7e-88c5-103eb72fe7e4/avtr_common_boy_techno_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6e49af02-62d2-41ed-bea1-9d263cb45f30/avtr_common_boy_techno_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/72/avatar.png/9ad30e43953c65e50e7166cf3233757e.png", + "itemType": 0, + "visibility": 1 + }, + "73": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Girl_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ad61a0b3-9510-48b6-b856-890730b9cdc4/avtr_common_girl_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/414be51c-f45d-4cf5-9a74-9a4c16af8ca3/avtr_common_girl_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c246e95a-c059-4ce6-945e-15ce421b88fd/avtr_common_girl_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1cb08c64-7df7-4c90-9f79-31396f8a72ac/avtr_common_girl_swag_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/73/avatar.png/63f4e94063cb8ac4e68618424265cf80.png", + "itemType": 0, + "visibility": 1 + }, + "74": { + "JdNowVersion": 4, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Diggin", + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Diggin", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/74/avatar.png/64e881d84454f9625ae4e0bc35965652.png", + "itemType": 0, + "visibility": 1 + }, + "77": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Girl_Hyper", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/60b63ade-d33a-49d3-af34-582dfd46ab80/avtr_common_girl_hyper_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/54308076-2d19-4c23-adb8-ecc51375e16b/avtr_common_girl_hyper_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/38db99ad-31e9-4899-9aed-d9901cb8e0e7/avtr_common_girl_hyper_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a539ee1f-62f8-4996-8666-b67b16a06256/avtr_common_girl_hyper_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/77/avatar.png/d3b5ec0f4cf5213fce9dd6ab3a0756c6.png", + "itemType": 0, + "visibility": 1 + }, + "78": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_PsyGirl", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/86a1d941-d666-4e3b-b546-81a9397fe05b/avtr_psygirl_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2f27a2b1-f794-455e-ad3b-e384acc722d4/avtr_psygirl_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/fc939a81-f2cb-4096-8bd1-4ebb5f219bc9/avtr_psygirl_03.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/78/avatar.png/034f215c751a2ab82565b5db87e93b7b.png", + "itemType": 0, + "visibility": 1 + }, + "79": { + "Id": 79, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IDidItAgainQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/79/avatar.png/8c14451fcd51253a62bb29d4c2155916.png", + "itemType": 0, + "visibility": 1 + }, + "80": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "IstanbulQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Parrot", + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/80/avatar.png/f278b0856efcdbb6856cb7772c8bb3b2.png", + "itemType": 0, + "visibility": 1 + }, + "81": { + "Id": 81, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IstanbulQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zebra", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/81/avatar.png/404cc7d559df67e70f8835a2d7e87f29.png", + "itemType": 0, + "visibility": 1 + }, + "84": { + "Id": 84, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LoveYouLike", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/84/avatar.png/82565c331169f7ef2bd0c219ddbe5c38.png", + "itemType": 0, + "visibility": 1 + }, + "86": { + "Id": 86, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Maneater", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/86/avatar.png/d372409f693a8ceab8640b2a05ab490a.png", + "itemType": 0, + "visibility": 1 + }, + "87": { + "Id": 87, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MovesLikeDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/87/avatar.png/995ecb80b13105394b7d9e78d7a7f0a6.png", + "itemType": 0, + "visibility": 1 + }, + "88": { + "Id": 88, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MrSaxobeat", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/88/avatar.png/1090b4742a149d69fbe68a8a1b0703ef.png", + "itemType": 0, + "visibility": 1 + }, + "90": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Girl_Girly", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/7383013c-7964-43d3-9e9b-2e1f3b9b90e1/avtr_common_girl_girly_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/95cd58c3-dc4b-4c15-a667-d890a96053d1/avtr_common_girl_girly_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/25c2d281-9730-4d34-88f3-2dd0b498bf5d/avtr_common_girl_girly_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/5c7d0432-2032-4c0f-b7f3-84cc3480f632/avtr_common_girl_girly_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/90/avatar.png/548f7fcca154378e258ed555a59f2c78.png", + "itemType": 0, + "visibility": 1 + }, + "92": { + "Id": 92, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RockNRoll", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Robot", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/92/avatar.png/1d6d2e3666910a581b6909c3398579c9.png", + "itemType": 0, + "visibility": 1 + }, + "95": { + "Id": 95, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SuperBass", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/95/avatar.png/795cf077850a18b4f7eb79f1daebf6f9.png", + "itemType": 0, + "visibility": 1 + }, + "97": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Girl_Kawaii", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dd517fdd-3250-4ffc-a91d-153c11c6cdbf/avtr_common_girl_kawaii_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/01eb9803-93b8-4cc3-bd63-e30e33942fd8/avtr_common_girl_kawaii_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cd00d7c7-3fb8-4a7e-9204-153a3b6417fd/avtr_common_girl_kawaii_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c6b99d50-18a9-4efc-8d13-c0dd6e387b84/avtr_common_girl_kawaii_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/97/avatar.png/3d2e8886424fde1c706935a4d8d74829.png", + "itemType": 0, + "visibility": 1 + }, + "98": { + "Id": 98, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TimeWarpQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/98/avatar.png/fa9cc3a67c8b8b3725677b8b47de43fc.png", + "itemType": 0, + "visibility": 1 + }, + "99": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Girl_Hyper", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/60b63ade-d33a-49d3-af34-582dfd46ab80/avtr_common_girl_hyper_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/54308076-2d19-4c23-adb8-ecc51375e16b/avtr_common_girl_hyper_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/38db99ad-31e9-4899-9aed-d9901cb8e0e7/avtr_common_girl_hyper_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a539ee1f-62f8-4996-8666-b67b16a06256/avtr_common_girl_hyper_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/99/avatar.png/021e216e56fd024c3fc49a3a8180a4af.png", + "itemType": 0, + "visibility": 1 + }, + "102": { + "Id": 102, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "YouMakeMeFeelDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/102/avatar.png/8b78d9c3f48d46aadd4f55b00f2dced5.png", + "itemType": 0, + "visibility": 1 + }, + "103": { + "Id": 103, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "YouReTheFirst", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/103/avatar.png/398ae9dbb613d7ccc3bca77b17eb8ab3.png", + "itemType": 0, + "visibility": 1 + }, + "105": { + "Id": 105, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IKissed", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/105/avatar.png/40243f16d407f93c9cc81fad71ef7346.png", + "itemType": 0, + "visibility": 1 + }, + "106": { + "Id": 106, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IWillSurvive", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zombi", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/106/avatar.png/502ace4bee1054d35ce6743fa0e6843e.png", + "itemType": 0, + "visibility": 1 + }, + "107": { + "JdNowVersion": 2014, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RobotRock", + "__class": "OnlineCustomizableItem", + "jdVersion": 2014, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RobotRock", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Bioman", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/107/avatar.png/becaab9ebde03b9f15f72a74315ef01b.png", + "itemType": 0, + "visibility": 1 + }, + "110": { + "Id": 110, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhatAFeeling", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/110/avatar.png/af8123fb9a3ccca0cfe293c2555bbba8.png", + "itemType": 0, + "visibility": 1 + }, + "114": { + "Id": 114, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LoveBoat", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/114/avatar.png/ea831fa0a3dd7ed777037e29f67571d3.png", + "itemType": 0, + "visibility": 1 + }, + "115": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "soundFamily": "AVTR_Common_Girl_Kawaii", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dd517fdd-3250-4ffc-a91d-153c11c6cdbf/avtr_common_girl_kawaii_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/01eb9803-93b8-4cc3-bd63-e30e33942fd8/avtr_common_girl_kawaii_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cd00d7c7-3fb8-4a7e-9204-153a3b6417fd/avtr_common_girl_kawaii_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c6b99d50-18a9-4efc-8d13-c0dd6e387b84/avtr_common_girl_kawaii_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/115/avatar.png/ac97e141d61042ae72bf1ef7b9c0ad5d.png", + "itemType": 0, + "visibility": 1 + }, + "116": { + "Id": 116, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Starships", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/116/avatar.png/efb19ba9cc94ac43ac1eff05b58fd6b0.png", + "itemType": 0, + "visibility": 1 + }, + "117": { + "Id": 117, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Aquarius", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/117/avatar.png/3cd37c75d38eae91f969d2377954a9e2.png", + "itemType": 0, + "visibility": 1 + }, + "118": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Girl_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ad61a0b3-9510-48b6-b856-890730b9cdc4/avtr_common_girl_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/414be51c-f45d-4cf5-9a74-9a4c16af8ca3/avtr_common_girl_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c246e95a-c059-4ce6-945e-15ce421b88fd/avtr_common_girl_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1cb08c64-7df7-4c90-9f79-31396f8a72ac/avtr_common_girl_swag_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/118/avatar.png/de5d0a12061ea5c3287e8e250f5def5f.png", + "itemType": 0, + "visibility": 1 + }, + "122": { + "JdNowVersion": 5, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Cmon", + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Cmon", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/122/avatar.png/5464602aa91a63e7c98cc404d12e94b7.png", + "itemType": 0, + "visibility": 1 + }, + "126": { + "Id": 126, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Gigolo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Hippo", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/126/avatar.png/2381909f63453042b8d661ca82a7a0e6.png", + "itemType": 0, + "visibility": 1 + }, + "127": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Girl_Bebop", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e18f5355-4c36-4913-be80-3bf951584392/avtr_common_girl_bebop_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e17fc685-d8fc-42b7-ac47-924016a9db2a/avtr_common_girl_bebop_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e278a95f-237e-48f5-b90b-76d7f5851652/avtr_common_girl_bebop_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ce29ebe5-1b8e-4ba5-88cb-6bd44069728a/avtr_common_girl_bebop_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/127/avatar.png/f38c8f1b36b9ff16492c766ffa11648a.png", + "itemType": 0, + "visibility": 1 + }, + "131": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "soundFamily": "AVTR_Common_Girl_Swing", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c94a3603-c096-4dcf-be1d-93e42c785ef0/avtr_common_girl_swing_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/271ead73-68bd-4d6e-92b0-4600bad4312f/avtr_common_girl_swing_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/15013ed2-856e-459e-bdad-29abd555dd4a/avtr_common_girl_swing_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/408e1c14-32b4-4238-b4e7-c3f09570e3d7/avtr_common_girl_swing_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/131/avatar.png/afb069fae6b94548d48123b2aec96f6c.png", + "itemType": 0, + "visibility": 1 + }, + "132": { + "Id": 132, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Moskau", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ruskov", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/132/avatar.png/e3744148136579ed8c29a7a5b41c6e3d.png", + "itemType": 0, + "visibility": 1 + }, + "133": { + "Id": 133, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PoundTheAlarm", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/133/avatar.png/5a9f70874a99ffcb5044c1bd126b4ffb.png", + "itemType": 0, + "visibility": 1 + }, + "138": { + "Id": 138, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ThatPower", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/138/avatar.png/db023a579e06e62e3d3788b44d452d19.png", + "itemType": 0, + "visibility": 1 + }, + "139": { + "Id": 139, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TurnUpTheLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/139/avatar.png/e1b0334f4329e690ce2f807b5f7346a5.png", + "itemType": 0, + "visibility": 1 + }, + "142": { + "Id": 142, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BlurredLines", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/142/avatar.png/80c5e54b0f98310f00cd808e91972301.png", + "itemType": 0, + "visibility": 1 + }, + "145": { + "Id": 145, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Danse", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/145/avatar.png/0562a5db0bba261838d65cb4860dc6e4.png", + "itemType": 0, + "visibility": 1 + }, + "148": { + "Id": 148, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Gentleman", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Psy", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/148/avatar.png/d5705f8a1bb36ea554c88f8b0bcab12f.png", + "itemType": 0, + "visibility": 1 + }, + "151": { + "Id": 151, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GimmeGimme", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/151/avatar.png/7c1391d032dee68a643fff1cd87ff699.png", + "itemType": 0, + "visibility": 1 + }, + "152": { + "Id": 152, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ItsYou", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/152/avatar.png/8a05f62ce846d8c2c47437d8fa5250a7.png", + "itemType": 0, + "visibility": 1 + }, + "153": { + "Id": 153, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JustDance", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/153/avatar.png/edfcf712a8918be858a4ae663c559b51.png", + "itemType": 0, + "visibility": 1 + }, + "154": { + "Id": 154, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LimaGolf1", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/154/avatar.png/557ee54c6d894b0b1fbcb20e43280b27.png", + "itemType": 0, + "visibility": 1 + }, + "155": { + "Id": 155, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Luftballons", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/155/avatar.png/d700d7f16469d49d89ae514fcc03c92b.png", + "itemType": 0, + "visibility": 1 + }, + "157": { + "Id": 157, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Misunderstood", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/157/avatar.png/282a9cdbac633adfa4f723ce068cd372.png", + "itemType": 0, + "visibility": 1 + }, + "159": { + "Id": 159, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SafeAndSound", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/159/avatar.png/6152c830b57b7cbac8453f97704cb001.png", + "itemType": 0, + "visibility": 1 + }, + "164": { + "Id": 164, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheWay", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/164/avatar.png/3393d5718f8faab090b31f8dfd274994.png", + "itemType": 0, + "visibility": 1 + }, + "166": { + "Id": 166, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WakingUp", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/166/avatar.png/3018a39a52dc9fe61a907ad2a6f80bea.png", + "itemType": 0, + "visibility": 1 + }, + "167": { + "Id": 167, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Wild", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/167/avatar.png/bf8107b365b7504bca2cd63c065e7a35.png", + "itemType": 0, + "visibility": 1 + }, + "170": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_WatchDogs", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b23dbd3c-4db3-4eb6-ae78-1700b46d7687/avtr_uplay_watchdogs_01.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/170/avatar.png/a985b3174a5429d3fd0dd929cf45769d.png", + "itemType": 0, + "visibility": 1 + }, + "171": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_AC", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e67db92f-c24a-4651-b235-2657a09492bf/avtr_uplay_ac_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ca42e80c-0bb6-48fd-85ef-77127a1f2b44/avtr_uplay_ac_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/06acccda-4d3d-443d-9999-33cc2dbea8c9/avtr_uplay_ac_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39367c6e-eea5-46f1-a165-c0d3982d9864/avtr_uplay_ac_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/171/avatar.png/509728d4b089c35d9c8bfe913282ef2c.png", + "itemType": 0, + "visibility": 1 + }, + "172": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_GhostRecon", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/52384104-ea2d-4207-a75b-57853fc1d114/avtr_uplay_ghostrecon_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/4e76b2f0-d4f4-4fe0-a38e-1c5cf243bb33/avtr_uplay_ghostrecon_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/5242a5ea-8035-4d11-80ac-b61461c9e933/avtr_uplay_ghostrecon_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/5f659568-3e70-44c6-a5fb-bb95e162a43c/avtr_uplay_ghostrecon_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/172/avatar.png/dd179b42311dfda8c32b213c140b6a32.png", + "itemType": 0, + "visibility": 1 + }, + "173": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_BeyondGood_Jade", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a597cb00-198c-43c7-a181-437108b840c5/avtr_uplay_beyondgood_jade_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/f0839785-e486-4ce7-8861-e8c0fa0bbf24/avtr_uplay_beyondgood_jade_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b3b5eeb9-9888-4917-a61a-8b0c5de6c875/avtr_uplay_beyondgood_jade_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/089feede-254d-4f59-8832-37ba118d496b/avtr_uplay_beyondgood_jade_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/173/avatar.png/0b153352b37d66cdf2f63c88f1a01dad.png", + "itemType": 0, + "visibility": 1 + }, + "174": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_BeyondGood_PeyJ", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e8a54129-bd15-4e07-9a63-ab73688a2eb3/avtr_uplay_beyondgood_peyj_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/9792c085-52a3-4792-adf7-f05f032b9007/avtr_uplay_beyondgood_peyj_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e9e8809e-5954-402a-881e-97ff5fc7f591/avtr_uplay_beyondgood_peyj_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/16fb3561-cc14-485f-9aef-fb7077ea9836/avtr_uplay_beyondgood_peyj_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/174/avatar.png/3304ff701b27b341084f21354393842e.png", + "itemType": 0, + "visibility": 1 + }, + "175": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_PrinceOfPersia", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/53e506ee-ae82-4576-aa79-b6e41bca7fc2/avtr_uplay_princeofpersia_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/99f428aa-9886-4479-ab4d-386d640f9b21/avtr_uplay_princeofpersia_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/22a2edda-5f8f-4ecd-93f9-a79ecb582ae6/avtr_uplay_princeofpersia_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3dface4d-c508-414b-891d-deab83b4b1ef/avtr_uplay_princeofpersia_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/175/avatar.png/392af395395c979e2563f09019bab2c5.png", + "itemType": 0, + "visibility": 1 + }, + "176": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_Rabbids", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/4d9fe7a6-5658-48cc-8b02-f979bd4fb16d/avtr_uplay_rabbids_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/aff9e98a-0214-44e2-8c0e-23717895fd9d/avtr_uplay_rabbids_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/956996ed-6661-43ec-bb24-b7103f3204a5/avtr_uplay_rabbids_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/daa2f07c-2cfd-4e3f-b213-6502fe8cd8a1/avtr_uplay_rabbids_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/176/avatar.png/80e7a028272efec20613e70dc1ced022.png", + "itemType": 0, + "visibility": 1 + }, + "177": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_SplinterCell", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d670b7ea-7c4c-491b-add9-3c596359ad06/avtr_uplay_splintercell_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/9532f6c5-5c80-4973-bcf9-59722b6d84b0/avtr_uplay_splintercell_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/015124a9-b218-4df8-8a75-4018b5d32856/avtr_uplay_splintercell_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/f4cfdce8-cd57-4d55-88f9-59a698341e09/avtr_uplay_splintercell_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/177/avatar.png/1bbd74f20457f8943c1cf574e89e3fc1.png", + "itemType": 0, + "visibility": 1 + }, + "178": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_FarCry3", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1ec9f62b-7b7c-4c1c-9c20-4beacb2eb2f7/avtr_uplay_farcry3_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/532c12e7-9064-4a01-9f95-b311933c3d6b/avtr_uplay_farcry3_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dd6d6feb-f102-4e1b-ab26-881511263758/avtr_uplay_farcry3_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/0686a8e6-41ce-42df-ac23-23332d1100ed/avtr_uplay_farcry3_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/178/avatar.png/66aaf362e7047ab7a5891afec49eb519.png", + "itemType": 0, + "visibility": 1 + }, + "179": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Zombi", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/32907a57-c9fd-4e11-bcc0-0548f5b3d44b/avtr_zombi_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c0113479-f47b-4e16-adf7-c9a770ecb303/avtr_zombi_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/53972eeb-ff81-4943-8181-8d0fc46e496b/avtr_zombi_03.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/179/avatar.png/1633d4922c339b86c0b8937f7ee766d8.png", + "itemType": 0, + "visibility": 1 + }, + "180": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_Rayman", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6d136133-4038-4a73-adb1-e11bd917a362/avtr_uplay_rayman_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/57cd01a5-9803-43d5-a97a-5f1fef8944f3/avtr_uplay_rayman_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2d3629d5-f743-41c4-bc06-a07098f41abe/avtr_uplay_rayman_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/f12e4071-9204-4b12-9ab6-86edfde0ea96/avtr_uplay_rayman_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/180/avatar.png/1eb578204cf727518a0785362cc117b6.png", + "itemType": 0, + "visibility": 1 + }, + "181": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_Rayman_Barbara", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/11d4694e-cfc4-4746-b610-42a8d59f7d42/avtr_uplay_rayman_barbara_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/90c49ef5-16a8-4af8-b152-0f0cf332861d/avtr_uplay_rayman_barbara_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/089c9b64-e401-41b0-af12-1e2e2bf287f0/avtr_uplay_rayman_barbara_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/fb920fb4-3f81-49e9-98aa-89a081d017c9/avtr_uplay_rayman_barbara_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/181/avatar.png/d6ae4bc1b80f324b076143f529769a79.png", + "itemType": 0, + "visibility": 1 + }, + "182": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_Rayman_Globox", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/95cf128a-7ad5-4dc2-bc0e-20824b463cc2/avtr_uplay_rayman_globox_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/662a92dd-f76f-4061-b407-9a4dff2eb80a/avtr_uplay_rayman_globox_02.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/182/avatar.png/6a0fb2db3d96d5c95cbf6bc3d5e665c8.png", + "itemType": 0, + "visibility": 1 + }, + "183": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_Rayman_LeMagicien", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/da7e2066-0d2f-4b7a-b90c-c26b6290dc35/avtr_uplay_rayman_lemagicien_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d5ac7929-3654-4e24-a5b7-4341e4a4dbfd/avtr_uplay_rayman_lemagicien_02.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/183/avatar.png/b786fe14a19769ad4419f8cf3621124a.png", + "itemType": 0, + "visibility": 1 + }, + "185": { + "Id": 185, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NeverCanSay", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/185/avatar.png/162d1f152a9a94443be537c0b8c86a7d.png", + "itemType": 0, + "visibility": 1 + }, + "188": { + "Id": 188, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BuiltForThis", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/188/avatar.png/ccd7566a5092d867aa9b343b554c90a7.png", + "itemType": 0, + "visibility": 1 + }, + "189": { + "Id": 189, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Happy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/189/avatar.png/2c3b7b23b45b479fe8cc63ddad6e7180.png", + "itemType": 0, + "visibility": 1 + }, + "194": { + "Id": 194, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Summer", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/194/avatar.png/cc7cad6c54a9fe3e52a4d3a7a435b2dd.png", + "itemType": 0, + "visibility": 1 + }, + "196": { + "Id": 196, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WalkThisWay", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/196/avatar.png/255036c9ddf9679ff01e8d145418f14a.png", + "itemType": 0, + "visibility": 1 + }, + "198": { + "Id": 198, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontWorry", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/198/avatar.png/03a2744e1dec012d312ca78ede0a2385.png", + "itemType": 0, + "visibility": 1 + }, + "199": { + "JdNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "YouNeverCan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/199/avatar.png/b477e37bbbbbddb46a64966f086f23e4.png", + "itemType": 0, + "visibility": 1 + }, + "203": { + "Id": 203, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Tetris", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/203/avatar.png/4aa77e14d3f48f59c84788bfb38b2242.png", + "itemType": 0, + "visibility": 1 + }, + "205": { + "Id": 205, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LoveIsAll", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Frog", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/205/avatar.png/5bfa6756dff0bdd2126e130d5bd2c10e.png", + "itemType": 0, + "visibility": 1 + }, + "206": { + "Id": 206, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BadRomance", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/206/avatar.png/9415c6555600b744fc6bac2341d82b6d.png", + "itemType": 0, + "visibility": 1 + }, + "210": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Macarena", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/210/avatar.png/ee7349e43ede34b978f5d5896d7e8cd9.png", + "itemType": 0, + "visibility": 1 + }, + "218": { + "Id": 218, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Balance", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/218/avatar.png/55bca016e3ced3f30f8c8e7620351c70.png", + "itemType": 0, + "visibility": 1 + }, + "220": { + "Id": 220, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Birthday", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/220/avatar.png/8408d8f6517c9ff0ae6a255b7af83f11.png", + "itemType": 0, + "visibility": 1 + }, + "224": { + "Id": 224, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FindYou", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/224/avatar.png/158cddc1555b407fbc11b31193c9bec6.png", + "itemType": 0, + "visibility": 1 + }, + "225": { + "Id": 225, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FindYourMove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/225/avatar.png/18ec92103d9ba222fadd121fdbd57acc.png", + "itemType": 0, + "visibility": 1 + }, + "227": { + "Id": 227, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HappyALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/227/avatar.png/3699ea4b7cdef14f52cb3057589f1d30.png", + "itemType": 0, + "visibility": 1 + }, + "228": { + "Id": 228, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HoldingOut", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/228/avatar.png/6c1c20989983eed639cfd885255f62d2.png", + "itemType": 0, + "visibility": 1 + }, + "232": { + "Id": 232, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LetItGoDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Snowdrop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/232/avatar.png/19228e0e9c1ae4d31938dcfe3e5d9ba2.png", + "itemType": 0, + "visibility": 1 + }, + "234": { + "Id": 234, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Mad", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/234/avatar.png/23e17bede6da37cba6137fb3402a165e.png", + "itemType": 0, + "visibility": 1 + }, + "237": { + "Id": 237, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SummerALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/237/avatar.png/841be61662a3896e03052f6536fa723d.png", + "itemType": 0, + "visibility": 1 + }, + "238": { + "Id": 238, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WalkThisWayALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/238/avatar.png/336197bdad08f96e887f86bbd3c8cdc9.png", + "itemType": 0, + "visibility": 1 + }, + "239": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Girllywood", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/f5d8777e-7fd1-49f0-9f04-cc8b5046f7a5/avtr_girllywood_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cd3330b7-54a1-4b2b-b00e-fae02d0ac863/avtr_girllywood_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e210b70d-68f8-4ee5-a3ae-2d265638966d/avtr_girllywood_03.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/239/avatar.png/37f52c00efb4e89eb97ea3504e535ba2.png", + "itemType": 0, + "visibility": 1 + }, + "242": { + "Id": 242, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PoundTheAlarmALTDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/242/avatar.png/83b2a5fbd9cc6978a68fe0a07b7cd90b.png", + "itemType": 0, + "visibility": 1 + }, + "244": { + "Id": 244, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KiloPapaDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/244/avatar.png/3b6320d16253bcfe31c7f2f0c8056a48.png", + "itemType": 0, + "visibility": 1 + }, + "246": { + "Id": 246, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WakeMeUpDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/246/avatar.png/d518e26d30fa878320caa192102e200b.png", + "itemType": 0, + "visibility": 1 + }, + "247": { + "Id": 247, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BlurredLinesALTDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/247/avatar.png/83020ce240f557a206449661fcad64f1.png", + "itemType": 0, + "visibility": 1 + }, + "249": { + "Id": 249, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OtherSide", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/249/avatar.png/7bc40b13d1f554312c6e25dfcae1a00e.png", + "itemType": 0, + "visibility": 1 + }, + "250": { + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IGotAFeeling", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/250/avatar.png/28aa8bc39da6ebfa71b7f3368ec74a0a.png", + "itemType": 0, + "visibility": 1 + }, + "251": { + "Id": 251, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Blame", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/251/avatar.png/ac4c32fbe097ded74969d8ee57dc333f.png", + "itemType": 0, + "visibility": 1 + }, + "252": { + "Id": 252, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Animals", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/252/avatar.png/b836780ca152f717d664070fd4ae11ae.png", + "itemType": 0, + "visibility": 1 + }, + "253": { + "Id": 253, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LetsGroove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/253/avatar.png/324d67e202a8b21d43aeada73c47533a.png", + "itemType": 0, + "visibility": 1 + }, + "254": { + "Id": 254, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WilliamTell", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/254/avatar.png/9708cd6da7165df9cab16f5ba63bfc54.png", + "itemType": 0, + "visibility": 1 + }, + "255": { + "Id": 255, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BornThisWay", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/255/avatar.png/f5ce13fd8372c677d141babec604f5b2.png", + "itemType": 0, + "visibility": 1 + }, + "256": { + "Id": 256, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Hangover", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/256/avatar.png/6b3375ef1bf958431ec4fc86a94a819f.png", + "itemType": 0, + "visibility": 1 + }, + "257": { + "Id": 257, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Circus", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/257/avatar.png/be898df93718fdf8c28407c655caf762.png", + "itemType": 0, + "visibility": 1 + }, + "258": { + "Id": 258, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "UptownFunk", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/258/avatar.png/4edc463ab33244077498c6a114de8a0d.png", + "itemType": 0, + "visibility": 1 + }, + "259": { + "Id": 259, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheseBoots", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/259/avatar.png/26e43b069289f733bb646a07f8ac71be.png", + "itemType": 0, + "visibility": 1 + }, + "263": { + "Id": 263, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HitTheRoad", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/263/avatar.png/572a28f28185594548e601b761bfb896.png", + "itemType": 0, + "visibility": 1 + }, + "264": { + "Id": 264, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SaintPatrick", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/264/avatar.png/a67691006183f8f84759cacd77117099.png", + "itemType": 0, + "visibility": 1 + }, + "265": { + "Id": 265, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Teacher", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/265/avatar.png/69a5172d34428a5ab9637c0383e29f87.png", + "itemType": 0, + "visibility": 1 + }, + "266": { + "Id": 266, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TeacherALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/266/avatar.png/4d0a222d494f2a295617e5c8473291a3.png", + "itemType": 0, + "visibility": 1 + }, + "267": { + "Id": 267, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "UptownFunkALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/267/avatar.png/1a2da77295a386faece5fc4dea3c4c45.png", + "itemType": 0, + "visibility": 1 + }, + "268": { + "Id": 268, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhenTheRain", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/268/avatar.png/bd2459c6a0e36ddc8baa5eb4072af869.png", + "itemType": 0, + "visibility": 1 + }, + "269": { + "Id": 269, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "YoureTheOne", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/269/avatar.png/ae0ca03546d5d4ab805cfa01099e24cd.png", + "itemType": 0, + "visibility": 1 + }, + "270": { + "Id": 270, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AboutThatBass", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/270/avatar.png/644db95aaee611fdc862979f58eaa1d0.png", + "itemType": 0, + "visibility": 1 + }, + "271": { + "Id": 271, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AboutThatBassALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Flower", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/271/avatar.png/9f844b5b7f67dbcd5be3cd51e320eee8.png", + "itemType": 0, + "visibility": 1 + }, + "272": { + "Id": 272, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AngryBirds", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/272/avatar.png/4b2ba9178f6c46c3cc889135b47585b3.png", + "itemType": 0, + "visibility": 1 + }, + "273": { + "Id": 273, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BoysBoys", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/273/avatar.png/9684864e07304aa7859e36af6d80c594.png", + "itemType": 0, + "visibility": 1 + }, + "274": { + "Id": 274, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Chiwawa", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/274/avatar.png/7de4b8c44c7026d6c2317125ffd75147.png", + "itemType": 0, + "visibility": 1 + }, + "275": { + "Id": 275, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ElectroMambo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Dragqueen", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/275/avatar.png/56c7d54a5293e06ddd4b740879d9217e.png", + "itemType": 0, + "visibility": 1 + }, + "276": { + "Id": 276, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HeyMama", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/276/avatar.png/8e7b64e375d7b4c5fe46a8ec3ec20ca8.png", + "itemType": 0, + "visibility": 1 + }, + "277": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "IGotAFeelingALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IGotAFeelingALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/277/avatar.png/90785ddbbace0d408b7473018a625fdf.png", + "itemType": 0, + "visibility": 1 + }, + "279": { + "Id": 279, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "StuckOnAFeeling", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/279/avatar.png/15be11f1cb5eaa115b78758f05a6eaf9.png", + "itemType": 0, + "visibility": 1 + }, + "280": { + "Id": 280, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheChoice", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/280/avatar.png/ef5d35df70f277f2afe15ae981a66ce9.png", + "itemType": 0, + "visibility": 1 + }, + "281": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "UnderTheSea", + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "UnderTheSea", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/281/avatar.png/e57440b2ab4016261bd16c249c4d48d1.png", + "itemType": 0, + "visibility": 1 + }, + "282": { + "Id": 282, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JuntoATi", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/282/avatar.png/882abf5eacdad36ecba7c170c65ea7ca.png", + "itemType": 0, + "visibility": 1 + }, + "283": { + "Id": 283, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BornThisWayALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/283/avatar.png/ac928afa7ab383e312c22e90108811ce.png", + "itemType": 0, + "visibility": 1 + }, + "284": { + "Id": 284, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Rabiosa", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/284/avatar.png/aa202db47ed939d55eada67548d576db.png", + "itemType": 0, + "visibility": 1 + }, + "285": { + "Id": 285, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RabiosaALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/285/avatar.png/bc76fc0a819716bead6e57552a729892.png", + "itemType": 0, + "visibility": 1 + }, + "286": { + "Id": 286, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Lights", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/286/avatar.png/68e34ea9800a6b02fb2c1aa075e8c8ea.png", + "itemType": 0, + "visibility": 1 + }, + "287": { + "Id": 287, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HeyMamaALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_ChinaGirl", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/287/avatar.png/cdb706142acbfbe99be2ec4809df60bd.png", + "itemType": 0, + "visibility": 1 + }, + "288": { + "Id": 288, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WantToWantMe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/288/avatar.png/49859fdeba920017e8a9dc7aed1c7475.png", + "itemType": 0, + "visibility": 1 + }, + "289": { + "Id": 289, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "StadiumFlow", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/289/avatar.png/bcb4a73abbf16425c7c54de54da60839.png", + "itemType": 0, + "visibility": 1 + }, + "290": { + "Id": 290, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KaboomPow", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/290/avatar.png/6a9117aa3ba2604429c441dcb71f8d1a.png", + "itemType": 0, + "visibility": 1 + }, + "291": { + "Id": 291, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KungFunk", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/291/avatar.png/ccaa0892665ecfd22ae3b6e57f9132d3.png", + "itemType": 0, + "visibility": 1 + }, + "292": { + "Id": 292, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Gibberish", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/292/avatar.png/1682df7d62960bce70f8ddaf16cea1f2.png", + "itemType": 0, + "visibility": 1 + }, + "293": { + "Id": 293, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Fancy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/293/avatar.png/c035e6dd5f34d9621f6ed6f3f9084528.png", + "itemType": 0, + "visibility": 1 + }, + "294": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "CopaCabana", + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CopaCabana", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Lion", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/294/avatar.png/50d60b2e36136231124535f197fdcea5.png", + "itemType": 0, + "visibility": 1 + }, + "295": { + "Id": 295, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Albatraoz", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/295/avatar.png/8737b74ac6092e5aad3e5f839fc81bc6.png", + "itemType": 0, + "visibility": 1 + }, + "296": { + "Id": 296, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AnimalsALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/296/avatar.png/72215d5ee09cf06e1d1c519c160c8477.png", + "itemType": 0, + "visibility": 1 + }, + "297": { + "Id": 297, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CircusALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/297/avatar.png/9b039c23c59fef513017af320b86c01d.png", + "itemType": 0, + "visibility": 1 + }, + "298": { + "Id": 298, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FancyALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Girllywood", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/298/avatar.png/25711aa336aafb968b82b21e5d7a5d3d.png", + "itemType": 0, + "visibility": 1 + }, + "299": { + "Id": 299, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Heartbeat", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/299/avatar.png/2c2767691c8a7261b15b5fbef73e1d2d.png", + "itemType": 0, + "visibility": 1 + }, + "300": { + "Id": 300, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HitTheRoadALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/300/avatar.png/dc5fa8bd00cb855e555a8a90369ad5ba.png", + "itemType": 0, + "visibility": 1 + }, + "301": { + "Id": 301, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NoControl", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/301/avatar.png/17611d07fc2056061d885492b95ffc60.png", + "itemType": 0, + "visibility": 1 + }, + "303": { + "Id": 303, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ThisIsHow", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/303/avatar.png/7fe587250435c7a75df91f9a25d08bfa.png", + "itemType": 0, + "visibility": 1 + }, + "304": { + "Id": 304, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ThisIsHowALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/304/avatar.png/c7071828f806f19937a762d8874c2872.png", + "itemType": 0, + "visibility": 1 + }, + "305": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WantToWantMeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WantToWantMeALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/305/avatar.png/397f854e2977861621a52a6b3a828e8d.png", + "itemType": 0, + "visibility": 1 + }, + "306": { + "Id": 306, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Fun", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/306/avatar.png/d83f1c23d3f5987dc25f6e8981b19f59.png", + "itemType": 0, + "visibility": 1 + }, + "307": { + "Id": 307, + "JDNowVersion": 2016, + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Coolos", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/307/avatar.png/3c84e571c1721307b879ec080fc60ba5.png", + "itemType": 0, + "visibility": 1 + }, + "308": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_AC", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e67db92f-c24a-4651-b235-2657a09492bf/avtr_uplay_ac_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ca42e80c-0bb6-48fd-85ef-77127a1f2b44/avtr_uplay_ac_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/06acccda-4d3d-443d-9999-33cc2dbea8c9/avtr_uplay_ac_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39367c6e-eea5-46f1-a165-c0d3982d9864/avtr_uplay_ac_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/308/avatar.png/22c19beb438fbb1d8a00ad4515edd905.png", + "itemType": 0, + "visibility": 1 + }, + "309": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_AC", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e67db92f-c24a-4651-b235-2657a09492bf/avtr_uplay_ac_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ca42e80c-0bb6-48fd-85ef-77127a1f2b44/avtr_uplay_ac_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/06acccda-4d3d-443d-9999-33cc2dbea8c9/avtr_uplay_ac_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39367c6e-eea5-46f1-a165-c0d3982d9864/avtr_uplay_ac_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/309/avatar.png/de06ffa595c50c9a72d82b93d71c5cb3.png", + "itemType": 0, + "visibility": 1 + }, + "310": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_AC", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e67db92f-c24a-4651-b235-2657a09492bf/avtr_uplay_ac_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ca42e80c-0bb6-48fd-85ef-77127a1f2b44/avtr_uplay_ac_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/06acccda-4d3d-443d-9999-33cc2dbea8c9/avtr_uplay_ac_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39367c6e-eea5-46f1-a165-c0d3982d9864/avtr_uplay_ac_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/310/avatar.png/d21062b4aceb2f55e6d225751a6e9440.png", + "itemType": 0, + "visibility": 1 + }, + "311": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_ValiantHearts", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/37ff0140-e89b-4991-b2d8-d33e39c32af2/avtr_uplay_valianthearts_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/9e303104-8048-4f37-88df-506bc11fe82a/avtr_uplay_valianthearts_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/efca185f-bf9a-480b-a8ec-c548196954d7/avtr_uplay_valianthearts_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1c6e99bf-1dc7-4af8-895a-1342d6748c3f/avtr_uplay_valianthearts_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/311/avatar.png/7e4f3061c2baecbca8b34c2a4190f24f.png", + "itemType": 0, + "visibility": 1 + }, + "312": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_FarCry4", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/eb965c16-6279-4887-955d-1783158a672a/avtr_uplay_farcry4_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c907a104-5434-4cca-8476-0da53b80cbb0/avtr_uplay_farcry4_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d83141c3-ec61-4e51-8b78-958087416778/avtr_uplay_farcry4_03.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/312/avatar.png/33094d5582aab17bf00cc8d15425473b.png", + "itemType": 0, + "visibility": 1 + }, + "313": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_Grow", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/97714d7e-c56c-4942-ab69-663c61414b05/avtr_uplay_grow_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a87ea368-a3c1-4b1d-a72c-09e27553ee82/avtr_uplay_grow_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/7cad3ff0-36d8-4477-a5e0-da4eec44d919/avtr_uplay_grow_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6ea3bf7a-51e9-4452-aa76-f43512b724bb/avtr_uplay_grow_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/313/avatar.png/dfb2305de2f5532df34f26fa0378ee5c.png", + "itemType": 0, + "visibility": 1 + }, + "314": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_ChildOfLight", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/14529b8e-ef37-43df-ad18-f4651640eab1/avtr_uplay_childoflight_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/59109ffd-dcc8-450b-89c9-252f80c1d84d/avtr_uplay_childoflight_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6c2b9fd9-3514-481e-bdfa-9f2acf7f1cd7/avtr_uplay_childoflight_03.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/314/avatar.png/92ec97f5938c6daa6d013557028b41da.png", + "itemType": 0, + "visibility": 1 + }, + "315": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_MightyQuest", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2dd2a459-ff72-4361-b178-769927183d37/avtr_uplay_mightyquest_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/9871e258-168f-4acd-ad67-94e1007196ea/avtr_uplay_mightyquest_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/8acd4336-4df2-4429-8575-0128fc18996b/avtr_uplay_mightyquest_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a8607ac1-87b3-4565-a2da-198605469e64/avtr_uplay_mightyquest_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/315/avatar.png/759d9a9037ab95594b7d048f11c63a4e.png", + "itemType": 0, + "visibility": 1 + }, + "337": { + "Id": 337, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AmericanGirlDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/337/avatar.png/b4dce5366cd96afb3c0e5982164f10b4.png", + "itemType": 0, + "visibility": 1 + }, + "339": { + "Id": 339, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OneWayDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/339/avatar.png/18e3c2ac9489d27fd1f6aa385e3456f0.png", + "itemType": 0, + "visibility": 1 + }, + "340": { + "Id": 340, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SexyAndIKnowItDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/340/avatar.png/3bc74ef86a8853500a93cb26db1f4a59.png", + "itemType": 0, + "visibility": 1 + }, + "341": { + "Id": 341, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhatAboutLoveDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/341/avatar.png/07d59e66d87bd05697d5d749c404ca00.png", + "itemType": 0, + "visibility": 1 + }, + "342": { + "Id": 342, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CantGetEnoughDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/342/avatar.png/ff11ac66e5922a12fea4b530b9cae912.png", + "itemType": 0, + "visibility": 1 + }, + "343": { + "Id": 343, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontYouWorryDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/343/avatar.png/65f5de2fed4a252a3228d2c9ae99cde5.png", + "itemType": 0, + "visibility": 1 + }, + "344": { + "Id": 344, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GangnamStyleDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_PsyGirl", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/344/avatar.png/28b76a27d8c503b8c55701042d5ead87.png", + "itemType": 0, + "visibility": 1 + }, + "345": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "soundFamily": "AVTR_Common_Brand", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/77a573c2-6962-4a8d-b5f5-5165a132c293/avtr_common_brand_01.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/345/avatar.png/0643cd7ac78f84ddc4fe597f7176855f.png", + "itemType": 0, + "visibility": 1 + }, + "346": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "soundFamily": "AVTR_PsyGirl", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/86a1d941-d666-4e3b-b546-81a9397fe05b/avtr_psygirl_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2f27a2b1-f794-455e-ad3b-e384acc722d4/avtr_psygirl_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/fc939a81-f2cb-4096-8bd1-4ebb5f219bc9/avtr_psygirl_03.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/346/avatar.png/3e3b9547748b12a81e83854c7258c934.png", + "itemType": 0, + "visibility": 1 + }, + "347": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Brand", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/77a573c2-6962-4a8d-b5f5-5165a132c293/avtr_common_brand_01.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/347/avatar.png/b4e11e8f8a7904cc4ddb165d2a164f8d.png", + "itemType": 0, + "visibility": 1 + }, + "348": { + "Id": 348, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "INeedYourLoveDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/348/avatar.png/6f11621cf4e3b92668685240d367ae11.png", + "itemType": 0, + "visibility": 1 + }, + "350": { + "Id": 350, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MainGirlDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/350/avatar.png/163e2a4aa8dc8a2bfd6750d0ccf09abd.png", + "itemType": 0, + "visibility": 1 + }, + "351": { + "Id": 351, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ThatPowerOSCDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/351/avatar.png/ad2350c675b6dc9a20895b6c98945a08.png", + "itemType": 0, + "visibility": 1 + }, + "352": { + "Id": 352, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DieYoungDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/352/avatar.png/7d339f165582fecb315c5da56c7e6490.png", + "itemType": 0, + "visibility": 1 + }, + "353": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Girl_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ad61a0b3-9510-48b6-b856-890730b9cdc4/avtr_common_girl_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/414be51c-f45d-4cf5-9a74-9a4c16af8ca3/avtr_common_girl_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c246e95a-c059-4ce6-945e-15ce421b88fd/avtr_common_girl_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1cb08c64-7df7-4c90-9f79-31396f8a72ac/avtr_common_girl_swag_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/353/avatar.png/5eb826c00ca5def6faaeea6d22dce3a9.png", + "itemType": 0, + "visibility": 1 + }, + "354": { + "Id": 354, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JustDanceSWTDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/354/avatar.png/2125c21e10bbe10b5b560df9e958b485.png", + "itemType": 0, + "visibility": 1 + }, + "355": { + "Id": 355, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RockNRollDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/355/avatar.png/5dd9a975214f7eee43886b86ec75363c.png", + "itemType": 0, + "visibility": 1 + }, + "357": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Panda", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6e39eab7-9178-4e32-ab64-af23e3c31c01/avtr_panda_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d57575ce-205e-411e-b693-deef08e0a1f7/avtr_panda_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ea6bcb1b-a814-450f-884c-e448fb198643/avtr_panda_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/49bbcfcd-db16-4a5f-85dd-40a96c9fa5ec/avtr_panda_04.ogg" + ], + "status": 3, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/357/avatar.png/abff4136e5f4128cf221313c4087968a.png", + "itemType": 0, + "visibility": 1 + }, + "358": { + "Id": 358, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BeautyAndABeatDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/358/avatar.png/df7832638f102c438f950950156e916e.png", + "itemType": 0, + "visibility": 1 + }, + "360": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Boy_HipHop", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/8120abb6-88e6-4e31-8342-4a5dcdeedeb2/avtr_common_boy_hiphop_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/8a2d298e-054f-4ca8-8590-78235470ec17/avtr_common_boy_hiphop_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d03f2f48-1d04-4d74-a9a2-03bee93d11e1/avtr_common_boy_hiphop_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39a23723-ea19-49a3-a4b7-71bb82145f25/avtr_common_boy_hiphop_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/360/avatar.png/70f753caef6976183555285d1a1fdbd6.png", + "itemType": 0, + "visibility": 1 + }, + "361": { + "Id": 361, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PartOfMeDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/361/avatar.png/c45bb7acee959bcfd54ac8b089c65333.png", + "itemType": 0, + "visibility": 1 + }, + "362": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Boy_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e7926efc-dd18-40b3-9643-66c83d3c1fa6/avtr_common_boy_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/866e40cd-6647-4c77-8988-ae5748f3907f/avtr_common_boy_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/77314970-4c6e-4c6f-aa2d-9efb27ed31c4/avtr_common_boy_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cc14b7f3-0b06-4e73-9fdc-fb7f992c2590/avtr_common_boy_swag_04.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d49cd1ba-1d04-4bad-97c9-4aada1de8bef/avtr_common_boy_swag_05.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/362/avatar.png/6e3ca64b89180fd03a36729b0f306f34.png", + "itemType": 0, + "visibility": 1 + }, + "364": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Girl_Secret", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dec3cdbd-9cd7-42d7-bae1-1086f08ee924/avtr_common_girl_secret_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e5ccf1e5-c140-45a9-874a-2000f29f6c05/avtr_common_girl_secret_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ceb105d3-9dd0-4e06-b9e6-0f49037072ff/avtr_common_girl_secret_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d767823a-736b-4c7a-9e2b-9d5071ff151e/avtr_common_girl_secret_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/364/avatar.png/4177c74289abea56fb210f672c2763e9.png", + "itemType": 0, + "visibility": 1 + }, + "365": { + "Id": 365, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WeRWhoWeRDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/365/avatar.png/677b58f2ec06195434eed082202ef4a4.png", + "itemType": 0, + "visibility": 1 + }, + "367": { + "Id": 367, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheWorldDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/367/avatar.png/41983af3348298f0bb30f8c49a2bf87a.png", + "itemType": 0, + "visibility": 1 + }, + "368": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "soundFamily": "AVTR_Common_Boy_Laugh", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2a4510d2-9e36-4972-8472-1ba03e515ddb/avtr_common_boy_laugh_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b0ad87a6-6346-48f3-8ff4-1fb1f94b117a/avtr_common_boy_laugh_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3efe82d0-8006-4a05-9463-95ebfe265504/avtr_common_boy_laugh_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/05fd9b50-c8ba-4c66-a382-96ff1a4d1e85/avtr_common_boy_laugh_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/368/avatar.png/f0403ec06f1b020dd37298ccbc84b836.png", + "itemType": 0, + "visibility": 1 + }, + "369": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Psy", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2d38a5e5-c25f-4bbf-a868-1cea8c91b6d0/avtr_psy_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3dd3b3a4-c5a9-4d07-97af-5b776aab8a9b/avtr_psy_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/aa8209d5-606c-43bf-bf85-9836256efd5c/avtr_psy_03.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/369/avatar.png/5a6f1b7170d54278cd0782b1d8b1b464.png", + "itemType": 0, + "visibility": 1 + }, + "370": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Girl_Hyper", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/60b63ade-d33a-49d3-af34-582dfd46ab80/avtr_common_girl_hyper_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/54308076-2d19-4c23-adb8-ecc51375e16b/avtr_common_girl_hyper_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/38db99ad-31e9-4899-9aed-d9901cb8e0e7/avtr_common_girl_hyper_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a539ee1f-62f8-4996-8666-b67b16a06256/avtr_common_girl_hyper_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/370/avatar.png/ce3316242e7382c3f9f1a4dd61db24c2.png", + "itemType": 0, + "visibility": 1 + }, + "371": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Boy_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e7926efc-dd18-40b3-9643-66c83d3c1fa6/avtr_common_boy_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/866e40cd-6647-4c77-8988-ae5748f3907f/avtr_common_boy_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/77314970-4c6e-4c6f-aa2d-9efb27ed31c4/avtr_common_boy_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cc14b7f3-0b06-4e73-9fdc-fb7f992c2590/avtr_common_boy_swag_04.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d49cd1ba-1d04-4bad-97c9-4aada1de8bef/avtr_common_boy_swag_05.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/371/avatar.png/8e8166607e45cbf03f19920494e6032a.png", + "itemType": 0, + "visibility": 1 + }, + "372": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Common_Girl_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ad61a0b3-9510-48b6-b856-890730b9cdc4/avtr_common_girl_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/414be51c-f45d-4cf5-9a74-9a4c16af8ca3/avtr_common_girl_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c246e95a-c059-4ce6-945e-15ce421b88fd/avtr_common_girl_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1cb08c64-7df7-4c90-9f79-31396f8a72ac/avtr_common_girl_swag_04.ogg" + ], + "status": 3, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/372/avatar.png/57c72ddbb94ff5832af88a78d678cc4f.png", + "itemType": 0, + "visibility": 1 + }, + "373": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Boy_Swag", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e7926efc-dd18-40b3-9643-66c83d3c1fa6/avtr_common_boy_swag_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/866e40cd-6647-4c77-8988-ae5748f3907f/avtr_common_boy_swag_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/77314970-4c6e-4c6f-aa2d-9efb27ed31c4/avtr_common_boy_swag_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cc14b7f3-0b06-4e73-9fdc-fb7f992c2590/avtr_common_boy_swag_04.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d49cd1ba-1d04-4bad-97c9-4aada1de8bef/avtr_common_boy_swag_05.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/373/avatar.png/1493a0c0d15133dd6349e3c21ff28f91.png", + "itemType": 0, + "visibility": 1 + }, + "374": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Boy_Techno", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/54ce0909-80dd-4224-ba6b-88599f51b272/avtr_common_boy_techno_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/085239be-93a1-4566-93b5-5578b8be1c5f/avtr_common_boy_techno_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/190bde3b-cd43-4b7e-88c5-103eb72fe7e4/avtr_common_boy_techno_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6e49af02-62d2-41ed-bea1-9d263cb45f30/avtr_common_boy_techno_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/374/avatar.png/6ac8ee15cfe92c6ecc64f55fc5e15eaa.png", + "itemType": 0, + "visibility": 1 + }, + "375": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Boy_Laugh", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2a4510d2-9e36-4972-8472-1ba03e515ddb/avtr_common_boy_laugh_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b0ad87a6-6346-48f3-8ff4-1fb1f94b117a/avtr_common_boy_laugh_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3efe82d0-8006-4a05-9463-95ebfe265504/avtr_common_boy_laugh_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/05fd9b50-c8ba-4c66-a382-96ff1a4d1e85/avtr_common_boy_laugh_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/375/avatar.png/34ce06f2ba8130b3ebf944c225867791.png", + "itemType": 0, + "visibility": 1 + }, + "376": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_ToyRobot", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cc452552-49d5-40e5-ab52-8b42acd6ff43/avtr_toyrobot_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/0bde2865-1d88-459f-9c5f-966b5e8c44af/avtr_toyrobot_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/21a4ab6d-530f-41b0-b3f4-445a31fa40c5/avtr_toyrobot_03.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/376/avatar.png/74c96ace9ce2c4a400487076eeb9e49a.png", + "itemType": 0, + "visibility": 1 + }, + "378": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "soundFamily": "AVTR_Common_Boy_Old", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ab9d56bd-7c2a-44f9-b871-299f3b6de20b/avtr_common_boy_old_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d63e3816-8bdc-4b62-84ae-c174c8d707fd/avtr_common_boy_old_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3406a84d-2897-486a-a6e9-c4b4eb431641/avtr_common_boy_old_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b9b92a27-b0cd-401b-9b22-bb4da4381f37/avtr_common_boy_old_04.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/529a6584-c816-463f-aff2-d66b27eccacf/avtr_common_boy_old_05.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/378/avatar.png/cb68a1019675b456a0041753598c2533.png", + "itemType": 0, + "visibility": 1 + }, + "380": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "soundFamily": "AVTR_Common_Boy_Laugh", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2a4510d2-9e36-4972-8472-1ba03e515ddb/avtr_common_boy_laugh_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b0ad87a6-6346-48f3-8ff4-1fb1f94b117a/avtr_common_boy_laugh_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3efe82d0-8006-4a05-9463-95ebfe265504/avtr_common_boy_laugh_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/05fd9b50-c8ba-4c66-a382-96ff1a4d1e85/avtr_common_boy_laugh_04.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/380/avatar.png/47de169648bf35074277f628a9b83d2e.png", + "itemType": 0, + "visibility": 1 + }, + "381": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "soundFamily": "AVTR_Common_Boy_Old", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ab9d56bd-7c2a-44f9-b871-299f3b6de20b/avtr_common_boy_old_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d63e3816-8bdc-4b62-84ae-c174c8d707fd/avtr_common_boy_old_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3406a84d-2897-486a-a6e9-c4b4eb431641/avtr_common_boy_old_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b9b92a27-b0cd-401b-9b22-bb4da4381f37/avtr_common_boy_old_04.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/529a6584-c816-463f-aff2-d66b27eccacf/avtr_common_boy_old_05.ogg" + ], + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/avatars/381/avatar.png/441c48d2426ca5856ed573466506b2b5.png", + "itemType": 0, + "visibility": 1 + }, + "382": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Horse", + "status": 2, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/382/avatar.png/d188daa1ca6f45ce9d5cf788b4f0a853.png", + "itemType": 0, + "visibility": 1 + }, + "383": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Penguin", + "status": 2, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/383/avatar.png/8121c60f63213b1c2fd33f4bf7309f5b.png", + "itemType": 0, + "visibility": 1 + }, + "385": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_SingingSock", + "status": 2, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/385/avatar.png/fd6ecb408f2055799ed8b408d6b52349.png", + "itemType": 0, + "visibility": 1 + }, + "387": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_ForHonor_Samourai", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/5592ad58-c8e4-48fa-9eb4-c4be594fa989/avtr_uplay_forhonor_samourai_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/374cc7c8-5482-4974-8c51-6ce8558ccc24/avtr_uplay_forhonor_samourai_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e30a0a8f-58fd-4e01-82d3-9ad427dc6a31/avtr_uplay_forhonor_samourai_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/8dbeaef7-4c13-4d75-b0cc-4321ea397e34/avtr_uplay_forhonor_samourai_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/387/avatar.png/16908212ccdced821d997ca8b75eeb74.png", + "itemType": 0, + "visibility": 1 + }, + "388": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_ForHonor_Viking", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/1a2a677f-2953-47b6-ba0f-88854be949d3/avtr_uplay_forhonor_viking_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/4daee5ea-66ce-4cc5-977a-5944b28cd1dc/avtr_uplay_forhonor_viking_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/12a6eea3-5db3-4a4a-be2e-e1f764819b1f/avtr_uplay_forhonor_viking_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/7ad13bbb-f238-44c9-90d3-1a1d5d5d4668/avtr_uplay_forhonor_viking_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/388/avatar.png/4c59bf438924fa80c04af8555ef19464.png", + "itemType": 0, + "visibility": 1 + }, + "389": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_ForHonor_Knight", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/25dffa71-73f7-46a4-9838-3f5247848ec0/avtr_uplay_forhonor_knight_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cbbe42ae-a15a-4c1a-8894-77022ba260e9/avtr_uplay_forhonor_knight_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/96595e03-d0df-4e84-8848-0f17c9309083/avtr_uplay_forhonor_knight_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c4c33ed1-a207-4f05-bfb7-03ab165bcfd6/avtr_uplay_forhonor_knight_04.ogg" + ], + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/389/avatar.png/7213a256e27236c07a0bad35a69bc188.png", + "itemType": 0, + "visibility": 1 + }, + "390": { + "Id": 390, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Amore", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/390/avatar.png/4184f70dc099830303344d3e84a816d5.png", + "itemType": 0, + "visibility": 1 + }, + "391": { + "Id": 391, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BabyOneMoreQUAT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/391/avatar.png/dc7e57336de94a5295edc2d460b2fca0.png", + "itemType": 0, + "visibility": 1 + }, + "393": { + "Id": 393, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BigGirl", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/393/avatar.png/7a672cfc146b476de032eeb8d48bcf73.png", + "itemType": 0, + "visibility": 1 + }, + "394": { + "Id": 394, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BoomClapDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/394/avatar.png/5420ac497c27078716536236f65bb223.png", + "itemType": 0, + "visibility": 1 + }, + "395": { + "Id": 395, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BoomDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/395/avatar.png/2e6f3c385fb07b0931835c546e9d40e4.png", + "itemType": 0, + "visibility": 1 + }, + "396": { + "Id": 396, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BreakFreeDLC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/396/avatar.png/f7571fe97753eeacd7ca5e292902b704.png", + "itemType": 0, + "visibility": 1 + }, + "397": { + "Id": 397, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CantTouchThis", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/397/avatar.png/a5e8cc0ab86f60ee1b818bc8e699cfe6.png", + "itemType": 0, + "visibility": 1 + }, + "398": { + "Id": 398, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Cotton", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/398/avatar.png/4b0a8f9ef044d86ebefe21b07dcda3b9.png", + "itemType": 0, + "visibility": 1 + }, + "399": { + "Id": 399, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Domino", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/399/avatar.png/3336d9eee749955d9ee8805d41902917.png", + "itemType": 0, + "visibility": 1 + }, + "400": { + "Id": 400, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Fame", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/400/avatar.png/8bfb86a34644ba6abc0662c12b9d0f1f.png", + "itemType": 0, + "visibility": 1 + }, + "401": { + "Id": 401, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Futebol", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/401/avatar.png/a843be9f21e1c8f12ac3528ab418abf3.png", + "itemType": 0, + "visibility": 1 + }, + "402": { + "Id": 402, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Girlfriend", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/402/avatar.png/979dbd8ef79c80c8db24584a1f23f97c.png", + "itemType": 0, + "visibility": 1 + }, + "403": { + "Id": 403, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HotStuff", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/403/avatar.png/9add21bcfdb4b76445f4d8ccf678a135.png", + "itemType": 0, + "visibility": 1 + }, + "404": { + "Id": 404, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NoLimit", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/404/avatar.png/cf3e09262a4cbd6c666a1dad03baaa39.png", + "itemType": 0, + "visibility": 1 + }, + "405": { + "Id": 405, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Superstition", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/405/avatar.png/5cc6ac7169d0c251db5efacfd6577350.png", + "itemType": 0, + "visibility": 1 + }, + "406": { + "Id": 406, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TakeOnMe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/406/avatar.png/ea3cdc94b4eb1a6eb6f79271a9a8d96c.png", + "itemType": 0, + "visibility": 1 + }, + "407": { + "Id": 407, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TikTok", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/407/avatar.png/38e9f71ac7e2e9b0752ceda2c9ad5bed.png", + "itemType": 0, + "visibility": 1 + }, + "408": { + "Id": 408, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TribalDance", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/408/avatar.png/5875e6353a7cbb60b5aa2bc845bc36c0.png", + "itemType": 0, + "visibility": 1 + }, + "409": { + "Id": 409, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TwistShakeIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/409/avatar.png/8d83c4a5b3d7d655d5137faae06df013.png", + "itemType": 0, + "visibility": 1 + }, + "410": { + "Id": 410, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WalkLike", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/410/avatar.png/466fbefc1ce8f94e88da193c7d58c077.png", + "itemType": 0, + "visibility": 1 + }, + "411": { + "Id": 411, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WantUBack", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/411/avatar.png/6435fe533d81ef2b307aab80c2c56f1f.png", + "itemType": 0, + "visibility": 1 + }, + "412": { + "Id": 412, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CantHurryLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/412/avatar.png/fa50dedd18aea7663c400c46fbef4f7a.png", + "itemType": 0, + "visibility": 1 + }, + "413": { + "Id": 413, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GoodFeeling", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/413/avatar.png/14d7becb767a6e454b109e601f866bc6.png", + "itemType": 0, + "visibility": 1 + }, + "414": { + "Id": 414, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HeartOfGlass", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/414/avatar.png/8cc9ae83058aa96bf457ef3045075183.png", + "itemType": 0, + "visibility": 1 + }, + "415": { + "Id": 415, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HeavyCross", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/415/avatar.png/3a6573a6352d6d7218a50400d463700d.png", + "itemType": 0, + "visibility": 1 + }, + "416": { + "Id": 416, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HitEmUp", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/416/avatar.png/ad459b01fc18d8511c7080aabdc7c88c.png", + "itemType": 0, + "visibility": 1 + }, + "417": { + "Id": 417, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HitTheLights", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/417/avatar.png/5abf86031fce52e115e2f8a2d0a00705.png", + "itemType": 0, + "visibility": 1 + }, + "419": { + "Id": 419, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Idealistic", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Robot", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/419/avatar.png/8a3676ad020055e3f870ec41cb59b3b2.png", + "itemType": 0, + "visibility": 1 + }, + "420": { + "Id": 420, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ILikeItLike", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/420/avatar.png/19eff63b6a87cddca23e60161d61e355.png", + "itemType": 0, + "visibility": 1 + }, + "421": { + "Id": 421, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IWantYouBack", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/421/avatar.png/63ac78b75472d6a896c1a3916a2a8771.png", + "itemType": 0, + "visibility": 1 + }, + "422": { + "Id": 422, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GlamorousCusto", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/422/avatar.png/4baf27bb65d91cb1295913cb8005e276.png", + "itemType": 0, + "visibility": 1 + }, + "423": { + "Id": 423, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IndiaWaale", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boyllywood", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/423/avatar.png/73a161c75b6229908b01fce80266a644.png", + "itemType": 0, + "visibility": 1 + }, + "424": { + "Id": 424, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JaiHo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/424/avatar.png/14ff0d94e494c1d1d7c2a210dd1d5ed8.png", + "itemType": 0, + "visibility": 1 + }, + "425": { + "Id": 425, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JamboMambo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/425/avatar.png/1203fc835922a4643c0cef608297076d.png", + "itemType": 0, + "visibility": 1 + }, + "426": { + "Id": 426, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KetchupSong", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/426/avatar.png/665f40de13c04ff82eb249c0820e093b.png", + "itemType": 0, + "visibility": 1 + }, + "427": { + "Id": 427, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Kurio", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/427/avatar.png/868714013b5e43b2d09d8b3b2f771c6c.png", + "itemType": 0, + "visibility": 1 + }, + "428": { + "Id": 428, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Lollipop", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/428/avatar.png/a92d6cceac870739c2343da76ea48687.png", + "itemType": 0, + "visibility": 1 + }, + "429": { + "Id": 429, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Mamasita", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/429/avatar.png/c52caf2946b311c00595928c642251a6.png", + "itemType": 0, + "visibility": 1 + }, + "430": { + "Id": 430, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Mambo5", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/430/avatar.png/106abe28eaf03147ccb3091f3e6d087a.png", + "itemType": 0, + "visibility": 1 + }, + "431": { + "Id": 431, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MasterBlaster", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/431/avatar.png/ff2e606a3ead32f25c8ff876b340edde.png", + "itemType": 0, + "visibility": 1 + }, + "432": { + "Id": 432, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MoveYourFeet", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/432/avatar.png/64e5d080a38a15ff289ad7fe001e7d27.png", + "itemType": 0, + "visibility": 1 + }, + "433": { + "Id": 433, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OhNo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/433/avatar.png/4be9625c6a01bafeeca48b3245e70dc3.png", + "itemType": 0, + "visibility": 1 + }, + "435": { + "Id": 435, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ThatsTheWay", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/435/avatar.png/acdc32c0982360e5a70f0a29dc33147e.png", + "itemType": 0, + "visibility": 1 + }, + "436": { + "Id": 436, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheFinalCountdown", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/436/avatar.png/312034a093342418c2068b3ef82bca28.png", + "itemType": 0, + "visibility": 1 + }, + "438": { + "Id": 438, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PrimaDonna", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/438/avatar.png/038e7724d8ed7d5dd6543391a48c335a.png", + "itemType": 0, + "visibility": 1 + }, + "439": { + "Id": 439, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RiverSide", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/439/avatar.png/ad96fc9e8d969dbfc536d2205bcd70ee.png", + "itemType": 0, + "visibility": 1 + }, + "440": { + "Id": 440, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "StepByStep", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/440/avatar.png/40146e2b94680d559ad613b1419ff73f.png", + "itemType": 0, + "visibility": 1 + }, + "441": { + "Id": 441, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SoulSearch", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/441/avatar.png/3c58a49c98c8e6bfb2bb5988ddd82801.png", + "itemType": 0, + "visibility": 1 + }, + "442": { + "Id": 442, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TeenageDream", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/442/avatar.png/0fbc53b632dc07fe0b1204bbdae8fc2f.png", + "itemType": 0, + "visibility": 1 + }, + "443": { + "Id": 443, + "JDNowVersion": 2015, + "__class": "OnlineCustomizableItem", + "jdVersion": 2015, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LetItGo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/443/avatar.png/6bc2ca6999fd0f20d85408cf5b466a39.png", + "itemType": 0, + "visibility": 1 + }, + "444": { + "Id": 444, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JailHouse", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/444/avatar.png/916a9d88818a795a12ae6cfc82dfad2c.png", + "itemType": 0, + "visibility": 1 + }, + "445": { + "Id": 445, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ET", + "relativeWDFBossName": "", + "soundFamily": "AVTR_ChinaGirl", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/445/avatar.png/bf4f7f670bdf153014156cf581164e8a.png", + "itemType": 0, + "visibility": 1 + }, + "446": { + "Id": 446, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CrazyLittle", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/446/avatar.png/526c284a633a1f036b37c9e18c9e2454.png", + "itemType": 0, + "visibility": 1 + }, + "447": { + "Id": 447, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PrinceAli", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/447/avatar.png/83a445401cc920f37590f16950f803ec.png", + "itemType": 0, + "visibility": 1 + }, + "448": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Ghostbusters", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/448/avatar.png/01dbcadd50b07ac6a4961bda2770ff5b.png", + "itemType": 0, + "visibility": 1 + }, + "449": { + "JdNowVersion": 5, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Ghostbusters", + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Ghostbusters", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/449/avatar.png/4279debdf2752a5682f1d13433032889.png", + "itemType": 0, + "visibility": 1 + }, + "450": { + "Id": 450, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Cheerleader", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/450/avatar.png/b3160682928e3fedd6163dc904a43a67.png", + "itemType": 0, + "visibility": 1 + }, + "451": { + "Id": 451, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Ulibayssia", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/451/avatar.png/df2200e999591b754ec27b519ee4bc37.png", + "itemType": 0, + "visibility": 1 + }, + "452": { + "Id": 452, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "2", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Throne", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/452/avatar.png/121f583f57a62e2db5836ff5519b6139.png", + "itemType": 0, + "visibility": 1 + }, + "453": { + "Id": 453, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "3", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Scepter", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/453/avatar.png/1c93f4497feab8a0a6df0d9a8d7050a7.png", + "itemType": 0, + "visibility": 1 + }, + "454": { + "Id": 454, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "4", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Ring", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/454/avatar.png/63ab78abf6197f2a64e32fe9c62b5423.png", + "itemType": 0, + "visibility": 1 + }, + "455": { + "Id": 455, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "5", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Halloween", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/455/avatar.png/02df7870cea74a7bf421b68b61df3611.png", + "itemType": 0, + "visibility": 1 + }, + "456": { + "Id": 456, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CryingBlood", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/456/avatar.png/42de6df29c77c1370bd00ca0e338d74f.png", + "itemType": 0, + "visibility": 1 + }, + "457": { + "Id": 457, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JumpGA", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/457/avatar.png/f32b4bdfbea4cf695e94a52699ad6501.png", + "itemType": 0, + "visibility": 1 + }, + "458": { + "Id": 458, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Oath", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/458/avatar.png/2b556fee76e307cc2d850483c454930a.png", + "itemType": 0, + "visibility": 1 + }, + "459": { + "Id": 459, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Potato", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/459/avatar.png/91382813baab3675732b5bbaaee13a15.png", + "itemType": 0, + "visibility": 1 + }, + "460": { + "Id": 460, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HungarianDance", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/460/avatar.png/97e7b0aeb2acbd19dbbc35657f69a7fb.png", + "itemType": 0, + "visibility": 1 + }, + "461": { + "JdNowVersion": 5, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "YMCA", + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "YMCA", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/461/avatar.png/d40cc6491b60f5c8b18fa7747bf63647.png", + "itemType": 0, + "visibility": 1 + }, + "466": { + "Id": 466, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "StarshipsALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/466/avatar.png/a65d66af5f423950aeebbf96b13f100d.png", + "itemType": 0, + "visibility": 1 + }, + "467": { + "Id": 467, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JailHouseALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/467/avatar.png/7cebdc6221cfc6516e4e1a8e16bbaa19.png", + "itemType": 0, + "visibility": 1 + }, + "468": { + "Id": 468, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BetterWhen", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/468/avatar.png/967e3d3a58616c0a6a7ba8996c4d2f87.png", + "itemType": 0, + "visibility": 1 + }, + "469": { + "Id": 469, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "6", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Royal", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/469/avatar.png/48751f6fd46fff1713d921d4272ad149.png", + "itemType": 0, + "visibility": 1 + }, + "470": { + "Id": 470, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "7", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Castle", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/470/avatar.png/447923200dedd607530346a3becf8ad9.png", + "itemType": 0, + "visibility": 1 + }, + "471": { + "Id": 471, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Airplanes", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/471/avatar.png/45ae45a2c7f0dd329bb3401943433f30.png", + "itemType": 0, + "visibility": 1 + }, + "472": { + "Id": 472, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ThatPowerALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/472/avatar.png/59cc74d15eab36e7afae2387f388116c.png", + "itemType": 0, + "visibility": 1 + }, + "473": { + "Id": 473, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TurnUpTheLoveALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/473/avatar.png/c1e58f6a9fc9f06f8c650f28145cddf3.png", + "itemType": 0, + "visibility": 1 + }, + "474": { + "Id": 474, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GirlsJustWant", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/474/avatar.png/5d087626df817f1891297bf8de7eda5f.png", + "itemType": 0, + "visibility": 1 + }, + "475": { + "Id": 475, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LeFreak", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/475/avatar.png/df4b5fcc4911d61e3f08bb409bef97d0.png", + "itemType": 0, + "visibility": 1 + }, + "476": { + "Id": 476, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ItsRainingMen", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/476/avatar.png/a3c6a4caebf6ccc7c6eaffe200fd322d.png", + "itemType": 0, + "visibility": 1 + }, + "478": { + "Id": 478, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LeanOn", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/478/avatar.png/2bfcf3cca45c174757d6497afc0fcf49.png", + "itemType": 0, + "visibility": 1 + }, + "479": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Common_Boy_Laugh", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2a4510d2-9e36-4972-8472-1ba03e515ddb/avtr_common_boy_laugh_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/b0ad87a6-6346-48f3-8ff4-1fb1f94b117a/avtr_common_boy_laugh_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3efe82d0-8006-4a05-9463-95ebfe265504/avtr_common_boy_laugh_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/05fd9b50-c8ba-4c66-a382-96ff1a4d1e85/avtr_common_boy_laugh_04.ogg" + ], + "status": 3, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/479/avatar.png/dd95a9581482485a180c2c18dd18b3e9.png", + "itemType": 0, + "visibility": 1 + }, + "480": { + "Id": 480, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ScreamNShout", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/480/avatar.png/10f7b0dd14f54ebf27938454b87b0888.png", + "itemType": 0, + "visibility": 1 + }, + "481": { + "Id": 481, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ScreamNShoutALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/481/avatar.png/3938996b8ca7fa72770a85fa080fff97.png", + "itemType": 0, + "visibility": 1 + }, + "482": { + "Id": 482, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "8", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_RoyalKey", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/482/avatar.png/d5bd9d30314103c7b461d5114dbc4d68.png", + "itemType": 0, + "visibility": 1 + }, + "483": { + "Id": 483, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "9", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_NewYear2016", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/483/avatar.png/a35686d3886f8b4e8d0da869bff0b3cd.png", + "itemType": 0, + "visibility": 1 + }, + "485": { + "Id": 485, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ShutUp", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/485/avatar.png/81184ec39e5e116a0baf182ac7b3a01e.png", + "itemType": 0, + "visibility": 1 + }, + "486": { + "Id": 486, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GentlemanSWT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/486/avatar.png/c76d68c98af28a7e91954f1904d83625.png", + "itemType": 0, + "visibility": 1 + }, + "487": { + "Id": 487, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GhostbustersSWT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/487/avatar.png/19471de4f21b28f5ac0ba52956b354ad.png", + "itemType": 0, + "visibility": 1 + }, + "488": { + "Id": 488, + "JDNowVersion": 3, + "__class": "OnlineCustomizableItem", + "jdVersion": 3, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Promiscuous", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/488/avatar.png/e4213a904f0f6bb96b493fa9b6929298.png", + "itemType": 0, + "visibility": 1 + }, + "489": { + "Id": 489, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "14", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Mushroom", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/489/avatar.png/eb9b146e091c6aa8dee4a7852a81efe5.png", + "itemType": 0, + "visibility": 1 + }, + "491": { + "Id": 491, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AmIWrong", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/491/avatar.png/230412bf253d50e77718feb5b50c659c.png", + "itemType": 0, + "visibility": 1 + }, + "494": { + "Id": 494, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GimmeGimmeOSC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/494/avatar.png/d2ea9427f4088c58a8a37e10648b6760.png", + "itemType": 0, + "visibility": 1 + }, + "495": { + "Id": 495, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IKissedOSC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/495/avatar.png/170414b84a22e70e774b4fae0adc36f3.png", + "itemType": 0, + "visibility": 1 + }, + "496": { + "Id": 496, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "11", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_PineFlower", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/496/avatar.png/ace688cbbcf3dd6f6c24af080825c9fc.png", + "itemType": 0, + "visibility": 1 + }, + "497": { + "Id": 497, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GetUgly", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/497/avatar.png/9d2e1d738145c7f5797b5feb22bfe1a9.png", + "itemType": 0, + "visibility": 1 + }, + "498": { + "Id": 498, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Hips", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/498/avatar.png/8e65478b8e5a3f44d94f53f46d7de98c.png", + "itemType": 0, + "visibility": 1 + }, + "499": { + "Id": 499, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhatIsLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/499/avatar.png/c3773d152c0e64f19aade5b57d537eb6.png", + "itemType": 0, + "visibility": 1 + }, + "500": { + "Id": 500, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WorthItALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/500/avatar.png/602e2c5d239a83d905a67de754a43b6c.png", + "itemType": 0, + "visibility": 1 + }, + "501": { + "Id": 501, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TasteTheFeeling", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/501/avatar.png/11a275ea688773be6261afeaa36e87c9.png", + "itemType": 0, + "visibility": 1 + }, + "503": { + "Id": 503, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GoodFeelingALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/503/avatar.png/c35619b05d57735a242a99668857d7ca.png", + "itemType": 0, + "visibility": 1 + }, + "504": { + "Id": 504, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontStopMe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/504/avatar.png/295ff7f3dc8be4219d22b6e798498508.png", + "itemType": 0, + "visibility": 1 + }, + "505": { + "Id": 505, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Daddy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/505/avatar.png/0669aaab51879ccd467971a0ec24c689.png", + "itemType": 0, + "visibility": 1 + }, + "506": { + "Id": 506, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TicoTico", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/506/avatar.png/1f7a7c0bd083fceaa968c8688bf4197a.png", + "itemType": 0, + "visibility": 1 + }, + "507": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Common_Girl_Kawaii", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dd517fdd-3250-4ffc-a91d-153c11c6cdbf/avtr_common_girl_kawaii_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/01eb9803-93b8-4cc3-bd63-e30e33942fd8/avtr_common_girl_kawaii_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cd00d7c7-3fb8-4a7e-9204-153a3b6417fd/avtr_common_girl_kawaii_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c6b99d50-18a9-4efc-8d13-c0dd6e387b84/avtr_common_girl_kawaii_04.ogg" + ], + "status": 3, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/507/avatar.png/ee88c213abbb5b63a9b0524342690162.png", + "itemType": 0, + "visibility": 1 + }, + "508": { + "Id": 508, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "13", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Easter", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/508/avatar.png/ed6951d1e9e89003e083e20f176744b3.png", + "itemType": 0, + "visibility": 1 + }, + "509": { + "Id": 509, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "12", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Lucky", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/509/avatar.png/f50ab3d8e32df0b36ed249e314be2306.png", + "itemType": 0, + "visibility": 1 + }, + "510": { + "Id": 510, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "15", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_CupCake", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/510/avatar.png/6c3d76713ac84b81d78e054b1518ee75.png", + "itemType": 0, + "visibility": 1 + }, + "511": { + "Id": 511, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ItsYouSWT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/511/avatar.png/411d3b75088e48b5f71617bad9c2bb7f.png", + "itemType": 0, + "visibility": 1 + }, + "512": { + "Id": 512, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IKissedSWT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/512/avatar.png/938cace1dc27cfb5479632074db28e68.png", + "itemType": 0, + "visibility": 1 + }, + "513": { + "Id": 513, + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Holiday", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/513/avatar.png/9d6e434512d79a7d23b8b09db331cb06.png", + "itemType": 0, + "visibility": 1 + }, + "515": { + "Id": 515, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TasteTheFeelingALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/515/avatar.png/e5b6a4848113f78e06c9820fb1554eb0.png", + "itemType": 0, + "visibility": 1 + }, + "516": { + "Id": 516, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Samba", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/516/avatar.png/82c215ef2e6c7ce4a47921565ee4b8e9.png", + "itemType": 0, + "visibility": 1 + }, + "517": { + "Id": 517, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Radical", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Radical", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/517/avatar.png/8f7c5b343782883ed6ee163cb4195fed.png", + "itemType": 0, + "visibility": 1 + }, + "518": { + "Id": 518, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PoPiPo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Carrot", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/518/avatar.png/868ff844cdc74b253aedfec198e3ffd4.png", + "itemType": 0, + "visibility": 1 + }, + "519": { + "Id": 519, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LeanOnALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/519/avatar.png/d945be39d163503521c924b334c3df63.png", + "itemType": 0, + "visibility": 1 + }, + "520": { + "Id": 520, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "September", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/520/avatar.png/3c51d68a297879e75214308183f95750.png", + "itemType": 0, + "visibility": 1 + }, + "522": { + "Id": 522, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ElTiki", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/522/avatar.png/bbf22e84a8f9318622b2b0b598046622.png", + "itemType": 0, + "visibility": 1 + }, + "524": { + "Id": 524, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GhostInTheKeys", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ghost", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/524/avatar.png/86b67d3de6b6597d2331a61f0cd2397c.png", + "itemType": 0, + "visibility": 1 + }, + "525": { + "Id": 525, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhatIsLoveALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/525/avatar.png/9d9ea31ba0091a0019624fa0d59cb00e.png", + "itemType": 0, + "visibility": 1 + }, + "526": { + "Id": 526, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontStopMeALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/526/avatar.png/f88dd4fbc976e5d9a401c6ffa0709c1c.png", + "itemType": 0, + "visibility": 1 + }, + "527": { + "Id": 527, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WorthIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/527/avatar.png/b8778c4cdf716cbc5958d8996a8b6814.png", + "itemType": 0, + "visibility": 1 + }, + "528": { + "Id": 528, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Titanium", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/528/avatar.png/2d158d2558577c4b3c65775223dcea77.png", + "itemType": 0, + "visibility": 1 + }, + "529": { + "Id": 529, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Sorry", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/529/avatar.png/afff94b95e9728d0a24ce2720ac79396.png", + "itemType": 0, + "visibility": 1 + }, + "530": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "LazerCat", + "soundFamily": "AVTR_Boss_Cat", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/530/avatar.png/294fcadf920c1802aa3fec13d96b7f8a.png", + "itemType": 0, + "visibility": 0 + }, + "531": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "RocketCat", + "soundFamily": "AVTR_Boss_Cat", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/531/avatar.png/89ef853586f0edb46f34306e03cda425.png", + "itemType": 0, + "visibility": 0 + }, + "532": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "KeytarCat", + "soundFamily": "AVTR_Boss_Cat", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/532/avatar.png/ee7d0b0d8c1d419239fe5e6b1c61e9e2.png", + "itemType": 0, + "visibility": 0 + }, + "533": { + "Id": 533, + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HoldMyHand", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/533/avatar.png/cf4af6da0f98b93d2bc1da8a2a800595.png", + "itemType": 0, + "visibility": 1 + }, + "534": { + "Id": 534, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "17", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_SpellBook", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/534/avatar.png/270c85baaa5319de1d53c69f9d02a872.png", + "itemType": 0, + "visibility": 1 + }, + "535": { + "Id": 535, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "16", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Lily", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/535/avatar.png/192e9206fd79140341b0bba40df72de3.png", + "itemType": 0, + "visibility": 1 + }, + "536": { + "Id": 536, + "JDNowVersion": 1, + "__class": "OnlineCustomizableItem", + "jdVersion": 1, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Acceptable", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/536/avatar.png/c6e41409d72e85c406177ee1de073afc.png", + "itemType": 0, + "visibility": 1 + }, + "539": { + "Id": 539, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SeptemberALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/539/avatar.png/5c338982ca08bbb04e9ce959b8d1d5d8.png", + "itemType": 0, + "visibility": 1 + }, + "541": { + "Id": 541, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DaddyALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/541/avatar.png/ab048ebd72b54ebefc0d8909a60b1818.png", + "itemType": 0, + "visibility": 1 + }, + "542": { + "Id": 542, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CheapThrills", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/542/avatar.png/f460254bd8466d0a71df04d8068f9ac8.png", + "itemType": 0, + "visibility": 1 + }, + "543": { + "Id": 543, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RunTheNight", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/543/avatar.png/63229c5feae38c544bdb7e825a5b13ae.png", + "itemType": 0, + "visibility": 1 + }, + "544": { + "Id": 544, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Oishii", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Oishii", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/544/avatar.png/6dab1d55613268d0502050c5a170ea8d.png", + "itemType": 0, + "visibility": 1 + }, + "545": { + "Id": 545, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CantFeelMyFace", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/545/avatar.png/fc2cce46f67e23c494466111bb8330d7.png", + "itemType": 0, + "visibility": 1 + }, + "546": { + "Id": 546, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DragosteaDinTei", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/546/avatar.png/50c67f9fbcae42c0459d169a1a4ee902.png", + "itemType": 0, + "visibility": 1 + }, + "547": { + "Id": 547, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Groove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/547/avatar.png/93f51d2a4040cb2ff2435bf0ce91ad6e.png", + "itemType": 0, + "visibility": 1 + }, + "549": { + "Id": 549, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "18", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Lollipop", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/549/avatar.png/557de8b149354eeb4711efd30541c3c4.png", + "itemType": 0, + "visibility": 1 + }, + "550": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_AC", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e67db92f-c24a-4651-b235-2657a09492bf/avtr_uplay_ac_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ca42e80c-0bb6-48fd-85ef-77127a1f2b44/avtr_uplay_ac_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/06acccda-4d3d-443d-9999-33cc2dbea8c9/avtr_uplay_ac_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39367c6e-eea5-46f1-a165-c0d3982d9864/avtr_uplay_ac_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/550/avatar.png/1d5e90765afecc2d029fae1e749e8f19.png", + "itemType": 0, + "visibility": 1 + }, + "551": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_AC", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e67db92f-c24a-4651-b235-2657a09492bf/avtr_uplay_ac_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ca42e80c-0bb6-48fd-85ef-77127a1f2b44/avtr_uplay_ac_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/06acccda-4d3d-443d-9999-33cc2dbea8c9/avtr_uplay_ac_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39367c6e-eea5-46f1-a165-c0d3982d9864/avtr_uplay_ac_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/551/avatar.png/e1d494eeef8bc61cef645318a4a8fa94.png", + "itemType": 0, + "visibility": 1 + }, + "552": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_AC", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/e67db92f-c24a-4651-b235-2657a09492bf/avtr_uplay_ac_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/ca42e80c-0bb6-48fd-85ef-77127a1f2b44/avtr_uplay_ac_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/06acccda-4d3d-443d-9999-33cc2dbea8c9/avtr_uplay_ac_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/39367c6e-eea5-46f1-a165-c0d3982d9864/avtr_uplay_ac_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/552/avatar.png/194ab88a482e72b01708e78bf2e0e206.png", + "itemType": 0, + "visibility": 1 + }, + "553": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_FarCryPrimal", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/f5814f42-4beb-4f72-b496-11c70e80c069/avtr_uplay_farcryprimal_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/4bddfc69-e418-4895-bda0-6a0cf36d2e7b/avtr_uplay_farcryprimal_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/19c8d5ed-fa8d-4f76-9689-e8ca61b4fe8c/avtr_uplay_farcryprimal_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/7d7dc918-ac65-4505-8df2-f5d9be7c4af3/avtr_uplay_farcryprimal_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/553/avatar.png/8c9c0954a5d37a7422dc596f419e65ec.png", + "itemType": 0, + "visibility": 1 + }, + "554": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_RabbidsDisturbia", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/df660d4e-10d9-42f4-b9ed-659ac281a336/avtr_uplay_rabbidsdisturbia_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/4a0504fa-0f98-408e-b0cd-774e64c14824/avtr_uplay_rabbidsdisturbia_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/da70215f-5ef6-4053-83fc-e35d8f575714/avtr_uplay_rabbidsdisturbia_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/5dfec352-e7b9-476d-913e-acc69fce8744/avtr_uplay_rabbidsdisturbia_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/554/avatar.png/5a85b4f1becb55d5e878144ed42fd132.png", + "itemType": 0, + "visibility": 1 + }, + "555": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_RainbowSix", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dd6f0362-5774-4f2a-9f00-541d8cf0c978/avtr_uplay_rainbowsix_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/9816016e-b1ef-41ab-a9e6-aeac29b181d0/avtr_uplay_rainbowsix_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/5498f343-0ea0-4c6c-b2b6-87c11d4c0e1e/avtr_uplay_rainbowsix_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/4dab6fe3-1672-4cc4-8880-9af8003a7ba4/avtr_uplay_rainbowsix_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/555/avatar.png/91d009e5c0d5fca3dd4aaf55d44f889b.png", + "itemType": 0, + "visibility": 1 + }, + "556": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_TheDivision", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/8e2f9f8f-1423-445f-b2a3-60e90ccdffe2/avtr_uplay_thedivision_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/088be6e7-4906-4123-8d2d-0c537f0159b8/avtr_uplay_thedivision_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/7ed67f3b-b475-4fa9-a1d9-507c19dab7ac/avtr_uplay_thedivision_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/94217acf-ca8d-4b3b-b931-7eefb2fc4281/avtr_uplay_thedivision_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/556/avatar.png/104c12e36a1fed332fef5e6d6a08570e.png", + "itemType": 0, + "visibility": 1 + }, + "557": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_WatchDogs2", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/fb393709-6862-4082-baea-c84aa8556a3b/avtr_uplay_watchdogs2_01.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/557/avatar.png/b64a43f9276b729604ab257042531264.png", + "itemType": 0, + "visibility": 1 + }, + "558": { + "Id": 558, + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "19", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Summer", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/558/avatar.png/90922d29a0e08ac0b2cb84f844a631ad.png", + "itemType": 0, + "visibility": 1 + }, + "559": { + "Id": 559, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ColaSong", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/559/avatar.png/255ee895a760369cc19b74a5691e2de4.png", + "itemType": 0, + "visibility": 1 + }, + "560": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "MASK", + "soundFamily": "AVTR_Quest_Mask", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/5abd1d2b-4eca-41a0-b766-5ad0343a2d90/avtr_quest_mask_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2d14245f-95ac-4120-ade2-4f8382641b3e/avtr_quest_mask_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/560/avatar.png/25baacea484dce02c08a19e90abcafe6.png", + "itemType": 0, + "visibility": 1 + }, + "561": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "COOL KIDS", + "soundFamily": "AVTR_Quest_Cap", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/9769e465-ff13-4edd-a37a-6cf5a13e3b87/avtr_quest_cap_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/0ed3e267-985e-459b-9745-f42f0434307b/avtr_quest_cap_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/561/avatar.png/52fcbfde13f3bcf2b53528fb82d2ca20.png", + "itemType": 0, + "visibility": 1 + }, + "562": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "AROUND THE WORLD", + "soundFamily": "AVTR_Quest_AroundTheWorld", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/7c44ef96-5cba-460e-ba3c-cffaf04077f4/avtr_quest_aroundtheworld_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/52e3be05-9170-44a0-9c67-e7e4947497ff/avtr_quest_aroundtheworld_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/562/avatar.png/285a1c23100e464818d0519223572845.png", + "itemType": 0, + "visibility": 1 + }, + "563": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "NEW HEROINES", + "soundFamily": "AVTR_Quest_SuperHeroine", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/2ca3e3bc-fe39-409c-891b-d5fabf52dd4e/avtr_quest_superheroine_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/059add9e-f9c9-454e-86cc-2ed7cfc302c4/avtr_quest_superheroine_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/563/avatar.png/d1b111349ffc6f41681a4e23cf20af07.png", + "itemType": 0, + "visibility": 1 + }, + "564": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "FAMILY", + "soundFamily": "AVTR_Quest_Family", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/041bc09c-363b-4da0-bdba-44aa5bf1dbb6/avtr_quest_family_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/7cc487c6-708b-4d71-8597-2f6b9b171081/avtr_quest_family_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/564/avatar.png/ebdf5721b55e8365f7f222ae0ae72c59.png", + "itemType": 0, + "visibility": 1 + }, + "565": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "HIGH ENERGY", + "soundFamily": "AVTR_Quest_Energy", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6062f4d7-013e-43a6-ae7f-c138319f725e/avtr_quest_energy_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/9b48e1a9-996a-4d04-b4c8-75cb49dc5758/avtr_quest_energy_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/565/avatar.png/fcdb80b34f303f9e37c9fb901406df1d.png", + "itemType": 0, + "visibility": 1 + }, + "566": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "YEAR ROUND", + "soundFamily": "AVTR_Quest_Weather", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/f0856804-56e7-4ac3-860f-9842ccb080d7/avtr_quest_weather_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/37725985-2880-4c74-9b08-1a222dca3bb4/avtr_quest_weather_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/566/avatar.png/3f0144208337083fd8b55d219616163c.png", + "itemType": 0, + "visibility": 1 + }, + "567": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "KEEP CALM AND DANCE QUEST", + "soundFamily": "AVTR_Quest_Thumb", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/d9a9958e-be2a-457b-9ffd-e77f48286057/avtr_quest_thumb_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/a059a92d-b981-4c82-ad7f-6166122ac879/avtr_quest_thumb_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/567/avatar.png/53d005de1c1bea3e2be4ebd1411dd0e1.png", + "itemType": 0, + "visibility": 1 + }, + "568": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "STRONG WOMAN", + "soundFamily": "AVTR_Quest_StrongWoman", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/4f3cbf10-e33b-4ab9-9e26-b36d6e1e1718/avtr_quest_strongwoman_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6728de9c-bd72-4059-80d3-5625a8b11291/avtr_quest_strongwoman_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/568/avatar.png/12a306daa7f65a13b2ce089988981133.png", + "itemType": 0, + "visibility": 1 + }, + "569": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ColaSongALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ColaSongALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Squishy", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/569/avatar.png/57da074b67a25caaf7325747108dc0ae.png", + "itemType": 0, + "visibility": 1 + }, + "570": { + "Id": 570, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CakeByTheOceanALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/570/avatar.png/c94a0f7e8ed4fad87f292cdebfdf3f6a.png", + "itemType": 0, + "visibility": 1 + }, + "571": { + "Id": 571, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ElTikiALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/571/avatar.png/890528d75897465bd0e1f1a7bc0fd426.png", + "itemType": 0, + "visibility": 1 + }, + "572": { + "Id": 572, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IntoYou", + "relativeWDFBossName": "", + "soundFamily": "AVTR_ChinaGirl", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/572/avatar.png/78508d5e82cecc77aa1e6a7ced06a468.png", + "itemType": 0, + "visibility": 1 + }, + "573": { + "Id": 573, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CheapThrillsALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/573/avatar.png/f66de87f12c17efc86e11cc50d14fd9f.png", + "itemType": 0, + "visibility": 1 + }, + "574": { + "Id": 574, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Bailar", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/574/avatar.png/57d8a5b939d44babf9ce6a882a343add.png", + "itemType": 0, + "visibility": 1 + }, + "575": { + "Id": 575, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhereverIGo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/575/avatar.png/b50a0fc174bc0f3fdb52241c81503614.png", + "itemType": 0, + "visibility": 1 + }, + "576": { + "Id": 576, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NaeNaeALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/576/avatar.png/8915c8b19c3018a446a4805446cf10cb.png", + "itemType": 0, + "visibility": 1 + }, + "577": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Uplay_Steep", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dd0b2ac0-2a60-4dc7-bb4a-0c82f585c58f/avtr_uplay_steep_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/88c22c07-ef6a-4c5c-8c27-b98c0f26a0d1/avtr_uplay_steep_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cdfcd318-5ece-4069-a52a-6a49223b053c/avtr_uplay_steep_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/8408ff9d-da50-45b1-991f-50854975b1b9/avtr_uplay_steep_04.ogg" + ], + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/577/avatar.png/4fb583f3d3955889b4dc66e070a44a60.png", + "itemType": 0, + "visibility": 1 + }, + "578": { + "Id": 578, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Bonbon", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/578/avatar.png/cb2295582d14ed4f9183a1a6853eb999.png", + "itemType": 0, + "visibility": 1 + }, + "579": { + "Id": 579, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LikeIWould", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/579/avatar.png/f81ae33624ee157c8a39db46aa9ee5d1.png", + "itemType": 0, + "visibility": 1 + }, + "580": { + "Id": 580, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Leila", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/580/avatar.png/5b45500302dc154f3c48ff271cae4827.png", + "itemType": 0, + "visibility": 1 + }, + "581": { + "Id": 581, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ILoveRock", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/581/avatar.png/0b75fbfae0ff06e92b41763d61a937b6.png", + "itemType": 0, + "visibility": 1 + }, + "582": { + "Id": 582, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CakeByTheOcean", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Diver", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/582/avatar.png/57124fa9436011ff8d611a2d47cf4f5e.png", + "itemType": 0, + "visibility": 1 + }, + "583": { + "Id": 583, + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IWillSurviveOSC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/583/avatar.png/c87896bdfae2a9f083cc24185aeb132b.png", + "itemType": 0, + "visibility": 1 + }, + "585": { + "Id": 585, + "JDNowVersion": 4, + "__class": "OnlineCustomizableItem", + "jdVersion": 4, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TribalDanceALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/585/avatar.png/4aaf4490d51d313f159f8a8d3b1088ee.png", + "itemType": 0, + "visibility": 1 + }, + "586": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "SNACK", + "soundFamily": "AVTR_Quest_Snack", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/3002b7fe-5355-4ae2-ae65-7d259f017aaa/avtr_quest_snack_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/6f41a4d9-e206-4d10-9578-75ee8fec675e/avtr_quest_snack_02.ogg" + ], + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/586/avatar.png/48fe6c09597b1eacfa1f6c9ffd2cc7d3.png", + "itemType": 0, + "visibility": 1 + }, + "587": { + "Id": 587, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SorryALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/587/avatar.png/faaeac9d99ef6fea26f5cf61a2726f4d.png", + "itemType": 0, + "visibility": 1 + }, + "588": { + "Id": 588, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TeDominar", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/588/avatar.png/eb98cf3857b1ed2477e86c07c5fadbe1.png", + "itemType": 0, + "visibility": 1 + }, + "589": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "LastChristmas", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_SantaClaus", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/589/avatar.png/651685034edb5e9e933dd962085cfe5d.png", + "itemType": 0, + "visibility": 1 + }, + "590": { + "Id": 590, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AllAboutUs", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/590/avatar.png/a9766c4d10aff4cb3316f7d7dd95075f.png", + "itemType": 0, + "visibility": 1 + }, + "591": { + "Id": 591, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Bang", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/591/avatar.png/f6023ead7a9b26f9d5cf2ffd25e21250.png", + "itemType": 0, + "visibility": 1 + }, + "592": { + "Id": 592, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Bicicleta", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/592/avatar.png/37213cf57bb530626b1375aa0fc17cad.png", + "itemType": 0, + "visibility": 1 + }, + "593": { + "Id": 593, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RedMangoose", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/593/avatar.png/9f2d512ad1cb2311f80530458a5a1065.png", + "itemType": 0, + "visibility": 1 + }, + "594": { + "Id": 594, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SingleLadies", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/594/avatar.png/19d7cd62c72db70396e4ee1331b25c00.png", + "itemType": 0, + "visibility": 1 + }, + "595": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "NaeNae", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NaeNae", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zebra", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/595/avatar.png/1cf5ddfe50757ef845830ebee0cd7fcf.png", + "itemType": 0, + "visibility": 1 + }, + "596": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "soundFamily": "AVTR_Common_Girl_Kawaii", + "sounds": [ + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/dd517fdd-3250-4ffc-a91d-153c11c6cdbf/avtr_common_girl_kawaii_01.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/01eb9803-93b8-4cc3-bd63-e30e33942fd8/avtr_common_girl_kawaii_02.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/cd00d7c7-3fb8-4a7e-9204-153a3b6417fd/avtr_common_girl_kawaii_03.ogg", + "https://ubistatic-a.akamaihd.net/0050/avatars/sounds/c6b99d50-18a9-4efc-8d13-c0dd6e387b84/avtr_common_girl_kawaii_04.ogg" + ], + "status": 3, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/596/avatar.png/86ac0a72fca63cec248f1f50fd812dab.png", + "itemType": 0, + "visibility": 1 + }, + "597": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "LastChristmas", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LastChristmas", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/597/avatar.png/ab75cc2ce1f3992e592d7fb39de636ed.png", + "itemType": 0, + "visibility": 1 + }, + "598": { + "Id": 598, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HipsALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Hippo", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/598/avatar.png/50e7f0987cd28ad652a5e4630f534fbc.png", + "itemType": 0, + "visibility": 1 + }, + "599": { + "Id": 599, + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RadicalALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/599/avatar.png/b21cc057f0551229a6bfdd375546746d.png", + "itemType": 0, + "visibility": 1 + }, + "600": { + "JDNowVersion": 2017, + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LittleSwing", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/600/avatar.png/020107a6c86563d34bd1eeaa6cf2aef9.png", + "itemType": 0, + "visibility": 1 + }, + "601": { + "JDNowVersion": 2, + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TakeMeOut", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/601/avatar.png/43cdf25f7eb98832ace05ce780928d5d.png", + "itemType": 0, + "visibility": 1 + }, + "604": { + "JDNowVersion": 5, + "__class": "OnlineCustomizableItem", + "jdVersion": 5, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JustDanceOSC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/604/avatar.png/afac4861c0719039a972ae3e43cc4145.png", + "itemType": 0, + "visibility": 1 + }, + "614": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Natoo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/614/avatar.png/11c9fc7277d27c602ad7a0f0d06f9c0c.png", + "itemType": 0, + "visibility": 1 + }, + "615": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Imya505", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/615/avatar.png/cc1fe2e057224bc04b1c5504673a50ef.png", + "itemType": 0, + "visibility": 1 + }, + "616": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BlackMamba", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/616/avatar.png/6ace7b65a6503b3608eaa436b1aa220e.png", + "itemType": 0, + "visibility": 1 + }, + "617": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Youth", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/617/avatar.png/583655e9b39ec07e6e0a098c7c349d9b.png", + "itemType": 0, + "visibility": 1 + }, + "618": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OnaTanczyDlaMnie", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/618/avatar.png/d15433f2c8ffc6959314e3b1341e2760.png", + "itemType": 0, + "visibility": 1 + }, + "619": { + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "20", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zombi", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/619/avatar.png/956d3af51443ed410cef3e6e311719ab.png", + "itemType": 0, + "visibility": 1 + }, + "620": { + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "21", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Unicorn", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/620/avatar.png/66615bd3c9bbb072d043d26b56df9065.png", + "itemType": 0, + "visibility": 1 + }, + "621": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "TwoTeeth", + "soundFamily": "AVTR_Boss_Godzilla", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/621/avatar.png/e1d8bfbfef041a5c547b6143016e574d.png", + "itemType": 0, + "visibility": 0 + }, + "622": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "GrumpyGhost", + "soundFamily": "AVTR_Ghost", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/622/avatar.png/faf48450e18cf77484bea2cad90d5db8.png", + "itemType": 0, + "visibility": 0 + }, + "623": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "JackOPumpkin", + "soundFamily": "AVTR_Mumie", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/623/avatar.png/1bf2afdbcedd10957c6db010fb0f9994.png", + "itemType": 0, + "visibility": 0 + }, + "624": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSABC", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSABC", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/624/avatar.png/bfff5a9eeb36e7d72611f42983e6ce50.png", + "itemType": 0, + "visibility": 1 + }, + "625": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSJingleBells", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Lily", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/625/avatar.png/1c67b096008469e5aa7d249afd0fa13a.png", + "itemType": 0, + "visibility": 1 + }, + "626": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSAccidentallyInLove", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSAccidentallyInLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_RoyalKey", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/626/avatar.png/6d53095f7068b2d84e7f2b61ae46e372.png", + "itemType": 0, + "visibility": 1 + }, + "627": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSDayO", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSDayO", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zombi", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/627/avatar.png/467f37e51ba0a61ce58cc2abb471f83e.png", + "itemType": 0, + "visibility": 1 + }, + "630": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSHickoryDickoryDock", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSHickoryDickoryDock", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/630/avatar.png/1d2be7049c9f0258be2396b0739272ae.png", + "itemType": 0, + "visibility": 1 + }, + "631": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSIfYoureHappy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Oishii", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/631/avatar.png/baf8fdd70b5a88830489050fe7378fb0.png", + "itemType": 0, + "visibility": 0 + }, + "632": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSILikeToMoveIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/632/avatar.png/41a627d187094b38eec4e61ae45bad79.png", + "itemType": 0, + "visibility": 1 + }, + "633": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSTheLionSleepsTonight", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Cat", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/633/avatar.png/bcd2a0d955ad1d0db8f9765cc043e2a6.png", + "itemType": 0, + "visibility": 1 + }, + "634": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSMaryHadALittleLamb", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Snowdrop", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/634/avatar.png/98722d276cd698e0cbeb365b3cd2a02d.png", + "itemType": 0, + "visibility": 1 + }, + "635": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSPirateYouShallBe", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSPirateYouShallBe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/635/avatar.png/cbe78288e106eae7552273570855f40d.png", + "itemType": 0, + "visibility": 1 + }, + "636": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSWeGoWellTogether", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Tanuki", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/636/avatar.png/8a331b393e6318e7dabd9acb8b98cfe5.png", + "itemType": 0, + "visibility": 1 + }, + "637": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSWorkingOnTheRailroad", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Castle", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/637/avatar.png/604e1dcdc5b385b5746ee1bf8298ada4.png", + "itemType": 0, + "visibility": 0 + }, + "638": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Lucky", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/638/avatar.png/2432a10e6aaf7e3c75420117004f48c4.png", + "itemType": 0, + "visibility": 0 + }, + "643": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "MrChiefClaws", + "soundFamily": "AVTR_Penguin", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/643/avatar.png/84194fd2712f49f720e992e6fadd61fe.png", + "itemType": 0, + "visibility": 0 + }, + "644": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "JimiSeaHorse", + "soundFamily": "AVTR_Quest_Castle", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/644/avatar.png/2612fc3fb2ceaf54d861549788f3e7e6.png", + "itemType": 0, + "visibility": 0 + }, + "645": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "OctoDrum", + "soundFamily": "AVTR_Hippo", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/645/avatar.png/d0c4379db7818eeaa668d844fcf10c38.png", + "itemType": 0, + "visibility": 0 + }, + "646": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HowDeep", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HowDeep", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/646/avatar.png/43d6ab1c229b5fe65fcd0382e8ca7282.png", + "itemType": 0, + "visibility": 1 + }, + "647": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheGreatest", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/647/avatar.png/8ad019d115d370eae2d595f14f94484a.png", + "itemType": 0, + "visibility": 1 + }, + "649": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeWDFBossName": "FiggySnowRider", + "soundFamily": "AVTR_Unicorn", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/649/avatar.png/7a6a0e05105d952dd55ac4df9563abe8.png", + "itemType": 0, + "visibility": 0 + }, + "650": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeWDFBossName": "SnowMan", + "soundFamily": "AVTR_Vampire", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/650/avatar.png/01f82283b8c3493a2f01aa5567d3c5e2.png", + "itemType": 0, + "visibility": 0 + }, + "651": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeWDFBossName": "SuperSanta", + "soundFamily": "AVTR_SantaClaus", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/651/avatar.png/4116674762bc51c6dc79a868b5dd8e69.png", + "itemType": 0, + "visibility": 0 + }, + "652": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "ArcherOfLove", + "soundFamily": "AVTR_Boss_Cupidon", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/652/avatar.png/7347c759e89d5262f7ab135bb38187e0.png", + "itemType": 0, + "visibility": 0 + }, + "653": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "TheRedQueen", + "soundFamily": "AVTR_Flower", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/653/avatar.png/9e979dd757527024dae38acb1ba391d1.png", + "itemType": 0, + "visibility": 0 + }, + "654": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "TheLovelyGift", + "soundFamily": "AVTR_Quest_CupCake", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/654/avatar.png/17e784c25879a97c536632e1958e6c6d.png", + "itemType": 0, + "visibility": 0 + }, + "655": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontWorryMadcon", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/655/avatar.png/5c2ebe9fdc963e8d5127ccb59b725bb5.png", + "itemType": 0, + "visibility": 1 + }, + "656": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Juju", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/656/avatar.png/72783695248bb1a9dcb356d3019a90d3.png", + "itemType": 0, + "visibility": 1 + }, + "657": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "WoodHorns", + "soundFamily": "AVTR_Lion", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/657/avatar.png/c7991117197abfa29ac941e6c6c2d378.png", + "itemType": 0, + "visibility": 0 + }, + "658": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "BlueTyphoon", + "soundFamily": "AVTR_Lion", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/658/avatar.png/c556e6b3b2a105443185adcaeaf2c832.png", + "itemType": 0, + "visibility": 0 + }, + "659": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "FireStorm", + "soundFamily": "AVTR_Lion", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/659/avatar.png/ad9156601675539630a2e786d96c0f03.png", + "itemType": 0, + "visibility": 0 + }, + "660": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Leek", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/660/avatar.png/43266a8ca9dc014c3c6168c3c3d0977e.png", + "itemType": 0, + "visibility": 0 + }, + "661": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Turnip", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/661/avatar.png/53d05be0b8e6c75bb7cb0eadcc5ca14e.png", + "itemType": 0, + "visibility": 0 + }, + "662": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Tomato", + "soundFamily": "AVTR_Hippo", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/662/avatar.png/9a4dc8cd59769fd672b2fd5962747c68.png", + "itemType": 0, + "visibility": 0 + }, + "664": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "LeopoldTheJester", + "soundFamily": "AVTR_Lion", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/664/avatar.png/65621f08cbab7155f81455b0ebaa26c1.png", + "itemType": 0, + "visibility": 0 + }, + "665": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "CounselorGiraffus", + "soundFamily": "AVTR_Horse", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/665/avatar.png/bdd25fe78195d2fa4512409a2c307eb8.png", + "itemType": 0, + "visibility": 0 + }, + "666": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "KingJumbo", + "soundFamily": "AVTR_Boss_Elephant", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/666/avatar.png/87700edf1b3d3faf4fa15a0c6c29c302.png", + "itemType": 0, + "visibility": 0 + }, + "681": { + "JDNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MeToo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/681/avatar.png/ed62ea6a74d633b6793048dba3f452ed.png", + "itemType": 0, + "visibility": 1 + }, + "682": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Barbie", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Barbie", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/682/avatar.png/d066cb6b1980fa60894e614491443d8f.png", + "itemType": 0, + "visibility": 1 + }, + "683": { + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "23", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/683/avatar.png/462177777742a467f86b6961a7177d0b.png", + "itemType": 0, + "visibility": 1 + }, + "684": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Muchacharacas", + "soundFamily": "AVTR_Indian", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/684/avatar.png/9dd260cbb26a0ec7ad1ef895371896ed.png", + "itemType": 0, + "visibility": 0 + }, + "685": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Muchachopeta", + "soundFamily": "AVTR_Boss_Mexicano", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/685/avatar.png/dd8e09f03f49ab0b7203c7a1d510c439.png", + "itemType": 0, + "visibility": 0 + }, + "686": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Muchachotarra", + "soundFamily": "AVTR_Hippo", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/686/avatar.png/70b138d07f5b9ecafead768cd218beee.png", + "itemType": 0, + "visibility": 0 + }, + "688": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "27", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Summer", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/688/avatar.png/e70154eff1c04b7c8c8431a8d024bbab.png", + "itemType": 0, + "visibility": 1 + }, + "689": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "25", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Cactus", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/689/avatar.png/4d794314c13077e38c811df3b062bce7.png", + "itemType": 0, + "visibility": 1 + }, + "690": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "26", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Diamond", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/690/avatar.png/31b28b5559717cc583704dc02f553d32.png", + "itemType": 0, + "visibility": 1 + }, + "691": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WakaWaka", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/691/avatar.png/c65ab962de60ea7ad57cd601811bca4f.png", + "itemType": 0, + "visibility": 1 + }, + "692": { + "JDNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "24", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/692/avatar.png/d6670be370579d3555b455763fb192df.png", + "itemType": 0, + "visibility": 1 + }, + "693": { + "JdNowVersion": 100, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HandClap", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/693/avatar.png/6dbec53de5ddb5506a13693b2fce3471.png", + "itemType": 0, + "visibility": 1 + }, + "694": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BlowYourMind", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/694/avatar.png/4c35f891e2b28b57207675542d5e4aff.png", + "itemType": 0, + "visibility": 1 + }, + "695": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "AnotherOne", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/695/avatar.png/22605532e3f1fa06b4eab748a64cbcb5.png", + "itemType": 0, + "visibility": 1 + }, + "697": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Carmen", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/697/avatar.png/cd64feceec0eb2cf57d823ad759ba3c3.png", + "itemType": 0, + "visibility": 1 + }, + "698": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Carmen", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/698/avatar.png/a5b58891e0e9e88411bb07ca448592ce.png", + "itemType": 0, + "visibility": 1 + }, + "699": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DaddyCool", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DaddyCool", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/699/avatar.png/4a1e07fe61a47259a920152b3e90d080.png", + "itemType": 0, + "visibility": 1 + }, + "700": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Blue", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Blue", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Elephant", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/700/avatar.png/3191972b2b33e623db3c8c9e0f6cd2d7.png", + "itemType": 0, + "visibility": 1 + }, + "701": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "WokeeTokee", + "soundFamily": "AVTR_Cactus", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/701/avatar.png/89ef6d04ba88b28cf9b09c32c62b7264.png", + "itemType": 0, + "visibility": 0 + }, + "702": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Boumbabox", + "soundFamily": "AVTR_ToyRobot", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/702/avatar.png/4082f085f104cd8f1ff793e5d2a38f09.png", + "itemType": 0, + "visibility": 0 + }, + "703": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Elpee", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/703/avatar.png/a881454362d05089c82324cd0ba25658.png", + "itemType": 0, + "visibility": 0 + }, + "704": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HappyFarmKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HappyFarmKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Easter", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/704/avatar.png/1b83cc48020970d5129da6223fe03fb3.png", + "itemType": 0, + "visibility": 1 + }, + "705": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SideTo", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/705/avatar.png/8764a49b38b340395515a11c04a75fec.png", + "itemType": 0, + "visibility": 1 + }, + "706": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MakeItJingle", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MakeItJingle", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Deer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/706/avatar.png/a975f1a01493a9646ab92c40ccce6452.png", + "itemType": 0, + "visibility": 1 + }, + "707": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontLet", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/707/avatar.png/0f4b281423033b651a25ee61e57e21d5.png", + "itemType": 0, + "visibility": 1 + }, + "708": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "GotThat", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/708/avatar.png/5ab32281ce4e7352f2bd5a4d378b5ab8.png", + "itemType": 0, + "visibility": 1 + }, + "709": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AnotherOneALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/709/avatar.png/30f2faeac4cfddb52d024b1476a5a49f.png", + "itemType": 0, + "visibility": 1 + }, + "710": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SideToALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/710/avatar.png/6fc49f1c2342c6d159bd02348b6952fc.png", + "itemType": 0, + "visibility": 1 + }, + "711": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WakaWakaALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/711/avatar.png/d13e398cef7756d17079aa588197f499.png", + "itemType": 0, + "visibility": 1 + }, + "712": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AintMy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/712/avatar.png/bb812aaa5153ead5ff570e160709a573.png", + "itemType": 0, + "visibility": 1 + }, + "713": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "8BitRetake", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/713/avatar.png/c488e08369082ce237422a865cdfb35b.png", + "itemType": 0, + "visibility": 1 + }, + "714": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AutomatonALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AutomatonALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Tomato", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/714/avatar.png/e95ae21e3b520a76631a12c59f22b557.png", + "itemType": 0, + "visibility": 1 + }, + "715": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "TumBum", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TumBum", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_AfroGirl", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/715/avatar.png/be6de8a539c1ca3e66f31e846320b0ff.png", + "itemType": 0, + "visibility": 1 + }, + "716": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Rockabye", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/716/avatar.png/bafdb6b1dbb112b6def6f29230198be7.png", + "itemType": 0, + "visibility": 1 + }, + "717": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FearlessPirateKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FearlessPirateKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/717/avatar.png/3e2c451291121dfe08c423e6be2cdffa.png", + "itemType": 0, + "visibility": 1 + }, + "718": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "BubblePopALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Cookie_Fun", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/718/avatar.png/53170af5123978b305ebd06c85de59dc.png", + "itemType": 0, + "visibility": 1 + }, + "720": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Footloose", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/720/avatar.png/552f0a77a9695208d9b268e8e49ac087.png", + "itemType": 0, + "visibility": 1 + }, + "721": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "24K", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "24K", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/721/avatar.png/4c071e5c4dca8518cb0ae7c818046a83.png", + "itemType": 0, + "visibility": 1 + }, + "722": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "24KALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "24KALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/722/avatar.png/fda50366fdd99114b524106328b1751e.png", + "itemType": 0, + "visibility": 1 + }, + "723": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Diggy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/723/avatar.png/223fd64b2f75277194855a392660fe0b.png", + "itemType": 0, + "visibility": 1 + }, + "724": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Chantaje", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/724/avatar.png/a2e445dbb5913926549424dd27d9b7cc.png", + "itemType": 0, + "visibility": 1 + }, + "725": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "LoveWard", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LoveWard", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/725/avatar.png/dbe9322228485a0131d2e74f4ec565ef.png", + "itemType": 0, + "visibility": 1 + }, + "726": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TumBumALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TumBumALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_AfroGirl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/726/avatar.png/843bb342823b993daad6f9cf6a88d02c.png", + "itemType": 0, + "visibility": 1 + }, + "727": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SayonaraRetake", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/727/avatar.png/11a22dfb0f263eb4c57a53d90c323d47.png", + "itemType": 0, + "visibility": 1 + }, + "729": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "ChantajeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/729/avatar.png/f4eaa850e5af672c8a4b5af46f40c3a2.png", + "itemType": 0, + "visibility": 1 + }, + "730": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Automaton", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Robot", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/730/avatar.png/7036fbd3972bfa623ff19c1c7e551d62.png", + "itemType": 0, + "visibility": 1 + }, + "731": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "JohnWALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JohnWALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/731/avatar.png/c85a2ad4b817ac513b6de76d1ccecf21.png", + "itemType": 0, + "visibility": 1 + }, + "732": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "BubblePop", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/732/avatar.png/190509f4a0ed94f51479a3692c4ea860.png", + "itemType": 0, + "visibility": 1 + }, + "733": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Juju", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/733/avatar.png/a3da99f7ef23ca649a67c4b90f17ddbd.png", + "itemType": 0, + "visibility": 1 + }, + "734": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSMaryHadALittleLamb", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/734/avatar.png/bfcd1d0fa73c49bb0b7cc1888cbc2335.png", + "itemType": 0, + "visibility": 1 + }, + "735": { + "JdNowVersion": 2, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "KungFu", + "__class": "OnlineCustomizableItem", + "jdVersion": 2, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/735/avatar.png/5caf8dc71b5b865e2099fce0be25b41f.png", + "itemType": 0, + "visibility": 1 + }, + "736": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "HalloweenQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_JackOLantern", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/736/avatar.png/9ae06940cb52419433b549788f6122ef.png", + "itemType": 0, + "visibility": 1 + }, + "737": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "HalloweenQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Mumie", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/737/avatar.png/62b2da69fe662513cbae8cef0664c4eb.png", + "itemType": 0, + "visibility": 1 + }, + "738": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "ItsyBitsyRetake", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/738/avatar.png/00e86b1f8c97eb9d474d6ee4535e49a0.png", + "itemType": 0, + "visibility": 1 + }, + "739": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ItsyBitsyRetake", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Jellyfish", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/739/avatar.png/f5ee7c8513c6abfb1c9df0a6356d8ccc.png", + "itemType": 0, + "visibility": 1 + }, + "740": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Cmon", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/740/avatar.png/edb3c5b4bbb92ba7abbae26cdfd36fca.png", + "itemType": 0, + "visibility": 1 + }, + "741": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WakaWakaKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WakaWakaKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/741/avatar.png/82581d01b63125bea604e5194a6234bd.png", + "itemType": 0, + "visibility": 1 + }, + "742": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "MagicHalloweenKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MagicHalloweenKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_JackOLantern", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/742/avatar.png/d4119fc094a98ece3d78abd1d0d87517.png", + "itemType": 0, + "visibility": 1 + }, + "743": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MagicHalloweenKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Cat", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/743/avatar.png/bb50ec71a9b5d3824f887fc6702e8896.png", + "itemType": 0, + "visibility": 1 + }, + "744": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AngryBirds", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/744/avatar.png/9d4577c200491cdf2fed211358235d32.png", + "itemType": 0, + "visibility": 1 + }, + "745": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "AngryBirds", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/745/avatar.png/13e4ec3a417af15d940c09bb9fb33746.png", + "itemType": 0, + "visibility": 1 + }, + "746": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "AngryBirds", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/746/avatar.png/ba524f7c775eeb27cbddc20259c69b4d.png", + "itemType": 0, + "visibility": 1 + }, + "747": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "AngryBirds", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/747/avatar.png/a7f71ff1827bea56af0a4206057829e2.png", + "itemType": 0, + "visibility": 1 + }, + "748": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "BubblePopALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Cookie_Cute", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/748/avatar.png/eefe8bd9e27411a9d48fb2873e5c8f70.png", + "itemType": 0, + "visibility": 1 + }, + "749": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BubblePopALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Unicorn", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/749/avatar.png/24ffc0b04fbf82fafc945dc6fa353ef7.png", + "itemType": 0, + "visibility": 1 + }, + "750": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BubblePopALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Snowdrop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/750/avatar.png/79e25629539d55f150e30d6be0924684.png", + "itemType": 0, + "visibility": 1 + }, + "751": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "RobotRock", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/751/avatar.png/4fc858954838e47f7d336f297b07961b.png", + "itemType": 0, + "visibility": 1 + }, + "752": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "IstanbulQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Diva", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/752/avatar.png/482179c97787f876540ab389cb898124.png", + "itemType": 0, + "visibility": 1 + }, + "753": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "LoveIsAll", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/753/avatar.png/6d08d206514e56e8fafc27991ab29197.png", + "itemType": 0, + "visibility": 1 + }, + "754": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HalloweenQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_JackOLantern", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/754/avatar.png/ef28ddbe12c6d885fd4a6623e51cffbd.png", + "itemType": 0, + "visibility": 1 + }, + "756": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "YMCA", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ruskov", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/756/avatar.png/0d2e53578d5e3b21889dc1c65b31053c.png", + "itemType": 0, + "visibility": 1 + }, + "757": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "YMCA", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/757/avatar.png/393c0aa761ba6b1de502eb13c4fb3c5b.png", + "itemType": 0, + "visibility": 1 + }, + "758": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "YMCA", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/758/avatar.png/8df2b65af99d209b4f0cbc3a513fb992.png", + "itemType": 0, + "visibility": 1 + }, + "759": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Ghostbusters", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/759/avatar.png/728ecaadb9f43f5d1f2f6c8e7a8d7b76.png", + "itemType": 0, + "visibility": 1 + }, + "760": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Ghostbusters", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/760/avatar.png/9d63d5b0c5daa7f846f67418eae6ea69.png", + "itemType": 0, + "visibility": 1 + }, + "761": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "CopaCabana", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_DragQueen", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/761/avatar.png/aaa2e5aee6b4766cabc5eb00f41a8d9c.png", + "itemType": 0, + "visibility": 1 + }, + "762": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "CopaCabana", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Hilarious", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/762/avatar.png/1888de7cc92cd806086eb962d3a26e1f.png", + "itemType": 0, + "visibility": 1 + }, + "763": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "CopaCabana", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zebra", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/763/avatar.png/68993a065e29bb36cec56e1036b067f9.png", + "itemType": 0, + "visibility": 1 + }, + "764": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSJingleBells", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/764/avatar.png/c2ebce720e36075311c07044d6120baf.png", + "itemType": 0, + "visibility": 1 + }, + "765": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSTheLionSleepsTonight", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/765/avatar.png/e882dcfeea8cc11f6ceb91e0a2c2e01e.png", + "itemType": 0, + "visibility": 1 + }, + "766": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSILikeToMoveIt", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Lion", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/766/avatar.png/f2e62861b6886fe5157def5eb6ec42ad.png", + "itemType": 0, + "visibility": 1 + }, + "767": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSWeGoWellTogether", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/767/avatar.png/07f85742ecaa3e83b647284ab8d6e5f2.png", + "itemType": 0, + "visibility": 1 + }, + "768": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "IstanbulQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Mouse", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/768/avatar.png/ef20f752138b6aa873405f86efedc6a2.png", + "itemType": 0, + "visibility": 1 + }, + "769": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "LetItGo", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/769/avatar.png/d7431f47732180f3b159cc2b8a6b550d.png", + "itemType": 0, + "visibility": 1 + }, + "770": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "LetItGo", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/770/avatar.png/225b91f8a83803cc14f1bf83c8421429.png", + "itemType": 0, + "visibility": 1 + }, + "771": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "PrinceAli", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/771/avatar.png/1ff9e4b7c90510b3f7f2948321940530.png", + "itemType": 0, + "visibility": 1 + }, + "772": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "PrinceAli", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/772/avatar.png/71fc42fc4c74972df9b689fef4b021ee.png", + "itemType": 0, + "visibility": 1 + }, + "773": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "PrinceAli", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/773/avatar.png/4b8083683604fe414c5f4ea262975dd6.png", + "itemType": 0, + "visibility": 1 + }, + "774": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "PrinceAli", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/774/avatar.png/dc9b1acf189a117fd8e8ee8e747d3d69.png", + "itemType": 0, + "visibility": 1 + }, + "775": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FootlooseKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FootlooseKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Caveman", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/775/avatar.png/8935f0f36540ca0c4b490642419498bf.png", + "itemType": 0, + "visibility": 1 + }, + "776": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "LoveWard", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Carrot", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/776/avatar.png/c6dd13b8847d1331bb7aca6d822e0638.png", + "itemType": 0, + "visibility": 1 + }, + "777": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "IstanbulQUAT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zebra", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/777/avatar.png/2030d89852c982c7b99b2b177fa479fa.png", + "itemType": 0, + "visibility": 1 + }, + "778": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KeepOn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/778/avatar.png/3c89ab08091df63b347372c1a1f2e60c.png", + "itemType": 0, + "visibility": 1 + }, + "780": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RiskyBusiness", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/780/avatar.png/d5ee8134f683b86babf4158677276169.png", + "itemType": 0, + "visibility": 1 + }, + "781": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Dharma", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Dharma", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/781/avatar.png/a78f17f749975c5e049144487d96b62a.png", + "itemType": 0, + "visibility": 1 + }, + "782": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Cottonmouth", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/782/avatar.png/03bfbba3ada4f3431b13396cf8e0eb1e.png", + "itemType": 0, + "visibility": 1 + }, + "783": { + "JdNowVersion": 9999, + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "28", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_Energy", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/783/avatar.png/ba9fd376c6ae96d2b7f44e866e5c0da8.png", + "itemType": 0, + "visibility": 1 + }, + "784": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "LoveWard", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Carrot", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/784/avatar.png/3913c93ba5b0d3b0778a5941fe746e81.png", + "itemType": 0, + "visibility": 1 + }, + "785": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DharmaALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DharmaALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/785/avatar.png/84b1e253da5c2df3f2a99364fe39d73a.png", + "itemType": 0, + "visibility": 1 + }, + "786": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Glitchy", + "soundFamily": "AVTR_Boss_Cat", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/786/avatar.png/2122fd47bef2d7df6f8dd9e8f68ac627.png", + "itemType": 0, + "visibility": 0 + }, + "787": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "29", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_CupCake", + "status": 1, + "unlockType": 9, + "url": "https://jd-s3.akamaized.net/public/avatars/787/avatar.png/f0251b09675816552f1c13b02f41730f.png", + "itemType": 0, + "visibility": 1 + }, + "788": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/788/avatar.png/32141c8699807245612863d6fd65ab44.png", + "itemType": 0, + "visibility": 1 + }, + "789": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Uplay_HungryShark", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/789/avatar.png/b88370f6463dd6bbfc775c742aff1126.png", + "itemType": 0, + "visibility": 1 + }, + "790": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Grow", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/790/avatar.png/8c9acd0a147c38e8df6fec6974c60d68.png", + "itemType": 0, + "visibility": 1 + }, + "791": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Uplay_FarCry5", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/791/avatar.png/017f4f40db63bbbbf4b3339e4eacc28f.png", + "itemType": 0, + "visibility": 1 + }, + "792": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Uplay_Trials", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/792/avatar.png/3575887e1b7affe5351612aa2faa6a08.png", + "itemType": 0, + "visibility": 1 + }, + "793": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/793/avatar.png/2c7ded2fb5387e0e172990725be70e58.png", + "itemType": 0, + "visibility": 1 + }, + "794": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/794/avatar.png/c3c7e584172fc59202dd87860178d893.png", + "itemType": 0, + "visibility": 1 + }, + "795": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Uplay_EagleFlight", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/795/avatar.png/b8b04875c9da4d5acbf707942d9a0703.png", + "itemType": 0, + "visibility": 1 + }, + "796": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/796/avatar.png/bb32f797257f7d2807e7e84511fbcca9.png", + "itemType": 0, + "visibility": 1 + }, + "797": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/797/avatar.png/22363dd83227e13b911e9f993739c0ab.png", + "itemType": 0, + "visibility": 1 + }, + "798": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/798/avatar.png/2c622e3e68b56d23ccf9b39e79870a17.png", + "itemType": 0, + "visibility": 1 + }, + "799": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/799/avatar.png/19f56278d6dba97f65a1f63129f8eaa9.png", + "itemType": 0, + "visibility": 1 + }, + "800": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/800/avatar.png/b6c82ee56b142a716c7b8b57de568a6f.png", + "itemType": 0, + "visibility": 1 + }, + "802": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/802/avatar.png/174c069f4d5db89cbc2f7e7ce98f0ef0.png", + "itemType": 0, + "visibility": 1 + }, + "803": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/803/avatar.png/32418cde3ef15887d7a3a4f9bd37244d.png", + "itemType": 0, + "visibility": 1 + }, + "804": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/804/avatar.png/f1f9928f773c0cc95dea58ef3944a8ec.png", + "itemType": 0, + "visibility": 1 + }, + "805": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/805/avatar.png/feb7b33c49574f41fb04794fb0081484.png", + "itemType": 0, + "visibility": 1 + }, + "808": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ShapeOfYou", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ShapeOfYou", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Smooth", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/808/avatar.png/b4f3a0d7c98f9afaf58f135ce667ec38.png", + "itemType": 0, + "visibility": 1 + }, + "809": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "AnotherOne", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/809/avatar.png/02f7e87cb674decd7150f2b58713623a.png", + "itemType": 0, + "visibility": 1 + }, + "810": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BadLiar", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/810/avatar.png/b43c6ec1b9985911fcdf1cd0c986bdfb.png", + "itemType": 0, + "visibility": 1 + }, + "811": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "KissingStrangers", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Adventurer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/811/avatar.png/024d5699912f08c0a4221b5d0b4c8c9c.png", + "itemType": 0, + "visibility": 1 + }, + "812": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MissAmazingKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MissAmazingKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/812/avatar.png/94e429907ffa04dfce6c459b52c19349.png", + "itemType": 0, + "visibility": 1 + }, + "813": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "NewFace", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Psy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/813/avatar.png/34f4b41cc8a05055997df522ddbfb056.png", + "itemType": 0, + "visibility": 1 + }, + "814": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SlumberParty", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_ChinaGirl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/814/avatar.png/086e95ac77b9149b3c371e8e199a8c45.png", + "itemType": 0, + "visibility": 1 + }, + "815": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BeepBeep", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BeepBeep", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Sheep", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/815/avatar.png/56b4e55bd72a3ffd294601296a09bed4.png", + "itemType": 0, + "visibility": 1 + }, + "816": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FunkyRobotKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FunkyRobotKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_ToyRobot", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/816/avatar.png/64ab83ae8d2e157d9a1779a63f4344fa.png", + "itemType": 0, + "visibility": 1 + }, + "817": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "PixieLandKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PixieLandKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/817/avatar.png/a6e548ae926f6bb5e18dd57663641123.png", + "itemType": 0, + "visibility": 1 + }, + "818": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Sidewinder", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/818/avatar.png/7993ba41a8467d771f44cb6ef0f5f60e.png", + "itemType": 0, + "visibility": 1 + }, + "820": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AllYouGotta", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/820/avatar.png/d6bd1889d74ada26ede6a628cee450cd.png", + "itemType": 0, + "visibility": 1 + }, + "821": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "AnotherOne", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/821/avatar.png/20b847f049bc0cbcdb8ccc937c155310.png", + "itemType": 0, + "visibility": 1 + }, + "822": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BubblePop", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/822/avatar.png/fe1a9f58f4c1013907ccf521980f3466.png", + "itemType": 0, + "visibility": 1 + }, + "823": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BubblePop", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/823/avatar.png/217db36c3c6f8fc995e2601321c3844b.png", + "itemType": 0, + "visibility": 1 + }, + "824": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Copperhead", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/824/avatar.png/23899c2da660465f9bc9983635e37009.png", + "itemType": 0, + "visibility": 1 + }, + "825": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Despacito", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/825/avatar.png/90e7b881548f967d712f37874b7bc8d6.png", + "itemType": 0, + "visibility": 1 + }, + "826": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DespacitoALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DespacitoALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/826/avatar.png/c3871babadd566d220652c4a96a0c7bf.png", + "itemType": 0, + "visibility": 1 + }, + "827": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HowFar", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HowFar", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/827/avatar.png/451ac65fe4479ad61ee28520c882cc16.png", + "itemType": 0, + "visibility": 1 + }, + "828": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Instruction", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Instruction", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/828/avatar.png/24c02289a890eb25a9d2fc1e5a3edb9d.png", + "itemType": 0, + "visibility": 1 + }, + "829": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "JohnW", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JohnW", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/829/avatar.png/052fe327ecc0b761e2d7175ddc4a8dd6.png", + "itemType": 0, + "visibility": 1 + }, + "830": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KissingStrangers", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/830/avatar.png/1efb8eefe74e05e613b7db0a34450a58.png", + "itemType": 0, + "visibility": 1 + }, + "831": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "KissingStrangersALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/831/avatar.png/332dd99d4038e206a63117abee1ca6dc.png", + "itemType": 0, + "visibility": 1 + }, + "832": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NaughtyGirl", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/832/avatar.png/2dcc5179dc4e3c069ad49cf50c44df08.png", + "itemType": 0, + "visibility": 1 + }, + "833": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SwishSwish", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/833/avatar.png/1a1f6000c33a0ea06e0e604e172e7315.png", + "itemType": 0, + "visibility": 1 + }, + "834": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SwishSwish", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/834/avatar.png/7ccfd0e14501674bb080bd5f4162c543.png", + "itemType": 0, + "visibility": 1 + }, + "835": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "SwishSwish", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/835/avatar.png/cdbf49814ca283c32e8a412c1b6ccd44.png", + "itemType": 0, + "visibility": 1 + }, + "836": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "SwishSwish", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SwishSwish", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Adventurer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/836/avatar.png/eb4c54380a1d1cdbe4be4928df143a89.png", + "itemType": 0, + "visibility": 1 + }, + "837": { + "JdNowVersion": 2018, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WakaWakaALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/837/avatar.png/031897ccb9c20f21e8a193b596a1d164.png", + "itemType": 0, + "visibility": 1 + }, + "838": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WakeMeUpALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WakeMeUpALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/838/avatar.png/f62a33865fe7000a1812a056d6e6ff2e.png", + "itemType": 0, + "visibility": 1 + }, + "839": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WakeMeUpALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/839/avatar.png/1d7416ea3ae0dc670e6bb3623b616487.png", + "itemType": 0, + "visibility": 1 + }, + "840": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WakeMeUp", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WakeMeUp", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 3, + "url": "https://jd-s3.akamaized.net/public/avatars/840/avatar.png/cd73f233bbc24daa0b1d73763674d663.png", + "itemType": 0, + "visibility": 1 + }, + "843": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Arachna", + "soundFamily": "AVTR_JackOLantern", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/843/avatar.png/d01f8928b44a4dada78a1a07d34bd567.png", + "itemType": 0, + "visibility": 0 + }, + "844": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Esqueletta", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/844/avatar.png/a416207aae4dad386cd03cd760dfaa61.png", + "itemType": 0, + "visibility": 0 + }, + "845": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Garylou", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/845/avatar.png/4e4d2767de943cdd78aa6895cf512520.png", + "itemType": 0, + "visibility": 0 + }, + "848": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Polaris", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/848/avatar.png/f45a8cadb2c2a7ca379cf5f1f2dda7ed.png", + "itemType": 0, + "visibility": 0 + }, + "849": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Reign", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/849/avatar.png/a90ff7dc8d72ac792865565cb70fcbad.png", + "itemType": 0, + "visibility": 0 + }, + "850": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Yeti", + "soundFamily": "AVTR_Lion", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/850/avatar.png/51faf85bbbad8fec7d2b1ed8932ecf74.png", + "itemType": 0, + "visibility": 0 + }, + "851": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "MrMacaron", + "soundFamily": "AVTR_Pineapple", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/851/avatar.png/ccfb0e26a12aac0d5adc8b83823799c8.png", + "itemType": 0, + "visibility": 0 + }, + "852": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Kawacake", + "soundFamily": "AVTR_2018_Cookie_Fun", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/852/avatar.png/2703b489df8952e05a79c3add6da7457.png", + "itemType": 0, + "visibility": 0 + }, + "853": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Iscream", + "soundFamily": "AVTR_Zulu", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/853/avatar.png/794838f8ffe1d4767309259cd54d1cfb.png", + "itemType": 0, + "visibility": 0 + }, + "854": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Pygmalion", + "soundFamily": "AVTR_Alien", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/854/avatar.png/7621c35c4ceb265216ee0204849d1a45.png", + "itemType": 0, + "visibility": 0 + }, + "855": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Peekhibou", + "soundFamily": "AVTR_Penguin", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/855/avatar.png/20f74760ef7d0fb7f9aa4d89e2b937fe.png", + "itemType": 0, + "visibility": 0 + }, + "856": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Eagzio", + "soundFamily": "AVTR_2018_Mouse", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/856/avatar.png/f805fd443b17108393b0e345533106cb.png", + "itemType": 0, + "visibility": 0 + }, + "857": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Earthdog", + "soundFamily": "AVTR_Dog", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/857/avatar.png/f9fe2e9001589353bc01abb5a59ea194.png", + "itemType": 0, + "visibility": 0 + }, + "858": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "FireRooster", + "soundFamily": "AVTR_Quest_Easter", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/858/avatar.png/2ae37102678024deb4ec536615ca02aa.png", + "itemType": 0, + "visibility": 0 + }, + "859": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Monkeyking", + "soundFamily": "AVTR_Zebra", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/859/avatar.png/5ed030ef4143a120a84e2bbf19535a27.png", + "itemType": 0, + "visibility": 0 + }, + "860": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSWheelsOnTheBus", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSWheelsOnTheBus", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/860/avatar.png/5d427a9f4aaebdb2e56c13b6fc811fef.png", + "itemType": 0, + "visibility": 1 + }, + "861": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSFiveLittleMonkeys", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSFiveLittleMonkeys", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Indian", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/861/avatar.png/93770755aeda33d08e6661b6b0e4084a.png", + "itemType": 0, + "visibility": 1 + }, + "862": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSFraggleRock", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSFraggleRock", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/862/avatar.png/6cf46b75f89a680676a007bae24a96c5.png", + "itemType": 0, + "visibility": 1 + }, + "863": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSWorkingOnTheRailroad", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSWorkingOnTheRailroad", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Happy", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/863/avatar.png/cb5d5408bc224e6376022762cddbc348.png", + "itemType": 0, + "visibility": 1 + }, + "864": { + "JdNowVersion": 123, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KIDSIfYoureHappy", + "__class": "OnlineCustomizableItem", + "jdVersion": 123, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KIDSIfYoureHappy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/864/avatar.png/0ba255f7084d1f3a2947b0f650bd5a71.png", + "itemType": 0, + "visibility": 1 + }, + "865": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Shinobi", + "soundFamily": "AVTR_Fox", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/865/avatar.png/3787a04d891965703a62ba832ff7024d.png", + "itemType": 0, + "visibility": 0 + }, + "866": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Shamisa", + "soundFamily": "AVTR_2018_Diva", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/866/avatar.png/beb43daa782801252b5c301d943dd771.png", + "itemType": 0, + "visibility": 0 + }, + "867": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Bushido", + "soundFamily": "AVTR_Lion", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/867/avatar.png/25b52ed91a693194abc88b9db5fd9aad.png", + "itemType": 0, + "visibility": 0 + }, + "868": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Chickpea", + "soundFamily": "AVTR_Quest_Easter", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/868/avatar.png/5919934db5f5262715d9051ee8811bba.png", + "itemType": 0, + "visibility": 0 + }, + "869": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Billy", + "soundFamily": "AVTR_2018_Sheep", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/869/avatar.png/24a8fd3a83878e59c9aa039dc9ed48fb.png", + "itemType": 0, + "visibility": 0 + }, + "870": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Taurus", + "soundFamily": "AVTR_2018_Common_Boy_Adventurer", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/870/avatar.png/9ef1538f9ee979eae7fc3089eaaf282e.png", + "itemType": 0, + "visibility": 0 + }, + "871": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "McQuack", + "soundFamily": "AVTR_Frog", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/871/avatar.png/2d51e4388ee502f68f11cce64aea40fc.png", + "itemType": 0, + "visibility": 0 + }, + "872": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Deezy", + "soundFamily": "AVTR_Mumie", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/872/avatar.png/dce6d701acf71852a8a508acc6ee0ab5.png", + "itemType": 0, + "visibility": 0 + }, + "873": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Rabback", + "soundFamily": "AVTR_Uplay_Rabbids", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/873/avatar.png/79a10b72b706a258df4a6993dd7460aa.png", + "itemType": 0, + "visibility": 0 + }, + "874": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "TunaToes", + "soundFamily": "AVTR_Alien", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/874/avatar.png/968c170ee579a00770800856b305f125.png", + "itemType": 0, + "visibility": 0 + }, + "875": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "PeglegPorpoise", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/875/avatar.png/f75ac1e5384fe9846806d0eb46ee55e7.png", + "itemType": 0, + "visibility": 0 + }, + "876": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "CaptainSharptooth", + "soundFamily": "AVTR_Croco", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/876/avatar.png/0c0f21e8364edcea775693cf8642b504.png", + "itemType": 0, + "visibility": 0 + }, + "883": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "WhereAreYou", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhereAreYou", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/883/avatar.png/7bb64ef2f75fcf725912eac3c79538c4.png", + "itemType": 0, + "visibility": 1 + }, + "884": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ObsessionRetake", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ObsessionRetake", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/884/avatar.png/7af62d9d60db387f029d406efcab27d9.png", + "itemType": 0, + "visibility": 1 + }, + "885": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MamaMia", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MamaMia", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/885/avatar.png/849e76f9ac32f397e7116c9fe84ebc83.png", + "itemType": 0, + "visibility": 1 + }, + "886": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "GhostKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/886/avatar.png/cab1b447634e3b27bd342bbce1448d14.png", + "itemType": 0, + "visibility": 1 + }, + "887": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "GhostKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ghost", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/887/avatar.png/0e1b177eb30edf06f98eaf0e78735b91.png", + "itemType": 0, + "visibility": 1 + }, + "888": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "JurassicKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/888/avatar.png/ae9088cf6f129bbae4cf35af6535c917.png", + "itemType": 0, + "visibility": 1 + }, + "889": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WorkWorkALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WorkWorkALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/889/avatar.png/2e80eb0a45a484dd510e7a848cbac067.png", + "itemType": 0, + "visibility": 1 + }, + "890": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ImStillStanding", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ImStillStanding", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/890/avatar.png/f0e2f1ae81b3fa2e480f3e76ebe19512.png", + "itemType": 0, + "visibility": 1 + }, + "891": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SpaceGirlKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/891/avatar.png/bb54f4cba7b7e045df6935ff8779b208.png", + "itemType": 0, + "visibility": 1 + }, + "892": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Fire", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Fire", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/892/avatar.png/6d375b0c6eaae804d049a7b1a81f7d5b.png", + "itemType": 0, + "visibility": 1 + }, + "893": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "CaPlane", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CaPlane", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/893/avatar.png/13f2502ae847d0de9edb1989c5428343.png", + "itemType": 0, + "visibility": 1 + }, + "894": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Shaky", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Shaky", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Deer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/894/avatar.png/83dbaef26c68941441b21ec9e8b56009.png", + "itemType": 0, + "visibility": 1 + }, + "895": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SaintPatrickKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/895/avatar.png/5ae47141b3356ba95249aac9717a3112.png", + "itemType": 0, + "visibility": 1 + }, + "896": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SaintPatrickKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/896/avatar.png/6fdf79bd87d7336650b64db83ae30704.png", + "itemType": 0, + "visibility": 1 + }, + "897": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Adeyyo", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Adeyyo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/897/avatar.png/a7a31555f1164c9f0e8e6dc3f1c472ef.png", + "itemType": 0, + "visibility": 1 + }, + "898": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MerryChristmasKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/898/avatar.png/530b5afb210d9a91d1cd241b42a8d1a5.png", + "itemType": 0, + "visibility": 1 + }, + "899": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "MerryChristmasKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Cookie_Fun", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/899/avatar.png/a10e3c968e2236ae374b51bfd3039fc5.png", + "itemType": 0, + "visibility": 1 + }, + "900": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NinjaKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Cat", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/900/avatar.png/c423a35680515b4cc7365d5c0154649a.png", + "itemType": 0, + "visibility": 1 + }, + "901": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MadLove", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MadLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/901/avatar.png/521e89584acbca0dbdbc4e073a2236f7.png", + "itemType": 0, + "visibility": 1 + }, + "902": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "LittlePartyALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LittlePartyALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/902/avatar.png/aef28377f08ab258cb997be4e5b784b6.png", + "itemType": 0, + "visibility": 1 + }, + "903": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MiMiMi", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/903/avatar.png/cc83be6dbf8ee998c6533412bacc102d.png", + "itemType": 0, + "visibility": 1 + }, + "904": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "MiMiMi", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/904/avatar.png/30f07fa05e77962ee0cc9b3466fa0c0b.png", + "itemType": 0, + "visibility": 1 + }, + "905": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TheExplorerKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/905/avatar.png/6f518da06fa4afd8fed7231ab4425170.png", + "itemType": 0, + "visibility": 1 + }, + "906": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WorkWork", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WorkWork", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/906/avatar.png/895c12d9a9c9a9b72dc530a34c43998f.png", + "itemType": 0, + "visibility": 1 + }, + "907": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MonstersAcademyKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Martian", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/907/avatar.png/0f9eee901e4f79a29de14980753ded97.png", + "itemType": 0, + "visibility": 1 + }, + "908": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Narco", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Narco", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/908/avatar.png/2f22002f28b3520bccaa6df994fc7de3.png", + "itemType": 0, + "visibility": 1 + }, + "909": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BumBumTamTamALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BumBumTamTamALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/909/avatar.png/394230a7fa352c7ce4933462bb5f1d8d.png", + "itemType": 0, + "visibility": 1 + }, + "910": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Finesse", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Finesse", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_AfroGirl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/910/avatar.png/77d35eb4ca175e2dcaf05141c3300792.png", + "itemType": 0, + "visibility": 1 + }, + "911": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "LittleParty", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "LittleParty", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/911/avatar.png/9b13cee025aedd09b66df88f2adc40a0.png", + "itemType": 0, + "visibility": 1 + }, + "912": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Rhythm", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Rhythm", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_SuperHeroine", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/912/avatar.png/c277d162ce5d0e457d2c686e2c596a8a.png", + "itemType": 0, + "visibility": 1 + }, + "913": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "IFeelItComing", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IFeelItComing", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/913/avatar.png/089b66e8a426a2c1ac36a9c6cec43599.png", + "itemType": 0, + "visibility": 1 + }, + "914": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Havana", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Havana", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/914/avatar.png/74df5e3bb5f65d1f9eab4e552f81ac01.png", + "itemType": 0, + "visibility": 1 + }, + "915": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MakeMeFeel", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MakeMeFeel", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/915/avatar.png/5efbef4a80b879d9e353291e80de25d1.png", + "itemType": 0, + "visibility": 1 + }, + "916": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WaterMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/916/avatar.png/8aa37eeb22895a82344b34fceb9cd0c9.png", + "itemType": 0, + "visibility": 1 + }, + "917": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MiloscW", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MiloscW", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Caveman", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/917/avatar.png/06dc970a94ccecfc32ed290511e23e00.png", + "itemType": 0, + "visibility": 1 + }, + "918": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FinesseALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FinesseALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/918/avatar.png/4097b02029907afefde16bea32db2e1a.png", + "itemType": 0, + "visibility": 1 + }, + "919": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MiMiMiALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MiMiMiALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/919/avatar.png/88aae2818ec3085d325e5bc41a8dd299.png", + "itemType": 0, + "visibility": 1 + }, + "920": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "MiMiMiALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/920/avatar.png/df7cdd845dcdf436c267797342c6b163.png", + "itemType": 0, + "visibility": 1 + }, + "921": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "MiMiMiALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/921/avatar.png/cb19d0baad60670eb239212194e34ce7.png", + "itemType": 0, + "visibility": 1 + }, + "922": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "MiMiMiALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/922/avatar.png/7a4524976c75880c6f3495162a09c9fa.png", + "itemType": 0, + "visibility": 1 + }, + "923": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BumBumTamTamALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/923/avatar.png/e8a78b87aeb297bc290302baddf70310.png", + "itemType": 0, + "visibility": 1 + }, + "924": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "MadLove", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/924/avatar.png/f70119721649fb45ca84eb4d50f8c6b4.png", + "itemType": 0, + "visibility": 1 + }, + "925": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Finesse", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/925/avatar.png/b239254b41fac21a0ede11fc1b784e20.png", + "itemType": 0, + "visibility": 1 + }, + "926": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Finesse", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/926/avatar.png/238d0a2ba0fc29f6386cc0ccaa2341a3.png", + "itemType": 0, + "visibility": 1 + }, + "927": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Finesse", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/927/avatar.png/26c58f7601433a89ea8df486630ec1b5.png", + "itemType": 0, + "visibility": 1 + }, + "928": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "ObsessionRetake", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ObsessionRetake", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/928/avatar.png/9e4c9928641711104b66bcd2a4b0a1ae.png", + "itemType": 0, + "visibility": 1 + }, + "929": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WhereAreYou", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/929/avatar.png/4434268a60c47fd01698e2ab627df381.png", + "itemType": 0, + "visibility": 1 + }, + "930": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WhereAreYou", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/930/avatar.png/08b19c378c636ea898a34d47a06924ac.png", + "itemType": 0, + "visibility": 1 + }, + "931": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WorkWork", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/931/avatar.png/5e1ed7158adc4bda948e1c3f831922c1.png", + "itemType": 0, + "visibility": 1 + }, + "932": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "WorkWork", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/932/avatar.png/f69c4ce62c8cc566cff2b32a1f374a45.png", + "itemType": 0, + "visibility": 1 + }, + "933": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Fire", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Techno", + "status": 1, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/933/avatar.png/51c778b8a694897a529c7ff9b742e6dd.png", + "itemType": 0, + "visibility": 1 + }, + "934": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "MamaMia", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Diva", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/934/avatar.png/314f676f05fed7a9c2be7acb19ee99cb.png", + "itemType": 0, + "visibility": 1 + }, + "935": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "LittlePartyALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Groove", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/935/avatar.png/10cbb7d8bb36cce6796ee793ccdfb05d.png", + "itemType": 0, + "visibility": 1 + }, + "936": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Bang2019", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Bang2019", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/936/avatar.png/0f29d8236e29debe3613e35d072d3d19.png", + "itemType": 0, + "visibility": 1 + }, + "937": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NewWorld", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NewWorld", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/937/avatar.png/1f47366c0261babe6efd7f75a1e2d5a7.png", + "itemType": 0, + "visibility": 1 + }, + "938": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NewReality", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NewReality", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/938/avatar.png/d4c0abf38f9625b8c2594ec16505fb6d.png", + "itemType": 0, + "visibility": 1 + }, + "939": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NotYourOrdinary", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NotYourOrdinary", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/939/avatar.png/c7cb5029778a53876a5b639c56ce9de9.png", + "itemType": 0, + "visibility": 1 + }, + "940": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "NotYourOrdinary", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/940/avatar.png/454612d9c9dc7469b16931c190e01596.png", + "itemType": 0, + "visibility": 1 + }, + "941": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "NotYourOrdinary", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_AfroGirl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/941/avatar.png/869993df08dd8ba9e55ad2f79edab796.png", + "itemType": 0, + "visibility": 1 + }, + "942": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "NotYourOrdinary", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/942/avatar.png/d0cfebc1f964a00b4a52a4f23999e2f4.png", + "itemType": 0, + "visibility": 1 + }, + "943": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WhereAreYouALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhereAreYouALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Mouse", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/943/avatar.png/a67bf6a39f0f2063071a4aaf501a482a.png", + "itemType": 0, + "visibility": 1 + }, + "944": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WhereAreYouALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Deer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/944/avatar.png/bfe4b70a0e5bd7fe96b5cc1ec0ad96ed.png", + "itemType": 0, + "visibility": 1 + }, + "945": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FireOnTheDancefloor", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FireOnTheDancefloor", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/945/avatar.png/b61a5cd808018ad79292cb8fe9f18eba.png", + "itemType": 0, + "visibility": 1 + }, + "946": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "LittlePartyALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/946/avatar.png/e42e4d778c9fed7e900eaadd6b8b764e.png", + "itemType": 0, + "visibility": 1 + }, + "948": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WaterMeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Deer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/948/avatar.png/c391167ecfc1da31754ff54060bb64d2.png", + "itemType": 0, + "visibility": 1 + }, + "949": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WaterMeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/949/avatar.png/350d6a33eff6a3efe40e99ccc1154b2f.png", + "itemType": 0, + "visibility": 1 + }, + "950": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NewRules", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NewRules", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/950/avatar.png/720590db6f2fba53169673a3e7ea0e5e.png", + "itemType": 0, + "visibility": 1 + }, + "951": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "OMG", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OMG", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Deer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/951/avatar.png/a0aa5ca0904169b8d84c0e0012586298.png", + "itemType": 0, + "visibility": 1 + }, + "952": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "OMG", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Adventurer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/952/avatar.png/359456fffc80429d39afa4b3b282366d.png", + "itemType": 0, + "visibility": 1 + }, + "953": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "OMG", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Mouse", + "status": 1, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/953/avatar.png/0497e21b7befb77979802042f78342e5.png", + "itemType": 0, + "visibility": 1 + }, + "954": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "OMGALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OMGALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/954/avatar.png/12d45a4cad64b15d6dfef9dd715bf709.png", + "itemType": 0, + "visibility": 1 + }, + "955": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BumBumTamTam", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BumBumTamTam", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/955/avatar.png/788552834a930581a9429c7a33e02c92.png", + "itemType": 0, + "visibility": 1 + }, + "956": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BumBumTamTam", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/956/avatar.png/72375fe75c290ce7320b9619bc1c8579.png", + "itemType": 0, + "visibility": 1 + }, + "959": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SweetLittle", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SweetLittle", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/959/avatar.png/490f55ea26b44cbfbcb79e206462141a.png", + "itemType": 0, + "visibility": 1 + }, + "961": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NewRulesALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "NewRulesALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/961/avatar.png/b514ef1fd75727707dcb8b00407f3cec.png", + "itemType": 0, + "visibility": 1 + }, + "962": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/962/avatar.png/cb057792e3c52d7c59a3bdd7fc46dccd.png", + "itemType": 0, + "visibility": 1 + }, + "963": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_RainbowSix", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/963/avatar.png/6cd0adfda569772a98ea02c2f0ec2e78.png", + "itemType": 0, + "visibility": 1 + }, + "964": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/964/avatar.png/498620e99efa5ef0e40970a9ca58d4a2.png", + "itemType": 0, + "visibility": 1 + }, + "965": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/965/avatar.png/1c47984a4220ab7d8de56b9f0a6d5698.png", + "itemType": 0, + "visibility": 1 + }, + "966": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_AC", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/966/avatar.png/06e06ee5bcbae65c6eed5641e06f46ab.png", + "itemType": 0, + "visibility": 1 + }, + "967": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/967/avatar.png/e974c80255ec8c27ce6e2b8408cb6bff.png", + "itemType": 0, + "visibility": 1 + }, + "968": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/968/avatar.png/1778186def4872a898d59dd1adaa4e69.png", + "itemType": 0, + "visibility": 1 + }, + "969": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_WatchDogs2", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/969/avatar.png/080864f8d6b2cb78dfab4ec5b9a1f49d.png", + "itemType": 0, + "visibility": 1 + }, + "973": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "ColaSongALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Cookie_Cute", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/973/avatar.png/1123742ccd77ff792cdad43aee35ccf3.png", + "itemType": 0, + "visibility": 1 + }, + "974": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "ColaSongALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Cookie_Cute", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/974/avatar.png/60d85742a3e21f836f68f5d6af485e16.png", + "itemType": 0, + "visibility": 1 + }, + "975": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "ColaSongALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Cookie_Cute", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/975/avatar.png/4a108f4e63d60fa9414421cf6a15783b.png", + "itemType": 0, + "visibility": 1 + }, + "976": { + "JdNowVersion": 2016, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "IGotAFeelingALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2016, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/976/avatar.png/d42fc88a3917aadcfeb92c44095c3ba7.png", + "itemType": 0, + "visibility": 1 + }, + "977": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NaeNae", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Lion", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/977/avatar.png/71a39defb512387c36eb528aef353c96.png", + "itemType": 0, + "visibility": 1 + }, + "978": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "NaeNae", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Fox", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/978/avatar.png/b6129950ef2ca4c0c27eba4f6dd7972a.png", + "itemType": 0, + "visibility": 1 + }, + "979": { + "JdNowVersion": 2017, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "NaeNae", + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Frog", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/979/avatar.png/ce23d854315578defc599ff5a94833f7.png", + "itemType": 0, + "visibility": 1 + }, + "982": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "PocoLoco", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PocoLoco", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Lutin", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/982/avatar.png/803f400bc5dc722b9acae132b0bc7ada.png", + "itemType": 0, + "visibility": 1 + }, + "983": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "PacMan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/983/avatar.png/19215286dd190df3c5453f83ecaef184.png", + "itemType": 0, + "visibility": 1 + }, + "984": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "PacMan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PacMan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ghost", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/984/avatar.png/0b365f35788ced290e51554e4986dc54.png", + "itemType": 0, + "visibility": 1 + }, + "985": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "PacMan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ghost", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/985/avatar.png/d21150b5b138b5a51ac08c4af15a332c.png", + "itemType": 0, + "visibility": 1 + }, + "986": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "PacMan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ghost", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/986/avatar.png/7b03d0afb5d76f6ca7d403538e6ce052.png", + "itemType": 0, + "visibility": 1 + }, + "987": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/987/avatar.png/0eecc1064d262700db8be3d3030575e6.png", + "itemType": 0, + "visibility": 1 + }, + "988": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MadLoveALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MadLoveALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/988/avatar.png/d687cf94b4573de879b70dcdab9120d8.png", + "itemType": 0, + "visibility": 1 + }, + "989": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Familiar", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Familiar", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/989/avatar.png/31bf8a2ab20d9592d6af3e6a39272e27.png", + "itemType": 0, + "visibility": 1 + }, + "990": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/avatars/990/avatar.png/d261a6e509ef468071f82e96982e2b58.png", + "itemType": 0, + "visibility": 1 + }, + "991": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TOY", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TOY", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Parrot", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/991/avatar.png/984329a4c4905b5434c7c0584ed64a7a.png", + "itemType": 0, + "visibility": 1 + }, + "992": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SangriaWine", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Quest_PineFlower", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/992/avatar.png/a2714112cdb44171623bdbebd001d468.png", + "itemType": 0, + "visibility": 1 + }, + "993": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Bang2019ALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/993/avatar.png/bbea1117c3465cc144c2fb4b930f8d5c.png", + "itemType": 0, + "visibility": 1 + }, + "994": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HavanaALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/994/avatar.png/40aeecfcdd6f4dc0b0e51100c0d6449f.png", + "itemType": 0, + "visibility": 1 + }, + "995": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "HavanaALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/995/avatar.png/fd11fbb7c3160b168dcf822599c7a48b.png", + "itemType": 0, + "visibility": 1 + }, + "996": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "NoTearsLeft", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/996/avatar.png/fe351ac7a24d488f0071892232ccef78.png", + "itemType": 0, + "visibility": 1 + }, + "997": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "NoTearsLeft", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/997/avatar.png/7dad22b91895ca4c2a6fefb95ec84c96.png", + "itemType": 0, + "visibility": 1 + }, + "998": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "OneKiss", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/998/avatar.png/8c1ba2e0c263c0f0cf6936950da3393a.png", + "itemType": 0, + "visibility": 1 + }, + "999": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Calypso", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/999/avatar.png/48da98986b14e0a1c77f65f8a782072e.png", + "itemType": 0, + "visibility": 1 + }, + "1000": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SweetSensation", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1000/avatar.png/f1bf01520e1fc936a27c1686cd8c7187.png", + "itemType": 0, + "visibility": 1 + }, + "1001": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SweetSensation", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Tanuki", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1001/avatar.png/8a0b32227efeb2317ef79c37d56bbc59.png", + "itemType": 0, + "visibility": 1 + }, + "1002": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "SweetSensation", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Bioman", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1002/avatar.png/8d5f1f2677a33196f0359f4621ddf4b0.png", + "itemType": 0, + "visibility": 1 + }, + "1003": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "SweetSensation", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Alien", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1003/avatar.png/14bb7077981a5b92851c4c789fb35c98.png", + "itemType": 0, + "visibility": 1 + }, + "1009": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RaveIn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Penguin", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1009/avatar.png/0dc952d2b17a72eb3071e34d4a0317bc.png", + "itemType": 0, + "visibility": 1 + }, + "1010": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "RaveIn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ghost", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1010/avatar.png/2d261ed094d07fefbd46574ad56f2680.png", + "itemType": 0, + "visibility": 1 + }, + "1011": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "RaveIn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1011/avatar.png/eca80e7a6d74df1c3075ee8f67e383c9.png", + "itemType": 0, + "visibility": 1 + }, + "1012": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "RaveIn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Hippo", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1012/avatar.png/d6dcb0f41ea5b597ad12d8f6955f4222.png", + "itemType": 0, + "visibility": 1 + }, + "1013": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DDUDU", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1013/avatar.png/146c4e75bad426910216fe6c359f75fc.png", + "itemType": 0, + "visibility": 1 + }, + "1014": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "DDUDU", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1014/avatar.png/5a5897ac37bdd67c76ced92f6249764f.png", + "itemType": 0, + "visibility": 1 + }, + "1015": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "DDUDU", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1015/avatar.png/46938a9ec03a2932c8bcea3d3ba7c9b4.png", + "itemType": 0, + "visibility": 1 + }, + "1016": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "DDUDU", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1016/avatar.png/da184eb84ed5ed78c6c982bd443c82d7.png", + "itemType": 0, + "visibility": 1 + }, + "1019": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Sugar", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Bebop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1019/avatar.png/9746ce0e9136dc5c46bda80f96596017.png", + "itemType": 0, + "visibility": 1 + }, + "1020": { + "JdNowVersion": 2019, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Sugar", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Ruskov", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1020/avatar.png/a9fa48505ee5af53ad089784dd564150.png", + "itemType": 0, + "visibility": 1 + }, + "1031": { + "JdNowVersion": 100, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2019, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/1031/avatar.png/23b2013863a244f6d0b16b44f5f4ac7c.png", + "itemType": 0, + "visibility": 1 + }, + "1046": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Nostresso", + "soundFamily": "AVTR_2018_Common_Boy_Adventurer", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1046/avatar.png/f834803795092322ba8b45d83af0327d.png", + "itemType": 0, + "visibility": 0 + }, + "1047": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Yoggio", + "soundFamily": "AVTR_Penguin", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1047/avatar.png/7481b184e23c6da968309f2119c0a4f5.png", + "itemType": 0, + "visibility": 0 + }, + "1048": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "CoachJD", + "soundFamily": "AVTR_Common_Boy_Hero", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1048/avatar.png/3132cee454dcfe4187053de5a1da5431.png", + "itemType": 0, + "visibility": 0 + }, + "1049": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "PumpkinHead", + "soundFamily": "AVTR_Vampire", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1049/avatar.png/ecf7b8d1beebd2326613e86378772aa4.png", + "itemType": 0, + "visibility": 0 + }, + "1050": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "BabaYaga", + "soundFamily": "AVTR_JackOLantern", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1050/avatar.png/14f98ca85bd9a911b89843bb71ae3963.png", + "itemType": 0, + "visibility": 0 + }, + "1051": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Frankenstein", + "soundFamily": "AVTR_Hippo", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1051/avatar.png/7e628ef5df9deea995607608f493b8b6.png", + "itemType": 0, + "visibility": 0 + }, + "1052": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Twinkle", + "soundFamily": "AVTR_2018_Common_Boy_Hilarious", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1052/avatar.png/5005cb1e3e6e5149f966dc4b73d1bd33.png", + "itemType": 0, + "visibility": 0 + }, + "1053": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Sparkle", + "soundFamily": "AVTR_2018_Cookie_Cute", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1053/avatar.png/ff60323a42fad8bbc579e2a6bdaf9728.png", + "itemType": 0, + "visibility": 0 + }, + "1054": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "BigSanta", + "soundFamily": "AVTR_SantaClaus", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1054/avatar.png/69806c426a467513aa24a682849ab551.png", + "itemType": 0, + "visibility": 0 + }, + "1058": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FreezeKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_LittleDeer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1058/avatar.png/b4642d3b962b5135e78cc6e20931c709.png", + "itemType": 0, + "visibility": 0 + }, + "1059": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "FreezeKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_LittlePanda", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1059/avatar.png/9a4948a5ceadc6ef60b1a9acc289d8ca.png", + "itemType": 0, + "visibility": 0 + }, + "1060": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SchoolyardKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_LittleDeer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1060/avatar.png/e6a361e13a0f8e4bc5bdefd84d64fbe1.png", + "itemType": 0, + "visibility": 0 + }, + "1061": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SchoolyardKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_LittlePanda", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1061/avatar.png/29b49dca77894278e7a2d0f20594be5f.png", + "itemType": 0, + "visibility": 0 + }, + "1062": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MedievalKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_LittleDragon", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1062/avatar.png/76c868c6b0f74dc18b50ed43dd3cdd60.png", + "itemType": 0, + "visibility": 0 + }, + "1063": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "MedievalKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_LittlePrince", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1063/avatar.png/acfc0f5039ca48379f11ce78f0b41645.png", + "itemType": 0, + "visibility": 0 + }, + "1064": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ChefKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_CatChef", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1064/avatar.png/07c8e9a40b9a26093a02e434840cd872.png", + "itemType": 0, + "visibility": 0 + }, + "1065": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AdventurerKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Cookie_Cute", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1065/avatar.png/53d1943daf3d53bbdbbd220f3c9359c8.png", + "itemType": 0, + "visibility": 0 + }, + "1066": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WizardKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boyllywood", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1066/avatar.png/8c2ae914fad74c23bd8e39bf4c115b8b.png", + "itemType": 0, + "visibility": 0 + }, + "1067": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BandmasterKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Diva", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1067/avatar.png/12a637c9f88ccefacb284190f9e958cf.png", + "itemType": 0, + "visibility": 0 + }, + "1068": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BirthdayKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_BirthdayCake", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1068/avatar.png/89d3251ee46dfb63c645cea08f506f12.png", + "itemType": 0, + "visibility": 0 + }, + "1078": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Oboy", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1078/avatar.png/0c4160dc7e09b56dc079f04b4f3747e9.png", + "itemType": 0, + "visibility": 0 + }, + "1079": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Rina", + "soundFamily": "AVTR_2018_Diva", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1079/avatar.png/a5af75e5a9df983af469c8a7c461dd10.png", + "itemType": 0, + "visibility": 0 + }, + "1080": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Martello", + "soundFamily": "AVTR_2018_Tomato", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1080/avatar.png/35ed30ecf30c469d7c3611696ab4e3a1.png", + "itemType": 0, + "visibility": 0 + }, + "1083": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BalMasque", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_Pirate", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1083/avatar.png/c2a66d1da58845b3fd90f93de3c083fa.png", + "itemType": 0, + "visibility": 0 + }, + "1084": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BalMasque", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BalMasque", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_Diva", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1084/avatar.png/362a6b290392c8cdbe0814bcb6bffa83.png", + "itemType": 0, + "visibility": 0 + }, + "1085": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "BalMasque", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_Woman", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1085/avatar.png/d78d1dbce30b3f26d640c3e4a94f915b.png", + "itemType": 0, + "visibility": 0 + }, + "1086": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "BalMasque", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_French", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1086/avatar.png/18f67add48564ba3d8c7d9af94c355d0.png", + "itemType": 0, + "visibility": 0 + }, + "1087": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FitButYouKnow", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FitButYouKnow", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Brit", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1087/avatar.png/599ce549403fd23f8f179371b64ab024.png", + "itemType": 0, + "visibility": 0 + }, + "1088": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Arlecchino", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1088/avatar.png/e8200f809006549af77376f6625286ee.png", + "itemType": 0, + "visibility": 0 + }, + "1089": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Battucada", + "soundFamily": "AVTR_DragQueen", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1089/avatar.png/02ff1df4527b1409d89356c0082bb0c9.png", + "itemType": 0, + "visibility": 0 + }, + "1090": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "PandaFloat", + "soundFamily": "AVTR_Panda", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1090/avatar.png/5f6e4496eddfaf271325d0d029ab7270.png", + "itemType": 0, + "visibility": 0 + }, + "1092": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "IAmTheBest", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IAmTheBest", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Valkyrie", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1092/avatar.png/1262c57be859be0deb37c4151a9c791a.png", + "itemType": 0, + "visibility": 0 + }, + "1093": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "IAmTheBest", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Valkyrie_Cat", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1093/avatar.png/09cb36d30ce9449f925cb18ebac5dab1.png", + "itemType": 0, + "visibility": 0 + }, + "1095": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Vodovorot", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Vodovorot", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Vodovorot", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1095/avatar.png/92260db472226c6c8f31b9713d3f38ce.png", + "itemType": 0, + "visibility": 0 + }, + "1096": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TheTime", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheTime", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Mc_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1096/avatar.png/541816e14f3abc3cdc2dffa622f25b72.png", + "itemType": 0, + "visibility": 0 + }, + "1097": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "TheTime", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Swagg_Girl", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1097/avatar.png/e9ec6f300204ada08abb26ce9e156202.png", + "itemType": 0, + "visibility": 0 + }, + "1098": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "TheTime", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rasta_Boy", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1098/avatar.png/1a0024e50e802b755fe21af47236a118.png", + "itemType": 0, + "visibility": 0 + }, + "1099": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "TheTime", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cap_Girl", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1099/avatar.png/17e500a13695da3e7e49933a8192aa5d.png", + "itemType": 0, + "visibility": 0 + }, + "1101": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AlwaysLookOn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Dracula", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1101/avatar.png/b9bb027d9c46d885008323933f7d6e8a.png", + "itemType": 0, + "visibility": 0 + }, + "1102": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "AlwaysLookOn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AlwaysLookOn", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Witch", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1102/avatar.png/83e6b3686240769f5c02945714534410.png", + "itemType": 0, + "visibility": 0 + }, + "1103": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "AlwaysLookOn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Knight", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1103/avatar.png/753a8ccaa07cd9d3905c5c0ac680742f.png", + "itemType": 0, + "visibility": 0 + }, + "1104": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "AlwaysLookOn", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Octopus", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1104/avatar.png/8881c8777178a311925374eca492c89b.png", + "itemType": 0, + "visibility": 0 + }, + "1105": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Policeman", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Policeman", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Gorilla", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1105/avatar.png/0fa0b8a2b5853f28dfdc2791183e4da5.png", + "itemType": 0, + "visibility": 0 + }, + "1106": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Policeman", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1106/avatar.png/9a959bd96f22c1e869f86189b6c0c7cb.png", + "itemType": 0, + "visibility": 0 + }, + "1107": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Policeman", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Hippopotamus", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1107/avatar.png/57259f77539f56ea4c2e3b96f1028188.png", + "itemType": 0, + "visibility": 0 + }, + "1108": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RainOverMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RainOverMe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rain_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1108/avatar.png/2cdc2525b8b2f433a26c1d1d57abb538.png", + "itemType": 0, + "visibility": 0 + }, + "1109": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_Diva", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1109/avatar.png/3855d6282145d647c2204efbe1b7dd0b.png", + "itemType": 0, + "visibility": 0 + }, + "1110": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Brit", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1110/avatar.png/b03f05de08d553fc73627a51379e623d.png", + "itemType": 0, + "visibility": 0 + }, + "1111": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Valkyrie", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1111/avatar.png/459063835ae098e650e6eb6f31e70a36.png", + "itemType": 0, + "visibility": 0 + }, + "1112": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Vodovorot", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1112/avatar.png/bbb240b0f26f4e5929a8a8f64649f997.png", + "itemType": 0, + "visibility": 0 + }, + "1113": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Mc_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1113/avatar.png/1e7a82bf8650572be7dc338216eeb609.png", + "itemType": 0, + "visibility": 0 + }, + "1114": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Witch", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1114/avatar.png/8a2c140983d5d454b02e0d8acff0b37f.png", + "itemType": 0, + "visibility": 0 + }, + "1115": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Gorilla", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1115/avatar.png/4687f3bb0766e35110f7da8835868a16.png", + "itemType": 0, + "visibility": 0 + }, + "1116": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rain_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1116/avatar.png/2b2383b4680fd344a81652c07459653e.png", + "itemType": 0, + "visibility": 0 + }, + "1117": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KeepInTouch", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KeepInTouch", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funky_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1117/avatar.png/413580c68e706851b32abf9b2080cfa2.png", + "itemType": 0, + "visibility": 0 + }, + "1118": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BadBoy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BadBoy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1118/avatar.png/5883275ca6199f334c5494aef5268c8a.png", + "itemType": 0, + "visibility": 0 + }, + "1119": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BadBoy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1119/avatar.png/b757cb39b4b671e30c60c91e4b5db77a.png", + "itemType": 0, + "visibility": 0 + }, + "1120": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1120/avatar.png/f4756948bbc3ef64490c6540a7073a58.png", + "itemType": 0, + "visibility": 0 + }, + "1121": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funky_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1121/avatar.png/c60df135c6d1ef5f9435302fcacecdda.png", + "itemType": 0, + "visibility": 0 + }, + "1122": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BabyShark", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Castafiore", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1122/avatar.png/a0abff25276f5e6072c0c675e79e1073.png", + "itemType": 0, + "visibility": 0 + }, + "1123": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BabyShark", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BabyShark", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Baby", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1123/avatar.png/571196229ac99e1b345ce5d6c05f48ac.png", + "itemType": 0, + "visibility": 0 + }, + "1124": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "GodIsAWoman", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GodIsAWoman", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Diva", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1124/avatar.png/2d548994a45f984c3a11b440d2ce1ed2.png", + "itemType": 0, + "visibility": 0 + }, + "1125": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Baby", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1125/avatar.png/48498793d32c03db7c3df010669acaab.png", + "itemType": 0, + "visibility": 0 + }, + "1126": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Diva", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1126/avatar.png/7b75f01a415703ac0465830354a45945.png", + "itemType": 0, + "visibility": 0 + }, + "1227": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ConCalma", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Deer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1227/avatar.png/cdcc72f2b8ee7ad461a3ba876a83bc8e.png", + "itemType": 0, + "visibility": 0 + }, + "1228": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "ConCalma", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ConCalma", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Panda", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1228/avatar.png/3e8551fb2d04fa8ac95a9223c241176f.png", + "itemType": 0, + "visibility": 0 + }, + "1229": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Panda", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1229/avatar.png/aa6a47fe42d25749ba971083bc0dc9f4.png", + "itemType": 0, + "visibility": 0 + }, + "1231": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Sushii", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Sushii", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sushii", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1231/avatar.png/793a1c45f7204ca2ab3a8d61a5dcbea2.png", + "itemType": 0, + "visibility": 0 + }, + "1232": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sushii", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1232/avatar.png/d3ddb23debc25020bd307cb58a87aa39.png", + "itemType": 0, + "visibility": 0 + }, + "1233": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Minerva", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1233/avatar.png/8b3128384cac7465b8175c7f16f594d6.png", + "itemType": 0, + "visibility": 0 + }, + "1234": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Damona", + "soundFamily": "AVTR_Flower", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1234/avatar.png/c3f8b18d33c7fea926fff58e29dc14ab.png", + "itemType": 0, + "visibility": 0 + }, + "1235": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Gaya", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1235/avatar.png/a972a9c36cd1643a337a26f81bbbc57e.png", + "itemType": 0, + "visibility": 0 + }, + "1236": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SoyYoALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SoyYoALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Snake", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1236/avatar.png/30fc07992c0e33176a806ba8abea2178.png", + "itemType": 0, + "visibility": 0 + }, + "1237": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SoyYoALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1237/avatar.png/15d78529a8e15016a78f85d3e43f78be.png", + "itemType": 0, + "visibility": 0 + }, + "1238": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Snake", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1238/avatar.png/623ca179b8d7fda82c54535531958425.png", + "itemType": 0, + "visibility": 0 + }, + "1240": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Stan", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1240/avatar.png/55a0fa3c53442c40f8a7140dfe00fb86.png", + "itemType": 0, + "visibility": 0 + }, + "1241": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Nash", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1241/avatar.png/6e19fdb102388814497595b006c98417.png", + "itemType": 0, + "visibility": 0 + }, + "1242": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Selena", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1242/avatar.png/1ca161d6dbd295343b5b73d8387fc75d.png", + "itemType": 0, + "visibility": 0 + }, + "1243": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Bangarang", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Bangarang", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Bangarang", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1243/avatar.png/f4fbbdec6321b8140c1609c470e3a75d.png", + "itemType": 0, + "visibility": 0 + }, + "1244": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Bangarang", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1244/avatar.png/ff9eb442c552e0272ec05547ad222aae.png", + "itemType": 0, + "visibility": 0 + }, + "1245": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "365", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "365", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Robot_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1245/avatar.png/1f1523bd67e0870edfe6da1dacb6a1ba.png", + "itemType": 0, + "visibility": 0 + }, + "1246": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Robot_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1246/avatar.png/75fe4fb64c5139a56d608b180beb087c.png", + "itemType": 0, + "visibility": 0 + }, + "1247": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TheTimeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheTimeALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1247/avatar.png/e5f1d18abd20a45d6c787df8b640e411.png", + "itemType": 0, + "visibility": 0 + }, + "1248": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1248/avatar.png/e7940750fa93e570a036fe4fe5f6cae7.png", + "itemType": 0, + "visibility": 0 + }, + "1249": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "IAmTheBestALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IAmTheBestALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_God_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1249/avatar.png/dd8be92b6bb55ddadbe3a6fd3dcedada.png", + "itemType": 0, + "visibility": 0 + }, + "1250": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_God_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1250/avatar.png/f429760665d47845d3147891adeb073a.png", + "itemType": 0, + "visibility": 0 + }, + "1251": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RainOverMeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RainOverMeALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1251/avatar.png/99e6832aa9428c27a181c1a3f0271853.png", + "itemType": 0, + "visibility": 0 + }, + "1252": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1252/avatar.png/e088350906c546614a3a34efc635d1f4.png", + "itemType": 0, + "visibility": 0 + }, + "1253": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_SpaceJunkies_Bugout", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1253/avatar.png/ffd7b92259a11c3b2e6b3d5f8c9326b5.png", + "itemType": 0, + "visibility": 0 + }, + "1254": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_SpaceJunkies_Subaru", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1254/avatar.png/68901499ab3b49cb663f5719b28c40d7.png", + "itemType": 0, + "visibility": 0 + }, + "1255": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1255/avatar.png/2513f266f94038f997762b14a6791384.png", + "itemType": 0, + "visibility": 0 + }, + "1256": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1256/avatar.png/c37aabc382e59f7e56df16e83ddd6c1d.png", + "itemType": 0, + "visibility": 0 + }, + "1257": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Uplay_Trials", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1257/avatar.png/aee27c90b2722ae7dfea01f90122de3b.png", + "itemType": 0, + "visibility": 0 + }, + "1258": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IlikeIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rasta_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1258/avatar.png/14e803c5ea1fc501c95a394065950880.png", + "itemType": 0, + "visibility": 0 + }, + "1259": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IlikeIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1259/avatar.png/7d590918d7f19f20180e132d4a24632b.png", + "itemType": 0, + "visibility": 0 + }, + "1260": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IlikeIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Seducer", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1260/avatar.png/0902732c9594e775f570a44fb4622c6c.png", + "itemType": 0, + "visibility": 0 + }, + "1261": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IlikeIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1261/avatar.png/cdc89b85c942c4cb88c48d3d91d6ca18.png", + "itemType": 0, + "visibility": 0 + }, + "1262": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Uplay_TheDivision", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1262/avatar.png/92d7af8d6a6718b11e1426a95f8cbd04.png", + "itemType": 0, + "visibility": 0 + }, + "1263": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GodIsAWomanALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zulu", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1263/avatar.png/027a2130b1f9407cba10da45e660beb8.png", + "itemType": 0, + "visibility": 0 + }, + "1264": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GodIsAWomanALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Zulu", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1264/avatar.png/6423d42d020316c637ba5d8e5ccd3bfb.png", + "itemType": 0, + "visibility": 0 + }, + "1267": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TelAviv", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TelAviv", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rrr_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1267/avatar.png/ee81f00226de9836ee2ccab832c9b5b4.png", + "itemType": 0, + "visibility": 0 + }, + "1268": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "TelAviv", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TelAviv", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Singer_Boy", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1268/avatar.png/93623d9f0eccfc37bae975787c9c87cc.png", + "itemType": 0, + "visibility": 0 + }, + "1269": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "TelAviv", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TelAviv", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Seducer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1269/avatar.png/32361c3aaea048049b0fb668496ad0a4.png", + "itemType": 0, + "visibility": 0 + }, + "1270": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Seducer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1270/avatar.png/6c16a063148e1fc3704bbf2fd9a9f6fd.png", + "itemType": 0, + "visibility": 0 + }, + "1271": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Skibidi", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Skibidi", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rasta_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1271/avatar.png/f2a9870af2c97e4222f8a4078d2a84b9.png", + "itemType": 0, + "visibility": 0 + }, + "1272": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Skibidi", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Skibidi", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1272/avatar.png/48d318c6c00e7a10b707da6f21fae94a.png", + "itemType": 0, + "visibility": 0 + }, + "1273": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rasta_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1273/avatar.png/0cddd436eebae7866adc36b0e0acc4fe.png", + "itemType": 0, + "visibility": 0 + }, + "1276": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Nami", + "soundFamily": "AVTR_DragQueen", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1276/avatar.png/9ea30faffed6d9b30174bc09ced50a06.png", + "itemType": 0, + "visibility": 0 + }, + "1277": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Wilo", + "soundFamily": "AVTR_2018_Tomato", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1277/avatar.png/3af240301441811c0837f7d4949dea33.png", + "itemType": 0, + "visibility": 0 + }, + "1278": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Sunny", + "soundFamily": "AVTR_Coin", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1278/avatar.png/46b05e6457f74ffbe4bebd1e7f072e8a.png", + "itemType": 0, + "visibility": 0 + }, + "1279": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Swag", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1279/avatar.png/0732b3b0b9e45b8088b51997c0b55b8f.png", + "itemType": 0, + "visibility": 0 + }, + "1280": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Rock", + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/avatars/1280/avatar.png/2cf79a5daf50c899b2a17808fdde2ed4.png", + "itemType": 0, + "visibility": 0 + }, + "1281": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Swag", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Swag", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1281/avatar.png/91da6542f0aae48af97be36562edc1d5.png", + "itemType": 0, + "visibility": 0 + }, + "1282": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1282/avatar.png/5a56ed7821d14d1dfad8588daeb260e7.png", + "itemType": 0, + "visibility": 0 + }, + "1283": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SushiiALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SushiiALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1283/avatar.png/0111fe7e7888010639bfdeac46627c0f.png", + "itemType": 0, + "visibility": 0 + }, + "1284": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1284/avatar.png/6b2be98a8495a8556c82dc6647f3d977.png", + "itemType": 0, + "visibility": 0 + }, + "1285": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BangarangALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BangarangALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Bangarang", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1285/avatar.png/dc42cc82f65f4568f82d030cb45821ab.png", + "itemType": 0, + "visibility": 0 + }, + "1286": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Bangarang", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1286/avatar.png/4e809e6c48857cd11a25470dc2b88547.png", + "itemType": 0, + "visibility": 0 + }, + "1287": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TakiTakiALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TakiTakiALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Bangarang", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1287/avatar.png/113280db649aec5bad61984392b8b722.png", + "itemType": 0, + "visibility": 0 + }, + "1288": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "TakiTakiALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TakiTakiALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Hippopotamus", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1288/avatar.png/c370473ea1b9ae2edd170f249979810f.png", + "itemType": 0, + "visibility": 0 + }, + "1289": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Hippopotamus", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1289/avatar.png/0836bc126db4846ab5be718afa765cf3.png", + "itemType": 0, + "visibility": 0 + }, + "1290": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "GetBusy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GetBusy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1290/avatar.png/87513401e752af285df19e7a414dc4c6.png", + "itemType": 0, + "visibility": 0 + }, + "1291": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "GetBusy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GetBusy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1291/avatar.png/431edbc60b0fbb749b5d513195df17b4.png", + "itemType": 0, + "visibility": 0 + }, + "1292": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1292/avatar.png/61ef5052f334fc05ea020604a4c32ab1.png", + "itemType": 0, + "visibility": 0 + }, + "1293": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HighHopes", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HighHopes", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Gladiator", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1293/avatar.png/2263ffd3726d36b7709f3b68a454f325.png", + "itemType": 0, + "visibility": 0 + }, + "1294": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "HighHopes", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HighHopes", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1294/avatar.png/663c20c8f821b1d2a1ab48f89369cfa3.png", + "itemType": 0, + "visibility": 0 + }, + "1295": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "HighHopes", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HighHopes", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_God_Guy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1295/avatar.png/83fd1c7f0c193e839b2a7b985189ed51.png", + "itemType": 0, + "visibility": 0 + }, + "1296": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "HighHopes", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HighHopes", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funny_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1296/avatar.png/b5c61f1160e35080ced5ceec3961f8c4.png", + "itemType": 0, + "visibility": 0 + }, + "1297": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Gladiator", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1297/avatar.png/1f90c81fbf5a51068360456bfc81a056.png", + "itemType": 0, + "visibility": 0 + }, + "1298": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KillThisLove", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KillThisLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1298/avatar.png/3d90764b099a52125b26778593497139.png", + "itemType": 0, + "visibility": 0 + }, + "1299": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "KillThisLove", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KillThisLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Shy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1299/avatar.png/2daa9131ce9c67ab0a01e6d9410dfbe1.png", + "itemType": 0, + "visibility": 0 + }, + "1300": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "KillThisLove", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KillThisLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1300/avatar.png/9554008780788a7115ac3af7fb1cb3a4.png", + "itemType": 0, + "visibility": 0 + }, + "1301": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "KillThisLove", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KillThisLove", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Cutie_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1301/avatar.png/3b88b770f132abfacf3123e297b01560.png", + "itemType": 0, + "visibility": 0 + }, + "1302": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1302/avatar.png/2525f1ac3f584d81c58ec0ae1c813a76.png", + "itemType": 0, + "visibility": 0 + }, + "1303": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Talk", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Talk", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funky_Guy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1303/avatar.png/5cea151bd32f4aa00b6b2f1285c07d46.png", + "itemType": 0, + "visibility": 0 + }, + "1304": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funky_Guy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1304/avatar.png/941d5b43c9dfe2e35e2f9d62519585c1.png", + "itemType": 0, + "visibility": 0 + }, + "1306": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "MaItu", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "MaItu", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Maitu", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1306/avatar.png/30562cc916f0a1bedc20816e3744a203.png", + "itemType": 0, + "visibility": 0 + }, + "1307": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Maitu", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1307/avatar.png/50860831e2331e6f3dbd703aa600a96a.png", + "itemType": 0, + "visibility": 0 + }, + "1308": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Everybody", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Everybody", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1308/avatar.png/9a4820002bcf0b73169ec92986b24e1e.png", + "itemType": 0, + "visibility": 0 + }, + "1309": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Everybody", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Everybody", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1309/avatar.png/92a593d44e9c115b7affad366af3e9e2.png", + "itemType": 0, + "visibility": 0 + }, + "1310": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Everybody", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Everybody", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Sassy_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1310/avatar.png/4d4e02966a7fb7cbb31fb2a5669fd16e.png", + "itemType": 0, + "visibility": 0 + }, + "1311": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Everybody", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Everybody", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1311/avatar.png/15feca5e3f09b1c632909dd18bcf6c8d.png", + "itemType": 0, + "visibility": 0 + }, + "1312": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Sassy_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1312/avatar.png/3eb94732857c5c7c76cb781fb492d258.png", + "itemType": 0, + "visibility": 0 + }, + "1316": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TalkALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TalkALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1316/avatar.png/40702129166f351d48d1d945a84f0ba7.png", + "itemType": 0, + "visibility": 0 + }, + "1317": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1317/avatar.png/1c1c1cda6b1f6d9c1c29e3965fd9ca61.png", + "itemType": 0, + "visibility": 0 + }, + "1318": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "OldTownRoad", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OldTownRoad", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cow_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1318/avatar.png/1844e70fdf46ee970b283c5abc941de8.png", + "itemType": 0, + "visibility": 0 + }, + "1319": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cow_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1319/avatar.png/eb515de506be1e30dbe4bd511b21e94c.png", + "itemType": 0, + "visibility": 0 + }, + "1322": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "7Rings", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "7Rings", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Shy_Girl", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1322/avatar.png/a8c2689ff37326f5eafeb26ae64b165a.png", + "itemType": 0, + "visibility": 0 + }, + "1323": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "7Rings", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "7Rings", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1323/avatar.png/1b182b7de5eb283136b55e98069b6287.png", + "itemType": 0, + "visibility": 0 + }, + "1324": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "7Rings", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "7Rings", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cute_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1324/avatar.png/e9ebc02557f11559e2a4b896d5257ca8.png", + "itemType": 0, + "visibility": 0 + }, + "1325": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1325/avatar.png/3e28978031d04fc2f890b0d202b3c6fb.png", + "itemType": 0, + "visibility": 0 + }, + "1326": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BadGuy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BadGuy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Bad_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1326/avatar.png/b49c4bd3cf330ac68ae198cabd5a9398.png", + "itemType": 0, + "visibility": 0 + }, + "1327": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Bad_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1327/avatar.png/09bf39fa644d3d5f9157e9316000b1fc.png", + "itemType": 0, + "visibility": 0 + }, + "1328": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Footwork", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Footwork", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Sassy_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1328/avatar.png/5bbb81bda0512929841856ebb76c46b8.png", + "itemType": 0, + "visibility": 0 + }, + "1329": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Sassy_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1329/avatar.png/d7673486e8805e639fc916c53d967d3c.png", + "itemType": 0, + "visibility": 0 + }, + "1330": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "OldTownRoadALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OldTownRoadALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Yihaaa", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1330/avatar.png/3afc6897c9d25ba4b2757f656eb58f31.png", + "itemType": 0, + "visibility": 0 + }, + "1331": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "OldTownRoadALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OldTownRoadALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1331/avatar.png/849f621b297752a56e42e0e42fffa050.png", + "itemType": 0, + "visibility": 0 + }, + "1332": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "OldTownRoadALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OldTownRoadALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Tex_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1332/avatar.png/3d4be376d4a1c9d7ab8826aef5b7db3b.png", + "itemType": 0, + "visibility": 0 + }, + "1333": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Tex_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1333/avatar.png/3ee7dc96efae571ba10e04cdac24187a.png", + "itemType": 0, + "visibility": 0 + }, + "1334": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "JustAnIllusion", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JustAnIllusion", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1334/avatar.png/aff44efe590598eeaef5c174d149cf13.png", + "itemType": 0, + "visibility": 0 + }, + "1335": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "JustAnIllusion", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JustAnIllusion", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Party_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1335/avatar.png/e3823743d63f97073dd3f1365e516c1e.png", + "itemType": 0, + "visibility": 0 + }, + "1336": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Party_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1336/avatar.png/e85f8cb042e346b6b341ce98a79b6097.png", + "itemType": 0, + "visibility": 0 + }, + "1337": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "StopMovin", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "StopMovin", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Party_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1337/avatar.png/b2480d38664a7e6c9e65980bb02c613f.png", + "itemType": 0, + "visibility": 0 + }, + "1338": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "StopMovin", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "StopMovin", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cap_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1338/avatar.png/9e400adfed81d30f74aee58c413a4798.png", + "itemType": 0, + "visibility": 0 + }, + "1339": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "StopMovin", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "StopMovin", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Party_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1339/avatar.png/45b291ddd584c826a2bb7c7626a79099.png", + "itemType": 0, + "visibility": 0 + }, + "1340": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cap_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1340/avatar.png/e2d40033f953690a53cebd8d59b45f98.png", + "itemType": 0, + "visibility": 0 + }, + "1342": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "7RingsALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "7RingsALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Diva", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1342/avatar.png/6e274c1c9552a68372eebed06db8f911.png", + "itemType": 0, + "visibility": 0 + }, + "1343": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Diva", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1343/avatar.png/fbd272a3cb7af194e56ecf34e8d1bcb7.png", + "itemType": 0, + "visibility": 0 + }, + "1344": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KillThisLoveALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KillThisLoveALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1344/avatar.png/72e6c01aabc664e74220ef4f7c89d80b.png", + "itemType": 0, + "visibility": 0 + }, + "1345": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1345/avatar.png/14b92725e435d242ed12313718c992cf.png", + "itemType": 0, + "visibility": 0 + }, + "1346": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BassaSababa", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BassaSababa", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Elf", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1346/avatar.png/f34e311111c0678b5a781c20b38d9077.png", + "itemType": 0, + "visibility": 0 + }, + "1347": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Elf", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1347/avatar.png/612396c3db01a26635ab5faad8e141ca.png", + "itemType": 0, + "visibility": 0 + }, + "1348": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FancyTwice", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FancyTwice", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Swagg_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1348/avatar.png/0904b12994950c6fe8213ca924ec6f9b.png", + "itemType": 0, + "visibility": 0 + }, + "1349": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "FancyTwice", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FancyTwice", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1349/avatar.png/4cd05e24e17a4a95eef3b5d8c1ce395c.png", + "itemType": 0, + "visibility": 0 + }, + "1350": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "FancyTwice", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FancyTwice", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1350/avatar.png/2b1e2cc16374e32cc647f414599f1b11.png", + "itemType": 0, + "visibility": 0 + }, + "1351": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "UglyBeauty", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "UglyBeauty", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1351/avatar.png/455b08aebbc21dfcadce1275427896c2.png", + "itemType": 0, + "visibility": 0 + }, + "1352": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "UglyBeauty", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "UglyBeauty", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Diamond", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1352/avatar.png/acbe2cb8008a482293057228c6b27c9e.png", + "itemType": 0, + "visibility": 0 + }, + "1353": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "UglyBeauty", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "UglyBeauty", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Flower", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1353/avatar.png/4a4adf49929c6d130cb4e8c005856b68.png", + "itemType": 0, + "visibility": 0 + }, + "1354": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DoCarnaval", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DoCarnaval", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1354/avatar.png/8fd8be140b1ad73a4c64b96a1d7e0f96.png", + "itemType": 0, + "visibility": 0 + }, + "1355": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1355/avatar.png/47af880b6f9a2882e9bf74c745909125.png", + "itemType": 0, + "visibility": 0 + }, + "1356": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ConAltura", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ConAltura", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1356/avatar.png/faaf0c5162864605ca10bed35cbaf22c.png", + "itemType": 0, + "visibility": 0 + }, + "1357": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1357/avatar.png/d9d57eaf0501d0b6ad6f52a062a618fd.png", + "itemType": 0, + "visibility": 0 + }, + "1358": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "IDontCare", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "IDontCare", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1358/avatar.png/06ca24dcaae932860bbd4ba9bf9cf9bf.png", + "itemType": 0, + "visibility": 0 + }, + "1359": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1359/avatar.png/729a086ccc9f698b995a3a919075c2ab.png", + "itemType": 0, + "visibility": 0 + }, + "1360": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1360/avatar.png/b88264f3c6ae93aa3cb75d098d348ca8.png", + "itemType": 0, + "visibility": 0 + }, + "1361": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1361/avatar.png/dca3d8d7fd400738ebac0fe7fd07241c.png", + "itemType": 0, + "visibility": 0 + }, + "1362": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "CanCan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CanCan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Chicken", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1362/avatar.png/342cada9e24c76b36b7f88fa01f41056.png", + "itemType": 0, + "visibility": 0 + }, + "1363": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "CanCan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CanCan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Duck", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1363/avatar.png/e3f5c449a4aecd4e9d0bd3eb5d4e6bdc.png", + "itemType": 0, + "visibility": 0 + }, + "1364": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "CanCan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CanCan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Dog", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1364/avatar.png/b7dbfcc1d17f0be6592f86434fa97be5.png", + "itemType": 0, + "visibility": 0 + }, + "1365": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "CanCan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CanCan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Pig", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1365/avatar.png/53e075aea988a307146aa379d306cfa4.png", + "itemType": 0, + "visibility": 0 + }, + "1366": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 4, + "UsedAsCoach_MapName": "CanCan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CanCan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cow", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1366/avatar.png/b06250523dd9f96b1126d35a5e7804f6.png", + "itemType": 0, + "visibility": 0 + }, + "1367": { + "JdNowVersion": 2020, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 2020, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Duck", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1367/avatar.png/37977bed7eb2362b60978de72b432db1.png", + "itemType": 0, + "visibility": 0 + }, + "1375": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Clint", + "soundFamily": "AVTR_Boyllywood", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1375/avatar.png/fb4bf9a236c94f94f7414f605de5d5d6.png", + "itemType": 0, + "visibility": 0 + }, + "1376": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Monty", + "soundFamily": "AVTR_SantaClaus", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1376/avatar.png/d19ec3cf2ff70f38f94679bd142a2c13.png", + "itemType": 0, + "visibility": 0 + }, + "1377": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Ori", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1377/avatar.png/44bfe9121b88a9c1d57594de9db417fc.png", + "itemType": 0, + "visibility": 0 + }, + "1388": { + "Id": 1388, + "JDNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Lullaby", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Lullaby", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Brand", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1388/avatar.png/c3b8e3c7d6540f1a3c3bce03a3b4dcc0.png", + "itemType": 0, + "visibility": 0 + }, + "1390": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Twinkle2", + "soundFamily": "AVTR_2020_Elf", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1390/avatar.png/76616e69d0b311cb05d6da7c1c3b1aef.png", + "itemType": 0, + "visibility": 0 + }, + "1391": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Sparkle2", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1391/avatar.png/d297f14f9f9aa9f152096f3667ca3e47.png", + "itemType": 0, + "visibility": 0 + }, + "1392": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Santa", + "soundFamily": "AVTR_SantaClaus", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1392/avatar.png/33c22d5f89f2c25ad116adad9272fca1.png", + "itemType": 0, + "visibility": 0 + }, + "1393": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BadAssPrincessKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BadAssPrincessKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Princess_Badass", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1393/avatar.png/d84ea745478cb046efd31acd42256b06.png", + "itemType": 0, + "visibility": 1 + }, + "1394": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SpyKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SpyKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1394/avatar.png/2d0d1a097933724c5118ffc38f33d7f3.png", + "itemType": 0, + "visibility": 1 + }, + "1395": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "ChasmonauteKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "ChasmonauteKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Chasmonaute", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1395/avatar.png/dbfb67c1fb1eff4b3aa910ea70c15966.png", + "itemType": 0, + "visibility": 1 + }, + "1396": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BubblesKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BubblesKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1396/avatar.png/18b05ea3d9f5fa857afa8fde8c062a42.png", + "itemType": 0, + "visibility": 1 + }, + "1397": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FiremenKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FiremenKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Firemen_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1397/avatar.png/08bb9866be0f28833ecb1c84dbf8fb54.png", + "itemType": 0, + "visibility": 1 + }, + "1398": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "FiremenKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Firemen_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1398/avatar.png/7ecb2b7ebbe737a2366c4a048ff3d524.png", + "itemType": 0, + "visibility": 1 + }, + "1399": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "EcoloKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "EcoloKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1399/avatar.png/7edc0626a16a08198de3d6ce6e33f6ce.png", + "itemType": 0, + "visibility": 1 + }, + "1400": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "EcoloKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_LittlePanda", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1400/avatar.png/cb84ee5b95768ce5d81e4814dc0d55a3.png", + "itemType": 0, + "visibility": 1 + }, + "1402": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BalletKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Castafiore", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1402/avatar.png/e97d597f8944ac71eea1fa0bebb9dab6.png", + "itemType": 0, + "visibility": 1 + }, + "1403": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "BalletKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BalletKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Elf", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1403/avatar.png/11b1b72450c927ac0e39ade726cfc23f.png", + "itemType": 0, + "visibility": 1 + }, + "1404": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "WhiteYeti", + "soundFamily": "AVTR_2020_Common_Seducer", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1404/avatar.png/7c6a54388596560e29cb06af182026dd.png", + "itemType": 0, + "visibility": 0 + }, + "1405": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "CrashGuy", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1405/avatar.png/4ab71c78d8db346efab9c954e2567342.png", + "itemType": 0, + "visibility": 0 + }, + "1406": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "T-rex", + "soundFamily": "AVTR_2020_Elf", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1406/avatar.png/742c7a91abba77499fd6c6851e98f012.png", + "itemType": 0, + "visibility": 0 + }, + "1407": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "CarpetKids", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "CarpetKids", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Secret", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1407/avatar.png/3c2e2b16ecfebda19e9d894b74562a0c.png", + "itemType": 0, + "visibility": 1 + }, + "1408": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Senorita", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Senorita", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Girl_Common", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1408/avatar.png/07424d048688309352e9efc837226c67.png", + "itemType": 0, + "visibility": 1 + }, + "1409": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Senorita", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rrr_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1409/avatar.png/ecca24c58e9e15225612283133c18645.png", + "itemType": 0, + "visibility": 1 + }, + "1411": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Senorita", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rrr_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1411/avatar.png/22e6926dd73aa8357a8cb4507ffa8823.png", + "itemType": 0, + "visibility": 1 + }, + "1412": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Bailando1997", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Bailando1997", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1412/avatar.png/30dd0831822ad9657bbae8edee7b1415.png", + "itemType": 0, + "visibility": 1 + }, + "1413": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Bailando1997", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1413/avatar.png/636230b54f2dc817e01e65584ea80b58.png", + "itemType": 0, + "visibility": 1 + }, + "1414": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HabibiYaeni", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HabibiYaeni", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1414/avatar.png/c912e04a910386d0e94f0446d63e858f.png", + "itemType": 0, + "visibility": 1 + }, + "1415": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "HabibiYaeni", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1415/avatar.png/5cf6b2d1a1b9daadf54c5289af7d2cce.png", + "itemType": 0, + "visibility": 1 + }, + "1416": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "HabibiYaeni", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Girly", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1416/avatar.png/72c198a098cb07407041c56908714e18.png", + "itemType": 0, + "visibility": 1 + }, + "1417": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HabibiYaeni", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1417/avatar.png/8b813fd4443e735aa3fd8115c36162fb.png", + "itemType": 0, + "visibility": 1 + }, + "1418": { + "Id": 1418, + "JDNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Kong", + "soundFamily": "AVTR_2020_Gorilla", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1418/avatar.png/0f540fe27f9ce49feccbdea37686ad91.png", + "itemType": 0, + "visibility": 0 + }, + "1419": { + "Id": 1419, + "JDNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Deerman", + "soundFamily": "AVTR_2020_Deer", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1419/avatar.png/cf02a57faf78eb9a1f9f6d82c4efad07.png", + "itemType": 0, + "visibility": 0 + }, + "1420": { + "Id": 1420, + "JDNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "SuperPanda", + "soundFamily": "AVTR_Panda", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1420/avatar.png/a7129bbdb452e92d1db70e53d30e458d.png", + "itemType": 0, + "visibility": 0 + }, + "1421": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "QueTirePaLante", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hero", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1421/avatar.png/dd3a24a29d8f1f2cf024d82413e70d9b.png", + "itemType": 0, + "visibility": 1 + }, + "1422": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "QueTirePaLante", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "QueTirePaLante", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1422/avatar.png/b465f75ae3049727db863b442b5d3ef0.png", + "itemType": 0, + "visibility": 1 + }, + "1423": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "QueTirePaLante", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1423/avatar.png/08009535168aa6b33fbf8e4b51e94dfe.png", + "itemType": 0, + "visibility": 1 + }, + "1424": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "QueTirePaLante", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funny_Girl", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1424/avatar.png/c3603114088315a297dc36554f47eede.png", + "itemType": 0, + "visibility": 1 + }, + "1425": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "QueTirePaLante", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1425/avatar.png/e585c99feee92a5b4be3c384507bfc87.png", + "itemType": 0, + "visibility": 1 + }, + "1426": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "InTheNavy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Knight", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1426/avatar.png/551bcb637a5e23b9123cfd9fd6e0a995.png", + "itemType": 0, + "visibility": 1 + }, + "1427": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "InTheNavy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Creole_Pirate", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1427/avatar.png/1c07ac3f982afd4f62b9f3ac22095c20.png", + "itemType": 0, + "visibility": 1 + }, + "1428": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "InTheNavy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Yihaaa", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1428/avatar.png/95b8d49252515dc52d1bcf530d290cfb.png", + "itemType": 0, + "visibility": 1 + }, + "1429": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "InTheNavy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "InTheNavy", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Chicken", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1429/avatar.png/2c93f98c32a93d65ef49b3789f3d545b.png", + "itemType": 0, + "visibility": 1 + }, + "1430": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "InTheNavy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Chicken", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1430/avatar.png/b6c8d4a74d3f1372fa090de7e94de970.png", + "itemType": 0, + "visibility": 1 + }, + "1432": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Hippos", + "soundFamily": "AVTR_2020_Hippopotamus", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1432/avatar.png/40c9ab2d6e40570025502b07b3fbbe11.png", + "itemType": 0, + "visibility": 0 + }, + "1433": { + "Id": 1433, + "JDNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "TheGiraffa", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1433/avatar.png/5746605418ecb09418d273b890a31884.png", + "itemType": 0, + "visibility": 0 + }, + "1434": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "RedLion", + "soundFamily": "AVTR_2020_Cow_Boy", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1434/avatar.png/32867f3fef606489a539b41b61a1e2c5.png", + "itemType": 0, + "visibility": 0 + }, + "1435": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Georgia", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Georgia", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Boy_Georgia", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1435/avatar.png/715f267a4312fa87c1d701acc87565d2.png", + "itemType": 0, + "visibility": 1 + }, + "1436": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Georgia", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Boy_Georgia", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1436/avatar.png/3438a9c1cf10a6d8a8e1ea56a08a1718.png", + "itemType": 0, + "visibility": 1 + }, + "1437": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Buscando", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Buscando", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1437/avatar.png/052ea055f623ea170367a5d933aedff2.png", + "itemType": 0, + "visibility": 1 + }, + "1438": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Buscando", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1438/avatar.png/6819579251ed40d184ace499bf61cf1f.png", + "itemType": 0, + "visibility": 1 + }, + "1439": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SambaDeJaneiro", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Hilarious", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1439/avatar.png/c9bc5e4794abb408a490c0fc061b7222.png", + "itemType": 0, + "visibility": 1 + }, + "1440": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SambaDeJaneiro", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SambaDeJaneiro", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1440/avatar.png/093b39ff77d8476c3c25338a3dffbe06.png", + "itemType": 0, + "visibility": 1 + }, + "1441": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "SambaDeJaneiro", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_AfroGirl", + "status": 1, + "unlockType": 19, + "url": "https://jd-s3.akamaized.net/public/avatars/1441/avatar.png/c265666588e142cf178e7f4cb58a4a5c.png", + "itemType": 0, + "visibility": 1 + }, + "1442": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SambaDeJaneiro", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1442/avatar.png/c8e93d8ac73bde6ee27c716949681c3c.png", + "itemType": 0, + "visibility": 1 + }, + "1443": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TheWeekend", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Smooth", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1443/avatar.png/00ba7baa91e2483cdedbf22402968c34.png", + "itemType": 0, + "visibility": 1 + }, + "1444": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "TheWeekend", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TheWeekend", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Smooth", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1444/avatar.png/3e1c915e66cf360fd641a384fde60238.png", + "itemType": 0, + "visibility": 1 + }, + "1445": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "TheWeekend", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Smooth", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1445/avatar.png/3447306f9c2ac5c3a9dfc30616dab230.png", + "itemType": 0, + "visibility": 1 + }, + "1446": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WithoutMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1446/avatar.png/208aba4fc1e8741ead95369f9ea4ae05.png", + "itemType": 0, + "visibility": 1 + }, + "1447": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WithoutMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1447/avatar.png/a15d205eb198133805886b2f4a3f0bba.png", + "itemType": 0, + "visibility": 1 + }, + "1448": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "WithoutMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WithoutMe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Boy_Pool", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1448/avatar.png/8f3a84e5441d25ca7ea269039bb63745.png", + "itemType": 0, + "visibility": 1 + }, + "1449": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "WithoutMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Boy_Pool", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1449/avatar.png/1bd8a1e62f273217a222af6f48e1860e.png", + "itemType": 0, + "visibility": 1 + }, + "1450": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DibbyDibby", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Dog", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1450/avatar.png/e999a37231d9a7cadd31c004bb2888dc.png", + "itemType": 0, + "visibility": 1 + }, + "1451": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "DibbyDibby", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DibbyDibby", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Dog", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1451/avatar.png/4423b2b340c1df048f0924db71fb9af0.png", + "itemType": 0, + "visibility": 1 + }, + "1452": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DibbyDibby", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Dog", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1452/avatar.png/1591fe2f996dc980553e1e62828820ae.png", + "itemType": 0, + "visibility": 1 + }, + "1453": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Alexandrie", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Girl_Pyramid", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1453/avatar.png/a760686315924b653c757192ed6f072c.png", + "itemType": 0, + "visibility": 1 + }, + "1454": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Alexandrie", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Alexandrie", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Boy_Clo", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1454/avatar.png/a8cfc1832825d2fc17fee1e9393c4299.png", + "itemType": 0, + "visibility": 1 + }, + "1455": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Alexandrie", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Girl_Lili", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1455/avatar.png/be1a4d237b2e8da6dac7fce46e6a61ae.png", + "itemType": 0, + "visibility": 1 + }, + "1456": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Alexandrie", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Boy_Clo", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1456/avatar.png/f6d858312b0c12a7e7ca37d59e813823.png", + "itemType": 0, + "visibility": 1 + }, + "1457": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SweetEscape", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SweetEscape", + "relativeWDFBossName": "", + "soundFamily": "AVTR_DragQueen", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1457/avatar.png/39ec4da2e43ce6e1c60a833ec26a773b.png", + "itemType": 0, + "visibility": 1 + }, + "1458": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SweetEscape", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_DragQueen", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1458/avatar.png/4cae95d57ee6e9279f52ff744723548d.png", + "itemType": 0, + "visibility": 1 + }, + "1459": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HeatSeeker", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HeatSeeker", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_rock_boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1459/avatar.png/1571126700c01c9a2483f890caf455db.png", + "itemType": 0, + "visibility": 1 + }, + "1460": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HeatSeeker", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_rock_boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1460/avatar.png/3fb602ebb31189442833ea8a94a3c656.png", + "itemType": 0, + "visibility": 1 + }, + "1461": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Juice", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1461/avatar.png/84812ee83bd94a12d5b9bc9c873e6e33.png", + "itemType": 0, + "visibility": 1 + }, + "1462": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Juice", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Juice", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1462/avatar.png/10720461464f2fcb01baaeabd38a4d28.png", + "itemType": 0, + "visibility": 1 + }, + "1463": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Juice", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Swagg_Girl", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1463/avatar.png/2b45781c82f7ca4a1fd4bea8c3b55473.png", + "itemType": 0, + "visibility": 1 + }, + "1464": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Juice", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1464/avatar.png/790b584aee50a20b3a2aeff178a61f8b.png", + "itemType": 0, + "visibility": 1 + }, + "1465": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Kuliki", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Kuliki", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_CatChef", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1465/avatar.png/703cda240be2720d701b248cec441bf2.png", + "itemType": 0, + "visibility": 1 + }, + "1466": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Kuliki", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_CatChef", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1466/avatar.png/1ca7c79d9aa64d4376c1449907ace842.png", + "itemType": 0, + "visibility": 1 + }, + "1467": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WhoRun", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Bad_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1467/avatar.png/c08ca2fcd1878cec0b5b143285e1266c.png", + "itemType": 0, + "visibility": 1 + }, + "1468": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WhoRun", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WhoRun", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1468/avatar.png/46c16d7ca500a5d7c1b9142b03180e68.png", + "itemType": 0, + "visibility": 1 + }, + "1469": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "WhoRun", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1469/avatar.png/3975fbde9c805ca54fa63f18bbb0781b.png", + "itemType": 0, + "visibility": 1 + }, + "1470": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "WhoRun", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1470/avatar.png/b6600eb3a71e105e97f2717bcec4c40d.png", + "itemType": 0, + "visibility": 1 + }, + "1471": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WithoutMeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "WithoutMeALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1471/avatar.png/1d62f4b3c137483154f8992e123f1363.png", + "itemType": 0, + "visibility": 1 + }, + "1472": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WithoutMeALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1472/avatar.png/2d6a3ecb687ec0ccfeae656f7f97c7da.png", + "itemType": 0, + "visibility": 1 + }, + "1473": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RareALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RareALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Cutie_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1473/avatar.png/d2da1593833ce7b2ada4ed7becff247b.png", + "itemType": 0, + "visibility": 1 + }, + "1474": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RareALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Cutie_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1474/avatar.png/fb0eed903d5fc0402ca86981e2be6790.png", + "itemType": 0, + "visibility": 1 + }, + "1475": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DanceMonkey", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DanceMonkey", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1475/avatar.png/173d5bb14dc35d53f4568748a098fe39.png", + "itemType": 0, + "visibility": 1 + }, + "1476": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DanceMonkey", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1476/avatar.png/41c446764468cbc295e0df47a72b64c9.png", + "itemType": 0, + "visibility": 1 + }, + "1477": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HabibiYaeniALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "HabibiYaeniALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1477/avatar.png/fff4db1f2fc3344708ff6dd93c660018.png", + "itemType": 0, + "visibility": 1 + }, + "1478": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "HabibiYaeniALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_HipHop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1478/avatar.png/74cc28efa5088892cf0fe9e9101d627a.png", + "itemType": 0, + "visibility": 1 + }, + "1479": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DontStartALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontStartALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1479/avatar.png/cfc06c8cf759591c7f9808d02bc21bd2.png", + "itemType": 0, + "visibility": 1 + }, + "1480": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DontStartALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Yeah", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1480/avatar.png/3cf1aa96d46c4fad5cdfa2451ba25853.png", + "itemType": 0, + "visibility": 1 + }, + "1481": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "JuiceALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Snowdrop", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1481/avatar.png/c6ddb038aa117036109cffc2a736b46a.png", + "itemType": 0, + "visibility": 1 + }, + "1482": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "JuiceALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Hyper", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1482/avatar.png/ca4b476b4a8a5dea164210dd66465fe1.png", + "itemType": 0, + "visibility": 1 + }, + "1483": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "JuiceALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "JuiceALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Pineapple", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1483/avatar.png/a5b56b1b05abedcc5192390506820332.png", + "itemType": 0, + "visibility": 1 + }, + "1484": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "JuiceALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Pineapple", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1484/avatar.png/c00179a8a36a3701acdcb9d06888b280.png", + "itemType": 0, + "visibility": 1 + }, + "1485": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Zenit", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Zenit", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1485/avatar.png/1b7e47aa98047b367137af8b07f06ab2.png", + "itemType": 0, + "visibility": 1 + }, + "1486": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Zenit", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Kawaii", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1486/avatar.png/a3eed891995ff45bec901970fa1194e1.png", + "itemType": 0, + "visibility": 1 + }, + "1487": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BuscandoALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BuscandoALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1487/avatar.png/840238007db57cee39f641b72f442b51.png", + "itemType": 0, + "visibility": 1 + }, + "1488": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BuscandoALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1488/avatar.png/89361761604d9753be6cd15b1ee284ba.png", + "itemType": 0, + "visibility": 1 + }, + "1489": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SambaDeJaneiroALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1489/avatar.png/140d41ed4a59ee3a390cb4be23b0b86f.png", + "itemType": 0, + "visibility": 1 + }, + "1490": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SambaDeJaneiroALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SambaDeJaneiroALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1490/avatar.png/3ddc8115469917765efd51e903b15b84.png", + "itemType": 0, + "visibility": 1 + }, + "1491": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SambaDeJaneiroALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Common_Boy_Salsa", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1491/avatar.png/2384ce35f92eb587d4d371a93b58124b.png", + "itemType": 0, + "visibility": 1 + }, + "1492": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Joone", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Party_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1492/avatar.png/9a319db4c34127f53b34961f8a6c07d9.png", + "itemType": 0, + "visibility": 1 + }, + "1493": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Joone", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Joone", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_God_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1493/avatar.png/a644cb0340026b8cd39c4d03cb9207a0.png", + "itemType": 0, + "visibility": 1 + }, + "1494": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Joone", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_God_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1494/avatar.png/21e15cbe18c97bdf31a168adca082e61.png", + "itemType": 0, + "visibility": 1 + }, + "1495": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "NEO", + "soundFamily": "AVTR_2020_Common_Party_Boy", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1495/avatar.png/6de325a507af68d7b999f3acc8fe1c8e.png", + "itemType": 0, + "visibility": 0 + }, + "1496": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "BOOMBOX", + "soundFamily": "AVTR_2020_Mc_Boy", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1496/avatar.png/7a591734fe8dfe016ed72ffe4dd700ae.png", + "itemType": 0, + "visibility": 0 + }, + "1497": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "FURY", + "soundFamily": "AVTR_2020_Elf", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1497/avatar.png/219e0e87a5a183748270419027b91cc4.png", + "itemType": 0, + "visibility": 0 + }, + "1500": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AdoreYou", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AdoreYou", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Boogie_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1500/avatar.png/72f8efee09ab19651b684f93b6e8cd01.png", + "itemType": 0, + "visibility": 1 + }, + "1501": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AdoreYou", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Boogie_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1501/avatar.png/53d640a2929acfe7b8b458d467f191a2.png", + "itemType": 0, + "visibility": 1 + }, + "1502": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FeelSpecialALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FeelSpecialALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Girllywood", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1502/avatar.png/63c881f9150fc79270c6edb6db8dc690.png", + "itemType": 0, + "visibility": 1 + }, + "1503": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FeelSpecialALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Girllywood", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1503/avatar.png/613aa60e8dc22e9438d88aaae4021141.png", + "itemType": 0, + "visibility": 1 + }, + "1504": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Runaway", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Runaway", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Robot", + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/avatars/1504/avatar.png/9c67f3f400b9c3d45a5179478d94a7e8.png", + "itemType": 0, + "visibility": 1 + }, + "1505": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Runaway", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Robot_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1505/avatar.png/3475aade46b728b5a1f1e14181ab48e3.png", + "itemType": 0, + "visibility": 1 + }, + "1506": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Runaway", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Robot_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1506/avatar.png/a497d361805195d582dfa46387639382.png", + "itemType": 0, + "visibility": 1 + }, + "1507": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Volar", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Volar", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1507/avatar.png/7be921d37c4410cb4a9d13249535b38e.png", + "itemType": 0, + "visibility": 1 + }, + "1508": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Volar", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1508/avatar.png/091b6b52a9bd60540e0c5d51ac1e4630.png", + "itemType": 0, + "visibility": 1 + }, + "1509": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "GetGetDown", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Retro", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1509/avatar.png/7c9d4822f02a0cc287880ddc07b3e517.png", + "itemType": 0, + "visibility": 1 + }, + "1510": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "GetGetDown", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Child", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1510/avatar.png/65e30365db2fbc716a02d9680ff15525.png", + "itemType": 0, + "visibility": 1 + }, + "1511": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "GetGetDown", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Laugh", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1511/avatar.png/ac647d405fda9eac05567e1a0c779ae2.png", + "itemType": 0, + "visibility": 1 + }, + "1512": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "GetGetDown", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "GetGetDown", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1512/avatar.png/424915d3da948fa037b0d4655cd8e9b3.png", + "itemType": 0, + "visibility": 1 + }, + "1513": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "GetGetDown", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Boy_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1513/avatar.png/277902e97622238df43d4f22a7c67c95.png", + "itemType": 0, + "visibility": 1 + }, + "1518": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WhoRunALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Bad_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1518/avatar.png/35a4749bc908eae37ae63a8de33795af.png", + "itemType": 0, + "visibility": 1 + }, + "1519": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "POLARO", + "soundFamily": "AVTR_2018_Mouse", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1519/avatar.png/5804cb6d2dc675eab627e088f165d481.png", + "itemType": 0, + "visibility": 0 + }, + "1520": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "GAMEBO", + "soundFamily": "AVTR_2020_Robot_Girl", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1520/avatar.png/e79d1bd6d5b871d0d7088895e41fb507.png", + "itemType": 0, + "visibility": 0 + }, + "1521": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "STEREO", + "soundFamily": "AVTR_2020_Mc_Boy", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1521/avatar.png/a56c032c02c7ab454afb6428ba5475e5.png", + "itemType": 0, + "visibility": 0 + }, + "1522": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AllTheGoodGirls", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "AllTheGoodGirls", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Girllywood", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1522/avatar.png/623a2b2e9c228a4bfa069b94e29ea431.png", + "itemType": 0, + "visibility": 1 + }, + "1523": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "AllTheGoodGirls", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Girllywood", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1523/avatar.png/0bf19a487aff23243c9809b3f1744ba2.png", + "itemType": 0, + "visibility": 1 + }, + "1524": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "PacaDance", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Panda", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1524/avatar.png/e5c5119c8646ade8b752c40c9d9f7640.png", + "itemType": 0, + "visibility": 1 + }, + "1525": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "PacaDance", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "PacaDance", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cap_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1525/avatar.png/426c11690a262378ef823014f5f86cef.png", + "itemType": 0, + "visibility": 1 + }, + "1526": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "PacaDance", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cap_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1526/avatar.png/7105d3b4cafc5c540192edca0b980cdd.png", + "itemType": 0, + "visibility": 1 + }, + "1527": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Rare", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Rare", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Diva", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/1527/avatar.png/567d617a3ad59d0c12be76d00bbf2ca0.png", + "itemType": 0, + "visibility": 1 + }, + "1528": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Rare", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2018_Diva", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1528/avatar.png/5c0414a0e02e91f8d589cc54542b47be.png", + "itemType": 0, + "visibility": 1 + }, + "1529": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BoyYouCan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BoyYouCan", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1529/avatar.png/2d65ec8f9d9b1846a906a41b8e1dcd1d.png", + "itemType": 0, + "visibility": 1 + }, + "1530": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BoyYouCan", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Gaga", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1530/avatar.png/220320e486dc64c46a72dcc92476fce0.png", + "itemType": 0, + "visibility": 1 + }, + "1531": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FeelSpecial", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Old", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1531/avatar.png/1bc4d3d641497c1dfac7a8b792ea4b60.png", + "itemType": 0, + "visibility": 1 + }, + "1532": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "FeelSpecial", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FeelSpecial", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1532/avatar.png/57725e9620736439af7459d45949f6ed.png", + "itemType": 0, + "visibility": 1 + }, + "1533": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "FeelSpecial", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Diamond", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1533/avatar.png/dd7082601bcee43c745dc1399df6354d.png", + "itemType": 0, + "visibility": 1 + }, + "1534": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "FeelSpecial", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1534/avatar.png/0879bd8ef8e215036c83624de71e13cd.png", + "itemType": 0, + "visibility": 1 + }, + "1535": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "InTheNavy", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Yihaaa", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1535/avatar.png/6479d2367db39735fb5e4ad357a62a21.png", + "itemType": 0, + "visibility": 1 + }, + "1536": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "WithoutMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swag", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1536/avatar.png/7512959aaecc8bab1d9d4af039a28c39.png", + "itemType": 0, + "visibility": 1 + }, + "1537": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Magenta", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Magenta", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1537/avatar.png/bbc07df27810c14aca91a01ba48629db.png", + "itemType": 0, + "visibility": 1 + }, + "1538": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Magenta", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Sun_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1538/avatar.png/d7af035b9a476cbfcc4c1d3b0fcbb042.png", + "itemType": 0, + "visibility": 1 + }, + "1539": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Lacrimosa", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Lacrimosa", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_rock_boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1539/avatar.png/f4dc78b100616a60f12d90fa63d7e226.png", + "itemType": 0, + "visibility": 1 + }, + "1540": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Lacrimosa", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_rock_boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1540/avatar.png/42b278c6373339b94b3b3e1e53151f8c.png", + "itemType": 0, + "visibility": 1 + }, + "1541": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TillTheWorldEndsALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TillTheWorldEndsALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1541/avatar.png/8e383f1a29fcc554760941e37b31181c.png", + "itemType": 0, + "visibility": 1 + }, + "1542": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TillTheWorldEndsALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1542/avatar.png/be86657a45485c97a3a14c530e9ba554.png", + "itemType": 0, + "visibility": 1 + }, + "1543": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TillTheWorldEnds", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TillTheWorldEnds", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1543/avatar.png/20854495421f16e2156950a30fd9a434.png", + "itemType": 0, + "visibility": 1 + }, + "1544": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TillTheWorldEnds", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1544/avatar.png/d644e4f10c3bb7c9dc9200d5854ca57a.png", + "itemType": 0, + "visibility": 1 + }, + "1545": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DontStart", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "DontStart", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Firemen_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1545/avatar.png/8c24211c71e7e2678dd6ae16fa996009.png", + "itemType": 0, + "visibility": 1 + }, + "1546": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "DontStart", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Firemen_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1546/avatar.png/096bc5cc8c91d80d7b08ded639b19abe.png", + "itemType": 0, + "visibility": 1 + }, + "1547": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KickItALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KickItALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Singer_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1547/avatar.png/98e9932b5b1a6cc7188e534c5b401dba.png", + "itemType": 0, + "visibility": 1 + }, + "1548": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KickItALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Singer_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1548/avatar.png/4b63b5404ad29cf2c1bd90d4b7c1964b.png", + "itemType": 0, + "visibility": 1 + }, + "1549": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BlindingLightsALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BlindingLightsALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_God_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1549/avatar.png/353417f70fb16c7a42bbfc8fc4784d70.png", + "itemType": 0, + "visibility": 1 + }, + "1550": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BlindingLightsALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_God_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1550/avatar.png/9bb8b86d6dc2462b5170a4c2706e2540.png", + "itemType": 0, + "visibility": 1 + }, + "1551": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "KickIt", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rrr_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1551/avatar.png/8822bef6d801f293ed223ab085926132.png", + "itemType": 0, + "visibility": 1 + }, + "1552": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "KickIt", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "KickIt", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rasta_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1552/avatar.png/2e8a4ab8c528f73da1fb455dd07dd442.png", + "itemType": 0, + "visibility": 1 + }, + "1553": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "KickIt", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Latino_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1553/avatar.png/698aa3055ee6cdc2ba669e344ec52471.png", + "itemType": 0, + "visibility": 1 + }, + "1554": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "KickIt", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Boogie_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1554/avatar.png/3bd187e27db0f3f2bf1f1f60d6517116.png", + "itemType": 0, + "visibility": 1 + }, + "1555": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "KickIt", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Rasta_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1555/avatar.png/a38072a6b8da226515cf66c857230535.png", + "itemType": 0, + "visibility": 1 + }, + "1556": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FriendInMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "FriendInMe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Lutin", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1556/avatar.png/6c6b069fa71473b664e3246c2d81ff5c.png", + "itemType": 0, + "visibility": 1 + }, + "1557": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "FriendInMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Boss_Lutin", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1557/avatar.png/feef1b0d9367609c496f141b819e745c.png", + "itemType": 0, + "visibility": 1 + }, + "1558": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Sorbet", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Girl_Common", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/1558/avatar.png/71289aae91b4c4cef4843fd479f68f60.png", + "itemType": 0, + "visibility": 1 + }, + "1559": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Sorbet", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Girl_Lili", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/1559/avatar.png/31aea2d8b414dff63654dfcdc381588a.png", + "itemType": 0, + "visibility": 1 + }, + "1560": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Sorbet", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cute_Girl", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/1560/avatar.png/17f9ac7ba8c363f4380a2f9fd55dacf0.png", + "itemType": 0, + "visibility": 1 + }, + "1561": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Sorbet", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Sorbet", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Princess_Badass", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/1561/avatar.png/4d9f7350936a6c7b8925f55f723827ba.png", + "itemType": 0, + "visibility": 1 + }, + "1562": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Sorbet", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2021_Princess_Badass", + "status": 2, + "unlockType": 0, + "url": "https://jd-s3.akamaized.net/public/avatars/1562/avatar.png/34960197b5cfa952a39f28d13c1c7c93.png", + "itemType": 0, + "visibility": 1 + }, + "1563": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Uno", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Uno", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Shy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1563/avatar.png/f5758e4446a6796c5487f31ec3384a1b.png", + "itemType": 0, + "visibility": 1 + }, + "1564": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Uno", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cow_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1564/avatar.png/570588284fabbe89bd25d29d21e22ec2.png", + "itemType": 0, + "visibility": 1 + }, + "1565": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Uno", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Party_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1565/avatar.png/584523e0f3f74a0a5fa5517a1f5d1666.png", + "itemType": 0, + "visibility": 1 + }, + "1566": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Uno", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Elf", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1566/avatar.png/6b325181b2445b25a84f7566a54e4d15.png", + "itemType": 0, + "visibility": 1 + }, + "1567": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Uno", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Shy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1567/avatar.png/8781150313a72488c880dfaed5f9b725.png", + "itemType": 0, + "visibility": 1 + }, + "1568": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "OtherSideSZA", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "OtherSideSZA", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funky_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1568/avatar.png/24590b6c64e62800fb6f4474fa8f4c62.png", + "itemType": 0, + "visibility": 1 + }, + "1569": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "OtherSideSZA", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funky_Guy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1569/avatar.png/cb16d15965102492d5d69a49df57e48f.png", + "itemType": 0, + "visibility": 1 + }, + "1570": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BlindingLights", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "BlindingLights", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1570/avatar.png/af1cde5a27d57d584671cc1fc51e20f6.png", + "itemType": 0, + "visibility": 1 + }, + "1571": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "BlindingLights", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1571/avatar.png/50e19c121f1bdfca5372a015d40d5c39.png", + "itemType": 0, + "visibility": 1 + }, + "1572": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "YoLeLlego", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Sassy_Boy", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1572/avatar.png/e32aebf30e767f8235ee5b417a4edd42.png", + "itemType": 0, + "visibility": 1 + }, + "1573": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "YoLeLlego", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "YoLeLlego", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Seducer", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1573/avatar.png/9a9d4a949c8b832d7cf82521415d9b1b.png", + "itemType": 0, + "visibility": 1 + }, + "1574": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "YoLeLlego", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Sassy_Boy", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1574/avatar.png/a99a27c5ac8838ad3f0f686e66467d6e.png", + "itemType": 0, + "visibility": 1 + }, + "1575": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "Temperature", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cool_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1575/avatar.png/7c7a6f6c5adf56c791e82312ebeed96c.png", + "itemType": 0, + "visibility": 1 + }, + "1576": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "Temperature", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Girly_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1576/avatar.png/06d711926a95ca32720c2db36b39988f.png", + "itemType": 0, + "visibility": 1 + }, + "1577": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Temperature", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "Temperature", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cap_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1577/avatar.png/b5190386f8f45499aa215fa878f78e1e.png", + "itemType": 0, + "visibility": 1 + }, + "1578": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "Temperature", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Gladiator", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1578/avatar.png/99c63b97f6bed00fbcd8eff2d029f695.png", + "itemType": 0, + "visibility": 1 + }, + "1579": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "Temperature", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cap_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1579/avatar.png/15657af1a709c4d4be4d471efb25b8b8.png", + "itemType": 0, + "visibility": 1 + }, + "1580": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "RainOnMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Cute_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1580/avatar.png/16899e4334c401b798d4bd2b79a40006.png", + "itemType": 0, + "visibility": 1 + }, + "1581": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "RainOnMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "RainOnMe", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Diva", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1581/avatar.png/20bffd06566889982cd6a47cad9e8b53.png", + "itemType": 0, + "visibility": 1 + }, + "1582": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 2, + "UsedAsCoach_MapName": "RainOnMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Ghetto_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1582/avatar.png/5193cf015a838ad063c178f889b686d8.png", + "itemType": 0, + "visibility": 1 + }, + "1583": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 3, + "UsedAsCoach_MapName": "RainOnMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Funny_Girl", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1583/avatar.png/50ac886ec07c73a3c464f0bfea6eadf0.png", + "itemType": 0, + "visibility": 1 + }, + "1584": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "RainOnMe", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Diva", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1584/avatar.png/799ed7c03717ac0a23eb8c93a4ab95c4.png", + "itemType": 0, + "visibility": 1 + }, + "1585": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SaySo", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "SaySo", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1585/avatar.png/b772726d79253224ceedad2bb37a8525.png", + "itemType": 0, + "visibility": 1 + }, + "1586": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 1, + "UsedAsCoach_MapName": "SaySo", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_Common_Girl_Swing", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1586/avatar.png/9771c2bcc49eb9b08a8f5efcf81ad53b.png", + "itemType": 0, + "visibility": 1 + }, + "1587": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "SaySo", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Groovy_Girl", + "status": 1, + "unlockType": 21, + "url": "https://jd-s3.akamaized.net/public/avatars/1587/avatar.png/e6f112839be5ae6f3e1330791de6b670.png", + "itemType": 0, + "visibility": 1 + }, + "1591": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Marquee", + "soundFamily": "AVTR_Croco", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1591/avatar.png/b6abd338e5c8b0a26aaa383666e923df.png", + "itemType": 0, + "visibility": 0 + }, + "1592": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Curtie", + "soundFamily": "AVTR_2020_Strong_Woman", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1592/avatar.png/09b163881f549c5550b5c76568ff40f3.png", + "itemType": 0, + "visibility": 0 + }, + "1593": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Micky", + "soundFamily": "AVTR_Carrot", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1593/avatar.png/628da97dba1ec5a75cc0f978e94b642c.png", + "itemType": 0, + "visibility": 0 + }, + "1594": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TemperatureALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "TemperatureALT", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Seducer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1594/avatar.png/f7ff2e065a19716e4572e60f8ebd215d.png", + "itemType": 0, + "visibility": 1 + }, + "1595": { + "JdNowVersion": 2021, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "TemperatureALT", + "__class": "OnlineCustomizableItem", + "jdVersion": 2021, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "", + "soundFamily": "AVTR_2020_Common_Seducer", + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/avatars/1595/avatar.png/dbdbfbd3b2db51dd5f671c8fd9070033.png", + "itemType": 0, + "visibility": 1 + }, + "1596": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Chita", + "soundFamily": "AVTR_2020_Maitu", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1596/avatar.png/869a0488b614509ba01cb611b9989613.png", + "itemType": 0, + "visibility": 0 + }, + "1597": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "George", + "soundFamily": "AVTR_2020_Rasta_Boy", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1597/avatar.png/a1969addb8fccb4f9c08d15bf30f6217.png", + "itemType": 0, + "visibility": 0 + }, + "1598": { + "JdNowVersion": 9999, + "UsedAsCoach_CoachId": 0, + "UsedAsCoach_MapName": "", + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "relativeQuestID": "", + "relativeSongName": "", + "relativeWDFBossName": "Roxie", + "soundFamily": "AVTR_2020_Diva", + "status": 1, + "unlockType": 11, + "url": "https://jd-s3.akamaized.net/public/avatars/1598/avatar.png/4ba33a76592444b8fc55c0c178190808.png", + "itemType": 0, + "visibility": 0 + } +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/itemdb/portraitBorders.json b/justdanceonline-main/local_settings/itemdb/portraitBorders.json new file mode 100644 index 0000000000000000000000000000000000000000..05451d20ed7720af406eed045807a657eaef69d7 --- /dev/null +++ b/justdanceonline-main/local_settings/itemdb/portraitBorders.json @@ -0,0 +1,1115 @@ +{ + "0": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0000_flowers/back.png/bcadb1763158956f80e7a0d06e92e134.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0000_flowers/front.png/9f7688b2c1d7536c95c5aec1d20c26fa.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "1": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0001_food/back.png/428ccafcda8bf0389fb533b9ef9c4a40.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0001_food/front.png/3779ed75aaa26ec1dff816ab8b3c0e48.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "2": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0002_gems/back.png/2234cbb474357da66cd1c78298f3fce3.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0002_gems/front.png/98d38df1ff657427864806cd4bc7b7c1.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "3": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0003_halloween/back.png/739e06207c6a5631a4e39ffdb48636ee.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0003_halloween/front.png/9b226e5ae707af296f9b7574cc8123a4.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "4": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0004_candies/back.png/8429d8a0f91094e2a0010af8c76cd287.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0004_candies/front.png/23c4d95e2b8e567ccd56ee570bb00a07.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "5": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0005_music/back.png/d6bb8f6d4dd0c6517f55f76740cc9ae2.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0005_music/front.png/363a7b3db4c445b3773cde4b51fa6dbe.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "6": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0006_sports/back.png/45008d9c648ce64c01ee909f1693d123.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0006_sports/front.png/c4284e65b562d602b2eaa04b943922a8.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "7": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0007_planets/back.png/657ff26f7f8e97545d0dfe5b47f573f8.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0007_planets/front.png/54ff4bee5337893cc608c981b3e7245e.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "8": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0008_fire/back.png/676f399b1720b016eb6392c2c5ac1e9d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0008_fire/front.png/efb2258a72ff7ab2f7df9fcc7805af3a.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "9": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0009_water/back.png/fce9143cfec71196d514f572cd927b00.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0009_water/front.png/9eb10fb50af5cdd8563192396881a33c.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "10": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0010_wind/back.png/437da263374e7fdfec8aa215fee5169a.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0010_wind/front.png/77c8bbf62e02aa8404c41442e285673d.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "11": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0011_ice/back.png/b135cdcc95a23182a34f414d1038d53c.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0011_ice/front.png/1d8bc483b3a56fcf40458dbfd9df96ec.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "12": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0012_fruits/back.png/cf1324b7ee9c8660a0f0fbdbe6fed4b0.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0012_fruits/front.png/f81127dd6c3a0415958273bd2d9cae65.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "13": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0013_vegetables/back.png/851e04b9aae8c227a44b90b09af5fbe4.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0013_vegetables/front.png/bca54bea00cf9856b581f1d7fae3ed0c.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "14": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0014_stars/back.png/b539ccc20e0cb1065156f85fc32e0d23.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0014_stars/front.png/49bc4a7ebe9ac870cf9dd30e325cc780.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "15": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0015_wings/back.png/59faf2e752a7aeb7528b4a9b33cfd959.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0015_wings/front.png/05c32d95acc7df853240b483cac82c7f.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "16": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0016_leaves/back.png/b28e25355e4a644f6ab234bb5644c71f.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0016_leaves/front.png/c01c7da36fcd95827d76642d85af94bd.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "17": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0017_animals/back.png/bbb1969551998c2d7a9544830ec33f95.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0017_animals/front.png/29f1dfea0c4388b1cb90512aa7468d5d.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "18": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0018_mechanism/back.png/ced77a1df7f8dec1ffd109ae002b80c9.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0018_mechanism/front.png/968c0f6d3e9fb132ff8b049faa1f1390.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "19": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0019_abstract/back.png/9a85e169c71defba7a9e57c97820d3df.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0019_abstract/front.png/620611ad9cbf1f3096af3c92904a7444.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "20": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0020_guest_blue/back.png/dc42f135701e4c3be0704b434385c8c6.png", + "originalLockStatus": 1, + "visibility": 0 + }, + "21": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0021_guest_red/back.png/f2bec9f4337bfa1b00093c9859e8dde4.png", + "originalLockStatus": 1, + "visibility": 0 + }, + "22": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0022_guest_aqua/back.png/04b105622f124e3874837a5624a2b131.png", + "originalLockStatus": 1, + "visibility": 0 + }, + "23": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0023_guest_pink/back.png/9c8499344a879a073e3293b3fa591ad8.png", + "originalLockStatus": 1, + "visibility": 0 + }, + "24": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0024_guest_green/back.png/9d7161dce8d4b280845fd419c29dd0f3.png", + "originalLockStatus": 1, + "visibility": 0 + }, + "25": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0025_guest_Purple/back.png/306f1a65f799a94df6b3dd69f13a234c.png", + "originalLockStatus": 1, + "visibility": 0 + }, + "26": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0026_FTUE/back.png/6234d3a4b46ccbd9eecbc9618bda4c03.png", + "originalLockStatus": 1, + "visibility": 1 + }, + "27": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0027_rain/back.png/557a02085e2a904fe725ff78063803cc.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0027_rain/front.png/6797f87190d819f676a7e08388fc8d41.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "28": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0028_autumn/back.png/ba89df338d40ecd49fc5d3375eb61696.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0028_autumn/front.png/0ed44d87b657f8396076bdf132e00cf8.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "29": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0029_spring/back.png/d3ddd4c32188fb83cc04c9394c085024.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0029_spring/front.png/4889677d240b735cd26a65a9a4c5b752.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "30": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0030_summer/back.png/16f10a939a5f4863ca26a298dc006a01.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0030_summer/front.png/8ea8c4aadef51efd63e7326adcf13d41.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "31": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0031_winter/back.png/d1a495609910c2682666b13057dc651f.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0031_winter/front.png/da71f5c7c30967e7f292c4abf6e34d9b.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "32": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0032_gold/back.png/cfc15b16938b2b03a308478eecb2a9df.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0032_gold/front.png/0b750264df5468eb3c720f92866655ec.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "33": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0033_books/back.png/a8d2f5d11fb1f2fdbb4e04a19ccca03b.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0033_books/front.png/b49f071e49dc33b7266f7da33dcaec43.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "34": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0034_disco/back.png/d1984b5d253cef431bb14b18ec773c86.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0034_disco/front.png/096dad9ec09442d0aeecc7e69150f998.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "35": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0035_gift/back.png/894774dfa424443bb2b423b89d78ac91.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0035_gift/front.png/84b0e75d20484e0fdaefcaa8fd11e509.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "36": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0036_make_up/back.png/cd3e9bd1dca7ce775c1cbe38d0d50542.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0036_make_up/front.png/3b44c2e473907e5226153fc3285829bd.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "37": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0037_origami/back.png/862da7981733b04ecb6c84d1222ec5fe.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0037_origami/front.png/fb8e60a244fc4dd15980a36c264ee577.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "38": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0038_rabbit/back.png/af14128652648a1dbce75fa414f79d22.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0038_rabbit/front.png/d3985b2bb44264757c7da86a588be353.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "39": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0039_robot/back.png/407dd5e9b00fca0329a19dde0c98fa56.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0039_robot/front.png/9f2e92dfa95fc0560766ccc6b2f291c4.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "40": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0040_unicorn/back.png/bf0722315534ad84e49282ae7d335b19.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0040_unicorn/front.png/6e949e2bcb228cd10f8122b1535a9efd.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "41": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0041_witch/back.png/fbd5df31888dafc9eea1a105db01e7fd.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0041_witch/front.png/a1e7a0c9cf4bc42b06c6459910f909d7.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "42": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0042_aliens/back.png/2c61e396044010b32725f7b7bc5db72d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0042_aliens/front.png/13b4a8a8f01ee6fa311516251755c6c5.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "43": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0043_beach/back.png/758744c0056873a419b50a468423e149.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0043_beach/front.png/79f8e98482ca81df4e70a0df4a1101c3.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "44": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0044_birthday/back.png/1eb0639aa2894ecaf6ac5d2347dfaaba.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0044_birthday/front.png/3fe57524bba20b8b4e07268ac8eebedf.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "45": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0045_breakfast/back.png/6c46caa83d8298c707a48980b2eda224.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0045_breakfast/front.png/f6996a922cbb1b8d0b2604344a009157.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "46": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0046_carnival/back.png/d1454fa1ccfa20493ebbfbd2c1d84876.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0046_carnival/front.png/1b21b6351b46caba49cc100e22cfc5ad.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "47": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0047_casino/back.png/f1ac0a3180f52b004f5feda2a0f17f8f.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0047_casino/front.png/e5512fdaadc0b9cd821b5161a0809247.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "48": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0048_chocolate_and_cakes/back.png/7e6a96ad00e276bd7e9b4f6637599b56.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0048_chocolate_and_cakes/front.png/60135ea8bcb06bc09e20dd70e5fe6291.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "49": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0049_christmas/back.png/b70eff704cf12923dd96dc2156b5daef.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0049_christmas/front.png/180040e5875ac0c44fff99f3c3285581.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "50": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0050_crown/back.png/8c7356a5444fba4171ec6722f3bbb164.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0050_crown/front.png/1fa1572830f36c1344eb3a4f2d7f85b1.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "51": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0051_fitness/back.png/335670f5affb26b27db2f9d2e9ba3a44.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0051_fitness/front.png/9cc3739c75e454283d459b16dbe33282.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "52": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0052_game_controller/back.png/8a0e73c9c9bd1ac161f892ef4b9bc37a.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0052_game_controller/front.png/25387d200ab9bb1f8675913276b45dd7.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "53": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0053_jungle/back.png/03f29c5118a2954a246f7a3b5fd1480f.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0053_jungle/front.png/7c8f7097f81c9fa0730fcb9152270e31.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "54": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0054_kittens/back.png/d6140d0a5313adb629f90a569ec32d27.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0054_kittens/front.png/865582d7c28aca2589c034cb8317a548.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "55": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0055_knight/back.png/8f04fd51866be5f736642b52e9015b5d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0055_knight/front.png/8fe0e3cf7f00efb1679ea36d2e0c565e.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "56": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0056_lunar_new_year/back.png/dfc0d4b2ef27440f00d9b32805c9e180.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0056_lunar_new_year/front.png/477431a725f2a7ea72e69fba76389a0e.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "57": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0057_queer/back.png/f59c9b5ac62eb97d77dbf73241a5120e.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0057_queer/front.png/74a0ec6d74976536a94c91bad4aadaff.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "58": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0058_snakes/back.png/19bc51b66d2b60998aad6e2cc1782b91.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0058_snakes/front.png/d79e67d3b56ff94630e16173dbdace63.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "59": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0059_superheroes/back.png/cd9edfca6af5baad3b23cb3a2dc0c101.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0059_superheroes/front.png/bc3ba68e6b54e105a568d70490a75049.png", + "originalLockStatus": 0, + "visibility": 0 + }, + "60": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0060_amusementpark/back.png/9341da7e21e9620f57054034738e2d70.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0060_amusementpark/front.png/7be5ac7d04f2b187c22cdf0c38b65b88.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "61": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0061_artfurniture/back.png/f74cd8ab6ff21549f2995632a5028eb0.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0061_artfurniture/front.png/58ac0f45d11050a9da1e9017be6e6cd6.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "62": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0062_avocados/back.png/3e54160ef4d8547ef0b158e086fa085d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0062_avocados/front.png/c8250d5879dc788917fbdc46586232f5.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "63": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0063_ballet/back.png/cfd6b4cdc9f53f01b152f8281ed05df5.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0063_ballet/front.png/33745147794781d0de0620a4d57cd8d8.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "64": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0064_bamboos/back.png/b2fcfa252a27319f809aacce9c2c9888.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0064_bamboos/front.png/0cebbfe25af1135f3a4e4f9dfe432781.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "65": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0065_bees/back.png/2426dbe588dbc303991bda763a04788a.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0065_bees/front.png/8e3c2ef7f97081840d10ba866963ae5b.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "66": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0066_bubbles/back.png/21343551fd5947ead0a974cff1f6deda.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0066_bubbles/front.png/5046c511f73495177f53c085b2c0a31a.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "67": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0067_butterflies/back.png/189bf8b5dbcfcd9572f395421cba7aca.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0067_butterflies/front.png/a83c52dca88202b5a00096909c96be71.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "68": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0068_castle/back.png/79f6c6f1926ae4375cae1100c627cacc.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0068_castle/front.png/2d159084d85ca1a6e1bb01efef7b69f5.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "69": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0069_cheese/back.png/ce19f8bd3608cd13c4f2870851d0a367.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0069_cheese/front.png/d2b163b99544c4f973eebe776722e7c5.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "70": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0070_cherryblossoms/back.png/50fe5debcd4619b9b50681414f4902e5.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0070_cherryblossoms/front.png/d788ef2593b3cdf7d4ed2a70c7d12695.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "71": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0071_children_s_toys/back.png/30d4a6838a17c5c13e2de27704fc6758.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0071_children_s_toys/front.png/76502150178b030a28ecde3851909df0.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "72": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0072_circus/back.png/207dbc530354f23fad8226dc1c85f177.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0072_circus/front.png/8defb34be9b83abc9fc9e7c1426bfdad.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "73": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0073_city/back.png/a9584b9622c5c8c66a62de6d26f18fec.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0073_city/front.png/ff2859fa77426278a307a55751c22136.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "74": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0074_constellations/back.png/76e30de78d867eb11195383ab37804f3.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0074_constellations/front.png/c5dffc9876b3f63bfd67ecea4b9b411e.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "75": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0075_corgis/back.png/64363bac44cafa3b7c3a4734e838f841.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0075_corgis/front.png/be08e8dc245941cb64c38216a425f096.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "76": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0076_desert/back.png/541e8e09db0ab3df888b9c2acff771db.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0076_desert/front.png/f2f2acf01166402b27ed4d1d24788c36.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "77": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0077_dolphins/back.png/36ff79a54b7f8ab922a1f9dff211030a.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0077_dolphins/front.png/7086ecfd40c0c10a0a479311d78f7c99.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "78": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0078_donut/back.png/495b35553a3d9dea2afe621272fd7123.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0078_donut/front.png/19962afad268a194800cc14a84d14773.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "79": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0079_fastfood/back.png/865af42eb1de46abbd4ff2f201b3d0f7.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0079_fastfood/front.png/b24bc612fa088d372f8b038f17020cb5.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "80": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0080_ghost/back.png/6bf1786855e2cb8c0344652ab367d5e7.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0080_ghost/front.png/c4a16261dc4fc7bd1456aeded934fcb9.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "81": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0081_lucky/back.png/4a474d1fc17846a6d7319a7022b2dcf9.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0081_lucky/front.png/22b09bee3268de4a9e02c592325d651c.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "82": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0082_monkey/back.png/d74a565cba199c01c625ac4db3d36f69.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0082_monkey/front.png/0a4ab6225c321ab4310f91d135336e69.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "83": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0083_fish/back.png/5bdae7a8d01edafd168c68cdeaa271ab.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0083_fish/front.png/d8b5ec1cd4f666834f69c368e43903bc.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "84": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0084_dinosaur/back.png/0bfb5c89110b955c6dc8a8e7b92621f4.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0084_dinosaur/front.png/b73ef65687e867e0f632c0a1f904b0fa.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "85": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0085_icecream/back.png/0276b524ed6f3a43fdd1e46f925adacd.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0085_icecream/front.png/4588bf86cd24a76a98a83423444714b8.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "86": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0086_india/back.png/6c4fd7d5627bfbd938be2d0fe5208407.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0086_india/front.png/4fba88e65ac3671fea782a5d27b6f14a.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "87": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0087_greekantiquity/back.png/d6155589595a8d6de70004b208672539.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0087_greekantiquity/front.png/6f9a22ffeb3026f5bdb22bb4afad2647.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "88": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0088_kawai/back.png/f81684307832386b8929ba4d5e2c3153.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0088_kawai/front.png/bdb7676d183b6c6b5c17c8f0d71a7373.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "89": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0089_ladybug/back.png/260485552f6964d860d6061787914543.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0089_ladybug/front.png/dae884e2dae05df556876e82cad49103.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "90": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0090_mice/back.png/2297197325c69f0a24b2011a887c38cf.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0090_mice/front.png/f66b619e45b3d0fd382935ca2523eaa2.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "91": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0091_paris/back.png/266aa26feec169bc73fa4d7b4c6f2483.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0091_paris/front.png/971c02ca7af0b05bbaeef0138c402d6e.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "92": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0092_italy/back.png/01565714f78c94976e836e3ee4772f2f.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0092_italy/front.png/c4feb579c18b29d7c131fc76824a40e7.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "93": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0093_penguins/back.png/e8d16341bd95bef1d3685860dd98f463.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0093_penguins/front.png/2225d3d0ce614a44a632babb25d289ec.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "94": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0094_pharaoh/back.png/00b9beeea6e5807bdd40a2c0f142f29d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0094_pharaoh/front.png/10702318df1c2ed44f7801b0331e096c.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "95": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0095_pig/back.png/1105ec1e7210c8bec123f0599ccfad36.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0095_pig/front.png/2a9b2e816a3e035470fa7a39b669a8e7.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "96": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0096_pirate/back.png/386c4dc29a5819c5cf7710d5b0b5c13e.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0096_pirate/front.png/ccf35a6843b3917b9fb6d7d2089f701c.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "97": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0097_racingcars/back.png/eead84838db6472dd59702e5e20ec89a.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0097_racingcars/front.png/6933de4b49186d4cd8715c471cce627d.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "98": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0098_ramen/back.png/49d7b314fd686448583b3c2c03987e10.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0098_ramen/front.png/c0b862928787f0468d3b0e5eaf3eb830.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "99": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0099_shopping/back.png/0fd868813872c95723edfb4c6c4a0124.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0099_shopping/front.png/dd277ec15aa51e76b74b973db5e17865.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "100": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0100_technology/back.png/f044a026194acfaa17fe099fec7d07b3.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0100_technology/front.png/b2daecadc586fd250beacea25ea8b6e6.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "101": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0101_pizza/back.png/280c2e0934cccaf42ff49a6cda9d3c60.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0101_pizza/front.png/25159068dd385e36ef36bbf3adacda31.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "102": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0102_tropicalfruit/back.png/e07c1de6d7685acae2de98933ac69f3d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0102_tropicalfruit/front.png/d6257587193fa832393b773146289844.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "103": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0103_valentinesday/back.png/6dec9cff2eab3bfa500cb328c9ffde70.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0103_valentinesday/front.png/583e903cbfd752e8d03db0af46e0b26b.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "104": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0104_bunting/back.png/f718d697ce40a6653fda92766f306ac6.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0104_bunting/front.png/6895ba888e9dd5ae551c5e4e402c6198.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "105": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0105_cactus/back.png/e71444260c92e56cdcd42603dd84e9a8.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0105_cactus/front.png/f94c0db8acfba933c42c7fe307963e2e.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "106": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0106_caligraphy/back.png/4d1cef58177f67cf7d22eaad9a9223a6.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0106_caligraphy/front.png/47a0f42807555ac1844153537bb0910f.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "107": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0107_clock/back.png/832bb9f7c531065b42d694939dbce8a4.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0107_clock/front.png/f87d730c50dede627204c9df2a1c396d.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "108": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0108_cloud/back.png/f2c8d864c9adb132244c69aeb8ff679d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0108_cloud/front.png/2229988170b86321dd9646a4ba9b679f.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "109": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0109_cocktail/back.png/cfb69b11ae12537afae41aa9a8d96ccb.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0109_cocktail/front.png/d1d4e373fe580b33dda026e97367c72d.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "110": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0110_crocodile/back.png/c97536e000c6bc4adc2d31c0f2329df1.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0110_crocodile/front.png/7abf20665726478494a3082570352e13.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "111": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0111_crystalball/back.png/35a4d67ce5257fb1210efd15508cd06c.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0111_crystalball/front.png/4e259f2235ba342609153d6c3b08ae44.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "112": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0112_synthwave/back.png/4c0e94027095f9c340b3e71c0cb29784.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0112_synthwave/front.png/a81d821611ba51143db6b46600650dc5.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "113": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0113_dots/back.png/fedf4f35a385c230b76eda297402b043.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0113_dots/front.png/7f1efffe0e504afa97e4c6bf6fedf348.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "114": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0114_eastereggs/back.png/38200ecdfde1f750e6919cf6ff7398c8.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0114_eastereggs/front.png/549625b48406122d8a4b0d0c12840d3a.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "115": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0115_fairy/back.png/2adeb9c9c3aee97b9afcd2a9fddb88bb.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0115_fairy/front.png/d563c59224d3c720a4d711ef1a174d26.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "116": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0116_fan/back.png/bb4d576ae0a9f9ac4450ad681e67f2c1.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0116_fan/front.png/57ccf56ed23a1c4df567c4f20b7aff08.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "117": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0117_fireflies/back.png/c74e974f1bb6aaa79ba11df5c2d35c40.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0117_fireflies/front.png/44ed47e168a2a44def5952e83ca82470.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "118": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0118_fireworks/back.png/0bc4dbdc03855acca3cbd9954bd7a77d.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0118_fireworks/front.png/da2bbece78239d08c9487fed1f04fdfd.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "119": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0119_frame/back.png/82d56ecab83c267bf3bf8509bfca2933.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0119_frame/front.png/b3aa3d9051a18dd87438a43aadebb1b3.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "120": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0120_galaxy/back.png/fb8928118e1fb4b4d4bb0cf51f220a35.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0120_galaxy/front.png/c960a555f1d7c25289906f567bffd8d8.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "121": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0121_gingerbreadhouse/back.png/6c00d8a69f6a911990aacfaddd1d7f81.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0121_gingerbreadhouse/front.png/ed20e9d1e202b24dd1df440f0676f27a.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "122": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0122_hawaiianpattern/back.png/e7629cf2a5ddab3a803e8209407dfe50.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0122_hawaiianpattern/front.png/48fd7e19a192bc9dc7ea5b8794732899.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "123": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0123_hedgehog/back.png/3f651653eb66ff72e729ee5063d4b891.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0123_hedgehog/front.png/8c01cb3882ba2f26960d400f6da950f0.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "124": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0124_jellyfish/back.png/ca2a630fd75e005142ca8c7c8248db9f.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0124_jellyfish/front.png/5e262e7ed390ca87fe4a57b3fff021ad.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "125": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0125_kite/back.png/c96e2fb3511d1ec9687456483544b6ca.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0125_kite/front.png/0c2bf8ec1d0dafcf0603a148c246d8f9.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "126": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0126_laces/back.png/28a2da01110d1e20b039350c470aa936.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0126_laces/front.png/40da9c4606ed167b3095c674ef78b096.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "127": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0127_lightning/back.png/6978e319d560809027c36ceede4945f1.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0127_lightning/front.png/40fe7b02d42d470e49fc0d82324ecd47.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "128": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0128_mosaic/back.png/467bc05106c29adb454d77fc7ff32ff2.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0128_mosaic/front.png/8f539815e4da4921eef5655acf76ca56.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "129": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0129_mushroom/back.png/1475cd1c8874c2a2b452aa9cfa5adc6c.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0129_mushroom/front.png/2350e0b504063cdd7c50b29581c3df66.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "130": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0130_peacocktail/back.png/f70446e35cfffb8a139c3d2f41947e3e.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0130_peacocktail/front.png/8aceaaee8476fe4cc61f103a99c39d8e.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "131": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0131_pillow/back.png/8018cdb5db6351f5bc7bbaf4a7bbc73a.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0131_pillow/front.png/d314a0c7ebb7680d9b7edf8241557313.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "132": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0132_theatrecurtain/back.png/d7d20b2227459402fa3f64dd742dd9d9.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0132_theatrecurtain/front.png/20ff684726ef5a9774cd660b86544598.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "133": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0133_pixel/back.png/3c243bd2262ad4a33fd148337e74a6b8.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0133_pixel/front.png/0197c6c2ca49e9e30fce1df238c2e400.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "134": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0134_playingcardspattern/back.png/db97f7fe865d920bcc6e323288cb2759.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0134_playingcardspattern/front.png/2ee14559dd458d972d873fed9b1b575a.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "135": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0135_porcelain/back.png/4808c8ce5fe20aa1ebd866d71682d755.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0135_porcelain/front.png/f2411580b9e0c6813463de3c36704d51.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "136": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0136_porthole/back.png/943729978e53261bee217b214abf5fb9.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0136_porthole/front.png/9aca8600741cf41d17926e06311d9004.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "137": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0137_puppies/back.png/e6ceba1f2e691f6f46177ed50735fff3.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0137_puppies/front.png/0ee988290bd2573650b4ca1c14d07dfb.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "138": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0138_strawberry/back.png/d97b3bdacee2d1a0c207c9af15274c67.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0138_strawberry/front.png/245e062287ee6352789a3dc1ca1c34ab.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "139": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0139_stamp/back.png/1300f6e7c0cfc95c8eb6e1685e18851b.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0139_stamp/front.png/08b371838002041616afb7aa1eb65774.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "140": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0140_spotlight/back.png/bdc7254b1005f14e1828d085c75fa7ac.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0140_spotlight/front.png/08edc3fd60eadb024e9e3eb312445971.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "141": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0141_spiral/back.png/994a97cf40aaa384fbac64b15f3ef730.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0141_spiral/front.png/4c2bd10e87a6624a7827c937cd412a5a.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "142": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0142_spiderweb/back.png/f3476c7f6cf9cfc2f0eb4ce5df5c44a3.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0142_spiderweb/front.png/cc8c10618a63058cc9a7c8324c95263d.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "143": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0143_snowflake/back.png/2f2824103a76502ad4536b02acd5eba4.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0143_snowflake/front.png/faf3de93d52f9a1f37410a145c519420.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "144": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0144_snailshell/back.png/f1cb510da325f8f6af831eca63df4778.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0144_snailshell/front.png/46e1f00eaf90b8f5ea05a113995081a2.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "145": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0145_scolls/back.png/8f846bc8f33981d8bcd822b60cd47b1f.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0145_scolls/front.png/09a07d78248c4089f7e3f9d6553329c7.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "146": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0146_sandcastle/back.png/a074390658749c7bed7c63e66668b639.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0146_sandcastle/front.png/505a57dfc7af7319c4b32f620b9ac138.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "147": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0147_wood/back.png/ddc02e0724d1534b3e7265b3d3c7e6a9.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0147_wood/front.png/ed40ebbbbd491e701e17371dac0d0ee5.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "148": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0148_windrose/back.png/05dca142f478a68cf5d32a3c49ff16a6.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0148_windrose/front.png/73f13d7caa382242f566ec5bd05df759.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "149": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0149_waterlilly/back.png/1fd34851b47e7d68a6d4143438ae9b90.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0149_waterlilly/front.png/1c68de8c1a5f38326a374f61dbac060c.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "150": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0150_umbrella/back.png/91cdb1ba0a50c7ada600fabda66c2fd6.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0150_umbrella/front.png/d7c6cf791d8f54bab63f64841de1d549.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "151": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0151_turtle/back.png/edfc8d6f20297f0276704469586fc7e6.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0151_turtle/front.png/75612626b9af8652e54d132efaf7d26f.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "152": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0152_teddy/back.png/0701aa586d5f5edb5d1afcde6a59903b.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0152_teddy/front.png/21f50d9e5a0ac41376f88e3ab9249dfa.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "153": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0153_tartan/back.png/0ae379272474a3d1d6de44290c9a86f4.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0153_tartan/front.png/f32fcce5eb2470865da76afb1be6986e.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "154": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0154_target/back.png/994edc689062b63dd1953be45c7e3093.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0154_target/front.png/314cb6745c1b55e7ce1dfcbf66f1d508.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "155": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0155_surfboard/back.png/084bdf7ee64ae5df13cdbb194dd00605.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0155_surfboard/front.png/ea8d63af4f107a1e5b381b64eb790bda.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "156": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0156_sunset/back.png/3f01a6c1a30f8aa28c3575ad2086c97a.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0156_sunset/front.png/ae1448ff65bfeda7ab31f51a7b7336d4.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "157": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0157_sun/back.png/8babaca7aa4fbc417877ed45fe3654e1.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0157_sun/front.png/6cdefb83e44892319cc63d647b885ed7.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "158": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0158_stripes/back.png/5b3f3f6f0f73d8e5e7db34b0ff2dfa58.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0158_stripes/front.png/00597f3f7a0488d89fbc80bd18e63c22.png", + "originalLockStatus": 0, + "visibility": 1 + }, + "159": { + "__class": "OnlinePortraitBorder", + "backgroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0159_streetart/back.png/5f278534a9c77e9d39db0753db6ea289.png", + "foregroundUrl": "https://jd-s3.akamaized.net/public/portrait-borders/0159_streetart/front.png/88ee8438eee17a8bd832e7952c0f8a3b.png", + "originalLockStatus": 0, + "visibility": 1 + } +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/itemdb/skins.json b/justdanceonline-main/local_settings/itemdb/skins.json new file mode 100644 index 0000000000000000000000000000000000000000..174e1a2e9f61c89a4554769736dbcaaf41d1e25c --- /dev/null +++ b/justdanceonline-main/local_settings/itemdb/skins.json @@ -0,0 +1,1582 @@ +{ + "1": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/1/skin.png/6d8c18967391710bd4fcb9d484bb553c.png", + "itemType": 1, + "visibility": 1 + }, + "2": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/2/skin.png/406c3607b7a9f688b381fadcf8da4e48.png", + "itemType": 1, + "visibility": 1 + }, + "3": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/3/skin.png/cc2504d1ca358b768eb8c8d0663c882f.png", + "itemType": 1, + "visibility": 1 + }, + "4": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/4/skin.png/810dd7e20da6e3dcd3acfd40d5632681.png", + "itemType": 1, + "visibility": 1 + }, + "5": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/5/skin.png/51158e3dc751ed86c3b46323f9b7c97b.png", + "itemType": 1, + "visibility": 1 + }, + "7": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/7/skin.png/02c98ad521b435ed22d1758c8be56249.png", + "itemType": 1, + "visibility": 1 + }, + "9": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/9/skin.png/04136d2135d36dec1f93a332a612a555.png", + "itemType": 1, + "visibility": 1 + }, + "10": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/10/skin.png/88e54c9c33c9205126e263f021cd2822.png", + "itemType": 1, + "visibility": 1 + }, + "11": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/11/skin.png/0fd1302f27fe737dbf554994494b9bad.png", + "itemType": 1, + "visibility": 1 + }, + "12": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/12/skin.png/a6dd6e5b2f55f0af7f465d1a350c230d.png", + "itemType": 1, + "visibility": 1 + }, + "13": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/13/skin.png/0cff06e773bf0c95ce4e2c609259fae0.png", + "itemType": 1, + "visibility": 1 + }, + "14": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/14/skin.png/c25f9ad7659212d7d3c5229b256c9084.png", + "itemType": 1, + "visibility": 1 + }, + "15": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/15/skin.png/3701c0069c1d4aa1564de578fd97cf37.png", + "itemType": 1, + "visibility": 1 + }, + "16": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/16/skin.png/6c75c5043723e565934509eee34e6a97.png", + "itemType": 1, + "visibility": 1 + }, + "18": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/18/skin.png/1c81f78e1137145f5e56763d0d0b36fb.png", + "itemType": 1, + "visibility": 1 + }, + "19": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/19/skin.png/924de07e984daaf2b42ee5a8acb6c29f.png", + "itemType": 1, + "visibility": 1 + }, + "20": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/20/skin.png/a2c48aaa8454a5589bfb9c2b514f19b4.png", + "itemType": 1, + "visibility": 1 + }, + "21": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/21/skin.png/569a611b6bd67694839534a0e0c24131.png", + "itemType": 1, + "visibility": 1 + }, + "22": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/22/skin.png/3fe4ad0ea02b1ce426a9a8b182848312.png", + "itemType": 1, + "visibility": 1 + }, + "23": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/23/skin.png/9e6f34ea0e4481da68b268813b887205.png", + "itemType": 1, + "visibility": 1 + }, + "25": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/25/skin.png/953ebcf94839a29ea7de9e5c451b4fcb.png", + "itemType": 1, + "visibility": 1 + }, + "26": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/26/skin.png/fcf491f39b8bd77c1660a921da69cfdf.png", + "itemType": 1, + "visibility": 1 + }, + "27": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 1000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/27/skin.png/20d8fcfe1b0b6095e6ec268eaa504744.png", + "itemType": 1, + "visibility": 1 + }, + "29": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/29/skin.png/3dd87f23ae946ba070440040f23dc0a5.png", + "itemType": 1, + "visibility": 1 + }, + "30": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/30/skin.png/f9b221102ad0b6ced908a0dea5574439.png", + "itemType": 1, + "visibility": 1 + }, + "31": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/31/skin.png/9034d013b9ab0e02d930017a364965bb.png", + "itemType": 1, + "visibility": 1 + }, + "32": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/32/skin.png/d3dfe1b7b58600fb8a81d3d63a46d436.png", + "itemType": 1, + "visibility": 1 + }, + "33": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/33/skin.png/d7eebd2d0c0c2913dd1a831ff702719f.png", + "itemType": 1, + "visibility": 1 + }, + "34": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/34/skin.png/aab141c64df5d6d01baec2a9ab1b21e1.png", + "itemType": 1, + "visibility": 1 + }, + "35": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/35/skin.png/4b8b938913349d4c50583cb92cb772ab.png", + "itemType": 1, + "visibility": 1 + }, + "36": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/36/skin.png/65bcb56e8705b5a9121d70c2a9917be7.png", + "itemType": 1, + "visibility": 1 + }, + "37": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/37/skin.png/594ecd91da79396246898ddf593a2a7c.png", + "itemType": 1, + "visibility": 1 + }, + "38": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/38/skin.png/31f108c2777d5ec3f8845612c720d287.png", + "itemType": 1, + "visibility": 1 + }, + "39": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/39/skin.png/fa4fb52006dc42d6658504b6e9bb6199.png", + "itemType": 1, + "visibility": 1 + }, + "40": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/40/skin.png/6f82da40aa4cf507a84229313e8f4d25.png", + "itemType": 1, + "visibility": 1 + }, + "41": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/41/skin.png/da541f79d777edab38cdbad53dabc656.png", + "itemType": 1, + "visibility": 1 + }, + "42": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/42/skin.png/06e6d3510ebb3d0d11c6a11ffcf59d26.png", + "itemType": 1, + "visibility": 1 + }, + "43": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/43/skin.png/e7dfac5dfaa7d44e29b88504c74c56bc.png", + "itemType": 1, + "visibility": 1 + }, + "44": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/44/skin.png/c036c0cf085020547a12c5d9747107ae.png", + "itemType": 1, + "visibility": 1 + }, + "45": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/45/skin.png/95761bcf446efea74a3f61bdbcda541c.png", + "itemType": 1, + "visibility": 1 + }, + "46": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 5000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/46/skin.png/4e3df94bfdea3ec35ae889128fccf6f7.png", + "itemType": 1, + "visibility": 1 + }, + "47": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/47/skin.png/c7fa5b07c9fb69ebf65fabca2138b5e1.png", + "itemType": 1, + "visibility": 1 + }, + "48": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "status": 1, + "unlockType": 12, + "url": "https://jd-s3.akamaized.net/public/skin/48/skin.png/9a5d2cd1fbabf812a23d63ffd79d89cb.png", + "itemType": 1, + "visibility": 1 + }, + "49": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "status": 1, + "unlockType": 13, + "url": "https://jd-s3.akamaized.net/public/skin/49/skin.png/848ebd77989de9b8cca611c52866379a.png", + "itemType": 1, + "visibility": 1 + }, + "50": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "status": 1, + "unlockType": 14, + "url": "https://jd-s3.akamaized.net/public/skin/50/skin.png/fed0a0a2988b9f2d873199cb94425c04.png", + "itemType": 1, + "visibility": 1 + }, + "51": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/51/skin.png/825c1d327d5ae5b5ff0e4d3cb8b24815.png", + "itemType": 1, + "visibility": 1 + }, + "52": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/52/skin.png/d28538861990711fbcfc28c5fecb3cb2.png", + "itemType": 1, + "visibility": 1 + }, + "53": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/53/skin.png/2cb25c60a4b51d8600dada4846d5f235.png", + "itemType": 1, + "visibility": 1 + }, + "54": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/54/skin.png/0e423b07deb3ccc384ba1d6ccba684ad.png", + "itemType": 1, + "visibility": 1 + }, + "55": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/55/skin.png/54bf1873999b23354ba86eb8e7b7a0d1.png", + "itemType": 1, + "visibility": 1 + }, + "56": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/56/skin.png/cefed447ed4d2d1cf4de382dc573b85b.png", + "itemType": 1, + "visibility": 1 + }, + "57": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/57/skin.png/bfc97a1dfc622af95ed1e42c8870de27.png", + "itemType": 1, + "visibility": 1 + }, + "58": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/58/skin.png/380f94556c4685017d7a4644b9e40b24.png", + "itemType": 1, + "visibility": 1 + }, + "59": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/59/skin.png/6b0f62afbc29f1617c72e7fe8829a283.png", + "itemType": 1, + "visibility": 1 + }, + "60": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/60/skin.png/51d6645b6c521c3250c65010c9af82d6.png", + "itemType": 1, + "visibility": 1 + }, + "61": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/61/skin.png/c8767e68884fd8e4b69646efde204a11.png", + "itemType": 1, + "visibility": 1 + }, + "62": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/62/skin.png/8c7217b640d0d8ba8bf46a3b9dc0fb11.png", + "itemType": 1, + "visibility": 1 + }, + "63": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/63/skin.png/ff34701eebedc171bccdfb42eeb98659.png", + "itemType": 1, + "visibility": 1 + }, + "65": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/65/skin.png/9b271212d622656053335d367f0eaf0c.png", + "itemType": 1, + "visibility": 1 + }, + "67": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/67/skin.png/b76079dbdb01427c343e4d95d36cd6f9.png", + "itemType": 1, + "visibility": 1 + }, + "68": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/68/skin.png/a3975d524dc2432c344ff21ff59209e2.png", + "itemType": 1, + "visibility": 1 + }, + "69": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 20000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/69/skin.png/e02effb67ecf18e8c42273ca1b4c7f1e.png", + "itemType": 1, + "visibility": 1 + }, + "70": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/70/skin.png/f317cebcbdbb558672026e824e1de886.png", + "itemType": 1, + "visibility": 1 + }, + "71": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/71/skin.png/f670d6a154641e6c1ecc35b1901073a8.png", + "itemType": 1, + "visibility": 1 + }, + "72": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 10000, + "status": 1, + "unlockType": 1, + "url": "https://jd-s3.akamaized.net/public/skin/72/skin.png/887d258447428e2ae1bf2f2d33be3c44.png", + "itemType": 1, + "visibility": 1 + }, + "75": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/75/skin.png/c2f7ff3fbb575d890107709d1e794100.png", + "itemType": 1, + "visibility": 1 + }, + "76": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/76/skin.png/c856135b237a31cb89b0ac815b4cb32a.png", + "itemType": 1, + "visibility": 1 + }, + "77": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 17, + "url": "https://jd-s3.akamaized.net/public/skin/77/skin.png/8a4b2e3956b041e5fa93762726d84a7b.png", + "itemType": 1, + "visibility": 1 + }, + "78": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/78/skin.png/a61d50164767d8577ce507b1aa33394d.png", + "itemType": 1, + "visibility": 1 + }, + "79": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/79/skin.png/d2d27e386cb0d5103367b71bbe59c6c0.png", + "itemType": 1, + "visibility": 1 + }, + "80": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/80/skin.png/2c033f8d6c49129f97740edb072aef74.png", + "itemType": 1, + "visibility": 1 + }, + "81": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/81/skin.png/d08ad8d10a4a8011a11e9c4f748875ef.png", + "itemType": 1, + "visibility": 1 + }, + "82": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/82/skin.png/b046ff1e87712a43918b1e5b06d6716a.png", + "itemType": 1, + "visibility": 1 + }, + "83": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/83/skin.png/d364abd7656fe6b7ce5ea079af05154f.png", + "itemType": 1, + "visibility": 1 + }, + "84": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/84/skin.png/2279c08edbfec71e80789be66435f791.png", + "itemType": 1, + "visibility": 1 + }, + "85": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/85/skin.png/8faf32a40f56b27fa3be19b9eb05f464.png", + "itemType": 1, + "visibility": 1 + }, + "86": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 10, + "url": "https://jd-s3.akamaized.net/public/skin/86/skin.png/ea47451765d4befb3594c7c0dde51123.png", + "itemType": 1, + "visibility": 1 + }, + "87": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/87/skin.png/7db0f2e0643edc101b828772821cabfc.png", + "itemType": 1, + "visibility": 1 + }, + "88": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/88/skin.png/ca6a46f7fe6bd115e728e85803c136e2.png", + "itemType": 1, + "visibility": 1 + }, + "89": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/89/skin.png/8395c137c9df7f09ced2c819b3e2f125.png", + "itemType": 1, + "visibility": 1 + }, + "90": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2017, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/90/skin.png/0a198f5a61792ce4345279de3e5e61d2.png", + "itemType": 1, + "visibility": 1 + }, + "91": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/91/skin.png/306da19ba36b8f95c5c530fa098a5103.png", + "itemType": 1, + "visibility": 1 + }, + "92": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/92/skin.png/32d6faba87d56e936da6a43218a9d6cb.png", + "itemType": 1, + "visibility": 1 + }, + "93": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/93/skin.png/04af81af089c5664eaebe898124bdd56.png", + "itemType": 1, + "visibility": 1 + }, + "94": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/94/skin.png/ded5170281e7e90408a6089ac2b8eb9c.png", + "itemType": 1, + "visibility": 1 + }, + "95": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/95/skin.png/28b5ae2da346823c94d8373922af937c.png", + "itemType": 1, + "visibility": 1 + }, + "96": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/96/skin.png/29a98d12f6bb56d933d1938a7c0d9e98.png", + "itemType": 1, + "visibility": 1 + }, + "97": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/97/skin.png/751e0aed5532e73dc0816ab558c32b00.png", + "itemType": 1, + "visibility": 1 + }, + "98": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/98/skin.png/1b882713170cd1527a38d02f5e9b80db.png", + "itemType": 1, + "visibility": 1 + }, + "99": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/99/skin.png/6efe8df47e4d420cfe1ac4d89a554cb6.png", + "itemType": 1, + "visibility": 1 + }, + "100": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/100/skin.png/c2498c083e42229c1d7e744d8df7eb78.png", + "itemType": 1, + "visibility": 1 + }, + "101": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/101/skin.png/8863fde6892a71ec7dbe7f0565ac3b96.png", + "itemType": 1, + "visibility": 1 + }, + "102": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/102/skin.png/132e5fe87a1ded8307481b7147877bc6.png", + "itemType": 1, + "visibility": 1 + }, + "103": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/103/skin.png/5d9b88df0629c1a5ffda519945992c5d.png", + "itemType": 1, + "visibility": 1 + }, + "104": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/104/skin.png/4231197249416ee6effebffa40ab92a8.png", + "itemType": 1, + "visibility": 1 + }, + "105": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/105/skin.png/6a0068e2ebfabce485dea7b0bf644b18.png", + "itemType": 1, + "visibility": 1 + }, + "106": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/106/skin.png/825e8e06f6fca574c22c043ee5e45e1f.png", + "itemType": 1, + "visibility": 1 + }, + "107": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/107/skin.png/5e2b3ef1496f7bb3a68ee79457b234d2.png", + "itemType": 1, + "visibility": 1 + }, + "108": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/108/skin.png/c26c3a534d86cf4c9a9c544db5ff9c52.png", + "itemType": 1, + "visibility": 1 + }, + "109": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/109/skin.png/36b2aa662ff59c875b1fbf1ff2412186.png", + "itemType": 1, + "visibility": 1 + }, + "110": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/110/skin.png/837475484f963443fc5a9d9e357551c9.png", + "itemType": 1, + "visibility": 1 + }, + "111": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/111/skin.png/c39c08ff0f27a11f80f9fb9d92c47884.png", + "itemType": 1, + "visibility": 1 + }, + "112": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/112/skin.png/e638afcf2da1205d69ed8598f35aafed.png", + "itemType": 1, + "visibility": 1 + }, + "113": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/113/skin.png/d3507f0e557a71bd009408617e2ec7e0.png", + "itemType": 1, + "visibility": 1 + }, + "114": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/114/skin.png/e581a5a759364af433a3b4d20d31a80a.png", + "itemType": 1, + "visibility": 1 + }, + "115": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/115/skin.png/7a638fcd3588c585b7f8dc5151dcb9b4.png", + "itemType": 1, + "visibility": 1 + }, + "116": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/116/skin.png/e538e618fa05d58643fad7ed2fde46a4.png", + "itemType": 1, + "visibility": 1 + }, + "117": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/117/skin.png/65335185cbe7dd4581f83810e0ab59cd.png", + "itemType": 1, + "visibility": 1 + }, + "118": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/118/skin.png/789da1720a72ba30e563d81022af48b0.png", + "itemType": 1, + "visibility": 1 + }, + "119": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/119/skin.png/4e3103e91c53fb5a4727891b9b8f8f10.png", + "itemType": 1, + "visibility": 1 + }, + "120": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/120/skin.png/33dd7d1feb7cb9bd5bb48549a6cc7527.png", + "itemType": 1, + "visibility": 1 + }, + "121": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/121/skin.png/94f5d668d885d0913b6b3c892bb079f8.png", + "itemType": 1, + "visibility": 1 + }, + "122": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/122/skin.png/04fcb80fb7b064137a69cb7c3a1ce5b3.png", + "itemType": 1, + "visibility": 1 + }, + "123": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/123/skin.png/3f4d26bf43b75d942eb590fd3cc74a77.png", + "itemType": 1, + "visibility": 1 + }, + "124": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/124/skin.png/bf3ec983d79365c21d80a2e8bac84a03.png", + "itemType": 1, + "visibility": 1 + }, + "125": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/125/skin.png/7c836e9560c40a95b0f643753c2f22aa.png", + "itemType": 1, + "visibility": 1 + }, + "126": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/126/skin.png/7f64302e097d848d68c92203068f441d.png", + "itemType": 1, + "visibility": 1 + }, + "127": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/127/skin.png/3903f5edc582cadef14c34ef75b30a94.png", + "itemType": 1, + "visibility": 1 + }, + "128": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/128/skin.png/e2264fabb468ee3cea2652138fd36537.png", + "itemType": 1, + "visibility": 1 + }, + "129": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/129/skin.png/5f0a1df7e3819a0d176e93a1ad4be353.png", + "itemType": 1, + "visibility": 1 + }, + "130": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/130/skin.png/84499b69a83997254547e46ae465a547.png", + "itemType": 1, + "visibility": 1 + }, + "131": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/131/skin.png/2f6b51c34a2d697c5c83360163d56312.png", + "itemType": 1, + "visibility": 1 + }, + "132": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/132/skin.png/eff5c8be285ff9e5d6760b9108e04255.png", + "itemType": 1, + "visibility": 1 + }, + "133": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/133/skin.png/1323ed591ee4333de144707b7c7b77ab.png", + "itemType": 1, + "visibility": 1 + }, + "134": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/134/skin.png/70bf3e94f8e7ef3926c4e399c4ee5218.png", + "itemType": 1, + "visibility": 1 + }, + "135": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/135/skin.png/b26ec3f8189e4205ad5cf759fbeffc1b.png", + "itemType": 1, + "visibility": 1 + }, + "141": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/141/skin.png/ba5e0eb99dab6015d15841f409131fb3.png", + "itemType": 1, + "visibility": 1 + }, + "142": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/142/skin.png/12678e8c55f38b386e1772c8656e3084.png", + "itemType": 1, + "visibility": 1 + }, + "143": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/143/skin.png/0680e5a60491a822bae4bf6fb154d64e.png", + "itemType": 1, + "visibility": 1 + }, + "144": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/144/skin.png/5498fd7e832d516be5076b433064ed24.png", + "itemType": 1, + "visibility": 1 + }, + "145": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "status": 1, + "unlockType": 12, + "url": "https://jd-s3.akamaized.net/public/skin/145/skin.png/7b4ad99878d51a71b7b758a79aa9d5df.png", + "itemType": 1, + "visibility": 1 + }, + "146": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "status": 1, + "unlockType": 13, + "url": "https://jd-s3.akamaized.net/public/skin/146/skin.png/9e889e2a68ee197b5fbc5558c265fbcd.png", + "itemType": 1, + "visibility": 1 + }, + "147": { + "__class": "OnlineCustomizableItem", + "jdVersion": 9999, + "mojoPrice": 0, + "status": 1, + "unlockType": 14, + "url": "https://jd-s3.akamaized.net/public/skin/147/skin.png/7ece504c3c3dc41ee0f4e188632f3d2a.png", + "itemType": 1, + "visibility": 1 + }, + "148": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 18, + "url": "https://jd-s3.akamaized.net/public/skin/148/skin.png/9e8cff78c490cc257f0604a9c7991b9b.png", + "itemType": 1, + "visibility": 1 + }, + "149": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/149/skin.png/9a7ee38d76749e097a4106219012e58f.png", + "itemType": 1, + "visibility": 1 + }, + "150": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 3, + "unlockType": 20, + "url": "https://jd-s3.akamaized.net/public/skin/150/skin.png/d40c8bf53fffaea93bea8f7089108386.png", + "itemType": 1, + "visibility": 1 + }, + "151": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/151/skin.png/7cbfce3d00bfbdeccd6a6f4c27e16cfb.png", + "itemType": 1, + "visibility": 1 + }, + "152": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/152/skin.png/278bcea1982a6cfd78713832ff8cf64e.png", + "itemType": 1, + "visibility": 1 + }, + "153": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/153/skin.png/55a6b4995e7952ff86c1f9f8f48c8f35.png", + "itemType": 1, + "visibility": 1 + }, + "154": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/154/skin.png/5646a4cbc7f1ffd5c95b77aa6b856fb5.png", + "itemType": 1, + "visibility": 1 + }, + "155": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/155/skin.png/63b6de0fac8bc818d2138bf96092d0e9.png", + "itemType": 1, + "visibility": 1 + }, + "156": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/156/skin.png/f899640f5c32dcae3fa71e2670bb5eb4.png", + "itemType": 1, + "visibility": 1 + }, + "157": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/157/skin.png/f5115d1b8aff7bbc8ea8fee4915841c6.png", + "itemType": 1, + "visibility": 1 + }, + "158": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/158/skin.png/27b3f2107b8174690fb88c1ef706f2e2.png", + "itemType": 1, + "visibility": 1 + }, + "159": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 6, + "url": "https://jd-s3.akamaized.net/public/skin/159/skin.png/b77b97cb7a5cf06312190f8f5fb9ff55.png", + "itemType": 1, + "visibility": 1 + }, + "160": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/160/skin.png/0815b2d4f5ac2a9e35759cd41380018f.png", + "itemType": 1, + "visibility": 1 + }, + "161": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/161/skin.png/05f19ddd3f8605b19e69276be739e2a9.png", + "itemType": 1, + "visibility": 1 + }, + "162": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 16, + "url": "https://jd-s3.akamaized.net/public/skin/162/skin.png/907e165ad88b974dbe2e25d3a3024ad9.png", + "itemType": 1, + "visibility": 1 + }, + "163": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/163/skin.png/2767c8f96b4136e8ca5e84fd263d7445.png", + "itemType": 1, + "visibility": 1 + }, + "164": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/164/skin.png/3cf1ac9d086876b36807c9bb718c3b63.png", + "itemType": 1, + "visibility": 1 + }, + "165": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/165/skin.png/10c2b85bca4b57c13f33d043af59e4ff.png", + "itemType": 1, + "visibility": 1 + }, + "166": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/166/skin.png/8cea5b357af0f68939f4754a8e97fa16.png", + "itemType": 1, + "visibility": 1 + }, + "167": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/167/skin.png/74a398dea6d2f978877f7193da787040.png", + "itemType": 1, + "visibility": 1 + }, + "168": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/168/skin.png/8093b6b941d74578a62bda7a96e34e5b.png", + "itemType": 1, + "visibility": 1 + }, + "169": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/169/skin.png/f87e082c77fa675b2972da015d310863.png", + "itemType": 1, + "visibility": 1 + }, + "170": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/170/skin.png/3ccbe0aae096f8c82dfff170d69f3acb.png", + "itemType": 1, + "visibility": 1 + }, + "171": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/171/skin.png/710df0866a391599d82377afb861d339.png", + "itemType": 1, + "visibility": 1 + }, + "172": { + "__class": "OnlineCustomizableItem", + "jdVersion": 2018, + "mojoPrice": 0, + "status": 1, + "unlockType": 15, + "url": "https://jd-s3.akamaized.net/public/skin/172/skin.png/a892b5e1ea87148f793a8ade8aa8d4ce.png", + "itemType": 1, + "visibility": 1 + } +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/localisation/localisation.json b/justdanceonline-main/local_settings/localisation/localisation.json new file mode 100644 index 0000000000000000000000000000000000000000..37a479d6c50c94ffa43c0f6049f2b002e7e79773 --- /dev/null +++ b/justdanceonline-main/local_settings/localisation/localisation.json @@ -0,0 +1,3296 @@ +{ + "9349": { + "ja": "Girls", + "ko": "Girls", + "nl": "Meisjes", + "fr": "Filles", + "de": "Mädchen", + "es": "Chicas", + "en": "Girls", + "da": "Piger", + "fi": "Tytöt", + "nb": "Jenter", + "sv": "Tjejer", + "pt-br": "Garotas", + "it": "Femmine", + "zh-cn": "Girls", + "ru": "Girls", + "zh-tw": "Girls" + }, + "9350": { + "ja": "Boys", + "ko": "Boys", + "nl": "Jongens", + "fr": "Garçons", + "de": "Jungs", + "es": "Chicos", + "en": "Boys", + "da": "Drenge", + "fi": "Pojat", + "nb": "Gutter", + "sv": "Killar", + "pt-br": "Garotos", + "it": "Maschi", + "zh-cn": "Boys", + "ru": "Boys", + "zh-tw": "Boys" + }, + "10861": { + "ja": "コミュニティリミックス", + "ko": "커뮤니티 리믹스", + "nl": "Community Remix", + "fr": "Community Remix", + "de": "Community-Remix", + "es": "Community Remix", + "en": "Community Remix", + "da": "Community Remix", + "fi": "Community Remix", + "nb": "Community Remix", + "sv": "Community Remix", + "pt-br": "Community Remix", + "it": "Community Remix", + "zh-cn": "社区集锦", + "ru": "Community Remix", + "zh-tw": "社群集錦" + }, + "11604": { + "ja": "カルテットマッシュアップ", + "ko": "4인용 Mashup", + "nl": "Kwartet Mash-Up", + "fr": "Mash-Up Quatuor", + "de": "Quartett-Mash-Up", + "es": "Mash-Up para cuarteto", + "en": "Quartet Mash-Up", + "da": "Kvartet-mashup", + "fi": "Quatro Mash-Up", + "nb": "Kvartett-mash-up", + "sv": "Fyrtal i Mash-Up", + "pt-br": "Mash-Up de quarteto", + "it": "Mash-Up in quattro", + "zh-cn": "四人组金曲串烧", + "ru": "Квартет-микс", + "zh-tw": "四人組金曲串燒" + }, + "11710": { + "ja": "コミュニティリミックス", + "ko": "커뮤니티 리믹스", + "nl": "WEDSTRIJD!", + "fr": "COMMUNITY REMIX !", + "de": "COMMUNITY-REMIX", + "es": "COMMUNITY REMIX", + "en": "Community Remix", + "da": "Community remix", + "fi": "Community Remix", + "nb": "Community Remix", + "sv": "Community Remix", + "pt-br": "COMMUNITY REMIX!", + "it": "COMMUNITY REMIX!", + "zh-cn": "社区集锦", + "ru": "Соревнование", + "zh-tw": "社群集錦" + }, + "12227": { + "ja": "Just Dance 2016", + "ko": "Just Dance 2016", + "nl": "Just Dance 2016", + "fr": "Just Dance 2016", + "de": "Just Dance 2016", + "es": "Just Dance 2016", + "en": "Just Dance 2016", + "da": "Just Dance 2016", + "fi": "Just Dance 2016", + "nb": "Just Dance 2016", + "sv": "Just Dance 2016", + "pt-br": "Just Dance 2016", + "it": "Just Dance 2016", + "zh-cn": "《Just Dance 2016》", + "ru": "Just Dance 2016", + "zh-tw": "《Just Dance 2016》" + }, + "12228": { + "ja": "Just Dance 2015", + "ko": "Just Dance 2015", + "nl": "Just Dance 2015", + "fr": "Just Dance 2015", + "de": "Just Dance 2015", + "es": "Just Dance 2015", + "en": "Just Dance 2015", + "da": "Just Dance 2015", + "fi": "Just Dance 2015", + "nb": "Just Dance 2015", + "sv": "Just Dance 2015", + "pt-br": "Just Dance 2015", + "it": "Just Dance 2015", + "zh-cn": "《Just Dance 2015》", + "ru": "Just Dance 2015", + "zh-tw": "《Just Dance 2015》" + }, + "12229": { + "ja": "Just Dance 2014", + "ko": "Just Dance 2014", + "nl": "Just Dance 2014", + "fr": "Just Dance 2014", + "de": "Just Dance 2014", + "es": "Just Dance 2014", + "en": "Just Dance 2014", + "da": "Just Dance 2014", + "fi": "Just Dance 2014", + "nb": "Just Dance 2014", + "sv": "Just Dance 2014", + "pt-br": "Just Dance 2014", + "it": "Just Dance 2014", + "zh-cn": "《Just Dance 2014》", + "ru": "Just Dance 2014", + "zh-tw": "《Just Dance 2014》" + }, + "12230": { + "ja": "Just Dance 4", + "ko": "Just Dance 4", + "nl": "Just Dance 4", + "fr": "Just Dance 4", + "de": "Just Dance 4", + "es": "Just Dance 4", + "en": "Just Dance 4", + "da": "Just Dance 4", + "fi": "Just Dance 4", + "nb": "Just Dance 4", + "sv": "Just Dance 4", + "pt-br": "Just Dance 4", + "it": "Just Dance 4", + "zh-cn": "《Just Dance 4》", + "ru": "Just Dance 4", + "zh-tw": "《Just Dance 4》" + }, + "12231": { + "ja": "Just Dance 3", + "ko": "Just Dance 3", + "nl": "Just Dance 3", + "fr": "Just Dance 3", + "de": "Just Dance 3", + "es": "Just Dance 3", + "en": "Just Dance 3", + "da": "Just Dance 3", + "fi": "Just Dance 3", + "nb": "Just Dance 3", + "sv": "Just Dance 3", + "pt-br": "Just Dance 3", + "it": "Just Dance 3", + "zh-cn": "《Just Dance 3》", + "ru": "Just Dance 3", + "zh-tw": "《Just Dance 3》" + }, + "12232": { + "ja": "Just Dance 2", + "ko": "Just Dance 2", + "nl": "Just Dance 2", + "fr": "Just Dance 2", + "de": "Just Dance 2", + "es": "Just Dance 2", + "en": "Just Dance 2", + "da": "Just Dance 2", + "fi": "Just Dance 2", + "nb": "Just Dance 2", + "sv": "Just Dance 2", + "pt-br": "Just Dance 2", + "it": "Just Dance 2", + "zh-cn": "《Just Dance 2》", + "ru": "Just Dance 2", + "zh-tw": "《Just Dance 2》" + }, + "12233": { + "ja": "Just Dance 1", + "ko": "Just Dance 1", + "nl": "Just Dance 1", + "fr": "Just Dance 1", + "de": "Just Dance 1", + "es": "Just Dance 1", + "en": "Just Dance 1", + "da": "Just Dance 1", + "fi": "Just Dance 1", + "nb": "Just Dance 1", + "sv": "Just Dance 1", + "pt-br": "Just Dance 1", + "it": "Just Dance 1", + "zh-cn": "《Just Dance 1》", + "ru": "Just Dance 1", + "zh-tw": "《Just Dance 1》" + }, + "12599": { + "ja": "触るな", + "ko": "건드리지 마", + "nl": "Niet aanraken", + "fr": "Pas touche", + "de": "Nicht berühren", + "es": "No tocar", + "en": "Don't touch", + "da": "Ingen berøring", + "fi": "Älä koske", + "nb": "Ikke rør", + "sv": "Stekhet", + "pt-br": "Não toque", + "it": "Non toccare", + "zh-cn": "切勿触碰", + "ru": "Не трогать", + "zh-tw": "切勿觸碰" + }, + "12600": { + "ja": "エネルギッシュ・ガールズ", + "ko": "하이 에너지 걸스", + "nl": "Meiden vol energie", + "fr": "Girl power", + "de": "High-Energy-Girls", + "es": "Chicas con mucha energía", + "en": "High energy girls", + "da": "Piger med spræl i", + "fi": "Energiset tytöt", + "nb": "Jenter med mye energi", + "sv": "Sprudlande tjejer", + "pt-br": "Garotas enérgicas", + "it": "Ragazze tutto pepe", + "zh-cn": "活力女孩", + "ru": "Энергичные девушки", + "zh-tw": "活力女孩" + }, + "12601": { + "ja": "レトロメン", + "ko": "레트로 맨", + "nl": "Retromannen", + "fr": "Un coup dans le rétro", + "de": "Retro-Men", + "es": "Hombres como los de antes", + "en": "Retro men", + "da": "Retrofyre", + "fi": "Retroheput", + "nb": "Retromenn", + "sv": "Retrosnubbar", + "pt-br": "Homens retrô", + "it": "Uomini vintage", + "zh-cn": "复古风格", + "ru": "Любители ретро", + "zh-tw": "復古風格" + }, + "12602": { + "ja": "ホップ&ジャンプ", + "ko": "높이 뛰어올라", + "nl": "Gestuiter en gespring", + "fr": "Et que ça saute", + "de": "Hüpfen & Springen", + "es": "Saltos y saltitos", + "en": "Hops & Jumps", + "da": "Hop og spring", + "fi": "Loiki & hypi", + "nb": "Sprett og hopp", + "sv": "Skutt och hopp", + "pt-br": "Pulos & Saltos", + "it": "Salti e balzi", + "zh-cn": "蹦蹦跳跳", + "ru": "Прыжки и скачки", + "zh-tw": "蹦蹦跳跳" + }, + "12603": { + "ja": "コスチューム・パーティー", + "ko": "코스튬 파티", + "nl": "Verkleedpartijtje", + "fr": "Fête costumée", + "de": "Kostümparty", + "es": "Fiesta de disfraces", + "en": "Costume party", + "da": "Kostumefest", + "fi": "Naamiaiset", + "nb": "Kostymefest", + "sv": "Maskerad", + "pt-br": "Festa à fantasia", + "it": "Festa in costume", + "zh-cn": "化妆舞会", + "ru": "Карнавал", + "zh-tw": "化妝舞會" + }, + "12604": { + "ja": "大親友", + "ko": "B.F.F.", + "nl": "Vrienden voor het leven", + "fr": "Meilleurs amis pour la vie", + "de": "Beste Freunde", + "es": "Amistad de la buena", + "en": "B.F.F.", + "da": "De bedste venner", + "fi": "B.F.F.", + "nb": "B.F.F.", + "sv": "Bästa vänner", + "pt-br": "B.F.F.", + "it": "B.F.F.", + "zh-cn": "最佳密友", + "ru": "Лучший друг", + "zh-tw": "最佳密友" + }, + "12605": { + "ja": "舞台裏", + "ko": "비하인드 신", + "nl": "Achter de schermen", + "fr": "En coulisses", + "de": "Hinter den Kulissen", + "es": "Detrás de la cámara", + "en": "Behind the scenes", + "da": "Bag om scenen", + "fi": "Kulissien takana", + "nb": "Bak kulissene", + "sv": "Bakom kulisserna", + "pt-br": "Atrás dos bastidores", + "it": "Dietro le quinte", + "zh-cn": "藏身幕后", + "ru": "За сценой", + "zh-tw": "藏身幕後" + }, + "12606": { + "ja": "三つ子", + "ko": "세쌍둥이", + "nl": "Drieling", + "fr": "Triplés", + "de": "Drillinge", + "es": "Tripletes", + "en": "Triplets", + "da": "Trillinger", + "fi": "Kolmoset", + "nb": "Trillinger", + "sv": "Trillingar", + "pt-br": "Tri-gêmeas", + "it": "Tripletta", + "zh-cn": "三位一体", + "ru": "Тройняшки", + "zh-tw": "三位一體" + }, + "12607": { + "ja": "目立ちたがり屋", + "ko": "뽐내기", + "nl": "Uitslover", + "fr": "Démonstration", + "de": "Gib an!", + "es": "A presumir", + "en": "Show-off", + "da": "Praleri", + "fi": "Leveilyä", + "nb": "Skryting", + "sv": "Skrytmåns", + "pt-br": "Exiba-se", + "it": "Mettiti in mostra", + "zh-cn": "彰显自我", + "ru": "Хвастунишка", + "zh-tw": "彰顯自我" + }, + "12608": { + "ja": "友達を招待", + "ko": "친구들 다 데려와", + "nl": "Neem je vrienden mee", + "fr": "Petites danses entre amis", + "de": "Bring deine Freunde mit", + "es": "Trae a tus amigos", + "en": "Bring your friends", + "da": "Tag vennerne med", + "fi": "Tuo ystäväsikin", + "nb": "Bring dine venner", + "sv": "Ta med kompisar", + "pt-br": "Traga seus amigos", + "it": "Porta gli amici", + "zh-cn": "带朋友一起", + "ru": "Приводите друзей", + "zh-tw": "帶朋友一起" + }, + "12609": { + "ja": "歌姫", + "ko": "디바", + "nl": "Diva's", + "fr": "Divas", + "de": "Diven", + "es": "Divas", + "en": "Divas", + "da": "Divaer", + "fi": "Diivat", + "nb": "Divaer", + "sv": "Divor", + "pt-br": "Divas", + "it": "Dive", + "zh-cn": "女主唱", + "ru": "Дивы", + "zh-tw": "女主唱" + }, + "12610": { + "ja": "クラブ", + "ko": "클럽", + "nl": "Club", + "fr": "Club", + "de": "Club", + "es": "Club", + "en": "Club", + "da": "Klubben", + "fi": "Klubi", + "nb": "Klubb", + "sv": "Klubb", + "pt-br": "Clube", + "it": "Club", + "zh-cn": "Club", + "ru": "Клуб", + "zh-tw": "Club" + }, + "12611": { + "ja": "ジャスト・シャイン", + "ko": "빛만 보여", + "nl": "Swingen maar", + "fr": "À vous de briller", + "de": "Einfach nur glänzen", + "es": "Brillante", + "en": "Just shine", + "da": "Just Shine", + "fi": "Pelkkää loistoa", + "nb": "Ren utstrålig", + "sv": "Ut och gläns", + "pt-br": "Apenas brilhe", + "it": "Risplendi", + "zh-cn": "闪耀全开", + "ru": "Сияйте", + "zh-tw": "閃耀全開" + }, + "12612": { + "ja": "Just Dance 2016のベスト", + "ko": "Just Dance 2016 베스트", + "nl": "Het beste van Just Dance 2015", + "fr": "Best of Just Dance 2016", + "de": "Das Beste aus Just Dance 2016", + "es": "Lo mejor de Just Dance 2016", + "en": "Best of Just Dance 2016", + "da": "Det bedste af Just Dance 2016", + "fi": "Just Dance 2016:n parhaat", + "nb": "Beste fra Just Dance 2016", + "sv": "Det bästa från Just Dance 2016", + "pt-br": "Best of Just Dance 2016", + "it": "Il meglio di Just Dance 2016", + "zh-cn": "《Just Dance 2016》精选", + "ru": "Лучшее из Just Dance 2016", + "zh-tw": "《Just Dance 2016》精選" + }, + "12613": { + "ja": "Sunglasses", + "ko": "선글라스", + "nl": "Zonnebrillen", + "fr": "Lunettes de soleil", + "de": "Sonnenbrillen", + "es": "Gafas de sol", + "en": "Sunglasses", + "da": "Solbriller", + "fi": "Aurinkolasit", + "nb": "Solbriller", + "sv": "Solglasögon", + "pt-br": "Óculos escuros", + "it": "Occhiali da sole", + "zh-cn": "太阳眼镜", + "ru": "Солнечные очки", + "zh-tw": "太陽眼鏡" + }, + "12614": { + "ja": "オタク", + "ko": "괴짜들", + "nl": "Geeks", + "fr": "Geeks", + "de": "Geeks", + "es": "Frikis", + "en": "Geeks", + "da": "Nørder", + "fi": "Nörtit", + "nb": "Nerder", + "sv": "Nördar", + "pt-br": "Nerds", + "it": "Nerd", + "zh-cn": "极客", + "ru": "Гики", + "zh-tw": "極客" + }, + "12615": { + "ja": "ピンク色の髪", + "ko": "분홍색 머리", + "nl": "Roze haar", + "fr": "Cheveux roses", + "de": "Rosa Haare", + "es": "Pelo rosa", + "en": "Pink hair", + "da": "Pink hår", + "fi": "Pinkki tukka", + "nb": "Rosa hår", + "sv": "Rosa hår", + "pt-br": "Cabelo rosa", + "it": "Capelli rosa", + "zh-cn": "粉色头发", + "ru": "Розовые волосы", + "zh-tw": "粉色頭髮" + }, + "12616": { + "ja": "着飾ろう!", + "ko": "복장 필요!", + "nl": "Zorg voor gepaste kleding!", + "fr": "En costume !", + "de": "Putz dich raus!", + "es": "¡Vístete!", + "en": "Suit up!", + "da": "På med jakkesættet!", + "fi": "Ykköset ylle!", + "nb": "Kle deg ut!", + "sv": "På med kostymen!", + "pt-br": "Arrume-se!", + "it": "In ghingheri!", + "zh-cn": "好好打扮!", + "ru": "Приоденьтесь!", + "zh-tw": "好好打扮!" + }, + "12617": { + "ja": "エネルギッシュ", + "ko": "넘치는 에너지", + "nl": "Vol energie", + "fr": "100 % énergie", + "de": "High-Energy", + "es": "Máxima energía", + "en": "High energy", + "da": "Fuld energi", + "fi": "Energiaa", + "nb": "Mye energi", + "sv": "Massor av energi", + "pt-br": "Alto astral", + "it": "A tutto gas", + "zh-cn": "活力", + "ru": "Высокая энергия", + "zh-tw": "活力" + }, + "12618": { + "ja": "メリーゴーランド", + "ko": "회전목마", + "nl": "In de draaimolen", + "fr": "Manège", + "de": "Karussell", + "es": "Carrusel", + "en": "Merry go round", + "da": "Rundtosset", + "fi": "Karuselli", + "nb": "Karusell", + "sv": "Karusell", + "pt-br": "Carrossel", + "it": "Girotondo", + "zh-cn": "旋转木马", + "ru": "Карусель", + "zh-tw": "旋轉木馬" + }, + "12619": { + "ja": "フラワー&ビーver.", + "ko": "꽃과 벌 버전", + "nl": "Bloemetjes-en-bijtjes-versie", + "fr": "Version Fleurs et Abeilles", + "de": "Bienen & Blumen-Version", + "es": "Versión flores y abejas", + "en": "Flower & Bee Version", + "da": "Blomster og bier-version", + "fi": "Kukka ja mehiläinen -versio", + "nb": "Blomsten og bien-versjon", + "sv": "Naturversion", + "pt-br": "Versão jardim", + "it": "Versione api e fiori", + "zh-cn": "花与蜂版本", + "ru": "Версия цветка и пчелы", + "zh-tw": "花與蜂版本" + }, + "12620": { + "ja": "ナードver.", + "ko": "괴짜 버전", + "nl": "Nerd-versie", + "fr": "Version Bon Élève", + "de": "Nerd-Version", + "es": "Versión para empollones", + "en": "Nerd Version", + "da": "Nørdversion", + "fi": "Nörttiversio", + "nb": "Nerdeversjon", + "sv": "Nördversion", + "pt-br": "Versão nerd", + "it": "Versione nerd", + "zh-cn": "书虫版本", + "ru": "Версия отличников", + "zh-tw": "書蟲版本" + }, + "12621": { + "ja": "クラスルームver.", + "ko": "교실 버전", + "nl": "Klaslokaal-versie", + "fr": "Version Salle de Classe", + "de": "Klassenzimmer-Version", + "es": "Versión para la clase", + "en": "Classroom Version", + "da": "Skoleversion", + "fi": "Luokkahuoneversio", + "nb": "Klasseromsversjon", + "sv": "Skolversion", + "pt-br": "Versão sala de aula", + "it": "Versione classe", + "zh-cn": "教室版本", + "ru": "Школьная версия", + "zh-tw": "教室版本" + }, + "12622": { + "ja": "車ver.", + "ko": "자동차 버전", + "nl": "Auto-versie", + "fr": "Version Voiture", + "de": "Auto-Version", + "es": "Versión para el coche", + "en": "Car Version", + "da": "Bilversion", + "fi": "Autoversio", + "nb": "Bilversjon", + "sv": "Bilversion", + "pt-br": "Versão para carro", + "it": "Versione auto", + "zh-cn": "汽车版本", + "ru": "Версия в машине", + "zh-tw": "汽車版本" + }, + "12623": { + "ja": "タキシードver.", + "ko": "턱시도 버전", + "nl": "Smoking-versie", + "fr": "Version Smoking", + "de": "Smoking-Version", + "es": "Versión esmoquin", + "en": "Tuxedo Version", + "da": "Smokingversion", + "fi": "Smokkiversio", + "nb": "Smokingversjon", + "sv": "Smokingversion", + "pt-br": "Versão de terno", + "it": "Versione smoking", + "zh-cn": "燕尾服版本", + "ru": "Версия для смокинга", + "zh-tw": "燕尾服版本" + }, + "12624": { + "ja": "エクストリームver.", + "ko": "익스트림 버전", + "nl": "Extreme versie", + "fr": "Version Extrême", + "de": "Extrem-Version", + "es": "Versión Extrema", + "en": "Extreme Version", + "da": "Ekstrem version", + "fi": "Extreme-versio", + "nb": "Ekstremversjon", + "sv": "Extrem version", + "pt-br": "Versão Extrema", + "it": "Versione estrema", + "zh-cn": "极限版本", + "ru": "Экстрим-версия", + "zh-tw": "極限版本" + }, + "12625": { + "ja": "芸者ver.", + "ko": "게이샤 버전", + "nl": "Geisha-versie", + "fr": "Version Geisha", + "de": "Geisha-Version", + "es": "Versión para geisha", + "en": "Geisha Version", + "da": "Geisha-version", + "fi": "Geisha-versio", + "nb": "Geishaversjon", + "sv": "Geishaversion", + "pt-br": "Versão gueixa", + "it": "Versione geisha", + "zh-cn": "艺妓版本", + "ru": "Версия гейши", + "zh-tw": "藝妓版本" + }, + "12626": { + "ja": "ラテンフィットネスver.", + "ko": "라틴 피트니스 버전", + "nl": "Latin-fitness-versie", + "fr": "Version Latino-Fitness", + "de": "Latin-Fitness-Version", + "es": "Versión fitness latino", + "en": "Latin Fitness Version", + "da": "Latinamerikansk fitnessdans", + "fi": "Latinofitnessversio", + "nb": "Latinsk fitness-versjon", + "sv": "Latinoträningsversion", + "pt-br": "Versão fitness latina", + "it": "Versione fitness latino", + "zh-cn": "拉丁塑身版本", + "ru": "Версия для фитнес-латины", + "zh-tw": "拉丁塑身版本" + }, + "12627": { + "ja": "カップルver.", + "ko": "커플 버전", + "nl": "Liefde-versie", + "fr": "Version Couple", + "de": "Paar-Version", + "es": "Versión para parejas", + "en": "Couple Version", + "da": "Parversion", + "fi": "Pariversio", + "nb": "Parversjon", + "sv": "Parversion", + "pt-br": "Versão de casal", + "it": "Versione coppia", + "zh-cn": "情侣版本", + "ru": "Парная версия", + "zh-tw": "情侶版本" + }, + "12628": { + "ja": "インディアンver.", + "ko": "인도 버전", + "nl": "Indiase versie", + "fr": "Version Indienne", + "de": "Indische Version", + "es": "Versión hindú", + "en": "Indian Version", + "da": "Indisk version", + "fi": "Intialainen versio", + "nb": "Indisk versjon", + "sv": "Indisk version", + "pt-br": "Versão indiana", + "it": "Versione indiana", + "zh-cn": "印度版本", + "ru": "Индийская версия", + "zh-tw": "印度版本" + }, + "12629": { + "ja": "エアロビクスver.", + "ko": "에어로빅 버전", + "nl": "Aerobics-versie", + "fr": "Version Aérobic", + "de": "Aerobic-Version", + "es": "Versión aeróbica", + "en": "Aerobics Version", + "da": "Aerobic-version", + "fi": "Aerobicversio", + "nb": "Aerobic-versjon", + "sv": "Aerobicsversion", + "pt-br": "Versão aeróbica", + "it": "Versione aerobica", + "zh-cn": "有氧版本", + "ru": "Версия для аэробики", + "zh-tw": "有氧版本" + }, + "12630": { + "ja": "ラインダンスver.", + "ko": "라인 댄스 버전", + "nl": "Linedance-versie", + "fr": "Version Square Dance", + "de": "Line-Dance-Version", + "es": "Versión baile en filas", + "en": "Line Dance Version", + "da": "Linjedans-version", + "fi": "Rivitanssiversio", + "nb": "Linedance-versjon", + "sv": "Linedanceversion", + "pt-br": "Versão trenzinho", + "it": "Versione line dance", + "zh-cn": "排舞版本", + "ru": "Версия для танца в линию", + "zh-tw": "排舞版本" + }, + "12631": { + "ja": "エクストリームver.", + "ko": "익스트림 버전", + "nl": "Extreme versie", + "fr": "Version Extrême", + "de": "Extrem-Version", + "es": "Versión Extrema", + "en": "Extreme Version", + "da": "Ekstrem version", + "fi": "Extreme-versio", + "nb": "Ekstremversjon", + "sv": "Extrem version", + "pt-br": "Versão Extrema", + "it": "Versione estrema", + "zh-cn": "极限版本", + "ru": "Экстрим-версия", + "zh-tw": "極限版本" + }, + "12793": { + "ja": "Just Dance 2017", + "ko": "Just Dance 2017", + "nl": "Just Dance 2017", + "fr": "Just Dance 2017", + "de": "Just Dance 2017", + "es": "Just Dance 2017", + "en": "Just Dance 2017", + "da": "Just Dance 2017", + "fi": "Just Dance 2017", + "nb": "Just Dance 2017", + "sv": "Just Dance 2017", + "pt-br": "Just Dance 2017", + "it": "Just Dance 2017", + "zh-cn": "《Just Dance 2017》", + "ru": "Just Dance 2017", + "zh-tw": "《Just Dance 2017》" + }, + "12794": { + "ja": "Just Dance 2018", + "ko": "Just Dance 2018", + "nl": "Just Dance 2018", + "fr": "Just Dance 2018", + "de": "Just Dance 2018", + "es": "Just Dance 2018", + "en": "Just Dance 2018", + "da": "Just Dance 2018", + "fi": "Just Dance 2018", + "nb": "Just Dance 2018", + "sv": "Just Dance 2018", + "pt-br": "Just Dance 2018", + "it": "Just Dance 2018", + "zh-cn": "《Just Dance 2018》", + "ru": "Just Dance 2018", + "zh-tw": "《Just Dance 2018》" + }, + "12921": { + "ja": "チャールストンver.", + "ko": "재즈댄스 버전", + "nl": "Charleston-versie", + "fr": "Version Charleston", + "de": "Charleston-Version", + "es": "Versión Charleston", + "en": "Charleston Version", + "da": "Charleston-version", + "fi": "Charleston-versio", + "nb": "Charleston-versjon", + "sv": "Charleston-version", + "pt-br": "Versão charleston", + "it": "Versione charleston", + "zh-cn": "查尔斯顿舞版本", + "ru": "Чарльстон-версия", + "zh-tw": "查爾斯頓舞版本" + }, + "12922": { + "ja": "相撲ver.", + "ko": "스모 버전", + "nl": "Sumo-versie", + "fr": "Version Sumo", + "de": "Sumo-Version", + "es": "Versión Sumo", + "en": "Sumo Version", + "da": "Sumo-version", + "fi": "Sumoversio", + "nb": "Sumoversjon", + "sv": "Sumoversion", + "pt-br": "Versão sumô", + "it": "Versione sumo", + "zh-cn": "相扑版本", + "ru": "Версия сумо", + "zh-tw": "相撲版本" + }, + "12923": { + "ja": "Sweat ver.", + "ko": "Sweat 버전", + "nl": "Sweat-versie", + "fr": "Version Sweat", + "de": "Sweat-Version", + "es": "Versión Sweat", + "en": "Sweat Version", + "da": "Sweat Mode-version", + "fi": "Sweat-versio", + "nb": "Sweat-versjon", + "sv": "Sweat-version", + "pt-br": "Versão Sweat", + "it": "Versione Sweat", + "zh-cn": "挥洒汗水版本", + "ru": "Фитнес-версия", + "zh-tw": "揮灑汗水版本" + }, + "12929": { + "ja": "レスラーver.", + "ko": "레슬러 버전", + "nl": "Worstelaar-versie", + "fr": "Version Catch", + "de": "Wrestling-Version", + "es": "Versión Luchador", + "en": "Wrestler Version", + "da": "Wrestler-version", + "fi": "Painijaversio", + "nb": "Fribryterversjon", + "sv": "Wrestlingversion", + "pt-br": "Versão luta livre", + "it": "Versione wrestler", + "zh-cn": "摔角版本", + "ru": "Версия борцов", + "zh-tw": "摔角版本" + }, + "12939": { + "ja": "Kids", + "ko": "Kids", + "nl": "Kids", + "fr": "Enfants", + "de": "Kids", + "es": "Infantiles", + "en": "Kids", + "da": "Kids", + "fi": "Kids", + "nb": "Barn", + "sv": "Kids", + "pt-br": "Infantil", + "it": "Bambini", + "zh-cn": "Kids", + "ru": "Kids", + "zh-tw": "Kids" + }, + "12945": { + "ja": "Christmas", + "ko": "Christmas", + "nl": "Kerstmis", + "fr": "Noël", + "de": "Weihnachten", + "es": "Navidad", + "en": "Christmas", + "da": "Jul", + "fi": "Joulu", + "nb": "Jul", + "sv": "Jul", + "pt-br": "Natal", + "it": "Natale", + "zh-cn": "Christmas", + "ru": "Christmas", + "zh-tw": "Christmas" + }, + "12949": { + "ja": "Disney", + "ko": "Disney", + "nl": "Disney", + "fr": "Disney", + "de": "Disney", + "es": "Disney", + "en": "Disney", + "da": "Disney", + "fi": "Disney", + "nb": "Disney", + "sv": "Disney", + "pt-br": "Disney", + "it": "Disney", + "zh-cn": "Disney", + "ru": "Disney", + "zh-tw": "Disney" + }, + "13001": { + "ja": "80s", + "ko": "80s", + "nl": "Jaren 80", + "fr": "80s", + "de": "80er", + "es": "Los 80", + "en": "80s", + "da": "80'erne", + "fi": "80-luku", + "nb": "80-talls", + "sv": "80-tal", + "pt-br": "Anos 80", + "it": "Anni '80", + "zh-cn": "80s", + "ru": "80s", + "zh-tw": "80s" + }, + "13004": { + "ja": "Animals", + "ko": "Animals", + "nl": "Dieren", + "fr": "Animaux", + "de": "Tiere", + "es": "Animales", + "en": "Animals", + "da": "Dyr", + "fi": "Eläimet", + "nb": "Dyr", + "sv": "Djur", + "pt-br": "Animais", + "it": "Animali", + "zh-cn": "Animals", + "ru": "Animals", + "zh-tw": "Animals" + }, + "13005": { + "ja": "Battle", + "ko": "Battle", + "nl": "Battle", + "fr": "Battle", + "de": "Kampf", + "es": "Batallas", + "en": "Battle", + "da": "Battle", + "fi": "Kamppailu", + "nb": "Kamp", + "sv": "Kamp", + "pt-br": "Batalha", + "it": "Battaglia", + "zh-cn": "Battle", + "ru": "Battle", + "zh-tw": "Battle" + }, + "13006": { + "ja": "Bollywood", + "ko": "Bollywood", + "nl": "Bollywood", + "fr": "Bollywood", + "de": "Bollywood", + "es": "Bollywood", + "en": "Bollywood", + "da": "Bollywood", + "fi": "Bollywood", + "nb": "Bollywood", + "sv": "Bollywood", + "pt-br": "Bollywood", + "it": "Bollywood", + "zh-cn": "Bollywood", + "ru": "Bollywood", + "zh-tw": "Bollywood" + }, + "13011": { + "ja": "Classical", + "ko": "Classical", + "nl": "Klassiek", + "fr": "Classique", + "de": "Klassisch", + "es": "Clásicas", + "en": "Classical", + "da": "Klassisk", + "fi": "Klassinen", + "nb": "Klassisk", + "sv": "Klassisk", + "pt-br": "Clássica", + "it": "Classici", + "zh-cn": "Classical", + "ru": "Classical", + "zh-tw": "Classical" + }, + "13018": { + "ja": "Futuristic", + "ko": "Futuristic", + "nl": "Futuristisch", + "fr": "Futuriste", + "de": "Futuristisch", + "es": "Futuristas", + "en": "Futuristic", + "da": "Futuristisk", + "fi": "Tulevaisuus", + "nb": "Futuristisk", + "sv": "Futuristiskt", + "pt-br": "Futurista", + "it": "Futuristico", + "zh-cn": "Futuristic", + "ru": "Futuristic", + "zh-tw": "Futuristic" + }, + "13021": { + "ja": "Halloween", + "ko": "Halloween", + "nl": "Halloween", + "fr": "Halloween", + "de": "Halloween", + "es": "Halloween", + "en": "Halloween", + "da": "Halloween", + "fi": "Halloween", + "nb": "Halloween", + "sv": "Halloween", + "pt-br": "Dia das Bruxas", + "it": "Halloween", + "zh-cn": "Halloween", + "ru": "Halloween", + "zh-tw": "Halloween" + }, + "13024": { + "ja": "Latin", + "ko": "Latin", + "nl": "Latin", + "fr": "Latino", + "de": "Latin", + "es": "Latina", + "en": "Latin", + "da": "Latin", + "fi": "Latinalainen", + "nb": "Latinsk", + "sv": "Latino", + "pt-br": "Latina", + "it": "Latinoamericano", + "zh-cn": "Latin", + "ru": "Latin", + "zh-tw": "Latin" + }, + "13027": { + "ja": "Princess", + "ko": "Princess", + "nl": "Prinses", + "fr": "Princesse", + "de": "Prinzessin", + "es": "Princesa", + "en": "Princess", + "da": "Prinsesse", + "fi": "Prinsessa", + "nb": "Prinsesse", + "sv": "Prinsessa", + "pt-br": "Princesa", + "it": "Principessa", + "zh-cn": "Princess", + "ru": "Princess", + "zh-tw": "Princess" + }, + "13031": { + "ja": "Sports", + "ko": "Sports", + "nl": "Sport", + "fr": "Sports", + "de": "Sport", + "es": "Deportes", + "en": "Sports", + "da": "Sport", + "fi": "Urheilu", + "nb": "Sport", + "sv": "Sport", + "pt-br": "Esportes", + "it": "Sport", + "zh-cn": "Sports", + "ru": "Sports", + "zh-tw": "Sports" + }, + "13032": { + "ja": "Summer", + "ko": "Summer", + "nl": "Zomer", + "fr": "Été", + "de": "Sommer", + "es": "Verano", + "en": "Summer", + "da": "Sommer", + "fi": "Kesä", + "nb": "Sommer", + "sv": "Sommar", + "pt-br": "Verão", + "it": "Estate", + "zh-cn": "Summer", + "ru": "Summer", + "zh-tw": "Summer" + }, + "13033": { + "ja": "Superhero", + "ko": "Superhero", + "nl": "Superheld", + "fr": "Super-héros", + "de": "Superheld", + "es": "Superhéroes", + "en": "Superhero", + "da": "Superhelt", + "fi": "Supersankari", + "nb": "Superhelt", + "sv": "Superhjälte", + "pt-br": "Super-herói", + "it": "Supereroi", + "zh-cn": "Superhero", + "ru": "Superhero", + "zh-tw": "Superhero" + }, + "13034": { + "ja": "TV and Movies", + "ko": "TV and Movies", + "nl": "Tv en films", + "fr": "TV et cinéma", + "de": "Film und Fernsehen", + "es": "Televisión y cine", + "en": "TV and Movies", + "da": "Tv og film", + "fi": "TV ja elokuva", + "nb": "TV og film", + "sv": "Tv och film", + "pt-br": "TV e filmes", + "it": "Film e TV", + "zh-cn": "TV and Movies", + "ru": "TV and Movies", + "zh-tw": "TV and Movies" + }, + "13035": { + "ja": "Video Games", + "ko": "Video Games", + "nl": "Videogames", + "fr": "Jeux vidéo", + "de": "Videospiele", + "es": "Videojuegos", + "en": "Video Games", + "da": "Computerspil", + "fi": "Videopelit", + "nb": "Spill", + "sv": "Tv-spel", + "pt-br": "Videogames", + "it": "Videogiochi", + "zh-cn": "Video Games", + "ru": "Video Games", + "zh-tw": "Video Games" + }, + "13335": { + "ja": "Disco Funk", + "ko": "Disco Funk", + "nl": "Disco Funk", + "fr": "Disco Funk", + "de": "Disco-Funk", + "es": "Disco Funk", + "en": "Disco Funk", + "da": "Discofunk", + "fi": "Disco Funk", + "nb": "Discofunk", + "sv": "Discofunk", + "pt-br": "Disco Funk", + "it": "Disco Funk", + "zh-cn": "Disco Funk", + "ru": "Disco Funk", + "zh-tw": "Disco Funk" + }, + "13677": { + "ja": "オリンピックver.", + "ko": "올림픽 버전", + "nl": "Olympische versie", + "fr": "Version Olympique", + "de": "Olympia-Version", + "es": "Versión Olímpica", + "en": "Olympic Version", + "da": "Olympisk version", + "fi": "Olympiaversio", + "nb": "Olympisk versjon", + "sv": "Olympisk version", + "pt-br": "Versão olímpica", + "it": "Versione olimpica", + "zh-cn": "奥林匹克版本", + "ru": "Олимпийская версия", + "zh-tw": "奧林匹克版本" + }, + "13683": { + "ja": "Caliente", + "ko": "Caliente", + "nl": "Caliente", + "fr": "Caliente", + "de": "Caliente", + "es": "Caliente", + "en": "Caliente", + "da": "Caliente", + "fi": "Caliente", + "nb": "Caliente", + "sv": "Caliente", + "pt-br": "Caliente", + "it": "Caliente", + "zh-cn": "Caliente", + "ru": "Caliente", + "zh-tw": "Caliente" + }, + "13684": { + "ja": "Sweatember", + "ko": "Sweatember", + "nl": "Sweatember", + "fr": "Sweatember", + "de": "Sweatember", + "es": "Sweatember", + "en": "Sweatember", + "da": "Sweatember", + "fi": "Sweatember", + "nb": "Sweatember", + "sv": "Sweatember", + "pt-br": "Sweatember", + "it": "Sweatember", + "zh-cn": "Sweatember", + "ru": "Sweatember", + "zh-tw": "Sweatember" + }, + "13685": { + "ja": "Swag", + "ko": "스웨그", + "nl": "Swag", + "fr": "Swag", + "de": "Swag", + "es": "Mírame bien", + "en": "Swag", + "da": "Swag", + "fi": "Swag", + "nb": "Swag", + "sv": "Swag", + "pt-br": "Descolado", + "it": "Festone", + "zh-cn": "摇摆", + "ru": "Swag", + "zh-tw": "搖擺" + }, + "13686": { + "ja": "Back in the day", + "ko": "그땐 그랬지", + "nl": "Vroeger", + "fr": "Back in the days", + "de": "Damals", + "es": "En aquellos tiempos", + "en": "Back in the day", + "da": "I de gode gamle dage", + "fi": "Ennen vanhaan", + "nb": "I gamle dager", + "sv": "Förr i tiden", + "pt-br": "Nos velhos tempos", + "it": "Bei vecchi tempi", + "zh-cn": "重返旧时光", + "ru": "Старые добрые дни", + "zh-tw": "重返舊時光" + }, + "13687": { + "ja": "Sunglasses", + "ko": "선글라스", + "nl": "Zonnebril", + "fr": "Sunglasses", + "de": "Sonnenbrille", + "es": "Gafas de sol", + "en": "Sunglasses", + "da": "Solbriller", + "fi": "Aurinkolasit", + "nb": "Solbriller", + "sv": "Solglasögon", + "pt-br": "Óculos escuros", + "it": "Occhiali da sole", + "zh-cn": "墨镜", + "ru": "Солнечные очки", + "zh-tw": "墨鏡" + }, + "13688": { + "ja": "Tease me", + "ko": "날 괴롭혀줘", + "nl": "Plaag me", + "fr": "Tease me", + "de": "Tease me", + "es": "Provócame", + "en": "Tease me", + "da": "Dril mig", + "fi": "Kiusaa mua", + "nb": "Ert meg", + "sv": "Reta mig", + "pt-br": "Me provoca", + "it": "Provocami", + "zh-cn": "挑逗我吧", + "ru": "Подразни меня", + "zh-tw": "挑逗我吧" + }, + "13689": { + "ja": "K-Pop", + "ko": "K-pop", + "nl": "K-pop", + "fr": "K-Pop", + "de": "K-Pop", + "es": "K-pop", + "en": "K-pop", + "da": "K-pop", + "fi": "K-pop", + "nb": "K-pop", + "sv": "K-pop", + "pt-br": "K-Pop", + "it": "K-Pop", + "zh-cn": "K-Pop", + "ru": "Kpop", + "zh-tw": "K-pop" + }, + "13690": { + "ja": "World", + "ko": "월드", + "nl": "Wereld", + "fr": "World", + "de": "Welt", + "es": "Mundial", + "en": "World", + "da": "Verden", + "fi": "Maailma", + "nb": "Verden", + "sv": "World", + "pt-br": "Mundo", + "it": "Mondo", + "zh-cn": "世界", + "ru": "Мир", + "zh-tw": "世界" + }, + "13691": { + "ja": "American dream", + "ko": "아메리칸 드림", + "nl": "Amerikaanse droom", + "fr": "American Dream", + "de": "Der amerikanische Traum", + "es": "Sueño americano", + "en": "American dream", + "da": "Den amerikanske drøm", + "fi": "Amerikkalainen unelma", + "nb": "Amerikansk drøm", + "sv": "Amerikanska drömmen", + "pt-br": "Sonho americano", + "it": "Sogno americano", + "zh-cn": "美国梦", + "ru": "Американская мечта", + "zh-tw": "美國夢" + }, + "13692": { + "ja": "Icebreaker", + "ko": "분위기 전환", + "nl": "IJsbreker", + "fr": "Icebreaker", + "de": "Eisbrecher", + "es": "Rompehielos", + "en": "Icebreaker", + "da": "Isbryder", + "fi": "Jää sulaa", + "nb": "Isbryter", + "sv": "Isbrytare", + "pt-br": "Quebra-gelo", + "it": "Rompighiaccio", + "zh-cn": "破冰游戏", + "ru": "Между всеми тает лед", + "zh-tw": "破冰遊戲" + }, + "13751": { + "ja": "父と息子ver.", + "ko": "아빠와 아들 버전", + "nl": "Vader/zoon-versie", + "fr": "Version Père/Fils", + "de": "Vater/Sohn-Version", + "es": "Versión padre e hijo", + "en": "Father/Son Version", + "da": "Far/søn-version", + "fi": "Isä/poika-versio", + "nb": "Far og sønn-versjon", + "sv": "Far och son-version", + "pt-br": "Versão pai/filho", + "it": "Versione padre/figlio", + "zh-cn": "父子版本", + "ru": "Версия для отца и сына", + "zh-tw": "父子版本" + }, + "13752": { + "ja": "車ver.", + "ko": "자동차 버전", + "nl": "Auto-versie", + "fr": "Version Voiture", + "de": "Auto-Version", + "es": "Versión coche", + "en": "Car Version", + "da": "Bilversion", + "fi": "Autoversio", + "nb": "Bilversjon", + "sv": "Bilversion", + "pt-br": "Versão para carro", + "it": "Versione auto", + "zh-cn": "汽车版本", + "ru": "Версия в машине", + "zh-tw": "汽車版本" + }, + "13753": { + "ja": "スカーフver.", + "ko": "스카프 버전", + "nl": "Sjaal-versie", + "fr": "Version Écharpe", + "de": "Schal-Version", + "es": "Versión bufanda", + "en": "Scarf Version", + "da": "Halstørklæde-version", + "fi": "Huiviversio", + "nb": "Skjerfversjon", + "sv": "Sjalversion", + "pt-br": "Versão cachecol", + "it": "Versione sciarpa", + "zh-cn": "纱丽版本", + "ru": "Версия с шарфом", + "zh-tw": "圍巾版本" + }, + "13754": { + "ja": "パンダver.", + "ko": "판다 버전", + "nl": "Panda-versie", + "fr": "Version Panda", + "de": "Panda-Version", + "es": "Versión panda", + "en": "Panda Version", + "da": "Panda-version", + "fi": "Pandaversio", + "nb": "Pandaversjon", + "sv": "Pandaversion", + "pt-br": "Versão panda", + "it": "Versione panda", + "zh-cn": "熊猫版本", + "ru": "Версия панды", + "zh-tw": "熊貓版本" + }, + "13755": { + "ja": "ディスコフィットネスver.", + "ko": "디스코 피트니스 버전", + "nl": "Disco-fitness-versie", + "fr": "Version Disco-Fitness", + "de": "Disco-Fitness-Version", + "es": "Versión música y deporte", + "en": "Disco Fitness Version", + "da": "Discofitness-version", + "fi": "Diskofitnessversio", + "nb": "Diskotreningsversjon", + "sv": "Discoträningsversion", + "pt-br": "Versão disco fitness", + "it": "Versione disco fitness", + "zh-cn": "迪斯科塑身版本", + "ru": "Версия для диско-фитнеса", + "zh-tw": "迪斯可塑身版本" + }, + "13756": { + "ja": "相撲ver.", + "ko": "스모 버전", + "nl": "Sumo-versie", + "fr": "Version Sumo", + "de": "Sumo-Version", + "es": "Versión sumo", + "en": "Sumo Version", + "da": "Sumo-version", + "fi": "Sumoversio", + "nb": "Sumoversjon", + "sv": "Sumoversion", + "pt-br": "Versão sumô", + "it": "Versione sumo", + "zh-cn": "相扑版本", + "ru": "Версия сумо", + "zh-tw": "相撲版本" + }, + "13757": { + "ja": "トリオver.", + "ko": "3인용 버전", + "nl": "Trio-versie", + "fr": "Version Trio", + "de": "Trio-Version", + "es": "Versión trío", + "en": "Trio Version", + "da": "Trio-version", + "fi": "Trioversio", + "nb": "Trio-versjon", + "sv": "Trioversion", + "pt-br": "Versão em trio", + "it": "Versione trio", + "zh-cn": "三人舞版本", + "ru": "Версия для трио", + "zh-tw": "三人舞版本" + }, + "13758": { + "ja": "ボリウッドver.", + "ko": "발리우드 버전", + "nl": "Bollywood-versie", + "fr": "Version Bollywood", + "de": "Bollywood-Version", + "es": "Versión Bollywood", + "en": "Bollywood Version", + "da": "Bollywood-version", + "fi": "Bollywood-versio", + "nb": "Bollywood-versjon", + "sv": "Bollywoodversion", + "pt-br": "Versão Bollywood", + "it": "Versione Bollywood", + "zh-cn": "宝莱坞版本", + "ru": "Болливудская версия", + "zh-tw": "寶萊塢版本" + }, + "13759": { + "ja": "イヤホンver.", + "ko": "이어폰 버전", + "nl": "Oordopjes-versie", + "fr": "Version Écouteurs", + "de": "Ohrhörer-Version", + "es": "Versión auriculares", + "en": "Earphones Version", + "da": "Høretelefons-version", + "fi": "Kuulokeversio", + "nb": "Øretelefonversjon", + "sv": "Hörlursversion", + "pt-br": "Versão fones de ouvido", + "it": "Versione auricolari", + "zh-cn": "耳机版本", + "ru": "Версия с наушниками", + "zh-tw": "耳機版本" + }, + "13760": { + "ja": "ファミリーバトルver.", + "ko": "패밀리BattleVersion", + "nl": "Familiestrijd-versie", + "fr": "Version Battle Familiale", + "de": "Familienbattle-Version", + "es": "Versión batalla familiar", + "en": "Family Battle Version", + "da": "Familiedyst-version", + "fi": "Perhetaisteluversio", + "nb": "Familiekampversjon", + "sv": "Familjekampsversion", + "pt-br": "Versão batalha de família", + "it": "Versione battaglia familiare", + "zh-cn": "家庭竞赛版本", + "ru": "Версия \"Семейный батл\"", + "zh-tw": "家庭競賽版本" + }, + "13761": { + "ja": "キャンディーver.", + "ko": "캔디 버전", + "nl": "Snoep-versie", + "fr": "Version Bonbon", + "de": "Candy-Version", + "es": "Versión chuches", + "en": "Candy Version", + "da": "Slik-version", + "fi": "Karkkiversio", + "nb": "Godteriversjon", + "sv": "Godisversion", + "pt-br": "Versão doce", + "it": "Versione dolce", + "zh-cn": "糖果版本", + "ru": "Конфетная версия", + "zh-tw": "糖果版本" + }, + "13762": { + "ja": "ヘルメットver.", + "ko": "헤드기어 버전", + "nl": "Helm-versie", + "fr": "Version Casque", + "de": "Helm-Version", + "es": "Versión casco", + "en": "Helmet Version", + "da": "Hjelm-version", + "fi": "Kypäräversio", + "nb": "Hjelmversjon", + "sv": "Hjälmversion", + "pt-br": "Versão capacete", + "it": "Versione casco", + "zh-cn": "头盔版本", + "ru": "Версия со шлемом", + "zh-tw": "頭盔版本" + }, + "13763": { + "ja": "エクストリームver.", + "ko": "익스트림 버전", + "nl": "Extreme versie", + "fr": "Version Extrême", + "de": "Extrem-Version", + "es": "Versión Extrema", + "en": "Extreme Version", + "da": "Ekstrem version", + "fi": "Extreme-versio", + "nb": "Ekstremversjon", + "sv": "Extrem version", + "pt-br": "Versão Extrema", + "it": "Versione estrema", + "zh-cn": "极限版本", + "ru": "Экстрим-версия", + "zh-tw": "極限版本" + }, + "13765": { + "ja": "エクストリームクルーver.", + "ko": "익스트림 크루 버전", + "nl": "Extreme-crew-versie", + "fr": "Version Crew Extrême", + "de": "Extrem-Crew-Version", + "es": "Versión Extrema en grupo", + "en": "Extreme Crew Version", + "da": "Ekstrem trup-version", + "fi": "Extreme Crew -versio", + "nb": "Ekstrembesetning-versjon", + "sv": "Extrem gruppversion", + "pt-br": "Versão extrema em equipe", + "it": "Versione corpo di ballo Extreme", + "zh-cn": "极限团队版本", + "ru": "Командная экстрим-версия", + "zh-tw": "極限團隊版本" + }, + "13788": { + "ja": "刀ver.", + "ko": "검무 버전", + "nl": "Katana-versie", + "fr": "Version Katana", + "de": "Katana-Version", + "es": "Versión katana", + "en": "Katana Version", + "da": "Katana-version", + "fi": "Katanaversio", + "nb": "Katana-versjon", + "sv": "Katanaversion", + "pt-br": "Versão katana", + "it": "Versione katana", + "zh-cn": "武士刀版本", + "ru": "Версия с катаной", + "zh-tw": "武士刀版本" + }, + "13813": { + "ja": "Electro", + "ko": "Electro", + "nl": "Electro", + "fr": "Électro", + "de": "Electro", + "es": "Electro", + "en": "Electro", + "da": "Elektro", + "fi": "Electro", + "nb": "Elektro", + "sv": "Electro", + "pt-br": "Electro", + "it": "Electro", + "zh-cn": "Electro", + "ru": "Electro", + "zh-tw": "Electro" + }, + "13817": { + "ja": "Rock", + "ko": "Rock", + "nl": "Rock", + "fr": "Rock", + "de": "Rock", + "es": "Rock", + "en": "Rock", + "da": "Rock", + "fi": "Rock", + "nb": "Rock", + "sv": "Rock", + "pt-br": "Rock", + "it": "Rock", + "zh-cn": "Rock", + "ru": "Rock", + "zh-tw": "Rock" + }, + "13820": { + "ja": "Panda", + "ko": "Panda", + "nl": "Panda", + "fr": "Panda", + "de": "Panda", + "es": "Panda", + "en": "Panda", + "da": "Panda", + "fi": "Panda", + "nb": "Panda", + "sv": "Panda", + "pt-br": "Panda", + "it": "Panda", + "zh-cn": "Panda", + "ru": "Panda", + "zh-tw": "Panda" + }, + "13825": { + "ja": "Eurodance", + "ko": "Eurodance", + "nl": "Eurodance", + "fr": "Eurodance", + "de": "Eurodance", + "es": "Eurodance", + "en": "Eurodance", + "da": "Eurodance", + "fi": "Eurodance", + "nb": "Eurodance", + "sv": "Eurodance", + "pt-br": "Eurodança", + "it": "Eurodance", + "zh-cn": "Eurodance", + "ru": "Eurodance", + "zh-tw": "Eurodance" + }, + "13829": { + "ja": "Asian", + "ko": "Asian", + "nl": "Aziatisch", + "fr": "Asiatique", + "de": "Asiatisch", + "es": "Asiática", + "en": "Asian", + "da": "Asiatisk", + "fi": "Aasia", + "nb": "Asiatisk", + "sv": "Asiatiskt", + "pt-br": "Asiático", + "it": "Asiatico", + "zh-cn": "Asian", + "ru": "Asian", + "zh-tw": "Asian" + }, + "13831": { + "ja": "Sit down", + "ko": "Sit down", + "nl": "Sit down", + "fr": "Assis", + "de": "Sitzen", + "es": "A sentarse", + "en": "Sit down", + "da": "Sid ned", + "fi": "Istu alas", + "nb": "Sitt ned", + "sv": "Sitt ner", + "pt-br": "Sentar", + "it": "Seduti", + "zh-cn": "Sit down", + "ru": "Sit down", + "zh-tw": "Sit down" + }, + "13890": { + "ja": "ファンメイドver.", + "ko": "팬 제작 버전", + "nl": "Fan-versie", + "fr": "Version Fan", + "de": "Fan-Version", + "es": "Versión creada por los fans", + "en": "Fan-Made Version", + "da": "Fan-version", + "fi": "Fanin tekemä versio", + "nb": "Fanlaget versjon", + "sv": "Spelarskapad version", + "pt-br": "Versão dos fãs", + "it": "Versione dei fan", + "zh-cn": "粉丝制作版本", + "ru": "Фанатская версия", + "zh-tw": "粉絲製作版本" + }, + "13958": { + "ja": "VIPメイドver.", + "ko": "VIP 제작 버전", + "nl": "Vip-versie", + "fr": "Version VIP", + "de": "VIP-Version", + "es": "Versión creada por los vips", + "en": "VIP-Made Version", + "da": "VIP-version", + "fi": "VIP:n tekemä versio", + "nb": "VIP-laget versjon", + "sv": "VIP-skapad version", + "pt-br": "Versão dos Vips", + "it": "Versione dei VIP", + "zh-cn": "VIP 制作版本", + "ru": "VIP-версия", + "zh-tw": "VIP 製作版本" + }, + "13976": { + "ja": "バービーver.", + "ko": "바비 버전", + "nl": "Barbie-versie", + "fr": "Version Barbie", + "de": "Barbie-Version", + "es": "Versión Barbie", + "en": "Barbie Version", + "da": "Barbie-version", + "fi": "Barbie-versio", + "nb": "Barbie-versjon", + "sv": "Barbie-version", + "pt-br": "Versão Barbie", + "it": "Versione Barbie", + "zh-cn": "芭比版本", + "ru": "Версия от Барби", + "zh-tw": "芭比版本" + }, + "14002": { + "ja": "ABBA: You Can Dance", + "ko": "ABBA: You Can Dance", + "nl": "ABBA: You Can Dance", + "fr": "ABBA: You Can Dance", + "de": "ABBA: You Can Dance", + "es": "ABBA: You Can Dance", + "en": "ABBA: You Can Dance", + "da": "ABBA: You Can Dance", + "fi": "ABBA: You Can Dance", + "nb": "ABBA: You Can Dance", + "sv": "ABBA: You Can Dance", + "pt-br": "ABBA: You Can Dance", + "it": "ABBA: You Can Dance", + "zh-cn": "《ABBA: You Can Dance》", + "ru": "ABBA: You Can Dance", + "zh-tw": "《ABBA: You Can Dance》" + }, + "14520": { + "ja": "スタントver.", + "ko": "스턴트 버전", + "nl": "Stunt-versie", + "fr": "Version Cascade", + "de": "Stunt-Version", + "es": "Versión acrobática", + "en": "Stunt Version", + "da": "Stuntversion", + "fi": "Stunttiversio", + "nb": "Stunt-versjon", + "sv": "Stuntversion", + "pt-br": "Versão acrobacia", + "it": "Versione stuntman", + "zh-cn": "特技版本", + "ru": "Версия с трюками", + "zh-tw": "特技版本" + }, + "14522": { + "ja": "トマトver.", + "ko": "토마토 버전", + "nl": "Tomaat-versie", + "fr": "Version Tomate", + "de": "Tomaten-Version", + "es": "Versión tomate", + "en": "Tomato Version", + "da": "Tomatversion", + "fi": "Tomaattiversio", + "nb": "Tomatversjon", + "sv": "Tomatversion", + "pt-br": "Versão tomate", + "it": "Versione pomodoro", + "zh-cn": "番茄版本", + "ru": "Томатная версия", + "zh-tw": "番茄版本" + }, + "14524": { + "ja": "バブルガムver.", + "ko": "풍선껌 버전", + "nl": "Kauwgom-versie", + "fr": "Version Chewing-gum", + "de": "Kaugummi-Version", + "es": "Versión chicle", + "en": "Bubblegum Version", + "da": "Tyggegummiversion", + "fi": "Purkkaversio", + "nb": "Tyggegummi-versjon", + "sv": "Tuggummiversion", + "pt-br": "Versão chiclete", + "it": "Versione gomma americana", + "zh-cn": "口香糖版本", + "ru": "Версия со жвачкой", + "zh-tw": "口香糖版本" + }, + "14526": { + "ja": "サブウェイver.", + "ko": "지하철 버전", + "nl": "Metro-versie", + "fr": "Version Métro", + "de": "U-Bahn-Version", + "es": "Versión metro", + "en": "Subway Version", + "da": "Subwayversion", + "fi": "Metroversio", + "nb": "T-bane-versjon", + "sv": "Tunnelbaneversion", + "pt-br": "Versão metrô", + "it": "Versione metropolitana", + "zh-cn": "地铁版本", + "ru": "Версия для метро", + "zh-tw": "地鐵版本" + }, + "14528": { + "ja": "ファイトver.", + "ko": "결투 버전", + "nl": "Vecht-versie", + "fr": "Version Combat", + "de": "Kampf-Version", + "es": "Versión lucha", + "en": "Fight Version", + "da": "Kampversion", + "fi": "Tappeluversio", + "nb": "Kampversjon", + "sv": "Kampversion", + "pt-br": "Versão luta", + "it": "Versione lotta", + "zh-cn": "战斗版本", + "ru": "Боевая версия", + "zh-tw": "戰鬥版本" + }, + "14530": { + "ja": "サイクリングver.", + "ko": "사이클 버전", + "nl": "Fiets-versie", + "fr": "Version Cyclisme", + "de": "Radfahr-Version", + "es": "Versión ciclista", + "en": "Cycling Version", + "da": "Cykelversion", + "fi": "Pyöräilyversio", + "nb": "Sykkelversjon", + "sv": "Cykelversion", + "pt-br": "Versão ciclismo", + "it": "Versione bicicletta", + "zh-cn": "自行车版本", + "ru": "Версия для велосипеда", + "zh-tw": "自行車版本" + }, + "14532": { + "ja": "フットボールver.", + "ko": "축구 버전", + "nl": "Voetbal-versie", + "fr": "Version Football", + "de": "Football-Version", + "es": "Versión futbolera", + "en": "Football Version", + "da": "Fodboldversion", + "fi": "Jalkapalloversio", + "nb": "Fotballversjon", + "sv": "Fotbollsversion", + "pt-br": "Versão futebol", + "it": "Versione calcio", + "zh-cn": "足球版本", + "ru": "Футбольная версия", + "zh-tw": "足球版本" + }, + "14620": { + "ja": "World Cupチャンピオンver.", + "ko": "월드컵 챔피언 버전", + "nl": "Wereldkampioen-versie", + "fr": "Version Champion de la World Cup", + "de": "Weltmeister-Version ", + "es": "Versión del campeón de la World Cup", + "en": "World Cup Champion Version", + "da": "World Cup Champion-version", + "fi": "World Cup -mestarin versio", + "nb": "Verdensmesterversjon", + "sv": "VM-mästarversion", + "pt-br": "Versão do campeão da Copa do Mundo", + "it": "Vers. campione del mondo", + "zh-cn": "世界杯冠军版本", + "ru": "Версия чемпиона мира", + "zh-tw": "世界盃冠軍版本" + }, + "14633": { + "ja": "ラビッツピーチver.", + "ko": "래비드 피치 버전", + "nl": "Rabbid Peach-versie", + "fr": "Version Rabbid Peach", + "de": "Rabbid Peach-Version", + "es": "Versión Rabbid Peach", + "en": "Rabbid Peach Version", + "da": "Version: Rabbid Peach", + "fi": "Rabbid Peach -versio", + "nb": "Rabbid Peach-versjon", + "sv": "Rabbid Peach-version", + "pt-br": "Versão Rabbid Peach", + "it": "Versione Rabbid Peach", + "zh-cn": "疯兔桃花公主版本", + "ru": "Версия от Кролика-Пич", + "zh-tw": "瘋兔碧姬公主版本" + }, + "14688": { + "ja": "Just Dance 2020", + "ko": "Just Dance 2020", + "nl": "Just Dance 2020", + "fr": "Just Dance 2020", + "de": "Just Dance 2020", + "es": "Just Dance 2020", + "en": "Just Dance 2020", + "da": "Just Dance 2020", + "fi": "Just Dance 2020", + "nb": "Just Dance 2020", + "sv": "Just Dance 2020", + "pt-br": "Just Dance 2020", + "it": "Just Dance 2020", + "zh-cn": "《Just Dance 2020》", + "ru": "Just Dance 2020", + "zh-tw": "《Just Dance 2020》" + }, + "15157": { + "ja": "マッドサイエンティストver.", + "ko": "정신나간 과학자 버전", + "nl": "Gekke professor-versie", + "fr": "Version Savant Fou", + "de": "Verrückter-Wissenschaftler-Version", + "es": "Versión científico loco", + "en": "Mad Scientist Version", + "da": "Version: Gal videnskabsmand", + "fi": "Hullu tiedemies -versio", + "nb": "Gal vitenskapsmann-versjon", + "sv": "Galen professor-version", + "pt-br": "Versão Cientista Maluco", + "it": "Versione scienziato pazzo", + "zh-cn": "疯狂科学家版本", + "ru": "Версия безумного ученого", + "zh-tw": "瘋狂科學家版本" + }, + "15158": { + "ja": "タンゴver.", + "ko": "탱고 버전", + "nl": "Tangoversie", + "fr": "Version Tango", + "de": "Tango-Version", + "es": "Versión tango", + "en": "Tango Version", + "da": "Version: Tango", + "fi": "Tangoversio", + "nb": "Tangoversjon", + "sv": "Tangoversion", + "pt-br": "Versão tango", + "it": "Versione tango", + "zh-cn": "探戈版本", + "ru": "Версия танго", + "zh-tw": "探戈版本" + }, + "15159": { + "ja": "1920年代ver.", + "ko": "1920년대 버전", + "nl": "Twenties-versie", + "fr": "Version Années Folles", + "de": "Zwanziger-Jahre-Version", + "es": "Versión años 20", + "en": "Twenties Version", + "da": "20'er-version", + "fi": "20-luvun versio", + "nb": "Tjuetalls-versjon", + "sv": "Tjugotalsversion", + "pt-br": "Versão anos 20", + "it": "Versione anni '20", + "zh-cn": "20 年代版本", + "ru": "Версия двадцатых", + "zh-tw": "20 年代版本" + }, + "15160": { + "ja": "サッシーver.", + "ko": "엽기 버전", + "nl": "Pittige versie", + "fr": "Version Effrontée", + "de": "Freche Version", + "es": "Versión atrevida", + "en": "Sassy Version", + "da": "Version: Næsvis", + "fi": "Kisailuversio", + "nb": "Sassy versjon", + "sv": "Kaxig version", + "pt-br": "Versão com atitude", + "it": "Versione vivace", + "zh-cn": "时髦版本", + "ru": "Дерзкая версия", + "zh-tw": "時髦版本" + }, + "15161": { + "ja": "テニスver.", + "ko": "테니스 버전", + "nl": "Tennisversie", + "fr": "Version Tennis", + "de": "Tennis-Version", + "es": "Versión tenis", + "en": "Tennis Version", + "da": "Version: Tennis", + "fi": "Tennisversio", + "nb": "Tennisversjon", + "sv": "Tennisversion", + "pt-br": "Versão tênis", + "it": "Versione tennis", + "zh-cn": "网球版本", + "ru": "Версия для тенниса", + "zh-tw": "網球版本" + }, + "15162": { + "ja": "かくれんぼver.", + "ko": "숨바꼭질 버전", + "nl": "Verstoppertje-versie", + "fr": "Version Cache-cache", + "de": "Verstecken-Version", + "es": "Versión escondite", + "en": "Hide-And-Seek Version", + "da": "Version: Gemmeleg", + "fi": "Piilosilla-versio", + "nb": "Gjemsel-versjon", + "sv": "Kurragömmaversion", + "pt-br": "Versão esconde-esconde", + "it": "Versione nascondino", + "zh-cn": "捉迷藏版本", + "ru": "Версия для игры в прятки", + "zh-tw": "捉迷藏版本" + }, + "15172": { + "ja": "Jpop", + "ko": "Jpop", + "nl": "Jpop", + "fr": "Jpop", + "de": "Jpop", + "es": "JPop", + "en": "Jpop", + "da": "Jpop", + "fi": "J-pop", + "nb": "Jpop", + "sv": "J-pop", + "pt-br": "Jpop", + "it": "Jpop", + "zh-cn": "Jpop", + "ru": "Jpop", + "zh-tw": "Jpop" + }, + "15173": { + "ja": "Hip-hop", + "ko": "Hip-hop", + "nl": "Hiphop", + "fr": "Hiphop", + "de": "Hiphop", + "es": "Hiphop", + "en": "Hip-hop", + "da": "Hiphop", + "fi": "Hiphop", + "nb": "Hiphop", + "sv": "Hiphop", + "pt-br": "Hiphop", + "it": "Hip hop", + "zh-cn": "Hip-Hop", + "ru": "Hiphop", + "zh-tw": "Hip-Hop" + }, + "15174": { + "ja": "Pop", + "ko": "Pop", + "nl": "Pop", + "fr": "Pop", + "de": "Pop", + "es": "Pop", + "en": "Pop", + "da": "Pop", + "fi": "Pop", + "nb": "Pop", + "sv": "Pop", + "pt-br": "Pop", + "it": "Pop", + "zh-cn": "Pop", + "ru": "Pop", + "zh-tw": "Pop" + }, + "15175": { + "ja": "Dancehall", + "ko": "Dancehall", + "nl": "Dancehall", + "fr": "Dancehall", + "de": "Dancehall", + "es": "Dancehall", + "en": "Dancehall", + "da": "Dancehall", + "fi": "Dancehall", + "nb": "Dansesal", + "sv": "Dancehall", + "pt-br": "Dancehall", + "it": "Dancehall", + "zh-cn": "Dancehall", + "ru": "Dancehall", + "zh-tw": "Dancehall" + }, + "15176": { + "ja": "Country", + "ko": "Country", + "nl": "Country", + "fr": "Country", + "de": "Country", + "es": "Country", + "en": "Country", + "da": "Country", + "fi": "Country", + "nb": "Country", + "sv": "Country", + "pt-br": "Country", + "it": "Country", + "zh-cn": "Country", + "ru": "Country", + "zh-tw": "Country" + }, + "15177": { + "ja": "Middle East", + "ko": "Middle East", + "nl": "Midden-Oosten", + "fr": "Moyen-Orient", + "de": "Nahöstlich", + "es": "Oriente Medio", + "en": "Middle East", + "da": "Mellemøsten", + "fi": "Lähi-itä", + "nb": "Midtøsten", + "sv": "Mellanöstern", + "pt-br": "Oriente Médio", + "it": "Medio Oriente", + "zh-cn": "Middle East", + "ru": "Middle East", + "zh-tw": "Middle East" + }, + "15178": { + "ja": "Brazilian", + "ko": "Brazilian", + "nl": "Braziliaans", + "fr": "Brésilien", + "de": "Brasilianisch", + "es": "Brasileña", + "en": "Brazilian", + "da": "Brasiliansk", + "fi": "Brasilia", + "nb": "Brasiliansk", + "sv": "Brasilianskt", + "pt-br": "Brasileiro", + "it": "Brasiliano", + "zh-cn": "Brazilian", + "ru": "Brazilian", + "zh-tw": "Brazilian" + }, + "15179": { + "ja": "African", + "ko": "African", + "nl": "Afrikaans", + "fr": "Africain", + "de": "Afrikanisch", + "es": "Africana", + "en": "African", + "da": "Afrikansk", + "fi": "Afrikka", + "nb": "Afrikansk", + "sv": "Afrikanskt", + "pt-br": "Africano", + "it": "Africano", + "zh-cn": "African", + "ru": "African", + "zh-tw": "African" + }, + "15180": { + "ja": "Eastern Europe", + "ko": "Eastern Europe", + "nl": "Oost-Europa", + "fr": "Europe de l'Est", + "de": "Osteuropäisch", + "es": "Europa del Este", + "en": "Eastern Europe", + "da": "Østeuropa", + "fi": "Itä-Eurooppa", + "nb": "Øst-Europa", + "sv": "Östeuropa", + "pt-br": "Leste Europeu", + "it": "Europa orientale", + "zh-cn": "Eastern Europe", + "ru": "Eastern Europe", + "zh-tw": "Eastern Europe" + }, + "15181": { + "ja": "Alternate", + "ko": "Alternate", + "nl": "Alternatief", + "fr": "Alternative", + "de": "Alternativ", + "es": "Alternativa", + "en": "Alternate", + "da": "Alternative", + "fi": "Vaihtoehtoinen", + "nb": "Alternativ", + "sv": "Alternativa", + "pt-br": "Alternativa", + "it": "Alternativa", + "zh-cn": "Alternate", + "ru": "Alternate", + "zh-tw": "Alternate" + }, + "15182": { + "ja": "Sing along", + "ko": "Sing Along", + "nl": "Meezingen", + "fr": "Karaoké", + "de": "Mitsingen", + "es": "Cantar juntos", + "en": "Sing along", + "da": "Syng med", + "fi": "Yhteislaulu", + "nb": "Singalong", + "sv": "Sjung med", + "pt-br": "Cante junto", + "it": "Karaoke", + "zh-cn": "Sing Along", + "ru": "Sing Along", + "zh-tw": "Sing Along" + }, + "15183": { + "ja": "Sweat", + "ko": "Sweat", + "nl": "Sweat", + "fr": "Sweat", + "de": "Sweat", + "es": "Sweat", + "en": "Sweat", + "da": "Sweat Mode", + "fi": "Sweat", + "nb": "Sweat", + "sv": "Sweat", + "pt-br": "Sweat", + "it": "Sweat", + "zh-cn": "Sweat", + "ru": "Sweat", + "zh-tw": "Sweat" + }, + "15184": { + "ja": "60s", + "ko": "60s", + "nl": "Jaren 60", + "fr": "Années 60", + "de": "60er", + "es": "Los 60", + "en": "60s", + "da": "60'erne", + "fi": "60-luku", + "nb": "60-talls", + "sv": "60-tal", + "pt-br": "Anos 60", + "it": "Anni '60", + "zh-cn": "60s", + "ru": "60s", + "zh-tw": "60s" + }, + "15185": { + "ja": "70s", + "ko": "70s", + "nl": "Jaren 70", + "fr": "Années 70", + "de": "70er", + "es": "Los 70", + "en": "70s", + "da": "70'erne", + "fi": "70-luku", + "nb": "70-talls", + "sv": "70-tal", + "pt-br": "Anos 70", + "it": "Anni '70", + "zh-cn": "70s", + "ru": "70s", + "zh-tw": "70s" + }, + "15186": { + "ja": "90s", + "ko": "90s", + "nl": "Jaren 90", + "fr": "Années 90", + "de": "90er", + "es": "Los 90 ", + "en": "90s", + "da": "90'erne", + "fi": "90-luku", + "nb": "90-talls", + "sv": "90-tal", + "pt-br": "Anos 90", + "it": "Anni '90", + "zh-cn": "90s", + "ru": "90s", + "zh-tw": "90s" + }, + "15187": { + "ja": "2000s", + "ko": "2000s", + "nl": "Jaren 2000", + "fr": "Années 2000", + "de": "2000er", + "es": "Los 2000", + "en": "2000s", + "da": "2000'erne", + "fi": "2000-luku", + "nb": "2000-talls", + "sv": "00-tal", + "pt-br": "Anos 2000", + "it": "2000", + "zh-cn": "2000s", + "ru": "2000s", + "zh-tw": "2000s" + }, + "15188": { + "ja": "Oldies", + "ko": "Oldies", + "nl": "Gouwe ouwe", + "fr": "Rétro", + "de": "Oldies", + "es": "De siempre", + "en": "Oldies", + "da": "Klassikere", + "fi": "Vanhat klassikot", + "nb": "Klassikere", + "sv": "Gamla godingar", + "pt-br": "Antigas", + "it": "Vecchie glorie", + "zh-cn": "Oldies", + "ru": "Oldies", + "zh-tw": "Oldies" + }, + "15189": { + "ja": "Romantic", + "ko": "Romantic", + "nl": "Romantisch", + "fr": "Romantique", + "de": "Romantisch", + "es": "Románticas", + "en": "Romantic", + "da": "Romantisk", + "fi": "Romanttinen", + "nb": "Romantisk", + "sv": "Romantiskt", + "pt-br": "Românticas", + "it": "Romantici", + "zh-cn": "Romantic", + "ru": "Romantic", + "zh-tw": "Romantic" + }, + "15190": { + "ja": "Tribal", + "ko": "Tribal", + "nl": "Tribaal", + "fr": "Tribal", + "de": "Stammesmusik", + "es": "Tribales", + "en": "Tribal", + "da": "Stammemusik", + "fi": "Heimot", + "nb": "Stamme", + "sv": "Etno", + "pt-br": "Tribais", + "it": "Tribali", + "zh-cn": "Tribal", + "ru": "Tribal", + "zh-tw": "Tribal" + }, + "15191": { + "ja": "Party", + "ko": "Party", + "nl": "Party", + "fr": "Fête", + "de": "Party", + "es": "Fiesta", + "en": "Party", + "da": "Party", + "fi": "Bileet", + "nb": "Party", + "sv": "Fest", + "pt-br": "Festa", + "it": "Party", + "zh-cn": "Party", + "ru": "Party", + "zh-tw": "Party" + }, + "15192": { + "ja": "Family", + "ko": "Family", + "nl": "Gezin", + "fr": "Famille", + "de": "Familie", + "es": "Familiares", + "en": "Family", + "da": "Familie", + "fi": "Perhe", + "nb": "Familie", + "sv": "Familj", + "pt-br": "Familiares", + "it": "Famiglie", + "zh-cn": "Family", + "ru": "Family", + "zh-tw": "Family" + }, + "15193": { + "ja": "Historical", + "ko": "Historical", + "nl": "Historisch", + "fr": "Historique", + "de": "Historisch", + "es": "Históricas", + "en": "Historical", + "da": "Historisk", + "fi": "Historia", + "nb": "Historisk", + "sv": "Historiskt", + "pt-br": "Históricas", + "it": "Storici", + "zh-cn": "Historical", + "ru": "Historical", + "zh-tw": "Historical" + }, + "15194": { + "ja": "Cartoon", + "ko": "Cartoon", + "nl": "Tekenfilm", + "fr": "Dessin animé", + "de": "Zeichentrick", + "es": "Dibujos", + "en": "Cartoon", + "da": "Tegnefilm", + "fi": "Piirretyt", + "nb": "Tegneserie", + "sv": "Tecknat", + "pt-br": "Desenhos", + "it": "Cartoni animati", + "zh-cn": "Cartoon", + "ru": "Cartoon", + "zh-tw": "Cartoon" + }, + "15195": { + "ja": "Food", + "ko": "Food", + "nl": "Eten", + "fr": "Nourriture", + "de": "Lebensmittel", + "es": "Comida", + "en": "Food", + "da": "Mad", + "fi": "Ruoka", + "nb": "Mat", + "sv": "Mat", + "pt-br": "Comida", + "it": "Cibo", + "zh-cn": "Food", + "ru": "Food", + "zh-tw": "Food" + }, + "15196": { + "ja": "Wacky", + "ko": "Wacky", + "nl": "Grappig", + "fr": "Délire", + "de": "Verrückt", + "es": "Absurdas", + "en": "Wacky", + "da": "Skørt", + "fi": "Hauska", + "nb": "Sprøtt", + "sv": "Tokigt", + "pt-br": "Doidinhas", + "it": "Stravaganti", + "zh-cn": "Wacky", + "ru": "Wacky", + "zh-tw": "Wacky" + }, + "15197": { + "ja": "Artsy", + "ko": "Artsy", + "nl": "Kunstzinnig", + "fr": "Artistique", + "de": "Künstlerisch", + "es": "Artísticas", + "en": "Artsy", + "da": "Kunstnerisk", + "fi": "Taiteellinen", + "nb": "Kunstnerisk", + "sv": "Konstnärligt", + "pt-br": "Artísticas", + "it": "Artistici", + "zh-cn": "Artsy", + "ru": "Artsy", + "zh-tw": "Artsy" + }, + "15198": { + "ja": "Cute", + "ko": "Cute", + "nl": "Schattig", + "fr": "Mignon", + "de": "Süß", + "es": "Chulas", + "en": "Cute", + "da": "Sødt", + "fi": "Söpö", + "nb": "Søtt", + "sv": "Gulligt", + "pt-br": "Fofas", + "it": "Teneri", + "zh-cn": "Cute", + "ru": "Cute", + "zh-tw": "Cute" + }, + "15275": { + "ja": "Solo", + "ko": "Solo", + "nl": "Solo", + "fr": "Solo", + "de": "Solo", + "es": "Solo", + "en": "Solo", + "da": "Solo", + "fi": "Soolo", + "nb": "Solo", + "sv": "Solo", + "pt-br": "Solo", + "it": "Assolo", + "zh-cn": "Solo", + "ru": "Solo", + "zh-tw": "Solo" + }, + "15276": { + "ja": "Duet", + "ko": "Duet", + "nl": "Duet", + "fr": "Duo", + "de": "Duett", + "es": "Dueto", + "en": "Duet", + "da": "Duet", + "fi": "Duetto", + "nb": "Duett", + "sv": "Duett", + "pt-br": "Dueto", + "it": "Duetto", + "zh-cn": "Duet", + "ru": "Duet", + "zh-tw": "Duet" + }, + "15277": { + "ja": "Trio", + "ko": "Trio", + "nl": "Trio", + "fr": "Trio", + "de": "Trio", + "es": "Trío", + "en": "Trio", + "da": "Trio", + "fi": "Trio", + "nb": "Trio", + "sv": "Trio", + "pt-br": "Trio", + "it": "Trio", + "zh-cn": "Trio", + "ru": "Trio", + "zh-tw": "Trio" + }, + "15278": { + "ja": "Quartet", + "ko": "Quartet", + "nl": "Kwartet", + "fr": "Quatuor", + "de": "Quartett", + "es": "Cuarteto", + "en": "Quartet", + "da": "Kvartet", + "fi": "Kvartetti", + "nb": "Kvartett", + "sv": "Kvartett", + "pt-br": "Quarteto", + "it": "Quartetto", + "zh-cn": "Quartet", + "ru": "Quartet", + "zh-tw": "Quartet" + }, + "15284": { + "ja": "Kpop", + "ko": "Kpop", + "nl": "Kpop", + "fr": "Kpop", + "de": "K-Pop", + "es": "Kpop", + "en": "Kpop", + "da": "Kpop", + "fi": "K-pop", + "nb": "Kpop", + "sv": "K-pop", + "pt-br": "Kpop", + "it": "Kpop", + "zh-cn": "Kpop", + "ru": "Kpop", + "zh-tw": "Kpop" + }, + "15285": { + "ja": "Easy", + "ko": "Easy", + "nl": "Makkelijk", + "fr": "Facile", + "de": "Leicht", + "es": "Fácil", + "en": "Easy", + "da": "Let", + "fi": "Helppo", + "nb": "Lett", + "sv": "Lätt", + "pt-br": "Fácil", + "it": "Facile", + "zh-cn": "Easy", + "ru": "Easy", + "zh-tw": "Easy" + }, + "15286": { + "ja": "Medium", + "ko": "Medium", + "nl": "Medium", + "fr": "Moyen", + "de": "Mittel", + "es": "Normal", + "en": "Medium", + "da": "Medium", + "fi": "Keskitaso", + "nb": "Middels", + "sv": "Medel", + "pt-br": "Média", + "it": "Normale", + "zh-cn": "Medium", + "ru": "Medium", + "zh-tw": "Medium" + }, + "15287": { + "ja": "Hard", + "ko": "Hard", + "nl": "Moeilijk", + "fr": "Difficile", + "de": "Schwer", + "es": "Difícil", + "en": "Hard", + "da": "Svær", + "fi": "Vaikea", + "nb": "Vanskelig", + "sv": "Svårt", + "pt-br": "Difícil", + "it": "Difficile", + "zh-cn": "Hard", + "ru": "Hard", + "zh-tw": "Hard" + }, + "15288": { + "ja": "Extreme", + "ko": "Extreme", + "nl": "Extreem", + "fr": "Extrême", + "de": "Extrem", + "es": "Extrema", + "en": "Extreme", + "da": "Ekstrem", + "fi": "Extreme", + "nb": "Ekstremt", + "sv": "Extremt", + "pt-br": "Extrema", + "it": "Estremo", + "zh-cn": "Extreme", + "ru": "Extreme", + "zh-tw": "Extreme" + }, + "15289": { + "ja": "Low", + "ko": "Low", + "nl": "Laag", + "fr": "Faible", + "de": "Niedrig", + "es": "Baja", + "en": "Low", + "da": "Lav", + "fi": "Matala", + "nb": "Lav", + "sv": "Låg", + "pt-br": "Baixo", + "it": "Bassa", + "zh-cn": "Low", + "ru": "Low", + "zh-tw": "Low" + }, + "15290": { + "ja": "Moderate", + "ko": "Moderate", + "nl": "Gemiddeld", + "fr": "Modéré", + "de": "Moderat", + "es": "Moderada", + "en": "Moderate", + "da": "Moderat", + "fi": "Keskitaso", + "nb": "Moderat", + "sv": "Medel", + "pt-br": "Moderado", + "it": "Moderata", + "zh-cn": "Moderate", + "ru": "Moderate", + "zh-tw": "Moderate" + }, + "15291": { + "ja": "Intense", + "ko": "Intense", + "nl": "Intens", + "fr": "Intense", + "de": "Intensiv", + "es": "Intensa", + "en": "Intense", + "da": "Intens", + "fi": "Rankka", + "nb": "Intens", + "sv": "Intensivt", + "pt-br": "Intenso", + "it": "Intensa", + "zh-cn": "Intense", + "ru": "Intense", + "zh-tw": "Intense" + }, + "15299": { + "ja": "Fresh", + "ko": "Fresh", + "nl": "Cool", + "fr": "Stylé", + "de": "Fresh", + "es": "Desenfadadas", + "en": "Fresh", + "da": "Cool", + "fi": "Freesi", + "nb": "Ferskt", + "sv": "Coolt", + "pt-br": "Maneiro", + "it": "Stile", + "zh-cn": "Fresh", + "ru": "Fresh", + "zh-tw": "Fresh" + }, + "15300": { + "ja": "Drama", + "ko": "Drama", + "nl": "Drama", + "fr": "Émotion", + "de": "Drama", + "es": "Emotivas", + "en": "Drama", + "da": "Drama", + "fi": "Draama", + "nb": "Drama", + "sv": "Dramatiskt", + "pt-br": "Dramático", + "it": "Drammatico", + "zh-cn": "Drama", + "ru": "Drama", + "zh-tw": "Drama" + }, + "15453": { + "ja": "オルタネイトver.", + "ko": "대체 안무 버전", + "nl": "Alternatieve versie", + "fr": "Version Alternative", + "de": "Alternativ-Version", + "es": "Versión Alternativa", + "en": "Alternate Version", + "da": "Alternativ version", + "fi": "Vaihtoehtoinen versio", + "nb": "Alternativ versjon", + "sv": "Alternativ version", + "pt-br": "Versão Alternativa", + "it": "Versione alternativa", + "zh-cn": "另类版本", + "ru": "Альтернативная версия", + "zh-tw": "另類版本" + }, + "15490": { + "ja": "合唱", + "ko": "따라 부르기", + "nl": "Meezingen", + "fr": "Karaoké", + "de": "Mitsingen", + "es": "Cantar juntos", + "en": "Sing-Along", + "da": "Syng med", + "fi": "Yhteislaulu", + "nb": "Singalong", + "sv": "Sjung med", + "pt-br": "Cante junto", + "it": "Karaoke", + "zh-cn": "Sing Along", + "ru": "На подпевках", + "zh-tw": "Sing Along" + }, + "20000514": { + "ja": "スネークver.", + "ko": "뱀 버전", + "nl": "Slangenversie", + "fr": "Version Serpent", + "de": "Schlangen-Version", + "es": "Versión serpiente", + "en": "Snake Version", + "da": "Slangeversion", + "fi": "Käärmeversio", + "nb": "Slangeversjon", + "sv": "Ormversion", + "pt-br": "Versão serpente", + "it": "Versione serpente", + "zh-cn": "蛇版本", + "ru": "Змеиная версия", + "zh-tw": "蛇版本" + }, + "20000515": { + "ja": "ヴォーギングver.", + "ko": "슈퍼 모델 버전", + "nl": "Trendversie", + "fr": "Version Vogue", + "de": "Voguing-Version", + "es": "Versión vogue", + "en": "Voguing Version", + "da": "Vogue-version", + "fi": "Voguing-versio", + "nb": "Vogue-versjon", + "sv": "Modeversion", + "pt-br": "Versão vogue", + "it": "Versione voguing", + "zh-cn": "Voguing 版本", + "ru": "Версия для подиума", + "zh-tw": "Voguing 版本" + }, + "20000516": { + "ja": "女神ver.", + "ko": "여신 버전", + "nl": "Godinnenversie", + "fr": "Version Déesse", + "de": "Göttinnen-Version", + "es": "Versión diosa", + "en": "Goddess Version", + "da": "Gudindeversion", + "fi": "Jumalatarversio", + "nb": "Gudinneversjon", + "sv": "Gudinneversion", + "pt-br": "Versão Deusa", + "it": "Versione dea", + "zh-cn": "女神版本", + "ru": "Божественная версия", + "zh-tw": "女神版本" + }, + "20000517": { + "ja": "ケイブマンver.", + "ko": "원시인 버전", + "nl": "Holbewonerversie", + "fr": "Version Homme des cavernes", + "de": "Höhlenmensch-Version", + "es": "Versión cavernícola", + "en": "Caveman Version", + "da": "Caveman-version", + "fi": "Luolamiesversio", + "nb": "Huleboerversjon", + "sv": "Grottversion", + "pt-br": "Versão Homem das Cavernas", + "it": "Versione cavernicolo", + "zh-cn": "洞穴人版本", + "ru": "Пещерная версия", + "zh-tw": "洞穴人版本" + }, + "20000882": { + "ja": "ラインダンスver.", + "ko": "라인 댄스 버전", + "nl": "Linedance-versie", + "fr": "Version Square Dance", + "de": "Line-Dance-Version", + "es": "Versión baile en línea", + "en": "Line Dance Version", + "da": "Linjedansversion", + "fi": "Rivitanssiversio", + "nb": "Linedance-versjon", + "sv": "Linedanceversion", + "pt-br": "Versão trenzinho", + "it": "Versione line dance", + "zh-cn": "排舞版本", + "ru": "Версия для танца в линию", + "zh-tw": "排舞版本" + }, + "20000910": { + "ja": "Geek", + "ko": "Geek", + "nl": "Geek", + "fr": "Geek", + "de": "Computerfreak", + "es": "Raritos", + "en": "Geek", + "da": "Nørd", + "fi": "Nörtti", + "nb": "Nerd", + "sv": "Nörd", + "pt-br": "Geek", + "it": "Geek", + "zh-cn": "Geek", + "ru": "Geek", + "zh-tw": "Geek" + }, + "20000911": { + "ja": "Monster", + "ko": "Monster", + "nl": "Monster", + "fr": "Monstre", + "de": "Monster", + "es": "Monstruo", + "en": "Monster", + "da": "Monster", + "fi": "Hirviö", + "nb": "Monster", + "sv": "Monster", + "pt-br": "Monstro", + "it": "Mostri", + "zh-cn": "Monster", + "ru": "Monster", + "zh-tw": "Monster" + }, + "20000912": { + "ja": "Vegetable", + "ko": "Vegetable", + "nl": "Groenten", + "fr": "Légume", + "de": "Gemüse", + "es": "Verdura", + "en": "Vegetable", + "da": "Grøntsag", + "fi": "Vihannes", + "nb": "Grønnsak", + "sv": "Grönsaker", + "pt-br": "Vegetal", + "it": "Verdura", + "zh-cn": "Vegetable", + "ru": "Vegetable", + "zh-tw": "Vegetable" + }, + "20001959": { + "ja": "Robot", + "ko": "Robot", + "nl": "Robot", + "fr": "Robot", + "de": "Roboter", + "es": "Robot", + "en": "Robot", + "da": "Robot", + "fi": "Robotti", + "nb": "Robot", + "sv": "Robot", + "pt-br": "Robô", + "it": "Robot", + "zh-cn": "Robot", + "ru": "Robot", + "zh-tw": "Robot" + }, + "20001960": { + "ja": "Countryside", + "ko": "Countryside", + "nl": "Landelijk", + "fr": "Campagne", + "de": "Natur", + "es": "El campo", + "en": "Countryside", + "da": "På landet", + "fi": "Maaseutu", + "nb": "Bygda", + "sv": "Landsbygd", + "pt-br": "Interior", + "it": "Campagna", + "zh-cn": "Countryside", + "ru": "Countryside", + "zh-tw": "Countryside" + }, + "20001963": { + "ja": "City", + "ko": "City", + "nl": "Stad", + "fr": "Ville", + "de": "Stadt", + "es": "Ciudad", + "en": "City", + "da": "By", + "fi": "Kaupunki", + "nb": "By", + "sv": "Stad", + "pt-br": "Cidade", + "it": "Città", + "zh-cn": "City", + "ru": "City", + "zh-tw": "City" + }, + "20001982": { + "ja": "Just Dance 2019", + "ko": "Just Dance 2019", + "nl": "Just Dance 2019", + "fr": "Just Dance 2019", + "de": "Just Dance 2019", + "es": "Just Dance 2019", + "en": "Just Dance 2019", + "da": "Just Dance 2019", + "fi": "Just Dance 2019", + "nb": "Just Dance 2019", + "sv": "Just Dance 2019", + "pt-br": "Just Dance 2019", + "it": "Just Dance 2019", + "zh-cn": "Just Dance 2019", + "ru": "Just Dance 2019", + "zh-tw": "Just Dance 2019" + }, + "20002121": { + "ja": "ビリーver.", + "ko": "Billie 버전", + "nl": "Billie-versie", + "fr": "Version Billie", + "de": "Billie-Version", + "es": "Versión Billie", + "en": "Billie Version", + "da": "Billie-version", + "fi": "Billie-versio", + "nb": "Billie-versjon", + "sv": "Billie-version", + "pt-br": "Versão Billie", + "it": "Versione Billie", + "zh-cn": "Billie 版本", + "ru": "Версия от Billie", + "zh-tw": "Billie 版本" + }, + "20002261": { + "ja": "Just Dance 2021", + "ko": "Just Dance 2021", + "nl": "Just Dance 2021", + "fr": "Just Dance 2021", + "de": "Just Dance 2021", + "es": "Just Dance 2021", + "en": "Just Dance 2021", + "da": "Just Dance 2021", + "fi": "Just Dance 2021", + "nb": "Just Dance 2021", + "sv": "Just Dance 2021", + "pt-br": "Just Dance 2021", + "it": "Just Dance 2021", + "zh-cn": "Just Dance 2021", + "ru": "Just Dance 2021", + "zh-tw": "Just Dance 2021" + }, + "20002277": { + "ja": "Kids mode", + "ko": "Kids mode", + "nl": "Kids-modus", + "fr": "Mode Kids", + "de": "Kids-Modus", + "es": "Modo Kids", + "en": "Kids mode", + "da": "Kids-spiltype", + "fi": "Kids-tila", + "nb": "Kids-modus", + "sv": "Kids-läge", + "pt-br": "Modo Kids", + "it": "Modalità Kids", + "zh-cn": "Kids mode", + "ru": "Kids mode", + "zh-tw": "Kids mode" + }, + "20002715": { + "ja": "サンバver.", + "ko": "삼바 버전", + "nl": "Samba-versie", + "fr": "Version Samba", + "de": "Samba-Version", + "es": "Versión Samba", + "en": "Samba Version", + "da": "Samba-version", + "fi": "Sambaversio", + "nb": "Sambaversjon", + "sv": "Sambaversion", + "pt-br": "Versão samba", + "it": "Versione samba", + "zh-cn": "桑巴版本", + "ru": "Самба-версия", + "zh-tw": "森巴版本" + }, + "20002716": { + "ja": "フェアリーver.", + "ko": "요정 버전", + "nl": "Elfachtige versie", + "fr": "Version Féerique", + "de": "Märchen-Version", + "es": "Versión Hada", + "en": "Fairy Version", + "da": "Fe-version", + "fi": "Keijukaisversio", + "nb": "Feversjon", + "sv": "Feversion", + "pt-br": "Versão fada", + "it": "Versione fatata", + "zh-cn": "童话版本", + "ru": "Сказочная версия", + "zh-tw": "仙子版本" + }, + "20002717": { + "ja": "ヤミーver.", + "ko": "냠냠 버전", + "nl": "Jammie-versie", + "fr": "Version Gourmande", + "de": "Njam njam-Version", + "es": "Versión Jugosa", + "en": "Yummy Version", + "da": "Namnam-version", + "fi": "Namiversio", + "nb": "Nam-nam-versjon", + "sv": "Smarrig version", + "pt-br": "Versão apetitosa", + "it": "Versione golosa", + "zh-cn": "美味版本", + "ru": "Вкусная версия", + "zh-tw": "美味版本" + }, + "20002836": { + "ja": "Flying Steps Danceによる限定コレオのVIPメイド", + "ko": "VIP 버전 - Flying Steps Dance에서 창작한 전용 안무", + "nl": "Speciaal gemaakt met exclusieve choreografie van Flying Steps Dance", + "fr": "Version VIP avec la choré exclusive de Flying Steps Dance", + "de": "VIP-Version mit exklusiver Choreo von Flying Steps Dance", + "es": "Creada por los vips con coreografía exclusiva de Flying Steps Dance", + "en": "VIP-made with exclusive choreo from Flying Steps Dance", + "da": "VIP-kreeret med eksklusiv koreografi fra Flying Steps Dance", + "fi": "VIP-versio Flying Steps Dance -ryhmän upealla koreografialla", + "nb": "VIP-innhold med eksklusiv koreografi av Flying Steps Dance", + "sv": "VIP-skapad, med en exklusiv koreografi av Flying Steps Dance", + "pt-br": "VIP-Com coreografia exclusiva por Flying Steps Dance", + "it": "Versione VIP con coreografia esclusiva dei Flying Steps Dance", + "zh-cn": "VIP制作,Flying Steps Dance独家舞蹈", + "ru": "VIP-версия с эксклюзивной хореографией от Flying Steps Dance", + "zh-tw": "搭配 Flying Steps Dance 獨家編舞的 VIP 特製內容" + } +} diff --git a/justdanceonline-main/local_settings/pages/dancerprofile.json b/justdanceonline-main/local_settings/pages/dancerprofile.json new file mode 100644 index 0000000000000000000000000000000000000000..b8c4773ab081cf6fe668510c5f4266d0946e2ff8 --- /dev/null +++ b/justdanceonline-main/local_settings/pages/dancerprofile.json @@ -0,0 +1,220 @@ +{ + "__class": "JD_CarouselContent", + "categories": [ + { + "__class": "Category", + "title": "Dancer Cards", + "act": "ui_carousel", + "isc": "grp_row", + "items": [ + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselDancerCardRequest", + "isSaveItem": true, + "uuid": "f02934b9-647d-46b3-9d8f-d9983e7cfd7d", + "actions": [] + } + }, + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselDancerCardRequest", + "main": true, + "uuid": "0ff6ad3b-a0fb-4253-b12a-ef01e813874f", + "actions": [ + { + "__class": "Action", + "bannerType": "dancer", + "title": "Change Avatar", + "type": "change-avatar" + }, + { + "__class": "Action", + "bannerType": "dancer", + "title": "Change Skin", + "type": "change-skin" + }, + { + "__class": "Action", + "bannerType": "dancer", + "title": "Edit Nickname", + "type": "edit-nickname" + } + ] + } + }, + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselDancerCardRequest", + "uuid": "a22c81fd-4e56-439c-a42d-74d17c55a6c0", + "actions": [ + { + "__class": "Action", + "bannerType": "dancer", + "title": "Set as Active", + "type": "set-as-main" + }, + { + "__class": "Action", + "bannerType": "dancer", + "title": "Change Avatar", + "type": "change-avatar" + }, + { + "__class": "Action", + "bannerType": "dancer", + "title": "Change Skin", + "type": "change-skin" + }, + { + "__class": "Action", + "bannerType": "dancer", + "title": "Edit Nickname", + "type": "edit-nickname" + }, + { + "__class": "Action", + "bannerType": "dancer", + "title": "Delete", + "type": "delete-dancer-card" + } + ] + } + }, + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselDancerCardRequest", + "create": true, + "uuid": "69478a6a-20ad-47ee-9cfa-c42af702984a", + "actions": [ + { + "__class": "Action", + "bannerContext": "CONTEXT_ADD", + "bannerType": "dancer", + "title": "New Dancer Card", + "type": "create-dancer-card" + } + ] + } + } + ] + }, + { + "__class": "Category", + "title": "Friends", + "act": "ui_carousel", + "isc": "grp_row", + "items": [] + }, + { + "__class": "Category", + "title": "Autodances", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-time", + "items": [ + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselUgcRequest", + "actionListNameSelf": "localautodance", + "actionListNameUpsell": "upsell", + "display": "ugc", + "maxCount": 30, + "offline": true, + "type": "ad", + "uuid": "7f6445f1-f8fa-4a58-b3a6-e5f4fe4e337a", + "actions": [ + { + "__class": "Action", + "bannerType": "AUTODANCE_LOCAL", + "title": "Share to Video Galleries", + "type": "share-autodance-jdtv" + }, + { + "__class": "Action", + "bannerType": "AUTODANCE_LOCAL", + "title": "Share to Facebook & JDTV", + "type": "share-autodance-jdtv-facebook" + }, + { + "__class": "Action", + "bannerType": "AUTODANCE_LOCAL", + "title": "Delete", + "type": "delete-autodance" + } + ] + } + } + ] + }, + { + "__class": "Category", + "title": "Just Dance Machine", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-time", + "items": [ + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselUgcRequest", + "actionListNameSelf": "localdancemachine", + "actionListNameUpsell": "upsell", + "display": "ugc", + "maxCount": 30, + "offline": true, + "playerPid": true, + "type": "dm", + "uuid": "ca68227e-4b0b-4703-8421-f33d1cae5df2", + "actions": [ + { + "__class": "Action", + "bannerType": "autodance_jdm_local", + "title": "Share to Video Galleries", + "type": "share-autodance-jdtv" + }, + { + "__class": "Action", + "bannerType": "autodance_jdm_local", + "title": "Share to Facebook & JDTV", + "type": "share-autodance-jdtv-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance_jdm_local", + "title": "Delete", + "type": "delete-autodance" + } + ] + } + } + ] + }, + { + "__class": "Category", + "title": "Photos", + "act": "ui_carousel", + "isc": "grp_row", + "items": [ + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselPhotoRequest", + "actions": [ + { + "__class": "Action", + "bannerType": "PHOTO", + "title": "Delete photo", + "type": "photo-delete" + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/pages/ftue.json b/justdanceonline-main/local_settings/pages/ftue.json new file mode 100644 index 0000000000000000000000000000000000000000..f0d307b0ce4e8bfe4022c32c8fe1ff389183d3d7 --- /dev/null +++ b/justdanceonline-main/local_settings/pages/ftue.json @@ -0,0 +1,72 @@ +{ + "__class": "JD_CarouselContent", + "categories": [{ + "__class": "Category", + "title": "Just Dance 2018", + "act": "ui_carousel", + "isc": "grp_row", + "items": [{ + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselMapRequest", + "actionListName": "ftue", + "actionListNameUpsell": "_None", + "excludedTags": ["Alternate", "DOUBLESCORING", "KidsOnly"], + "includedTags": ["Main"], + "offline": true, + "order": "title", + "originalJDVersion": 2018, + "uuid": "20159b9f-c439-4745-965f-a56c19e43c00" + } + }] + }, { + "__class": "Category", + "title": "Coming up next!", + "act": "ui_carousel", + "isc": "grp_row", + "items": [{ + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselItemRequest", + "itemList": "teaser_ftue", + "offline": true, + "uuid": "80846f30-94d0-41e1-ad14-8b91565e6140" + } + }] + }], + "actionLists": { + "ftue": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance", + "type": "play-song" + }], + "itemType": "map" + }, + "teaser_ftue": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "bannerType": "TEASER", + "title": "", + "type": "teaser" + }], + "itemType": "map" + } + }, + "songItemLists": { + "teaser_ftue": { + "__class": "SongItemList", + "actionListName": "teaser_ftue", + "list": [{ + "__class": "SongItem", + "act": "ui_component_base", + "isc": "teaser_item" + }] + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/pages/jdtv.json b/justdanceonline-main/local_settings/pages/jdtv.json new file mode 100644 index 0000000000000000000000000000000000000000..5ebe7602516ab08b602ecf406c808ca51ccdd0a6 --- /dev/null +++ b/justdanceonline-main/local_settings/pages/jdtv.json @@ -0,0 +1,21878 @@ +{ + "__class": "JD_CarouselContent", + "categories": [ + { + "__class": "Category", + "title": "Just Dance Official", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-time", + "items": [ + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "14553292-1e54-4296-a449-63814152eb28", + "title": "Dance Lesson: Bailar by Deorro ft. Elvis Crespo", + "description": "We’re back with another Dance Lesson. Learn the choreo from fan-favorite Bailar!", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/14553292-1e54-4296-a449-63814152eb28/en/autodance.mp4/9a1d20098bd04dfafa3f6e22d3c229ab.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/14553292-1e54-4296-a449-63814152eb28/en/autodance.webm/d371e6bdc0bfd611085b964cfde899d3.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/14553292-1e54-4296-a449-63814152eb28/en/autodance_t0_m1.jpg/3b7914b0009220c914574eab32250c0e.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/14553292-1e54-4296-a449-63814152eb28/en/autodance_t0_m2.jpg/3b7914b0009220c914574eab32250c0e.jpg", + "__class": "UGCContent" + } + }, + "likes": 80572, + "time": 1502359200, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "4e92b3dc-3b4d-4759-bd01-6bdd8b50e82f", + "title": "A Just Dance Story: Avery", + "description": "Join fan Avery Price as she takes us through her Just Dance journey.", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/4e92b3dc-3b4d-4759-bd01-6bdd8b50e82f/en/autodance.mp4/1e21158a528a6c3aa7f3a854b666a697.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/4e92b3dc-3b4d-4759-bd01-6bdd8b50e82f/en/autodance.webm/164ee856b99326b8d4f885c1899fb1d8.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/4e92b3dc-3b4d-4759-bd01-6bdd8b50e82f/en/autodance_t0_m1.jpg/bc532b3abc8b52925cb416bcf03a36f9.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/4e92b3dc-3b4d-4759-bd01-6bdd8b50e82f/en/autodance_t0_m2.jpg/bc532b3abc8b52925cb416bcf03a36f9.jpg", + "__class": "UGCContent" + } + }, + "likes": 48020, + "time": 1502164800, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "859672f0-8b21-4f12-b0ba-61a3d1643ba9", + "title": "Top Autodance: Kids Edition", + "description": "Kids take the spotlight in this Autodance!", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/859672f0-8b21-4f12-b0ba-61a3d1643ba9/en/autodance.mp4/34a10131afa9db0d2f8fd71e749c33cb.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/859672f0-8b21-4f12-b0ba-61a3d1643ba9/en/autodance.webm/88a5c6112ba51937a8864f6553bc53e9.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/859672f0-8b21-4f12-b0ba-61a3d1643ba9/en/autodance_t0_m1.jpg/44ef18b126726d2b2e5eacedae6d95e3.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/859672f0-8b21-4f12-b0ba-61a3d1643ba9/en/autodance_t0_m2.jpg/44ef18b126726d2b2e5eacedae6d95e3.jpg", + "__class": "UGCContent" + } + }, + "likes": 29295, + "time": 1499155200, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "eceb5823-449d-4ede-8df2-5059b4639e1b", + "title": "A Just Dance Story: Manu", + "description": "Join fan Manu Rodriguez as he takes\nus through his Just Dance journey.", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/eceb5823-449d-4ede-8df2-5059b4639e1b/en/autodance.mp4/974f346bec4339e0209393cc4afb1971.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/eceb5823-449d-4ede-8df2-5059b4639e1b/en/autodance.webm/2c5d610450458d4c1faefa5202d4f622.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/eceb5823-449d-4ede-8df2-5059b4639e1b/en/autodance_t0_m1.jpg/bbf51c305d46d6d8db127477986a5973.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/eceb5823-449d-4ede-8df2-5059b4639e1b/en/autodance_t0_m2.jpg/bbf51c305d46d6d8db127477986a5973.jpg", + "__class": "UGCContent" + } + }, + "likes": 28313, + "time": 1498653000, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "dd4f54eb-ffc9-447f-a2ed-c77daec9fe13", + "title": "Making of a Dancer #5 – Real Life to Gameplay [US]", + "description": "The dancers watch the final results of their hard work in this last episode of Making of a Dancer.\n", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/dd4f54eb-ffc9-447f-a2ed-c77daec9fe13/en/autodance.mp4/1e8b6421c982893447693af6c8a2b94d.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/dd4f54eb-ffc9-447f-a2ed-c77daec9fe13/en/autodance.webm/3d1884202f2db9c4f6cbc444c5d97914.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/dd4f54eb-ffc9-447f-a2ed-c77daec9fe13/en/autodance_t0_m1.jpg/04d124c363731561792830df42c0c07b.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/dd4f54eb-ffc9-447f-a2ed-c77daec9fe13/en/autodance_t0_m2.jpg/04d124c363731561792830df42c0c07b.jpg", + "__class": "UGCContent" + } + }, + "likes": 28710, + "time": 1498642200, + "comVideo": true, + "like": true + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "9e7196bf-2b38-4371-b2be-60b6f8864089", + "title": "Making of a Dancer #4 – Video Shoots [US]", + "description": "Find out what it takes to make it into Just Dance 2017.It’s time for the video shoots they have been rehearsing for!", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/9e7196bf-2b38-4371-b2be-60b6f8864089/en/autodance.mp4/8f4c955fac45b8f974c280d1b698b564.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/9e7196bf-2b38-4371-b2be-60b6f8864089/en/autodance.webm/14d6febdb8d9194db241bb3509233689.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/9e7196bf-2b38-4371-b2be-60b6f8864089/en/autodance_t0_m1.jpg/90d7ebef47ebba70c8ca139b0e5afef5.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/9e7196bf-2b38-4371-b2be-60b6f8864089/en/autodance_t0_m2.jpg/90d7ebef47ebba70c8ca139b0e5afef5.jpg", + "__class": "UGCContent" + } + }, + "likes": 18581, + "time": 1498640400, + "comVideo": true, + "like": true + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "4c05909c-54cc-4395-9e05-6ae24c232609", + "title": "Top Autodance: Fathers Edition", + "description": "Let’s take a moment to appreciate our fathers with this special Top Autodance!", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/4c05909c-54cc-4395-9e05-6ae24c232609/en/autodance.mp4/3cfc153fee4c0fb4c8f80771e90859a7.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/4c05909c-54cc-4395-9e05-6ae24c232609/en/autodance.webm/a86e8511d0661b2478f0b1ef11e370ea.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/4c05909c-54cc-4395-9e05-6ae24c232609/en/autodance_t0_m1.jpg/b9acf3dc674a63786f2a97df0230b1a8.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/4c05909c-54cc-4395-9e05-6ae24c232609/en/autodance_t0_m2.jpg/b9acf3dc674a63786f2a97df0230b1a8.jpg", + "__class": "UGCContent" + } + }, + "likes": 15046, + "time": 1497249000, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "36c16cca-baf9-47d2-9609-08ac2282c89e", + "title": "Just Dance 2018 Song List", + "description": "Take a sneak peak at what hot songs you'll find in Just Dance 2018!", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/36c16cca-baf9-47d2-9609-08ac2282c89e/en/autodance.mp4/68d003d3e396022af57065f1fdfe4cd3.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/36c16cca-baf9-47d2-9609-08ac2282c89e/en/autodance.webm/0b908ef2c20d441f9c27dd384831ec67.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/36c16cca-baf9-47d2-9609-08ac2282c89e/en/autodance_t0_m1.jpg/9e2d8fbeef9cb6ee0e263338c2dacf69.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/36c16cca-baf9-47d2-9609-08ac2282c89e/en/autodance_t0_m2.jpg/9e2d8fbeef9cb6ee0e263338c2dacf69.jpg", + "__class": "UGCContent" + } + }, + "likes": 46800, + "time": 1496896200, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "bc79d5b8-8b57-4002-ba6d-50c242eff2cf", + "title": "Top Autodances: Pets Edition", + "description": "Some of our favorite autodances featuring your pets!", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/bc79d5b8-8b57-4002-ba6d-50c242eff2cf/en/autodance.mp4/b5d0662f01daad23e5709f7bbb9e79f1.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/bc79d5b8-8b57-4002-ba6d-50c242eff2cf/en/autodance.webm/c9c8f6b9ea746a2067faba5cd90359cd.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/bc79d5b8-8b57-4002-ba6d-50c242eff2cf/en/autodance_t0_m1.jpg/82b746ad8250828803059a72996968dd.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/bc79d5b8-8b57-4002-ba6d-50c242eff2cf/en/autodance_t0_m2.jpg/1c74d51f00068d279aab526fe26e7c7d.jpg", + "__class": "UGCContent" + } + }, + "likes": 13754, + "time": 1495420200, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "b5340f74-248e-4471-b485-bc816a724b62", + "title": "Making of a Dancer #3 – Video Rehearsals [US]", + "description": "Find out what it takes to make it into Just Dance 2017. The dancers practice during video rehearsals and talk about their experiences.", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/b5340f74-248e-4471-b485-bc816a724b62/en/autodance.mp4/d6ab84bc8b509e3f24274702ed0887e1.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/b5340f74-248e-4471-b485-bc816a724b62/en/autodance.webm/8b70d8115ec1b86c79e24bc46e164dbf.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/b5340f74-248e-4471-b485-bc816a724b62/en/autodance_t0_m1.jpg/5e522c3e65b39243f681b4847dd4545c.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/b5340f74-248e-4471-b485-bc816a724b62/en/autodance_t0_m2.jpg/5e522c3e65b39243f681b4847dd4545c.jpg", + "__class": "UGCContent" + } + }, + "likes": 13390, + "time": 1494430200, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "a5237c02-ef95-4d09-b026-ffb432b4e362", + "title": "Making of a Dancer #2 – Callbacks [US]", + "description": "Find out what it takes to make it into Just Dance. This time in callbacks, the dancers \nhave to show off their skills with \nsome choreography of their own.", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/a5237c02-ef95-4d09-b026-ffb432b4e362/en/autodance.mp4/b8a4b0d100e79cc4650021efd7445887.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/a5237c02-ef95-4d09-b026-ffb432b4e362/en/autodance.webm/9874d120713c88bb9fca0a4f192e1779.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/a5237c02-ef95-4d09-b026-ffb432b4e362/en/autodance_t0_m1.jpg/b1dcb3c44287ea6c2bd24e8c69a02173.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/a5237c02-ef95-4d09-b026-ffb432b4e362/en/autodance_t0_m2.jpg/b1dcb3c44287ea6c2bd24e8c69a02173.jpg", + "__class": "UGCContent" + } + }, + "likes": 9897, + "time": 1494424800, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "16a426bb-86bd-4001-ba7f-f51b6ab176b5", + "title": "Just Dance Class: Scream & Shout", + "description": "Set the dancefloor on fire by learning this \nhot routine from the Scream & Shout map.", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/16a426bb-86bd-4001-ba7f-f51b6ab176b5/en/autodance.mp4/081b416a97b40084056a7cb35db7ebc5.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/16a426bb-86bd-4001-ba7f-f51b6ab176b5/en/autodance.webm/ebfe16573886d065771b8eedb2ddf607.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/16a426bb-86bd-4001-ba7f-f51b6ab176b5/en/autodance_t0_m1.jpg/5209eb9311c0a782e02300f003640148.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/16a426bb-86bd-4001-ba7f-f51b6ab176b5/en/autodance_t0_m2.jpg/5209eb9311c0a782e02300f003640148.jpg", + "__class": "UGCContent" + } + }, + "likes": 6073, + "time": 1493370000, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "4d0fd29e-1a85-41bf-92ac-6a759fe98df3", + "title": "Just Dance Minute - What Kind of Just Dancer Are You?", + "description": "UbiMouss presents four types of Just Dancers! Do you recognize yourself in any of them?", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/4d0fd29e-1a85-41bf-92ac-6a759fe98df3/en/autodance.mp4/9c4ce78e05bfd550c5cd5c02a76c90bf.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/4d0fd29e-1a85-41bf-92ac-6a759fe98df3/en/autodance.webm/b63502b4792cf562555eec48cc613ead.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/4d0fd29e-1a85-41bf-92ac-6a759fe98df3/en/autodance_t0_m1.jpg/93e241156a3ffa476d3467e582626597.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/4d0fd29e-1a85-41bf-92ac-6a759fe98df3/en/autodance_t0_m2.jpg/93e241156a3ffa476d3467e582626597.jpg", + "__class": "UGCContent" + } + }, + "likes": 12939, + "time": 1491829200, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "b1dd8050-16a0-406b-a6b2-4074065d5387", + "title": "Making of a Dancer #1 – Casting Calls [US]", + "description": "See what it takes to be in the game and hear what the judges have to say. Stay tuned for more episodes as we follow their journeys through callbacks and rehearsals.", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/b1dd8050-16a0-406b-a6b2-4074065d5387/en/autodance.mp4/4134a8f2a7e1926e54f307e12de1763f.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/b1dd8050-16a0-406b-a6b2-4074065d5387/en/autodance.webm/188bae44385288164157e8d179164d2b.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/b1dd8050-16a0-406b-a6b2-4074065d5387/en/autodance_t0_m1.jpg/01f7ec3fca9373362608843a1aed1804.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/b1dd8050-16a0-406b-a6b2-4074065d5387/en/autodance_t0_m2.jpg/01f7ec3fca9373362608843a1aed1804.jpg", + "__class": "UGCContent" + } + }, + "likes": 14042, + "time": 1491310800, + "comVideo": true, + "subtitles": "\n\n", + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "7a1367bf-e8d6-42f6-be2d-e27c4e0e72ed", + "title": "Just Dance Minute - Just Dance 2017 Cosplays", + "description": "Just Dance Ambassador UbiMouss gives a shoutout to the best Just Dance 2017 cosplays so far!", + "content": { + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/7a1367bf-e8d6-42f6-be2d-e27c4e0e72ed/en/autodance.mp4/a41dccbe86972f1493efa12134c60968.mp4", + "__class": "UGCContent" + }, + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/7a1367bf-e8d6-42f6-be2d-e27c4e0e72ed/en/autodance.webm/7162e2a1eeaeba01c1ec9fd559bc1674.webm", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/7a1367bf-e8d6-42f6-be2d-e27c4e0e72ed/en/autodance_t0_m1.jpg/beebf25082130217873103cb3c147316.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/7a1367bf-e8d6-42f6-be2d-e27c4e0e72ed/en/autodance_t0_m2.jpg/beebf25082130217873103cb3c147316.jpg", + "__class": "UGCContent" + } + }, + "likes": 17246, + "time": 1488895200, + "comVideo": true, + "subtitles": "1\n00:00:06,230 --> 00:00:07,470\nHey Just Dancers !\n\n2\n00:00:07,470 --> 00:00:10,360\nI’m UbiMouss and this is Just Dance Minute !\n\n3\n00:00:10,360 --> 00:00:12,250\nOh, that?\n\n4\n00:00:12,250 --> 00:00:15,600\nThis is just something that I picked out of\nmy wardrobe\n\n5\n00:00:15,600 --> 00:00:21,240\nBecause yeah: a special Just Dance Minute\ndeserves a special outfit…\n\n6\n00:00:21,240 --> 00:00:26,410\nJust Dance 2017 has been out for less than\na month but I am already proclaiming that\n\n7\n00:00:26,410 --> 00:00:27,410\nwe’ve had the\n\n8\n00:00:27,410 --> 00:00:28,410\nBEST.\n\n9\n00:00:28,410 --> 00:00:29,410\nCOSPLAYS.\n\n10\n00:00:29,410 --> 00:00:30,410\nEVER.\n\n11\n00:00:30,410 --> 00:00:33,670\nYou guys have been so creative in the last\nmonths that I felt the need to give a huge\n\n12\n00:00:33,670 --> 00:00:39,570\nshoutout to all of you great cosplayers who\nare making so many amazing Just Dance 2017\n\n13\n00:00:39,570 --> 00:00:40,570\ncostumes.\n\n14\n00:00:40,570 --> 00:00:45,149\nFirst one: Luis from Brazil, who I think was\nthe first one to share photos of the making\n\n15\n00:00:45,149 --> 00:00:49,199\nof his costume for one of the coaches of Lean\nOn last July.\n\n16\n00:00:49,199 --> 00:00:51,430\nSo bravo to him!\n\n17\n00:00:51,430 --> 00:00:57,620\nThen comes a new Just Dancer in the family:\nJakov Petrowsky from France with the same\n\n18\n00:00:57,620 --> 00:00:58,899\ncoach of Lean On.\n\n19\n00:00:58,899 --> 00:01:01,129\nYeah this coach is pretty cool.\n\n20\n00:01:01,129 --> 00:01:06,800\nHe spent a lot of time working on the hair\ntoo and for that deserves a 10/10.\n\n21\n00:01:06,800 --> 00:01:11,830\nNext up: Melissa Salvatore from Russia, who\nalready blew our minds last year with her\n\n22\n00:01:11,830 --> 00:01:13,380\ncosplay of Albatraoz.\n\n23\n00:01:13,380 --> 00:01:19,500\nShe’s back this year with her cosplay of\nWorth It, and hopefully this is not the last\n\n24\n00:01:19,500 --> 00:01:20,500\none!\n\n25\n00:01:20,500 --> 00:01:24,380\nAnother Worth It cosplay but from Nijishoujo\nfrom New-York this time.\n\n26\n00:01:24,380 --> 00:01:29,770\nAn amazing rendition of the costume, that\nshe have been dancing with during her streams\n\n27\n00:01:29,770 --> 00:01:30,770\non Twitch.\n\n28\n00:01:30,770 --> 00:01:33,940\nYou can follow her: link in the description.\n\n29\n00:01:33,940 --> 00:01:39,320\nShe also created her own version of the “Run\nThe Night” coach and we just love it.\n\n30\n00:01:39,320 --> 00:01:44,990\nAnd last but not least today: Nikita from\nRussia, and his own version of the “Don’t\n\n31\n00:01:44,990 --> 00:01:46,700\nStop Me Now” coach.\n\n32\n00:01:46,700 --> 00:01:49,610\nAlmost identical to the in-game version.\n\n33\n00:01:49,610 --> 00:01:54,200\nMany thanks to all of you guys for these amazing\ncreations and keep sharing those with us!\n\n34\n00:01:54,200 --> 00:01:57,550\nIt’ll be my pleasure to send goodies to\nthe best ones.\n\n35\n00:01:57,550 --> 00:02:01,590\nThis Just Dance Minute is over so see you\nsoon and until then: Just Dance!\n\n", + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "9375624c-1013-40e2-8ca7-7bd9eba44462", + "title": "Top Autodances: Super Hero Edition", + "description": "Check out our favorite Super Hero Autodances!", + "content": { + "autodance.mp4": { + "__class": "UGCContent", + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/9375624c-1013-40e2-8ca7-7bd9eba44462/en/autodance.mp4/00e73c5ec1eb99ae3c269d7acb9de386.mp4" + }, + "autodance.webm": { + "__class": "UGCContent", + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/9375624c-1013-40e2-8ca7-7bd9eba44462/en/autodance.webm/5639aabbdfedded83ef9b9cb47c6d5cb.webm" + }, + "autodance_t0_m1.jpg": { + "__class": "UGCContent", + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/9375624c-1013-40e2-8ca7-7bd9eba44462/en/autodance_t0_m1.jpg/702daef5dacb6da7377c2cb02c93ca25.jpg" + }, + "autodance_t0_m2.jpg": { + "__class": "UGCContent", + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/9375624c-1013-40e2-8ca7-7bd9eba44462/en/autodance_t0_m2.jpg/702daef5dacb6da7377c2cb02c93ca25.jpg" + } + }, + "likes": 10265, + "time": 1473840000, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Autodance", + "ugcId": "0be3ba1c-2f8e-4cfb-a95f-c30c69739a81", + "title": "Top Autodances: Crazy Costumes Edition", + "description": "Check out our favorite Crazy Costumes Autodances!", + "content": { + "autodance.mp4": { + "__class": "UGCContent", + "mimetype": "video/mp4", + "url": "https://jd-s3.akamaized.net/public/com-videos/0be3ba1c-2f8e-4cfb-a95f-c30c69739a81/en/autodance.mp4/0afb53bbf557b7cdf282f9219a9577ff.mp4" + }, + "autodance.webm": { + "__class": "UGCContent", + "mimetype": "video/webm", + "url": "https://jd-s3.akamaized.net/public/com-videos/0be3ba1c-2f8e-4cfb-a95f-c30c69739a81/en/autodance.webm/5b0f1eb7e13e745833e9c6ce3a6db835.webm" + }, + "autodance_t0_m1.jpg": { + "__class": "UGCContent", + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/0be3ba1c-2f8e-4cfb-a95f-c30c69739a81/en/autodance_t0_m1.jpg/fb0f92284d393bdf6772acbf1a36c577.jpg" + }, + "autodance_t0_m2.jpg": { + "__class": "UGCContent", + "mimetype": "image/jpeg", + "url": "https://jd-s3.akamaized.net/public/com-videos/0be3ba1c-2f8e-4cfb-a95f-c30c69739a81/en/autodance_t0_m2.jpg/fb0f92284d393bdf6772acbf1a36c577.jpg" + } + }, + "likes": 13477, + "time": 1469430000, + "comVideo": true, + "like": false + } + ], + "actionList": "ubisoftVideos" + } + ] + }, + { + "__class": "Category", + "title": "Featured Videos", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-featured-time", + "items": [] + }, + { + "__class": "Category", + "title": "My Friends' Videos", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-time", + "items": [] + }, + { + "__class": "Category", + "title": "Most Recent Autodances", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-time", + "items": [ + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WorthItMU" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "AS-46", + "avatar": 357, + "country": 11865, + "profileId": "951b0572-e126-4a9c-8a73-16ba5f36fec7", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 30, + "jdPoints": 1420, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 1, + "ugcId": "863da678-573a-48c1-8b2f-c2d7ac914ba2", + "time": 1587932309, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/863da678-573a-48c1-8b2f-c2d7ac914ba2/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "filipegtex", + "avatar": 479, + "country": 8418, + "profileId": "4f8d05ca-6770-415d-b7bd-97ac127d227c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 1980, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1, + "like": false, + "views": 2, + "ugcId": "2a4f155c-ebf9-4eaf-be14-fe25df047374", + "time": 1587862715, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2a4f155c-ebf9-4eaf-be14-fe25df047374/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOcean" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "BarbarossaGR", + "avatar": 589, + "country": 8446, + "profileId": "4cc45bf1-b93b-4463-adc9-256dceb8d1e7", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 5040, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 4, + "ugcId": "1c5ce3e3-11ed-4194-a457-29164f82dd1e", + "time": 1587850823, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c5ce3e3-11ed-4194-a457-29164f82dd1e/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WorthItMU" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "majvuf", + "avatar": 479, + "country": 8502, + "profileId": "5c9e89a6-32c3-4fba-a7b2-979806e93e0e", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 2840, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 11, + "ugcId": "6a7439e6-ca04-4387-a379-85892a201047", + "time": 1587831194, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a7439e6-ca04-4387-a379-85892a201047/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ScreamNShout" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Net612", + "avatar": 372, + "country": 8503, + "profileId": "6f84ebfd-dff5-4d4f-9724-f0170b3732fb", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 51, + "jdPoints": 4630, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 3, + "ugcId": "cc9edab1-2bfd-4b08-83ba-fc14b1769d25", + "time": 1587817592, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cc9edab1-2bfd-4b08-83ba-fc14b1769d25/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ProfesseurDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "smarwoody", + "avatar": 372, + "country": 8422, + "profileId": "ee3c9d1c-04c1-4096-b64a-c06cb965a09f", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 51, + "jdPoints": 13470, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 11, + "ugcId": "a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5", + "time": 1587734327, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a64cb1be-e3be-4052-bcdc-9eb2dcf14ae5/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bailar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "BariWand", + "avatar": 504, + "country": 8503, + "profileId": "9d7bf390-532d-4c8e-a0a3-0627a09acc84", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 3890 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2, + "like": false, + "views": 11, + "ugcId": "0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67", + "time": 1587719581, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cc1d81a-e11d-43c0-b3b5-fbac0ceeab67/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GhostInTheKeys" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zch1124653974", + "avatar": 596, + "country": 8423, + "profileId": "37e4e7d4-7ba6-4dc1-a94d-87719d4a29c4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 1610, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 9, + "ugcId": "7a3bf7fa-e494-4f48-9000-4931fc0e3385", + "time": 1587698883, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a3bf7fa-e494-4f48-9000-4931fc0e3385/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "KIDSFiveLittleMonkeys" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "alex0910m", + "avatar": 372, + "country": 8501, + "profileId": "6053605e-9c55-43f9-ad6c-521564ad642b", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 18, + "jdPoints": 2720, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 5, + "ugcId": "f77776b3-ed7e-4c2a-8c6e-f617dd26ece1", + "time": 1587672792, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f77776b3-ed7e-4c2a-8c6e-f617dd26ece1/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "PoPiPo" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Devdance0", + "avatar": 1262, + "country": 8435, + "profileId": "fd3f67be-ef24-4d09-82c3-c3a3588d38af", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 58, + "jdPoints": 3590, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 11, + "ugcId": "040f40e3-e8e8-4ef3-946d-4f8916d51681", + "time": 1587558275, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/040f40e3-e8e8-4ef3-946d-4f8916d51681/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ElTiki" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "b4st3r_", + "avatar": 582, + "country": 8418, + "profileId": "2de092c7-3bcf-4d14-bc84-dff625f65ca2", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 4190 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 4, + "ugcId": "9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76", + "time": 1587513346, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9e08c4d1-d8ed-4bf7-a3f1-e97a3c184c76/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ElTiki" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "PayasoPapiJon", + "avatar": 357, + "country": 8521, + "profileId": "6ce86021-33e7-4be3-bc90-b2f7a84bc628", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 75, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2, + "like": false, + "views": 2, + "ugcId": "c359d98a-a95e-4a62-bba5-740a7da5e80b", + "time": 1587506428, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c359d98a-a95e-4a62-bba5-740a7da5e80b/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bailar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jvsjulio", + "avatar": 357, + "country": 8418, + "profileId": "104d2661-f5f5-49f4-9c70-a34c3317b409", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 1220, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 13, + "ugcId": "88965b55-0142-407c-aa03-89d0c9143f1a", + "time": 1587420881, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88965b55-0142-407c-aa03-89d0c9143f1a/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Sorry" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Flavus18", + "avatar": 357, + "country": 8399, + "profileId": "d6b7dbe8-6c59-4b74-8258-0d6a59e5a6e0", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 18, + "jdPoints": 3040, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 6, + "ugcId": "cda22361-20cb-444b-8d43-42b444e0ad62", + "time": 1587366536, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cda22361-20cb-444b-8d43-42b444e0ad62/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Oishii" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "melckorchick", + "avatar": 357, + "country": 8503, + "profileId": "83fa9f80-2a74-4058-bf45-fcce9c382277", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 12040 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 15, + "ugcId": "9082a98c-7638-4b01-931a-b5fea36e3cea", + "time": 1587319794, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9082a98c-7638-4b01-931a-b5fea36e3cea/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CaliforniaGurls" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "bousquet64", + "avatar": 507, + "country": 8399, + "profileId": "430d9124-d1e8-4fae-9499-3b5362384070", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 75, + "jdPoints": 900, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 3, + "ugcId": "88bcb33e-576b-4bcb-b5b5-e08bd3364029", + "time": 1587316112, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/88bcb33e-576b-4bcb-b5b5-e08bd3364029/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Protupey123", + "avatar": 357, + "country": 11865, + "profileId": "f5104bf2-2cf7-4f7c-95ab-ebf11b3d8666", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 7050 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 13, + "ugcId": "f3c389fb-da0e-498f-b920-58ee3cd78106", + "time": 1587313227, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c389fb-da0e-498f-b920-58ee3cd78106/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "TeDominar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "wscloli", + "avatar": 1351, + "country": 8463, + "profileId": "f65f8eb1-f912-46bc-a7bd-37b03ad4a1bf", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 26, + "jdPoints": 2390 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2, + "like": false, + "views": 11, + "ugcId": "720b945e-ebf3-4714-8f53-6280ca5e0019", + "time": 1587291723, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/720b945e-ebf3-4714-8f53-6280ca5e0019/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SexyAndIKnowItDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "getcad2019", + "avatar": 376, + "country": 8501, + "profileId": "ca32009d-765f-4727-a918-782dfea55cbc", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 71, + "jdPoints": 22960 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 30, + "ugcId": "147c9d8c-1506-4e07-ad60-87f331973208", + "time": 1587199790, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/147c9d8c-1506-4e07-ad60-87f331973208/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BoomDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Poderosa94", + "avatar": 372, + "country": 8498, + "profileId": "4512da70-bc97-4739-a444-d86c834853fe", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 11700, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 9, + "like": false, + "views": 16, + "ugcId": "38e7705f-8c08-46e8-aada-5301c6fb3b5e", + "time": 1587150106, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38e7705f-8c08-46e8-aada-5301c6fb3b5e/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ScreamNShout" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ScyllaSaara", + "avatar": 479, + "country": 8399, + "profileId": "14e5d872-5ab5-45b6-a054-7444fe841a1a", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 1730, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 18, + "ugcId": "346b5d39-4894-4d2e-9a77-306afbd92ff5", + "time": 1587118091, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/346b5d39-4894-4d2e-9a77-306afbd92ff5/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "KiloPapaDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "melckorchick", + "avatar": 357, + "country": 8503, + "profileId": "83fa9f80-2a74-4058-bf45-fcce9c382277", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 12040 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 21, + "ugcId": "50dfea7b-d645-4f6a-ae66-de2fc4b040f4", + "time": 1587047357, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50dfea7b-d645-4f6a-ae66-de2fc4b040f4/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "RedMangoose" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "melckorchick", + "avatar": 357, + "country": 8503, + "profileId": "83fa9f80-2a74-4058-bf45-fcce9c382277", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 12040 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 8, + "ugcId": "f386a5a4-955d-4fbd-96a9-0c53d8249405", + "time": 1587047260, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f386a5a4-955d-4fbd-96a9-0c53d8249405/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "PoPiPo" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "melckorchick", + "avatar": 357, + "country": 8503, + "profileId": "83fa9f80-2a74-4058-bf45-fcce9c382277", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 12040 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 9, + "ugcId": "3999ab3f-483f-4656-962b-e7525e5d8ab7", + "time": 1587047233, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3999ab3f-483f-4656-962b-e7525e5d8ab7/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOcean" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Umibozu75", + "avatar": 357, + "country": 8399, + "profileId": "00f28548-626d-4afb-8e46-d1a597240393", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 2060, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2, + "like": false, + "views": 5, + "ugcId": "8c340a88-84b1-4c52-97f2-584b94f2a5b4", + "time": 1587046207, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c340a88-84b1-4c52-97f2-584b94f2a5b4/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BeautyAndABeatDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Ash227196", + "avatar": 170, + "country": 8457, + "profileId": "dd9cf6f4-f936-46d7-ab4b-a9881e71f6a4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 69, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 7, + "ugcId": "5df5005f-1819-4d1a-a9f1-5637a561819b", + "time": 1587041731, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5df5005f-1819-4d1a-a9f1-5637a561819b/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Balance" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "RakuNasurieru", + "avatar": 376, + "country": 8519, + "profileId": "c6df5509-6ccd-474b-860f-e2d3414f5bd8", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 21070, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 9, + "ugcId": "7e31a100-8086-4899-b65e-a2174e30eeee", + "time": 1587035389, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7e31a100-8086-4899-b65e-a2174e30eeee/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WalkThisWayALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "angiecaramelli", + "avatar": 372, + "country": 8521, + "profileId": "f9becffd-7f41-45d8-99b8-edd283976141", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 3160, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 11, + "ugcId": "b7acfb1f-cc12-4409-bf0d-5681a88abcfe", + "time": 1586925261, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7acfb1f-cc12-4409-bf0d-5681a88abcfe/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DameTu" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "guest-0U96xADa", + "avatar": 507, + "country": 8521, + "profileId": "9ab93121-ae6c-4b9b-baba-ff079b47a54c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 43010, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 10, + "ugcId": "6daa24a7-2924-4bd7-a583-5b97ba1ba8a0", + "time": 1586850988, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6daa24a7-2924-4bd7-a583-5b97ba1ba8a0/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Mambo5" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Eunomian", + "avatar": 507, + "country": 8519, + "profileId": "d77e551d-3152-47ac-a457-246459ab64f0", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 51, + "jdPoints": 3320, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 10, + "ugcId": "4dfd6637-3042-4da3-bc84-78a66408bbc6", + "time": 1586798850, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4dfd6637-3042-4da3-bc84-78a66408bbc6/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DontStopMeALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "nebula686", + "avatar": 593, + "country": 8423, + "profileId": "45e64985-d64c-4ab5-a78a-625dea14ee8b", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 55, + "jdPoints": 11740, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2, + "like": false, + "views": 11, + "ugcId": "13cd1553-01fa-4472-82d6-8380cd1d9f66", + "time": 1586783709, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/13cd1553-01fa-4472-82d6-8380cd1d9f66/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "IntoYouCMU" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "guest-0U96xADa", + "avatar": 507, + "country": 8521, + "profileId": "9ab93121-ae6c-4b9b-baba-ff079b47a54c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 43010, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 9, + "ugcId": "c87b2785-ff03-4ff4-8704-3b0d0ea2b200", + "time": 1586761843, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c87b2785-ff03-4ff4-8704-3b0d0ea2b200/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Hips" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "isaozoa", + "avatar": 376, + "country": 8483, + "profileId": "3f89430a-e8bc-4507-9eb5-d1375d5bf881", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 6700, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 6, + "ugcId": "702f7f5f-c854-4d98-a410-3137efe1b764", + "time": 1586746626, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/702f7f5f-c854-4d98-a410-3137efe1b764/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CheapThrills" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "isaozoa", + "avatar": 376, + "country": 8483, + "profileId": "3f89430a-e8bc-4507-9eb5-d1375d5bf881", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 6700, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 4, + "ugcId": "4b7c4af9-26cf-41cd-b2f5-0217d156b982", + "time": 1586745386, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4b7c4af9-26cf-41cd-b2f5-0217d156b982/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Cotton" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Bengi152020", + "avatar": 398, + "country": 8451, + "profileId": "2338bf5d-c131-4630-b545-cf941c9de31c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 15180, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 17, + "ugcId": "20e5ffe1-467f-4045-94c7-8b0c7515860d", + "time": 1586730663, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/20e5ffe1-467f-4045-94c7-8b0c7515860d/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LittleDotty06", + "avatar": 507, + "country": 8418, + "profileId": "fd558261-615e-4f80-ba64-8d019f313623", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 470, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 20, + "ugcId": "bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c", + "time": 1586709008, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd8d9e2f-1c5a-4dd6-bd19-8ced6a0bdd6c/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "croisant95", + "avatar": 357, + "country": 8521, + "profileId": "797acc7e-c58e-4d6f-8b69-67c949df8929", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 8380, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 32, + "ugcId": "7d7db8fd-d40b-4f8c-9df5-d6399a38af9f", + "time": 1586694072, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d7db8fd-d40b-4f8c-9df5-d6399a38af9f/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOn" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KrisKanata", + "avatar": 181, + "country": 8423, + "profileId": "0f29f542-8b16-4594-83e4-5575de89f427", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 55, + "jdPoints": 20460 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 12, + "ugcId": "bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb", + "time": 1586684968, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfbe8992-cc78-4ca1-8cc7-2c8e482a7ffb/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DaddyALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "guaje231", + "avatar": 595, + "country": 8424, + "profileId": "68bff2d5-2a43-4561-b451-c2bb0dd5cd6e", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 48, + "jdPoints": 15780 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 10, + "ugcId": "8c19dd2c-f805-474b-8540-0b5f2792824a", + "time": 1586648655, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c19dd2c-f805-474b-8540-0b5f2792824a/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CheapThrills" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Rizendo", + "avatar": 479, + "country": 8423, + "profileId": "37ca71da-0d11-479a-9abd-9cd31f24af82", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 51, + "jdPoints": 130 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 7, + "ugcId": "234f5553-628c-418f-994e-914ea719d89b", + "time": 1586607206, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/234f5553-628c-418f-994e-914ea719d89b/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "PoPiPo" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Ednaldo853", + "avatar": 529, + "country": 8418, + "profileId": "caad9ef8-984f-45ab-a384-85ba308faa16", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 14, + "ugcId": "3776ecf1-41d7-4aee-ada7-2f0f463dec0e", + "time": 1586568034, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3776ecf1-41d7-4aee-ada7-2f0f463dec0e/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ryanradders", + "avatar": 479, + "country": 8521, + "profileId": "3cf6469f-5d98-49ae-8c81-29887f0dcde7", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 5130, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 37, + "ugcId": "52e2b39e-c34a-4c86-8614-78e96ce4d7d8", + "time": 1586561436, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52e2b39e-c34a-4c86-8614-78e96ce4d7d8/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOn" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Vorbet18", + "avatar": 376, + "country": 8521, + "profileId": "e7cd1d99-4096-4b53-bed1-c91b2b9c6acd", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 5680 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 10, + "ugcId": "95ec4e33-0f8c-4ed3-a203-35f295b49b80", + "time": 1586555662, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/95ec4e33-0f8c-4ed3-a203-35f295b49b80/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GhostInTheKeys" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ChicaPaella2020", + "avatar": 372, + "country": 8438, + "profileId": "2186de0a-6712-434e-a6e6-42c807da14a3", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 70, + "jdPoints": 3360, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 16, + "ugcId": "de2cfa78-3fbd-4073-bc6d-9f29bf2c8214", + "time": 1586548726, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de2cfa78-3fbd-4073-bc6d-9f29bf2c8214/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Daddy" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "idanr66", + "avatar": 596, + "country": 11863, + "profileId": "4904c3c4-236d-46bf-b89f-fe90ff81d2c7", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 70, + "jdPoints": 37940, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 18, + "ugcId": "d1bf8ecc-2e9d-46fc-84e5-eef934347d21", + "time": 1586518901, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1bf8ecc-2e9d-46fc-84e5-eef934347d21/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "KIDSAccidentallyInLove" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "TIN43", + "avatar": 357, + "country": 8518, + "profileId": "6a2e45a3-070f-4339-bac2-04c030e841a9", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 2740, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 14, + "ugcId": "383d21d2-03c7-40cd-bc5b-f2040249c2d5", + "time": 1586513309, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/383d21d2-03c7-40cd-bc5b-f2040249c2d5/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ScreamNShoutALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "fefogamer1", + "avatar": 362, + "country": 8418, + "profileId": "f3ce764b-7441-463c-b380-3933b83a797f", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 85, + "jdPoints": 40610 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 11, + "ugcId": "31b7d0ef-ce32-436f-8284-428467973d96", + "time": 1586457518, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31b7d0ef-ce32-436f-8284-428467973d96/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bailar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Kolabora1", + "avatar": 176, + "country": 8830, + "profileId": "e4c989eb-f103-494c-a5ea-5b553ad47498", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 59, + "jdPoints": 17240 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 15, + "ugcId": "6e6f04d1-53f4-4ea0-9a2e-e53dc6116345", + "time": 1586453507, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6e6f04d1-53f4-4ea0-9a2e-e53dc6116345/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Kolabora1", + "avatar": 176, + "country": 8830, + "profileId": "e4c989eb-f103-494c-a5ea-5b553ad47498", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 59, + "jdPoints": 17240 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 15, + "ugcId": "52b53c87-297a-4461-9d3a-57d0f54546e8", + "time": 1586453447, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/52b53c87-297a-4461-9d3a-57d0f54546e8/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Oishii" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "JuliaRan", + "avatar": 507, + "country": 8521, + "profileId": "377b0270-822e-4fb4-90fb-32954542d665", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 75, + "jdPoints": 13930, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 8, + "like": false, + "views": 23, + "ugcId": "f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8", + "time": 1586437476, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f3c7b546-e6c5-4b2a-bc4a-8c86b128baa8/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + } + ] + }, + { + "__class": "Category", + "title": "Most recent Just Dance Machine videos", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-time", + "items": [ + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "shingostar2020", + "avatar": 357, + "country": 8463, + "profileId": "e2af38d0-b5a4-4648-97f4-dfeeed61435e", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 1410, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 2, + "like": false, + "views": 3, + "ugcId": "376dc866-5049-4797-8a83-28fa0e4d5fd3", + "time": 1590309376, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/376dc866-5049-4797-8a83-28fa0e4d5fd3/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Demirkan4545", + "avatar": 479, + "country": 8519, + "profileId": "cbe07041-e0a5-4007-96ab-7ae2231cb5f5", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 3860 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 9, + "like": false, + "views": 26, + "ugcId": "f9972304-6b51-4e08-871e-db37ae1d2882", + "time": 1588285112, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f9972304-6b51-4e08-871e-db37ae1d2882/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 8", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "smarwoody", + "avatar": 372, + "country": 8422, + "profileId": "ee3c9d1c-04c1-4096-b64a-c06cb965a09f", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 51, + "jdPoints": 13470, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 15, + "like": false, + "views": 49, + "ugcId": "6656a6fc-e1ef-4eb1-9ef0-02061453f458", + "time": 1587733663, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6656a6fc-e1ef-4eb1-9ef0-02061453f458/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "12", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "flagarh19ko", + "avatar": 376, + "country": 8425, + "profileId": "3871d5ba-75d5-45f3-90d7-8f8d33bba118", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 70, + "jdPoints": 5630 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 8, + "like": false, + "views": 30, + "ugcId": "d4189f44-948b-4093-82d5-8673802ed086", + "time": 1586199981, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d4189f44-948b-4093-82d5-8673802ed086/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "roscaspt18", + "avatar": 357, + "country": 8498, + "profileId": "326dac6f-5289-4c2d-a576-17fafdfaab1c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 2930, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 19, + "like": false, + "views": 46, + "ugcId": "f229e772-7833-461f-aafd-85b4f64342c4", + "time": 1586011977, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f229e772-7833-461f-aafd-85b4f64342c4/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Lazergirl260", + "avatar": 524, + "country": 8438, + "profileId": "615a11be-8634-4e8f-ae08-da6f161ad80b", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 51, + "jdPoints": 29930 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 24, + "like": false, + "views": 55, + "ugcId": "543f5bff-75b1-473f-bf5a-c189ef6bf18d", + "time": 1585688140, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/543f5bff-75b1-473f-bf5a-c189ef6bf18d/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "16", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "nobitaco.", + "avatar": 357, + "country": 8423, + "profileId": "31119a7f-ddaa-44d9-8dfe-cc91330622dd", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 22290, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 8, + "like": false, + "views": 23, + "ugcId": "cdf54057-348d-4f54-9cfa-d87381958bc9", + "time": 1585325495, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdf54057-348d-4f54-9cfa-d87381958bc9/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "11", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "CkaTuna101", + "avatar": 357, + "country": 8503, + "profileId": "4e8105a7-450a-4cc1-aa1c-894a1adca07e", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 9810 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 9, + "like": false, + "views": 22, + "ugcId": "b88f0224-cc34-42ad-934e-50bdac76df74", + "time": 1585309248, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b88f0224-cc34-42ad-934e-50bdac76df74/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Santipap2019", + "avatar": 357, + "country": 8518, + "profileId": "b91cb191-6026-46e9-84e6-88c0b1ca0a7d", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 1200 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 10, + "like": false, + "views": 34, + "ugcId": "7a880a45-0738-4b93-b4ad-dbb8f246cb54", + "time": 1585115229, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7a880a45-0738-4b93-b4ad-dbb8f246cb54/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "kapalcha", + "avatar": 596, + "country": 8422, + "profileId": "17892ae3-321d-499e-8dc9-cafbdd4890ad", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 19, + "ugcId": "f32ee2b6-696f-4383-afcd-9fb8b3f46ef9", + "time": 1584993691, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f32ee2b6-696f-4383-afcd-9fb8b3f46ef9/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "NiaoNiaoNiao", + "avatar": 596, + "country": 8423, + "profileId": "8f7cda1f-c20d-4666-ab5c-2c6b3b98be0b", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 2760 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 12, + "like": false, + "views": 21, + "ugcId": "9f50e441-f961-4694-b60a-7fbac6a9cf66", + "time": 1584803984, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f50e441-f961-4694-b60a-7fbac6a9cf66/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Welson_Alves", + "avatar": 546, + "country": 8418, + "profileId": "fa5af297-e001-4590-9eda-afd5afe4cf4c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 2020, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 8, + "like": false, + "views": 70, + "ugcId": "1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2", + "time": 1583698520, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d18fe43-9731-4bd7-bbbd-2bd74c60b8f2/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zpl1307", + "avatar": 1123, + "country": 8463, + "profileId": "f43e9f00-d5be-4af5-accd-4d2dd11688b5", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 26, + "jdPoints": 2680 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 36, + "like": false, + "views": 113, + "ugcId": "ae3d29f2-1b07-434c-84a4-a26f116df0a0", + "time": 1582972822, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "EREDROID.KVRA", + "avatar": 479, + "country": 8418, + "profileId": "7e0fbbac-e6b7-4b54-bdf0-55f03bf13ea1", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 8220 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 14, + "like": false, + "views": 33, + "ugcId": "925c1eea-35ff-4608-a6fe-b5ab203de4db", + "time": 1580523082, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/925c1eea-35ff-4608-a6fe-b5ab203de4db/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "12", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "hahalaoloyes", + "avatar": 357, + "country": 8423, + "profileId": "4ba26787-0fab-4460-80d2-b9f03411f69d", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 8820 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 7, + "like": false, + "views": 47, + "ugcId": "f6f46220-cac7-45d2-94b4-a309d3fcdbfc", + "time": 1580273125, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f6f46220-cac7-45d2-94b4-a309d3fcdbfc/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "The.sovereign", + "avatar": 357, + "country": 8423, + "profileId": "ed66a40d-19c9-4d00-9e32-c3631a8d8730", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 3630, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 10, + "like": false, + "views": 28, + "ugcId": "2ffe382b-d885-4eb3-a85a-eb2158322b26", + "time": 1578677787, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ffe382b-d885-4eb3-a85a-eb2158322b26/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "JhomTmR", + "avatar": 357, + "country": 8495, + "profileId": "b3ace30c-d77e-4ac8-b4fd-c7ddc06f1705", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 27830 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 24, + "like": false, + "views": 50, + "ugcId": "bfda4516-1648-4f30-97e2-d41ccc8b4e76", + "time": 1578535231, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bfda4516-1648-4f30-97e2-d41ccc8b4e76/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "5", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "melckorchick", + "avatar": 357, + "country": 8503, + "profileId": "83fa9f80-2a74-4058-bf45-fcce9c382277", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 12040 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 11, + "like": false, + "views": 29, + "ugcId": "37908a8e-babb-4fb2-bb2b-02dcbad30017", + "time": 1577834925, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37908a8e-babb-4fb2-bb2b-02dcbad30017/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "17", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Chofes", + "avatar": 526, + "country": 8418, + "profileId": "2d70657b-d8e0-4c7c-ae84-6b4a9f000c13", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 30, + "jdPoints": 19870 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 2, + "like": false, + "views": 12, + "ugcId": "14f4564a-1cd5-4e44-b218-80f1a33846ba", + "time": 1577307431, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/14f4564a-1cd5-4e44-b218-80f1a33846ba/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "21", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "yezhiguizu", + "avatar": 546, + "country": 8423, + "profileId": "1e80b7dc-30f7-4293-8a79-b6383c07fa08", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 8310 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 14, + "ugcId": "dd9b911d-bd12-43ed-a229-48aa3c3fa588", + "time": 1577019834, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dd9b911d-bd12-43ed-a229-48aa3c3fa588/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "felixeliseo", + "avatar": 571, + "country": 8483, + "profileId": "d6f0e53a-e957-4dd6-b9cc-b3b59f4061f5", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 71, + "jdPoints": 2070 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 10, + "ugcId": "c7d5365c-4f5f-480d-ba08-8262e202d056", + "time": 1576946682, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c7d5365c-4f5f-480d-ba08-8262e202d056/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DeadEye717", + "avatar": 372, + "country": 8758, + "profileId": "b29cb563-5822-439e-b4b3-cc9bffb88801", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 5520 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 26, + "like": false, + "views": 60, + "ugcId": "ee33687a-34fd-4851-890e-6b6f3cca05ce", + "time": 1575488571, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee33687a-34fd-4851-890e-6b6f3cca05ce/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "35", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "whiterriver", + "avatar": 1191, + "country": 8422, + "profileId": "835a1d9e-b51b-4728-96c8-e81341865775", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "portraitBorder": 14, + "jdPoints": 8030 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 25, + "like": false, + "views": 76, + "ugcId": "018eb774-2e57-4655-9f6b-1572d7011145", + "time": 1573353342, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/018eb774-2e57-4655-9f6b-1572d7011145/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "11", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Malicious39", + "avatar": 1358, + "country": 8424, + "profileId": "69534eae-0287-4495-b756-55b6740248f1", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "portraitBorder": 19, + "jdPoints": 2330 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 19, + "like": false, + "views": 60, + "ugcId": "81a85be4-b6c5-42ce-9aed-b900cdf82b77", + "time": 1571844736, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/81a85be4-b6c5-42ce-9aed-b900cdf82b77/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LeanLuk", + "avatar": 529, + "country": 8408, + "profileId": "81db19bc-eaa4-484f-8b97-f858b949b217", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 34, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 9, + "like": false, + "views": 42, + "ugcId": "d591c678-178b-4705-8fa7-09d0a6ce2175", + "time": 1571537098, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d591c678-178b-4705-8fa7-09d0a6ce2175/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "24", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LeanLuk", + "avatar": 529, + "country": 8408, + "profileId": "81db19bc-eaa4-484f-8b97-f858b949b217", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 34, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 5, + "like": false, + "views": 19, + "ugcId": "50f1c755-4a8d-4f18-8f65-762785a71cb0", + "time": 1571536611, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/50f1c755-4a8d-4f18-8f65-762785a71cb0/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "22", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LeanLuk", + "avatar": 529, + "country": 8408, + "profileId": "81db19bc-eaa4-484f-8b97-f858b949b217", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 34, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 21, + "ugcId": "89882c2e-3106-44c6-9740-6d89e40a3f70", + "time": 1571513533, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89882c2e-3106-44c6-9740-6d89e40a3f70/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "21", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 15, + "like": false, + "views": 33, + "ugcId": "26b98c87-849a-4693-819e-8c60655049c4", + "time": 1571320035, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26b98c87-849a-4693-819e-8c60655049c4/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "19", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 11, + "like": false, + "views": 21, + "ugcId": "89e5dedd-6e76-4ecb-a590-7626762ad06e", + "time": 1571319985, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/89e5dedd-6e76-4ecb-a590-7626762ad06e/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 6, + "like": false, + "views": 14, + "ugcId": "c44e5e45-aa60-4605-9345-1a53dcabe2be", + "time": 1571319908, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c44e5e45-aa60-4605-9345-1a53dcabe2be/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 5", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 7, + "like": false, + "views": 19, + "ugcId": "ef0a6441-57c2-4f61-9602-1b0ba13d959b", + "time": 1571319877, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ef0a6441-57c2-4f61-9602-1b0ba13d959b/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 6", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 6, + "like": false, + "views": 14, + "ugcId": "615c098c-3dbf-4147-bee0-623171f834e1", + "time": 1571319838, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/615c098c-3dbf-4147-bee0-623171f834e1/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 7", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 9, + "ugcId": "45622a7e-c415-4c67-af95-bdb90239b37b", + "time": 1571319805, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/45622a7e-c415-4c67-af95-bdb90239b37b/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 8", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 9, + "ugcId": "37c3b13c-4934-4509-b0ff-40f9a35d73ab", + "time": 1571319746, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/37c3b13c-4934-4509-b0ff-40f9a35d73ab/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "15", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 5, + "like": false, + "views": 12, + "ugcId": "206e5208-0982-48e5-af74-64e8dc73ebf5", + "time": 1571250007, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206e5208-0982-48e5-af74-64e8dc73ebf5/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "10", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 6, + "like": false, + "views": 12, + "ugcId": "0de57943-62d9-4c31-b7ef-a25289732b60", + "time": 1571249986, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0de57943-62d9-4c31-b7ef-a25289732b60/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "11", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 6, + "like": false, + "views": 14, + "ugcId": "4ea5b63d-0695-4fcc-9516-a814f3f398d1", + "time": 1571249958, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4ea5b63d-0695-4fcc-9516-a814f3f398d1/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "13", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 13, + "ugcId": "41b78f45-8d03-4400-ad9c-4e70de3dbf39", + "time": 1571249927, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/41b78f45-8d03-4400-ad9c-4e70de3dbf39/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "14", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 4, + "like": false, + "views": 7, + "ugcId": "d96c9a9a-6b07-4a1a-8038-aad97ff16344", + "time": 1571249898, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d96c9a9a-6b07-4a1a-8038-aad97ff16344/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "12", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Nickname686", + "avatar": 479, + "country": 8428, + "profileId": "3a324621-0fbc-494d-b8a3-8e0c451146fa", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 7, + "like": false, + "views": 25, + "ugcId": "fc153ff9-61fa-426c-ab19-f668665389a3", + "time": 1571249855, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fc153ff9-61fa-426c-ab19-f668665389a3/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 9", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jainn", + "avatar": 479, + "country": 8503, + "profileId": "8f2b190d-ab8a-40f9-b95b-6a81ab1af2da", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 2950 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 7, + "like": false, + "views": 27, + "ugcId": "c4e256a1-e9c3-4a27-8718-8c4d8f812c15", + "time": 1570297689, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c4e256a1-e9c3-4a27-8718-8c4d8f812c15/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zxc2288", + "avatar": 171, + "country": 8423, + "profileId": "327752db-cb77-470d-9a0e-f65c79329f92", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 9220 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 31, + "like": false, + "views": 100, + "ugcId": "ae0da831-2272-4893-a09b-3d11bc1e0a29", + "time": 1562678112, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae0da831-2272-4893-a09b-3d11bc1e0a29/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "6", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zxc2288", + "avatar": 171, + "country": 8423, + "profileId": "327752db-cb77-470d-9a0e-f65c79329f92", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 9220 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 19, + "like": false, + "views": 43, + "ugcId": "6a90100f-55ce-486f-814b-d645dc62808d", + "time": 1562677837, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6a90100f-55ce-486f-814b-d645dc62808d/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "5", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zxc2288", + "avatar": 171, + "country": 8423, + "profileId": "327752db-cb77-470d-9a0e-f65c79329f92", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 9220 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 11, + "like": false, + "views": 31, + "ugcId": "a843c649-9f78-4f38-b5c1-1dd82ad59c5c", + "time": 1562666772, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a843c649-9f78-4f38-b5c1-1dd82ad59c5c/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ZkymPER", + "avatar": 252, + "country": 9627, + "profileId": "c3af8fe6-28cc-45c8-992a-9adfc277ca1e", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 76, + "jdPoints": 14960 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 16, + "like": false, + "views": 33, + "ugcId": "0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9", + "time": 1562554524, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ef7de1b-7ee0-4bfb-a164-cf07c0e63ea9/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "kuroharudesu", + "avatar": 589, + "country": 8423, + "profileId": "89110c46-8521-4b0b-839d-fb6f4c45c5ff", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 21280 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 15, + "like": false, + "views": 30, + "ugcId": "2ea90bf2-f970-43f1-9f30-c0c5cdb66d97", + "time": 1562421635, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2ea90bf2-f970-43f1-9f30-c0c5cdb66d97/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "8", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "renatoejanaina", + "avatar": 527, + "country": 8418, + "profileId": "7459ff6f-5b4a-4dd8-959d-c2ebd86e0168", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 75, + "jdPoints": 4840 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 16, + "like": false, + "views": 63, + "ugcId": "9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2", + "time": 1561940574, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d5a0ff5-050c-4a4f-9aff-cac60b4cf7e2/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MiguelJDN", + "avatar": 376, + "country": 8418, + "profileId": "9e4e7343-7419-47cf-a716-66d78f296d58", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 54, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 19, + "like": false, + "views": 49, + "ugcId": "0cff7dcc-a50f-47fd-8b85-bc31908c8b2b", + "time": 1560792404, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0cff7dcc-a50f-47fd-8b85-bc31908c8b2b/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "9", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MiguelJDN", + "avatar": 376, + "country": 8418, + "profileId": "9e4e7343-7419-47cf-a716-66d78f296d58", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 54, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 16, + "like": false, + "views": 49, + "ugcId": "56f1592d-1218-4bf8-87bc-7ab362c4358c", + "time": 1560273449, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/56f1592d-1218-4bf8-87bc-7ab362c4358c/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "8", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MiguelJDN", + "avatar": 376, + "country": 8418, + "profileId": "9e4e7343-7419-47cf-a716-66d78f296d58", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 54, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 13, + "like": false, + "views": 21, + "ugcId": "ea176895-f4ab-477f-9904-f9541535e061", + "time": 1560273152, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ea176895-f4ab-477f-9904-f9541535e061/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "7", + "mine": false + } + ], + "actionList": "dancemachine" + } + ] + }, + { + "__class": "Category", + "title": "Most Popular Autodances", + "act": "ui_carousel", + "isc": "grp_row_wide", + "items": [ + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WorthIt" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Milippov", + "avatar": 615, + "country": 8503, + "profileId": "2fcfce8b-e1d9-4bba-861d-703893915dc4", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 51, + "jdPoints": 10140 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1883, + "like": false, + "views": 7611, + "ugcId": "3f2ee467-af87-4fb3-b29d-b6175ead3692", + "time": 1477593417, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3f2ee467-af87-4fb3-b29d-b6175ead3692/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOnALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "robertokirby386", + "avatar": 570, + "country": 8521, + "profileId": "e3f3959d-3af9-4385-9ce7-df90c36ebfc2", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 77, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1096, + "like": false, + "views": 3374, + "ugcId": "84615d19-3170-4368-99a9-9bf153d76042", + "time": 1477719173, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/84615d19-3170-4368-99a9-9bf153d76042/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOceanALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LuciferDing", + "avatar": 479, + "country": 8423, + "profileId": "15b1108a-4642-4c0c-809e-34903e899fab", + "platformId": "", + "platform": "ios", + "friend": false, + "skin": 9, + "jdPoints": 1280 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1071, + "like": false, + "views": 3872, + "ugcId": "7bbf62ac-630d-4870-942b-eef65d940175", + "time": 1480839042, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bbf62ac-630d-4870-942b-eef65d940175/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOcean" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "JediArcher.uy", + "avatar": 778, + "country": 8521, + "profileId": "a3facee3-fdba-4857-92cf-675f15673892", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "jdPoints": 4940 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 749, + "like": false, + "views": 2648, + "ugcId": "cd296229-e29c-4a05-b086-fbd957a87890", + "time": 1477688186, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd296229-e29c-4a05-b086-fbd957a87890/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BadRomance" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Borshcht", + "avatar": 546, + "country": 8503, + "profileId": "fa436d05-fda0-4fc1-a726-0e6060aa6caa", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 7140 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 550, + "like": true, + "views": 2473, + "ugcId": "17628bb0-6389-4743-b63e-c04d98839b4e", + "time": 1482163326, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/17628bb0-6389-4743-b63e-c04d98839b4e/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ThatPowerALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Biancav3v3", + "avatar": 507, + "country": 8758, + "profileId": "6ef6a783-2151-4cc1-a115-54002ba084df", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 54, + "jdPoints": 16620 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 466, + "like": false, + "views": 1978, + "ugcId": "5edb5d05-9d80-4c32-8a76-7c39b8a671b0", + "time": 1480370930, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5edb5d05-9d80-4c32-8a76-7c39b8a671b0/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Daddy" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "robertokirby386", + "avatar": 570, + "country": 8521, + "profileId": "e3f3959d-3af9-4385-9ce7-df90c36ebfc2", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 77, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 363, + "like": false, + "views": 2798, + "ugcId": "6bd9c960-495b-403e-b69f-8362254d6f39", + "time": 1477619787, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6bd9c960-495b-403e-b69f-8362254d6f39/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGo" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Z3CK1", + "avatar": 505, + "country": 8418, + "profileId": "d824230a-4e77-497b-8f5a-f09381a43772", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 9130 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 349, + "like": false, + "views": 2065, + "ugcId": "4c5ee835-95d9-4d04-8fe1-3224678e63dd", + "time": 1477855522, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c5ee835-95d9-4d04-8fe1-3224678e63dd/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Mr.Vaza", + "avatar": 312, + "country": 8503, + "profileId": "5b3bdcd5-97db-4aac-a030-6ab51a725eec", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 11410 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 317, + "like": false, + "views": 2502, + "ugcId": "1059fc66-078e-4cf9-9bf5-8eeae0b93d76", + "time": 1477747749, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1059fc66-078e-4cf9-9bf5-8eeae0b93d76/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Sorry" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DMSWYRM", + "avatar": 237, + "country": 8418, + "profileId": "31a5cc45-8ae4-4afb-858d-1f10fe2d84a6", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 19, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 178, + "like": false, + "views": 898, + "ugcId": "251a414a-755c-4e82-98a6-1b36f142d500", + "time": 1477623193, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/251a414a-755c-4e82-98a6-1b36f142d500/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Daddy" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "UbiAdar", + "avatar": 551, + "country": 8503, + "profileId": "33e3703c-89e7-4aa3-b934-2d6b80806e13", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 33, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 175, + "like": false, + "views": 1563, + "ugcId": "cf881dde-2a59-4a0b-95f6-05f072266f86", + "time": 1478382096, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cf881dde-2a59-4a0b-95f6-05f072266f86/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Samba" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "RelaxoFan32", + "avatar": 1283, + "country": 8429, + "profileId": "24f8cdd3-4723-4ae5-b6ee-3f8b1f2eb2d4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 104, + "portraitBorder": 12, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 175, + "like": false, + "views": 995, + "ugcId": "9d45dff4-4743-4987-9dd1-49d49fa9dca9", + "time": 1477740614, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d45dff4-4743-4987-9dd1-49d49fa9dca9/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SingleLadies" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DanielReis31", + "avatar": 376, + "country": 8418, + "profileId": "f6190856-6891-42e1-a480-b8639d7aff4b", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 154, + "like": false, + "views": 765, + "ugcId": "b4612cb6-1ee7-4500-8121-3a72f7d63947", + "time": 1477853344, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b4612cb6-1ee7-4500-8121-3a72f7d63947/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Radical" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "robertokirby386", + "avatar": 570, + "country": 8521, + "profileId": "e3f3959d-3af9-4385-9ce7-df90c36ebfc2", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 77, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 144, + "like": false, + "views": 804, + "ugcId": "4d3cedf9-be80-44b2-9416-ba12140eecb3", + "time": 1479303488, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4d3cedf9-be80-44b2-9416-ba12140eecb3/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOcean" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KashikoiOkami", + "avatar": 357, + "country": 8491, + "profileId": "6e30a479-0395-469f-9213-f40d9469797c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 11050 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 143, + "like": false, + "views": 689, + "ugcId": "d46f7614-a4aa-4241-9df1-745514e7ecb6", + "time": 1482638928, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d46f7614-a4aa-4241-9df1-745514e7ecb6/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Kurio" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "NAGIBATOR__99", + "avatar": 582, + "country": 8503, + "profileId": "fea840a9-4d45-421b-838f-718bd8215613", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 32, + "jdPoints": 9260 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 131, + "like": false, + "views": 908, + "ugcId": "1c652c3b-d5d5-4c94-9284-f1413d130b02", + "time": 1477677573, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c652c3b-d5d5-4c94-9284-f1413d130b02/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bang" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Mr.Vaza", + "avatar": 312, + "country": 8503, + "profileId": "5b3bdcd5-97db-4aac-a030-6ab51a725eec", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 11410 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 116, + "like": false, + "views": 565, + "ugcId": "e81b5bca-8c7b-4639-b234-8fd2da850ee9", + "time": 1477770856, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e81b5bca-8c7b-4639-b234-8fd2da850ee9/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Titanium" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Mr.Vaza", + "avatar": 312, + "country": 8503, + "profileId": "5b3bdcd5-97db-4aac-a030-6ab51a725eec", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 11410 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 109, + "like": false, + "views": 655, + "ugcId": "31555847-60e6-4180-b156-5ac0ebc356e3", + "time": 1478437880, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/31555847-60e6-4180-b156-5ac0ebc356e3/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ColaSong" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "staafl", + "avatar": 589, + "country": 8521, + "profileId": "8f119b12-cd4e-4df4-8220-207400cbe1a6", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 75, + "jdPoints": 8460 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 102, + "like": false, + "views": 591, + "ugcId": "0121ad57-a3b6-4355-ade0-b38dc3702bd1", + "time": 1480879824, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0121ad57-a3b6-4355-ade0-b38dc3702bd1/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "RedMangoose" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "TEKKUDESU", + "avatar": 907, + "country": 8518, + "profileId": "af6c06b1-d324-448e-9a7e-7c5b878ccb04", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "portraitBorder": 4, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 99, + "like": false, + "views": 549, + "ugcId": "63bc874f-8c84-4f66-b47a-23a32887ddc2", + "time": 1477758712, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/63bc874f-8c84-4f66-b47a-23a32887ddc2/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Sorry" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DouYuTV_470676", + "avatar": 183, + "country": 8423, + "profileId": "29b57b6c-df91-4c52-97ce-ceb6f7cb655b", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 65, + "jdPoints": 10040, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 98, + "like": false, + "views": 553, + "ugcId": "cbc860ba-0c91-42be-acc9-c50af22133d9", + "time": 1486819161, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cbc860ba-0c91-42be-acc9-c50af22133d9/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SexyAndIKnowItDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "santigamer1827", + "avatar": 1253, + "country": 8425, + "profileId": "064b954f-b2a3-42f3-9b8a-91211e1dfde5", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 92, + "portraitBorder": 9, + "jdPoints": 49600 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 94, + "like": false, + "views": 682, + "ugcId": "cb07de8f-abf1-424c-b7f9-e41dcf58c33e", + "time": 1480369145, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb07de8f-abf1-424c-b7f9-e41dcf58c33e/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CheapThrillsALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "robertokirby386", + "avatar": 570, + "country": 8521, + "profileId": "e3f3959d-3af9-4385-9ce7-df90c36ebfc2", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 77, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 94, + "like": false, + "views": 569, + "ugcId": "d75c1e21-ce79-49f0-ae04-6136ff46659e", + "time": 1477717337, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d75c1e21-ce79-49f0-ae04-6136ff46659e/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "KIDSJingleBells" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Dimon123145", + "avatar": 357, + "country": 8503, + "profileId": "179b2b74-bd6b-4f40-af97-bbca40529d64", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 240 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 86, + "like": false, + "views": 483, + "ugcId": "206c7e69-4450-49de-a1ee-04d1fcdcffca", + "time": 1516281682, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/206c7e69-4450-49de-a1ee-04d1fcdcffca/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "OnaTanczyDlaMnie" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "robertokirby386", + "avatar": 570, + "country": 8521, + "profileId": "e3f3959d-3af9-4385-9ce7-df90c36ebfc2", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 77, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 86, + "like": false, + "views": 476, + "ugcId": "77d0978d-e6d9-4383-9cb9-4c339e6c0c61", + "time": 1477746938, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77d0978d-e6d9-4383-9cb9-4c339e6c0c61/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "IntoYou" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "adrengen4", + "avatar": 357, + "country": 8431, + "profileId": "bdb5454b-2867-4330-b2dd-02f2e0aabb13", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 1870 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 85, + "like": false, + "views": 554, + "ugcId": "1271b710-a9e2-498e-8f5b-0cdaee30888a", + "time": 1477774318, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1271b710-a9e2-498e-8f5b-0cdaee30888a/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Silent00007", + "avatar": 616, + "country": 8418, + "profileId": "f99717dd-edeb-4807-aa9a-75955d7b23b8", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 51, + "jdPoints": 10310 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 82, + "like": false, + "views": 474, + "ugcId": "6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b", + "time": 1493514568, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6cdcf5f7-929f-45ad-8d99-2b0b97cc4a2b/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOnALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "RelaxoFan32", + "avatar": 1283, + "country": 8429, + "profileId": "24f8cdd3-4723-4ae5-b6ee-3f8b1f2eb2d4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 104, + "portraitBorder": 12, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 80, + "like": false, + "views": 357, + "ugcId": "3a1a8733-b0b7-4c9a-b65a-72ce4899f34d", + "time": 1479045357, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a1a8733-b0b7-4c9a-b65a-72ce4899f34d/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SingleLadies" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "TEKKUDESU", + "avatar": 907, + "country": 8518, + "profileId": "af6c06b1-d324-448e-9a7e-7c5b878ccb04", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "portraitBorder": 4, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 80, + "like": false, + "views": 378, + "ugcId": "4c8b0d94-dd91-484f-8bc4-9400a06c8fc3", + "time": 1477839071, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c8b0d94-dd91-484f-8bc4-9400a06c8fc3/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Daddy" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "bcuevas_11", + "avatar": 529, + "country": 8521, + "profileId": "d07209cb-f1c5-48e6-b673-9b9f2fb1c5c4", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 36, + "jdPoints": 6450 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 76, + "like": false, + "views": 618, + "ugcId": "7d1eeeaf-5866-4f3e-9dac-3f75e450da1a", + "time": 1482805946, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d1eeeaf-5866-4f3e-9dac-3f75e450da1a/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "RedMangoose" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "renatorj22", + "avatar": 717, + "country": 8418, + "profileId": "d346d83d-f5ca-4a8e-97be-732448c2fad1", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 135, + "jdPoints": 7820 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 76, + "like": false, + "views": 355, + "ugcId": "b07bf1ae-4648-453d-8ba1-d497130a9ec4", + "time": 1482637383, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b07bf1ae-4648-453d-8ba1-d497130a9ec4/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GangnamStyleDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "guest-mcrbhnz0", + "avatar": 479, + "country": 8423, + "profileId": "9a5e8e12-f375-4c8e-9e58-06ee75cd6109", + "platformId": "", + "platform": "ios", + "friend": false, + "skin": 14, + "jdPoints": 6750 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 71, + "like": false, + "views": 332, + "ugcId": "9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53", + "time": 1477735829, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9f88c3b6-fdd9-4b83-8ba2-d54a0451dc53/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CantHurryLove" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Koppelson86", + "avatar": 589, + "country": 8758, + "profileId": "46cc3b44-aa00-4a1d-96e8-18e6565dbd0e", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 41700 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 70, + "like": false, + "views": 457, + "ugcId": "7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98", + "time": 1484779390, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd4cc0d-8721-4c61-9c20-46cf0d9a5d98/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Imya505" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "AlexSummerBorn", + "avatar": 479, + "country": 8503, + "profileId": "aff5d04c-779e-40a1-9583-ba4cc3d2cbac", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 3040 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 69, + "like": false, + "views": 391, + "ugcId": "c0353a21-1741-4b13-b3f0-de0fefd83228", + "time": 1486815066, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c0353a21-1741-4b13-b3f0-de0fefd83228/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Ghostbusters" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ChaotikMan", + "avatar": 599, + "country": 8424, + "profileId": "b7c4e1a5-8a58-4690-9587-2dfd5f3cd635", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 40, + "jdPoints": 14370 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 69, + "like": false, + "views": 363, + "ugcId": "a18b9c0f-b685-44ed-9db3-e7fedbcdd010", + "time": 1479330900, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a18b9c0f-b685-44ed-9db3-e7fedbcdd010/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "minibar13", + "avatar": 576, + "country": 8423, + "profileId": "36880528-73fe-41c6-8197-4e6866110ec3", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 54, + "jdPoints": 13670 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 68, + "like": false, + "views": 575, + "ugcId": "76a8d78a-2b7c-4fd8-b6b8-0328853a4210", + "time": 1482662951, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/76a8d78a-2b7c-4fd8-b6b8-0328853a4210/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ScreamNShout" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DanielReis31", + "avatar": 376, + "country": 8418, + "profileId": "f6190856-6891-42e1-a480-b8639d7aff4b", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 67, + "like": false, + "views": 335, + "ugcId": "49ed1141-075d-4cdd-a305-f3d2ceed5e84", + "time": 1477852365, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/49ed1141-075d-4cdd-a305-f3d2ceed5e84/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "IKissedOSC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "staafl", + "avatar": 589, + "country": 8521, + "profileId": "8f119b12-cd4e-4df4-8220-207400cbe1a6", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 75, + "jdPoints": 8460 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 66, + "like": false, + "views": 475, + "ugcId": "7d739ff7-8d9b-4d05-9ae5-3d69a810d490", + "time": 1480880693, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7d739ff7-8d9b-4d05-9ae5-3d69a810d490/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KashikoiOkami", + "avatar": 357, + "country": 8491, + "profileId": "6e30a479-0395-469f-9213-f40d9469797c", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 11050 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 65, + "like": false, + "views": 475, + "ugcId": "1594ea9d-8268-40fa-ba58-563256e79b70", + "time": 1482637425, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1594ea9d-8268-40fa-ba58-563256e79b70/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Sorry" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MaleGmez21", + "avatar": 1106, + "country": 8425, + "profileId": "d74f3a6a-7516-48ad-a5b9-fa7fe9597b76", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 18, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 63, + "like": false, + "views": 274, + "ugcId": "4cc99281-5875-40a2-8f8c-eb601b405618", + "time": 1485051436, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4cc99281-5875-40a2-8f8c-eb601b405618/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "KetchupSong" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MaleGmez21", + "avatar": 1106, + "country": 8425, + "profileId": "d74f3a6a-7516-48ad-a5b9-fa7fe9597b76", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 18, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 63, + "like": false, + "views": 450, + "ugcId": "4bde42ae-51c1-40cb-990c-22c885e4f164", + "time": 1482785864, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4bde42ae-51c1-40cb-990c-22c885e4f164/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bailar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Mr.Vaza", + "avatar": 312, + "country": 8503, + "profileId": "5b3bdcd5-97db-4aac-a030-6ab51a725eec", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 11410 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 63, + "like": false, + "views": 454, + "ugcId": "1f647f0c-a63a-45c9-873d-a8a11b3bbe8c", + "time": 1477742144, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f647f0c-a63a-45c9-873d-a8a11b3bbe8c/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Ulibayssia" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Chi_rik", + "avatar": 555, + "country": 8503, + "profileId": "2bf21e47-cec3-4eb8-b3e5-22d9180a9a9b", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 41570 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 336, + "ugcId": "3a57b841-d001-4866-8323-305a2e85abb5", + "time": 1498638478, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3a57b841-d001-4866-8323-305a2e85abb5/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Balance" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MaleGmez21", + "avatar": 1106, + "country": 8425, + "profileId": "d74f3a6a-7516-48ad-a5b9-fa7fe9597b76", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 18, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 343, + "ugcId": "174fe21e-0082-40b3-be42-1decb29c075b", + "time": 1486739172, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/174fe21e-0082-40b3-be42-1decb29c075b/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "RockNRoll" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "alex495t", + "avatar": 557, + "country": 8503, + "profileId": "e5a36a7e-8594-429a-8a77-940daa948026", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 22930 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 317, + "ugcId": "8d3820f6-f958-49bb-b8ba-5a67e1204736", + "time": 1482430326, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8d3820f6-f958-49bb-b8ba-5a67e1204736/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ILoveRock" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Kubasaak", + "avatar": 1318, + "country": 8428, + "profileId": "4c0da48c-7f0a-4ee1-8494-d6190de8f7de", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "portraitBorder": 57, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 275, + "ugcId": "7c1c81e6-11f8-42ac-8e39-8bf44725561f", + "time": 1479667657, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c1c81e6-11f8-42ac-8e39-8bf44725561f/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Daddy" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Mr.Vaza", + "avatar": 312, + "country": 8503, + "profileId": "5b3bdcd5-97db-4aac-a030-6ab51a725eec", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 11410 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 467, + "ugcId": "23c3103c-7e19-45b0-b4d4-817d1e13c9c8", + "time": 1477815996, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/23c3103c-7e19-45b0-b4d4-817d1e13c9c8/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CheapThrills" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jlar392", + "avatar": 172, + "country": 8483, + "profileId": "05b3f64f-9b88-4568-a0cb-34a7e2189afc", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 30, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 377, + "ugcId": "003077d6-a491-4b92-a42d-1e201e3f0bdf", + "time": 1477783341, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/003077d6-a491-4b92-a42d-1e201e3f0bdf/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Radical" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "z13520", + "avatar": 1228, + "country": 8423, + "profileId": "cd61adad-ee35-4bbb-ae5b-15eb6855ce06", + "platformId": "", + "platform": "ios", + "friend": false, + "skin": 141, + "portraitBorder": 26, + "jdPoints": 6840 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 283, + "ugcId": "0fc3cbf2-4897-447e-9473-fd83715a93dc", + "time": 1477755741, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0fc3cbf2-4897-447e-9473-fd83715a93dc/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOn" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DanielReis31", + "avatar": 376, + "country": 8418, + "profileId": "f6190856-6891-42e1-a480-b8639d7aff4b", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 62, + "like": false, + "views": 278, + "ugcId": "de65150e-0322-4fb3-8eec-1fe8839bc101", + "time": 1477689104, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/de65150e-0322-4fb3-8eec-1fe8839bc101/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actionList": "autodance" + } + ] + }, + { + "__class": "Category", + "title": "Most popular Just Dance Machine videos", + "act": "ui_carousel", + "isc": "grp_row_wide", + "items": [ + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "robertokirby386", + "avatar": 570, + "country": 8521, + "profileId": "e3f3959d-3af9-4385-9ce7-df90c36ebfc2", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 77, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 926, + "like": false, + "views": 2195, + "ugcId": "2dadc482-9752-40da-b82a-58e9658f0856", + "time": 1477618212, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2dadc482-9752-40da-b82a-58e9658f0856/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Mr.Vaza", + "avatar": 312, + "country": 8503, + "profileId": "5b3bdcd5-97db-4aac-a030-6ab51a725eec", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 11410 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 341, + "like": false, + "views": 1071, + "ugcId": "7de76002-9055-4255-810e-552a4aa21f5d", + "time": 1477745001, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7de76002-9055-4255-810e-552a4aa21f5d/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Don-PLAY", + "avatar": 900, + "country": 8503, + "profileId": "bfdadd76-3ccc-4549-990b-b1bae727c811", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "portraitBorder": 50, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 271, + "like": false, + "views": 757, + "ugcId": "66fd2983-9ef5-4775-8b0f-c097f7879338", + "time": 1477741156, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/66fd2983-9ef5-4775-8b0f-c097f7879338/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ChicaZombie", + "avatar": 395, + "country": 8483, + "profileId": "7efb0c0b-5a19-4459-ab78-6d13dad8ba89", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 48, + "jdPoints": 24220 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 201, + "like": false, + "views": 562, + "ugcId": "691eaa98-8905-4f68-ac35-68577740fb07", + "time": 1511813554, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/691eaa98-8905-4f68-ac35-68577740fb07/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "13", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Bl4ck2017", + "avatar": 899, + "country": 8521, + "profileId": "6c62f594-3747-4f1f-824a-9ae8ef3e8b95", + "platformId": "", + "platform": "ios", + "friend": false, + "skin": 101, + "jdPoints": 39230 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 186, + "like": false, + "views": 675, + "ugcId": "068af3fa-ca2e-4ea8-923a-86a0f84571ef", + "time": 1477930929, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/068af3fa-ca2e-4ea8-923a-86a0f84571ef/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 6", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "llwwfrm", + "avatar": 815, + "country": 8423, + "profileId": "4c6907f7-3126-448b-94eb-df00fa8790a5", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 100 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 162, + "like": false, + "views": 520, + "ugcId": "684f2869-3134-43aa-a532-507fbe15e46d", + "time": 1479551915, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/684f2869-3134-43aa-a532-507fbe15e46d/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "RelaxoFan32", + "avatar": 1283, + "country": 8429, + "profileId": "24f8cdd3-4723-4ae5-b6ee-3f8b1f2eb2d4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 104, + "portraitBorder": 12, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 141, + "like": false, + "views": 516, + "ugcId": "e985ab52-77b1-413d-ab0a-5ed001e12d75", + "time": 1480171416, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e985ab52-77b1-413d-ab0a-5ed001e12d75/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "10", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ghostmovelive", + "avatar": 357, + "country": 8521, + "profileId": "903e25f8-9bb0-4f88-9241-e52644247d18", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 24680 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 133, + "like": false, + "views": 563, + "ugcId": "b7f4666e-2828-40d7-9c2d-f9abec77c023", + "time": 1486089064, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7f4666e-2828-40d7-9c2d-f9abec77c023/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "4", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "lzhdcyy", + "avatar": 574, + "country": 8423, + "profileId": "d08f28c9-168a-427f-aeb8-e30f188b1ca8", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 3170 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 122, + "like": false, + "views": 428, + "ugcId": "0efd918d-d3ae-46fe-85db-5d73837fe080", + "time": 1501684893, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0efd918d-d3ae-46fe-85db-5d73837fe080/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "5", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MaruQuadratum", + "avatar": 555, + "country": 8503, + "profileId": "2abf70f9-b74f-47f7-b308-3d527caa0283", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 36, + "jdPoints": 3090 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 99, + "like": false, + "views": 367, + "ugcId": "127b1ba6-936b-4272-b179-aae951e381ac", + "time": 1504784457, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/127b1ba6-936b-4272-b179-aae951e381ac/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 7", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "kzvdar42", + "avatar": 1107, + "country": 8503, + "profileId": "15739d7c-c3ad-43b1-ba0c-9ef5d8dcf9a7", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 26, + "jdPoints": 28860 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 83, + "like": false, + "views": 417, + "ugcId": "36c69d57-d9b5-4992-90d2-dd08158a903d", + "time": 1485028417, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36c69d57-d9b5-4992-90d2-dd08158a903d/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "sefi95", + "avatar": 518, + "country": 8521, + "profileId": "26799e3f-88b5-41e8-84f8-4486db23ed39", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 76, + "jdPoints": 37690 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 73, + "like": false, + "views": 231, + "ugcId": "e3f9c17e-b420-4e35-bd42-c7b4fb2e7870", + "time": 1486329162, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e3f9c17e-b420-4e35-bd42-c7b4fb2e7870/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "5", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LordRolfi", + "avatar": 596, + "country": 8491, + "profileId": "7ac29ecb-dc1b-4df8-8ec9-d19bfc250b44", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 18, + "jdPoints": 12890 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 72, + "like": false, + "views": 372, + "ugcId": "c711e559-283d-42cf-b6d7-8e0e37fc8bb2", + "time": 1480451597, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c711e559-283d-42cf-b6d7-8e0e37fc8bb2/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "UbiAdar", + "avatar": 551, + "country": 8503, + "profileId": "33e3703c-89e7-4aa3-b934-2d6b80806e13", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 33, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 70, + "like": false, + "views": 314, + "ugcId": "175ec533-3083-4a50-9b32-b3dbfd56d22c", + "time": 1478381901, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/175ec533-3083-4a50-9b32-b3dbfd56d22c/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 6", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Amorgian20", + "avatar": 116, + "country": 8446, + "profileId": "0855de3d-3aa7-471c-956c-3d94c093d745", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 48, + "jdPoints": 9350 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 63, + "like": false, + "views": 189, + "ugcId": "38d45f74-bd42-43b9-928d-7b96ce9ec7f6", + "time": 1491558438, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/38d45f74-bd42-43b9-928d-7b96ce9ec7f6/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MrFenya1337", + "avatar": 582, + "country": 8503, + "profileId": "635f8e34-c159-409c-be84-619895f0af26", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 4160 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 59, + "like": false, + "views": 180, + "ugcId": "5dad5bf6-f93a-4594-ab80-2d5652a41520", + "time": 1523288395, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5dad5bf6-f93a-4594-ab80-2d5652a41520/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 7", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Cherinme", + "avatar": 916, + "country": 8423, + "profileId": "56029c6a-5fb4-43d4-a344-e79043e899dc", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "jdPoints": 3430 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 58, + "like": false, + "views": 199, + "ugcId": "1258a0ae-a79b-4d15-b7dd-0c39be670255", + "time": 1529816706, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1258a0ae-a79b-4d15-b7dd-0c39be670255/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "swatlongteng", + "avatar": 376, + "country": 8423, + "profileId": "7f2a41a6-56ce-4a86-ba9d-2efaa7550971", + "platformId": "", + "platform": "ios", + "friend": false, + "skin": 1, + "jdPoints": 13860 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 58, + "like": false, + "views": 276, + "ugcId": "e9f2e77b-aca5-421c-99a8-c86651c8451d", + "time": 1485960714, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e9f2e77b-aca5-421c-99a8-c86651c8451d/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "8", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Don-PLAY", + "avatar": 900, + "country": 8503, + "profileId": "bfdadd76-3ccc-4549-990b-b1bae727c811", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "portraitBorder": 50, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 55, + "like": false, + "views": 117, + "ugcId": "0a9c185e-a6e1-4fae-ac7b-3c9739af3610", + "time": 1478371443, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0a9c185e-a6e1-4fae-ac7b-3c9739af3610/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "11", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Ninjanie", + "avatar": 544, + "country": 8429, + "profileId": "f27d751c-d846-488d-b0da-729d4fdc34cb", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 70, + "jdPoints": 13020 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 53, + "like": false, + "views": 203, + "ugcId": "e45d48b7-55b9-4a7b-9933-8fb69fc4b563", + "time": 1522622461, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e45d48b7-55b9-4a7b-9933-8fb69fc4b563/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Kotofoney", + "avatar": 531, + "country": 8503, + "profileId": "f4c630dd-29b6-4231-ab08-b9a6b0cd5c26", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 10, + "jdPoints": 50990 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 52, + "like": false, + "views": 160, + "ugcId": "1f219d47-7458-43e0-b33f-339258a6afc2", + "time": 1527506917, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1f219d47-7458-43e0-b33f-339258a6afc2/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "18", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Lavsma", + "avatar": 1243, + "country": 8418, + "profileId": "03a68438-545f-4a3f-acd1-650db13055d5", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 142, + "portraitBorder": 8, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 51, + "like": false, + "views": 192, + "ugcId": "f166b782-fd78-43f3-8202-202b37075ac9", + "time": 1521763929, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f166b782-fd78-43f3-8202-202b37075ac9/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Chanastick", + "avatar": 999, + "country": 8399, + "profileId": "14fb6380-4c94-40f0-b807-9b6bfc0b16b2", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 51, + "like": false, + "views": 213, + "ugcId": "423b4e4a-98b1-462c-94df-599236a97ecf", + "time": 1482357642, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/423b4e4a-98b1-462c-94df-599236a97ecf/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "12", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "slava451", + "avatar": 982, + "country": 8503, + "profileId": "b8778d38-6241-487c-82f3-a9ab87c5e667", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "jdPoints": 24390 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 49, + "like": false, + "views": 224, + "ugcId": "f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b", + "time": 1537575661, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2237fbe-a9e3-4f8d-9b2a-f4fe30c0079b/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LSW2012", + "avatar": 555, + "country": 8423, + "profileId": "4a844d97-c299-4f1f-ad65-9e4a53582743", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 9060 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 49, + "like": false, + "views": 204, + "ugcId": "d6cdee92-f916-45b6-9d4e-04ecf0259923", + "time": 1507100504, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d6cdee92-f916-45b6-9d4e-04ecf0259923/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "12", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DanielArrow79", + "avatar": 582, + "country": 8418, + "profileId": "2c7c0a6c-7c30-47dd-85bf-7d7366fbccd3", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 14, + "jdPoints": 45800 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 47, + "like": false, + "views": 185, + "ugcId": "7071db57-bfc9-4b5e-b109-bad4b7eac1b7", + "time": 1482928724, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7071db57-bfc9-4b5e-b109-bad4b7eac1b7/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "20", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "RelaxoFan32", + "avatar": 1283, + "country": 8429, + "profileId": "24f8cdd3-4723-4ae5-b6ee-3f8b1f2eb2d4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 104, + "portraitBorder": 12, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 47, + "like": false, + "views": 134, + "ugcId": "90dcd084-f6d0-4b8b-ab7c-aed7dd9df817", + "time": 1480169281, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/90dcd084-f6d0-4b8b-ab7c-aed7dd9df817/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "panxiaoguang666", + "avatar": 357, + "country": 8423, + "profileId": "75f6355f-8140-4f9b-9dce-8430c360462d", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 9, + "jdPoints": 22180, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 45, + "like": false, + "views": 97, + "ugcId": "b5e5c0b5-9169-44ba-903d-0ba7585b875d", + "time": 1543097871, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b5e5c0b5-9169-44ba-903d-0ba7585b875d/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 5", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "HukoJlac", + "avatar": 1164, + "country": 9627, + "profileId": "7c3c87e3-9504-4e53-ae0a-802c7b5fd8ab", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 44, + "jdPoints": 14120 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 41, + "like": false, + "views": 100, + "ugcId": "74a8d988-270b-4248-a5ac-1e4b794b00ab", + "time": 1483211130, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/74a8d988-270b-4248-a5ac-1e4b794b00ab/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "9", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Sr_Elegant", + "avatar": 310, + "country": 8483, + "profileId": "93f9264d-7fbb-47fd-9333-2043bd1ae5f6", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 58, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 39, + "like": false, + "views": 104, + "ugcId": "3013ef48-e747-41ec-b00d-297383ad51ef", + "time": 1542748243, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3013ef48-e747-41ec-b00d-297383ad51ef/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "11", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "pangdingqq", + "avatar": 1015, + "country": 8423, + "profileId": "549726e3-72ca-4cec-9551-bf4416d7c43e", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "jdPoints": 9890 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 39, + "like": false, + "views": 106, + "ugcId": "59b674ac-11ee-4ede-bf42-a05491988a05", + "time": 1521203498, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/59b674ac-11ee-4ede-bf42-a05491988a05/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Yousyo", + "avatar": 116, + "country": 8423, + "profileId": "20d1ba79-a509-45f6-82be-7a69495c68cc", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 77, + "jdPoints": 19800 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 38, + "like": false, + "views": 115, + "ugcId": "b7fb14af-29bc-4d1a-b296-d7ddc38d69b9", + "time": 1511536161, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b7fb14af-29bc-4d1a-b296-d7ddc38d69b9/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "5", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MaruQuadratum", + "avatar": 555, + "country": 8503, + "profileId": "2abf70f9-b74f-47f7-b308-3d527caa0283", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 36, + "jdPoints": 3090 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 38, + "like": false, + "views": 136, + "ugcId": "8c3e04e6-b182-469f-b0b6-509341cf4e54", + "time": 1504773660, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8c3e04e6-b182-469f-b0b6-509341cf4e54/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ItsPedroG22", + "avatar": 578, + "country": 8418, + "profileId": "04a63354-8edf-4a42-9d66-523e6c88fd21", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 1, + "jdPoints": 20190 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 38, + "like": false, + "views": 184, + "ugcId": "5253335b-13a0-4350-b23c-91ed4626bfcd", + "time": 1480274577, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5253335b-13a0-4350-b23c-91ed4626bfcd/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Mr.Vaza", + "avatar": 312, + "country": 8503, + "profileId": "5b3bdcd5-97db-4aac-a030-6ab51a725eec", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 76, + "jdPoints": 11410 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 38, + "like": false, + "views": 128, + "ugcId": "7c77feec-74ce-4b6b-a6bb-131b68254fdf", + "time": 1477921367, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7c77feec-74ce-4b6b-a6bb-131b68254fdf/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "11", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zvezda071099", + "avatar": 357, + "country": 8503, + "profileId": "7b41248b-0981-4e4b-a394-551b1a669ea4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 54, + "jdPoints": 7380 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 130, + "ugcId": "64e31be3-38a1-4153-92c6-6ed0832e729c", + "time": 1522400435, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/64e31be3-38a1-4153-92c6-6ed0832e729c/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "6", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Bellecurve", + "avatar": 344, + "country": 8503, + "profileId": "ac516948-d5ea-47a0-8b68-ac0b237c9581", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 5840 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 96, + "ugcId": "be93090b-b6ed-4f82-8dfb-9e00a9ec01c1", + "time": 1522052828, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/be93090b-b6ed-4f82-8dfb-9e00a9ec01c1/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "SamukaZ004", + "avatar": 308, + "country": 8418, + "profileId": "30f58c29-cba1-408e-96a7-4a544db6ad29", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 57, + "jdPoints": 3850 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 147, + "ugcId": "a8d02c34-00e5-4b76-9757-e2ae83795b93", + "time": 1519486172, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/a8d02c34-00e5-4b76-9757-e2ae83795b93/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "SatomiSan", + "avatar": 557, + "country": 8497, + "profileId": "de03a869-00cf-4854-b6a4-e956a9a8f0a4", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 85, + "jdPoints": 38680 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 179, + "ugcId": "f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf", + "time": 1515935673, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/f2c29ea0-ce4a-4be9-8a6a-3ea13e9cbcaf/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "11", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Jack0mo", + "avatar": 550, + "country": 8483, + "profileId": "160f3299-8534-4be0-b947-14aea5635f3b", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 75, + "jdPoints": 42570 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 117, + "ugcId": "103d683a-510d-490f-95b3-bf3e702a6798", + "time": 1513216805, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/103d683a-510d-490f-95b3-bf3e702a6798/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 9", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "giiibs", + "avatar": 518, + "country": 8418, + "profileId": "84b7a4d7-0a3b-455f-a1f3-942d4dc2f582", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 14, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 136, + "ugcId": "c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a", + "time": 1485564933, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c3afaa5d-3be6-45fd-bafa-3d87b6c93d8a/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 9", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "AntoCGana", + "avatar": 173, + "country": 8424, + "profileId": "3a54b08f-dd41-4370-bb16-64488c3ab928", + "platformId": "", + "platform": "ios", + "friend": false, + "skin": 60, + "jdPoints": 39520 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 141, + "ugcId": "1e7ccdea-75db-427d-9d0d-b1a6523b0763", + "time": 1482687480, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e7ccdea-75db-427d-9d0d-b1a6523b0763/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "NadyaArtem", + "avatar": 589, + "country": 8503, + "profileId": "903d107f-88df-470d-bcc6-b978b27329aa", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 59, + "jdPoints": 12370 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 139, + "ugcId": "b6b2fc35-5794-400b-8bae-41648fed16c6", + "time": 1482015441, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b6b2fc35-5794-400b-8bae-41648fed16c6/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "15", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "onlywhenimdrunk", + "avatar": 582, + "country": 8503, + "profileId": "8dbb9be7-015f-4225-b0aa-7e604b302fd0", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 30, + "jdPoints": 11170 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 137, + "ugcId": "51d85702-b610-4b9e-9292-8487e7fb16a1", + "time": 1481374193, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/51d85702-b610-4b9e-9292-8487e7fb16a1/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Don-PLAY", + "avatar": 900, + "country": 8503, + "profileId": "bfdadd76-3ccc-4549-990b-b1bae727c811", + "platformId": "", + "platform": "android", + "friend": false, + "skin": 101, + "portraitBorder": 50, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 37, + "like": false, + "views": 102, + "ugcId": "fcb37610-c7d1-48c3-92b9-00fd5b764aef", + "time": 1478943388, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcb37610-c7d1-48c3-92b9-00fd5b764aef/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "9", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zpl1307", + "avatar": 1123, + "country": 8463, + "profileId": "f43e9f00-d5be-4af5-accd-4d2dd11688b5", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 101, + "portraitBorder": 26, + "jdPoints": 2680 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 36, + "like": false, + "views": 113, + "ugcId": "ae3d29f2-1b07-434c-84a4-a26f116df0a0", + "time": 1582972822, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ae3d29f2-1b07-434c-84a4-a26f116df0a0/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "2", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "CrazyDragonfly1", + "avatar": 544, + "country": 8503, + "profileId": "48ab4d46-edf7-4fa0-9bff-53a9c934ea56", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 70, + "jdPoints": 28710 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 36, + "like": false, + "views": 157, + "ugcId": "4462625b-e8fd-4e0e-ac05-0f908b038c20", + "time": 1503781433, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4462625b-e8fd-4e0e-ac05-0f908b038c20/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": " 3", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jkgaoyuan", + "avatar": 569, + "country": 8423, + "profileId": "43a0c086-ba3e-4a85-8b82-a7a793803b52", + "platformId": "", + "platform": "ios", + "friend": false, + "skin": 1, + "jdPoints": 11000 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 36, + "like": false, + "views": 129, + "ugcId": "26c781f7-fec3-41aa-b9f0-e7fd377fae27", + "time": 1500468707, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/26c781f7-fec3-41aa-b9f0-e7fd377fae27/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "4", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Alexey17041998", + "avatar": 357, + "country": 8503, + "profileId": "43aa8c22-068e-4e2d-a74b-a5a5c73dc748", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 1, + "jdPoints": 47680 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 36, + "like": false, + "views": 63, + "ugcId": "0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba", + "time": 1497877785, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0ffb7dac-fe07-4baf-a35c-8a6ce3c8f0ba/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "13", + "mine": false + } + ], + "actionList": "dancemachine" + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ZKaterina", + "avatar": 372, + "country": 8503, + "profileId": "9f14fa93-4a26-4c66-8f4c-1367b72bdaea", + "platformId": "", + "platform": "pc", + "friend": false, + "skin": 70, + "jdPoints": 21820 + }, + { + "__class": "JD_CarouselContentComponent_JDM", + "likes": 36, + "like": false, + "views": 125, + "ugcId": "c8da57c9-6743-425f-9e1e-2d24211db7de", + "time": 1485121275, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c8da57c9-6743-425f-9e1e-2d24211db7de/autodance.mp4", + "__class": "UGCContent" + } + }, + "ugcNumber": "1", + "mine": false + } + ], + "actionList": "dancemachine" + } + ] + }, + { + "__class": "Category", + "title": "My Videos", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-time", + "items": [ + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselUgcRequest", + "actionListName": "localautodance", + "actionListNameSelf": "localautodance", + "actionListNameUpsell": "upsell", + "display": "ugc", + "maxCount": 30, + "offline": true, + "playerPid": true, + "type": "ad", + "uuid": "3063e93b-1eb6-41d1-ad82-6ecd33e805c6" + } + }, + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselUgcRequest", + "actionListName": "localdancemachine", + "actionListNameSelf": "localdancemachine", + "actionListNameUpsell": "upsell", + "display": "ugc", + "filters": [ + { + "__class": "JD_CarouselSkuFilter", + "gameVersion": [ + "jd2017" + ] + } + ], + "maxCount": 30, + "offline": true, + "playerPid": true, + "type": "dm", + "uuid": "a9b7e950-8f2a-42d6-ae4b-b2fbbe71d1eb" + } + } + ] + } + ], + "actionLists": { + "ubisoftVideos": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "ubivideo", + "title": "Like", + "type": "like-autodance" + } + ], + "itemType": "comvideo" + }, + "autodance": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Open Profile", + "type": "open-friend" + } + ], + "itemType": "autodance" + }, + "dancemachine": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "autodance_jdm", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance_jdm", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance_jdm", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance_jdm", + "title": "Open Profile", + "type": "open-friend" + } + ], + "itemType": "dancemachine" + }, + "localautodance": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "AUTODANCE_LOCAL", + "title": "Share to Video Galleries", + "type": "share-autodance-jdtv" + }, + { + "__class": "Action", + "bannerType": "AUTODANCE_LOCAL", + "title": "Share to Facebook & JDTV", + "type": "share-autodance-jdtv-facebook" + }, + { + "__class": "Action", + "bannerType": "AUTODANCE_LOCAL", + "title": "Delete", + "type": "delete-autodance" + } + ], + "itemType": "autodance" + }, + "localdancemachine": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "bannerType": "autodance_jdm_local", + "title": "Share to Video Galleries", + "type": "share-autodance-jdtv" + }, + { + "__class": "Action", + "bannerType": "autodance_jdm_local", + "title": "Share to Facebook & JDTV", + "type": "share-autodance-jdtv-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance_jdm_local", + "title": "Delete", + "type": "delete-autodance" + } + ], + "itemType": "dancemachine" + } + }, + "songItemLists": {} +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/pages/kids.json b/justdanceonline-main/local_settings/pages/kids.json new file mode 100644 index 0000000000000000000000000000000000000000..58381daacf0e218109112aa2ce051603df1050bf --- /dev/null +++ b/justdanceonline-main/local_settings/pages/kids.json @@ -0,0 +1,35 @@ +{ + "__class": "JD_CarouselContent", + "categories": [{ + "__class": "Category", + "title": "Kids JD2019", + "act": "kids_carousel", + "isc": "grp_kids_row", + "items": [] + }], + "actionLists": { + "kidsMap": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "bannerContext": "kids", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance", + "type": "play-song" + }], + "itemType": "map" + }, + "NonStop": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "bannerType": "SHUFFLE", + "title": "Dance", + "type": "start-rowPlaylist" + }], + "itemType": "map" + } + }, + "songItemLists": {} +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/pages/quests.json b/justdanceonline-main/local_settings/pages/quests.json new file mode 100644 index 0000000000000000000000000000000000000000..dbdea498740e2a68ee26d16552c6fd905f739302 --- /dev/null +++ b/justdanceonline-main/local_settings/pages/quests.json @@ -0,0 +1,67 @@ +{ + "__class": "JD_CarouselContent", + "categories": [ + { + "__class": "Category", + "title": "Just Dance 2017", + "act": "quest_carousel", + "isc": "quest_row", + "items": [ + { + "__class": "Item", + "offlineRequest": { + "__class": "JD_CarouselQuestRequest", + "offline": true, + "uuid": "c5a89b10-6130-45f7-b259-b50202e375a0", + "actionListName": "questUnlocked" + } + } + ] + }, + { + "__class": "Category", + "title": "Just Dance Best", + "act": "quest_carousel", + "isc": "quest_row_unlimited", + "items": [ + { + "__class": "Item", + "isc": "quest_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Quest", + "questId": "23888482" + } + ], + "actionList": "questUnlocked" + } + ] + } + ], + "actionLists": { + "questUnlocked": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "title": "Dance", + "type": "start-quest" + } + ], + "itemType": "quest" + }, + "questLocked": { + "__class": "ActionList", + "actions": [ + { + "__class": "Action", + "title": "Dance", + "type": "display-upsell-quest" + } + ], + "itemType": "quest" + } + }, + "songItemLists": {} +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/pages/recap-autodance.json b/justdanceonline-main/local_settings/pages/recap-autodance.json new file mode 100644 index 0000000000000000000000000000000000000000..23ce06facae443a1a0c3112b2c5893fa909d0fb0 --- /dev/null +++ b/justdanceonline-main/local_settings/pages/recap-autodance.json @@ -0,0 +1,13031 @@ +{ + "__class": "JD_CarouselContent", + "categories": [ + { + "__class": "Category", + "title": "Featured Videos", + "act": "ui_carousel", + "isc": "grp_row_wide", + "order": "ugc-featured-time", + "items": [] + }, + { + "__class": "Category", + "title": "My Friends' Videos", + "act": "ui_carousel", + "isc": "grp_row_wide", + "items": [] + }, + { + "__class": "Category", + "title": "Most Recent Autodances", + "act": "ui_carousel", + "isc": "grp_row_wide", + "items": [ + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "AboutThatBass" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 4, + "ugcId": "cdbab54e-66d1-427c-b39b-55ce0c37f6bb", + "time": 1607993911, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cdbab54e-66d1-427c-b39b-55ce0c37f6bb/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "XphantomX673", + "avatar": 597, + "country": 8521, + "profileId": "f36cf44b-722e-48bf-a605-630b3a135b8a", + "platformId": "2533274969371373", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 920 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1, + "like": false, + "views": 2, + "ugcId": "6737597c-5a05-487b-ae35-6679e2f747f1", + "time": 1607993637, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6737597c-5a05-487b-ae35-6679e2f747f1/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LoveYouLike" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 2, + "ugcId": "e54e0219-75f5-4d33-ba28-32088f83e5cd", + "time": 1607992921, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e54e0219-75f5-4d33-ba28-32088f83e5cd/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Happy" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 4, + "ugcId": "1d3f13a5-f6e0-419f-b782-67027cd215fa", + "time": 1607991857, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1d3f13a5-f6e0-419f-b782-67027cd215fa/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CantFeelMyFace" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 0, + "ugcId": "1e9cfaac-3158-4ca1-aa52-21b674ebbf75", + "time": 1607991287, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1e9cfaac-3158-4ca1-aa52-21b674ebbf75/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "JailHouse" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Cherry Tea5357", + "avatar": 180, + "country": 8418, + "profileId": "e27018c3-cf18-4289-842e-7f3ee2c68daf", + "platformId": "2535468212457161", + "platform": "x1", + "friend": false, + "skin": 54, + "jdPoints": 51089, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 8, + "ugcId": "e2de5668-1944-49bb-abbf-6b9f94b91b72", + "time": 1607969924, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e2de5668-1944-49bb-abbf-6b9f94b91b72/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "MrSaxobeat" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 16, + "ugcId": "11443a67-263c-4801-a8a1-00f239a043f1", + "time": 1607918741, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/11443a67-263c-4801-a8a1-00f239a043f1/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 7, + "ugcId": "204e4a6d-cc70-4ef0-b67b-cb6ef061d110", + "time": 1607915885, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/204e4a6d-cc70-4ef0-b67b-cb6ef061d110/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LORED FOREVER", + "avatar": 376, + "country": 8418, + "profileId": "715e9cef-12c6-4cc6-919e-c32ef65f69ea", + "platformId": "2535437841844747", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 51089, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 6, + "ugcId": "049ff10d-a4ed-4fa7-ad8d-5a78442fbf52", + "time": 1607910258, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/049ff10d-a4ed-4fa7-ad8d-5a78442fbf52/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "FeelIt" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 0, + "like": false, + "views": 5, + "ugcId": "6077ae21-ea22-4826-965e-fa6fc42b83f2", + "time": 1607910146, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6077ae21-ea22-4826-965e-fa6fc42b83f2/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CantFeelMyFace" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "NsshPe", + "avatar": 376, + "country": 8516, + "profileId": "8d1d0992-d2b4-435a-97d0-c58e71062879", + "platformId": "2535417172154645", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1, + "like": false, + "views": 7, + "ugcId": "efaa07e0-5624-43ee-92a8-ff83703e5b9d", + "time": 1607910116, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efaa07e0-5624-43ee-92a8-ff83703e5b9d/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOcean" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jumboTron90", + "avatar": 176, + "country": 8521, + "profileId": "cd91ef62-48db-4816-8cf3-1293449042c5", + "platformId": "2533274912598140", + "platform": "x1", + "friend": false, + "skin": 85, + "jdPoints": 44580, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1, + "like": false, + "views": 5, + "ugcId": "2308ef84-0df3-4c62-8a32-04b7bbcd129d", + "time": 1607909684, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/2308ef84-0df3-4c62-8a32-04b7bbcd129d/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Hips" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "mattyice110", + "avatar": 372, + "country": 8521, + "profileId": "12b5ca37-694d-427a-8e56-cf03713d0d3e", + "platformId": "2535437438231083", + "platform": "x1", + "friend": false, + "skin": 75, + "jdPoints": 6560 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 9, + "ugcId": "bd3bc00c-4bd4-4cff-b5ca-ebf90467681e", + "time": 1607908379, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bd3bc00c-4bd4-4cff-b5ca-ebf90467681e/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SingleLadies" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "GLSRT92", + "avatar": 372, + "country": 8418, + "profileId": "f90b9968-188d-4545-aa0e-a65afa601346", + "platformId": "2535406939669765", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 7320, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2, + "like": false, + "views": 4, + "ugcId": "8616214b-cf98-4141-a583-10ef83be787e", + "time": 1607904629, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8616214b-cf98-4141-a583-10ef83be787e/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGoDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "yellowconqueror", + "avatar": 937, + "country": 8521, + "profileId": "73e55516-a4d3-4962-91a8-630c2e3d33f8", + "platformId": "2535455264179181", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 26870 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 49, + "like": false, + "views": 189, + "ugcId": "b371498a-0c35-45fa-91a8-989e1350ca51", + "time": 1607877725, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b371498a-0c35-45fa-91a8-989e1350ca51/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WilliamTell" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Bystrik23", + "avatar": 357, + "country": 8428, + "profileId": "3031efbb-d20c-4b7a-9879-77818e69bf1d", + "platformId": "2535436374302166", + "platform": "x1", + "friend": false, + "skin": 54, + "jdPoints": 47850 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 33, + "like": false, + "views": 150, + "ugcId": "d5a7af2f-be37-4bf2-9e5a-915418de867d", + "time": 1607877140, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d5a7af2f-be37-4bf2-9e5a-915418de867d/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "RadicalALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "VIHRIK3107", + "avatar": 376, + "country": 8503, + "profileId": "5d77bce2-d819-487a-9bb9-5bad79a37a8e", + "platformId": "2533274881333843", + "platform": "x1", + "friend": false, + "skin": 54, + "portraitBorder": 26, + "jdPoints": 30850 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 17, + "like": false, + "views": 173, + "ugcId": "216ba777-fdaf-4316-8f14-bd81a4daabd6", + "time": 1607873065, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/216ba777-fdaf-4316-8f14-bd81a4daabd6/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "PoPiPo" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "VIHRIK3107", + "avatar": 376, + "country": 8503, + "profileId": "5d77bce2-d819-487a-9bb9-5bad79a37a8e", + "platformId": "2533274881333843", + "platform": "x1", + "friend": false, + "skin": 54, + "portraitBorder": 26, + "jdPoints": 30850 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 11, + "like": false, + "views": 60, + "ugcId": "04152c97-79cf-402b-9964-695b6466f3f8", + "time": 1607872649, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/04152c97-79cf-402b-9964-695b6466f3f8/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WorthItMU" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "spinney73", + "avatar": 372, + "country": 8758, + "profileId": "03506b29-6484-4b7b-8e0d-60a1c820ad8a", + "platformId": "2533274815398558", + "platform": "x1", + "friend": false, + "skin": 75, + "jdPoints": 7710, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 20, + "like": false, + "views": 203, + "ugcId": "19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9", + "time": 1607867834, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19e5c25e-5ec8-48aa-9116-f9b33f0f2fd9/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNaeALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "spinney73", + "avatar": 372, + "country": 8758, + "profileId": "03506b29-6484-4b7b-8e0d-60a1c820ad8a", + "platformId": "2533274815398558", + "platform": "x1", + "friend": false, + "skin": 75, + "jdPoints": 7710, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 9, + "like": false, + "views": 127, + "ugcId": "4f9c4039-66a3-4946-8343-83f80ee1502e", + "time": 1607867757, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4f9c4039-66a3-4946-8343-83f80ee1502e/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "spinney73", + "avatar": 372, + "country": 8758, + "profileId": "03506b29-6484-4b7b-8e0d-60a1c820ad8a", + "platformId": "2533274815398558", + "platform": "x1", + "friend": false, + "skin": 75, + "jdPoints": 7710, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 9, + "like": false, + "views": 101, + "ugcId": "e30fa5e7-0a9a-4837-8789-859fb0c1a3c5", + "time": 1607867649, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e30fa5e7-0a9a-4837-8789-859fb0c1a3c5/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "PartyRock" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MariusKids3", + "avatar": 987, + "country": 8521, + "profileId": "72d583ce-a187-4c93-805e-6000beee3f3d", + "platformId": "2535469808589448", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 10, + "like": false, + "views": 94, + "ugcId": "3993c0eb-0274-4592-a9dd-6355d2535417", + "time": 1607866767, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3993c0eb-0274-4592-a9dd-6355d2535417/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GhostInTheKeys" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LockableQuill64", + "avatar": 479, + "country": 8423, + "profileId": "9d4fd52a-8272-4f9f-b4b0-1451e9010cda", + "platformId": "2535465528647740", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 4800, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 8, + "like": false, + "views": 95, + "ugcId": "6913cf19-e3c2-4d11-b7a1-1d440feb4459", + "time": 1607865600, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6913cf19-e3c2-4d11-b7a1-1d440feb4459/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SingleLadies" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "otanukar56", + "avatar": 884, + "country": 8399, + "profileId": "e690ff1c-6006-4409-9571-6b8ca4d8c8bc", + "platformId": "2535439654512525", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 20270 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 49, + "ugcId": "eb466755-494f-4a9c-92a3-a3ddba3ff996", + "time": 1607859871, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/eb466755-494f-4a9c-92a3-a3ddba3ff996/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ElTiki" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "PumpkinLake6230", + "avatar": 699, + "country": 8521, + "profileId": "946d8f94-1108-41fa-948d-0f80f15a3727", + "platformId": "2535449380743521", + "platform": "x1", + "friend": false, + "skin": 1, + "portraitBorder": 26, + "jdPoints": 3530, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 9, + "like": false, + "views": 41, + "ugcId": "4750008d-3e5b-46f8-977a-201783f73ad9", + "time": 1607853077, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4750008d-3e5b-46f8-977a-201783f73ad9/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SpectronizerQUAT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Raven29945", + "avatar": 550, + "country": 8521, + "profileId": "d8e99564-9116-40e5-9614-ea3494d3f6b0", + "platformId": "2535444146454057", + "platform": "x1", + "friend": false, + "skin": 14, + "jdPoints": 40570 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 11, + "like": false, + "views": 50, + "ugcId": "46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2", + "time": 1607842007, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/46d5f2be-3f90-4eb2-a664-1ca6af0ca1a2/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Rasputin" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Raven29945", + "avatar": 550, + "country": 8521, + "profileId": "d8e99564-9116-40e5-9614-ea3494d3f6b0", + "platformId": "2535444146454057", + "platform": "x1", + "friend": false, + "skin": 14, + "jdPoints": 40570 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 21, + "ugcId": "68ca78ca-0fce-4283-9603-17095b6cdbc8", + "time": 1607838210, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/68ca78ca-0fce-4283-9603-17095b6cdbc8/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bailar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "PBOMBERO", + "avatar": 357, + "country": 8483, + "profileId": "9a76a800-0dc2-46e9-91c3-8c53dd2e0210", + "platformId": "2533274808502688", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 23850 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 66, + "ugcId": "afc52b45-bb04-4a2f-bbff-062f9cd1a5f1", + "time": 1607838084, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/afc52b45-bb04-4a2f-bbff-062f9cd1a5f1/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "PartOfMeDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Raven29945", + "avatar": 550, + "country": 8521, + "profileId": "d8e99564-9116-40e5-9614-ea3494d3f6b0", + "platformId": "2535444146454057", + "platform": "x1", + "friend": false, + "skin": 14, + "jdPoints": 40570 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 22, + "ugcId": "61740d9f-0082-41ef-a3f8-011ffe760de0", + "time": 1607837661, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/61740d9f-0082-41ef-a3f8-011ffe760de0/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGo" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Xaviz Sandoval", + "avatar": 498, + "country": 8483, + "profileId": "4280203e-bb0a-469a-af50-78720c68403e", + "platformId": "2533274959264818", + "platform": "x1", + "friend": false, + "skin": 51, + "jdPoints": 32540, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 59, + "ugcId": "77a710ea-83ac-4157-a591-0108ba725beb", + "time": 1607835450, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/77a710ea-83ac-4157-a591-0108ba725beb/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ScreamNShout" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MinedCheetah839", + "avatar": 357, + "country": 8521, + "profileId": "fd122aa6-9cc1-4a7e-8340-304abf55c974", + "platformId": "2535407947288980", + "platform": "x1", + "friend": false, + "skin": 51, + "jdPoints": 17390 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 10, + "like": false, + "views": 50, + "ugcId": "6c6ab1d2-d63d-4fc1-9db2-b08398d65254", + "time": 1607828844, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/6c6ab1d2-d63d-4fc1-9db2-b08398d65254/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOn" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Ententulator", + "avatar": 357, + "country": 8428, + "profileId": "a606c09c-60e0-443c-9a60-f2247aead67b", + "platformId": "2535430770332801", + "platform": "x1", + "friend": false, + "skin": 9, + "jdPoints": 5310 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6, + "like": false, + "views": 47, + "ugcId": "cb6e2842-93de-4383-ab1b-915ffa8ffdfb", + "time": 1607828781, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cb6e2842-93de-4383-ab1b-915ffa8ffdfb/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ulkiarra wow", + "avatar": 357, + "country": 8424, + "profileId": "2ee0c870-13c2-4091-931f-2d7b3e849904", + "platformId": "2535438665325659", + "platform": "x1", + "friend": false, + "skin": 1, + "portraitBorder": 26, + "jdPoints": 2640 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 45, + "ugcId": "b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2", + "time": 1607816120, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b25b1d9a-d647-4cf3-9ef2-8dbdd605c3d2/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "TribalDanceALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MariusKids3", + "avatar": 987, + "country": 8521, + "profileId": "72d583ce-a187-4c93-805e-6000beee3f3d", + "platformId": "2535469808589448", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 33, + "ugcId": "55227006-662f-414c-826f-d7b22d7ea297", + "time": 1607812255, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55227006-662f-414c-826f-d7b22d7ea297/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOn" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "StriateJeans995", + "avatar": 376, + "country": 8399, + "profileId": "d77267c1-ea9f-4d7b-a398-ae834d7eb69b", + "platformId": "2535416023024522", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 2840 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 28, + "ugcId": "47488992-f7f1-4b5b-82c3-96907fd1ccd2", + "time": 1607812249, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/47488992-f7f1-4b5b-82c3-96907fd1ccd2/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GhostInTheKeys" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "xxMrsCarwilexx", + "avatar": 596, + "country": 8521, + "profileId": "ee2e6e33-e48e-4859-a0a2-0bea2751a400", + "platformId": "2533274876559213", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 18250, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2, + "like": false, + "views": 40, + "ugcId": "7bd9ab20-a49d-43aa-928f-55f14c0fbad1", + "time": 1607811971, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/7bd9ab20-a49d-43aa-928f-55f14c0fbad1/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "YMCA" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "xxMrsCarwilexx", + "avatar": 596, + "country": 8521, + "profileId": "ee2e6e33-e48e-4859-a0a2-0bea2751a400", + "platformId": "2533274876559213", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 18250, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5, + "like": false, + "views": 23, + "ugcId": "e4ccf449-3693-4f71-9b54-efeadf3fa18e", + "time": 1607811411, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e4ccf449-3693-4f71-9b54-efeadf3fa18e/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Cheerleader" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "xxMrsCarwilexx", + "avatar": 596, + "country": 8521, + "profileId": "ee2e6e33-e48e-4859-a0a2-0bea2751a400", + "platformId": "2533274876559213", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 18250, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 10, + "ugcId": "109fdd87-75eb-420a-81f4-bf16717a0065", + "time": 1607810479, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/109fdd87-75eb-420a-81f4-bf16717a0065/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WakeMeUp" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "mattyice110", + "avatar": 372, + "country": 8521, + "profileId": "12b5ca37-694d-427a-8e56-cf03713d0d3e", + "platformId": "2535437438231083", + "platform": "x1", + "friend": false, + "skin": 75, + "jdPoints": 6560 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 29, + "ugcId": "8b7449bb-53da-4b79-a60b-7e396810b3b3", + "time": 1607809191, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8b7449bb-53da-4b79-a60b-7e396810b3b3/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "LopesDOXXXI", + "avatar": 479, + "country": 8399, + "profileId": "6e2dccb2-f1a4-41a3-8830-97b0504fb102", + "platformId": "2535458303131602", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 130, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3, + "like": false, + "views": 20, + "ugcId": "dc58354e-2f72-401f-81f6-1af5323bdb16", + "time": 1607805279, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc58354e-2f72-401f-81f6-1af5323bdb16/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bailar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "BeadyBus4189084", + "avatar": 582, + "country": 8497, + "profileId": "6cf36d25-f05a-4c0a-9122-203b64e1701f", + "platformId": "2535431661287950", + "platform": "x1", + "friend": false, + "skin": 14, + "jdPoints": 5460 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 49, + "ugcId": "ac39e1f0-7406-449b-a290-91b1db364991", + "time": 1607804563, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ac39e1f0-7406-449b-a290-91b1db364991/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WorthIt" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Player948107113", + "avatar": 232, + "country": 8521, + "profileId": "2ead5c84-9fb6-4cf1-ac1b-b2735350e1e7", + "platformId": "2533274965933368", + "platform": "x1", + "friend": false, + "skin": 54, + "jdPoints": 49590, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 12, + "like": false, + "views": 61, + "ugcId": "284a3952-7b8c-4dc2-904e-97b4560066fa", + "time": 1607794392, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/284a3952-7b8c-4dc2-904e-97b4560066fa/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "KIDSJingleBells" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "a1ameda", + "avatar": 376, + "country": 8428, + "profileId": "41dd5920-9ed9-4fce-9c4f-fb808ad68635", + "platformId": "2533274931849778", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 11600 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 19, + "like": false, + "views": 63, + "ugcId": "220187f6-2bf7-4571-a928-a3a518fedaf5", + "time": 1607788865, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/220187f6-2bf7-4571-a928-a3a518fedaf5/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOcean" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "SelfishAlpaca21", + "avatar": 357, + "country": 8758, + "profileId": "2e8cc68d-959c-4d1e-9b3a-bfb30c341547", + "platformId": "2535415705437060", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 5970 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 19, + "like": false, + "views": 58, + "ugcId": "122cdc44-6a70-4e03-848c-54acbada8995", + "time": 1607761503, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/122cdc44-6a70-4e03-848c-54acbada8995/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DontStopMe" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "SelfishAlpaca21", + "avatar": 357, + "country": 8758, + "profileId": "2e8cc68d-959c-4d1e-9b3a-bfb30c341547", + "platformId": "2535415705437060", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 5970 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 12, + "like": false, + "views": 59, + "ugcId": "fcc89f50-770b-43d8-9968-eebc7cd4b45b", + "time": 1607761479, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fcc89f50-770b-43d8-9968-eebc7cd4b45b/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bailar" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ManLikeTEA41107", + "avatar": 357, + "country": 8758, + "profileId": "1b981326-9951-401d-b38d-e388caa02846", + "platformId": "2535411431025044", + "platform": "x1", + "friend": false, + "skin": 75, + "jdPoints": 12230 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 10, + "like": false, + "views": 90, + "ugcId": "62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041", + "time": 1607746574, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/62c24fd5-bdb9-4fa8-bd73-27cb2b1a7041/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bang" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "GaudyDrake84258", + "avatar": 596, + "country": 8418, + "profileId": "cfd47510-603c-42db-9faa-6ecadc925a45", + "platformId": "2535443773984594", + "platform": "x1", + "friend": false, + "skin": 54, + "jdPoints": 30500 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 10, + "like": false, + "views": 44, + "ugcId": "577e1e1c-0355-43e2-b590-f5c31a933c7e", + "time": 1607745337, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/577e1e1c-0355-43e2-b590-f5c31a933c7e/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Daddy" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "BucklingAlloy4", + "avatar": 376, + "country": 8521, + "profileId": "277207e3-db27-4384-9430-8d18ce604a19", + "platformId": "2533274920524654", + "platform": "x1", + "friend": false, + "skin": 1, + "portraitBorder": 26, + "jdPoints": 16810 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 11, + "like": false, + "views": 99, + "ugcId": "8f5f70e5-0104-4d03-90b9-782c1accebb2", + "time": 1607743762, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8f5f70e5-0104-4d03-90b9-782c1accebb2/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WorthIt" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jollyordz", + "avatar": 1545, + "country": 8521, + "profileId": "f7811f6d-57c4-4e6f-931d-05d5cff3a1fa", + "platformId": "2533274821927722", + "platform": "x1", + "friend": false, + "skin": 18, + "portraitBorder": 26, + "jdPoints": 6880, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 7, + "like": false, + "views": 108, + "ugcId": "82197c90-6dee-40cf-84ce-478d3dc7059b", + "time": 1607743719, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/82197c90-6dee-40cf-84ce-478d3dc7059b/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Titanium" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jollyordz", + "avatar": 1545, + "country": 8521, + "profileId": "f7811f6d-57c4-4e6f-931d-05d5cff3a1fa", + "platformId": "2533274821927722", + "platform": "x1", + "friend": false, + "skin": 18, + "portraitBorder": 26, + "jdPoints": 6880, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4, + "like": false, + "views": 73, + "ugcId": "fe49386c-4071-4160-810f-c50fdb614ce9", + "time": 1607743383, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fe49386c-4071-4160-810f-c50fdb614ce9/autodance_t3_m2.jpg", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + } + ] + }, + { + "__class": "Category", + "title": "Most Popular Autodances", + "act": "ui_carousel", + "isc": "grp_row_wide", + "items": [ + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Cotton" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ScrubingTV", + "avatar": 357, + "country": 8521, + "profileId": "102f5485-bc77-4c66-bb40-cac0b815cdb5", + "platformId": "2535448391858973", + "platform": "x1", + "friend": false, + "skin": 9, + "jdPoints": 980 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 19637, + "like": false, + "views": 110712, + "ugcId": "ad369c96-79c1-4623-9f3e-e90787b714ab", + "time": 1477437490, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ad369c96-79c1-4623-9f3e-e90787b714ab/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Cmon" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Tye Husky", + "avatar": 1145, + "country": 8521, + "profileId": "31ddc9cf-b738-4f1c-b363-ac8d53bfb734", + "platformId": "2533274816751513", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 8, + "jdPoints": 3300 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 17373, + "like": false, + "views": 77445, + "ugcId": "efe14d06-7279-43e7-b490-649a0143c5d5", + "time": 1477786713, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/efe14d06-7279-43e7-b490-649a0143c5d5/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "IntoYou" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Tulioakar96", + "avatar": 887, + "country": 8418, + "profileId": "1f13fe38-177a-48fd-afac-d5289fa814ee", + "platformId": "2533274930479143", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 14734, + "like": false, + "views": 72084, + "ugcId": "e878340d-bfe4-4541-96a1-0b4a9d8f26c2", + "time": 1477488907, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e878340d-bfe4-4541-96a1-0b4a9d8f26c2/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Tulioakar96", + "avatar": 887, + "country": 8418, + "profileId": "1f13fe38-177a-48fd-afac-d5289fa814ee", + "platformId": "2533274930479143", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 10873, + "like": false, + "views": 56510, + "ugcId": "3d23bff2-67dc-4654-a00e-f82a5fc175d6", + "time": 1477367717, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3d23bff2-67dc-4654-a00e-f82a5fc175d6/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CakeByTheOceanALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Tulioakar96", + "avatar": 887, + "country": 8418, + "profileId": "1f13fe38-177a-48fd-afac-d5289fa814ee", + "platformId": "2533274930479143", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 8915, + "like": false, + "views": 52133, + "ugcId": "c568ad83-1032-410d-a914-adc3a833c93a", + "time": 1477420019, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c568ad83-1032-410d-a914-adc3a833c93a/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGo" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Tye Husky", + "avatar": 1145, + "country": 8521, + "profileId": "31ddc9cf-b738-4f1c-b363-ac8d53bfb734", + "platformId": "2533274816751513", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 8, + "jdPoints": 3300 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 8529, + "like": false, + "views": 33997, + "ugcId": "b758d3c5-5637-4dd2-89dc-36302e91936e", + "time": 1477870759, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b758d3c5-5637-4dd2-89dc-36302e91936e/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ThatPowerALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "HMatt57", + "avatar": 1229, + "country": 8453, + "profileId": "3e5f38a4-876d-4163-b7ae-0acd3ab622bf", + "platformId": "2533274959591825", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 19, + "jdPoints": 46170 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 8344, + "like": false, + "views": 40403, + "ugcId": "b314b402-53b5-41ca-8d03-d283fb1fba96", + "time": 1477597840, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b314b402-53b5-41ca-8d03-d283fb1fba96/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Juju" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ZOLLINGER11B", + "avatar": 376, + "country": 8521, + "profileId": "e1e52c3f-8e7d-4c19-af02-946be59d6820", + "platformId": "2533274808179963", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 15450 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 8272, + "like": false, + "views": 22452, + "ugcId": "b87b1143-ec6f-46e2-8bac-07866d1ab5cf", + "time": 1482709944, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b87b1143-ec6f-46e2-8bac-07866d1ab5cf/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Hips" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KuchikkiRafael", + "avatar": 1284, + "country": 8418, + "profileId": "fb9d037a-e7fa-42b6-a4ac-3f867ab454a3", + "platformId": "2533274971463108", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 3, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6907, + "like": false, + "views": 28116, + "ugcId": "759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8", + "time": 1477366464, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/759ee5ea-cbb3-4fa3-9805-e63cf6bf07c8/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Hips" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "JulioCesarBrasi", + "avatar": 1089, + "country": 8418, + "profileId": "7929c2b6-db0f-4736-9908-da2e5eecf32e", + "platformId": "2533274992334700", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 143, + "jdPoints": 51089, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6304, + "like": false, + "views": 32265, + "ugcId": "ee88c5e8-dbe4-4808-a348-3bf1f1afb121", + "time": 1477547173, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ee88c5e8-dbe4-4808-a348-3bf1f1afb121/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GangnamStyleDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "mcaisse", + "avatar": 1535, + "country": 8521, + "profileId": "485bee4b-fabe-4d44-a237-ed1fb0703a13", + "platformId": "2533274840379477", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 3120, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 6088, + "like": false, + "views": 41302, + "ugcId": "3aca2125-61d5-4f90-a122-14e35ffec280", + "time": 1477490903, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3aca2125-61d5-4f90-a122-14e35ffec280/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LeanOnALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "William12128", + "avatar": 1268, + "country": 8399, + "profileId": "de4e4730-abe6-45a8-9d88-ee32e848efa9", + "platformId": "2533274959355592", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 42480 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5846, + "like": false, + "views": 28300, + "ugcId": "24501891-6c47-4fe2-ba7f-ba562a20ade5", + "time": 1477623122, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/24501891-6c47-4fe2-ba7f-ba562a20ade5/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BeautyAndABeatDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Piranhazzz", + "avatar": 246, + "country": 8521, + "profileId": "9b1b3517-10cf-441d-a31b-f95b4b8e8960", + "platformId": "2533274793965641", + "platform": "x1", + "friend": false, + "skin": 54, + "jdPoints": 3700 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5761, + "like": false, + "views": 30042, + "ugcId": "fb3ebc6e-8446-403c-96bb-a732617ddab7", + "time": 1477667154, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/fb3ebc6e-8446-403c-96bb-a732617ddab7/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DogsOut" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "kingbasilio", + "avatar": 616, + "country": 8521, + "profileId": "75d0c64d-4aff-421d-9ca8-40f0304afa97", + "platformId": "2535423025886976", + "platform": "x1", + "friend": false, + "skin": 9, + "jdPoints": 2740 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 5110, + "like": false, + "views": 32666, + "ugcId": "bec028ea-17f4-44c4-b971-39997104d647", + "time": 1477755054, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/bec028ea-17f4-44c4-b971-39997104d647/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Youth" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Tulioakar96", + "avatar": 887, + "country": 8418, + "profileId": "1f13fe38-177a-48fd-afac-d5289fa814ee", + "platformId": "2533274930479143", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4362, + "like": false, + "views": 17233, + "ugcId": "e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab", + "time": 1477362628, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e84a4d7f-ba1d-4f28-b0ac-4c1078b7e1ab/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "KetchupSong" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MarcioAF", + "avatar": 518, + "country": 8418, + "profileId": "72f925de-d06a-49eb-b266-87086c0e2cc0", + "platformId": "2533274964285381", + "platform": "x1", + "friend": false, + "skin": 19, + "jdPoints": 50350 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4330, + "like": false, + "views": 42004, + "ugcId": "9d095616-218a-4194-be77-bd91a9936e78", + "time": 1477536139, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9d095616-218a-4194-be77-bd91a9936e78/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Youth" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KelvinJaeder", + "avatar": 1491, + "country": 8521, + "profileId": "0bc00b98-8828-40d1-a746-d21271d4103c", + "platformId": "2535422963485824", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 26, + "jdPoints": 51089, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 4130, + "like": false, + "views": 16147, + "ugcId": "e1d02337-cefb-413e-bbe3-501c44be9a99", + "time": 1477788103, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/e1d02337-cefb-413e-bbe3-501c44be9a99/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGoDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "endfew", + "avatar": 953, + "country": 8516, + "profileId": "972e8bbd-accd-4677-b823-e857c7ea0100", + "platformId": "2533274998437570", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 5170, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3912, + "like": false, + "views": 25154, + "ugcId": "3363b66c-37c2-43f2-b268-cbaf8768a1a2", + "time": 1482666215, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/3363b66c-37c2-43f2-b268-cbaf8768a1a2/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Tetris" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ScrubingTV", + "avatar": 357, + "country": 8521, + "profileId": "102f5485-bc77-4c66-bb40-cac0b815cdb5", + "platformId": "2535448391858973", + "platform": "x1", + "friend": false, + "skin": 9, + "jdPoints": 980 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3496, + "like": false, + "views": 29858, + "ugcId": "5e26412e-3a79-4fbf-9e82-221e79a61836", + "time": 1477435091, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/5e26412e-3a79-4fbf-9e82-221e79a61836/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Juju" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "COURTN3Y 86", + "avatar": 372, + "country": 8758, + "profileId": "76d4e67f-cb8f-4f24-bb29-f4117928964e", + "platformId": "2535454663724805", + "platform": "x1", + "friend": false, + "skin": 18, + "jdPoints": 6440 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3474, + "like": false, + "views": 10013, + "ugcId": "d1816ee4-fe71-46fa-b43e-af00c7054d2b", + "time": 1482665340, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d1816ee4-fe71-46fa-b43e-af00c7054d2b/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bang" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Tulioakar96", + "avatar": 887, + "country": 8418, + "profileId": "1f13fe38-177a-48fd-afac-d5289fa814ee", + "platformId": "2533274930479143", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3456, + "like": false, + "views": 15443, + "ugcId": "ff58a3eb-a217-4831-8c52-63ab571dfd8c", + "time": 1477367778, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/ff58a3eb-a217-4831-8c52-63ab571dfd8c/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Bang" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MsBeatrixxKiddo", + "avatar": 1508, + "country": 8418, + "profileId": "bb6ee43e-9b9e-4d23-8467-2065bf4bebaa", + "platformId": "2535466606824290", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 26, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3310, + "like": false, + "views": 12310, + "ugcId": "4c95e3f8-00ab-4797-8644-b9a176770496", + "time": 1477442685, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4c95e3f8-00ab-4797-8644-b9a176770496/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Starships" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "NederenKjeld", + "avatar": 2, + "country": 8431, + "profileId": "51e11b0b-23c4-4502-87b2-172ea5f4c4af", + "platformId": "2535463428313187", + "platform": "x1", + "friend": false, + "skin": 9, + "jdPoints": 8000 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 3049, + "like": false, + "views": 18364, + "ugcId": "b1509a50-ea66-410c-8245-6ed192e1606c", + "time": 1477768907, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b1509a50-ea66-410c-8245-6ed192e1606c/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "cavemanwv", + "avatar": 815, + "country": 8521, + "profileId": "8ad85016-f424-4d43-a0c8-e63e44372fe2", + "platformId": "2533274869728784", + "platform": "x1", + "friend": false, + "skin": 132 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2847, + "like": false, + "views": 12586, + "ugcId": "cd271cad-d979-457d-8cab-b86c2424e24a", + "time": 1482633836, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/cd271cad-d979-457d-8cab-b86c2424e24a/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "REZIDYLANDANGER", + "avatar": 554, + "country": 8758, + "profileId": "61bb8402-9ab4-4196-9fd3-5e877124c945", + "platformId": "2533275007596759", + "platform": "x1", + "friend": false, + "skin": 14, + "jdPoints": 11320 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2601, + "like": false, + "views": 10600, + "ugcId": "b20a9b78-7354-4d9e-a918-54fabc22aad9", + "time": 1482665214, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b20a9b78-7354-4d9e-a918-54fabc22aad9/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SexyAndIKnowItDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Hedik", + "avatar": 372, + "country": 8399, + "profileId": "f6cb3ba1-5068-4dc1-8cb3-7e3629cc317d", + "platformId": "2533274814792439", + "platform": "x1", + "friend": false, + "skin": 18, + "jdPoints": 12860 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2412, + "like": false, + "views": 16843, + "ugcId": "dc3ae378-7a9a-49b3-8f3a-d632f612f56f", + "time": 1477506352, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/dc3ae378-7a9a-49b3-8f3a-d632f612f56f/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ThatPowerOSCDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KevenDuring360", + "avatar": 1548, + "country": 8521, + "profileId": "4c6ccba8-55dc-4a78-836f-1c259c659da8", + "platformId": "2535447464465600", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 34, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2355, + "like": false, + "views": 17812, + "ugcId": "c05bfa35-bcb4-4fcd-84e8-848810bffc39", + "time": 1477425037, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/c05bfa35-bcb4-4fcd-84e8-848810bffc39/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CantTouchThis" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "zulie26", + "avatar": 1320, + "country": 8521, + "profileId": "6f0f101e-f29c-46cb-96fd-dff568b3a5ee", + "platformId": "2533274842685237", + "platform": "x1", + "friend": false, + "skin": 1, + "portraitBorder": 19, + "jdPoints": 13240 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2257, + "like": false, + "views": 10101, + "ugcId": "319a46cf-0836-483e-a5c0-5bdb4442eee1", + "time": 1477443154, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/319a46cf-0836-483e-a5c0-5bdb4442eee1/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ILoveRock" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "CharmingMoney59", + "avatar": 372, + "country": 8408, + "profileId": "ee6577eb-2d18-4e28-a607-d12bb0cfad7e", + "platformId": "2535473162082446", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 12840 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2125, + "like": false, + "views": 7561, + "ugcId": "744df3e1-d2d2-45b4-93f0-149cfd69fedc", + "time": 1482650186, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/744df3e1-d2d2-45b4-93f0-149cfd69fedc/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "MrSaxobeat" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Luiso Who", + "avatar": 582, + "country": 8418, + "profileId": "17a47f7d-9004-42ce-8680-11b4683b9694", + "platformId": "2535468820207284", + "platform": "x1", + "friend": false, + "skin": 51, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 2102, + "like": false, + "views": 11131, + "ugcId": "8842d98c-4dce-4a87-a15b-f1361fac9f63", + "time": 1477484477, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8842d98c-4dce-4a87-a15b-f1361fac9f63/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GangnamStyleDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Pandicris309YT", + "avatar": 916, + "country": 8483, + "profileId": "02f44ebd-fdab-4adb-82df-c7f9306f7f63", + "platformId": "2535409026322878", + "platform": "x1", + "friend": false, + "skin": 105 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1972, + "like": false, + "views": 8071, + "ugcId": "19cc2c5f-87e9-4b91-8b98-eeee17dfd75b", + "time": 1477437691, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19cc2c5f-87e9-4b91-8b98-eeee17dfd75b/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BewareOf" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "XxM3M3K1NGxX", + "avatar": 552, + "country": 8521, + "profileId": "8cec3260-2f11-45d5-b9a4-1ed1a92f425a", + "platformId": "2535431272069262", + "platform": "x1", + "friend": false, + "skin": 62, + "jdPoints": 12800 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1875, + "like": false, + "views": 8137, + "ugcId": "19f4338c-e594-4aa3-823f-0d60641fdc26", + "time": 1477664840, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/19f4338c-e594-4aa3-823f-0d60641fdc26/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SexyAndIKnowItDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "CounterJungle67", + "avatar": 582, + "country": 8758, + "profileId": "b8f36cce-aafe-4682-a1ff-6ee384e7479d", + "platformId": "2535408578238639", + "platform": "x1", + "friend": false, + "skin": 54, + "jdPoints": 3250 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1871, + "like": false, + "views": 13032, + "ugcId": "4fa47a79-a323-47e0-b4e9-679383a861d2", + "time": 1477666394, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4fa47a79-a323-47e0-b4e9-679383a861d2/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "IKissed" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "AtomicCrayons", + "avatar": 1325, + "country": 8521, + "profileId": "dcd18992-2030-4614-86eb-47590649c50a", + "platformId": "2533274900452130", + "platform": "x1", + "friend": false, + "skin": 118 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1799, + "like": false, + "views": 7603, + "ugcId": "b9f32924-f5f1-47a5-bf5b-de75d99a32a2", + "time": 1477856785, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b9f32924-f5f1-47a5-bf5b-de75d99a32a2/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BlurredLines" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MisterZeo", + "avatar": 1463, + "country": 8422, + "profileId": "25cc7324-a034-42d5-85c8-40ad58b70ca6", + "platformId": "2533274828620846", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 17470 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1747, + "like": false, + "views": 7216, + "ugcId": "9b09ac6f-073c-4d1d-af2d-b784570a4625", + "time": 1477538824, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/9b09ac6f-073c-4d1d-af2d-b784570a4625/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "HungarianDance" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Yahn Raphael", + "avatar": 479, + "country": 8418, + "profileId": "2c798ed7-59cf-43fb-b0d0-e79416f91cdc", + "platformId": "2535446184889299", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 17700 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1741, + "like": false, + "views": 8382, + "ugcId": "d35e72a3-bc18-4558-9f9f-82c11acdc8df", + "time": 1482650467, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/d35e72a3-bc18-4558-9f9f-82c11acdc8df/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ItsRainingMen" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Charlie Chap1in", + "avatar": 1574, + "country": 8521, + "profileId": "da8e29a1-245d-4886-b39f-f2543425b6bb", + "platformId": "2533274912682392", + "platform": "x1", + "friend": false, + "skin": 1, + "portraitBorder": 156, + "jdPoints": 51089, + "subscribed": true + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1697, + "like": false, + "views": 6764, + "ugcId": "8da35170-b746-4dc3-bc9d-db6c2616273a", + "time": 1477768827, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/8da35170-b746-4dc3-bc9d-db6c2616273a/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ThatPowerOSCDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "serGrey19", + "avatar": 575, + "country": 8503, + "profileId": "2fec0e4c-7a34-4578-b22e-58c4cfdc51d0", + "platformId": "2535424925250684", + "platform": "x1", + "friend": false, + "skin": 51, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1667, + "like": false, + "views": 12358, + "ugcId": "1c92080c-8e14-4b30-9d7b-aa9b125e6539", + "time": 1477642042, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1c92080c-8e14-4b30-9d7b-aa9b125e6539/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Starships" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "jessmike09", + "avatar": 778, + "country": 8758, + "profileId": "93151eef-0dc5-41e1-ae32-7461655119e0", + "platformId": "2533274960853461", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1653, + "like": false, + "views": 6925, + "ugcId": "0f854834-87ec-49cb-bc54-e34a5f47ba08", + "time": 1486843175, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0f854834-87ec-49cb-bc54-e34a5f47ba08/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "MovesLikeDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "HectorDomingoAC", + "avatar": 593, + "country": 8483, + "profileId": "86a85d5b-b8dd-497b-9619-8c8074e96d3e", + "platformId": "2535409358604970", + "platform": "x1", + "friend": false, + "skin": 36, + "jdPoints": 16150 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1653, + "like": false, + "views": 7765, + "ugcId": "36a062ed-9894-424a-984a-6945e3b76005", + "time": 1477540700, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/36a062ed-9894-424a-984a-6945e3b76005/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ThatPowerALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "BrazenKarma8096", + "avatar": 1136, + "country": 8521, + "profileId": "b28d7827-c695-47c8-85e5-3e6d04e9a83e", + "platformId": "2535463381095941", + "platform": "x1", + "friend": false, + "skin": 113, + "portraitBorder": 26, + "jdPoints": 47950 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1649, + "like": false, + "views": 6613, + "ugcId": "4a0e493b-d003-44c7-813b-092f97877106", + "time": 1477425875, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/4a0e493b-d003-44c7-813b-092f97877106/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGoDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Ademirfejr", + "avatar": 953, + "country": 8418, + "profileId": "4f3e6d28-4709-4406-b317-57aca39a69d2", + "platformId": "2533275013566782", + "platform": "x1", + "friend": false, + "skin": 101, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1627, + "like": false, + "views": 6347, + "ugcId": "b992be06-7085-4b83-8461-5b33acaa8ad9", + "time": 1477856659, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/b992be06-7085-4b83-8461-5b33acaa8ad9/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DontWorry" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "AukGamatomic", + "avatar": 479, + "country": 8399, + "profileId": "429878b5-6539-4444-a7d5-9e219b90bddd", + "platformId": "2533274829203942", + "platform": "x1", + "friend": false, + "skin": 54, + "jdPoints": 1670 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1617, + "like": false, + "views": 10074, + "ugcId": "55d1e886-d34d-46fd-a823-baaba69851a5", + "time": 1477856860, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55d1e886-d34d-46fd-a823-baaba69851a5/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SeptemberALT" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "DancerPaws", + "avatar": 372, + "country": 8408, + "profileId": "4cfa2b8e-f0c4-471d-a554-0bce5285a665", + "platformId": "2535456121762818", + "platform": "x1", + "friend": false, + "skin": 51, + "jdPoints": 10340 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1613, + "like": false, + "views": 7614, + "ugcId": "295378c3-8f2b-4641-b0a2-27cf445806b0", + "time": 1482650195, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/295378c3-8f2b-4641-b0a2-27cf445806b0/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Gentleman" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KevenDuring360", + "avatar": 1548, + "country": 8521, + "profileId": "4c6ccba8-55dc-4a78-836f-1c259c659da8", + "platformId": "2535447464465600", + "platform": "x1", + "friend": false, + "skin": 101, + "portraitBorder": 34, + "jdPoints": 51089 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1588, + "like": false, + "views": 7064, + "ugcId": "71749fb7-0fc1-4e8c-a36e-bed4bee71856", + "time": 1477428598, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/71749fb7-0fc1-4e8c-a36e-bed4bee71856/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BoomDLC" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "MarcioAF", + "avatar": 518, + "country": 8418, + "profileId": "72f925de-d06a-49eb-b266-87086c0e2cc0", + "platformId": "2533274964285381", + "platform": "x1", + "friend": false, + "skin": 19, + "jdPoints": 50350 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1562, + "like": false, + "views": 9127, + "ugcId": "1ed26ffe-7964-42d3-98f8-d7c78d9dbabf", + "time": 1477395552, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/1ed26ffe-7964-42d3-98f8-d7c78d9dbabf/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NaeNae" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ihmage22", + "avatar": 480, + "country": 8521, + "profileId": "7ce25371-8381-495e-895d-1af20e158f9e", + "platformId": "2533274926351797", + "platform": "x1", + "friend": false, + "skin": 9, + "jdPoints": 12850 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1446, + "like": false, + "views": 5331, + "ugcId": "0595dd4a-3529-49fe-a0b2-f767b6afcbdc", + "time": 1482880852, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/0595dd4a-3529-49fe-a0b2-f767b6afcbdc/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Hips" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "KevinMaaka", + "avatar": 239, + "country": 8521, + "profileId": "7522b8e7-ad55-407a-9f16-0cbec9a56a24", + "platformId": "2533274948233803", + "platform": "x1", + "friend": false, + "skin": 51, + "jdPoints": 13030 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1445, + "like": false, + "views": 4221, + "ugcId": "55a90740-23ae-4e5b-bb71-ca88a785feab", + "time": 1482650210, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/55a90740-23ae-4e5b-bb71-ca88a785feab/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Promiscuous" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "ecc90", + "avatar": 357, + "country": 8399, + "profileId": "a48c18f5-74b4-4349-b8f7-e65580389ab4", + "platformId": "2533274905247022", + "platform": "x1", + "friend": false, + "skin": 1, + "jdPoints": 2340 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1442, + "like": false, + "views": 6573, + "ugcId": "827859cb-1ad9-4d98-8cb2-b9b5996ac250", + "time": 1477602738, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/827859cb-1ad9-4d98-8cb2-b9b5996ac250/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + }, + { + "__class": "Item", + "isc": "autodance_item", + "act": "ui_component_base", + "components": [ + { + "__class": "JD_CarouselContentComponent_Song", + "mapName": "DragosteaDinTei" + }, + { + "__class": "JD_CarouselContentComponent_Dancer", + "name": "Vivi Bombon", + "avatar": 58, + "country": 8404, + "profileId": "de6f4f6b-231f-4ef1-9e98-040226089df8", + "platformId": "2535419663015226", + "platform": "x1", + "friend": false, + "skin": 78, + "jdPoints": 8720 + }, + { + "__class": "JD_CarouselContentComponent_Autodance", + "likes": 1397, + "like": false, + "views": 8726, + "ugcId": "862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb", + "time": 1508059493, + "featuredTime": 0, + "content": { + "autodance.webm": { + "mimetype": "video/webm", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance.webm", + "__class": "UGCContent" + }, + "autodance_t0_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t0_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t1_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t2_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m0.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t3_m0.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t0_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t1_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t2_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m1.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t3_m1.jpg", + "__class": "UGCContent" + }, + "autodance_t0_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t0_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t1_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t1_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t2_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t2_m2.jpg", + "__class": "UGCContent" + }, + "autodance_t3_m2.jpg": { + "mimetype": "image/jpg", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance_t3_m2.jpg", + "__class": "UGCContent" + }, + "autodance.mp4": { + "mimetype": "video/mp4", + "url": "https://just-dance-prod.s3.amazonaws.com/ugc/862a9e5a-8b75-4fd9-af18-9b1e2b4d07cb/autodance.mp4", + "__class": "UGCContent" + } + }, + "mine": false + } + ], + "actions": [ + { + "__class": "Action", + "bannerType": "autodance", + "title": "Like", + "type": "like-autodance" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Share to Facebook", + "type": "share-autodance-facebook" + }, + { + "__class": "Action", + "bannerType": "autodance", + "title": "Report", + "type": "report-autodance" + }, + { + "__class": "Action", + "bannerContext": "context_online", + "bannerType": "dancer", + "title": "gamercard", + "type": "open-profileconsole" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/pages/upsell-videos.json b/justdanceonline-main/local_settings/pages/upsell-videos.json new file mode 100644 index 0000000000000000000000000000000000000000..0896d27e831456706077a1935eb1cdac3456f8b0 --- /dev/null +++ b/justdanceonline-main/local_settings/pages/upsell-videos.json @@ -0,0 +1,419 @@ +{ + "__class": "JD_CarouselContent", + "categories": [{ + "__class": "Category", + "title": "Upsell Videos", + "act": "ui_carousel", + "isc": "grp_row", + "items": [{ + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BestSongEver" + }, { + "__class": "JD_CarouselContentComponent_Metadata", + "recommendationSource": "4" + } + ], + "actionList": "_None" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "WhiteNoise" + }, { + "__class": "JD_CarouselContentComponent_Metadata", + "recommendationSource": "4" + } + ], + "actionList": "_None" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Crayon" + }, { + "__class": "JD_CarouselContentComponent_Metadata", + "recommendationSource": "4" + } + ], + "actionList": "_None" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LaRespuesta" + }, { + "__class": "JD_CarouselContentComponent_Metadata", + "recommendationSource": "4" + } + ], + "actionList": "_None" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Hype" + }, { + "__class": "JD_CarouselContentComponent_Metadata", + "recommendationSource": "4" + } + ], + "actionList": "_None" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "NewWorldALT" + }, { + "__class": "JD_CarouselContentComponent_Metadata", + "recommendationSource": "4" + } + ], + "actionList": "_None" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BoysALT" + }, { + "__class": "JD_CarouselContentComponent_Metadata", + "recommendationSource": "4" + } + ], + "actionList": "_None" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "HoldMyHand" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "AmIWrong" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GetUgly" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "ShutUp" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BetterWhen" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Cheerleader" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GangnamStyleDLC" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGo" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Happy" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BeautyAndABeatDLC" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "SexyAndIKnowItDLC" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BlurredLines" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Starships" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "JustDance" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "GoodFeeling" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Rasputin" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "MovesLikeDLC" + } + ], + "actionList": "partyMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "BuiltForThis" + } + ], + "actionList": "partyMap" + } + ] + }, { + "__class": "Category", + "title": "Upsell Videos Kids", + "act": "ui_carousel", + "isc": "grp_row", + "items": [{ + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "LetItGo" + } + ], + "actionList": "kidsMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "AngryBirds" + } + ], + "actionList": "kidsMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "PrinceAli" + } + ], + "actionList": "kidsMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Cmon" + } + ], + "actionList": "kidsMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "Ghostbusters" + } + ], + "actionList": "kidsMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "UnderTheSea" + } + ], + "actionList": "kidsMap" + }, { + "__class": "Item", + "isc": "grp_cover", + "act": "ui_component_base", + "components": [{ + "__class": "JD_CarouselContentComponent_Song", + "mapName": "CopaCabana" + } + ], + "actionList": "kidsMap" + } + ] + }, { + "__class": "Category", + "title": "WhatsNew Videos", + "act": "avatar_carousel", + "isc": "avatar_row", + "items": [] + } + ], + "actionLists": { + "kidsMap": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "bannerContext": "kids", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance", + "type": "play-song" + } + ], + "itemType": "map" + }, + "_None": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "title": "None", + "type": "do-nothing" + } + ], + "itemType": "map" + }, + "partyMap": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song", + "title": "Dance", + "type": "play-song" + }, { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song_leaderboard", + "title": "Leaderboard", + "type": "leaderboard" + }, { + "__class": "Action", + "bannerContext": "family_rival", + "bannerTheme": "DEFAULT", + "bannerType": "song_licensing", + "title": "Credits", + "type": "credits" + } + ], + "itemType": "map" + } + }, + "songItemLists": {} +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/paths.json b/justdanceonline-main/local_settings/paths.json new file mode 100644 index 0000000000000000000000000000000000000000..f6b7e2d324f2dd8b6fb3a0dbff494a6f009f7a9e --- /dev/null +++ b/justdanceonline-main/local_settings/paths.json @@ -0,0 +1,14 @@ +{ + "avatars": "itemdb/avatars.json", + "portraitBorders": "itemdb/portraitBorders.json", + "skins": "itemdb/skins.json", + "specificMaps": "songdb/specificMaps.json", + "localisation": "localisation/localisation.json", + "aliases": "aliases/aliases.json", + "favorites": "carousel/favorites.json", + "search": "carousel/search.json", + "songitemlists": "carousel/songItemLists.json", + "actionlist": "carousel/actionLists.json", + "online-bosses": "wdf/online-bosses.json", + "quests": "questdb/quests.json" +} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/playlistdb/playlists.json b/justdanceonline-main/local_settings/playlistdb/playlists.json new file mode 100644 index 0000000000000000000000000000000000000000..fa8d685ea2184c4536af30afa3fee3216c4fafb1 --- /dev/null +++ b/justdanceonline-main/local_settings/playlistdb/playlists.json @@ -0,0 +1,17 @@ +{ + "__class": "JD_CarouselContent", + "categories": [], + "actionLists": { + "_None": { + "__class": "ActionList", + "actions": [{ + "__class": "Action", + "title": "None", + "type": "do-nothing" + } + ], + "itemType": "map" + } + }, + "songItemLists": {} +} diff --git a/justdanceonline-main/local_settings/questdb/quests.json b/justdanceonline-main/local_settings/questdb/quests.json new file mode 100644 index 0000000000000000000000000000000000000000..f0f1b44894529ee3e746d50c3ed6fb045a9b08d6 --- /dev/null +++ b/justdanceonline-main/local_settings/questdb/quests.json @@ -0,0 +1,427 @@ +[ + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/28/quest_logo.png/24d1ec60e83494e05969e83ed7d4e74d.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/28/pc/quest_cover.tga.ckd/9b879d2b3207d89c32cc0fc0baaf3baf.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/28/pc/quest_logo.tga.ckd/7d11df956cb40aae9f30666a640aed95.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/28/pc/quest_logo_shaded.tga.ckd/95a627e06ae3e962f713367014815524.ckd" + }, + "id": "28", + "locked": 0, + "playlist": [ + "BreakFreeDLC", + "KaboomPow", + "HowDeep" + ], + "title": "Comics" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/27/quest_logo.png/bf3cec27e8de577f657208cfd51d932e.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/27/pc/quest_cover.tga.ckd/7091424e7cbb1da6b736bb7ffea9ff34.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/27/pc/quest_logo.tga.ckd/82b818785da971cbba0d262da0cd1a73.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/27/pc/quest_logo_shaded.tga.ckd/ce1e9c6e49a146ff5222082d112e6b24.ckd" + }, + "id": "27", + "locked": 0, + "playlist": [ + "AintMy", + "Aquarius", + "MrSaxobeat" + ], + "title": "Surfboard" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/26/quest_logo.png/df5720ad8387c4852d848af60994820b.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/26/pc/quest_cover.tga.ckd/a11a110c3d6e00324bfc1dbd90828b7f.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/26/pc/quest_logo.tga.ckd/a7e54eed42f69369a15750b470413582.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/26/pc/quest_logo_shaded.tga.ckd/0c5c79972355cd0a97855132016f5125.ckd" + }, + "id": "26", + "locked": 0, + "playlist": [ + "DontLet", + "RockNRollDLC", + "TurnUpTheLoveALT" + ], + "title": "Origami" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/25/quest_logo.png/816427293e03aea07ae754fb359e76df.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/25/pc/quest_cover.tga.ckd/b514e9fabbc39152d2ee9362437a1fb2.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/25/pc/quest_logo.tga.ckd/9c6630baf9b2ab30e8fd75b0699f2cc8.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/25/pc/quest_logo_shaded.tga.ckd/aa100767755dfc65ce74708dc09b94c7.ckd" + }, + "id": "25", + "locked": 0, + "playlist": [ + "HandClap", + "JailHouse", + "AmericanGirlDLC" + ], + "title": "Cactus" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/24/quest_logo.png/f9bf9b9dea0a07aead88872148ee7e9d.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/24/pc/quest_cover.tga.ckd/c64c4a33421a5d48e6715f38dfe623f7.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/24/pc/quest_logo.tga.ckd/ed7d9fb1d2b327069f61d5505d22c2d6.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/24/pc/quest_logo_shaded.tga.ckd/d32ef16e1b5c06c89cfa4b0db38b8d16.ckd" + }, + "id": "24", + "locked": 0, + "playlist": [ + "MeToo", + "LoveIsAll", + "SomethinStupid" + ], + "title": "Kiss" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/23/quest_logo.png/7628092640bc7f0e1461e6dcf807d2fa.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/23/pc/quest_cover.tga.ckd/c03b910b00cb2d61a21a83a2bf7ede47.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/23/pc/quest_logo.tga.ckd/1100664f144f0b5024091e4d29977b95.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/23/pc/quest_logo_shaded.tga.ckd/440d9fbb0feef0f19c1662f886586172.ckd" + }, + "id": "23", + "locked": 0, + "playlist": [ + "DontWorryMadcon", + "Gigolo", + "GotMeDancing" + ], + "title": "Dandy" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/21/quest_logo.png/53e8b57342a6b5ed488714feb9accd28.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/21/pc/quest_cover.tga.ckd/caf1e9f1c011e5740f03dac55f956799.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/21/pc/quest_logo.tga.ckd/611dfe4496f37be09ff25783fbe88749.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/21/pc/quest_logo_shaded.tga.ckd/bf9db0ef763fc0375abfa942c3636113.ckd" + }, + "id": "21", + "locked": 0, + "playlist": [ + "TheGreatest", + "CaliforniaGurls", + "WantUBack" + ], + "title": "Unicorn" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/20/quest_logo.png/cae9fe5093b162228e249d0ac951f923.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/20/pc/quest_cover.tga.ckd/b930b1cf962639524ce2a7871630c676.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/20/pc/quest_logo.tga.ckd/7faa506e28513e297720559ec2380fe9.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/20/pc/quest_logo_shaded.tga.ckd/afd285b2a524a077ad439f06708ec88b.ckd" + }, + "id": "20", + "locked": 0, + "playlist": [ + "TimeWarpQUAT", + "MonsterMash", + "Youth" + ], + "title": "Zombi" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/19/quest_logo.png/5e68281231e324dd8c15476e612332a3.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/19/pc/quest_cover.tga.ckd/9ecc4616494ebf59eacab34d22be4d1f.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/19/pc/quest_logo.tga.ckd/9a86fa38b320607040a1d25dbfa743a2.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/19/pc/quest_logo_shaded.tga.ckd/58b4949cfb2782fec097c008ad925326.ckd" + }, + "id": "19", + "locked": 0, + "playlist": [ + "Summer", + "KetchupSong", + "TheWorldDLC" + ], + "title": "Summer" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/18/quest_logo.png/b1986839a0d5c6a55de4621194b8686c.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/18/pc/quest_cover.tga.ckd/b77701a7d8e3637b22a206cf6f77d738.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/18/pc/quest_logo.tga.ckd/87600b39ff5f8aad2c4afac0ceb417cb.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/18/pc/quest_logo_shaded.tga.ckd/2bc36ac5414da2f024f793eb466aeffa.ckd" + }, + "id": "18", + "locked": 0, + "playlist": [ + "Birthday", + "Lollipop", + "OhNo" + ], + "title": "Lollipop" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/17/quest_logo.png/d2b910447666d0f7ad02996c5b1a927a.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/17/pc/quest_cover.tga.ckd/dcb3d330a657f4dda87cc1a9bf3a438f.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/17/pc/quest_logo.tga.ckd/8de883906eeef3163662aba2d4c621fc.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/17/pc/quest_logo_shaded.tga.ckd/97a218cad6ecf28e1b5c98b21e3e9191.ckd" + }, + "id": "17", + "locked": 0, + "playlist": [ + "Maneater", + "HoldMyHand", + "BeautyAndABeatDLC" + ], + "title": "Grimoire" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/16/quest_logo.png/c36e933fa8144f76be1f5ebbbebbf698.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/16/pc/quest_cover.tga.ckd/fbc1ab6e28738917420548852154e336.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/16/pc/quest_logo.tga.ckd/95cfb9df65b01ded7438396879fe5457.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/16/pc/quest_logo_shaded.tga.ckd/34eb7a055d4a61d4bfe1e392b40a9f96.ckd" + }, + "id": "16", + "locked": 0, + "playlist": [ + "Domino", + "Luftballons", + "LoveYouLike" + ], + "title": "Lily of the Valley" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/15/quest_logo.png/635664f2aa6021ce9df498bc0b7b9406.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/15/pc/quest_cover.tga.ckd/489ec14fed3e6e705d766617cca6c7c3.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/15/pc/quest_logo.tga.ckd/fc600396b9a8d67475fb8d9146e076c7.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/15/pc/quest_logo_shaded.tga.ckd/47d40401a61b3562e402fc3e1db2e702.ckd" + }, + "id": "15", + "locked": 0, + "playlist": [ + "Balance", + "AmIWrong", + "Gentleman" + ], + "title": "Cupcake" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/14/quest_logo.png/c0a65c3ee3f1deed33ea802cf6258573.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/14/pc/quest_cover.tga.ckd/0cc249321525cc309424af91273e8d95.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/14/pc/quest_logo.tga.ckd/851972c6213a1d0afd95b0e9349edc4a.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/14/pc/quest_logo_shaded.tga.ckd/eae358efcd2fa9b63e40fdd57c789689.ckd" + }, + "id": "14", + "locked": 0, + "playlist": [ + "BlurredLines", + "DontYouWorryDLC", + "DynamiteQUAT" + ], + "title": "Mushroom" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/13/quest_logo.png/74f502356412b40a623d7b95660ae76f.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/13/pc/quest_cover.tga.ckd/8149d51dca9a7b9a321547e8100de201.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/13/pc/quest_logo.tga.ckd/aaf7d376b312436abaf8d762e793ca6c.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/13/pc/quest_logo_shaded.tga.ckd/fbeb1f5454ef05ad9d0dc5038cf8de0c.ckd" + }, + "id": "13", + "locked": 0, + "playlist": [ + "BreakFreeDLC", + "PartyRock", + "IndiaWaale" + ], + "title": "Special Easter" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/12/quest_logo.png/5311d0135ede4c0f8347e423047b9778.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/12/pc/quest_cover.tga.ckd/db1a9316ef932e95729b707fa0deddaf.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/12/pc/quest_logo.tga.ckd/de582030f36091eabc583d8af3c4c41f.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/12/pc/quest_logo_shaded.tga.ckd/7baef08ecbf787edd8fbe3eceecf38d7.ckd" + }, + "id": "12", + "locked": 0, + "playlist": [ + "SexyAndIKnowItDLC", + "TasteTheFeeling", + "Wild" + ], + "title": "Lucky" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/11/quest_logo.png/abbefb0ab56600e7917e3ba522d2c59b.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/11/jd2016-pc-all/quest_cover.tga.ckd/c567b0c89d8ae453e281dadc8e6308aa.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/11/jd2016-pc-all/quest_logo.tga.ckd/57be10a1e786909f8a7127976ae20ac8.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/11/jd2016-pc-all/quest_logo_shaded.tga.ckd/a2f662a8933e61706dcc08c49fd3851a.ckd" + }, + "id": "11", + "locked": 0, + "playlist": [ + "BoomClapDLC", + "YouReTheFirst", + "FindYou" + ], + "title": "Special Valentine" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/9/quest_logo.png/02234d2f68340f5803c995be4369c7d0.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/9/jd2016-pc-all/quest_cover.tga.ckd/e9ad251548b89569b26d874e35b4995e.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/9/jd2016-pc-all/quest_logo.tga.ckd/0ba02470475bdfb34868398bfcd637a4.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/9/jd2016-pc-all/quest_logo_shaded.tga.ckd/dd695d93c4f213aacbe94b0ee60d6c3c.ckd" + }, + "id": "9", + "locked": 0, + "playlist": [ + "LetItGo", + "Xmas", + "Rasputin" + ], + "title": "Special New Year" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/8/quest_logo.png/7cffa3bfde67292fc6db4b6d71135216.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/8/jd2016-pc-all/quest_cover.tga.ckd/53f073649fa623de7a2ce9c2068fee8e.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/8/jd2016-pc-all/quest_logo.tga.ckd/83edfd18c0170287bf4f53ca021632a8.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/8/jd2016-pc-all/quest_logo_shaded.tga.ckd/77c9195cbc07a065cf2bb4f651eed324.ckd" + }, + "id": "8", + "locked": 0, + "playlist": [ + "MovesLikeDLC", + "ShutUp", + "TurnUpTheLove" + ], + "title": "Royal Key" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/7/quest_logo.png/10e2e3fa08edae8efebd021f06350cdf.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/7/jd2016-pc-all/quest_cover.tga.ckd/24677a442f399f91b3f940a87b15b247.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/7/jd2016-pc-all/quest_logo.tga.ckd/898de48f6d617d1f416735e0c44e2b70.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/7/jd2016-pc-all/quest_logo_shaded.tga.ckd/533c9c7f5bfc0df7198dd084275d2e94.ckd" + }, + "id": "7", + "locked": 0, + "playlist": [ + "Mad", + "HeyYa", + "BetterWhen" + ], + "title": "Castle" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/6/quest_logo.png/6751c7a26488a99c3fa1a3f68744e658.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/6/jd2016-pc-all/quest_cover.tga.ckd/f1a42d8cd25b5ffb9246d19e1bb9c2c9.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/6/jd2016-pc-all/quest_logo.tga.ckd/f6a9aefdc0ea779f745d717c3ac2dc5f.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/6/jd2016-pc-all/quest_logo_shaded.tga.ckd/6e21cbba14f40d5294bfd700818a2a9e.ckd" + }, + "id": "6", + "locked": 0, + "playlist": [ + "GoodFeeling", + "IDidItAgainQUAT", + "BuiltForThis" + ], + "title": "Royal" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/5/quest_logo.png/809c25c0e6f365305c15cd47c9a6bb6b.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/5/jd2016-pc-all/quest_cover.tga.ckd/b0a7fbe83595de3ccd1e3b582f18bb51.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/5/jd2016-pc-all/quest_logo.tga.ckd/4a5431acf99c575761caf4f298ebc010.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/5/jd2016-pc-all/quest_logo_shaded.tga.ckd/081b5061adc87f66e2b01381ad7cceba.ckd" + }, + "id": "5", + "locked": 0, + "playlist": [ + "HalloweenQUAT", + "IWillSurvive", + "Ghostbusters" + ], + "title": "Special Halloween" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/4/quest_logo.png/fb7b37c10b5527a8b202a94575725295.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/4/jd2016-pc-all/quest_cover.tga.ckd/c7f1e3ffa46db464491b14735803eb13.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/4/jd2016-pc-all/quest_logo.tga.ckd/a90165516797cfbe16b6d258ba2c14ba.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/4/jd2016-pc-all/quest_logo_shaded.tga.ckd/0d461a70699fe07db316c47e0fe7156d.ckd" + }, + "id": "4", + "locked": 0, + "playlist": [ + "Happy", + "Cmon", + "PoundTheAlarm" + ], + "title": "Ring" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/3/quest_logo.png/4ddd43c50a3fc4a625e75712541e304d.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/3/jd2016-pc-all/quest_cover.tga.ckd/4f50e3e612b389ecfd6a86ddd94c89b1.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/3/jd2016-pc-all/quest_logo.tga.ckd/37a776c63bd96a87d21fd3bbb4b2af68.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/3/jd2016-pc-all/quest_logo_shaded.tga.ckd/0d89016437bdfca9e0082a3a89acd889.ckd" + }, + "id": "3", + "locked": 0, + "playlist": [ + "JustDance", + "Americano", + "ThatPower" + ], + "title": "Scepter" + }, + { + "__class": "OnlineQuest", + "assetUrls": { + "phoneImageURL": "https://jd-s3.akamaized.net/public/quests/2/quest_logo.png/451367e761e147544cbbd7a7f25e777f.png", + "coverImageURL": "https://jd-s3.akamaized.net/public/quests/2/jd2016-pc-all/quest_cover.tga.ckd/658bb292c680d3b4aaf552e070442de4.ckd", + "logoImageURL": "https://jd-s3.akamaized.net/public/quests/2/jd2016-pc-all/quest_logo.tga.ckd/d66ff52e888ca3a47a9c43efc29bfb6b.ckd", + "logoShadedImageURL": "https://jd-s3.akamaized.net/public/quests/2/jd2016-pc-all/quest_logo_shaded.tga.ckd/dbc4f4818f1055c566307367784fcb6e.ckd" + }, + "id": "2", + "locked": 0, + "playlist": [ + "GangnamStyleDLC", + "Cheerleader", + "BadRomance" + ], + "title": "Throne" + } +] \ No newline at end of file diff --git a/justdanceonline-main/local_settings/songdb/specificMaps.json b/justdanceonline-main/local_settings/songdb/specificMaps.json new file mode 100644 index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b --- /dev/null +++ b/justdanceonline-main/local_settings/songdb/specificMaps.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/justdanceonline-main/local_settings/wdf/online-bosses.json b/justdanceonline-main/local_settings/wdf/online-bosses.json new file mode 100644 index 0000000000000000000000000000000000000000..d2d5c227b120cea6231a6dd12bcbf1a821519641 --- /dev/null +++ b/justdanceonline-main/local_settings/wdf/online-bosses.json @@ -0,0 +1,32 @@ +{ + "__class": "OnlineBossDb", + "bosses": { + "ArcherOfLove": { + "__class": "OnlineBoss", + "bossId": "ArcherOfLove", + "logo": "https://jd-s3.akamaized.net/public/wdf-bosses/ArcherOfLove/nx/logo.png/180863c7c26934f902e01b049af96f5c.png", + "newsFeedPictureUrl": "https://jd-s3.akamaized.net/public/wdf-bosses/ArcherOfLove/nx/ArcherOfLove.png/54d10b1d60e6216b027c859dd301adf7.png", + "packages": { + "bossContent": "ArcherOfLove_bossContent" + } + }, + "TheLovelyGift": { + "__class": "OnlineBoss", + "bossId": "TheLovelyGift", + "logo": "https://jd-s3.akamaized.net/public/wdf-bosses/TheLovelyGift/nx/logo.png/45da7b3cd7599c8836986bc07f0c4f7a.png", + "newsFeedPictureUrl": "https://jd-s3.akamaized.net/public/wdf-bosses/TheLovelyGift/nx/TheLovelyGift.png/d159cc99843b1a5cddbfe6b27d9bf63a.png", + "packages": { + "bossContent": "TheLovelyGift_bossContent" + } + }, + "TheRedQueen": { + "__class": "OnlineBoss", + "bossId": "TheRedQueen", + "logo": "https://jd-s3.akamaized.net/public/wdf-bosses/TheRedQueen/nx/logo.png/aa3566c16809b2be9e18604903ebb9fb.png", + "newsFeedPictureUrl": "https://jd-s3.akamaized.net/public/wdf-bosses/TheRedQueen/nx/TheRedQueen.png/69bead63709ce11cf310846a47f7f04c.png", + "packages": { + "bossContent": "TheRedQueen_bossContent" + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/10000Lucht.json b/justdanceonline-main/maps/10000Lucht.json new file mode 100644 index 0000000000000000000000000000000000000000..e437aca2ee673bd56253ad6631f237d5be2c7dc8 --- /dev/null +++ b/justdanceonline-main/maps/10000Lucht.json @@ -0,0 +1,110 @@ +{ + "artist": "K3", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_banner_bkg.tga.ckd/e087ad4483dea2883fa8ec5bc525ffdb.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_Coach_1.tga.ckd/0699612d6e7faefc4edae44e0f115ad4.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_Coach_2.tga.ckd/2331f0b0b324b962b9ff0d753cc07b19.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_Coach_3.tga.ckd/3f91b11ba6a9a6709405fb959f3756b0.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_Cover_Generic.tga.ckd/600b61e498083777ab63eadff549f50c.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Cover_1024.png/e4196d244eef947687c1f574e72d1d1f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_Cover_Online.tga.ckd/2a72998818027f08daaad70b031b4c21.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_Cover_AlbumBkg.tga.ckd/7dd83ce2a526e97696800d5ab4fe354b.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_Cover_AlbumCoach.tga.ckd/b84a3901af64add9a69b4db595457f6d.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Coach_1_Phone.png/0b06c3f9c88e662414439b7c0534231e.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Coach_2_Phone.png/2d1c00ae864cd9c95fe905b41b222993.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Coach_3_Phone.png/0c58b99baa08e84403e9340ab2d846f9.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Cover_Phone.jpg/f06612216b15bd5338467e6b7c4bb8e3.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_VideoPreview.webm/c19b96c447f3074c0675c3ded0c3cb9d.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_map_bkg.tga.ckd/137b1508cbcbffdb1a6a7545825bb958.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_banner_bkg.tga.ckd/d84746c55705e74bedbb0370174ac1bc.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_Coach_1.tga.ckd/351bfa8ffc884ec5423805bde0598459.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_Coach_2.tga.ckd/6f57152f60542341b6a53d6e1a291ddc.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_Coach_3.tga.ckd/d526e4e815ea78d8a5272ee4e41e2b82.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_Cover_Generic.tga.ckd/7fcada646cb1ef963ee96b388abb816f.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Cover_1024.png/e4196d244eef947687c1f574e72d1d1f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_Cover_Online.tga.ckd/33f7c281e61532b80d748434afe1a047.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_Cover_AlbumBkg.tga.ckd/cf9aa184d33115b2f73bf89631089fbc.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_Cover_AlbumCoach.tga.ckd/d5c3967fd8a4cc0cdb40025cbc29af2e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Coach_1_Phone.png/0b06c3f9c88e662414439b7c0534231e.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Coach_2_Phone.png/2d1c00ae864cd9c95fe905b41b222993.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Coach_3_Phone.png/0c58b99baa08e84403e9340ab2d846f9.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_Cover_Phone.jpg/f06612216b15bd5338467e6b7c4bb8e3.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_VideoPreview.webm/c19b96c447f3074c0675c3ded0c3cb9d.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_map_bkg.tga.ckd/9c59caa299300be19ad0b96440f1adda.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26916,53832,80748,107664,134580,161495,188411,215327,242243,269159,296075,322991,349907,376823,403738,430654,457570,484486,511402,538318,565234,592150,619066,645981,672897,699813,726729,753645,780561,807477,834393,861309,888224,915140,942056,968972,995888,1022804,1049720,1076636,1103552,1130467,1157383,1184299,1211215,1238131,1265047,1291963,1318879,1345795,1372710,1399626,1426542],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":380,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":53,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/10000lucht/10000lucht_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written and composed by Alain Vande Putte, Miguel Wiels and Peter Gillis. Published by Studio 100 nv. Courtesy of Studio 100 nv. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "B50055FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 214.72299999999998, + "mapName": "10000Lucht", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2020, + "packages": { + "mapContent": "10000Lucht_mapContent" + }, + "parentMapName": "10000Lucht", + "skuIds": [], + "songColors": { + "songColor_1A": "166593FF", + "songColor_1B": "1D023FFF", + "songColor_2A": "F21EFFFF", + "songColor_2B": "005A7FFF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "10.000 Luchtballonnen", + "urls": { + "jmcs://jd-contents/10000Lucht/10000Lucht_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_AudioPreview.ogg/a4111d7fa9455356623aefed0cceca4f.ogg", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_HIGH.vp8.webm/826c29864c6effbe6941335a79d6761f.webm", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_HIGH.vp9.webm/4f02dd2bd9dd5f4ff8561e2d91926a09.webm", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_LOW.vp8.webm/427ffda3e61225037db3752f3d63bdc9.webm", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_LOW.vp9.webm/114250066f05154e03b3230b0f83bcdb.webm", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_MID.vp8.webm/3c4c320e30723a71c7936dfc747eaede.webm", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_MID.vp9.webm/47db2057cb52aa67b4ec1b072a5993d5.webm", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_ULTRA.vp8.webm/4bc689b1f7b724d9d117b65ddd3e996f.webm", + "jmcs://jd-contents/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/10000Lucht/10000Lucht_MapPreviewNoSoundCrop_ULTRA.vp9.webm/9c4054114d79034b323b3060a13dcbfc.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "c5c613a0c80212828c78c62ec486c47d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/10000Lucht/ps4/10000Lucht_MAIN_SCENE_ORBIS.zip/c5c613a0c80212828c78c62ec486c47d.zip", + "version": 37 + }, + "nx": { + "md5": "bc01678a4e68623a1e32c8327eb22b55", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/10000Lucht/nx/10000Lucht_MAIN_SCENE_NX.zip/bc01678a4e68623a1e32c8327eb22b55.zip", + "version": 37 + }, + "pc": { + "md5": "2824204eddc9081660d5e0ff0492392c", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/10000Lucht/pc/10000Lucht_MAIN_SCENE_PC.zip/2824204eddc9081660d5e0ff0492392c.zip", + "version": 26 + }, + "wiiu": { + "md5": "0727099340d65e2eae2353f5012eb037", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/10000Lucht/wiiu/10000Lucht_MAIN_SCENE_WIIU.zip/0727099340d65e2eae2353f5012eb037.zip", + "version": 22 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/1999.json b/justdanceonline-main/maps/1999.json new file mode 100644 index 0000000000000000000000000000000000000000..d142cbfbf01987d821b7ce7e6321abdad9b544c8 --- /dev/null +++ b/justdanceonline-main/maps/1999.json @@ -0,0 +1,106 @@ +{ + "artist": "Charli XCX & Troye Sivan", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_banner_bkg.tga.ckd/a148d982bc6a50edbe9c4caacbd585c0.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_Coach_1.tga.ckd/1f922041369573d0f3c88060fa5988f1.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_Coach_2.tga.ckd/047c9fafcf120b3eb678acec36304f93.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_Cover_Generic.tga.ckd/f26540295874883f9118f7b28ebceefe.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Cover_1024.png/f885f236ca076fb6b87b3a4648113e62.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_Cover_Online.tga.ckd/2fc2d13026199b1eebb5a058b8ade4b6.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_Cover_AlbumBkg.tga.ckd/3dc7626608d2919a93a5171f3845a48f.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_Cover_AlbumCoach.tga.ckd/a76b2dfcdd206e1902f3e939a33aa042.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Coach_1_Phone.png/f643a873dd544ec5453ff23248c43ed0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Coach_2_Phone.png/3a91dab5a9a44b457ac88de682ba695b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Cover_Phone.jpg/516ffa16d6f565e6bba66a8664761453.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/1999/1999_VideoPreview.webm/6c8bb28e9eb03f164989df32ffed5799.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_map_bkg.tga.ckd/0563ccabe2b3bed6699880713bc8c318.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_banner_bkg.tga.ckd/622f8444f50b2c86928378073e924128.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_Coach_1.tga.ckd/a8a263d0f117ca32d8e0dc3cacfcb15d.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_Coach_2.tga.ckd/2aa9764bd6486612951eec96fbaec9df.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_Cover_Generic.tga.ckd/cabdafb8c6983674da2a14291d209632.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Cover_1024.png/f885f236ca076fb6b87b3a4648113e62.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_Cover_Online.tga.ckd/1eb0db45c7422f68f33fe576704c0282.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_Cover_AlbumBkg.tga.ckd/251d4fd337b3d32ebd345ee5375941f3.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_Cover_AlbumCoach.tga.ckd/d3d6ab167f1e7205b86042e018b97ac2.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Coach_1_Phone.png/f643a873dd544ec5453ff23248c43ed0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Coach_2_Phone.png/3a91dab5a9a44b457ac88de682ba695b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/1999/1999_Cover_Phone.jpg/516ffa16d6f565e6bba66a8664761453.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/1999/1999_VideoPreview.webm/6c8bb28e9eb03f164989df32ffed5799.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_map_bkg.tga.ckd/b5da3e64049f069f44fcd21dce11cff4.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23226,46452,69678,92904,116129,139355,162581,185807,209033,232258,255484,278710,301936,325162,348388,371613,394839,418065,441291,464517,487742,510968,534194,557420,580646,603871,627097,650323,673549,696775,720000,743226,766452,789678,812904,836129,859355,882581,905807,929033,952258,975484,998710,1021936,1045162,1068388,1091613,1114839,1138065,1161291,1184517,1207742,1230968,1254194,1277420,1300646,1323871,1347097,1370323,1393549,1416775],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":394,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/1999/1999_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Charlotte Aitchison, Troye Sivan Mellet, Oscar Thomas Holter, Brett McLaughlin and Noonie Bao. Published by Stellar Songs Ltd. (PRS), Bob Ochoa’s Homemade Salsa (ASCAP), EMI Music Publishing Scandinavia AB (STIM). / Universal/MCA Music Ltd. / Wolf Cousins (STIM) and Warner/Chappell Music Scandinavia AB (STIM). All rights on behalf of Wolf Cousins and Warner/Chappell Music Scandinavia AB administered by WB Music Corp. All rights reserved. Used with permission. Courtesy of East West Records UK Ltd. By arrangement with Warner Music Group Film & TV Licensing. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF78C4FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 194.516, + "mapName": "1999", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2020, + "packages": { + "mapContent": "1999_mapContent" + }, + "parentMapName": "1999", + "skuIds": [], + "songColors": { + "songColor_1A": "048C57FF", + "songColor_1B": "005635FF", + "songColor_2A": "FF8A17FF", + "songColor_2B": "AC3D00FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "1999", + "urls": { + "jmcs://jd-contents/1999/1999_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/1999/1999_AudioPreview.ogg/4fadb8cee1ca5937ce8636eafbb0beec.ogg", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_HIGH.vp8.webm/098eac031a0a27e542df9fa994ef6b62.webm", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_HIGH.vp9.webm/4b94d4b03bc5b6afb4f8afa65187b784.webm", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_LOW.vp8.webm/6e1c9104fe5e28e9f22b7d313b01ac92.webm", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_LOW.vp9.webm/00a2a64b415ec7cadceaef378c426c6d.webm", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_MID.vp8.webm/d8e50ad1ed5cf4407d9fddca73dff6e8.webm", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_MID.vp9.webm/a32d53d65ff3b5bfa782136238bca091.webm", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_ULTRA.vp8.webm/aa327669d9319c06cf7e062be30a019f.webm", + "jmcs://jd-contents/1999/1999_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/1999/1999_MapPreviewNoSoundCrop_ULTRA.vp9.webm/1e7b5cb4b2405ca7bfbda04ed11e245f.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "cb6e08b81802321e743d7c632bf3ac94", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/1999/ps4/1999_MAIN_SCENE_ORBIS.zip/cb6e08b81802321e743d7c632bf3ac94.zip", + "version": 24 + }, + "nx": { + "md5": "511e6da97b820566bcae49843141fdaf", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/1999/nx/1999_MAIN_SCENE_NX.zip/511e6da97b820566bcae49843141fdaf.zip", + "version": 25 + }, + "pc": { + "md5": "d9815016ae5d4698fec55fbf7f6812e5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/1999/pc/1999_MAIN_SCENE_PC.zip/d9815016ae5d4698fec55fbf7f6812e5.zip", + "version": 8 + }, + "wiiu": { + "md5": "56ed462798593bfe98b8297265e49e08", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/1999/wiiu/1999_MAIN_SCENE_WIIU.zip/56ed462798593bfe98b8297265e49e08.zip", + "version": 14 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/8BitRetake.json b/justdanceonline-main/maps/8BitRetake.json new file mode 100644 index 0000000000000000000000000000000000000000..c3e709373f1c7e471eb7ae73ae20eb310be64e6b --- /dev/null +++ b/justdanceonline-main/maps/8BitRetake.json @@ -0,0 +1,123 @@ +{ + "artist": "Dancing Bros.", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_banner_bkg.tga.ckd/632c94e4ad66392c869b0578ff614cc1.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Coach_1.tga.ckd/cb2c22780fe167b09ff27d67465583ea.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Generic.tga.ckd/9b2b0fa28a89df1810b4478db31171e0.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_1024.png/fab90ea4f62fc379ac967155f11b6e48.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Online.tga.ckd/9cf1ef6cad17dfa7ae796655e883f93f.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_AlbumBkg.tga.ckd/c35181f02fd1705fbb694e17fb346c32.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_AlbumCoach.tga.ckd/a12420f36e417310a0cdd585f7871edc.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Coach_1_Phone.png/bcae1ef7c878e33a4116f53afa21a5b3.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Phone.jpg/d1a47cbf0f03d1a733542e38f4fc5bbe.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_VideoPreview.webm/1fa882b1f1d44b336045414431b972f0.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/ps4/8BitRetake_map_bkg.tga.ckd/1480cdc70f00bcd63a08279a480f7982.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_banner_bkg.tga.ckd/3a9442c13f93c7d1e546966c26d96179.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Coach_1.tga.ckd/9ca0e400c346d6adcc3927880e977352.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Generic.tga.ckd/332d8c5e26edb690115193683b95953e.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_1024.png/fab90ea4f62fc379ac967155f11b6e48.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Online.tga.ckd/46abafc40412ab98e03e8fe6d258a340.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_AlbumBkg.tga.ckd/530171bb926a2c0e986df733c7728573.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_AlbumCoach.tga.ckd/b4217a37c1e291094f45aa3a8d1fa382.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Coach_1_Phone.png/bcae1ef7c878e33a4116f53afa21a5b3.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Phone.jpg/d1a47cbf0f03d1a733542e38f4fc5bbe.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_VideoPreview.webm/1fa882b1f1d44b336045414431b972f0.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/nx/8BitRetake_map_bkg.tga.ckd/4a82179fe7e435ef88b7446a13c28455.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_banner_bkg.tga.ckd/15e0e0053bac48f88b1d54e1dc782c69.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Coach_1.tga.ckd/b42b81e79d42f7fde3c75c358a594469.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Generic.tga.ckd/afbabca20c36d5a37aba4b2c6066f406.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_1024.png/fab90ea4f62fc379ac967155f11b6e48.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Online.tga.ckd/83ca00eee376b2182a5b1bbb4ad17e4d.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_AlbumBkg.tga.ckd/3cffa13fb97d78ad3274f5dc24e85ebe.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_AlbumCoach.tga.ckd/1259498b2abca96393872e36366b3fa1.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Coach_1_Phone.png/bcae1ef7c878e33a4116f53afa21a5b3.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_Cover_Phone.jpg/d1a47cbf0f03d1a733542e38f4fc5bbe.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_VideoPreview.webm/1fa882b1f1d44b336045414431b972f0.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,20544,41136,61728,82272,102864,123408,144000,164544,185136,205728,226272,246864,267408,288000,308544,329136,349728,370272,390864,411408,432000,452544,473136,493728,514272,534864,555408,576000,596544,617136,637728,658272,677472,696672,715872,735072,754272,773472,792672,811872,831072,850272,869472,888672,907872,927072,946272,965472,984672,1003872,1023072,1042272,1061472,1080672,1099872,1119072,1138272,1157472,1176672,1195872,1215072,1234272,1253472,1272672,1290672,1308672,1326672,1344672,1362672,1380672,1398672,1416672,1434672],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":309,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":73,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/8bitretake/8bitretake_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Produced, Performed, Engineered and Mixed by Steve Ouimette. Published by Ubisoft Music Publishing. Courtesy of Ubisoft Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 158.45, + "mapName": "8BitRetake", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "8BitRetake_mapContent" + }, + "parentMapName": "8BitRetake", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "E60000FF", + "songColor_1B": "210101FF", + "songColor_2A": "1AC6FEFF", + "songColor_2B": "094501FF" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "In The Hall Of The Pixel King", + "urls": { + "jmcs://jd-contents/8BitRetake/8BitRetake_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_AudioPreview.ogg/e5c22fe9b867287747ba440de4d424dc.ogg", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_HIGH.vp8.webm/dbfc0de340d2d3a79c94c5e1b985a332.webm", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_HIGH.vp9.webm/3b272233762d23787ce8b13e58deb8e2.webm", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_LOW.vp8.webm/549edffa3e191e079aa5f093feb6c4a8.webm", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_LOW.vp9.webm/d6baba1fd3bbdf7805756ffd13e3750b.webm", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_MID.vp8.webm/c8b69b5c03ecd2cf88bc7047d3478355.webm", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_MID.vp9.webm/66efbccd601476d182e9fa229ef5b032.webm", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_ULTRA.vp8.webm/e34366015653261ad2f3ba2f1763e467.webm", + "jmcs://jd-contents/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MapPreviewNoSoundCrop_ULTRA.vp9.webm/5d2d35c002dcbd0e74c271cf8eea71cc.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "113d0bca513f9389c5ffeae4c10579b5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MAIN_SCENE_ORBIS.zip/113d0bca513f9389c5ffeae4c10579b5.zip", + "version": 6 + }, + "nx": { + "md5": "a110de1cee429b704cfa5185af1ef8e9", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MAIN_SCENE_NX.zip/a110de1cee429b704cfa5185af1ef8e9.zip", + "version": 5 + }, + "pc": { + "md5": "fdb504153d9fe5b0ce0ba756faeab225", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/8BitRetake/pc/8BitRetake_MAIN_SCENE_PC.zip/fdb504153d9fe5b0ce0ba756faeab225.zip", + "version": 2 + }, + "wiiu": { + "md5": "8b6276f804eede27a730b9e16e6b836b", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/8BitRetake/8BitRetake_MAIN_SCENE_WIIU.zip/8b6276f804eede27a730b9e16e6b836b.zip", + "version": 6 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AboutThatBass.json b/justdanceonline-main/maps/AboutThatBass.json new file mode 100644 index 0000000000000000000000000000000000000000..d8facf61e62aa74592d35970696b1106281166b2 --- /dev/null +++ b/justdanceonline-main/maps/AboutThatBass.json @@ -0,0 +1,114 @@ +{ + "artist": "Meghan Trainor", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_banner_bkg.jpg/c470fe7231bf38d92d8c6b1c9b926b7f.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Coach_1.png/84ae20bfa225e99361b702bae948e8d2.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_Generic.jpg/f64a26aa4f08c80ed42243d916ba2cdd.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_1024.png/5124c387687c2aa1557e0a788842efab.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_Online.jpg/b8f2bbb5eda030df35fd0239f52ff797.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_AlbumBkg.jpg/acccbd35f4148ed7a6a709d1c4b009d3.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_AlbumCoach.png/cedc92e569bc9b24b9631d1eae5e2385.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Coach_1_Phone.png/3d9643daba8abf3741adf96c3d137b7e.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_Phone.jpg/b8f2bbb5eda030df35fd0239f52ff797.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_VideoPreview.webm/93ac284dd958bf0d432699d5b2cdf22e.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_banner_bkg.jpg/c470fe7231bf38d92d8c6b1c9b926b7f.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Coach_1.png/84ae20bfa225e99361b702bae948e8d2.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_Generic.jpg/f64a26aa4f08c80ed42243d916ba2cdd.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_1024.png/5124c387687c2aa1557e0a788842efab.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_Online.jpg/b8f2bbb5eda030df35fd0239f52ff797.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_AlbumBkg.jpg/acccbd35f4148ed7a6a709d1c4b009d3.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_AlbumCoach.png/cedc92e569bc9b24b9631d1eae5e2385.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Coach_1_Phone.png/3d9643daba8abf3741adf96c3d137b7e.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_Phone.jpg/b8f2bbb5eda030df35fd0239f52ff797.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_VideoPreview.webm/93ac284dd958bf0d432699d5b2cdf22e.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/wiiu/AboutThatBass_banner_bkg.tga.ckd/6ff6336f0da9e85c0a7a062d5730945f.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/wiiu/AboutThatBass_Coach_1.tga.ckd/5088873c9ef5b680d10f50ec42442c83.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/wiiu/AboutThatBass_Cover_Generic.tga.ckd/30e44b5469f02192321f4da06284073c.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_1024.png/5124c387687c2aa1557e0a788842efab.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/wiiu/AboutThatBass_Cover_Online.tga.ckd/05ae8378226976948255f24530438285.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/wiiu/AboutThatBass_Cover_AlbumBkg.tga.ckd/27536ce3feff787eb641c016b8d09cf6.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/wiiu/AboutThatBass_Cover_AlbumCoach.tga.ckd/7bb66aed08ebd7dfddb35f8db266e598.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Coach_1_Phone.png/3d9643daba8abf3741adf96c3d137b7e.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_Cover_Phone.jpg/b8f2bbb5eda030df35fd0239f52ff797.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_VideoPreview.webm/93ac284dd958bf0d432699d5b2cdf22e.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21504,43008,64464,85968,107472,128976,150432,171936,193439,214943,236399,257903,279407,300911,322415,343871,365375,386879,408383,429839,451343,472847,494351,515807,537311,558815,580319,601775,623279,644783,666287,687743,709247,730751,752255,773759,795215,816719,838222,859726,881182,902686,924190,945694,967150,988654,1010158,1031662,1053118,1074622,1096126,1117630,1139086,1160590,1182094,1203598,1225054,1246558,1268062,1289566,1311070,1332526,1354030,1375534,1397038,1418494,1439998],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":422,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":67,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/aboutthatbass/aboutthatbass_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "6F46F0FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 189.852, + "mapName": "AboutThatBass", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "AboutThatBass_mapContent" + }, + "parentMapName": "AboutThatBass", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "FFC052FF", + "songColor_1B": "CE6F2FFF", + "songColor_2A": "8669FFFF", + "songColor_2B": "30006CFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "All About That Bass", + "urls": { + "jmcs://jd-contents/AboutThatBass/AboutThatBass_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_AudioPreview.ogg/4dde4e8e7aa25c84516d6771803d79c1.ogg", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_HIGH.vp8.webm/2ed6da87c34e2105035df171372c5192.webm", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_HIGH.vp9.webm/635368ac17f788cb5be79e75f8a59fff.webm", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_LOW.vp8.webm/94ee4ccf8bfa84fd3fc0eb721d5581a7.webm", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_LOW.vp9.webm/2a2be34cb365aececbc355ed7d9b1ea6.webm", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_MID.vp8.webm/6f6abc7150ff35863d6703321195bac7.webm", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_MID.vp9.webm/0b750d0d89bca7a9ab750091f3ebf5a1.webm", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_ULTRA.vp8.webm/374ac0e5d8a4147b665b9e70062056e4.webm", + "jmcs://jd-contents/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBass/AboutThatBass_MapPreviewNoSoundCrop_ULTRA.vp9.webm/d1361612d5ef1b6680518528867b79b7.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "15ac7a8c910ed3b1c1786762a0348230", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBass/ps4/AboutThatBass_MAIN_SCENE_ORBIS.zip/15ac7a8c910ed3b1c1786762a0348230.zip", + "version": 5 + }, + "pc": { + "md5": "4c5356f788dddc5058e65f116dc533e4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBass/pc/AboutThatBass_MAIN_SCENE_PC.zip/4c5356f788dddc5058e65f116dc533e4.zip", + "version": 3 + }, + "wiiu": { + "md5": "bdf1548251a85d46a07ba630e5e807a3", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBass/wiiu/AboutThatBass_MAIN_SCENE_WIIU.zip/bdf1548251a85d46a07ba630e5e807a3.zip", + "version": 5 + }, + "nx": { + "md5": "a73539e5249323896ab628c2612a74ae", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBass/nx/AboutThatBass_MAIN_SCENE_NX.zip/a73539e5249323896ab628c2612a74ae.zip", + "version": 4 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AboutThatBassALT.json b/justdanceonline-main/maps/AboutThatBassALT.json new file mode 100644 index 0000000000000000000000000000000000000000..c01012deef47771650ee2d4088c7857d3c14f3f1 --- /dev/null +++ b/justdanceonline-main/maps/AboutThatBassALT.json @@ -0,0 +1,118 @@ +{ + "artist": "Meghan Trainor", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_banner_bkg.jpg/e0ac1830f2f5d886a9190e11748f7150.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_1.png/6867f555fe5732aae6763d12f318bdff.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_2.png/67d1c3265eb2b24e92cdd437ca80abdb.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_Generic.jpg/4b35834e6be83f603bc9f99aada09dbc.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_1024.png/7fbe7b4cf520d37088b04cf2e03ce9ef.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_Online.jpg/55b1a12eae0d628f73211f8aa2b415f6.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_AlbumBkg.jpg/25a676086eddfbc4c6ccf26b9b9d57c9.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_AlbumCoach.png/6d7fd51887bb8a7550c181457fc773f1.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_1_Phone.png/068927a15b6094993e128e748448a181.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_2_Phone.png/27a4c9dc896e02aeaffe28bbdf1e68b5.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_Phone.jpg/55b1a12eae0d628f73211f8aa2b415f6.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_banner_bkg.jpg/e0ac1830f2f5d886a9190e11748f7150.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_1.png/6867f555fe5732aae6763d12f318bdff.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_2.png/67d1c3265eb2b24e92cdd437ca80abdb.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_Generic.jpg/4b35834e6be83f603bc9f99aada09dbc.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_1024.png/7fbe7b4cf520d37088b04cf2e03ce9ef.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_Online.jpg/55b1a12eae0d628f73211f8aa2b415f6.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_AlbumBkg.jpg/25a676086eddfbc4c6ccf26b9b9d57c9.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_AlbumCoach.png/6d7fd51887bb8a7550c181457fc773f1.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_1_Phone.png/068927a15b6094993e128e748448a181.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_2_Phone.png/27a4c9dc896e02aeaffe28bbdf1e68b5.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_Phone.jpg/55b1a12eae0d628f73211f8aa2b415f6.jpg" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_banner_bkg.tga.ckd/53ef806864395907adf49f0eea3325f3.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_Coach_1.tga.ckd/a2b72a03db5941df61b0b92fc48660f7.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_Coach_2.tga.ckd/5d49d2543dc051b05c3e6791b349bf05.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_Cover_Generic.tga.ckd/0074d47b8ab89d1eb3a1edb12729915b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_1024.png/7fbe7b4cf520d37088b04cf2e03ce9ef.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_Cover_Online.tga.ckd/1ec456a26b0219da02fdad321b47624d.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_Cover_AlbumBkg.tga.ckd/96218cee07d1ab1e41b64d072e18b7e6.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_Cover_AlbumCoach.tga.ckd/f595f799db6ecfaf18816a34d59a57f7.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_1_Phone.png/068927a15b6094993e128e748448a181.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Coach_2_Phone.png/27a4c9dc896e02aeaffe28bbdf1e68b5.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_Cover_Phone.jpg/55b1a12eae0d628f73211f8aa2b415f6.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21504,43008,64464,85968,107472,128976,150432,171936,193439,214943,236399,257903,279407,300911,322415,343871,365375,386879,408383,429839,451343,472847,494351,515807,537311,558815,580319,601775,623279,644783,666287,687743,709247,730751,752255,773759,795215,816719,838222,859726,881182,902686,924190,945694,967150,988654,1010158,1031662,1053118,1074622,1096126,1117630,1139086,1160590,1182094,1203598,1225054,1246558,1268062,1289566,1311070,1332526,1354030,1375534,1397038,1418494,1439998],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-15,\"endBeat\":423,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":67,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/aboutthatbassalt/aboutthatbassalt_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "C97AFAFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 196.119, + "mapName": "AboutThatBassALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "AboutThatBassALT_mapContent" + }, + "parentMapName": "AboutThatBassALT", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "4DDBD2FF", + "songColor_1B": "255687FF", + "songColor_2A": "A8CA09FF", + "songColor_2B": "004930FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "All About That Bass", + "urls": { + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_AudioPreview.ogg/744035e1cc69297d7ccc3b8b81630f15.ogg", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/7058170d585d26fd98d312d991cef363.webm", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/e8005e1cdd7993071da0eb7f24d6a21a.webm", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_LOW.vp8.webm/0282146314622a6acec405b9befca83c.webm", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_LOW.vp9.webm/1a99a2aa08dd991a7c1d1d57bcdef57b.webm", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_MID.vp8.webm/5185901b502e3bde25d22108035fc2c8.webm", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_MID.vp9.webm/fa69f27aa468f70f30027f77e105e84d.webm", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/627892d401860c1412f2e5080ba8266c.webm", + "jmcs://jd-contents/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/AboutThatBassALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/7bfdc5f7df59b20d59818219b809206c.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "d14b97d6df480efd3985ea2674cdf975", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/ps4/AboutThatBassALT_MAIN_SCENE_ORBIS.zip/d14b97d6df480efd3985ea2674cdf975.zip", + "version": 14 + }, + "pc": { + "md5": "4ff3ba8d33c54ec7ca766c6626b66626", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/pc/AboutThatBassALT_MAIN_SCENE_PC.zip/4ff3ba8d33c54ec7ca766c6626b66626.zip", + "version": 8 + }, + "wiiu": { + "md5": "2a23fd3a2ca823f7afbb513d506edbd3", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/wiiu/AboutThatBassALT_MAIN_SCENE_WIIU.zip/2a23fd3a2ca823f7afbb513d506edbd3.zip", + "version": 12 + }, + "nx": { + "md5": "3dbbd3103c117fc5cb271164604ed2ed", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AboutThatBassALT/nx/AboutThatBassALT_MAIN_SCENE_NX.zip/3dbbd3103c117fc5cb271164604ed2ed.zip", + "version": 10 + } + }, + "mapType": "jdu", + "customTypeNameId": 12619 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AddictedToYou.json b/justdanceonline-main/maps/AddictedToYou.json new file mode 100644 index 0000000000000000000000000000000000000000..ccae949deed0fae522c4c4d3aee8e0af03761ba4 --- /dev/null +++ b/justdanceonline-main/maps/AddictedToYou.json @@ -0,0 +1,97 @@ +{ + "artist": "Avicii", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/textures/AddictedToYou_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22511,45023,67487,89999,112511,135023,157487,179999,202511,225023,247487,269999,292511,315023,337487,359999,382511,405023,427487,449999,472511,495023,517487,539999,562511,585023,607486,629998,652510,675022,697486,719998,742510,765022,787486,809998,832510,855022,877486,899998,922510,945022,967486,989998,1012510,1035022,1057486,1079998,1102510,1125022,1147486,1169998,1192510,1215021,1237485,1259997,1282509,1305021,1327485,1349997,1372509],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":322,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":62,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/AddictedToYou/AddictedToYou_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "44D4D2FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 322, + "mapName": "AddictedToYou", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_LOW.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_MID.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_HIGH.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_ULTRA.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2015, + "packages": { + "mapContent": "AddictedToYou_mapContent" + }, + "parentMapName": "AddictedToYou", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "EBA80EFF", + "songColor_1B": "631200FF", + "songColor_2A": "5902BFFF", + "songColor_2B": "101010FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Addicted To You", + "urls": { + "jmcs://jd-contents/AddictedToYou/AddictedToYou_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/AddictedToYou_AudioPreview.ogg", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm", + "jmcs://jd-contents/AddictedToYou/AddictedToYou_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/AddictedToYou_VideoPreview.vp9.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "3efda6f18166ad3ad52faba988529e3e", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/pc/3efda6f18166ad3ad52faba988529e3e.zip", + "version": 1 + }, + "orbis": { + "md5": "06a06cc1484fe0223b8306cf3b95e21c", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/ps4/06a06cc1484fe0223b8306cf3b95e21c.zip", + "version": 1 + }, + "nx": { + "md5": "b8ef9db767b9b289bcb86c0a2d4a81e9", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AddictedToYou/nx/b8ef9db767b9b289bcb86c0a2d4a81e9.zip", + "version": 1 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Adeyyo.json b/justdanceonline-main/maps/Adeyyo.json new file mode 100644 index 0000000000000000000000000000000000000000..bec0a908bbd24d1ed3decaefa9ec6bcdcbcc4d63 --- /dev/null +++ b/justdanceonline-main/maps/Adeyyo.json @@ -0,0 +1,119 @@ +{ + "artist": "Ece Seçkin", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_banner_bkg.tga.ckd/ca298f1048d7bd306e728fd505fee6b0.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_Coach_1.tga.ckd/744987608a290d2616b413c9c70e6e6d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_Cover_Generic.tga.ckd/9ad6533384a2bf8d39cbb4e38aaf8960.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_1024.png/08a00a0139d849c6b60773936f2a65fd.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_Cover_Online.tga.ckd/832572296b07d0c707f06f8bc3f70029.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_Cover_AlbumBkg.tga.ckd/e4d851feb4ff984e7ec887745a0e255f.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_Cover_AlbumCoach.tga.ckd/7a6e2f0f1539a20a2c3f3b49bc5df63b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Coach_1_Phone.png/46005183903b8e9e661779f2b080c0c9.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_Phone.jpg/9e25608813d888a169d4c5ff1a58e521.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_map_bkg.tga.ckd/676003cdfd2ae3ea4638fc7251f1a365.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_banner_bkg.tga.ckd/1357e48abee2b1bab3883f318f746738.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_Coach_1.tga.ckd/9dc17125858947a1edd8d1166813633e.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_Cover_Generic.tga.ckd/7bdec2eb4063836568fc888cce1e5215.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_1024.png/08a00a0139d849c6b60773936f2a65fd.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_Cover_Online.tga.ckd/667fa53f7b5d39e17ad68eb5a017c121.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_Cover_AlbumBkg.tga.ckd/1b68f7d9910be3f5e08847f53f11bf2b.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_Cover_AlbumCoach.tga.ckd/728cb47d295e74c83466e593b4cfd8ea.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Coach_1_Phone.png/46005183903b8e9e661779f2b080c0c9.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_Phone.jpg/9e25608813d888a169d4c5ff1a58e521.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_map_bkg.tga.ckd/4c709223152b129d44969a6adcec1cb9.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_banner_bkg.jpg/cb0133b2ce1d48c02f05a2dfec03fb85.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Coach_1.png/28a0216b9dca3a6ac696814e0f944757.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_Generic.jpg/eb0519d0cec562ddd81a59454b3a1920.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_1024.png/08a00a0139d849c6b60773936f2a65fd.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_Online.jpg/9e25608813d888a169d4c5ff1a58e521.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_AlbumBkg.jpg/fd98e5509f6d354e276dd37027f26fa5.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_AlbumCoach.png/76166943148421490de48f710787e02e.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Coach_1_Phone.png/46005183903b8e9e661779f2b080c0c9.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_Cover_Phone.jpg/9e25608813d888a169d4c5ff1a58e521.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,30288,60624,90960,121248,151584,181872,212208,242496,272832,303168,333456,363792,394080,424416,454752,485040,515376,545664,576001,606289,636625,666961,697249,727585,757873,788209,818497,848833,879169,909457,939793,970081,1000417,1030753,1061041,1091378,1121666,1152002,1182290,1212626,1242962,1273250,1303586,1333874,1364210,1394498,1424834],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":363,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":47,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/adeyyo/adeyyo_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Aysen Şimşekyay, Kemal Şimşekyay and arranged by Ozan Doğulu. Published by DMC & PRM. Courtesy of DGL. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "6FFFB6FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 231.78799999999998, + "mapName": "Adeyyo", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "Adeyyo_mapContent" + }, + "parentMapName": "Adeyyo", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "010342FF", + "songColor_1B": "411554FF", + "songColor_2A": "97FAFCFF", + "songColor_2B": "11B7C6FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Adeyyo", + "urls": { + "jmcs://jd-contents/Adeyyo/Adeyyo_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_AudioPreview.ogg/02f14559419c919b5045e67afe886bbb.ogg", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_HIGH.vp8.webm/87bafe50891e3c2f7b464e9a9a3642a5.webm", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_HIGH.vp9.webm/4ee523e060d3883f767e44b65bad323c.webm", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_LOW.vp8.webm/26926b2960299c40c8215868089a5b55.webm", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_LOW.vp9.webm/d00e6861667de214d68f20dd986bb7fb.webm", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_MID.vp8.webm/45dbf07161ea6463297bb717c7fc2672.webm", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_MID.vp9.webm/67fa7ca6a1f356d4aea7bfc42249c9e1.webm", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_ULTRA.vp8.webm/bf622b44f199afe46706f33c67a407f9.webm", + "jmcs://jd-contents/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Adeyyo/Adeyyo_MapPreviewNoSoundCrop_ULTRA.vp9.webm/80a0a6ef57ad80e3ad2d6a305299ee8c.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "6e7eb1b6f253eb3dc63b0d23cc44c463", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Adeyyo/ps4/Adeyyo_MAIN_SCENE_ORBIS.zip/6e7eb1b6f253eb3dc63b0d23cc44c463.zip", + "version": 2 + }, + "nx": { + "md5": "aa87529a784bf1cc6a14b2d4d1e1eb60", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Adeyyo/nx/Adeyyo_MAIN_SCENE_NX.zip/aa87529a784bf1cc6a14b2d4d1e1eb60.zip", + "version": 2 + }, + "pc": { + "md5": "218f16387e152f77a083e7c87ef80f62", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/adeyyo_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AdoreYou.json b/justdanceonline-main/maps/AdoreYou.json new file mode 100644 index 0000000000000000000000000000000000000000..8592234a7be557de1f55b9ec1ee2ea85cd55bb8a --- /dev/null +++ b/justdanceonline-main/maps/AdoreYou.json @@ -0,0 +1,90 @@ +{ + "artist": "Harry Styles", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_banner_bkg.jpg/67f5a2862f6672f87c9197f394c548e9.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Coach_1.png/e101a6e696bb2c21e7e44d569280352c.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_Generic.jpg/f3591d299acb3edecd1a84d873001d72.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_Online.jpg/77ed3d788151996c0056494e794f3521.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_AlbumCoach.png/80c0fa4cd3e62f94d9bb1120c561bcf3.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Coach_1_Phone.png/131e255581356b22b80d78f23727bbc2.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_Phone.jpg/77ed3d788151996c0056494e794f3521.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_banner_bkg.jpg/67f5a2862f6672f87c9197f394c548e9.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Coach_1.png/e101a6e696bb2c21e7e44d569280352c.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_Generic.jpg/f3591d299acb3edecd1a84d873001d72.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_Online.jpg/77ed3d788151996c0056494e794f3521.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_AlbumCoach.png/80c0fa4cd3e62f94d9bb1120c561bcf3.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Coach_1_Phone.png/131e255581356b22b80d78f23727bbc2.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AdoreYou/AdoreYou_Cover_Phone.jpg/77ed3d788151996c0056494e794f3521.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,29091,58182,87272,116363,145454,174545,203636,232727,261818,290909,320000,349091,378182,407272,436363,465454,494545,523636,552727,581818,610909,640000,669091,698182,727272,756363,785454,814545,843636,872727,901818,930909,960000,989091,1018182,1047272,1076363,1105454,1134545,1163636,1192727,1221818,1250909,1280000,1309091,1338182,1367272,1396363,1425454],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":344,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":49,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/adoreyou/adoreyou_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Harry Edward Styles, Thomas Edward Percy Hull, Amy Allen and Tyler Sam Johnson. Published by Universal Music Publishing Canada on behalf of Universal Music Publishing Ltd. and HSA Publishing Ltd. / LiveMadLove (ASCAP) / Artist Publishing Group West (ASCAP). Administered by Kobalt Music Publishing America, Inc. / One Year Yesterday Publishing / Pulse. Administered by Concord. Courtesy of Columbia Records. By arrangement with Sony Music Entertainment.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "8A0BCDFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 210.303, + "mapName": "AdoreYou", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "AdoreYou_mapContent" + }, + "parentMapName": "AdoreYou", + "skuIds": [], + "songColors": { + "songColor_1A": "155187FF", + "songColor_1B": "B33AACFF", + "songColor_2A": "D3E1EBFF", + "songColor_2B": "71B1D3FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Adore You", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "59f0f226fd5e8635dcdb4655cfbe33fc", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/ps4/AdoreYou_MAIN_SCENE_ORBIS.zip/59f0f226fd5e8635dcdb4655cfbe33fc.zip", + "version": 1 + }, + "nx": { + "md5": "f20959d3f51454a2c5e43459a2d194c3", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/nx/AdoreYou_MAIN_SCENE_NX.zip/f20959d3f51454a2c5e43459a2d194c3.zip", + "version": 2 + }, + "pc": { + "md5": "b52a5b2bf572aa906afa8df7757f727e", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AdoreYou/pc/b52a5b2bf572aa906afa8df7757f727e.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/AdoreYou/AdoreYou_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_AudioPreview.ogg/2401ae5991cddf17f28afded3d8f88ee.ogg", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_HIGH.vp8.webm/2c88d82ec749cc22d4b5763595c76e41.webm", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_HIGH.vp9.webm/f3ec33898c552277814a510cd2df00cc.webm", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_LOW.vp8.webm/27a0039094185bb53022b3e8384e931a.webm", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_LOW.vp9.webm/eb374e7af87e6c656be54f5f9788e887.webm", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_MID.vp8.webm/74eda5bd3514d6b9f7c4539db94ac640.webm", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_MID.vp9.webm/04d82e978bc25514833ea6a42c79b7c8.webm", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_ULTRA.vp8.webm/99030e59fcd5b7152ecaac16972c0825.webm", + "jmcs://jd-contents/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AdoreYou/AdoreYou_MapPreviewNoSoundCrop_ULTRA.vp9.webm/71e2ed959390fb839f46480119d6a2a2.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Alexandrie.json b/justdanceonline-main/maps/Alexandrie.json new file mode 100644 index 0000000000000000000000000000000000000000..fe0786a4c1a58cb42f636b281030c44f479c95bd --- /dev/null +++ b/justdanceonline-main/maps/Alexandrie.json @@ -0,0 +1,98 @@ +{ + "artist": "Jérôme Francis", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_banner_bkg.jpg/34989c603f7c07032fb2ce2ce1ad1b21.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_1.png/ff559945a46c23867e6d102532437d44.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_2.png/9376f5a5a1b4d44a8dd35b583c16e30e.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_3.png/7e10e216edef553ee9c502cedcf9a5d2.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_Generic.jpg/a8cb940102cd4a04873c47475ed75efd.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_Online.jpg/16e3272df3d4157554644dea308b371e.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_AlbumBkg.jpg/387b4d2fb5959ea99e1731c9951dbaed.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_AlbumCoach.png/ca20ce917bd35def1667621ed536997f.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_1_Phone.png/eb448852c4dda0733659eaa503a0b266.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_2_Phone.png/27276701e551ecc30c1aff5c73719c01.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_3_Phone.png/179bd26b0bd1a2dda338d4263e82375b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_Phone.jpg/16e3272df3d4157554644dea308b371e.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_banner_bkg.jpg/34989c603f7c07032fb2ce2ce1ad1b21.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_1.png/ff559945a46c23867e6d102532437d44.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_2.png/9376f5a5a1b4d44a8dd35b583c16e30e.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_3.png/7e10e216edef553ee9c502cedcf9a5d2.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_Generic.jpg/a8cb940102cd4a04873c47475ed75efd.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_Online.jpg/16e3272df3d4157554644dea308b371e.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_AlbumBkg.jpg/387b4d2fb5959ea99e1731c9951dbaed.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_AlbumCoach.png/ca20ce917bd35def1667621ed536997f.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_1_Phone.png/eb448852c4dda0733659eaa503a0b266.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_2_Phone.png/27276701e551ecc30c1aff5c73719c01.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Coach_3_Phone.png/179bd26b0bd1a2dda338d4263e82375b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Alexandrie/Alexandrie_Cover_Phone.jpg/16e3272df3d4157554644dea308b371e.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22836,45671,68506,91342,114177,137013,159848,182683,205519,228354,251190,274025,296860,319696,342531,365367,388202,411037,433873,456708,479544,502379,525214,548050,570885,593721,616556,639391,662227,685062,707898,730733,753568,776404,799239,822075,844910,867745,890581,913416,936251,959087,981922,1004758,1027593,1050428,1073264,1096099,1118935,1141770,1164605,1187441,1210276,1233112,1255947,1278782,1301618,1324453,1347289,1370124,1392959,1415795,1438630],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":481,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/alexandrie/alexandrie_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by J. P Bourtayre, C. François and E.Roda Gil. Published by Jeune Musique. Produced, engineered and mixed by Steve Ouimette. Lead vocals - Bastien Remy Background vocals - Virginie and Laurent Comtat. Strings - Pete Whitfield. Drums - Anthony Mora. Bass, guitar, programming & synths – Steve Ouimette. Additional programming and sounds – Cat Gray. Courtesy of Ubisoft Music.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "08FFCEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 230.73299999999998, + "mapName": "Alexandrie", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "Alexandrie_mapContent" + }, + "parentMapName": "Alexandrie", + "skuIds": [], + "songColors": { + "songColor_1A": "3EDBCEFF", + "songColor_1B": "EFC575FF", + "songColor_2A": "523170FF", + "songColor_2B": "A75A62FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Alexandrie Alexandra", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "cd2e3f8828d6b1657571ea2aac467269", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/ps4/Alexandrie_MAIN_SCENE_ORBIS.zip/cd2e3f8828d6b1657571ea2aac467269.zip", + "version": 1 + }, + "nx": { + "md5": "9fc71bcab13ed4df254abc06268b92eb", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/nx/Alexandrie_MAIN_SCENE_NX.zip/9fc71bcab13ed4df254abc06268b92eb.zip", + "version": 1 + }, + "pc": { + "md5": "e8697b6080cea819b3304b75bf311aea", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Alexandrie/pc/e8697b6080cea819b3304b75bf311aea.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/Alexandrie/Alexandrie_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_AudioPreview.ogg/f93d96d4daa7e41c3491955d59a7cf95.ogg", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_HIGH.vp8.webm/6e3bef6ad0bd232f9de88727aae981f2.webm", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_HIGH.vp9.webm/4be052ef2f2a7c82e39ea811540fdec6.webm", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_LOW.vp8.webm/4b03c8437236223b7312d082889fb490.webm", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_LOW.vp9.webm/ab4e02fbabdfc46e7000245a6e589896.webm", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_MID.vp8.webm/fe04acb5cbafae65465ef7c64a62f73a.webm", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_MID.vp9.webm/9501ed98a97e338b4c9a6b70c84a2a64.webm", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_ULTRA.vp8.webm/94d9fc97824d441618833119859ee988.webm", + "jmcs://jd-contents/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Alexandrie/Alexandrie_MapPreviewNoSoundCrop_ULTRA.vp9.webm/f27c101178ab3c1731975cae06657782.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AllTheGoodGirls.json b/justdanceonline-main/maps/AllTheGoodGirls.json new file mode 100644 index 0000000000000000000000000000000000000000..8f96fcf51c8a7883b6d548aabac8d9ff4143426d --- /dev/null +++ b/justdanceonline-main/maps/AllTheGoodGirls.json @@ -0,0 +1,90 @@ +{ + "artist": "Billie Eilish", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_banner_bkg.jpg/d8b9ea4d9778ab376d6c898ad4c060aa.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Coach_1.png/256a31387506ad18753696b8da17615d.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_Generic.jpg/0e1c16efd5bf403497844a408c6c0e77.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_Online.jpg/40e1a9cef0c2560070b43fa795dced3a.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_AlbumBkg.jpg/6677251cad5390db3dbb516dea56443a.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_AlbumCoach.png/4fc0d8ba4bc0765fb2c22f7696f2100a.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Coach_1_Phone.png/f5ab1e2dabb89e85f09589885187af50.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_Phone.jpg/40e1a9cef0c2560070b43fa795dced3a.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_banner_bkg.jpg/d8b9ea4d9778ab376d6c898ad4c060aa.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Coach_1.png/256a31387506ad18753696b8da17615d.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_Generic.jpg/0e1c16efd5bf403497844a408c6c0e77.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_Online.jpg/40e1a9cef0c2560070b43fa795dced3a.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_AlbumBkg.jpg/6677251cad5390db3dbb516dea56443a.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_AlbumCoach.png/4fc0d8ba4bc0765fb2c22f7696f2100a.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Coach_1_Phone.png/f5ab1e2dabb89e85f09589885187af50.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AllTheGoodGirls/AllTheGoodGirls_Cover_Phone.jpg/40e1a9cef0c2560070b43fa795dced3a.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,31135,62270,93406,124541,155676,186811,217946,249081,280216,311352,342487,373622,404757,435892,467027,498162,529297,560433,591568,622703,653838,684973,716108,747243,778379,809514,840649,871784,902919,934054,965189,996325,1027460,1058595,1089730,1120865,1152000,1183135,1214270,1245406,1276541,1307676,1338811,1369946,1401081,1432216],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-1,\"endBeat\":255,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":46,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/allthegoodgirls/allthegoodgirls_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Billie Eilish O'Connell and Finneas O’Connell. Published by Last Frontier (ASCAP). Administered by Kobalt Music Publishing America, Inc. / Universal Music Publishing Canada on behalf of DRUP and Universal Music Corp. Courtesy of Interscope Records under license from Universal Music Enterprises.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "38C4FDFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 166.054, + "mapName": "AllTheGoodGirls", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "AllTheGoodGirls_mapContent" + }, + "parentMapName": "AllTheGoodGirls", + "skuIds": [], + "songColors": { + "songColor_1A": "0095EAFF", + "songColor_1B": "1F2499FF", + "songColor_2A": "E90042FF", + "songColor_2B": "311670FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "All the good girls go to hell", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "1f3ba8a1e2ebc6d1a7762e1ee49ba700", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/ps4/AllTheGoodGirls_MAIN_SCENE_ORBIS.zip/1f3ba8a1e2ebc6d1a7762e1ee49ba700.zip", + "version": 1 + }, + "nx": { + "md5": "b3333a75c5d8f5cac579f568f41128c6", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/nx/AllTheGoodGirls_MAIN_SCENE_NX.zip/b3333a75c5d8f5cac579f568f41128c6.zip", + "version": 1 + }, + "pc": { + "md5": "5fecec9f2a93fd3ecd1f4b08e53e7639", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AllTheGoodGirls/pc/5fecec9f2a93fd3ecd1f4b08e53e7639.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_AudioPreview.ogg/8561313c4ef61b340752e3012df7b9d7.ogg", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_HIGH.vp8.webm/54af2bfc20485d5f567ce6fbad55ad79.webm", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_HIGH.vp9.webm/bdf74cdb2881d6f69584a1869dcb9b8f.webm", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_LOW.vp8.webm/2bf081b71f9390b283235b11824f765a.webm", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_LOW.vp9.webm/ef73e663d088bf86336644611065c5d4.webm", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_MID.vp8.webm/ff6d5ab603e7bad29e418a561c5d796f.webm", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_MID.vp9.webm/5f5e0310a34c524e9e1dd30b1ddef5b9.webm", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_ULTRA.vp8.webm/7b79692dfe978831db6537d3d9baa57d.webm", + "jmcs://jd-contents/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/AllTheGoodGirls/AllTheGoodGirls_MapPreviewNoSoundCrop_ULTRA.vp9.webm/a589579a4064c6af72081d82b1a5e679.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AllYouGotta.json b/justdanceonline-main/maps/AllYouGotta.json new file mode 100644 index 0000000000000000000000000000000000000000..707f32af013b265eb58387a8b5f4bcef9d99cc5a --- /dev/null +++ b/justdanceonline-main/maps/AllYouGotta.json @@ -0,0 +1,125 @@ +{ + "artist": "舞力全开乐队", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_banner_bkg.tga.ckd/4cf66415f6d322e0fba32333c711ba67.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_Coach_1.tga.ckd/204ece47e503cd377a9ec0c6c4b1936f.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_Cover_Generic.tga.ckd/fe12c837eef42b14b5119da74deae1d1.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Cover_1024.png/b22867526fac1bceb16b9673b480626f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_Cover_Online.tga.ckd/06b28fa2d5c7e65d450613acba461a93.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_Cover_AlbumBkg.tga.ckd/a012c104dff49862c4f3300ea77d7f60.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_Cover_AlbumCoach.tga.ckd/42980f9e8aa3a98ad10e59f6be5c5929.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Coach_1_Phone.png/50856586c64f29b49f83fe789aad80d4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Cover_Phone.jpg/72905fe3705f067f7655136a9ad2ac49.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_VideoPreview.webm/5b399c61f13d9ac3b63fe6b7ae5cc87c.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_map_bkg.tga.ckd/592324a09d85aa413eecdda6a5dd63c4.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_banner_bkg.tga.ckd/42e0e86513afe337c4094b8c2c117321.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_Coach_1.tga.ckd/b530723e49487ac7bf4fdce87bc6829d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_Cover_Generic.tga.ckd/74715c66c44613f201e249c1d1f4c464.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Cover_1024.png/b22867526fac1bceb16b9673b480626f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_Cover_Online.tga.ckd/54607158c6e73d07091b3a09105a8058.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_Cover_AlbumBkg.tga.ckd/c32e8a9675a11be4dce1c6a47886a21e.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_Cover_AlbumCoach.tga.ckd/84e9d6ebd1cc530d9d282fefb7c88700.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Coach_1_Phone.png/50856586c64f29b49f83fe789aad80d4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Cover_Phone.jpg/72905fe3705f067f7655136a9ad2ac49.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_VideoPreview.webm/5b399c61f13d9ac3b63fe6b7ae5cc87c.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_map_bkg.tga.ckd/8e22c28045f57d83514749b854c980c7.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/wiiu/AllYouGotta_banner_bkg.tga.ckd/ed405cffa858f62a140a9d9868985772.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/wiiu/AllYouGotta_Coach_1.tga.ckd/bac00b885ffe1941e0dd465db57231fb.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/wiiu/AllYouGotta_Cover_Generic.tga.ckd/9b1d1ade3885542570022dde157c3e22.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Cover_1024.png/b22867526fac1bceb16b9673b480626f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/wiiu/AllYouGotta_Cover_Online.tga.ckd/64c8a6edc2f7889d589fa3c9edfe8fd2.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/wiiu/AllYouGotta_Cover_AlbumBkg.tga.ckd/310d794cf252cbe5fabea4efe47db4c1.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/wiiu/AllYouGotta_Cover_AlbumCoach.tga.ckd/3b5d096795967d4b872ebd1c13d1842a.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Coach_1_Phone.png/50856586c64f29b49f83fe789aad80d4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_Cover_Phone.jpg/72905fe3705f067f7655136a9ad2ac49.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_VideoPreview.webm/5b399c61f13d9ac3b63fe6b7ae5cc87c.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,647999,672000,696000,720000,744000,768000,792000,816000,840000,863999,888000,912000,936000,959999,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1175999,1200000,1224000,1248000,1271999,1296000,1320000,1344000,1368000,1392000,1416000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-5,\"endBeat\":443,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":443,\"useFadeEndBeat\":true,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/allyougotta/allyougotta_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Benjamin ‘Oktavian’ Samana and Tom Salta. Produced and Mixed by Tom Salta. Published by Ubisoft Music Publishing. Vocals by Oktavian and Missi Hale. Crowd Voices: Liza Salta, TJ Salta, Tom Salta, Greg Rivera, Sherri Rivera, JR Rivera, Dean Rivera, Anastasia Rivera, Lena Booth, Alec Booth, Ray Vogt, Cathy Vogt, Zachary Vogt, Gregory Vogt, Matt Vogt, Vincent Forte, Raquel Reilly, Alison Reilly, Samantha Baiocco, Don Reilly, Zachary Bartley, Isabella Jakab, Maria Ceceilia, Megan Lombardo, Beatrice Mante, Colleen Canron, Edwin Gregory, Gabriella Frabrizio, Jaclyn Zerrusen, Jenna Zerrusen, Tyler Tarver, Milani Leite, Makayla Leite, Meghan Debes, Lisa Moretti, Ava Pils, Tyler Pils, Kaitlin Conrad, Katherine Plath , Patrick D'Arinzo. Additional Guitar: Paul Castelluzzo. Music Supervision – Manu Bachet. Courtesy of Ubisoft Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "F203A7FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 224, + "mapName": "AllYouGotta", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "AllYouGotta_mapContent" + }, + "parentMapName": "AllYouGotta", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "7FF4B0FF", + "songColor_1B": "046B69FF", + "songColor_2A": "0077FFFF", + "songColor_2B": "020A4FFF" + }, + "status": 9, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong", + "HallOfFame", + "NoArtist", + "CnUnlimited2018" + ], + "title": "舞力全开 (Wu Li Quan Kai)", + "urls": { + "jmcs://jd-contents/AllYouGotta/AllYouGotta_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_AudioPreview.ogg/9bfb232c475d4d6e9b7ec9f867ff6035.ogg", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_HIGH.vp8.webm/fc847e23a45530827e75359b65e3e147.webm", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_HIGH.vp9.webm/653768415a71ae0a104fb944257f5493.webm", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_LOW.vp8.webm/540ee93825ea038b39e8a93211d579cf.webm", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_LOW.vp9.webm/6b5082833603912baf46a0df287d391c.webm", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_MID.vp8.webm/c91aa011fd8ce1ee2216174c9a73b587.webm", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_MID.vp9.webm/22d6a59b252473e9821e42d241874231.webm", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_ULTRA.vp8.webm/72b05000f8bf6736215da54454efe50c.webm", + "jmcs://jd-contents/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/AllYouGotta/AllYouGotta_MapPreviewNoSoundCrop_ULTRA.vp9.webm/32186a646eacaa56bed1dcae631d353f.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "a846550947d7816483cce5fd92114f8c", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AllYouGotta/ps4/AllYouGotta_MAIN_SCENE_ORBIS.zip/a846550947d7816483cce5fd92114f8c.zip", + "version": 3 + }, + "nx": { + "md5": "e74eca0581fed6f71bb45be326e18cd5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AllYouGotta/nx/AllYouGotta_MAIN_SCENE_NX.zip/e74eca0581fed6f71bb45be326e18cd5.zip", + "version": 3 + }, + "pc": { + "md5": "4d56170b2489268161c1f1b434e8c7fc", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AllYouGotta/pc/4d56170b2489268161c1f1b434e8c7fc.zip", + "version": 1 + }, + "wiiu": { + "md5": "cc54f308e1416ff6c817372e7f132fda", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AllYouGotta/wiiu/AllYouGotta_MAIN_SCENE_WIIU.zip/cc54f308e1416ff6c817372e7f132fda.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AngryBirds.json b/justdanceonline-main/maps/AngryBirds.json new file mode 100644 index 0000000000000000000000000000000000000000..ab1678de28e1db3c44026512710d45a33ef06256 --- /dev/null +++ b/justdanceonline-main/maps/AngryBirds.json @@ -0,0 +1,132 @@ +{ + "artist": "Angry Birds", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_banner_bkg.jpg/7a3e25c6278a1df2318a1c58c4d76d8e.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_1.png/7131c0ebd6c93aaf2b3c1f2458f39fa4.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_2.png/dd0b88f112bd575936c96115e327ccf8.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_3.png/d55beeb0cf57c121e77473f2576fe5a4.png", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_4.png/7e77bcdc98e03d25808cc6c0e756b005.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_Generic.jpg/4d4966caa68e6145e8bb7cb0855648a8.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_1024.png/b66e307fb424341f1d0bca44833ea5b2.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_Online.jpg/c41c94d9559cedd5a89c172826c35390.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_AlbumBkg.jpg/0f27903af6a417bcce2a789ee7b3a45c.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_AlbumCoach.png/1c8daf64b174a5993da8cb833cbb344e.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_1_Phone.png/5959efc1b20ed6aa6c41b921d860864b.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_2_Phone.png/2ef2e1c63baae9ec44da327d8639c611.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_3_Phone.png/05dc53de8ba1c28162c50a35c009d2d5.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_4_Phone.png/b35cd6ef6cad4f6212433eaae26da50f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_Phone.jpg/c41c94d9559cedd5a89c172826c35390.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_VideoPreview.webm/7b831518c906516acb05eda2168ccd6f.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_banner_bkg.jpg/7a3e25c6278a1df2318a1c58c4d76d8e.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_1.png/7131c0ebd6c93aaf2b3c1f2458f39fa4.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_2.png/dd0b88f112bd575936c96115e327ccf8.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_3.png/d55beeb0cf57c121e77473f2576fe5a4.png", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_4.png/7e77bcdc98e03d25808cc6c0e756b005.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_Generic.jpg/4d4966caa68e6145e8bb7cb0855648a8.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_1024.png/b66e307fb424341f1d0bca44833ea5b2.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_Online.jpg/c41c94d9559cedd5a89c172826c35390.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_AlbumBkg.jpg/0f27903af6a417bcce2a789ee7b3a45c.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_AlbumCoach.png/1c8daf64b174a5993da8cb833cbb344e.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_1_Phone.png/5959efc1b20ed6aa6c41b921d860864b.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_2_Phone.png/2ef2e1c63baae9ec44da327d8639c611.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_3_Phone.png/05dc53de8ba1c28162c50a35c009d2d5.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_4_Phone.png/b35cd6ef6cad4f6212433eaae26da50f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_Phone.jpg/c41c94d9559cedd5a89c172826c35390.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_VideoPreview.webm/7b831518c906516acb05eda2168ccd6f.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_banner_bkg.tga.ckd/60825edc0e1c29754b97b47616821767.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Coach_1.tga.ckd/5e3d6c9c6601d9f00ebed6e7bfa500e9.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Coach_2.tga.ckd/9cccb9c0bdceaf457d8688d2790644b0.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Coach_3.tga.ckd/8b72d64a44fd2e7ebeac32809055d63d.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Coach_4.tga.ckd/32ea55c09d1ab893e9a910c6b9d3f69d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Cover_Generic.tga.ckd/3dcbe07d2aacd6e9d19c49fead2019e6.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_1024.png/b66e307fb424341f1d0bca44833ea5b2.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Cover_Online.tga.ckd/2bc2f2d526ac05d6b638477ddf37aa24.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Cover_AlbumBkg.tga.ckd/1c003b407d5b2b88a75abdd706230225.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_Cover_AlbumCoach.tga.ckd/a7800ca825057360b5ca50e182584593.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_1_Phone.png/5959efc1b20ed6aa6c41b921d860864b.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_2_Phone.png/2ef2e1c63baae9ec44da327d8639c611.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_3_Phone.png/05dc53de8ba1c28162c50a35c009d2d5.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Coach_4_Phone.png/b35cd6ef6cad4f6212433eaae26da50f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_Cover_Phone.jpg/c41c94d9559cedd5a89c172826c35390.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_VideoPreview.webm/7b831518c906516acb05eda2168ccd6f.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,215999,239999,263999,287999,311999,335999,359999,383999,407999,431999,455999,479999,503999,527999,551999,575999,599999,623998,647998,671998,695998,719998,743998,767998,791998,815998,839998,863998,887998,911998,935998,959998,983998,1007997,1031997,1055997,1079997,1103997,1127997,1151997,1175997,1199997,1223997,1247997,1271997,1295997,1319997,1343997,1367997,1391997,1415996,1439996],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-19,\"endBeat\":299,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":60,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/angrybirds/angrybirds_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 157.373, + "mapName": "AngryBirds", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "AngryBirds_mapContent" + }, + "parentMapName": "AngryBirds", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "00A8DDFF", + "songColor_1B": "004E5AFF", + "songColor_2A": "89D105FF", + "songColor_2B": "2FA20CFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Balkan Blast Remix", + "urls": { + "jmcs://jd-contents/AngryBirds/AngryBirds_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_AudioPreview.ogg/cd416dc05b98770fea6dd458a929e2f3.ogg", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_HIGH.vp8.webm/1c3faeea4699a04d322c9c999ddf80d6.webm", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_HIGH.vp9.webm/6e71b4b1a60bbba23a74d9400b3607a7.webm", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_LOW.vp8.webm/b2bc3da0222c1f9f3a17651aef62696e.webm", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_LOW.vp9.webm/f943f35b797e58a15cb5132bf949b8bd.webm", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_MID.vp8.webm/92209302e0d6f572cec86cd8121df86a.webm", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_MID.vp9.webm/26a46cd3bba349c575b3a778bee28adb.webm", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_ULTRA.vp8.webm/ceeaa3101112abbe340cb68c4612ab0e.webm", + "jmcs://jd-contents/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/AngryBirds/AngryBirds_MapPreviewNoSoundCrop_ULTRA.vp9.webm/38e3d0adeea546c7d0612984f9d83c4d.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "7176620c16ce63f93beda4f049bf389a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AngryBirds/ps4/AngryBirds_MAIN_SCENE_ORBIS.zip/7176620c16ce63f93beda4f049bf389a.zip", + "version": 7 + }, + "pc": { + "md5": "3d5e7b46588e6cdacd36fa6a36e0e2c6", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AngryBirds/pc/AngryBirds_MAIN_SCENE_PC.zip/3d5e7b46588e6cdacd36fa6a36e0e2c6.zip", + "version": 4 + }, + "wiiu": { + "md5": "cfb556350313dfd21a476d99dd9cccd5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AngryBirds/wiiu/AngryBirds_MAIN_SCENE_WIIU.zip/cfb556350313dfd21a476d99dd9cccd5.zip", + "version": 7 + }, + "nx": { + "md5": "de712decd4e82a572bbe4b852e044ea2", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AngryBirds/nx/AngryBirds_MAIN_SCENE_NX.zip/de712decd4e82a572bbe4b852e044ea2.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Animals.json b/justdanceonline-main/maps/Animals.json new file mode 100644 index 0000000000000000000000000000000000000000..3b6aa77bb0bd5afd867347ef4f48fce994d5051d --- /dev/null +++ b/justdanceonline-main/maps/Animals.json @@ -0,0 +1,120 @@ +{ + "artist": "Martin Garrix", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_banner_bkg.jpg/b457443dd6166a84201ebf4d21fea7d5.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_1.png/759859504cdd893fdfa06efa2b46afd0.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_2.png/03305724fe1737d3f39f9ae000429436.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_Generic.jpg/14a505d858d7934ba6bea5690495c3ab.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_1024.png/cc34ed874b0af6c743108de75c85ded2.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_Online.jpg/4a9ed66f966f95508a01bba4a14cbf35.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_AlbumBkg.jpg/c4fff42dbece4d5ea7828ddf7f02b7d7.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_AlbumCoach.png/45a240c6e73bb3d93b48e051a50f4ebc.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_1_Phone.png/9576ae2db41a86e3c34e94111be8bec8.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_2_Phone.png/942b4c14a0e68e4adc71a7ad319c218b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_Phone.jpg/4a9ed66f966f95508a01bba4a14cbf35.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Animals/Animals_VideoPreview.webm/d6a5a404c8a2829dd1acf46a4307f775.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_banner_bkg.jpg/b457443dd6166a84201ebf4d21fea7d5.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_1.png/759859504cdd893fdfa06efa2b46afd0.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_2.png/03305724fe1737d3f39f9ae000429436.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_Generic.jpg/14a505d858d7934ba6bea5690495c3ab.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_1024.png/cc34ed874b0af6c743108de75c85ded2.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_Online.jpg/4a9ed66f966f95508a01bba4a14cbf35.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_AlbumBkg.jpg/c4fff42dbece4d5ea7828ddf7f02b7d7.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_AlbumCoach.png/45a240c6e73bb3d93b48e051a50f4ebc.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_1_Phone.png/9576ae2db41a86e3c34e94111be8bec8.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_2_Phone.png/942b4c14a0e68e4adc71a7ad319c218b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_Phone.jpg/4a9ed66f966f95508a01bba4a14cbf35.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Animals/Animals_VideoPreview.webm/d6a5a404c8a2829dd1acf46a4307f775.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_banner_bkg.tga.ckd/1ef93d00f896811110d90221bb3a12a2.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_Coach_1.tga.ckd/d417cf9524930e0202f2ed1391569edc.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_Coach_2.tga.ckd/65184d7b7828a3463e51c979acd94c76.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_Cover_Generic.tga.ckd/7a40cc96abc0b29498f90b609e5fbba0.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_1024.png/cc34ed874b0af6c743108de75c85ded2.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_Cover_Online.tga.ckd/12ad291305ea2f36159cc0afe1e3b943.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_Cover_AlbumBkg.tga.ckd/b790dc2eb60c2563dd5755279166f96f.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_Cover_AlbumCoach.tga.ckd/e92f12aad05cb39f8f9df67dae5bf818.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_1_Phone.png/9576ae2db41a86e3c34e94111be8bec8.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Coach_2_Phone.png/942b4c14a0e68e4adc71a7ad319c218b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Animals/Animals_Cover_Phone.jpg/4a9ed66f966f95508a01bba4a14cbf35.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Animals/Animals_VideoPreview.webm/d6a5a404c8a2829dd1acf46a4307f775.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22512,45023,67488,90000,112512,135023,157488,180000,202512,225023,247488,270000,292512,315023,337488,360000,382512,405023,427488,450000,472512,495024,517488,540000,562512,585024,607488,630000,652512,675023,697487,720000,742512,765023,787488,810000,832512,855024,877488,900000,922511,945024,967488,990000,1012511,1035023,1057488,1080000,1102512,1125024,1147488,1170000,1192512,1215024,1237488,1260000,1282511,1305023,1327487,1350000,1372511,1395024,1417487],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":376,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/animals/animals_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "0CFBBAFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 177.656, + "mapName": "Animals", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "Animals_mapContent" + }, + "parentMapName": "Animals", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "A42AFFFF", + "songColor_1B": "0E0113FF", + "songColor_2A": "016ABDFF", + "songColor_2B": "040C1BFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Animals", + "urls": { + "jmcs://jd-contents/Animals/Animals_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Animals/Animals_AudioPreview.ogg/653e2a8541a736cccc6f134cdac98d3b.ogg", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_HIGH.vp8.webm/341e61c734f587deb39f3dacceaba6e5.webm", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_HIGH.vp9.webm/99a2c64da5dfb05e9308e904ac751ffa.webm", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_LOW.vp8.webm/5c512a405ff4bd5b8ff1a93859fbea10.webm", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_LOW.vp9.webm/e4bde5d49d37c9b201eb65a6b3e94566.webm", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_MID.vp8.webm/22ef9dc6f5ced4a96afe393b46d90c11.webm", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_MID.vp9.webm/13266c28a30dac9ad91fc6d3a408264c.webm", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_ULTRA.vp8.webm/55e664d1c6766520e8bcf0c360e883da.webm", + "jmcs://jd-contents/Animals/Animals_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Animals/Animals_MapPreviewNoSoundCrop_ULTRA.vp9.webm/f47f38bde0f967cc5b9387068fc71af7.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "ad6ab26b4ca10cffd5c40058edac08a3", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Animals/ps4/Animals_MAIN_SCENE_ORBIS.zip/ad6ab26b4ca10cffd5c40058edac08a3.zip", + "version": 11 + }, + "pc": { + "md5": "ac3dbefbdbcedf1edc6d6bd9da1dbda5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Animals/pc/Animals_MAIN_SCENE_PC.zip/ac3dbefbdbcedf1edc6d6bd9da1dbda5.zip", + "version": 6 + }, + "wiiu": { + "md5": "2aafd5a23009c7e514f8193a2f3cfc62", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Animals/wiiu/Animals_MAIN_SCENE_WIIU.zip/2aafd5a23009c7e514f8193a2f3cfc62.zip", + "version": 11 + }, + "nx": { + "md5": "b1d25c5611f94c87adf430cd06525ac0", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Animals/nx/Animals_MAIN_SCENE_NX.zip/b1d25c5611f94c87adf430cd06525ac0.zip", + "version": 7 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AnotherOne.json b/justdanceonline-main/maps/AnotherOne.json new file mode 100644 index 0000000000000000000000000000000000000000..3cfffdad3d3e2cbb2fac24d0fee4aa177b1ec89f --- /dev/null +++ b/justdanceonline-main/maps/AnotherOne.json @@ -0,0 +1,142 @@ +{ + "artist": "Queen", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_banner_bkg.tga.ckd/5d82896aeb3c9084798413d7321eb6ba.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Coach_1.tga.ckd/a82d8e78ca09754e7c82734990bb5c45.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Coach_2.tga.ckd/521030c4c95cbed1f53bdbbf488b7388.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Coach_3.tga.ckd/9b822ade94f74523cfd33010adf66a24.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Coach_4.tga.ckd/34eb0bdbe141385eb5bcdaefd84f2776.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Cover_Generic.tga.ckd/244ce3354a9323c5442065c4024b6ac4.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Cover_1024.png/e6181d09aef21cf2d59f207145858587.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Cover_Online.tga.ckd/d6861ae00e01eacf4baa285bc721eae2.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Cover_AlbumBkg.tga.ckd/14776b8d094961e6dabbce8ebd191f56.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_Cover_AlbumCoach.tga.ckd/ed64e5b376f3c2ddbd91fed16dc20e60.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_1_Phone.png/d74fb7b2258195d3a8d0c3313830e838.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_2_Phone.png/3f49feda394e46441a9513e9244b2e86.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_3_Phone.png/c271f48785eb89870b8d3b10f796f17e.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_4_Phone.png/17332f9e24cc9dd7dcde9a1278022ffc.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Cover_Phone.jpg/f9608d581900d8c8fd62ec64400b8f8c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_VideoPreview.webm/3dcef8edbcabb590740df7547114b343.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_map_bkg.tga.ckd/85a93db7107642887a2a4d414553b559.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_banner_bkg.tga.ckd/60b0166e67f739ff9edf8748255197b8.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Coach_1.tga.ckd/b29605e2ad58171e0792b7e8dc017bae.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Coach_2.tga.ckd/deb528c299675207c2098e1b6c8274ed.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Coach_3.tga.ckd/b086268d1a0f85323f09007905a6fbf8.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Coach_4.tga.ckd/5c31c8a310c72014947e558a385b5dbf.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Cover_Generic.tga.ckd/a9fb7dcd96864b6d70fbc527270b955a.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Cover_1024.png/e6181d09aef21cf2d59f207145858587.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Cover_Online.tga.ckd/12e4e9be8f557c07c72cc1777314e8fe.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Cover_AlbumBkg.tga.ckd/0735154a4fa4b89ec5d26eea69554050.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_Cover_AlbumCoach.tga.ckd/687830a4819ada88731596ca9dc83f67.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_1_Phone.png/d74fb7b2258195d3a8d0c3313830e838.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_2_Phone.png/3f49feda394e46441a9513e9244b2e86.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_3_Phone.png/c271f48785eb89870b8d3b10f796f17e.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_4_Phone.png/17332f9e24cc9dd7dcde9a1278022ffc.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Cover_Phone.jpg/f9608d581900d8c8fd62ec64400b8f8c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_VideoPreview.webm/3dcef8edbcabb590740df7547114b343.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_map_bkg.tga.ckd/4175ec745f3d0502c80c9c9c9a92bc26.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_banner_bkg.tga.ckd/7d138e916aecd6d7ee4fb63fc990b339.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Coach_1.tga.ckd/e7b7f4f026511fb75e1c82d77776ceaa.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Coach_2.tga.ckd/7883f8e4dcb50788f8541790e63178b9.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Coach_3.tga.ckd/ab4660d5d78bbadf1a2ecce15b54c63c.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Coach_4.tga.ckd/4a5a89b1b074c0c05df71fd5a3d306e1.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Cover_Generic.tga.ckd/1294ef05e9949b1c98b25f78f05ea437.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Cover_1024.png/e6181d09aef21cf2d59f207145858587.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Cover_Online.tga.ckd/2301a7457fa1ad3176b45272456f883f.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Cover_AlbumBkg.tga.ckd/94bbebba6af1c3ee21edc2ecc7159e2d.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_Cover_AlbumCoach.tga.ckd/adeed79827d1f54f323db4907fd6700e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_1_Phone.png/d74fb7b2258195d3a8d0c3313830e838.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_2_Phone.png/3f49feda394e46441a9513e9244b2e86.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_3_Phone.png/c271f48785eb89870b8d3b10f796f17e.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Coach_4_Phone.png/17332f9e24cc9dd7dcde9a1278022ffc.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_Cover_Phone.jpg/f9608d581900d8c8fd62ec64400b8f8c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_VideoPreview.webm/3dcef8edbcabb590740df7547114b343.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26160,52368,78528,104688,130896,157056,183216,209376,235584,261793,288001,314161,340369,366577,392785,418993,445201,471409,497617,523825,550033,576241,602449,628657,654865,681265,707665,734017,760417,786817,813169,839569,865969,892177,918433,944689,970945,997153,1023409,1049665,1075921,1102177,1128385,1154641,1180897,1207153,1233361,1259617,1285873,1312129,1338385,1364593,1390849,1417105],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":392,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":54,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/anotherone/anotherone_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by John Deacon. Published by Queen Music Ltd. (PRS). All rights reserved. Used with permission. Courtesy of Hollywood Records, Inc. and Mercury Records UK, under license from Universal Music Canada Inc. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF8B16FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 216.398, + "mapName": "AnotherOne", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "AnotherOne_mapContent" + }, + "parentMapName": "AnotherOne", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "3E0098FF", + "songColor_1B": "000C2FFF", + "songColor_2A": "FF7100FF", + "songColor_2B": "501800FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "SWEAT", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Another One Bites The Dust", + "urls": { + "jmcs://jd-contents/AnotherOne/AnotherOne_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_AudioPreview.ogg/7e500fa0898f63589dbb812120207bf1.ogg", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_HIGH.vp8.webm/0374fb8a6c1ede6e9847ceef16f08297.webm", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_HIGH.vp9.webm/4445c2983019fcaec16a2e4123edf61c.webm", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_LOW.vp8.webm/dd3f4c4b46178c78a8dc97116523d32c.webm", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_LOW.vp9.webm/709db7a0216bcb7f0787d89c29a0017f.webm", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_MID.vp8.webm/8ab1fffc2b75501fb80a4d791e3f3724.webm", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_MID.vp9.webm/fac3caf0325ecc673f5e5eba7d126b94.webm", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_ULTRA.vp8.webm/6831481a2284e0b6ce1b8f6bdf1fcfc6.webm", + "jmcs://jd-contents/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOne/AnotherOne_MapPreviewNoSoundCrop_ULTRA.vp9.webm/000d968258509d5f2faa408bbecd968a.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "adf5ce325e6cfc9153bf98efe307b04a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AnotherOne/ps4/AnotherOne_MAIN_SCENE_ORBIS.zip/adf5ce325e6cfc9153bf98efe307b04a.zip", + "version": 3 + }, + "nx": { + "md5": "516a839c80e0e4c6947b1a5d010a19f7", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AnotherOne/nx/AnotherOne_MAIN_SCENE_NX.zip/516a839c80e0e4c6947b1a5d010a19f7.zip", + "version": 3 + }, + "pc": { + "md5": "c9ead32979d459e7574831379650687a", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AnotherOne/pc/c9ead32979d459e7574831379650687a.zip", + "version": 1 + }, + "wiiu": { + "md5": "d792f1524349337b43e413f974c888c6", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AnotherOne/wiiu/AnotherOne_MAIN_SCENE_WIIU.zip/d792f1524349337b43e413f974c888c6.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/AnotherOneALT.json b/justdanceonline-main/maps/AnotherOneALT.json new file mode 100644 index 0000000000000000000000000000000000000000..cba1482eb4748135a9b3d8b10732ef668faeee06 --- /dev/null +++ b/justdanceonline-main/maps/AnotherOneALT.json @@ -0,0 +1,125 @@ +{ + "artist": "Queen", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_banner_bkg.tga.ckd/bd0fc094b1a347c2060596a1a8277627.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_Coach_1.tga.ckd/c27af786ad0e4f733335bcd149bca668.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_Cover_Generic.tga.ckd/72b71499fbba82683068178477110429.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Cover_1024.png/7dff228bc633223c13f02092e4be0921.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_Cover_Online.tga.ckd/5bd0341d5d4fbeb67db0f5030607926a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_Cover_AlbumBkg.tga.ckd/5858ecfc24b8c2ff4dcc8b907e5476c7.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_Cover_AlbumCoach.tga.ckd/a126f5fdaa469df97dd09316d9acf777.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Coach_1_Phone.png/45f6e0e7938ffebe57190295e3dee02a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Cover_Phone.jpg/6559d5982543c8412fa181a5b3079a73.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_VideoPreview.webm/bc825949b340906ff9360094654a9579.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_map_bkg.tga.ckd/5a64c1727f44701bda9fa13d03447a35.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_banner_bkg.tga.ckd/64f21dc8969793c93e074483bd2e0945.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_Coach_1.tga.ckd/4eb2b83c7c269ea4037e754f7d9f50b3.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_Cover_Generic.tga.ckd/1dd71212ef2bacd15452bab966588778.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Cover_1024.png/7dff228bc633223c13f02092e4be0921.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_Cover_Online.tga.ckd/e9b041db356502b7b0fc26fee7539eea.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_Cover_AlbumBkg.tga.ckd/6cc21263ae78a61e0344b88f897956c2.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_Cover_AlbumCoach.tga.ckd/be2c6c7fe7d4e021660353136cb63f33.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Coach_1_Phone.png/45f6e0e7938ffebe57190295e3dee02a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Cover_Phone.jpg/6559d5982543c8412fa181a5b3079a73.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_VideoPreview.webm/bc825949b340906ff9360094654a9579.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_map_bkg.tga.ckd/e26c7f4c4ef60a6eea0bf3bd42b68800.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/wiiu/AnotherOneALT_banner_bkg.tga.ckd/d745cacff95c25423f10052adb510d31.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/wiiu/AnotherOneALT_Coach_1.tga.ckd/5eb5cdb3dafb37c79f2d3a4e572ff6ef.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/wiiu/AnotherOneALT_Cover_Generic.tga.ckd/7d96ff3d164e9c8dd05c7579b096be51.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Cover_1024.png/7dff228bc633223c13f02092e4be0921.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/wiiu/AnotherOneALT_Cover_Online.tga.ckd/4f81314123ef25eec64e9e43cce4ea9e.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/wiiu/AnotherOneALT_Cover_AlbumBkg.tga.ckd/2f1db5193ed9c849af56181f968a24a4.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/wiiu/AnotherOneALT_Cover_AlbumCoach.tga.ckd/66247b9bb41d78e733125a184d854e17.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Coach_1_Phone.png/45f6e0e7938ffebe57190295e3dee02a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_Cover_Phone.jpg/6559d5982543c8412fa181a5b3079a73.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_VideoPreview.webm/bc825949b340906ff9360094654a9579.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26160,52368,78528,104688,130896,157056,183216,209376,235584,261793,288001,314161,340369,366577,392785,418993,445201,471409,497617,523825,550033,576241,602449,628657,654865,681265,707665,734017,760417,786817,813169,839569,865969,892177,918433,944689,970945,997153,1023409,1049665,1075921,1102177,1128385,1154641,1180897,1207153,1233361,1259617,1285873,1312129,1338385,1364593,1390849,1417105],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-10,\"endBeat\":392,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":54,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/anotheronealt/anotheronealt_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by John Deacon. Published by Queen Music Ltd. (PRS). All rights reserved. Used with permission. Courtesy of Hollywood Records, Inc. and Mercury Records UK, under license from Universal Music Canada Inc. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF66C8FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 219.671, + "mapName": "AnotherOneALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "AnotherOneALT_mapContent" + }, + "parentMapName": "AnotherOne", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "AF7F17FF", + "songColor_1B": "2E2305FF", + "songColor_2A": "60CAF1FF", + "songColor_2B": "001339FF" + }, + "status": 9, + "sweatDifficulty": 3, + "tags": [ + "Alternate", + "SWEAT", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Another One Bites The Dust", + "urls": { + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_AudioPreview.ogg/600fd745dae87aa778fcd2794b6384c8.ogg", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/5cfa517f764082c720790221e7fa2574.webm", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/fdfde66ff688f44bbf97623497731056.webm", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_LOW.vp8.webm/b1d38cbba9eece3abce169799a4f458a.webm", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_LOW.vp9.webm/2edd5d5690d38f67ed73f9e437186c90.webm", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_MID.vp8.webm/1632cd3015221f488d2d40c2690f85eb.webm", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_MID.vp9.webm/7ebeda4307ceab0824e1af8205f5bddc.webm", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/ed8cb95efeb7e258cf28687502a9995f.webm", + "jmcs://jd-contents/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/AnotherOneALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/b7dd8e5ae8d0955dcbe0c1883f12e908.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "ea449deaca4427aab1b4c93a1fcb48e6", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/ps4/AnotherOneALT_MAIN_SCENE_ORBIS.zip/ea449deaca4427aab1b4c93a1fcb48e6.zip", + "version": 3 + }, + "nx": { + "md5": "d11e8ace7e7e1e9d584dde87a2955191", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/nx/AnotherOneALT_MAIN_SCENE_NX.zip/d11e8ace7e7e1e9d584dde87a2955191.zip", + "version": 3 + }, + "pc": { + "md5": "1b264b379e1d9116e617063aa34464a0", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/AnotherOneALT/pc/1b264b379e1d9116e617063aa34464a0.zip", + "version": 1 + }, + "wiiu": { + "md5": "43faa54b35630d6335af16d024409257", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/AnotherOneALT/wiiu/AnotherOneALT_MAIN_SCENE_WIIU.zip/43faa54b35630d6335af16d024409257.zip", + "version": 3 + } + }, + "mapType": "jdu", + "customTypeNameId": 14520 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Automaton.json b/justdanceonline-main/maps/Automaton.json new file mode 100644 index 0000000000000000000000000000000000000000..edf32b556363a5e76c78aec8748d1a1fe31a3bf5 --- /dev/null +++ b/justdanceonline-main/maps/Automaton.json @@ -0,0 +1,124 @@ +{ + "artist": "Jamiroquai", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_banner_bkg.tga.ckd/e8094155cd9efdbc6d2d7d873a3e4018.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_Coach_1.tga.ckd/644d5d49ec05f7d8fc874dbb07f737b9.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_Cover_Generic.tga.ckd/cff184db689aa4c2eb5f68b9b1393d38.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Cover_1024.png/5ae784c743b5a8dd28859a41692c932f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_Cover_Online.tga.ckd/4752b986e05d1b61144895131ba28d25.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_Cover_AlbumBkg.tga.ckd/09e219af9247934055515e8b94f7dc7b.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_Cover_AlbumCoach.tga.ckd/65ada182c7b17e73daf22713691b89c3.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Coach_1_Phone.png/2ab1956aa99574f18ed46ef5b8f3b650.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Cover_Phone.jpg/3ec295bf836601dce4129408566857ed.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_VideoPreview.webm/c86893d7888ca5f58fd126a4e8bf7f4f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_map_bkg.tga.ckd/0a0dfd0af330a5e603805d85cff3b7a4.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_banner_bkg.tga.ckd/88f2181cb44e9de273c1a8b6507c549d.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_Coach_1.tga.ckd/77cbe5f62b4da76204448dfc27bad917.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_Cover_Generic.tga.ckd/c9cbede263f37c89fb043397a02e5acb.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Cover_1024.png/5ae784c743b5a8dd28859a41692c932f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_Cover_Online.tga.ckd/789781690a38d4ec73b6d2edd400de92.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_Cover_AlbumBkg.tga.ckd/aef1018eb579a1fe509214c323365513.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_Cover_AlbumCoach.tga.ckd/3995cb32690078ed22b54b1bcaef6dbd.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Coach_1_Phone.png/2ab1956aa99574f18ed46ef5b8f3b650.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Cover_Phone.jpg/3ec295bf836601dce4129408566857ed.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_VideoPreview.webm/c86893d7888ca5f58fd126a4e8bf7f4f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_map_bkg.tga.ckd/2fcec476874fe0af892d9cca6823a0dd.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/wiiu/Automaton_banner_bkg.tga.ckd/2f473a1d27d817362afd180bf33e2891.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/wiiu/Automaton_Coach_1.tga.ckd/29e6199012795b4cfc6fba212274da41.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/wiiu/Automaton_Cover_Generic.tga.ckd/7adbd0fee8f4ef42f9260145f78c93a1.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Cover_1024.png/5ae784c743b5a8dd28859a41692c932f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/wiiu/Automaton_Cover_Online.tga.ckd/9eb860bce7b4b7784f70a378baf599fa.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/wiiu/Automaton_Cover_AlbumBkg.tga.ckd/5c2fc6da84cb3ffb44e661414b195230.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/wiiu/Automaton_Cover_AlbumCoach.tga.ckd/c8a63700e84153768e8fc0d79a1beb87.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Coach_1_Phone.png/2ab1956aa99574f18ed46ef5b8f3b650.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_Cover_Phone.jpg/3ec295bf836601dce4129408566857ed.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_VideoPreview.webm/c86893d7888ca5f58fd126a4e8bf7f4f.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26688,53328,80016,106656,133344,160032,186672,213360,240000,266688,293328,320016,346656,373344,400032,426672,453360,480000,506688,533327,560015,586655,613343,640031,666671,693359,719999,746687,773327,800015,826655,853343,880031,906671,933359,959999,986687,1013327,1040015,1066655,1093343,1120030,1146670,1173358,1199998,1226686,1253326,1280014,1306654,1333342,1360030,1386670,1413358,1439998],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-7,\"endBeat\":460,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":460,\"useFadeEndBeat\":true,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":54,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/automaton/automaton_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Jason Kay and Matthew Johnson. Published by BMG Platinum Songs. All rights administered by BMG Rights Management (US) LLC. Courtesy of Mercury Records Limited under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF10FAFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 259.44399999999996, + "mapName": "Automaton", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Automaton_mapContent" + }, + "parentMapName": "Automaton", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "4EFFC3FF", + "songColor_1B": "060033FF", + "songColor_2A": "0085FFFF", + "songColor_2B": "001D66FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "HallOfFame", + "CnUnlimited2018" + ], + "title": "Automaton", + "urls": { + "jmcs://jd-contents/Automaton/Automaton_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_AudioPreview.ogg/1d2c9402d2398f7f854e6d6789a3488d.ogg", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_HIGH.vp8.webm/72fc5ba762da310e64a550bc65821185.webm", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_HIGH.vp9.webm/78cc74cd938545c002a3d6c895c2b01f.webm", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_LOW.vp8.webm/664b13a231ff4724752571dcbc1a31c8.webm", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_LOW.vp9.webm/8f7c4cb12dca6992589788d7254686b3.webm", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_MID.vp8.webm/d8338205638eaa59779820ebaab3109e.webm", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_MID.vp9.webm/a7184edcf2884d3434e95434135be456.webm", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_ULTRA.vp8.webm/ed3ab4ff57a616fb9a00846d0bc5fbba.webm", + "jmcs://jd-contents/Automaton/Automaton_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Automaton/Automaton_MapPreviewNoSoundCrop_ULTRA.vp9.webm/dbceb7d2827c3329b3683b6f66fa6f03.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "60ec484dc265fdcc3012c715e50766ea", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Automaton/ps4/Automaton_MAIN_SCENE_ORBIS.zip/60ec484dc265fdcc3012c715e50766ea.zip", + "version": 3 + }, + "nx": { + "md5": "b0a9cdd00272584d6e2a60a9d2f75284", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Automaton/nx/Automaton_MAIN_SCENE_NX.zip/b0a9cdd00272584d6e2a60a9d2f75284.zip", + "version": 3 + }, + "pc": { + "md5": "511bc57a8f5337b73e81e109ad7ba99b", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Automaton/pc/511bc57a8f5337b73e81e109ad7ba99b.zip", + "version": 1 + }, + "wiiu": { + "md5": "fa465748ce42befc3433b5e5bb530f67", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Automaton/wiiu/Automaton_MAIN_SCENE_WIIU.zip/fa465748ce42befc3433b5e5bb530f67.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BBoomBBoom.json b/justdanceonline-main/maps/BBoomBBoom.json new file mode 100644 index 0000000000000000000000000000000000000000..b9edfa5c516fdd78ff380fc84111eaff1f709810 --- /dev/null +++ b/justdanceonline-main/maps/BBoomBBoom.json @@ -0,0 +1,105 @@ +{ + "artist": "MOMOLAND", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_1.png", + "coach2ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_2.png", + "coach3ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_3.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_1.png", + "phoneCoach2ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_2.png", + "phoneCoach3ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_3.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_Generic.png", + "videoPreviewVideoURL": "http://jd-s3.akamaized.net/public/map/BBoomBBoom/BBoomBBoom_VideoPreview.webm/216963580b997a5f2e44b0556df8e36c.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_1.png", + "coach2ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_2.png", + "coach3ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_3.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_1.png", + "phoneCoach2ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_2.png", + "phoneCoach3ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Coach_3.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_Cover_Generic.png", + "videoPreviewVideoURL": "http://jd-s3.akamaized.net/public/map/BBoomBBoom/BBoomBBoom_VideoPreview.webm/216963580b997a5f2e44b0556df8e36c.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/textures/BBoomBBoom_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22848,45696,68544,91392,114240,137088,159936,182784,205632,228480,251328,274176,297024,319872,342720,365568,388416,411264,434112,456960,479808,502656,525504,548352,571152,594000,616848,639696,662544,685392,708240,731089,753937,776833,799681,822529,845377,868225,891121,913969,936817,959665,982561,1005409,1028257,1051105,1074001,1096849,1119697,1142545,1165393,1188241,1211137,1233985,1256833,1279681,1302529,1325377,1348225,1371121,1393969,1416817,1439666,1462514],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":394,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":64,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/BBoomBBoom/BBoomBBoom_AudioPreview.ogg\"}\"", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "016EBAFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "BBoomBBoom", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "BBoomBBoom_mapContent" + }, + "parentMapName": "BBoomBBoom", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "076093FF", + "songColor_1B": "182146FF", + "songColor_2A": "F4DF03FF", + "songColor_2B": "D61F1FFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "BBoom BBoom", + "urls": { + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/BBoomBBoom_AudioPreview.ogg", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm", + "jmcs://jd-contents/BBoomBBoom/BBoomBBoom_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/BBoomBBoom_VideoPreview.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "01b9dde86de7c3dacb5808f7285f4e63", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/pc/01b9dde86de7c3dacb5808f7285f4e63.zip", + "version": 4 + }, + "orbis": { + "md5": "0835bd69ed0ee7b4b4824a24b17a48be", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/ps4/0835bd69ed0ee7b4b4824a24b17a48be.zip", + "version": 2 + }, + "nx": { + "md5": "8e85ebff6206887b29b23ff9d4cd5004", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BBoomBBoom/nx/8e85ebff6206887b29b23ff9d4cd5004.zip", + "version": 3 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BadAssPrincessKids.json b/justdanceonline-main/maps/BadAssPrincessKids.json new file mode 100644 index 0000000000000000000000000000000000000000..3d01079e3282f4c7684b8105789f0a3942e8e17b --- /dev/null +++ b/justdanceonline-main/maps/BadAssPrincessKids.json @@ -0,0 +1,92 @@ +{ + "artist": "Fast Forward Highway", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_banner_bkg.jpg/b870780ddf9664c02668e8e93e0453c3.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Coach_1.png/9bce8b189929fe585317ea252ab9e902.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_Generic.jpg/3f6f46165197241abb3d7a1cdcd2a588.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_Online.jpg/68df9abd7b94a822e7238c7a7bdb8c30.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_AlbumBkg.jpg/09991777d65eff10530b58f6ee2f1e27.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_AlbumCoach.png/07f3c480276a1926d907f6167c26c84d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Coach_1_Phone.png/cd5af6fa103fc037d992274101fe57b9.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_Phone.jpg/68df9abd7b94a822e7238c7a7bdb8c30.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_banner_bkg.jpg/b870780ddf9664c02668e8e93e0453c3.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Coach_1.png/9bce8b189929fe585317ea252ab9e902.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_Generic.jpg/3f6f46165197241abb3d7a1cdcd2a588.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_Online.jpg/68df9abd7b94a822e7238c7a7bdb8c30.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_AlbumBkg.jpg/09991777d65eff10530b58f6ee2f1e27.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_AlbumCoach.png/07f3c480276a1926d907f6167c26c84d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Coach_1_Phone.png/cd5af6fa103fc037d992274101fe57b9.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BadAssPrincessKids/BadAssPrincessKids_Cover_Phone.jpg/68df9abd7b94a822e7238c7a7bdb8c30.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,16000,32000,48000,64000,80000,96000,112000,128000,144000,160000,176000,192000,208000,224000,240000,256000,272000,288000,304000,320000,336000,352000,368000,384000,400000,416000,432000,448000,464000,480000,496000,512000,528000,544000,560000,576000,592000,608000,624000,640000,656000,672000,688000,704000,720000,736000,752000,768000,784000,800000,816000,832000,848000,864000,880000,896000,912000,928000,944000,960000,976000,992000,1008000,1024000,1040000,1056000,1072000,1088000,1104000,1120000,1136000,1152000,1168000,1184000,1200000,1216000,1232000,1248000,1264000,1280000,1296000,1312000,1328000,1344000,1360000,1376000,1392000,1408000,1424000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":245,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":89,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/badassprincesskids/badassprincesskids_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Terry Devine-King and Adam Drake. Published by Audio Network Canada Inc. Courtesy of Audio Network Canada Inc.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "87F431FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 87.083, + "mapName": "BadAssPrincessKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "BadAssPrincessKids_mapContent" + }, + "parentMapName": "BadAssPrincessKids", + "skuIds": [], + "songColors": { + "songColor_1A": "FFF5B4FF", + "songColor_1B": "FFE348FF", + "songColor_2A": "6264DEFF", + "songColor_2B": "9264D1FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "KidsOnly", + "subscribedSong" + ], + "title": "Rock 'n Roll Princess", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "53f9126304af7ea7cb9095b75cef8fe2", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/ps4/BadAssPrincessKids_MAIN_SCENE_ORBIS.zip/53f9126304af7ea7cb9095b75cef8fe2.zip", + "version": 1 + }, + "nx": { + "md5": "3b9742cf39bb2c213704d719d89fcf23", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/nx/BadAssPrincessKids_MAIN_SCENE_NX.zip/3b9742cf39bb2c213704d719d89fcf23.zip", + "version": 1 + }, + "pc": { + "md5": "cf4e4a081536e16c48f0b1afbad33b04", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BadAssPrincessKids/pc/cf4e4a081536e16c48f0b1afbad33b04.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939, + "urls": { + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_AudioPreview.ogg/981f538671791a97d7e3a60cae26fb6c.ogg", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/9513d4c6747540a3ea7d8c1c2c348591.webm", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/ef515ca074ac30f971384fcef5ea5f3f.webm", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_LOW.vp8.webm/a7071a52d89a57d65c2dc67c64357901.webm", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_LOW.vp9.webm/14603501ae3998a8ba4b0e345a3cb420.webm", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_MID.vp8.webm/41b3ec3537eae3808e91f5752273a490.webm", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_MID.vp9.webm/8b68d59c357bdbd9fcb5cb4c79e3e53b.webm", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/bc2ddee3b845748023bb11938c9cc8c0.webm", + "jmcs://jd-contents/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BadAssPrincessKids/BadAssPrincessKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/898cc1513e58bdf32136296d4f3c7a3e.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BadGuyALT.json b/justdanceonline-main/maps/BadGuyALT.json new file mode 100644 index 0000000000000000000000000000000000000000..884268ba443d438efe0824495b00f1a4d4f25bb2 --- /dev/null +++ b/justdanceonline-main/maps/BadGuyALT.json @@ -0,0 +1,103 @@ +{ + "artist": "Billie Eilish", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_banner_bkg.tga.ckd/14bd261dc5ff04fe07dbf43bd5120bb6.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_Coach_1.tga.ckd/91a49404cf91af20a6a29a62cd7fe687.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_Cover_Generic.tga.ckd/29f7a61fcd65c2e5c98c6c4094a80e9e.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_Cover_1024.png/4cd8509626810a7b24897be2c4a0b1cf.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_Cover_Online.tga.ckd/9e8a19581dae59b7a86f4b8e5d6fe8ae.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_Cover_AlbumBkg.tga.ckd/c53d5cc9590d6c7881f41ba10cd3dd92.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_Cover_AlbumCoach.tga.ckd/5a8905583477ce44d71cc2641db7b251.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_Coach_1_Phone.png/67832e61c02dd2dd4bbd8110a795636f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_Cover_Phone.jpg/d0a543f63e831dc8fad44364107065ec.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_VideoPreview.webm/dff78645cc44caa8e6c2bf251bc5dad3.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_map_bkg.tga.ckd/b99339d7a6889dd0bbb1730374d9680f.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_banner_bkg.tga.ckd/65090e24d2768b5e8d8ff3907d668fe3.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_Coach_1.tga.ckd/17dd87f46b1664b6aca0ec64cc1bae93.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_Cover_Generic.tga.ckd/645e71dc6f070bb824d66a120e2c86bd.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_Cover_1024.png/4cd8509626810a7b24897be2c4a0b1cf.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_Cover_Online.tga.ckd/3acd0687451f0bfb3e28d5a2cef92f4a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_Cover_AlbumBkg.tga.ckd/728e334141660477b9e9d98b8e735969.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_Cover_AlbumCoach.tga.ckd/3ba736b0f4343e3b4ccb71339ecd8066.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_Coach_1_Phone.png/67832e61c02dd2dd4bbd8110a795636f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_Cover_Phone.jpg/d0a543f63e831dc8fad44364107065ec.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_VideoPreview.webm/dff78645cc44caa8e6c2bf251bc5dad3.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_map_bkg.tga.ckd/fce2b973753db9aed69d1bd2e0718cae.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21334,42667,64000,85334,106667,128000,149334,170667,192000,213334,234667,256000,277334,298667,320000,341334,362667,384000,405334,426667,448000,469334,490667,512000,533334,554667,576000,597334,618667,640000,661334,682667,704000,725334,746667,768000,789334,810667,832000,853334,874667,896000,917334,938667,960000,981334,1002667,1024000,1045334,1066667,1088000,1109334,1130667,1152000,1173334,1194667,1216000,1237334,1258667,1280000,1301334,1322667,1344000,1365334,1386667,1408000,1429334],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-5,\"endBeat\":423,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":67,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/badguyalt/badguyalt_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Billie Eilish O’Connell and Finneas O’Connell. Published by Universal Music Publishing Canada on behalf of Universal Music Corp. / Kobalt Songs Music Publishing obo Last Frontier. Courtesy of Interscope Records under license from Universal Music Enterprises. All rights of the producer and other rightsholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 4, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "02FD6CFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 194.834, + "mapName": "BadGuyALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2020, + "packages": { + "mapContent": "BadGuyALT_mapContent" + }, + "parentMapName": "BadGuy", + "skuIds": [], + "songColors": { + "songColor_1A": "000699FF", + "songColor_1B": "20F4D0FF", + "songColor_2A": "FFEC1FFF", + "songColor_2B": "A17506FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Alternate", + "subscribedSong" + ], + "title": "bad guy", + "urls": { + "jmcs://jd-contents/BadGuyALT/BadGuyALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_AudioPreview.ogg/cbee85dd683a014d3841b817b59b49a6.ogg", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/4dd3f11e0938be86ba0093ff04eb6880.webm", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/1f0c147f9b0778b6d347e56717dfeb6a.webm", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_LOW.vp8.webm/dfa089252f028ceedf03c490a80459a0.webm", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_LOW.vp9.webm/dbbaa56b4f183880dafdd4800d6f2971.webm", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_MID.vp8.webm/b16774aad9463b33b91b30a7d624e68a.webm", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_MID.vp9.webm/7afb20003d1dcdf450ff5836570cad53.webm", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/0fd6928ed83d6629a4766bc4731bf28c.webm", + "jmcs://jd-contents/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadGuyALT/BadGuyALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/dac26f76feb2df2175c80c9a2a28a248.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "ddc6c4e5d13ee67455b624889809047f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BadGuyALT/ps4/BadGuyALT_MAIN_SCENE_ORBIS.zip/ddc6c4e5d13ee67455b624889809047f.zip", + "version": 23 + }, + "nx": { + "md5": "e38ac84f58f0ea48a50badf6ee21327d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BadGuyALT/nx/BadGuyALT_MAIN_SCENE_NX.zip/e38ac84f58f0ea48a50badf6ee21327d.zip", + "version": 23 + }, + "pc": { + "md5": "0ad580c22ec270647abf531c60f19506", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BadGuyALT/pc/BadGuyALT_MAIN_SCENE_PC.zip/0ad580c22ec270647abf531c60f19506.zip", + "version": 14 + }, + "wiiu": { + "md5": "dc5200b2ea7b74bcf687c4db2ea1efbb", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BadGuyALT/wiiu/BadGuyALT_MAIN_SCENE_WIIU.zip/dc5200b2ea7b74bcf687c4db2ea1efbb.zip", + "version": 13 + } + }, + "mapType": "jdu", + "customTypeNameId": 20002121 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BadLiar.json b/justdanceonline-main/maps/BadLiar.json new file mode 100644 index 0000000000000000000000000000000000000000..f0eccb4208609aebc394b5d65f9ebf5a93a62705 --- /dev/null +++ b/justdanceonline-main/maps/BadLiar.json @@ -0,0 +1,123 @@ +{ + "artist": "Selena Gomez", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_banner_bkg.tga.ckd/4d972c80e10342eee4190e1833340e26.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_Coach_1.tga.ckd/70f10cdf111e9c96166aa86190d0d90d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_Cover_Generic.tga.ckd/6fd36991eab99741dc730a29d1724df3.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Cover_1024.png/f0d5a13995a339240a1ef04948390147.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_Cover_Online.tga.ckd/db5e1cb3a54582b9d9dddf7a1632c091.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_Cover_AlbumBkg.tga.ckd/b713a88068fc841815b5ed9ce36d6ebe.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_Cover_AlbumCoach.tga.ckd/ce39e66a6c8bc6abc387a4617686a93f.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Coach_1_Phone.png/0d30c243adb27ca78befe77347114c34.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Cover_Phone.jpg/fcefef00d6ca6a72dcc74c5e58fd735e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_VideoPreview.webm/2804749f6b46810219f03c41f0d7cf56.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_map_bkg.tga.ckd/e7e371122ad49f0b4aed500c72e859a3.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_banner_bkg.tga.ckd/4fa4222b259c09c5cab73d589f00c622.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_Coach_1.tga.ckd/c9600f2ffa572b13e5e61b55b32e6c26.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_Cover_Generic.tga.ckd/19634fc4bfb7f1d5c9418e52998b2519.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Cover_1024.png/f0d5a13995a339240a1ef04948390147.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_Cover_Online.tga.ckd/1bd222eef056fd139ce06f7a76f5c170.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_Cover_AlbumBkg.tga.ckd/fcb48b5ba699e08841e15e063fa0af2c.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_Cover_AlbumCoach.tga.ckd/0835cc39d34364020d2ec9d8f4196018.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Coach_1_Phone.png/0d30c243adb27ca78befe77347114c34.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Cover_Phone.jpg/fcefef00d6ca6a72dcc74c5e58fd735e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_VideoPreview.webm/2804749f6b46810219f03c41f0d7cf56.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_map_bkg.tga.ckd/01c1009600368976eca8fc2aeaa5af41.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/wiiu/BadLiar_banner_bkg.tga.ckd/dce96bab80aa46b3e8263ea7ad5e763a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/wiiu/BadLiar_Coach_1.tga.ckd/e2df989f0fd1d68772651096eac23929.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/wiiu/BadLiar_Cover_Generic.tga.ckd/1d4a14a53a6b4ac77ae5a5bbe3b1bedf.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Cover_1024.png/f0d5a13995a339240a1ef04948390147.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/wiiu/BadLiar_Cover_Online.tga.ckd/8eb815cd09ffad741c0d2523cf98e44b.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/wiiu/BadLiar_Cover_AlbumBkg.tga.ckd/38644a421a4e3c789843b4d44deef3b8.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/wiiu/BadLiar_Cover_AlbumCoach.tga.ckd/097199c9ec50b83e5ef9a9cca46c4282.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Coach_1_Phone.png/0d30c243adb27ca78befe77347114c34.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_Cover_Phone.jpg/fcefef00d6ca6a72dcc74c5e58fd735e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_VideoPreview.webm/2804749f6b46810219f03c41f0d7cf56.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23808,47616,71424,95232,119040,142848,166608,190416,214224,238032,261840,285648,309456,333216,357024,380832,404640,428448,452256,476064,499872,523632,547440,571248,595056,618864,642672,666480,690240,714048,737856,761664,785472,809280,833088,856896,880656,904464,928272,952080,975888,999696,1023504,1047312,1071072,1094880,1118688,1142496,1166304,1190112,1213920,1237680,1261488,1285296,1309104,1332912,1356720,1380528,1404336,1428096],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-5,\"endBeat\":434,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":60,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/badliar/badliar_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Julia Michaels, Ian Kirkpatrick, David Byrne, Selena Gomez, Tina Weymouth, Justin Tranter and Christopher Frantz. Published by WB Music Corp. (ASCAP), Index Music, Inc. (ASCAP), Warner-Tamerlane Publishing Corp. (BMI), Justin's School For Girls (BMI), Thanks For The Songs Richard (BMI) and Buckley Tenenbaum Publishing (BMI). All Rights on behalf of Itself and Index Music, Inc. administered by WB Music Corp. All Rights on behalf of Itself, Justin's School For Girls, Thanks For The Songs Richard and Buckley Tenenbaum Publishing administered by Warner-Tamerlane Publishing Corp. / Universal Music Corp. on behalf of Itself and SMG Tunes. Courtesy of Interscope Records under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "F151D8FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 217.695, + "mapName": "BadLiar", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "BadLiar_mapContent" + }, + "parentMapName": "BadLiar", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "93D9F9FF", + "songColor_1B": "0294C9FF", + "songColor_2A": "455256FF", + "songColor_2B": "071E1EFF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Bad Liar", + "urls": { + "jmcs://jd-contents/BadLiar/BadLiar_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_AudioPreview.ogg/e6f9ecff4749c84181023e7d1930bdf9.ogg", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_HIGH.vp8.webm/1b1515544e143ee9fd23b06d2df8aced.webm", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_HIGH.vp9.webm/b7448d108be67883aa2dc1c4b2a22009.webm", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_LOW.vp8.webm/a3b97617501eb2e1926b954a97b1aa1b.webm", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_LOW.vp9.webm/5ef0456790b88611091fa87a4fe0be05.webm", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_MID.vp8.webm/79b722090c5dc9195f6a1d5cf7f0c2a5.webm", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_MID.vp9.webm/cea44e9b29debcb9025e592b1b4359de.webm", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_ULTRA.vp8.webm/384dc448914ba770d0206d13f1e999c6.webm", + "jmcs://jd-contents/BadLiar/BadLiar_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BadLiar/BadLiar_MapPreviewNoSoundCrop_ULTRA.vp9.webm/183e8171f2072c073370b613754aec02.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "d2a0387474929dc0fd34e4f011cf651e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BadLiar/ps4/BadLiar_MAIN_SCENE_ORBIS.zip/d2a0387474929dc0fd34e4f011cf651e.zip", + "version": 3 + }, + "nx": { + "md5": "9760c7c46d22323900e3974da4d907bf", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BadLiar/nx/BadLiar_MAIN_SCENE_NX.zip/9760c7c46d22323900e3974da4d907bf.zip", + "version": 3 + }, + "pc": { + "md5": "74bb80b8272ba85d7af062bd3ff42efa", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BadLiar/pc/74bb80b8272ba85d7af062bd3ff42efa.zip", + "version": 1 + }, + "wiiu": { + "md5": "ea36a2ab99485024a0626b55b1beb364", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BadLiar/wiiu/BadLiar_MAIN_SCENE_WIIU.zip/ea36a2ab99485024a0626b55b1beb364.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Bailando1997.json b/justdanceonline-main/maps/Bailando1997.json new file mode 100644 index 0000000000000000000000000000000000000000..390ec13e47449548e12ed1b59b99fc0a2c7d3ce6 --- /dev/null +++ b/justdanceonline-main/maps/Bailando1997.json @@ -0,0 +1,90 @@ +{ + "artist": "Paradisio Ft. Dj Patrick Samoy", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_banner_bkg.jpg/549a6455024493752e61d6089662bcc4.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Coach_1.png/99351b318058520e7684058e562b406d.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_Generic.jpg/ea4c1479b6cc2c10d81f3dd8dc410751.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_Online.jpg/61311c0f88438b722738c2d6ea94de23.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_AlbumBkg.jpg/e551f3fbb6a915a11a596015f4ca57ac.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_AlbumCoach.png/3bb25c7d155a926560660cf26b56d51d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Coach_1_Phone.png/af5c5e557b5c0808e4f2ae8346f7475e.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_Phone.jpg/61311c0f88438b722738c2d6ea94de23.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_banner_bkg.jpg/549a6455024493752e61d6089662bcc4.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Coach_1.png/99351b318058520e7684058e562b406d.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_Generic.jpg/ea4c1479b6cc2c10d81f3dd8dc410751.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_Online.jpg/61311c0f88438b722738c2d6ea94de23.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_AlbumBkg.jpg/e551f3fbb6a915a11a596015f4ca57ac.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_AlbumCoach.png/3bb25c7d155a926560660cf26b56d51d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Coach_1_Phone.png/af5c5e557b5c0808e4f2ae8346f7475e.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailando1997/Bailando1997_Cover_Phone.jpg/61311c0f88438b722738c2d6ea94de23.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21686,43373,65060,86747,108433,130120,151807,173494,195180,216867,238554,260241,281927,303614,325301,346988,368674,390361,412048,433735,455421,477108,498795,520482,542168,563855,585542,607229,628915,650602,672289,693976,715662,737349,759036,780723,802409,824096,845783,867470,889156,910843,932530,954217,975903,997590,1019277,1040964,1062650,1084337,1106024,1127711,1149397,1171084,1192771,1214458,1236144,1257831,1279518,1301205,1322891,1344578,1366265,1387952,1409638,1431325],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":459,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":66,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bailando1997/bailando1997_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Patrick Samoy and Maria Garcia Asensio. Published by Universal Music Publishing Canada on behalf of PolyGram-Music-Publishing. Courtesy of P. Samoy Recordings. / Eurodance Floor Records under exclusive license to Idm Media Network S.r.l.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "E81A87FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 210.993, + "mapName": "Bailando1997", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "Bailando1997_mapContent" + }, + "parentMapName": "Bailando1997", + "skuIds": [], + "songColors": { + "songColor_1A": "342931FF", + "songColor_1B": "A82281FF", + "songColor_2A": "BE8D53FF", + "songColor_2B": "C6BBD5FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Bailando", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "dccc2096d88e5d2acf26f845b7ecabd9", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/ps4/Bailando1997_MAIN_SCENE_ORBIS.zip/dccc2096d88e5d2acf26f845b7ecabd9.zip", + "version": 1 + }, + "nx": { + "md5": "d7b0c6b6fd64edef0e6e61bbe259c045", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/nx/Bailando1997_MAIN_SCENE_NX.zip/d7b0c6b6fd64edef0e6e61bbe259c045.zip", + "version": 1 + }, + "pc": { + "md5": "4e8704dcc18cc8ebbf7fd98aa5215463", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Bailando1997/pc/4e8704dcc18cc8ebbf7fd98aa5215463.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/Bailando1997/Bailando1997_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_AudioPreview.ogg/de3676364f235a46c0d02a67cf38f5a0.ogg", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_HIGH.vp8.webm/c65d119a19dd45a264239ab33ba80c73.webm", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_HIGH.vp9.webm/8cc1fd3d7dee563478c0297e60563808.webm", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_LOW.vp8.webm/e86db7b645342a3949f5c1a5ce30b99b.webm", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_LOW.vp9.webm/b57553c6fec3745d2c290fcc8f2bcbc4.webm", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_MID.vp8.webm/f85a58b6f71691c14df28b0bb2d94024.webm", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_MID.vp9.webm/19daf8fddf60cfaec2da4d9dcd5cecce.webm", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_ULTRA.vp8.webm/8cb8b0b20ffad19af8c831040074c0c8.webm", + "jmcs://jd-contents/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Bailando1997/Bailando1997_MapPreviewNoSoundCrop_ULTRA.vp9.webm/fca3aed63fbd6d33221b8e265149b960.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Bailar.json b/justdanceonline-main/maps/Bailar.json new file mode 100644 index 0000000000000000000000000000000000000000..afd3591663c6157c795dc766881997d8930049a5 --- /dev/null +++ b/justdanceonline-main/maps/Bailar.json @@ -0,0 +1,114 @@ +{ + "artist": "Deorro Ft. Elvis Crespo", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_banner_bkg.jpg/6ea2626208f0514aa0cfa58df98d1229.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Coach_1.png/f413bd1ef18c46cd90ab758ba1c522cd.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_Generic.jpg/1203e3301e835e86b6c2b0cb2d727125.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_1024.png/9733c3d02efdd6429ce2f2cbe0938ff8.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_Online.jpg/61cbca0835f57f521ea8367fd39cdf36.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_AlbumBkg.jpg/99246e6b73bb706fea3a6f5faedb0b35.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_AlbumCoach.png/4641a76d9d06e31e13cef846f8b7d46d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Coach_1_Phone.png/2bd86ca7d28720434a0d801242a2fb4c.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_Phone.jpg/61cbca0835f57f521ea8367fd39cdf36.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_VideoPreview.webm/1b03ca676f959cb458867c5dc445bfba.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_banner_bkg.jpg/6ea2626208f0514aa0cfa58df98d1229.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Coach_1.png/f413bd1ef18c46cd90ab758ba1c522cd.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_Generic.jpg/1203e3301e835e86b6c2b0cb2d727125.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_1024.png/9733c3d02efdd6429ce2f2cbe0938ff8.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_Online.jpg/61cbca0835f57f521ea8367fd39cdf36.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_AlbumBkg.jpg/99246e6b73bb706fea3a6f5faedb0b35.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_AlbumCoach.png/4641a76d9d06e31e13cef846f8b7d46d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Coach_1_Phone.png/2bd86ca7d28720434a0d801242a2fb4c.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_Phone.jpg/61cbca0835f57f521ea8367fd39cdf36.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_VideoPreview.webm/1b03ca676f959cb458867c5dc445bfba.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/wiiu/Bailar_banner_bkg.tga.ckd/39eebe2386cb6e33ce97c32429389472.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/wiiu/Bailar_Coach_1.tga.ckd/ec69cdd45ad4fb4cc05a296ff67fbb80.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/wiiu/Bailar_Cover_Generic.tga.ckd/622360f4c210d0943434ad7cdbf8e8f3.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_1024.png/9733c3d02efdd6429ce2f2cbe0938ff8.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/wiiu/Bailar_Cover_Online.tga.ckd/3f17cdcc7ca95121df33d1792f67443c.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/wiiu/Bailar_Cover_AlbumBkg.tga.ckd/86c8b138f5e33896373b7ee96aae7fed.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/wiiu/Bailar_Cover_AlbumCoach.tga.ckd/789f9906e8fdfe1ffe87d8757581e7c2.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Coach_1_Phone.png/2bd86ca7d28720434a0d801242a2fb4c.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_Cover_Phone.jpg/61cbca0835f57f521ea8367fd39cdf36.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_VideoPreview.webm/1b03ca676f959cb458867c5dc445bfba.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22512,45024,67536,90000,112512,135024,157535,179999,202511,225023,247535,269999,292511,315023,337535,359999,382511,405023,427535,449999,472511,495022,517534,539998,562510,585022,607534,629998,652510,675022,697534,719998,742510,765022,787534,809997,832509,855021,877533,899997,922509,945021,967533,989997,1012509,1035021,1057533,1079997,1102509,1125020,1147532,1169996,1192508,1215020,1237532,1259996,1282508,1305020,1327532,1349996,1372508,1395020,1417532,1439996],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-6,\"endBeat\":342,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":64,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bailar/bailar_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "B219D9FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 163.126, + "mapName": "Bailar", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "Bailar_mapContent" + }, + "parentMapName": "Bailar", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "00BB9FFF", + "songColor_1B": "004E77FF", + "songColor_2A": "FFE591FF", + "songColor_2B": "B85B33FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Bailar", + "urls": { + "jmcs://jd-contents/Bailar/Bailar_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_AudioPreview.ogg/f5e1c3098233633a632c6ded826a6624.ogg", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_HIGH.vp8.webm/d3dd37580d47b0cea3e1cae70201fa59.webm", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_HIGH.vp9.webm/2a44bb9424c537a869e0956a1c3a62ca.webm", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_LOW.vp8.webm/c7c65678b6b1046a69432e403699b590.webm", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_LOW.vp9.webm/d841dc193e8dde6a84d96dae67880c11.webm", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_MID.vp8.webm/363d55cd52ede89bc76863f866b826f3.webm", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_MID.vp9.webm/1b2945a5fd4a5dc24583bc4ed78bb316.webm", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_ULTRA.vp8.webm/b4658d8bada981a958a442e1bcefbf2c.webm", + "jmcs://jd-contents/Bailar/Bailar_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bailar/Bailar_MapPreviewNoSoundCrop_ULTRA.vp9.webm/cde7a2f8568573e00df0301c7afb3696.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "b300e98c921df31656fe706faf2e483d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bailar/ps4/Bailar_MAIN_SCENE_ORBIS.zip/b300e98c921df31656fe706faf2e483d.zip", + "version": 7 + }, + "pc": { + "md5": "93eb6faa5930829d7dc0aabea5cf43ee", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bailar/pc/Bailar_MAIN_SCENE_PC.zip/93eb6faa5930829d7dc0aabea5cf43ee.zip", + "version": 2 + }, + "wiiu": { + "md5": "514cd460fdd8360c5bfe4105d6b6c4c8", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bailar/wiiu/Bailar_MAIN_SCENE_WIIU.zip/514cd460fdd8360c5bfe4105d6b6c4c8.zip", + "version": 7 + }, + "nx": { + "md5": "e10f708535c40e4cb3d0fe082fede6ff", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bailar/nx/Bailar_MAIN_SCENE_NX.zip/e10f708535c40e4cb3d0fe082fede6ff.zip", + "version": 4 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BalletKids.json b/justdanceonline-main/maps/BalletKids.json new file mode 100644 index 0000000000000000000000000000000000000000..97081ac5ad57a15bced4b9bb35760097bb75efb9 --- /dev/null +++ b/justdanceonline-main/maps/BalletKids.json @@ -0,0 +1,96 @@ +{ + "artist": "The Just Dance Orchestra", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_banner_bkg.jpg/53dfb87cc39dd83e81dc681f1b363de6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_1.png/7b3f337ba4e149c8d38b84b2958aedd5.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_2.png/38ecac1e1437f062a5d5cbe1d38591d1.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_Generic.jpg/3aa46fec17b075fb516bb72ec2ac7c42.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_Online.jpg/4dac98b0522688660cd491327b2f7db4.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_AlbumBkg.jpg/68e5313f7afb61bf08fbe41e46062920.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_AlbumCoach.png/642ee8e869ca33497b8e4bf8ca18ce4d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_1_Phone.png/1bf69fed51ea1c051e88a96da9e388d9.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_2_Phone.png/ec702cdca510562bc68d5246b6d0fd25.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_Phone.jpg/4dac98b0522688660cd491327b2f7db4.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_banner_bkg.jpg/53dfb87cc39dd83e81dc681f1b363de6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_1.png/7b3f337ba4e149c8d38b84b2958aedd5.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_2.png/38ecac1e1437f062a5d5cbe1d38591d1.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_Generic.jpg/3aa46fec17b075fb516bb72ec2ac7c42.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_Online.jpg/4dac98b0522688660cd491327b2f7db4.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_AlbumBkg.jpg/68e5313f7afb61bf08fbe41e46062920.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_AlbumCoach.png/642ee8e869ca33497b8e4bf8ca18ce4d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_1_Phone.png/1bf69fed51ea1c051e88a96da9e388d9.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Coach_2_Phone.png/ec702cdca510562bc68d5246b6d0fd25.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BalletKids/BalletKids_Cover_Phone.jpg/4dac98b0522688660cd491327b2f7db4.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24038,48076,72114,96152,120478,144805,169131,193458,217028,240599,264170,287741,312696,337651,362606,387561,411183,434804,458426,482048,505288,528529,551769,575010,598822,622634,646446,670258,695213,720169,745124,770079,794272,818465,842658,866851,890854,914856,938859,962861,986102,1009343,1032583,1055824,1080207,1104591,1128975,1153358,1177075,1200792,1224509,1248226,1272133,1296040,1319948,1343855,1367667,1391479,1415291,1439103],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-10,\"endBeat\":176,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":60,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/balletkids/balletkids_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Julian Gallant, Jeff Meegan, David Tobin and Rob Kelly. Published by Audio Network Canada Inc. Courtesy of Audio Network Canada Inc.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "C48BF9FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 93.28399999999999, + "mapName": "BalletKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "BalletKids_mapContent" + }, + "parentMapName": "BalletKids", + "skuIds": [], + "songColors": { + "songColor_1A": "9542BBFF", + "songColor_1B": "271626FF", + "songColor_2A": "D9E4E6FF", + "songColor_2B": "FADD09FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "KidsOnly", + "subscribedSong" + ], + "title": "Dance Of The Mirlitons", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "f40687b15b0ec720ea9ced2641a1abe3", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/ps4/BalletKids_MAIN_SCENE_ORBIS.zip/f40687b15b0ec720ea9ced2641a1abe3.zip", + "version": 1 + }, + "nx": { + "md5": "b3f993dd87fcd6f043d13d63ef5ca9d1", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/nx/BalletKids_MAIN_SCENE_NX.zip/b3f993dd87fcd6f043d13d63ef5ca9d1.zip", + "version": 1 + }, + "pc": { + "md5": "5d1d7d0603960d90e35b1c5ab6634c65", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BalletKids/pc/5d1d7d0603960d90e35b1c5ab6634c65.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939, + "urls": { + "jmcs://jd-contents/BalletKids/BalletKids_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_AudioPreview.ogg/2a9b69894607e57c4f4d3ad6e7c66b01.ogg", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/5db9333acb5a76da0ef33d068225e52b.webm", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/4cc3a0c937557561447ac146a290281d.webm", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_LOW.vp8.webm/7aa78d2973050cbb9198a664874d8a97.webm", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_LOW.vp9.webm/ea89874f1a462e9112f10998d7228073.webm", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_MID.vp8.webm/c36d286f76add9992119ef57d5e5d81d.webm", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_MID.vp9.webm/4d93ebfa52462777d346b79ebb5297db.webm", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/d4a8aabb44934e6feb74dfc675390760.webm", + "jmcs://jd-contents/BalletKids/BalletKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BalletKids/BalletKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/dee70b2077890e4a30c2d82d58913377.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Bang2019.json b/justdanceonline-main/maps/Bang2019.json new file mode 100644 index 0000000000000000000000000000000000000000..03af67f1aca45c76d9f08ad07318376ad0db2d52 --- /dev/null +++ b/justdanceonline-main/maps/Bang2019.json @@ -0,0 +1,128 @@ +{ + "artist": "BIGBANG", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_banner_bkg.tga.ckd/8688ad87b493236a896a815e62b40277.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_Coach_1.tga.ckd/4ceeca82d7bb6b888db2f1c04eb10f17.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_Coach_2.tga.ckd/cc8fbc621984e22734c1b4d01b9fa1d6.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_Coach_3.tga.ckd/4ceeca82d7bb6b888db2f1c04eb10f17.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_Cover_Generic.tga.ckd/27dbef58c4f3e93692152a073dd3a935.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Cover_1024.png/044fa2a6ca2df200e37312614304ed2c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_Cover_Online.tga.ckd/27dbef58c4f3e93692152a073dd3a935.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_Cover_AlbumBkg.tga.ckd/f71fe9fd104f6c4354daf865dcbb6a95.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_Cover_AlbumCoach.tga.ckd/1b0cfbd4d309bec5f8b3dcdf83580fd2.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_1_Phone.png/6060a21c5422d9e0e5deaaa519d37cd4.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_2_Phone.png/3bb6b96396b58fd6165e10b17851a6a4.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_3_Phone.png/6060a21c5422d9e0e5deaaa519d37cd4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Cover_Phone.jpg/f2357f81eede2aa4266fa47fd2f71e2c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_VideoPreview.webm/8387320d403eb25a70a5e7a754bf99c1.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/ggp/Bang2019_map_bkg.tga.ckd/5266d0fb4d0e9428474b82d163d332e6.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_banner_bkg.tga.ckd/4a0afe5e2e416b402187aa1f52039769.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_Coach_1.tga.ckd/bb04661c913997b45cc5975f600f8734.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_Coach_2.tga.ckd/f2c9bd3476cfba25f39c3f19c765d8f2.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_Coach_3.tga.ckd/bb04661c913997b45cc5975f600f8734.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_Cover_Generic.tga.ckd/ad8cf63aa0cf68c7746e0189902f8f83.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Cover_1024.png/044fa2a6ca2df200e37312614304ed2c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_Cover_Online.tga.ckd/ef1d167fd4c67171e25dda826c76a1e9.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_Cover_AlbumBkg.tga.ckd/a49e683e6f9ada9f80371c4f529d702c.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_Cover_AlbumCoach.tga.ckd/82083a6e24daffba932a65573a6362ef.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_map_bkg.tga.ckd/f97918d06f73848a38e1ae00fd01ccac.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_1_Phone.png/6060a21c5422d9e0e5deaaa519d37cd4.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_2_Phone.png/3bb6b96396b58fd6165e10b17851a6a4.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_3_Phone.png/6060a21c5422d9e0e5deaaa519d37cd4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Cover_Phone.jpg/f2357f81eede2aa4266fa47fd2f71e2c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_VideoPreview.webm/8387320d403eb25a70a5e7a754bf99c1.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_banner_bkg.tga.ckd/71d64027a01a8c05d216a1912d982ffc.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_Coach_1.tga.ckd/7e31c43fc8a09662d17fc2dadd907934.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_Coach_2.tga.ckd/aaf4e0b680b3c396ca4814faf36cdea8.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_Coach_3.tga.ckd/7e31c43fc8a09662d17fc2dadd907934.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_Cover_Generic.tga.ckd/1447c356cfbc16950b606f84efef722f.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Cover_1024.png/6fca76d77c3521dba2cc0b948f3f30a0.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_Cover_Online.tga.ckd/abaa9716728a712bca79ed99fcf88faf.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_Cover_AlbumBkg.tga.ckd/7b8ad26e829405bc8219c8fea2b98d1e.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_Cover_AlbumCoach.tga.ckd/940f24e61cbf9e148834fe1e34744ec6.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_1_Phone.png/6060a21c5422d9e0e5deaaa519d37cd4.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_2_Phone.png/3bb6b96396b58fd6165e10b17851a6a4.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Coach_3_Phone.png/6060a21c5422d9e0e5deaaa519d37cd4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_Cover_Phone.jpg/f2357f81eede2aa4266fa47fd2f71e2c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_VideoPreview.webm/8387320d403eb25a70a5e7a754bf99c1.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21312,42672,63984,85343,106655,128015,149327,170639,191999,213311,234671,255983,277343,298655,320015,341327,362639,383999,405311,426671,447983,469343,490655,512015,533327,554639,575999,597311,618671,639983,661343,682655,704015,725327,746639,767999,789310,810670,831982,853342,874654,896014,917326,938638,959998,981310,1002670,1023982,1045342,1066654,1088014,1109326,1130638,1151998,1173310,1194670,1215982,1237342,1258654,1280014,1301326,1322638,1343998,1365310,1386670,1407982,1429342],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-7,\"endBeat\":494,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":67,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bang2019/bang2019_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "21F0EFFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 222.66799999999998, + "mapName": "Bang2019", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "Bang2019_mapContent" + }, + "parentMapName": "Bang2019", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "00006DFF", + "songColor_1B": "00032DFF", + "songColor_2A": "C64600FF", + "songColor_2B": "180500FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Bang Bang Bang", + "urls": { + "jmcs://jd-contents/Bang2019/Bang2019_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_AudioPreview.ogg/4263912218dd665a9a1c955cca66ab47.ogg", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_HIGH.vp8.webm/06750daaa0bf601f643f267c0b0aea16.webm", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_HIGH.vp9.webm/b323fecd6e300fe1b3b61b7aee8bc31d.webm", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_LOW.vp8.webm/f7bbe05e12574525ea7422fdddbcf7d1.webm", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_LOW.vp9.webm/26dab07d5d5cb5a8e7c4159e0b0b5fb0.webm", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_MID.vp8.webm/1affa22fb13f1612fe1c89d703f6983d.webm", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_MID.vp9.webm/3f48f3f622970c4c019ef6348d673e3b.webm", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_ULTRA.vp8.webm/0ca63092a6545ea77e30f2280e8a4602.webm", + "jmcs://jd-contents/Bang2019/Bang2019_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Bang2019/Bang2019_MapPreviewNoSoundCrop_ULTRA.vp9.webm/b6d31768cd7a835905705af6fc56a913.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "a049ad6daeb01f467eecb80aad1ba258", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bang2019/ps4/Bang2019_MAIN_SCENE_ORBIS.zip/a049ad6daeb01f467eecb80aad1ba258.zip", + "version": 53 + }, + "pc": { + "md5": "b6fed39121b7cf76e7ef821fbc82fc82", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bang2019/pc/Bang2019_MAIN_SCENE_PC.zip/b6fed39121b7cf76e7ef821fbc82fc82.zip", + "version": 26 + }, + "wiiu": { + "md5": "d8bcec2d7e69089ba6d1efa9db4b5066", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bang2019/wiiu/Bang2019_MAIN_SCENE_WIIU.zip/d8bcec2d7e69089ba6d1efa9db4b5066.zip", + "version": 47 + }, + "nx": { + "md5": "09b5ed7eb6204a958e8078484596a055", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Bang2019/nx/Bang2019_MAIN_SCENE_NX.zip/09b5ed7eb6204a958e8078484596a055.zip", + "version": 32 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Barbie.json b/justdanceonline-main/maps/Barbie.json new file mode 100644 index 0000000000000000000000000000000000000000..2e0205d70b42474afc2e50a8fdb550f488d6ba88 --- /dev/null +++ b/justdanceonline-main/maps/Barbie.json @@ -0,0 +1,114 @@ +{ + "artist": "Wanko Ni Mero Mero", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_banner_bkg.jpg/4748800d41a57c4411510cd8641c5fc6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Coach_1.png/2ff8ebd165b71c9d9cece6806f952d99.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_Generic.jpg/af0d0b8c00338093186bbdd7d0501bb8.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_1024.png/16a58f34fce0d5272cfa0087b0ce7c88.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_Online.jpg/c4980fb274b39531d4e3bdf46bc0f1ce.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_AlbumBkg.jpg/a0b01189693944149f309a105fca0b6f.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_AlbumCoach.png/0e3c3cd753aed1e6e0503140600ae931.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Coach_1_Phone.png/d19ace82160c01a7487b7a6e88fad604.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_Phone.jpg/c4980fb274b39531d4e3bdf46bc0f1ce.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_VideoPreview.webm/0d9515c3ce2bfd6ea424515183dab4af.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_banner_bkg.jpg/4748800d41a57c4411510cd8641c5fc6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Coach_1.png/2ff8ebd165b71c9d9cece6806f952d99.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_Generic.jpg/af0d0b8c00338093186bbdd7d0501bb8.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_1024.png/16a58f34fce0d5272cfa0087b0ce7c88.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_Online.jpg/c4980fb274b39531d4e3bdf46bc0f1ce.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_AlbumBkg.jpg/a0b01189693944149f309a105fca0b6f.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_AlbumCoach.png/0e3c3cd753aed1e6e0503140600ae931.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Coach_1_Phone.png/d19ace82160c01a7487b7a6e88fad604.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_Phone.jpg/c4980fb274b39531d4e3bdf46bc0f1ce.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_VideoPreview.webm/0d9515c3ce2bfd6ea424515183dab4af.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/wiiu/Barbie_banner_bkg.tga.ckd/f7b9bb54e6dae4faf26e2cb4218c0a8d.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/wiiu/Barbie_Coach_1.tga.ckd/3fcd58a0806a3bea4a131fe4c4a05b82.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/wiiu/Barbie_Cover_Generic.tga.ckd/c6a142a246311d52329fa16b4bcaccc4.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_1024.png/16a58f34fce0d5272cfa0087b0ce7c88.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/wiiu/Barbie_Cover_Online.tga.ckd/1b3d04cf8f3719a95ccbe3b3fbfdab65.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/wiiu/Barbie_Cover_AlbumBkg.tga.ckd/d16bcb563671f38728d6e02c6551cf7b.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/wiiu/Barbie_Cover_AlbumCoach.tga.ckd/dc181c6d4650c852df72c2016f21b15b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Coach_1_Phone.png/d19ace82160c01a7487b7a6e88fad604.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_Cover_Phone.jpg/c4980fb274b39531d4e3bdf46bc0f1ce.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_VideoPreview.webm/0d9515c3ce2bfd6ea424515183dab4af.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22512,45024,67488,90000,112512,135023,157487,179999,202511,225023,247487,269999,292511,315023,337487,359999,382511,405023,427487,449999,472510,495022,517486,539998,562510,585022,607486,629998,652510,675022,697486,719998,742510,765022,787486,809997,832509,855021,877485,899997,922509,945021,967485,989997,1012509,1035021,1057485,1079997,1102509,1125021,1147484,1169996,1192508,1215020,1237484,1259996,1282508,1305020,1327484,1349996,1372508,1395020,1417484,1439996],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-14,\"endBeat\":371,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":64,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/barbie/barbie_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Reni Mimura and Tom Salta. Published by Ubisoft Music Publishing. Courtesy of Ubisoft Music. Produced and performed by Tom Salta. Vocals by Reni Mimura, Tom Salta, anonymous cats and dogs. Music supervision - Manu Bachet and Alkis Argyriadis. No animal were harmed in the making of this song. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "70A7FFFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 180.47, + "mapName": "Barbie", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "Barbie_mapContent" + }, + "parentMapName": "Barbie", + "skuIds": [], + "songColors": { + "songColor_1A": "51D3FFFF", + "songColor_1B": "0067D4FF", + "songColor_2A": "FFAADCFF", + "songColor_2B": "FF0070FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "Unlimited2017" + ], + "title": "Chiwawa", + "urls": { + "jmcs://jd-contents/Barbie/Barbie_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_AudioPreview.ogg/1d264933a8a1bc8d4006dd807963e210.ogg", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_HIGH.vp8.webm/9170c856eaf2c2db1c13dd0e11c8abd1.webm", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_HIGH.vp9.webm/4062223da37bc53c32c383c92dcb1407.webm", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_LOW.vp8.webm/9e112a4e70b9f20deca6d13d17f8e2ad.webm", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_LOW.vp9.webm/c84c6ea39ba9f29f0cbd4ab9ed639080.webm", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_MID.vp8.webm/636576846c413d2e782d15437ed4e143.webm", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_MID.vp9.webm/4aaea4e0c28a27a7b95c2d69402f1cc6.webm", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_ULTRA.vp8.webm/8d4b99453dff1e711b1834ee0e22fca2.webm", + "jmcs://jd-contents/Barbie/Barbie_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Barbie/Barbie_MapPreviewNoSoundCrop_ULTRA.vp9.webm/f2e1fe6a89635ac29bb5c1393bcfd483.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "6b5b0bfb9b6ded4c00ece4166fdc38de", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Barbie/ps4/Barbie_MAIN_SCENE_ORBIS.zip/6b5b0bfb9b6ded4c00ece4166fdc38de.zip", + "version": 44 + }, + "nx": { + "md5": "1bc067268b3ecef9470ba2a466f5e13f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Barbie/nx/Barbie_MAIN_SCENE_NX.zip/1bc067268b3ecef9470ba2a466f5e13f.zip", + "version": 6 + }, + "pc": { + "md5": "611c2380a81e4da5526e6092fb2db23d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Barbie/pc/Barbie_MAIN_SCENE_PC.zip/611c2380a81e4da5526e6092fb2db23d.zip", + "version": 23 + }, + "wiiu": { + "md5": "de6b1ced44eb909714f4574436212b70", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Barbie/wiiu/Barbie_MAIN_SCENE_WIIU.zip/de6b1ced44eb909714f4574436212b70.zip", + "version": 46 + } + }, + "mapType": "jdu", + "customTypeNameId": 13976 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BeatMatch.json b/justdanceonline-main/maps/BeatMatch.json new file mode 100644 index 0000000000000000000000000000000000000000..d61ab7426ed4d850b06225ccdc2598c805cc2af6 --- /dev/null +++ b/justdanceonline-main/maps/BeatMatch.json @@ -0,0 +1,97 @@ +{ + "artist": "Sweat Invaders", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/textures/BeatMatch_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":442,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":58,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/BeatMatch/BeatMatch_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 442, + "mapName": "BeatMatch", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_LOW.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_MID.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_HIGH.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_ULTRA.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 3, + "packages": { + "mapContent": "BeatMatch_mapContent" + }, + "parentMapName": "BeatMatch", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "D81C68FF", + "songColor_1B": "66042DFF", + "songColor_2A": "C85D02FF", + "songColor_2B": "710600FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Beat Match Until I'm Blue", + "urls": { + "jmcs://jd-contents/BeatMatch/BeatMatch_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/BeatMatch_AudioPreview.ogg", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm", + "jmcs://jd-contents/BeatMatch/BeatMatch_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/BeatMatch_VideoPreview.vp9.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "ae3c87c2cf7745a815a71ebc34974d26", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/pc/ae3c87c2cf7745a815a71ebc34974d26.zip", + "version": 1 + }, + "nx": { + "md5": "b768f8a120d1690d70c75a51eda714b9", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/nx/b768f8a120d1690d70c75a51eda714b9.zip", + "version": 1 + }, + "orbis": { + "md5": "9d87706ba1921af3a893d27b30a99131", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeatMatch/ps4/9d87706ba1921af3a893d27b30a99131.zip", + "version": 1 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BeepBeep.json b/justdanceonline-main/maps/BeepBeep.json new file mode 100644 index 0000000000000000000000000000000000000000..d8c45f04d5258309ed1250cc007be9ba34f33c10 --- /dev/null +++ b/justdanceonline-main/maps/BeepBeep.json @@ -0,0 +1,125 @@ +{ + "artist": "LilDeuceDeuce ft. Black Gryph0n & TomSka", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_banner_bkg.tga.ckd/f6d25419e71e0373f63d70730fae366b.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_Coach_1.tga.ckd/4e9d1f5b5e68d17b40244fe1bec6cb20.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_Cover_Generic.tga.ckd/e447a4e305766abfc5148d2f0259d484.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Cover_1024.png/21be83d4363eb19084302efff4888f42.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_Cover_Online.tga.ckd/3232d249bd7d6ee4704c7fd6d9e45fc2.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_Cover_AlbumBkg.tga.ckd/b18a63c50b2707c3db69bb523d6cf07e.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_Cover_AlbumCoach.tga.ckd/e86ee55695313ea526970f3ec196f728.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Coach_1_Phone.png/bb0e354612a85d9dbd4563d02811b631.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Cover_Phone.jpg/f6fe0936f2e1ba6de043f1fe63ca4ccc.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_VideoPreview.webm/ac97ee936f818855ce02dab89526d442.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_map_bkg.tga.ckd/86b4a9bf9d286e3fe0c007beaa984b2e.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_banner_bkg.tga.ckd/8e26721aa4cf2d147bf896093dc53885.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_Coach_1.tga.ckd/9b90bf9a37322935efd01afdc0a9c836.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_Cover_Generic.tga.ckd/70cd80135a9d0ba95ff57ec64ca757b4.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Cover_1024.png/21be83d4363eb19084302efff4888f42.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_Cover_Online.tga.ckd/5dbee2ac674580245bb362010207ee5a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_Cover_AlbumBkg.tga.ckd/ea6f545214e019768a77c8b24f440d92.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_Cover_AlbumCoach.tga.ckd/5720fd19759bae66dc8fee7a8b661f84.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Coach_1_Phone.png/bb0e354612a85d9dbd4563d02811b631.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Cover_Phone.jpg/f6fe0936f2e1ba6de043f1fe63ca4ccc.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_VideoPreview.webm/ac97ee936f818855ce02dab89526d442.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_map_bkg.tga.ckd/b85172647b6c774232c2c84ccf743384.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/wiiu/BeepBeep_banner_bkg.tga.ckd/96536dd16d8ce3f2115d07c30b845a3f.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/wiiu/BeepBeep_Coach_1.tga.ckd/7b7338a994f3d5cf6f42ac11cb501d2b.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/wiiu/BeepBeep_Cover_Generic.tga.ckd/4d0e490096751e261f1213b850e3a6ca.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Cover_1024.png/21be83d4363eb19084302efff4888f42.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/wiiu/BeepBeep_Cover_Online.tga.ckd/ae6e82dcffd4bcf863857aaaec0546f2.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/wiiu/BeepBeep_Cover_AlbumBkg.tga.ckd/b01d00449d8d98421b867935a785891a.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/wiiu/BeepBeep_Cover_AlbumCoach.tga.ckd/db24123e42bf50ffa40b1966da5696a9.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Coach_1_Phone.png/bb0e354612a85d9dbd4563d02811b631.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_Cover_Phone.jpg/f6fe0936f2e1ba6de043f1fe63ca4ccc.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_VideoPreview.webm/ac97ee936f818855ce02dab89526d442.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22752,45072,68448,91344,113664,136848,159984,182640,205632,227856,250656,274080,297120,320352,343871,366383,388463,410735,434255,456911,479855,502799,525695,548351,571295,593663,616367,639839,662543,685343,708143,731135,754607,777503,800015,822815,845663,868463,891551,914638,937054,959854,982750,1005646,1028542,1050958,1073374,1096702,1120030,1142734,1165390,1188190,1210990,1234078,1256494,1279630,1302766,1325038,1348654,1371310,1394110,1416526,1439806],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-16,\"endBeat\":276,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/beepbeep/beepbeep_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Todd Bryanton. Published by Todd Bryanton. Courtesy of Todd Bryanton. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "0F0D0FFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 139.031, + "mapName": "BeepBeep", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "BeepBeep_mapContent" + }, + "parentMapName": "BeepBeep", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "1BB529FF", + "songColor_1B": "052108FF", + "songColor_2A": "F2F0E5FF", + "songColor_2B": "070707FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "EasyPeasy", + "JD19_KIDScompatible", + "CnUnlimited2018" + ], + "title": "Beep Beep I'm a Sheep", + "urls": { + "jmcs://jd-contents/BeepBeep/BeepBeep_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_AudioPreview.ogg/986be12fc29b5fc88c83f8810982088b.ogg", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_HIGH.vp8.webm/d0f3171383de8bcb7bc373307013d6fd.webm", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_HIGH.vp9.webm/d4a102c349fa60292e20a462ae1e8130.webm", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_LOW.vp8.webm/f00120f673b3950bdc79f633b39052b4.webm", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_LOW.vp9.webm/2eb3dfbdf2a3476f197b07986365246f.webm", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_MID.vp8.webm/d43097022b46947eb7774187ec6e0485.webm", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_MID.vp9.webm/3508731fa8ad58c04b37ba09cbe46cfa.webm", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_ULTRA.vp8.webm/ebdc7a3f6b8d0c2c40810e180d6ec1eb.webm", + "jmcs://jd-contents/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BeepBeep/BeepBeep_MapPreviewNoSoundCrop_ULTRA.vp9.webm/0253351053bf0293d70d00ffe5531529.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "71e4a13d98429e3cf0ef27f5ce780d52", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BeepBeep/ps4/BeepBeep_MAIN_SCENE_ORBIS.zip/71e4a13d98429e3cf0ef27f5ce780d52.zip", + "version": 3 + }, + "nx": { + "md5": "883172c1daae45ba4abead591e776062", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BeepBeep/nx/BeepBeep_MAIN_SCENE_NX.zip/883172c1daae45ba4abead591e776062.zip", + "version": 3 + }, + "pc": { + "md5": "14cd3a750850df5b155cfdf1da6d22c0", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BeepBeep/pc/14cd3a750850df5b155cfdf1da6d22c0.zip", + "version": 1 + }, + "wiiu": { + "md5": "144a52602338f818fc1a3e7753d24ca1", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BeepBeep/wiiu/BeepBeep_MAIN_SCENE_WIIU.zip/144a52602338f818fc1a3e7753d24ca1.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BestSongEver.json b/justdanceonline-main/maps/BestSongEver.json new file mode 100644 index 0000000000000000000000000000000000000000..ddef9dd2caf719ab763bb74bffcd026fe51b1218 --- /dev/null +++ b/justdanceonline-main/maps/BestSongEver.json @@ -0,0 +1,117 @@ +{ + "artist": "One Direction", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BestSongEver/textures/BestSongEver_banner_bkg.png", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Coach_1.tga.ckd/b9f4cd0850390949c87fb6c9e1cbfcbf.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Coach_2.tga.ckd/75392aa383c55e17bc3dc60f9707fd1c.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Coach_3.tga.ckd/3d004a9407e028683bc19617150f759e.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Coach_4.tga.ckd/7a8c1c132b874da00de5ccbf497cb60a.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Cover_Generic.tga.ckd/f9fc7a19a4f82984c31a81e716fc4856.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Cover_1024.png/4ffe5d3ba2b28745bee08f74dbdcadbf.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Cover_Online.tga.ckd/e4e81d438dcaabb058b9ff166e74546b.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Cover_AlbumBkg.tga.ckd/ceac3bebe504eff8edc70ec8f9e98343.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_Cover_AlbumCoach.tga.ckd/ad70ba9157bba88c388aee4be2eab4a9.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_1_Phone.png/182cbb5c686292f29dbd1782f84eb950.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_2_Phone.png/84b3c10abcc9b101c6f13ed22af07721.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_3_Phone.png/f73b582c94366f3510f80766f924d9f5.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_4_Phone.png/b18f1b03628baf29cb0ccb39daa93570.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Cover_Phone.jpg/5f01d24b65f9210c846a723d15992dd7.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_VideoPreview.webm/f759219312aaa2b113a2470736f456fd.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_map_bkg.tga.ckd/648e541f02196cd7900ddc80dae48ecd.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/BestSongEver/textures/BestSongEver_banner_bkg.png", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Coach_1.tga.ckd/5ace445c90551789ddfaeea153616d74.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Coach_2.tga.ckd/c1f06cd09f37beb0e84d474f3cee9330.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Coach_3.tga.ckd/a2242f7abe4b014e94c976a5787eefd7.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Coach_4.tga.ckd/72654717b96adfc68e37aeb68442e248.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Cover_Generic.tga.ckd/7210327b851a9810ebe8e24ebbaa1221.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Cover_1024.png/4ffe5d3ba2b28745bee08f74dbdcadbf.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Cover_Online.tga.ckd/e97f7c27bf2c8da2000cec41f80c9b3f.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Cover_AlbumBkg.tga.ckd/0197ed1764175d052dbac5dbad8547c9.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_Cover_AlbumCoach.tga.ckd/3803b3fe8b0af3bfd25062f4fd1ee679.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_1_Phone.png/182cbb5c686292f29dbd1782f84eb950.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_2_Phone.png/84b3c10abcc9b101c6f13ed22af07721.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_3_Phone.png/f73b582c94366f3510f80766f924d9f5.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Coach_4_Phone.png/b18f1b03628baf29cb0ccb39daa93570.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_Cover_Phone.jpg/5f01d24b65f9210c846a723d15992dd7.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_VideoPreview.webm/f759219312aaa2b113a2470736f456fd.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_map_bkg.tga.ckd/0c6109234b68b0f33fcac03af8a2dda7.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24336,48624,72912,97248,121536,145824,170159,194447,218735,243071,267359,291647,315983,340271,364559,388895,413183,437471,461807,486095,510383,534719,559007,583295,607631,631919,656207,680543,704831,729119,753407,777743,802031,826319,850655,874943,899231,923567,947854,972142,996478,1020766,1045054,1069390,1093678,1117966,1142302,1166590,1190878,1215214,1239502,1263790,1288126,1312414,1336702,1361038,1385326,1409614,1433950],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":382,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bestsongever/bestsongever_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Julian C. Bunetta, Edward James Drewett, Wayne Anthony Hector and John Henry Ryan. Published by Universal Music Publishing Group a division of Universal Music Canada Inc. / Courtesy of Simco Limited under exclusive license to Sony Music Entertainment UK Limited By arrangement with Sony Music Licensing.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "4CFD13FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 194.93699999999998, + "mapName": "BestSongEver", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2015, + "packages": { + "mapContent": "BestSongEver_mapContent" + }, + "parentMapName": "BestSongEver", + "skuIds": [], + "songColors": { + "songColor_1A": "0729acff", + "songColor_1B": "3b6cb1ff", + "songColor_2B": "277ba8ff", + "songColor_2A": "8984bcff" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Main", + "subscribedSong", + "JustDance2015", + "Quartet", + "Boys", + "Fresh", + "Futuristic", + "Pop", + "SuperHero", + "Hard", + "Sweat Hard" + ], + "title": "Best Song Ever", + "urls": { + "jmcs://jd-contents/BestSongEver/BestSongEver_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_AudioPreview.ogg/69f567401f92dc2a9871335179f7367d.ogg", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_HIGH.vp8.webm/8fa9948751e56a24875b5870fb71e8ce.webm", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_HIGH.vp9.webm/4e6e85461d23b5505ecff00a47dee465.webm", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_LOW.vp8.webm/2c5ee7367d0a667228ad28eb748601ba.webm", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_LOW.vp9.webm/84684490cd6cc0ad41596a46750c6fcc.webm", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_MID.vp8.webm/d391c6da71d70b6029c758175c8c2856.webm", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_MID.vp9.webm/d4eb6ba2adfc6d5cffbc3298588b1cbf.webm", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_ULTRA.vp8.webm/80db17fa77afe44925a6d9789d435941.webm", + "jmcs://jd-contents/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BestSongEver/BestSongEver_MapPreviewNoSoundCrop_ULTRA.vp9.webm/2f7db75d99412e4e5ec54ce03678d976.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "dbbbe9fd56bc2712e7e2d8b0a233176e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BestSongEver/pc/BestSongEver_MAIN_SCENE_PC.zip/dbbbe9fd56bc2712e7e2d8b0a233176e.zip", + "version": 37 + }, + "nx": { + "md5": "8ba8ea0bc8a87cacb66e375da2feebf7", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BestSongEver/nx/BestSongEver_MAIN_SCENE_NX.zip/8ba8ea0bc8a87cacb66e375da2feebf7.zip", + "version": 42 + }, + "orbis": { + "md5": "c5c630e779a4d016df5b69bf79795a66", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BestSongEver/ps4/BestSongEver_MAIN_SCENE_ORBIS.zip/c5c630e779a4d016df5b69bf79795a66.zip", + "version": 42 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BigBowlThickNoodle.json b/justdanceonline-main/maps/BigBowlThickNoodle.json new file mode 100644 index 0000000000000000000000000000000000000000..a16917fee64b08cd9ae5b1daf94ac720740db682 --- /dev/null +++ b/justdanceonline-main/maps/BigBowlThickNoodle.json @@ -0,0 +1,92 @@ +{ + "artist": "Wu Yi Fan (Kris Lee)", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_banner_bkg.tga.ckd/16d0ed91e299b68d10163277b5072614.ckd", + "coach1ImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_Coach_1.tga.ckd/4ca36affb06cce38a9df668df8118981.ckd", + "coverImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_Cover_Generic.tga.ckd/a0322642da6b68fe29be9328816c806a.ckd", + "cover_smallImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_Cover_Online.tga.ckd/5643e035b98a06ec9d81560e20d60799.ckd", + "expandBkgImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_Cover_AlbumBkg.tga.ckd/047cc47b24a930861effd21f3e27076a.ckd", + "expandCoachImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_Cover_AlbumCoach.tga.ckd/7be62aad683603f670c1c3b12b19a221.ckd", + "phoneCoach1ImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_Coach_1_Phone.png/9b23b29bc5ef63bad011e3b20dd074e8.png", + "phoneCoverImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_Cover_Phone.jpg/1d8dabb14a1f132d9b2b7c2ada4f4dc4.jpg", + "map_bkgImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_map_bkg.tga.ckd/2b6b21ecf314c97a654ac5e3f3bbd464.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_banner_bkg.tga.ckd/df16ba4152a8ba4dfb2ab76ef4785170.ckd", + "coach1ImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_Coach_1.tga.ckd/ccd8b16b5c8f39fd557da7c92dbe09ff.ckd", + "coverImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_Cover_Generic.tga.ckd/43ce235d2a2b8bb719c94c0a0e526b2c.ckd", + "cover_smallImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_Cover_Online.tga.ckd/f1b2b4241304f2a63ed89d41309552f5.ckd", + "expandBkgImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_Cover_AlbumBkg.tga.ckd/3361dea0da312ceb91f6b4b83e0cd7f3.ckd", + "expandCoachImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_Cover_AlbumCoach.tga.ckd/a7202300945e9ac5c03282f3c40b73fe.ckd", + "phoneCoach1ImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_Coach_1_Phone.png/9b23b29bc5ef63bad011e3b20dd074e8.png", + "phoneCoverImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_Cover_Phone.jpg/1d8dabb14a1f132d9b2b7c2ada4f4dc4.jpg", + "map_bkgImageUrl": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_map_bkg.tga.ckd/b0219c9fcff6a32cbf2577fde412010c.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28800,57600,86400,115200,144000,172800,201600,230400,259200,288000,316800,345600,374400,403200,432000,460800,489600,518400,547200,576000,604800,633600,662400,691200,720000,748800,777600,806400,835200,864000,892800,921600,950400,979200,1008000,1036800,1065600,1094400,1123200,1152000,1180800,1209600,1238400,1267200,1296000,1324800,1353600,1382400,1411200],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":362,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":49,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bigbowlthicknoodle/bigbowlthicknoodle_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Yifan Wu. Published by Universal Music Publishing Canada on behalf of Songs Of Universal, Inc. Courtesy of Interscope Records/Universal Music China under license from Universal Music Enterprises.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF200AFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 222, + "mapName": "BigBowlThickNoodle", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 4514, + "packages": { + "mapContent": "BigBowlThickNoodle_mapContent" + }, + "parentMapName": "BigBowlThickNoodle", + "skuIds": [], + "songColors": { + "songColor_1A": "333188FF", + "songColor_1B": "BD131EFF", + "songColor_2A": "DFDFF2FF", + "songColor_2B": "7064ADFF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Da Wan Kuan Mian (Big Bowl Thick Noodle)", + "urls": { + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_AudioPreview.ogg/8e3af987df689e881bee8bde5ccca8ea.ogg", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_HIGH.vp8.webm/f0975f0efe44dd6d79be030de1b4871d.webm", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_HIGH.vp9.webm/ce95240e29c7d8b34149bb4eb5398b43.webm", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_LOW.vp8.webm/3244d9aba2092c62a548e95bad4721a1.webm", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_LOW.vp9.webm/005b610ff75f159e550b32130814c638.webm", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_MID.vp8.webm/fe3d7aa0642f58c75701c351c646edec.webm", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_MID.vp9.webm/0185b8d3f6e248d4cd3df16b968e104b.webm", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_ULTRA.vp8.webm/c00636e7b51a6261d684647304aa767c.webm", + "jmcs://jd-contents/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/BigBowlThickNoodle_MapPreviewNoSoundCrop_ULTRA.vp9.webm/7ef104cff5b8ff961d6ea1cc3c5a18ce.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "f5ba57b197fd8e1122bb9ff68d1546ac", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/ps4/BigBowlThickNoodle_MAIN_SCENE_ORBIS.zip/f5ba57b197fd8e1122bb9ff68d1546ac.zip", + "version": 2 + }, + "nx": { + "md5": "84f7d47bd912ac6b5e9580fa9343703f", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BigBowlThickNoodle/nx/BigBowlThickNoodle_MAIN_SCENE_NX.zip/84f7d47bd912ac6b5e9580fa9343703f.zip", + "version": 2 + }, + "pc": { + "md5": "25cc4371adcbca9403dc32fe3a763067", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BigBowlThickNoodle/pc/25cc4371adcbca9403dc32fe3a763067.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Birthday.json b/justdanceonline-main/maps/Birthday.json new file mode 100644 index 0000000000000000000000000000000000000000..a2a0526c4452a6a933166d8e374ef3aebbe87571 --- /dev/null +++ b/justdanceonline-main/maps/Birthday.json @@ -0,0 +1,114 @@ +{ + "artist": "Katy Perry", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_banner_bkg.jpg/57369b402147a9f3170cb601d4936389.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Coach_1.png/e28861431f63a8bff5a86a3cdb337e24.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_Generic.jpg/aeb36730aebdc833b0df53291d0b3ddc.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_1024.png/dd935343661468e996418268b0c0096a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_Online.jpg/77c219c5a349e5b9076496dc2c47a6ff.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_AlbumBkg.jpg/d08afb2f276e177769262b8572076ca1.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_AlbumCoach.png/93ba6b00e2945bc68a2ab78389d4166a.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Coach_1_Phone.png/1bc15b94c60b9f9c0d7f19a757d48429.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_Phone.jpg/77c219c5a349e5b9076496dc2c47a6ff.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_VideoPreview.webm/dd54a86b3cd807eef559e93834e1b196.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_banner_bkg.jpg/57369b402147a9f3170cb601d4936389.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Coach_1.png/e28861431f63a8bff5a86a3cdb337e24.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_Generic.jpg/aeb36730aebdc833b0df53291d0b3ddc.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_1024.png/dd935343661468e996418268b0c0096a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_Online.jpg/77c219c5a349e5b9076496dc2c47a6ff.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_AlbumBkg.jpg/d08afb2f276e177769262b8572076ca1.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_AlbumCoach.png/93ba6b00e2945bc68a2ab78389d4166a.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Coach_1_Phone.png/1bc15b94c60b9f9c0d7f19a757d48429.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_Phone.jpg/77c219c5a349e5b9076496dc2c47a6ff.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_VideoPreview.webm/dd54a86b3cd807eef559e93834e1b196.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/wiiu/Birthday_banner_bkg.tga.ckd/f9c6c10c2de423297483f7df948ca5dd.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/wiiu/Birthday_Coach_1.tga.ckd/f2b9ecebce75734b844b49e83a578d24.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/wiiu/Birthday_Cover_Generic.tga.ckd/3e2dab9f7c047b22198841cb2a999b46.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_1024.png/dd935343661468e996418268b0c0096a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/wiiu/Birthday_Cover_Online.tga.ckd/1a0abc952b2f3d11756f04685536f0a5.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/wiiu/Birthday_Cover_AlbumBkg.tga.ckd/af7816d6ab33f890a3178d62cfce4847.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/wiiu/Birthday_Cover_AlbumCoach.tga.ckd/96bb101344500275dacb6aa6b2f2422c.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Coach_1_Phone.png/1bc15b94c60b9f9c0d7f19a757d48429.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_Cover_Phone.jpg/77c219c5a349e5b9076496dc2c47a6ff.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_VideoPreview.webm/dd54a86b3cd807eef559e93834e1b196.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22848,45696,68544,91440,114288,137136,159984,182832,205728,228576,251424,274272,297120,320016,342864,365712,388560,411408,434304,457152,480000,502848,525696,548543,571439,594287,617135,639983,662831,685727,708575,731423,754271,777119,800015,822863,845711,868559,891407,914303,937151,959999,982847,1005695,1028543,1051439,1074287,1097135,1119983,1142831,1165727,1188575,1211423,1234271,1257119,1280015,1302863,1325711,1348558,1371406,1394302,1417150,1439998],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":452,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/birthday/birthday_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "1BF3FFFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 216.667, + "mapName": "Birthday", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2015, + "packages": { + "mapContent": "Birthday_mapContent" + }, + "parentMapName": "Birthday", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "E59C00FF", + "songColor_1B": "A4003CFF", + "songColor_2A": "CF6793FF", + "songColor_2B": "DA00C1FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Birthday", + "urls": { + "jmcs://jd-contents/Birthday/Birthday_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_AudioPreview.ogg/31ab2739b8318bb1f782630e22811b9b.ogg", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_HIGH.vp8.webm/e7c14e4f73783f7ddb1dc23d010e6dc2.webm", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_HIGH.vp9.webm/3cb27b08a1d8b50934a5625976345591.webm", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_LOW.vp8.webm/fc34b62ef671d32a160c6255244f31f1.webm", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_LOW.vp9.webm/72ca56569b5def0664d76b534ead3a1e.webm", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_MID.vp8.webm/79f039df50cb907ad2ee6b4093c289b9.webm", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_MID.vp9.webm/9c5ec5d71d604c0c47b20e5442c72b29.webm", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_ULTRA.vp8.webm/cc6e43b8cb09e1245a501338203c2677.webm", + "jmcs://jd-contents/Birthday/Birthday_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Birthday/Birthday_MapPreviewNoSoundCrop_ULTRA.vp9.webm/fd7c55b2616e98aa7ab1cc79e938904e.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "72eb35d44a058edd9cce029d18ae79e5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Birthday/ps4/Birthday_MAIN_SCENE_ORBIS.zip/72eb35d44a058edd9cce029d18ae79e5.zip", + "version": 3 + }, + "pc": { + "md5": "e3b9b8cf8d0ea76458a4fe27b1cadbec", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Birthday/pc/Birthday_MAIN_SCENE_PC.zip/e3b9b8cf8d0ea76458a4fe27b1cadbec.zip", + "version": 3 + }, + "wiiu": { + "md5": "d03a47aa0f182136897e42818d84812c", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Birthday/wiiu/Birthday_MAIN_SCENE_WIIU.zip/d03a47aa0f182136897e42818d84812c.zip", + "version": 5 + }, + "nx": { + "md5": "e8d58353e1db04e95ac4bd1066d2ac17", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Birthday/nx/Birthday_MAIN_SCENE_NX.zip/e8d58353e1db04e95ac4bd1066d2ac17.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BlackWidow.json b/justdanceonline-main/maps/BlackWidow.json new file mode 100644 index 0000000000000000000000000000000000000000..8bbcf84b34d25401c29543cc44685dabf39b29a2 --- /dev/null +++ b/justdanceonline-main/maps/BlackWidow.json @@ -0,0 +1,95 @@ +{ + "artist": "Iggy Azalea Ft. Rita Ora", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/TheWayIAre/textures/TheWayIAre_banner_bkg.png", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_Coach_1.tga.ckd/a4a30bf17ead224808dfc0736a93168e.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_Cover_Generic.tga.ckd/e64c6ae9982cf3c1c4a157ff8987cf8b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_Cover_1024.tga.ckd/f348255b759bca34d07696192e0f4f1a.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_Cover_Online.tga.ckd/21202da963f1c0ce5936848ebc7a4696.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_Cover_AlbumBkg.tga.ckd/b70e53274686431c7b3d38c38a0d992a.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_Cover_AlbumCoach.tga.ckd/2cad92f372b6c8ec7664a76e49e04de9.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_map_bkg.tga.ckd/c63f38414012bd98f766158bf6bc6d6e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_Coach_1_Phone.png/ed47eb1f1845859afe46ca0ac753d4e7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_Cover_Phone.jpg/6350508cdf01bf894e827840cbd65f91.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_VideoPreview.webm/320de5f27f38205a23d680dfbaf0c6c5.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/TheWayIAre/textures/TheWayIAre_banner_bkg.png", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/nx/BlackWidow_Coach_1.tga.ckd/ab05cd7ed01b53646689134f9ca15d3c.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/nx/BlackWidow_Cover_Generic.tga.ckd/948e92fe58d3bc0dd325b27b4bb5df07.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_Cover_1024.jpg/f8b9f255b96124d70a6901f089762097.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/nx/BlackWidow_Cover_Online.tga.ckd/920add7d5a9c1f59133d294c3618a4de.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/nx/BlackWidow_Cover_AlbumBkg.tga.ckd/77f7229d844c162de51512978eb8cee7.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/nx/BlackWidow_Cover_AlbumCoach.tga.ckd/bbc67facb97ed6bb9d13f69d1e2bc2a0.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/nx/BlackWidow_map_bkg.tga.ckd/09deb0309f4671b0f0807bd2f2c30601.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_Coach_1_Phone.png/ed47eb1f1845859afe46ca0ac753d4e7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_Cover_Phone.jpg/6350508cdf01bf894e827840cbd65f91.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_VideoPreview.webm/320de5f27f38205a23d680dfbaf0c6c5.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,17568,35088,52656,70224,87792,105360,122928,140496,158016,175584,193152,210720,228288,245856,263424,280944,298512,316080,333648,351216,368784,386352,403872,421440,439008,456576,474144,491712,509280,526800,544368,561936,579504,597072,614640,632208,649728,667296,684864,702432,720000,737568,755088,772656,790224,807792,825360,842928,860496,878016,895584,913152,930720,948288,965856,983424,1000944,1018512,1036080,1053649],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-7,\"endBeat\":577,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":60,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/blackwidow/blackwidow_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Mikkel Eriksen, Katy Perry, Iggy Azalea, Tor Hermansen, Sarah Hudson and Benjamin Levin. Published by Prescription Songs LLC and Lotzah Matzah Music. Administered by Kobalt Music Publishing America, Inc. / EMI Music Publishing Ltd. (PRS) c/o EMI April Music (Canada) Ltd. (SOCAN). / WB Music Corp. (ASCAP) obo When I'm Rich You'll Be My B****. / Jonathan Leonard o/b/o Amethyst Kelly Publishing Designee/Grand Hustle Anthems (ASCAP) / Metamorphosis Music. All rights reserved. Used with permission. Courtesy of Virgin EMI Records/Def Jam Recordings under license from Universal Music Enterprises.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "BF0096FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 213.65699999999998, + "mapName": "BlackWidow", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2015, + "packages": { + "mapContent": "BlackWidow_mapContent" + }, + "parentMapName": "BlackWidow", + "skuIds": [], + "songColors": { + "songColor_1A": "6e2420ff", + "songColor_1B": "000000ff", + "songColor_2A": "000000ff", + "songColor_2B": "dbcdc1ff" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Black Widow", + "urls": { + "jmcs://jd-contents/BlackWidow/BlackWidow_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_AudioPreview.ogg/9e841d962c47c38227c8179fc882b967.ogg", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_HIGH.vp8.webm/c4591076c33b51f7e728d66b445aa835.webm", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_HIGH.vp9.webm/0637d11820a1b898b4f55fca32cd4700.webm", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_LOW.vp8.webm/1c4398e8f6fd787e7165be4d8e43269f.webm", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_LOW.vp9.webm/7cedceb8aa9ce118dc24153b40cbedd7.webm", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_MID.vp8.webm/1f54f093a51ab74307812cb55e54b785.webm", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_MID.vp9.webm/4c057c060cbf9644f77fe339feb6e922.webm", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_ULTRA.vp8.webm/f62fba659996b41ca6ecc8b7bb2e9d05.webm", + "jmcs://jd-contents/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlackWidow/BlackWidow_MapPreviewNoSoundCrop_ULTRA.vp9.webm/f5ecc82b45eed54447f9fc71b9e58be5.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "nx": { + "md5": "dd151aab78c6de269a5a8d3456eea91e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BlackWidow/nx/BlackWidow_MAIN_SCENE_NX.zip/dd151aab78c6de269a5a8d3456eea91e.zip", + "version": 26 + }, + "orbis": { + "md5": "9f743cf3e88fcf405c28a3e71ec657ef", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BlackWidow/ps4/BlackWidow_MAIN_SCENE_ORBIS.zip/9f743cf3e88fcf405c28a3e71ec657ef.zip", + "version": 27 + }, + "pc": { + "md5": "21068f69a9c645d4c40c5c842793fac7", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BlackWidow/pc/BlackWidow_MAIN_SCENE_PC.zip/21068f69a9c645d4c40c5c842793fac7.zip", + "version": 8 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BlindingLights.json b/justdanceonline-main/maps/BlindingLights.json new file mode 100644 index 0000000000000000000000000000000000000000..c0d644afff2de997b61a038b7d22da6487718288 --- /dev/null +++ b/justdanceonline-main/maps/BlindingLights.json @@ -0,0 +1,90 @@ +{ + "artist": "The Weeknd", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_banner_bkg.jpg/6057960bddb0bcf2746439ce2d201789.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Coach_1.png/362774066ecbc433d20a6b17311a1cd9.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_Generic.jpg/2d54d29ba815873cdf1c3ed6c6e29d73.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_Online.jpg/7ce73f311c577d3908880e93c562edfb.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_AlbumBkg.jpg/19e68d58b430a5b1064fa0496ddedc7e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_AlbumCoach.png/f5df006d7cb7280764dcebae10ce47d9.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Coach_1_Phone.png/91996cc801d81cd10446214c11c4c4c6.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_Phone.jpg/7ce73f311c577d3908880e93c562edfb.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_banner_bkg.jpg/6057960bddb0bcf2746439ce2d201789.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Coach_1.png/362774066ecbc433d20a6b17311a1cd9.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_Generic.jpg/2d54d29ba815873cdf1c3ed6c6e29d73.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_Online.jpg/7ce73f311c577d3908880e93c562edfb.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_AlbumBkg.jpg/19e68d58b430a5b1064fa0496ddedc7e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_AlbumCoach.png/f5df006d7cb7280764dcebae10ce47d9.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Coach_1_Phone.png/91996cc801d81cd10446214c11c4c4c6.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLights/BlindingLights_Cover_Phone.jpg/7ce73f311c577d3908880e93c562edfb.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,33684,67368,101052,134736,168421,202105,235789,269473,303157,336842,370526,404210,437894,471578,505263,538947,572631,606315,640000,673684,707368,741052,774736,808421,842105,875789,909473,943157,976842,1010526,1044210,1077894,1111578,1145263,1178947,1212631,1246315,1280000,1313684,1347368,1381052,1414736],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-15,\"endBeat\":283,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":42,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/blindinglights/blindinglights_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Abel Tesfaye, Ahmad Balshe, Max Martin, Oscar Thomas Holter and Jason Quenneville. Published By Universal Music Publishing Canada on behalf of Universal Music Corp. and Sal And Co LP. / Sal and Co LP (SOCAN), Songs of Wolf Cousins (STIM) and WC Music Corp. (ASCAP). All rights on behalf of itself and Sal and Co LP and Songs of Wolf Cousins administered by WC Music Corp. / MXM Music AB (ASCAP). Administered by Kobalt Music Publishing America, Inc. Courtesy of The Weeknd XO & Republic Records under license from Universal Music Enterprises.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "4BF3DAFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 209.12199999999999, + "mapName": "BlindingLights", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "BlindingLights_mapContent" + }, + "parentMapName": "BlindingLights", + "skuIds": [], + "songColors": { + "songColor_1A": "DEB4C7FF", + "songColor_1B": "44B783FF", + "songColor_2A": "357455FF", + "songColor_2B": "0B1517FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Blinding Lights", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "4adbcf9971f372b79b669a24d067d271", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/ps4/BlindingLights_MAIN_SCENE_ORBIS.zip/4adbcf9971f372b79b669a24d067d271.zip", + "version": 2 + }, + "nx": { + "md5": "803f6409b4b8d9c5eb49408f605a3be8", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/nx/BlindingLights_MAIN_SCENE_NX.zip/803f6409b4b8d9c5eb49408f605a3be8.zip", + "version": 2 + }, + "pc": { + "md5": "b3fe1bc5c956324ea3bfb2803d369fbe", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BlindingLights/pc/b3fe1bc5c956324ea3bfb2803d369fbe.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/BlindingLights/BlindingLights_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_AudioPreview.ogg/d7370af4d668a429e1bdfda558230734.ogg", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_HIGH.vp8.webm/a1c1e680f4f8f160eb0cbfcbafc1813f.webm", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_HIGH.vp9.webm/f542350cf8ab37eb2e7ab8b8d8722c68.webm", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_LOW.vp8.webm/6c1e55a2132cd56e1078509ce7342e2f.webm", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_LOW.vp9.webm/f6b820940080921a847ecc20c768dc8d.webm", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_MID.vp8.webm/a9bf7ae3ded96edc66d876750fec2ff7.webm", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_MID.vp9.webm/681d2741404cf9fab503626effe983fe.webm", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_ULTRA.vp8.webm/8b45869a08233323b912479d4ed867dd.webm", + "jmcs://jd-contents/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLights/BlindingLights_MapPreviewNoSoundCrop_ULTRA.vp9.webm/1bf3138894164f1960993f2dcf1bd0af.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BlindingLightsALT.json b/justdanceonline-main/maps/BlindingLightsALT.json new file mode 100644 index 0000000000000000000000000000000000000000..d9afae25571b861c37473eba108dfd651038e8c6 --- /dev/null +++ b/justdanceonline-main/maps/BlindingLightsALT.json @@ -0,0 +1,91 @@ +{ + "artist": "The Weeknd", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_banner_bkg.jpg/0ec3e0629c04295c5d2ad1eddcf13111.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Coach_1.png/8caa3561e29e47790cd92e4d1f9b7d1c.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_Generic.jpg/fd5f33e2d3a8b875f0e9c6662774b891.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_Online.jpg/565efb7406cf537e5ee7dee898e2a6f2.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_AlbumBkg.jpg/3719247da5e0d3fee3510f87f4af22f3.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_AlbumCoach.png/a2bc80f286e8beed7ac5bb5ae7607504.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Coach_1_Phone.png/9e995e8d47847b31ef05584a0be70533.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_Phone.jpg/565efb7406cf537e5ee7dee898e2a6f2.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_banner_bkg.jpg/0ec3e0629c04295c5d2ad1eddcf13111.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Coach_1.png/8caa3561e29e47790cd92e4d1f9b7d1c.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_Generic.jpg/fd5f33e2d3a8b875f0e9c6662774b891.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_Online.jpg/565efb7406cf537e5ee7dee898e2a6f2.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_AlbumBkg.jpg/3719247da5e0d3fee3510f87f4af22f3.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_AlbumCoach.png/a2bc80f286e8beed7ac5bb5ae7607504.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Coach_1_Phone.png/9e995e8d47847b31ef05584a0be70533.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlindingLightsALT/BlindingLightsALT_Cover_Phone.jpg/565efb7406cf537e5ee7dee898e2a6f2.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,33684,67368,101052,134736,168421,202105,235789,269473,303157,336842,370526,404210,437894,471578,505263,538947,572631,606315,640000,673684,707368,741052,774736,808421,842105,875789,909473,943157,976842,1010526,1044210,1077894,1111578,1145263,1178947,1212631,1246315,1280000,1313684,1347368,1381052,1414736],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":283,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":42,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/blindinglightsalt/blindinglightsalt_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Abel Tesfaye, Ahmad Balshe, Max Martin, Oscar Thomas Holter and Jason Quenneville. Published By Universal Music Publishing Canada on behalf of Universal Music Corp. and Sal And Co LP. / Sal and Co LP (SOCAN), Songs of Wolf Cousins (STIM) and WC Music Corp. (ASCAP). All rights on behalf of itself and Sal and Co LP and Songs of Wolf Cousins administered by WC Music Corp. / MXM Music AB (ASCAP). Administered by Kobalt Music Publishing America, Inc. Courtesy of The Weeknd XO & Republic Records under license from Universal Music Enterprises.", + "difficulty": 4, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "31D2F1FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 200, + "mapName": "BlindingLightsALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "BlindingLightsALT_mapContent" + }, + "parentMapName": "BlindingLights", + "skuIds": [], + "songColors": { + "songColor_1A": "190098FF", + "songColor_1B": "001E36FF", + "songColor_2A": "FF00D2FF", + "songColor_2B": "000E42FF" + }, + "status": 12, + "sweatDifficulty": 3, + "tags": [ + "Alternate", + "subscribedSong" + ], + "title": "Blinding Lights", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "fb40cae51ef66dc08829c340d8ed21c3", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/ps4/BlindingLightsALT_MAIN_SCENE_ORBIS.zip/fb40cae51ef66dc08829c340d8ed21c3.zip", + "version": 2 + }, + "nx": { + "md5": "227a9d3b797ca4aea94a7105fe907805", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/nx/BlindingLightsALT_MAIN_SCENE_NX.zip/227a9d3b797ca4aea94a7105fe907805.zip", + "version": 2 + }, + "pc": { + "md5": "9877a67ce852812c3835ce9cbe22d2a3", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BlindingLightsALT/pc/9877a67ce852812c3835ce9cbe22d2a3.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12624, + "urls": { + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_AudioPreview.ogg/ba5d8d3149408d74fc86187250e50878.ogg", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/103c21e7d2ec8159ac631b190346b81d.webm", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/053a6e088d8e52040b0072ca78479b8e.webm", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_LOW.vp8.webm/1c0a4b2032a8da5ee6e46e9f0fc86f27.webm", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_LOW.vp9.webm/f73fb8e6745fa362562d03bf33959d4e.webm", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_MID.vp8.webm/6f6bc6cadfb9944994a5865635a3e8b2.webm", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_MID.vp9.webm/ce82cd59bf1f036ee4db2b201af21de1.webm", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/8137f8cb5af2adf1e01f64ca1f7a2338.webm", + "jmcs://jd-contents/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BlindingLightsALT/BlindingLightsALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/be5c84d89d5a41f210260c89a60afbb8.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BlowYourMind.json b/justdanceonline-main/maps/BlowYourMind.json new file mode 100644 index 0000000000000000000000000000000000000000..b36e565a6aae3033761d9c975f41144841039452 --- /dev/null +++ b/justdanceonline-main/maps/BlowYourMind.json @@ -0,0 +1,117 @@ +{ + "artist": "Dua Lipa", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_banner_bkg.tga.ckd/e78bc2c1ca04723810beda4667ddca6e.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_Coach_1.tga.ckd/657e53515a17b3381ac8925bf51553ca.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_Cover_Generic.tga.ckd/7676a86b6b701cd956068b82b2c524e1.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Cover_1024.png/5582b916b3a0663e8bdd7bead6f410fa.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_Cover_Online.tga.ckd/54b13768fcf83464129feafed4cfe487.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_Cover_AlbumBkg.tga.ckd/2b9c51655cf5b0d867e336a957980d50.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_Cover_AlbumCoach.tga.ckd/31150e1ba91974664be8e604b8006b67.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Coach_1_Phone.png/3858bfce8aeea0dec5bb1de71eeaccbb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Cover_Phone.jpg/91c038fa0807a00b206897080c392224.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_VideoPreview.webm/40fb36cf51ab047ee2797a39c7fb1b16.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_map_bkg.tga.ckd/312762b36762dacb67162112da552a25.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_banner_bkg.tga.ckd/cd3b0ac500c0d612cb516455d71988bf.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_Coach_1.tga.ckd/c117c72056b5f53285d783c046bf9e2f.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_Cover_Generic.tga.ckd/12795a17f4e6209000bcb9bdb21a66e9.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Cover_1024.png/5582b916b3a0663e8bdd7bead6f410fa.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_Cover_Online.tga.ckd/a99878d668b3ee1c5570fa8ac2ee3099.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_Cover_AlbumBkg.tga.ckd/7c4bcbe09e58c1a6cb2e9596ef7a7a02.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_Cover_AlbumCoach.tga.ckd/d37fce1cd593f54e0732f7a800ddf13f.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Coach_1_Phone.png/3858bfce8aeea0dec5bb1de71eeaccbb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Cover_Phone.jpg/91c038fa0807a00b206897080c392224.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_VideoPreview.webm/40fb36cf51ab047ee2797a39c7fb1b16.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_map_bkg.tga.ckd/b6d6b23e7a0bda999609d1500dd38608.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/wiiu/BlowYourMind_banner_bkg.tga.ckd/8045fa6a50fe3820c4067fbb687f74dc.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/wiiu/BlowYourMind_Coach_1.tga.ckd/8f441bd3a779b1546bc61503a2f4640d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/wiiu/BlowYourMind_Cover_Generic.tga.ckd/e9a255e309a772d1e76c9751b23c467a.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Cover_1024.png/5582b916b3a0663e8bdd7bead6f410fa.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/wiiu/BlowYourMind_Cover_Online.tga.ckd/0691ccf58ea2b58936f7d572045ed8a9.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/wiiu/BlowYourMind_Cover_AlbumBkg.tga.ckd/4d2fce220efe07e611eeebbe51bd3c42.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/wiiu/BlowYourMind_Cover_AlbumCoach.tga.ckd/3fbbb4f01956764e8513a326184f16d8.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Coach_1_Phone.png/3858bfce8aeea0dec5bb1de71eeaccbb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_Cover_Phone.jpg/91c038fa0807a00b206897080c392224.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_VideoPreview.webm/40fb36cf51ab047ee2797a39c7fb1b16.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26400,52848,79248,105695,132095,158543,184943,211343,237791,264191,290639,317039,343487,369887,396335,422735,449183,475583,502031,528431,554831,581279,607679,634127,660527,686975,713375,739822,766222,792670,819070,845470,871918,898318,924766,951166,977614,1004014,1030462,1056862,1083310,1109710,1136158,1162558,1188958,1215406,1241806,1268254,1294654,1321101,1347501,1373949,1400349,1426797],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-5,\"endBeat\":325,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":54,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/blowyourmind/blowyourmind_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Dua Lipa, Lauren Christy and Jon Levine. Published by Universal - PolyGram Int. Tunes, Inc. on behalf of Universal Music Publishing Ltd. / Old Schul Music Inc. c/o Sony/ATV Music Publishing Canada (SOCAN). / Reservoir 416 (BMI). All rights reserved. Used with permission. (P) Line: 2015 Dua Lipa Limited. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "1A96E6FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 181.653, + "mapName": "BlowYourMind", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "BlowYourMind_mapContent" + }, + "parentMapName": "BlowYourMind", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "85FFB2FF", + "songColor_1B": "359078FF", + "songColor_2A": "FFAC9AFF", + "songColor_2B": "E376F6FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Blow Your Mind (Mwah)", + "urls": { + "jmcs://jd-contents/BlowYourMind/BlowYourMind_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_AudioPreview.ogg/e589c44f1bcc65ae796fefbbb0ae0a24.ogg", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_HIGH.vp8.webm/44a992e8010c80dc5f1b880f78a5f138.webm", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_HIGH.vp9.webm/9284c18ce9bd6bdc721a5c81567e24a2.webm", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_LOW.vp8.webm/0e03d4608a02091cbd252472e502074d.webm", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_LOW.vp9.webm/8563c7f91149cd6dd040e9f729bf5750.webm", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_MID.vp8.webm/c592274aa54041d47cc4a5f3d27ec229.webm", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_MID.vp9.webm/58f9d45d86c84624501d2b35547122bb.webm", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_ULTRA.vp8.webm/d6d89a5101023976833962566af9867d.webm", + "jmcs://jd-contents/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BlowYourMind/BlowYourMind_MapPreviewNoSoundCrop_ULTRA.vp9.webm/84ab4427accca548be93d6df4e3216ea.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "1c7c27bd14361fbe44eb1232bb4ccf3f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BlowYourMind/ps4/BlowYourMind_MAIN_SCENE_ORBIS.zip/1c7c27bd14361fbe44eb1232bb4ccf3f.zip", + "version": 3 + }, + "nx": { + "md5": "03e3fc71a9480afca052d854c3d30fb8", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BlowYourMind/nx/BlowYourMind_MAIN_SCENE_NX.zip/03e3fc71a9480afca052d854c3d30fb8.zip", + "version": 3 + }, + "wiiu": { + "md5": "72344c8761c39a92e6e1227f8a9491eb", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BlowYourMind/wiiu/BlowYourMind_MAIN_SCENE_WIIU.zip/72344c8761c39a92e6e1227f8a9491eb.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Blue.json b/justdanceonline-main/maps/Blue.json new file mode 100644 index 0000000000000000000000000000000000000000..8a9db8959380b2d59ad6d96697164603761d5365 --- /dev/null +++ b/justdanceonline-main/maps/Blue.json @@ -0,0 +1,124 @@ +{ + "artist": "Hit The Electro Beat", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_banner_bkg.tga.ckd/997a6ebf7ed0eea0b9f3b7d7796132d1.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_Coach_1.tga.ckd/d82221d2f47ed68d729e812b0beaf349.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_Cover_Generic.tga.ckd/8c17ed27f1fb249e8e4971bf35bd49d0.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Cover_1024.png/c0d775ccf91a5b58fc28fdfd06f69377.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_Cover_Online.tga.ckd/2ae798d9b9f469583bdf796505fbcf84.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_Cover_AlbumBkg.tga.ckd/3c70fcbdf7cde4aac588547d9e6ea311.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_Cover_AlbumCoach.tga.ckd/809773ca71d61809bcbd2d95e32c6610.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Coach_1_Phone.png/af3116346142a455e6b73ab68004f3fb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Cover_Phone.jpg/5cb144ce1694276606a36669aa14d749.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Blue/Blue_VideoPreview.webm/718eb96b0fec119a40bd1c1dcd878a8a.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_map_bkg.tga.ckd/fe2d62471456a2df0e7a080145c4ba1a.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_banner_bkg.tga.ckd/e01bbbfec895011383d84ca9b1695df7.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_Coach_1.tga.ckd/d6856f04b698e94fbb799dabbfae99b5.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_Cover_Generic.tga.ckd/fb1f3dfe63e3863bcf9a16ccfdb1f272.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Cover_1024.png/c0d775ccf91a5b58fc28fdfd06f69377.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_Cover_Online.tga.ckd/f201543eddde922b943af607cfc150d8.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_Cover_AlbumBkg.tga.ckd/d60815ed47310ee4eb992b0e8af74373.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_Cover_AlbumCoach.tga.ckd/5c14f70957e9b14d1625ac08b6cde60a.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Coach_1_Phone.png/af3116346142a455e6b73ab68004f3fb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Cover_Phone.jpg/5cb144ce1694276606a36669aa14d749.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Blue/Blue_VideoPreview.webm/718eb96b0fec119a40bd1c1dcd878a8a.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_map_bkg.tga.ckd/b755313d28d2eddef3a861008c30d572.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/wiiu/Blue_banner_bkg.tga.ckd/ea41c75b310ab1c249a7741d0819004f.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/wiiu/Blue_Coach_1.tga.ckd/8d4994fc5e8b534f6c843432a524d95a.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/wiiu/Blue_Cover_Generic.tga.ckd/ce52580608827c76910ca973b26854e2.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Cover_1024.png/c0d775ccf91a5b58fc28fdfd06f69377.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/wiiu/Blue_Cover_Online.tga.ckd/cf8b111101d06de0d40e6a73aa889731.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/wiiu/Blue_Cover_AlbumBkg.tga.ckd/06fd7ea7078afc5030149aea571d8166.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/wiiu/Blue_Cover_AlbumCoach.tga.ckd/92ddeac46b5d983ab8eef0273ed8c543.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Coach_1_Phone.png/af3116346142a455e6b73ab68004f3fb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Blue/Blue_Cover_Phone.jpg/5cb144ce1694276606a36669aa14d749.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Blue/Blue_VideoPreview.webm/718eb96b0fec119a40bd1c1dcd878a8a.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22464,44976,67488,90000,112512,134976,157488,180000,202512,225024,247488,270000,292512,315025,337489,360001,382513,405025,427537,450001,472513,495025,517537,540049,562513,585025,607537,630049,652513,675025,697537,720049,742561,765025,787538,810050,832562,855074,877538,900050,922562,945074,967538,990050,1012562,1035074,1057586,1080050,1102562,1125074,1147586,1170098,1192562,1215074,1237586,1260099,1282563,1305075,1327587,1350099,1372611,1395075,1417587],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":469,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/blue/blue_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Gianfranco Randone, Massimo Gabutti and Maurizio Lobina. Published by GZ538 (SIAE). Produced, Engineered and Mixed by Steve Ouimette. Vocals: Steve Ouimette. Programming and synths: Steve Ouimette. Additional Sounds: Patrick Giguere. Music Supervision - Manu Bachet. Courtesy of Ubisoft Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF0083FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 223.611, + "mapName": "Blue", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Blue_mapContent" + }, + "parentMapName": "Blue", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "0050D1FF", + "songColor_1B": "000C33FF", + "songColor_2A": "FFCAFFFF", + "songColor_2B": "D264FFFF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "JD19_KIDScompatible", + "CnUnlimited2018" + ], + "title": "Blue (Da Ba Dee)", + "urls": { + "jmcs://jd-contents/Blue/Blue_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Blue/Blue_AudioPreview.ogg/e3b1758446a1bc90b139dfd26c3b4223.ogg", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_HIGH.vp8.webm/a82dfe4b8750cd063a903ee60cb689a7.webm", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_HIGH.vp9.webm/d8c464bba7f6ccabc2c7bc6be9c6cd0c.webm", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_LOW.vp8.webm/662d35e6dc36fd7ef526dbb2e58cde63.webm", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_LOW.vp9.webm/a3767554f44cb2c4629c98d9cc0df443.webm", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_MID.vp8.webm/8e825967e4442215ab31d80d1f0572af.webm", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_MID.vp9.webm/f76965141595fc16daa3a528a4ef215b.webm", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_ULTRA.vp8.webm/d89caacc33be0597d582939186396508.webm", + "jmcs://jd-contents/Blue/Blue_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Blue/Blue_MapPreviewNoSoundCrop_ULTRA.vp9.webm/55788a8e2629f4393c7f9184a74937cb.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "a5a10122708aba9a851a2477993c401d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Blue/ps4/Blue_MAIN_SCENE_ORBIS.zip/a5a10122708aba9a851a2477993c401d.zip", + "version": 3 + }, + "nx": { + "md5": "22324529647d5ef35958b37b65ff87c1", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Blue/nx/Blue_MAIN_SCENE_NX.zip/22324529647d5ef35958b37b65ff87c1.zip", + "version": 3 + }, + "pc": { + "md5": "aef8f66daa502dd31498b10b3d49963b", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Blue/pc/aef8f66daa502dd31498b10b3d49963b.zip", + "version": 1 + }, + "wiiu": { + "md5": "8386c795264af54f0b530cc3e3164c35", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Blue/wiiu/Blue_MAIN_SCENE_WIIU.zip/8386c795264af54f0b530cc3e3164c35.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BornThisWay.json b/justdanceonline-main/maps/BornThisWay.json new file mode 100644 index 0000000000000000000000000000000000000000..1e5680320b5f16041fa5cbe857027b880dbb925b --- /dev/null +++ b/justdanceonline-main/maps/BornThisWay.json @@ -0,0 +1,126 @@ +{ + "artist": "Lady Gaga", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_banner_bkg.jpg/4ae352eab6a4ea20482e650aab4a95b2.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_1.png/f9e537b68f7dfc824673310cbbb0815d.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_2.png/f06ed961364dd9d08f38114d75e7a9d7.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_3.png/c47c39e6e778dd287f43f27e3fafd94d.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_Generic.jpg/d1cc13ee1e13761bc7f1af3fc7c8fd72.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_1024.png/f6c83b26f2ebddf8eb571fdb07ecb004.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_Online.jpg/ab1392e2d0199824dd99784444a16cbf.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_AlbumBkg.jpg/696d07d990a9d3c149dd08bf07a753bc.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_AlbumCoach.png/3dde9224cc954a379056ca1df547f941.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_1_Phone.png/3593d6f6cb8bfff2697c4ae03b940916.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_2_Phone.png/cd8871fcf2dbc3ec189384fb14300afe.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_3_Phone.png/7c700520e816a6ff45be6a120e8572df.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_Phone.jpg/ab1392e2d0199824dd99784444a16cbf.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_VideoPreview.webm/78fcca8a224bc63111c2dc525ce75aa5.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_banner_bkg.jpg/4ae352eab6a4ea20482e650aab4a95b2.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_1.png/f9e537b68f7dfc824673310cbbb0815d.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_2.png/f06ed961364dd9d08f38114d75e7a9d7.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_3.png/c47c39e6e778dd287f43f27e3fafd94d.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_Generic.jpg/d1cc13ee1e13761bc7f1af3fc7c8fd72.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_1024.png/f6c83b26f2ebddf8eb571fdb07ecb004.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_Online.jpg/ab1392e2d0199824dd99784444a16cbf.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_AlbumBkg.jpg/696d07d990a9d3c149dd08bf07a753bc.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_AlbumCoach.png/3dde9224cc954a379056ca1df547f941.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_1_Phone.png/3593d6f6cb8bfff2697c4ae03b940916.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_2_Phone.png/cd8871fcf2dbc3ec189384fb14300afe.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_3_Phone.png/7c700520e816a6ff45be6a120e8572df.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_Phone.jpg/ab1392e2d0199824dd99784444a16cbf.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_VideoPreview.webm/78fcca8a224bc63111c2dc525ce75aa5.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_banner_bkg.tga.ckd/5cabc5c912eceef0cbc5d302a39f8c1c.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_Coach_1.tga.ckd/08c1b6dc1cf019de4d1a8191fbfe6e95.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_Coach_2.tga.ckd/a1084895134405083beb4c756357ef65.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_Coach_3.tga.ckd/8f26d11a572132142527d673196b5562.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_Cover_Generic.tga.ckd/f25cdedd4b4ad331f448b4402e091280.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_1024.png/f6c83b26f2ebddf8eb571fdb07ecb004.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_Cover_Online.tga.ckd/8657322a3292cb98cf6b68f01dc1143d.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_Cover_AlbumBkg.tga.ckd/9d875faf0c03ccfd47521b3dd6c05158.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_Cover_AlbumCoach.tga.ckd/767edec70e54111baaccadb2a6a0086e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_1_Phone.png/3593d6f6cb8bfff2697c4ae03b940916.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_2_Phone.png/cd8871fcf2dbc3ec189384fb14300afe.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Coach_3_Phone.png/7c700520e816a6ff45be6a120e8572df.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_Cover_Phone.jpg/ab1392e2d0199824dd99784444a16cbf.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_VideoPreview.webm/78fcca8a224bc63111c2dc525ce75aa5.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23232,46464,69696,92928,116160,139392,162624,185808,209040,232272,255504,278736,301968,325200,348432,371616,394848,418080,441312,464544,487776,511008,534240,557424,580656,603888,627120,650352,673584,696816,720000,743232,766464,789696,812928,836160,859392,882624,905808,929040,952272,975504,998736,1021968,1045200,1068432,1091616,1114848,1138081,1161313,1184545,1207777,1231009,1254241,1277425,1300657,1323889,1347121,1370353,1393585,1416817],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-5,\"endBeat\":457,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bornthisway/bornthisway_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FE3636FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 223.548, + "mapName": "BornThisWay", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "BornThisWay_mapContent" + }, + "parentMapName": "BornThisWay", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "243CE1FF", + "songColor_1B": "0B003DFF", + "songColor_2A": "FF1768FF", + "songColor_2B": "2A0004FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Born This Way", + "urls": { + "jmcs://jd-contents/BornThisWay/BornThisWay_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_AudioPreview.ogg/177a3e5fbbeacc82197ebd5b291fcea0.ogg", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_HIGH.vp8.webm/43ac51c1b648f6b209d18d92faa68946.webm", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_HIGH.vp9.webm/d9125f5d15d413760aa54f071950c0a6.webm", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_LOW.vp8.webm/e6e260cc19c308090b7c91ba09b53d8d.webm", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_LOW.vp9.webm/bb9332c1d0abb88714a9cb5eeb03d4d7.webm", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_MID.vp8.webm/d619c4fbf9ed9d5b9eac571b23af98f9.webm", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_MID.vp9.webm/3b45f14547303f6380eb8f88f9eefb51.webm", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_ULTRA.vp8.webm/1752f765d0088d8d634dca6a7e9871b7.webm", + "jmcs://jd-contents/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BornThisWay/BornThisWay_MapPreviewNoSoundCrop_ULTRA.vp9.webm/36bf959d613a2621e52cd847b5aba148.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "a8e736ac8770f22a63b56f4772ccc555", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BornThisWay/ps4/BornThisWay_MAIN_SCENE_ORBIS.zip/a8e736ac8770f22a63b56f4772ccc555.zip", + "version": 5 + }, + "pc": { + "md5": "49790ae11e156d8ae96302dcfa4b1bca", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BornThisWay/pc/BornThisWay_MAIN_SCENE_PC.zip/49790ae11e156d8ae96302dcfa4b1bca.zip", + "version": 3 + }, + "wiiu": { + "md5": "186accb766cd38ce6094a7b123aadaf2", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BornThisWay/wiiu/BornThisWay_MAIN_SCENE_WIIU.zip/186accb766cd38ce6094a7b123aadaf2.zip", + "version": 5 + }, + "nx": { + "md5": "8f5349e786e2f80954313bcd35ab1f93", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BornThisWay/nx/BornThisWay_MAIN_SCENE_NX.zip/8f5349e786e2f80954313bcd35ab1f93.zip", + "version": 4 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BoyYouCan.json b/justdanceonline-main/maps/BoyYouCan.json new file mode 100644 index 0000000000000000000000000000000000000000..87853fe145e6c37069a4f5a8d9c9acd58cc65671 --- /dev/null +++ b/justdanceonline-main/maps/BoyYouCan.json @@ -0,0 +1,90 @@ +{ + "artist": "Alex Newell", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_banner_bkg.jpg/a69d3bd23a3bdbf04f4726ab8dd4771f.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Coach_1.png/5ee78367546ed7e3455280cf68d5816b.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_Generic.jpg/cc0cce7db70d11f3641ab77b567607f2.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_Online.jpg/5e564a3293589828233a13b7bdbb4ff6.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_AlbumBkg.jpg/6a956886d12680e0719921d09c1fa89c.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_AlbumCoach.png/aedf6608b799e8cac46f7f3035d4dcdd.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Coach_1_Phone.png/aae43e099117a28c1ea3a09e4c9ddb97.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_Phone.jpg/5e564a3293589828233a13b7bdbb4ff6.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_banner_bkg.jpg/a69d3bd23a3bdbf04f4726ab8dd4771f.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Coach_1.png/5ee78367546ed7e3455280cf68d5816b.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_Generic.jpg/cc0cce7db70d11f3641ab77b567607f2.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_Online.jpg/5e564a3293589828233a13b7bdbb4ff6.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_AlbumBkg.jpg/6a956886d12680e0719921d09c1fa89c.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_AlbumCoach.png/aedf6608b799e8cac46f7f3035d4dcdd.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Coach_1_Phone.png/aae43e099117a28c1ea3a09e4c9ddb97.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BoyYouCan/BoyYouCan_Cover_Phone.jpg/5e564a3293589828233a13b7bdbb4ff6.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000,1392000,1416000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":297,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/boyyoucan/boyyoucan_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Autumn Rowe, Nikolai Patrick Prange and Adam Martin Novodor. Published by Fidoober (ASCAP) / Lyn Estates Worldwide (ASCAP) / Sony/ATV Tunes (ASCAP) / Rich Water (ASCAP) / BMG Rights Management Canada A (SOCAN) obo BMG Gold Songs (ASCAP) obo itself and Primary Wave Anthems (ASCAP) obo itself and NIKOTHEKID Publishing (ASCAP). All rights administered by BMG Rights Management (US) LLC. All rights reserved. Used with permission. Courtesy of Atlantic Recording Corporation. By arrangement with Warner Music Group Film & TV Licensing. ", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "E72673FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 150.5, + "mapName": "BoyYouCan", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "BoyYouCan_mapContent" + }, + "parentMapName": "BoyYouCan", + "skuIds": [], + "songColors": { + "songColor_1A": "21C3DFFF", + "songColor_1B": "DFC1E6FF", + "songColor_2A": "1460BEFF", + "songColor_2B": "070724FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Boy, You Can Keep It", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "9eb00c0fb0cf841ce9f3c194fde53858", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/ps4/BoyYouCan_MAIN_SCENE_ORBIS.zip/9eb00c0fb0cf841ce9f3c194fde53858.zip", + "version": 1 + }, + "nx": { + "md5": "07a137d3596c2afe0c4e390e7feb4e3e", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/nx/BoyYouCan_MAIN_SCENE_NX.zip/07a137d3596c2afe0c4e390e7feb4e3e.zip", + "version": 1 + }, + "pc": { + "md5": "2692f833ed21b195792d33e220fc5713", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BoyYouCan/pc/2692f833ed21b195792d33e220fc5713.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/BoyYouCan/BoyYouCan_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_AudioPreview.ogg/474a385ca933a9acc2ee642acebb338c.ogg", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_HIGH.vp8.webm/e86459b37a209e0776bbebc22fac2d46.webm", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_HIGH.vp9.webm/5bf6e84e8270daa4b2e380961652d49a.webm", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_LOW.vp8.webm/e0ba4b8f7bb8fbb01eaa9b5b0f9b3ff1.webm", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_LOW.vp9.webm/6e49c842747e31ed435628eee11d7124.webm", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_MID.vp8.webm/021e7bb23eaf5870eafa4a1308e31680.webm", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_MID.vp9.webm/9158fd2550cac3c2ae36ec7a27b3cf20.webm", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_ULTRA.vp8.webm/9d4b198c27a064385cab3c200df7c7b4.webm", + "jmcs://jd-contents/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BoyYouCan/BoyYouCan_MapPreviewNoSoundCrop_ULTRA.vp9.webm/5ac4ed407083f728c1720bb4e5e966b8.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Boys.json b/justdanceonline-main/maps/Boys.json new file mode 100644 index 0000000000000000000000000000000000000000..b6380a0730020c60a2d6687a9c32705e44071cdd --- /dev/null +++ b/justdanceonline-main/maps/Boys.json @@ -0,0 +1,114 @@ +{ + "artist": "Lizzo", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_banner_bkg.tga.ckd/71500d986c28b4fb6a4f6bdba784d066.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_Coach_1.tga.ckd/28fbd76a5889e20a37132c3fe4bc5b65.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_Cover_Generic.tga.ckd/c49b800dee7500f5c16633b4cc09fb70.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Cover_1024.png/7553e6cc41895dc349fad79b50b1e173.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_Cover_Online.tga.ckd/b232a6ee4e9367a0271d21fd014c59fb.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_Cover_AlbumBkg.tga.ckd/103df8cc3da9872d0f867feffe8747f5.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_Cover_AlbumCoach.tga.ckd/38b4f6d0b1be69905d150d8e64963c3f.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Coach_1_Phone.png/755d5c49ea021edb302ff92467880295.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Cover_Phone.jpg/5d7249d5e8ece2d37c3765875ff3f5b9.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Boys/Boys_VideoPreview.webm/bd7405d841070f85dfc8ce64878df51e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_map_bkg.tga.ckd/743ade9a6b9e968ba380fe9c0b459d12.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_banner_bkg.tga.ckd/ee4230c049bd5f661d1fe1f90435b46a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_Coach_1.tga.ckd/b22a947627887f1a207e5903e96cec3b.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_Cover_Generic.tga.ckd/eda2cfea4baa0834fce80a0ec8b3eeef.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Cover_1024.png/7553e6cc41895dc349fad79b50b1e173.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_Cover_Online.tga.ckd/450cc71cd205efbd79fcbf5a18219741.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_Cover_AlbumBkg.tga.ckd/010328bd3e3e0b62f2137299b3cd40bd.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_Cover_AlbumCoach.tga.ckd/44f8a60b755f604b1bded7b6bb39a7da.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Coach_1_Phone.png/755d5c49ea021edb302ff92467880295.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Cover_Phone.jpg/5d7249d5e8ece2d37c3765875ff3f5b9.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Boys/Boys_VideoPreview.webm/bd7405d841070f85dfc8ce64878df51e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_map_bkg.tga.ckd/39cdda83715b2c65d854fb1747019eb9.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/wiiu/Boys_banner_bkg.tga.ckd/54c6029bc995c23fcebd564661886e71.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/wiiu/Boys_Coach_1.tga.ckd/f7a89f64311051fa282555b9729f964d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/wiiu/Boys_Cover_Generic.tga.ckd/96526701093b30a95a5a83de24e8e865.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Cover_1024.png/7553e6cc41895dc349fad79b50b1e173.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/wiiu/Boys_Cover_Online.tga.ckd/cd445b2beab4cf471eb185e0352ed804.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/wiiu/Boys_Cover_AlbumBkg.tga.ckd/19f91ffb57a55048a75239ebc5d75acf.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/wiiu/Boys_Cover_AlbumCoach.tga.ckd/cf98ecf6fa9f3ee69e13cb527b9ee2db.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Coach_1_Phone.png/755d5c49ea021edb302ff92467880295.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Boys/Boys_Cover_Phone.jpg/5d7249d5e8ece2d37c3765875ff3f5b9.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Boys/Boys_VideoPreview.webm/bd7405d841070f85dfc8ce64878df51e.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000,1392000,1416000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":349,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/boys/boys_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Aaron Puckett, Eric Frederic, Lizzo and Nate Mercereau. Published by Frederic and Ried Music (BMI) / Songs From The Broadwalk (BMI) / Sony/ATV Songs LLC (BMI) / Nice Life Songs (BMI) / Poslaniec Publishing (BMI) / Kobalt Songs Music Publishing obo Prescription Songs (ASCAP) / Hazheart Music (ASCAP). / Warner-Tamerlane Publishing Corp. (BMI) OBO Melissa Jefferson pub designee. All rights reserved. Used with permission. Courtesy of Nice Life Recording Company / Atlantic Recording Corporation. By arrangement with Warner Music Group Film & TV Licensing. All rights of the producer and other rightsholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "13DA10FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 176.5, + "mapName": "Boys", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2020, + "packages": { + "mapContent": "Boys_mapContent" + }, + "parentMapName": "Boys", + "skuIds": [], + "songColors": { + "songColor_1A": "000289FF", + "songColor_1B": "050021FF", + "songColor_2A": "752A00FF", + "songColor_2B": "B66A00FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Boys", + "urls": { + "jmcs://jd-contents/Boys/Boys_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Boys/Boys_AudioPreview.ogg/86dee6d2a1bd149c0b3306d8966b5754.ogg", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_HIGH.vp8.webm/1196fd2c183d3f0d91152aebf5a00482.webm", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_HIGH.vp9.webm/8aa9dd1119a18357d4a1e7e16888e9c6.webm", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_LOW.vp8.webm/3ec044c42f72933bd9fc27bb9e31c30b.webm", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_LOW.vp9.webm/fe8c947ed50dac013bc3c368162e9517.webm", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_MID.vp8.webm/dd1c77da5df99be8b08bebd28361b565.webm", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_MID.vp9.webm/64779ae5764f5cd520ce4a67f2247950.webm", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_ULTRA.vp8.webm/da4075d733d36e6e920aaf1a46bd1ea7.webm", + "jmcs://jd-contents/Boys/Boys_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Boys/Boys_MapPreviewNoSoundCrop_ULTRA.vp9.webm/cf1205e393b88533cc1db575e19b8d19.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "7dee3660a970f5b7f51d19f2a34004b1", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Boys/ps4/Boys_MAIN_SCENE_ORBIS.zip/7dee3660a970f5b7f51d19f2a34004b1.zip", + "version": 10 + }, + "nx": { + "md5": "2943ef183a881e540cec1af59c1f8cd6", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Boys/nx/Boys_MAIN_SCENE_NX.zip/2943ef183a881e540cec1af59c1f8cd6.zip", + "version": 10 + }, + "pc": { + "md5": "c017d613ba33cb727feb187206411577", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Boys/pc/Boys_MAIN_SCENE_PC.zip/c017d613ba33cb727feb187206411577.zip", + "version": 5 + }, + "wiiu": { + "md5": "dd4ae47a603df98c1b128be4e843e906", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Boys/wiiu/Boys_MAIN_SCENE_WIIU.zip/dd4ae47a603df98c1b128be4e843e906.zip", + "version": 7 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BubblePop.json b/justdanceonline-main/maps/BubblePop.json new file mode 100644 index 0000000000000000000000000000000000000000..18a374ee08d709fd3a994a7942bccb53df2af7e5 --- /dev/null +++ b/justdanceonline-main/maps/BubblePop.json @@ -0,0 +1,135 @@ +{ + "artist": "HyunA", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_banner_bkg.tga.ckd/727afa2c746998b66b6c8fc1b6de23f7.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_Coach_1.tga.ckd/2b616197d8fdc43c3b6760cde0a82c0f.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_Coach_2.tga.ckd/c88db69d8ec2d67661e1a5665ee7bdbf.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_Coach_3.tga.ckd/5e01bfa09497c09a832bdd412d4f0f1e.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_Cover_Generic.tga.ckd/6c329839c928cc42be71a17fc69721f5.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Cover_1024.png/dbf8c9c28991e487ad4a78205a5500c1.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_Cover_Online.tga.ckd/108b7351415400b63af23226d9876cdf.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_Cover_AlbumBkg.tga.ckd/3ff86464de5d7e9900b738654c7cab25.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_Cover_AlbumCoach.tga.ckd/0b3ddc75c46b22d30d9fa36f5c004dca.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_1_Phone.png/160074c47febd18b80f0362dd99654e7.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_2_Phone.png/8aac8022ec9d153096b768ee3e705b06.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_3_Phone.png/cf31b8c85585720ab4d3da738aa4dfe3.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Cover_Phone.jpg/e558f09c39ee970ec95b45e171bb488f.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_VideoPreview.webm/688dfe846be3a53f47083dc24f1fcf0e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_map_bkg.tga.ckd/91e519c307548fce68cb529d91727aab.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_banner_bkg.tga.ckd/35b162542dacdc5a8846d83c3fb63179.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_Coach_1.tga.ckd/ddc1cba966612d92ed422b810cab0295.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_Coach_2.tga.ckd/53e640049aa2f4939fc30ad20756aea0.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_Coach_3.tga.ckd/bbf35d4eda5fe4b877fa89797444f0b5.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_Cover_Generic.tga.ckd/1b37706f2f3f7bf7f2c77ea6d427348d.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Cover_1024.png/dbf8c9c28991e487ad4a78205a5500c1.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_Cover_Online.tga.ckd/5d7f4a06e7ce0fad6d7ab25deec98f6b.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_Cover_AlbumBkg.tga.ckd/8a06e2c19d7ccd91fc12746cec78ca7b.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_Cover_AlbumCoach.tga.ckd/3ec88f9e756b00a3a1e61c86fb232866.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_1_Phone.png/160074c47febd18b80f0362dd99654e7.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_2_Phone.png/8aac8022ec9d153096b768ee3e705b06.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_3_Phone.png/cf31b8c85585720ab4d3da738aa4dfe3.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Cover_Phone.jpg/e558f09c39ee970ec95b45e171bb488f.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_VideoPreview.webm/688dfe846be3a53f47083dc24f1fcf0e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_map_bkg.tga.ckd/5be9eb97f7032e8d99320f642afd6ab7.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_banner_bkg.tga.ckd/b1caa06e94a9251c1ff7e8cf915949a8.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_Coach_1.tga.ckd/23d3222fe8f566038ccb27243ff52c8b.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_Coach_2.tga.ckd/2ed5cdcf803c46c2c917371e805ab48c.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_Coach_3.tga.ckd/ed5eb92dd8e70cbd61fedeea051efdea.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_Cover_Generic.tga.ckd/b110a3951be3f5de713ed56ac4a97edc.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Cover_1024.png/dbf8c9c28991e487ad4a78205a5500c1.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_Cover_Online.tga.ckd/6172d7eb5b3d64ae9bc6effb241fb1f8.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_Cover_AlbumBkg.tga.ckd/3659423fb9ac34ad3bc058457093013c.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_Cover_AlbumCoach.tga.ckd/b98b9711b6b7bffd1972bd948b6b186c.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_1_Phone.png/160074c47febd18b80f0362dd99654e7.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_2_Phone.png/8aac8022ec9d153096b768ee3e705b06.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Coach_3_Phone.png/cf31b8c85585720ab4d3da738aa4dfe3.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_Cover_Phone.jpg/e558f09c39ee970ec95b45e171bb488f.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_VideoPreview.webm/688dfe846be3a53f47083dc24f1fcf0e.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,19728,39456,59184,78912,98640,118320,138048,157776,177504,197232,216960,236688,256416,276144,295872,315600,335328,355056,374784,394512,414240,433968,453696,473424,493152,512880,532608,552336,572064,591744,611472,631200,650928,670656,690384,710112,729840,749568,769296,789024,808752,828480,848208,867936,887664,907392,927120,946848,966576,986304,1006032,1025760,1045488,1065168,1084896,1104624,1124352,1144080,1163808,1183536,1203264,1222992,1242720,1262448,1282176,1301904,1321632,1341360,1361088,1380816,1400544,1420272],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-5,\"endBeat\":521,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":72,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bubblepop/bubblepop_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Kyu Sung Choi, Ho Yang Lee. Published by Music Cube Inc., administered by peermusic. Courtesy of Cube Entertainment Inc. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF00FFFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 216.14999999999998, + "mapName": "BubblePop", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "BubblePop_mapContent" + }, + "parentMapName": "BubblePop", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "02B2D1FF", + "songColor_1B": "022E7AFF", + "songColor_2A": "EF8A6EFF", + "songColor_2B": "A50362FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Bubble Pop!", + "urls": { + "jmcs://jd-contents/BubblePop/BubblePop_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_AudioPreview.ogg/a12bcf98264a8e00bf14e6632d0e6ba2.ogg", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_HIGH.vp8.webm/4bd519548a37c62ff8f072d8dede3190.webm", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_HIGH.vp9.webm/5ac6709491be9f0db88cb5cc45c66f97.webm", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_LOW.vp8.webm/24ad13742a79160a6d480785d2b4cdb1.webm", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_LOW.vp9.webm/95f4aaf1ed361e6d6571827c79d29f72.webm", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_MID.vp8.webm/419ddc8e65e8df437d6928399f3b9f58.webm", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_MID.vp9.webm/38f32c8418a2fbbbe9bca230fc30267f.webm", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_ULTRA.vp8.webm/a41da7b866d0c8a35c500066009fb0db.webm", + "jmcs://jd-contents/BubblePop/BubblePop_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePop/BubblePop_MapPreviewNoSoundCrop_ULTRA.vp9.webm/57fb242617283fca5702d49461c7e97a.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "9c42e455959b175205a7250488ff09d8", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BubblePop/ps4/BubblePop_MAIN_SCENE_ORBIS.zip/9c42e455959b175205a7250488ff09d8.zip", + "version": 3 + }, + "nx": { + "md5": "4dcc68e0ea65aa9db31453636ca2db50", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BubblePop/nx/BubblePop_MAIN_SCENE_NX.zip/4dcc68e0ea65aa9db31453636ca2db50.zip", + "version": 3 + }, + "pc": { + "md5": "95fd15c6ed9cd68166412e8d7c3703d1", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BubblePop/pc/95fd15c6ed9cd68166412e8d7c3703d1.zip", + "version": 1 + }, + "wiiu": { + "md5": "926927ba74f4f7e6ba81582eb2b63a12", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BubblePop/wiiu/BubblePop_MAIN_SCENE_WIIU.zip/926927ba74f4f7e6ba81582eb2b63a12.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BubblePopALT.json b/justdanceonline-main/maps/BubblePopALT.json new file mode 100644 index 0000000000000000000000000000000000000000..a5b04edccb680722cafcba50c729b911f9b4f352 --- /dev/null +++ b/justdanceonline-main/maps/BubblePopALT.json @@ -0,0 +1,142 @@ +{ + "artist": "HyunA", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_banner_bkg.tga.ckd/c74a8ab8bee444bb669cb2bfdf41be54.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Coach_1.tga.ckd/70d9ecc6265f48cf0b7d9241ba15e9a1.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Coach_2.tga.ckd/68270e9fc9e9c9ef17dcd197bca197f8.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Coach_3.tga.ckd/b857545078b4c90d2fb1e008874a7aa4.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Coach_4.tga.ckd/307fb85162ad7bc8d660aacfc5a35008.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Cover_Generic.tga.ckd/4bed264f15561395f0bfdc407faece7d.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Cover_1024.png/9c027e3ded9ffd78dc678416b1d41b4e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Cover_Online.tga.ckd/2cc439b38b199af16a2faa08fb182721.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Cover_AlbumBkg.tga.ckd/9ccc4e96d4597598988e23d10c6c6efb.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_Cover_AlbumCoach.tga.ckd/2f58544e92ab922d0282ca0d2d38775f.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_1_Phone.png/cdcf7aa911ebbf5e2c03d6211f6a8978.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_2_Phone.png/e866943f12aba4e76e526ea4c35e6f94.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_3_Phone.png/e211ca666db5556eff1ebcebd75ba5ab.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_4_Phone.png/b364c74802a39ac7260b8dfc10d22b6d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Cover_Phone.jpg/fd241627d011dc6f955c271ab486ac0f.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_VideoPreview.webm/70cf336fdbd26e2363e0765dabab3bf3.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_map_bkg.tga.ckd/ff6858b6c9616f3568e9d4688da625ab.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_banner_bkg.tga.ckd/4a8687f5f80216e85b5e27dc64c06ebd.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Coach_1.tga.ckd/6156a69bbf386603cddee0a369ebb649.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Coach_2.tga.ckd/377e778cfeb8d0ed7d172c2914cb7f1d.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Coach_3.tga.ckd/2b6cc7bbdc70008b72867749eeb71da2.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Coach_4.tga.ckd/31d31de7139495d9182ac2e7aea7c657.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Cover_Generic.tga.ckd/ecfa0b63fa9e54c641b88e5b5ba2951e.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Cover_1024.png/9c027e3ded9ffd78dc678416b1d41b4e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Cover_Online.tga.ckd/6431cea1e641f7834cf5aa8004a5fc1b.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Cover_AlbumBkg.tga.ckd/f1da427df611233f132e1e23fd434bf8.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_Cover_AlbumCoach.tga.ckd/70c051b8a3218b183ab1f48d4b7591d6.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_1_Phone.png/cdcf7aa911ebbf5e2c03d6211f6a8978.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_2_Phone.png/e866943f12aba4e76e526ea4c35e6f94.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_3_Phone.png/e211ca666db5556eff1ebcebd75ba5ab.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_4_Phone.png/b364c74802a39ac7260b8dfc10d22b6d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Cover_Phone.jpg/fd241627d011dc6f955c271ab486ac0f.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_VideoPreview.webm/70cf336fdbd26e2363e0765dabab3bf3.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_map_bkg.tga.ckd/5ee6b983ed3c7210e344b33a8bffcf9f.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_banner_bkg.tga.ckd/8698be1739b4b36fe95626fd857fe69d.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Coach_1.tga.ckd/9c8ca2c65121cc3ee4c4101819b42096.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Coach_2.tga.ckd/74f93932a81ef0219187730a987e6e87.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Coach_3.tga.ckd/fd2b54e7179179adb210af826f94f144.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Coach_4.tga.ckd/06f4e5519356a3d0c03ba9909b7d9ffc.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Cover_Generic.tga.ckd/d677d21bce3943eaa32f8bc8da83bd44.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Cover_1024.png/9c027e3ded9ffd78dc678416b1d41b4e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Cover_Online.tga.ckd/9d42b8ba185b4da387b7570528493d7e.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Cover_AlbumBkg.tga.ckd/598ff828560ad525ddf95eb0aee22b33.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_Cover_AlbumCoach.tga.ckd/d9eac8a88a099f504e7641586a6afdfb.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_1_Phone.png/cdcf7aa911ebbf5e2c03d6211f6a8978.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_2_Phone.png/e866943f12aba4e76e526ea4c35e6f94.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_3_Phone.png/e211ca666db5556eff1ebcebd75ba5ab.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Coach_4_Phone.png/b364c74802a39ac7260b8dfc10d22b6d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_Cover_Phone.jpg/fd241627d011dc6f955c271ab486ac0f.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_VideoPreview.webm/70cf336fdbd26e2363e0765dabab3bf3.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,19728,39456,59184,78912,98640,118320,138048,157776,177504,197232,216960,236688,256416,276144,295872,315600,335328,355056,374784,394512,414240,433968,453696,473424,493152,512880,532608,552336,572064,591744,611472,631200,650928,670656,690384,710112,729840,749568,769296,789024,808752,828480,848208,867936,887664,907392,927120,946848,966576,986304,1006032,1025760,1045488,1065168,1084896,1104624,1124352,1144080,1163808,1183536,1203264,1222992,1242720,1262448,1282176,1301904,1321632,1341360,1361088,1380816,1400544,1420272],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-11,\"endBeat\":520,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":72,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bubblepopalt/bubblepopalt_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Kyu Sung Choi, Ho Yang Lee. Published by Music Cube Inc., administered by peermusic. Courtesy of Cube Entertainment Inc. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "093593FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 218.20499999999998, + "mapName": "BubblePopALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "BubblePopALT_mapContent" + }, + "parentMapName": "BubblePop", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "E68EF9FF", + "songColor_1B": "643189FF", + "songColor_2A": "F9B3D5FF", + "songColor_2B": "FC76A1FF" + }, + "status": 9, + "sweatDifficulty": 1, + "tags": [ + "Alternate", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Bubble Pop!", + "urls": { + "jmcs://jd-contents/BubblePopALT/BubblePopALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_AudioPreview.ogg/9eb61ec87842c71184a58f8eb125c829.ogg", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/4e8fcc520c131c0c44692447b7c8a330.webm", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/cd0076fa3d77dcb56d9ee6462e7ab7b2.webm", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_LOW.vp8.webm/6549758b10a0a945b5855f1bcda914e6.webm", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_LOW.vp9.webm/3db392bef80dd2b789fb5a1564d8e038.webm", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_MID.vp8.webm/6bdd5b35df3f0b9f165b81f20dc36c8b.webm", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_MID.vp9.webm/5d4057a3c6f5beebb016094b6b7d9d6b.webm", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/345e3e53677c22ddf73423301a849bc7.webm", + "jmcs://jd-contents/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BubblePopALT/BubblePopALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/d2e11cc4fa831a43af50e341966846f1.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "523e399a35a0ba79970119cca11e5304", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BubblePopALT/ps4/BubblePopALT_MAIN_SCENE_ORBIS.zip/523e399a35a0ba79970119cca11e5304.zip", + "version": 3 + }, + "nx": { + "md5": "222b0e3b7f5f33a229b9cd94d84ec89f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BubblePopALT/nx/BubblePopALT_MAIN_SCENE_NX.zip/222b0e3b7f5f33a229b9cd94d84ec89f.zip", + "version": 3 + }, + "pc": { + "md5": "50dfa8b9da130e23f7b11ad4df7bbe8f", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BubblePopALT/pc/50dfa8b9da130e23f7b11ad4df7bbe8f.zip", + "version": 1 + }, + "wiiu": { + "md5": "958e46fcb35e6633580dc90d92fde090", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BubblePopALT/wiiu/BubblePopALT_MAIN_SCENE_WIIU.zip/958e46fcb35e6633580dc90d92fde090.zip", + "version": 3 + } + }, + "mapType": "jdu", + "customTypeNameId": 14524 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BubblesKids.json b/justdanceonline-main/maps/BubblesKids.json new file mode 100644 index 0000000000000000000000000000000000000000..c5b5de324797546912195661765705646e65389c --- /dev/null +++ b/justdanceonline-main/maps/BubblesKids.json @@ -0,0 +1,92 @@ +{ + "artist": "Dancing Bros.", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_banner_bkg.jpg/1cbf21637eeaef1cb2d72300e97e84d6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Coach_1.png/df4625c192dc731d51cf2e4f78852d0c.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_Generic.jpg/82bb302169c947e842909780be02aa71.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_Online.jpg/75f2d0b1c808b9859b2511b5b2422b80.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_AlbumCoach.png/e7030fee1bdbbffcd6698360c8f32deb.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Coach_1_Phone.png/3210b8c381cbab79a434e3b0abd04a03.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_Phone.jpg/75f2d0b1c808b9859b2511b5b2422b80.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_banner_bkg.jpg/1cbf21637eeaef1cb2d72300e97e84d6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Coach_1.png/df4625c192dc731d51cf2e4f78852d0c.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_Generic.jpg/82bb302169c947e842909780be02aa71.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_Online.jpg/75f2d0b1c808b9859b2511b5b2422b80.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_AlbumCoach.png/e7030fee1bdbbffcd6698360c8f32deb.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Coach_1_Phone.png/3210b8c381cbab79a434e3b0abd04a03.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BubblesKids/BubblesKids_Cover_Phone.jpg/75f2d0b1c808b9859b2511b5b2422b80.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000,1392000,1416000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":2}],\"startBeat\":-13,\"endBeat\":221,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bubbleskids/bubbleskids_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Philip Guyler. Published by Audio Network Canada Inc. Courtesy of Audio Network Canada Inc.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF670EFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 117, + "mapName": "BubblesKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "BubblesKids_mapContent" + }, + "parentMapName": "BubblesKids", + "skuIds": [], + "songColors": { + "songColor_1A": "36D9FFFF", + "songColor_1B": "0195BBFF", + "songColor_2A": "2FC3B7FF", + "songColor_2B": "73E4DBFF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "KidsOnly", + "subscribedSong" + ], + "title": "The Color Lab", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "ce937741febeffb16bc120f33a04d5e7", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/ps4/BubblesKids_MAIN_SCENE_ORBIS.zip/ce937741febeffb16bc120f33a04d5e7.zip", + "version": 1 + }, + "nx": { + "md5": "26feacbc68662927be49790e4fc09006", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/nx/BubblesKids_MAIN_SCENE_NX.zip/26feacbc68662927be49790e4fc09006.zip", + "version": 1 + }, + "pc": { + "md5": "fc57ca081be657f0dfa0393417a58ff3", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BubblesKids/pc/fc57ca081be657f0dfa0393417a58ff3.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939, + "urls": { + "jmcs://jd-contents/BubblesKids/BubblesKids_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_AudioPreview.ogg/5e29074792eea721dac358b63249d7d8.ogg", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/189d9c8994369cc3ab322ba76b50c139.webm", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/6791a8cdae89dafb26d3289493fa7159.webm", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_LOW.vp8.webm/6bbde250b4209d0315b12c7a82b5202a.webm", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_LOW.vp9.webm/f35b4ad2db5b92a9ae6a338af8c5da18.webm", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_MID.vp8.webm/e8ad1af1a12195f321bf35adc746768f.webm", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_MID.vp9.webm/0be2cffa157fc7782e75c5abea4e76f6.webm", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/34ad264251b005525777ac3affc71015.webm", + "jmcs://jd-contents/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BubblesKids/BubblesKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/9c926d4267affd82442e4f73e4a7c01f.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BuiltForThis.json b/justdanceonline-main/maps/BuiltForThis.json new file mode 100644 index 0000000000000000000000000000000000000000..2fde8d8283cfbb6d676e0dcfab85170deb473e22 --- /dev/null +++ b/justdanceonline-main/maps/BuiltForThis.json @@ -0,0 +1,111 @@ +{ + "artist": "Becky G", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_banner_bkg.jpg/66bc13e26f101f11ca2be372d4d30814.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Coach_1.png/26f8aa9c63df530aada456efa91e7db7.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_Generic.jpg/ffeb2a6524c4ce539260e533af4b1ecb.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_1024.png/5fb8bba395b408fbd996560f58835a39.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_Online.jpg/60f11a66c4e430f0fa89b04c8ad66412.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_AlbumBkg.jpg/5f12a80577ea42f17c1a53678d7bbf0a.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_AlbumCoach.png/e13f006dad6e143f0cfe8c2e0258c4ec.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Coach_1_Phone.png/6b5b151f086af4f58232c8e8222731d6.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_Phone.jpg/60f11a66c4e430f0fa89b04c8ad66412.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_banner_bkg.jpg/66bc13e26f101f11ca2be372d4d30814.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Coach_1.png/26f8aa9c63df530aada456efa91e7db7.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_Generic.jpg/ffeb2a6524c4ce539260e533af4b1ecb.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_1024.png/5fb8bba395b408fbd996560f58835a39.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_Online.jpg/60f11a66c4e430f0fa89b04c8ad66412.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_AlbumBkg.jpg/5f12a80577ea42f17c1a53678d7bbf0a.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_AlbumCoach.png/e13f006dad6e143f0cfe8c2e0258c4ec.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Coach_1_Phone.png/6b5b151f086af4f58232c8e8222731d6.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_Phone.jpg/60f11a66c4e430f0fa89b04c8ad66412.jpg" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/wiiu/BuiltForThis_banner_bkg.tga.ckd/af18b16a05648647dfef5d30f5ffc96c.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/wiiu/BuiltForThis_Coach_1.tga.ckd/64a6269b30811e0fcdf35c0ce2262628.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/wiiu/BuiltForThis_Cover_Generic.tga.ckd/b7250c92544167896acedf15d5d42dab.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_1024.png/5fb8bba395b408fbd996560f58835a39.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/wiiu/BuiltForThis_Cover_Online.tga.ckd/3938a5ade88923bed19abfadd44a7033.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/wiiu/BuiltForThis_Cover_AlbumBkg.tga.ckd/cec0d253482c80aae9a0efab03d02cca.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/wiiu/BuiltForThis_Cover_AlbumCoach.tga.ckd/5fd019dd56440724dba1941fcab8fc33.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Coach_1_Phone.png/6b5b151f086af4f58232c8e8222731d6.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_Cover_Phone.jpg/60f11a66c4e430f0fa89b04c8ad66412.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,27696,55392,83088,110783,138479,166175,193871,221567,249263,276959,304655,332351,359999,387695,415391,443087,470783,498479,526175,553871,581567,609262,636958,664654,692350,719998,747694,775390,803086,830782,858478,886174,913870,941566,969262,996958,1024654,1052350,1079998,1107694,1135389,1163085,1190781,1218477,1246173,1273869,1301565,1329261,1356957,1384653,1412349,1439997],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":337,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":52,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/builtforthis/builtforthis_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "0BF7FFFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 194.42399999999998, + "mapName": "BuiltForThis", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2015, + "packages": { + "mapContent": "BuiltForThis_mapContent" + }, + "parentMapName": "BuiltForThis", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "00B8C0FF", + "songColor_1B": "00326AFF", + "songColor_2A": "E100B0FF", + "songColor_2B": "710014FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Built For This", + "urls": { + "jmcs://jd-contents/BuiltForThis/BuiltForThis_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_AudioPreview.ogg/b85b6272e6c9f2dbf8fc1058de46df53.ogg", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_HIGH.vp8.webm/acf5f3ff2179b100cad928de0f95cc79.webm", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_HIGH.vp9.webm/bf838e6420c7084fad7e5853c963cfa4.webm", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_LOW.vp8.webm/8a5760c45d6e31829729eabb91df5351.webm", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_LOW.vp9.webm/dd56a6c06c35bb6d1635ea08a9198d0d.webm", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_MID.vp8.webm/9e5710d83ad80f5a3c98342dd098780f.webm", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_MID.vp9.webm/cc33685e854c4c09ad8f4e0cb9c64d61.webm", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_ULTRA.vp8.webm/bca8374e7c54ddd4c757401e71c80bea.webm", + "jmcs://jd-contents/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BuiltForThis/BuiltForThis_MapPreviewNoSoundCrop_ULTRA.vp9.webm/86b4d4e78f06dbc49aabf534f8b3637d.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "c1407bea72809fcc681d0930fd6d3590", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BuiltForThis/ps4/BuiltForThis_MAIN_SCENE_ORBIS.zip/c1407bea72809fcc681d0930fd6d3590.zip", + "version": 19 + }, + "pc": { + "md5": "62f2fde4269d307e245502d2a07e2d4b", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BuiltForThis/pc/BuiltForThis_MAIN_SCENE_PC.zip/62f2fde4269d307e245502d2a07e2d4b.zip", + "version": 8 + }, + "wiiu": { + "md5": "0d4d42cce3b0216f32fc4c69791ede8f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BuiltForThis/wiiu/BuiltForThis_MAIN_SCENE_WIIU.zip/0d4d42cce3b0216f32fc4c69791ede8f.zip", + "version": 12 + }, + "nx": { + "md5": "b866a245e8a683bee8d1485c485a8c16", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BuiltForThis/nx/BuiltForThis_MAIN_SCENE_NX.zip/b866a245e8a683bee8d1485c485a8c16.zip", + "version": 16 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BumBumTamTam.json b/justdanceonline-main/maps/BumBumTamTam.json new file mode 100644 index 0000000000000000000000000000000000000000..b8207095984155aff74de417e814cf93c7b9d515 --- /dev/null +++ b/justdanceonline-main/maps/BumBumTamTam.json @@ -0,0 +1,125 @@ +{ + "artist": "Mc Fioti, Future, J Balvin, Stefflon Don, Juan Magan", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_banner_bkg.tga.ckd/6f09602d3ea038adbc3d32a8e9330f17.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_Coach_1.tga.ckd/1af9ce25ea00e66092f0b4f7e7a19964.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_Coach_2.tga.ckd/a8cf8bb9e0d195240eccf4d4acfa6000.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_Cover_Generic.tga.ckd/ffae18004533c9791056940ea1ea6ad2.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_1024.png/88b35ddad4ce0ee772bb3151861dca5d.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_Cover_Online.tga.ckd/eccdfaef4eddecb6a02b06ebd0beb2bc.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_Cover_AlbumBkg.tga.ckd/97842e124dc77669f296cb1176b3197c.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_Cover_AlbumCoach.tga.ckd/15a140e902181d5687232645b619d5fb.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_1_Phone.png/5e5833d12bc39f1e27d976f21ae249bc.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_2_Phone.png/bd7abdbbbfe4ed65e63aaa807ed02bf7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_Phone.jpg/a7dd67aa1fbe46dcdd6ef3789616390f.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_map_bkg.tga.ckd/1f1566e423972097b28f1a8e47e7b105.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_banner_bkg.tga.ckd/6535a2a6015b7ba0edd5a70ba25f83d7.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_Coach_1.tga.ckd/1096f6ff39db115ccdd6842161758098.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_Coach_2.tga.ckd/da2d51c9e710ee3d6c71851fc15feb8e.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_Cover_Generic.tga.ckd/5d3476e3e7f16dab0341d6048e47d305.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_1024.png/88b35ddad4ce0ee772bb3151861dca5d.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_Cover_Online.tga.ckd/af60f30f21c2885cf1a4dfe9d7d88e8d.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_Cover_AlbumBkg.tga.ckd/447bd8b4fb80f9be0defb7e0a718a206.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_Cover_AlbumCoach.tga.ckd/ee3f57919c61e205e23ee7eb0125fb8c.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_1_Phone.png/5e5833d12bc39f1e27d976f21ae249bc.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_2_Phone.png/bd7abdbbbfe4ed65e63aaa807ed02bf7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_Phone.jpg/a7dd67aa1fbe46dcdd6ef3789616390f.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_map_bkg.tga.ckd/21acf0e6fb01896f13dcc220f3c0497f.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_banner_bkg.jpg/55d1971c8014e0abbfec1e00e07f188c.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_1.png/d6e49c8c6e862485de1e72cc2947c997.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_2.png/88a3b931b8ebc96de4bab37d0cb2ffd0.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_Generic.jpg/0e0029f6255b32084bc0be24ed26d184.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_1024.png/88b35ddad4ce0ee772bb3151861dca5d.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_Online.jpg/a7dd67aa1fbe46dcdd6ef3789616390f.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_AlbumBkg.jpg/a61767f10f5626d5ccc3c1b2978eee66.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_AlbumCoach.png/35154f46b5df80fa4125c10e03ff8298.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_1_Phone.png/5e5833d12bc39f1e27d976f21ae249bc.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Coach_2_Phone.png/bd7abdbbbfe4ed65e63aaa807ed02bf7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_Cover_Phone.jpg/a7dd67aa1fbe46dcdd6ef3789616390f.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21839,43631,65471,87311,109103,130943,152735,174575,196367,218207,239999,261839,283631,305471,327311,349103,370943,392735,414575,436367,458206,479998,501838,523630,545470,567310,589102,610942,632734,654574,676366,698206,719998,741838,763630,785470,807310,829102,850942,872733,894573,916365,938205,959997,981837,1003629,1025469,1047309,1069101,1090941,1112733,1134573,1156365,1178205,1199997,1221837,1243629,1265469,1287309,1309100,1330940,1352732,1374572,1396364,1418204,1439996],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":474,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":66,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bumbumtamtam/bumbumtamtam_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Jose Alvaro Osorio Balvin, Juan Magan Gonzalez, Leandro Aparecido Ferreira, Nayvadius Wilburn and Stephanie Allen. Published by Universal Musica Unica Publishing, Irving Music, Inc. on behalf of itself, and Nayvadius Maximus Music / Sony/ATV Music Publishing Allegro (UK) (PRS) c/o Sony/ATV Music Publishing Canada (SOCAN) / Clipper’s Own. All rights reserved. Used with permission. Courtesy of Island Records under license from Universal Music Enterprises. All rights of the producer and other right holders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "EE67FEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 216.45399999999998, + "mapName": "BumBumTamTam", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "BumBumTamTam_mapContent" + }, + "parentMapName": "BumBumTamTam", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "5BB6EAFF", + "songColor_1B": "01728CFF", + "songColor_2A": "D1B434FF", + "songColor_2B": "E0BB7FFF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Bum Bum Tam Tam", + "urls": { + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_AudioPreview.ogg/286efe2c43839cb5286bf10db3f0ccf9.ogg", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_HIGH.vp8.webm/2223a2c846587579cab13fc0f69a01e6.webm", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_HIGH.vp9.webm/a80fe3f6a673bffc961ce336c9007eea.webm", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_LOW.vp8.webm/edc6951dd72ab35356a4c6cbf1a8c821.webm", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_LOW.vp9.webm/4f6e8ee4116baf24530e4b14ed73a9f0.webm", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_MID.vp8.webm/4d60fdf3b163a23d461966f50e98a2b6.webm", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_MID.vp9.webm/559609355ba18248588129ef4dd1a738.webm", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_ULTRA.vp8.webm/e7b1f785aab9c53fcaa5a9b2ae8351e8.webm", + "jmcs://jd-contents/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/BumBumTamTam_MapPreviewNoSoundCrop_ULTRA.vp9.webm/e0ab4bf37abca7cbb6521c7eb0aa226b.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "fcb3f1ae86be22e95711979fcfa2d8cd", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/ps4/BumBumTamTam_MAIN_SCENE_ORBIS.zip/fcb3f1ae86be22e95711979fcfa2d8cd.zip", + "version": 2 + }, + "nx": { + "md5": "9e20ccfc4e19d642f61d899ced87da35", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BumBumTamTam/nx/BumBumTamTam_MAIN_SCENE_NX.zip/9e20ccfc4e19d642f61d899ced87da35.zip", + "version": 2 + }, + "pc": { + "md5": "91a5badc446fe2f9f6e59f750e5e0c8d", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/bumbumtamtam_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BumBumTamTamALT.json b/justdanceonline-main/maps/BumBumTamTamALT.json new file mode 100644 index 0000000000000000000000000000000000000000..79b60ff5debd514500396178a0727fa1eff9e2d5 --- /dev/null +++ b/justdanceonline-main/maps/BumBumTamTamALT.json @@ -0,0 +1,127 @@ +{ + "artist": "Mc Fioti, Future, J Balvin, Stefflon Don, Juan Magan", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_banner_bkg.tga.ckd/9f70b3d6a608ec2053a8d84dfc988c6b.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_Coach_1.tga.ckd/d5ce6c038f88123ee570d4cb0b8bb898.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_Coach_2.tga.ckd/782fef68278420edcf837964e82d1325.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_Cover_Generic.tga.ckd/93860be84bb5a2cc3841e7186718beb5.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_1024.png/55baf16f36119b1f77a0df706a32463a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_Cover_Online.tga.ckd/8336f5b14a8ca5a90841f1ac14b95e86.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_Cover_AlbumBkg.tga.ckd/061304b6130aad462ad33da890267ed1.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_Cover_AlbumCoach.tga.ckd/1b9d5d45fd7d0c2f996891d56a914d1e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_1_Phone.png/3427ee5a769a66f2aba5cd8762933d14.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_2_Phone.png/85fcc97c6e57edb6f9e0e5c8ff88fe9c.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_Phone.jpg/4513bfdd8fe775c8c31b20ab1dcddac9.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_map_bkg.tga.ckd/40d95977df79ab2e4537a36bfde90176.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_banner_bkg.tga.ckd/2ba4765d5a20147f4db4869da367904e.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_Coach_1.tga.ckd/e1e53717bbbe7eebb08925854f74a8c7.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_Coach_2.tga.ckd/55f820fdcef3217470bda1e7bf8a1091.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_Cover_Generic.tga.ckd/92653214bd400003823de3cccca83f55.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_1024.png/55baf16f36119b1f77a0df706a32463a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_Cover_Online.tga.ckd/bb66d2a4d929c4c713e6585c788814ca.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_Cover_AlbumBkg.tga.ckd/c098065222f923c58b893d91e0b26cd8.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_Cover_AlbumCoach.tga.ckd/afb1e82a55a0f5bdc7ef7ee8e388202b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_1_Phone.png/3427ee5a769a66f2aba5cd8762933d14.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_2_Phone.png/85fcc97c6e57edb6f9e0e5c8ff88fe9c.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_Phone.jpg/4513bfdd8fe775c8c31b20ab1dcddac9.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_map_bkg.tga.ckd/4d1b082afdbf0520a771280d8cdc8af1.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_banner_bkg.jpg/f119bc45ff111e7d6194b4b0ea11bed9.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_1.png/5a160483df158e2a667850b4816bfa93.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_2.png/2d433d1f597d1a0cffa3296f863940dd.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_Generic.jpg/61fb781fca68891202a79513c642e7a5.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_1024.png/55baf16f36119b1f77a0df706a32463a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_Online.jpg/4513bfdd8fe775c8c31b20ab1dcddac9.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_AlbumBkg.jpg/a832e513c23698ad7f25291e6c19206d.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_AlbumCoach.png/fa3614ac2bd78722c718b8f2b194a8a2.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_1_Phone.png/3427ee5a769a66f2aba5cd8762933d14.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Coach_2_Phone.png/85fcc97c6e57edb6f9e0e5c8ff88fe9c.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_Cover_Phone.jpg/4513bfdd8fe775c8c31b20ab1dcddac9.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21839,43631,65471,87311,109103,130943,152735,174575,196367,218207,239999,261839,283631,305471,327311,349103,370943,392735,414575,436367,458206,479998,501838,523630,545470,567310,589102,610942,632734,654574,676366,698206,719998,741838,763630,785470,807310,829102,850942,872733,894573,916365,938205,959997,981837,1003629,1025469,1047309,1069101,1090941,1112733,1134573,1156365,1178205,1199997,1221837,1243629,1265469,1287309,1309100,1330940,1352732,1374572,1396364,1418204,1439996],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-1,\"endBeat\":471,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":66,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/bumbumtamtamalt/bumbumtamtamalt_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Jose Alvaro Osorio Balvin, Juan Magan Gonzalez, Leandro Aparecido Ferreira, Nayvadius Wilburn and Stephanie Allen. Published by Universal Musica Unica Publishing, Irving Music, Inc. on behalf of itself, and Nayvadius Maximus Music / Sony/ATV Music Publishing Allegro (UK) (PRS) c/o Sony/ATV Music Publishing Canada (SOCAN) / Clipper’s Own. All rights reserved. Used with permission. Courtesy of Island Records under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "00BD44FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 214.628, + "mapName": "BumBumTamTamALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "BumBumTamTamALT_mapContent" + }, + "parentMapName": "BumBumTamTam", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "3D9100FF", + "songColor_1B": "032E0FFF", + "songColor_2A": "00CB99FF", + "songColor_2B": "00044FFF" + }, + "status": 9, + "sweatDifficulty": 1, + "tags": [ + "Alternate", + "ChairTutorial", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Bum Bum Tam Tam", + "urls": { + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_AudioPreview.ogg/cabc46f861c844c9a6497bfdcf19ec02.ogg", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/70501376535d28fdb05b0343e509533d.webm", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/4e9a4c3753c1e074af0df5130968e60a.webm", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_LOW.vp8.webm/75b8cf3fb3d91dd3228b2478a0a4b0a8.webm", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_LOW.vp9.webm/768e91fdace000ac88a901ee0f4a1a40.webm", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_MID.vp8.webm/902510e99c5d53c367cc397ee2921cba.webm", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_MID.vp9.webm/38514d0ee423e3099ceb16135a27987f.webm", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/482878e9419180c04ffeec2845b24500.webm", + "jmcs://jd-contents/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/BumBumTamTamALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/d32dc02da88fe85094c64bd89dee734b.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "68e15bca7a67c6ba3024f8af043b0e0d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/ps4/BumBumTamTamALT_MAIN_SCENE_ORBIS.zip/68e15bca7a67c6ba3024f8af043b0e0d.zip", + "version": 2 + }, + "nx": { + "md5": "7471a440fe047cfc3161cf1f229f8b74", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/BumBumTamTamALT/nx/BumBumTamTamALT_MAIN_SCENE_NX.zip/7471a440fe047cfc3161cf1f229f8b74.zip", + "version": 2 + }, + "pc": { + "md5": "3a84c61f583fe355cd999987270885b7", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/bumbumtamtamalt_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 15157 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Buscando.json b/justdanceonline-main/maps/Buscando.json new file mode 100644 index 0000000000000000000000000000000000000000..407427be31188e320152dd88d26ddafc972d1059 --- /dev/null +++ b/justdanceonline-main/maps/Buscando.json @@ -0,0 +1,90 @@ +{ + "artist": "GTA & Jenn Morel", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_banner_bkg.jpg/9efce2ef8a7a6a623fa84f3024b808cc.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Coach_1.png/de07c7dd37d0db7780e360352e807ef1.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_Generic.jpg/ba24d613371f403f04bb5d419dd725d6.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_Online.jpg/8c9f91141cfa0f11fabe072cfdc2186e.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_AlbumBkg.jpg/506c4dc8ac5bdfbcd08beb166ad80ceb.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_AlbumCoach.png/aba1a3dc738088bacee51648ff83d658.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Coach_1_Phone.png/7fab8ce1cd5f23f1835ce8076ed92e0d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_Phone.jpg/8c9f91141cfa0f11fabe072cfdc2186e.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_banner_bkg.jpg/9efce2ef8a7a6a623fa84f3024b808cc.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Coach_1.png/de07c7dd37d0db7780e360352e807ef1.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_Generic.jpg/ba24d613371f403f04bb5d419dd725d6.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_Online.jpg/8c9f91141cfa0f11fabe072cfdc2186e.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_AlbumBkg.jpg/506c4dc8ac5bdfbcd08beb166ad80ceb.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_AlbumCoach.png/aba1a3dc738088bacee51648ff83d658.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Coach_1_Phone.png/7fab8ce1cd5f23f1835ce8076ed92e0d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Buscando/Buscando_Cover_Phone.jpg/8c9f91141cfa0f11fabe072cfdc2186e.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000,1392000,1416000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":448,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/buscando/buscando_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Julio Alejandro Mejia, Gedrin Joely Morel, Jeniffer Morel and Matthew Toth Published by Buena Vaina Publishing / Joelii Music Publishing / Seven20 Songs (ASCAP) / 720 Publishing Worldwide (BMI). Courtesy of Mad Decent.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "EF25FBFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 226, + "mapName": "Buscando", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "Buscando_mapContent" + }, + "parentMapName": "Buscando", + "skuIds": [], + "songColors": { + "songColor_1A": "9DAB00FF", + "songColor_1B": "436600FF", + "songColor_2A": "00D8FFFF", + "songColor_2B": "020040FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Buscando", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "784bd5a6b7598d5c071d40b889933ce6", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/ps4/Buscando_MAIN_SCENE_ORBIS.zip/784bd5a6b7598d5c071d40b889933ce6.zip", + "version": 1 + }, + "nx": { + "md5": "e5effa90bfea2280260e64d4d6bd3be4", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/nx/Buscando_MAIN_SCENE_NX.zip/e5effa90bfea2280260e64d4d6bd3be4.zip", + "version": 1 + }, + "pc": { + "md5": "3490c69f393f1d71e4586159e6448ccf", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Buscando/pc/3490c69f393f1d71e4586159e6448ccf.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/Buscando/Buscando_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_AudioPreview.ogg/926dcd0f9a0a6c2efdf8651086288022.ogg", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_HIGH.vp8.webm/c2f24be852b598a1be8a902781d25ccc.webm", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_HIGH.vp9.webm/82545872a39c494474347493c8474ec8.webm", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_LOW.vp8.webm/bfaa753028e58d0d378596934f885129.webm", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_LOW.vp9.webm/5be7ecd9cd360e73b92efb5d8cb1d457.webm", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_MID.vp8.webm/b8c0ac881e73fae8451b90004283ddf7.webm", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_MID.vp9.webm/bbad134fa934444d9bfd5942686465a4.webm", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_ULTRA.vp8.webm/39b7ea10ff3c5882b9823e5d4af766e8.webm", + "jmcs://jd-contents/Buscando/Buscando_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/Buscando/Buscando_MapPreviewNoSoundCrop_ULTRA.vp9.webm/612f3fddebbcce05435401898b19a9fa.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/BuscandoALT.json b/justdanceonline-main/maps/BuscandoALT.json new file mode 100644 index 0000000000000000000000000000000000000000..b604c8f55e291aaf324ab7edfc9adf4caa4b2764 --- /dev/null +++ b/justdanceonline-main/maps/BuscandoALT.json @@ -0,0 +1,91 @@ +{ + "artist": "GTA & Jenn Morel", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_banner_bkg.jpg/02ac492f2520bd6fff27715a2e989cc0.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Coach_1.png/37f403ae31ec3ae61b0d35cd7011d743.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_Generic.jpg/63e024ab2e05f0e8454da30ff1dc148a.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_Online.jpg/6760be648f5c2edcaadac4b0b3096860.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_AlbumBkg.jpg/961a6a8ef4fbfa9f602b8e9b8fd5d69b.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_AlbumCoach.png/af4d099fd7bf45adc18aa345759b55be.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Coach_1_Phone.png/34abbfbac3ed9f234487e5ea4f7d3cf6.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_Phone.jpg/6760be648f5c2edcaadac4b0b3096860.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_banner_bkg.jpg/02ac492f2520bd6fff27715a2e989cc0.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Coach_1.png/37f403ae31ec3ae61b0d35cd7011d743.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_Generic.jpg/63e024ab2e05f0e8454da30ff1dc148a.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_Online.jpg/6760be648f5c2edcaadac4b0b3096860.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_AlbumBkg.jpg/961a6a8ef4fbfa9f602b8e9b8fd5d69b.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_AlbumCoach.png/af4d099fd7bf45adc18aa345759b55be.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Coach_1_Phone.png/34abbfbac3ed9f234487e5ea4f7d3cf6.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/BuscandoALT/BuscandoALT_Cover_Phone.jpg/6760be648f5c2edcaadac4b0b3096860.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000,1392000,1416000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":449,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/buscandoalt/buscandoalt_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Julio Alejandro Mejia, Gedrin Joely Morel, Jeniffer Morel and Matthew Toth Published by Buena Vaina Publishing / Joelii Music Publishing / Seven20 Songs (ASCAP) / 720 Publishing Worldwide (BMI). Courtesy of Mad Decent.", + "difficulty": 4, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "9E08F0FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 226.5, + "mapName": "BuscandoALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "BuscandoALT_mapContent" + }, + "parentMapName": "Buscando", + "skuIds": [], + "songColors": { + "songColor_1A": "27113DFF", + "songColor_1B": "F5EBD9FF", + "songColor_2A": "F8E63BFF", + "songColor_2B": "B430BAFF" + }, + "status": 12, + "sweatDifficulty": 3, + "tags": [ + "Alternate", + "subscribedSong" + ], + "title": "Buscando", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "847c8a11987bd1491e0b2f501641b46d", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/ps4/BuscandoALT_MAIN_SCENE_ORBIS.zip/847c8a11987bd1491e0b2f501641b46d.zip", + "version": 1 + }, + "nx": { + "md5": "2bfa0d3c2e67b3dd41e1b9570ddd650d", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/nx/BuscandoALT_MAIN_SCENE_NX.zip/2bfa0d3c2e67b3dd41e1b9570ddd650d.zip", + "version": 1 + }, + "pc": { + "md5": "3368dce468203af9e5e422f4e7e572e2", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/BuscandoALT/pc/3368dce468203af9e5e422f4e7e572e2.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12624, + "urls": { + "jmcs://jd-contents/BuscandoALT/BuscandoALT_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_AudioPreview.ogg/f37106b2829e652cd08e957ec182f699.ogg", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/543e048b2829dc4fa50896e33cf2d204.webm", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/6028dce57269d7a83b3c421378ddc562.webm", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_LOW.vp8.webm/64397a392d3ffad7082ca1f0bc40afbd.webm", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_LOW.vp9.webm/4df48950fbdb62314c26acd6c29969ef.webm", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_MID.vp8.webm/f8b016116abd9b29df4ac637222edfa8.webm", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_MID.vp9.webm/dd7ec7f1c0d82600819211695626b9d8.webm", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/21eaf4eff9a999302762a73aefe8a6c0.webm", + "jmcs://jd-contents/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/BuscandoALT/BuscandoALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/7c3bfb2a5939715ed64b5e33ce161080.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/CaPlane.json b/justdanceonline-main/maps/CaPlane.json new file mode 100644 index 0000000000000000000000000000000000000000..6e09a638118316c0afc5545b7fd750b90f5ad726 --- /dev/null +++ b/justdanceonline-main/maps/CaPlane.json @@ -0,0 +1,119 @@ +{ + "artist": "Bob Platine", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_banner_bkg.tga.ckd/07080f5ef03486692e6272d3a676ad0a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_Coach_1.tga.ckd/09273738f6b58365995942d9717e2040.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_Cover_Generic.tga.ckd/b083f85a860d5284c63c0bb55d1efc71.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_1024.png/452ff4abd4bc8554ad7cb1541b9ff107.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_Cover_Online.tga.ckd/2edf0fd7969d826a88799c710f4ac2d0.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_Cover_AlbumBkg.tga.ckd/748c58ee7b42e88d3ddb355e10ec769a.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_Cover_AlbumCoach.tga.ckd/9bafb336fcfee67e57641af5dab3f265.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Coach_1_Phone.png/3044aa9ca1c8a7ce29c2f498a3100c6a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_Phone.jpg/b883800edcf7095039d73b5ebaee9f0d.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_map_bkg.tga.ckd/dd3ab75e149bf4ddfca82114efb0d3e4.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_banner_bkg.tga.ckd/55ff8b2c2c2ae880c0be0ba1a6018c9b.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_Coach_1.tga.ckd/02320c8db8e2c78022b0e80db3ee1773.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_Cover_Generic.tga.ckd/0f91330f9c871ebbec50a25bbed759b8.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_1024.png/452ff4abd4bc8554ad7cb1541b9ff107.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_Cover_Online.tga.ckd/36c8334a672fe124c2dbb5a03d231d1c.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_Cover_AlbumBkg.tga.ckd/9c9d0860156ec1034956fa536557bcaf.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_Cover_AlbumCoach.tga.ckd/1c8a2dbea64a3bdb999cbeec0239b3f5.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Coach_1_Phone.png/3044aa9ca1c8a7ce29c2f498a3100c6a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_Phone.jpg/b883800edcf7095039d73b5ebaee9f0d.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_map_bkg.tga.ckd/c373d063b29a9a025cc893c2f3fd9f94.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_banner_bkg.jpg/f7f064a4fa9538a4c6457681c608373e.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Coach_1.png/98589afe9fc9ef6005c1dcb355ebf88d.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_Generic.jpg/3fd240743f6e2037982a034cb1cb9808.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_1024.png/452ff4abd4bc8554ad7cb1541b9ff107.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_Online.jpg/b883800edcf7095039d73b5ebaee9f0d.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_AlbumBkg.jpg/fb12efe734d0c12652316bcb2c36e7b9.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_AlbumCoach.png/a73b3934f9b5fde110990f65f7018d88.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Coach_1_Phone.png/3044aa9ca1c8a7ce29c2f498a3100c6a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_Cover_Phone.jpg/b883800edcf7095039d73b5ebaee9f0d.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,17328,34703,52032,69360,86688,104015,121344,138672,156000,173328,190656,208032,225407,242736,260112,277488,294863,312240,329568,346944,364320,381696,399072,416400,433776,451152,468528,485904,503232,520608,537984,555360,572736,590064,607440,624816,642192,659568,676896,694272,711648,729024,746399,763728,781152,798576,815999,833423,850847,868271,885695,903168,920592,938016,955440,972864,990288,1007712,1025136,1042560,1059984,1077408,1094832,1112256,1129680,1147104,1164528,1181952,1199376,1216800,1234224,1251648,1269072,1286496,1303920,1321344,1338768,1356240,1373712,1391184,1408608,1426080],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-9,\"endBeat\":483,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":82,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/caplane/caplane_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Francis Jean Deprijk and Yves Maurice A. Lacomblez. Produced, engineered and Mixed by Steve Ouimette. Published by Universal Music Publishing Canada on behalf of Universal Music Publishing N.V. Vocals: Serge Dinarka. Tenor Sax: Eric Tewalt. Drums, Bass, Guitar: Steve Ouimette. Music Supervision: Manu Bachet. Courtesy of Ubisoft Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "13CDFCFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 178.33599999999998, + "mapName": "CaPlane", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "CaPlane_mapContent" + }, + "parentMapName": "CaPlane", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "1660BAFF", + "songColor_1B": "010B33FF", + "songColor_2A": "F9D313FF", + "songColor_2B": "C94402FF" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Ça Plane Pour Moi", + "urls": { + "jmcs://jd-contents/CaPlane/CaPlane_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_AudioPreview.ogg/6113523b55696911c3860ccafd7d2436.ogg", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_HIGH.vp8.webm/65d2a74931f8717c282d68ec63e8c1e7.webm", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_HIGH.vp9.webm/46f7b2c41f0b2c788e125ecc4acf8ea3.webm", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_LOW.vp8.webm/57dca685900165e1bda8068aceb2b434.webm", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_LOW.vp9.webm/418d9197df85a3f44394ed0fe40b6f05.webm", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_MID.vp8.webm/b06343580f9f35db655c02a59b5ef537.webm", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_MID.vp9.webm/7e138f7eb6a30c5cdac34e72563af094.webm", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_ULTRA.vp8.webm/f5c98b618ab650415942c13404df6812.webm", + "jmcs://jd-contents/CaPlane/CaPlane_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/CaPlane/CaPlane_MapPreviewNoSoundCrop_ULTRA.vp9.webm/47e19ca953d38674f111b16774911f5e.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "a51a94d570c2107c9d78d76397293ec6", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/CaPlane/ps4/CaPlane_MAIN_SCENE_ORBIS.zip/a51a94d570c2107c9d78d76397293ec6.zip", + "version": 2 + }, + "nx": { + "md5": "610aaebc8dbea805c78fa654ca2baddf", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/CaPlane/nx/CaPlane_MAIN_SCENE_NX.zip/610aaebc8dbea805c78fa654ca2baddf.zip", + "version": 2 + }, + "pc": { + "md5": "be61aaf660d15223fe7be2a0663e0704", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/caplane_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Calypso.json b/justdanceonline-main/maps/Calypso.json new file mode 100644 index 0000000000000000000000000000000000000000..77b251974eb1f95ba858162b0c2caf449396824b --- /dev/null +++ b/justdanceonline-main/maps/Calypso.json @@ -0,0 +1,119 @@ +{ + "artist": "Luis Fonsi Ft. Stefflon Don", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_banner_bkg.tga.ckd/5b99357408c88253ed734ae3b4e34fe7.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_Coach_1.tga.ckd/55392c5148c5c1df2ef1f62b2db7fd74.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_Cover_Generic.tga.ckd/ae8d936307174f0f5c23d091380776b6.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_1024.png/84a2fbd26ff4d6506de838027018849d.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_Cover_Online.tga.ckd/e4cc65547d1345560427fa634539bb8f.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_Cover_AlbumBkg.tga.ckd/f9780839697357e16239242746f22347.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_Cover_AlbumCoach.tga.ckd/3a92d3af88ebecf786733ea195e7f963.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Coach_1_Phone.png/297dece6addc1904cc9200a2eb7c2bbb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_Phone.jpg/75d6d1189157040ce6336cc7c860211d.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_map_bkg.tga.ckd/e567193d0bcaf63c9cbd653bec5872c9.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_banner_bkg.tga.ckd/9b3c1b7426a496354c08146c3db11209.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_Coach_1.tga.ckd/37f55b7ecaacbe0d9a54e4c08b0e0c67.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_Cover_Generic.tga.ckd/e3819535780fe013d767864fe6a717f1.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_1024.png/84a2fbd26ff4d6506de838027018849d.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_Cover_Online.tga.ckd/46c8b359c161c4499766c3982702b850.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_Cover_AlbumBkg.tga.ckd/ea9da79ce95672d986beffe7eac5e47f.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_Cover_AlbumCoach.tga.ckd/8980b1829ce124e494a00f469ec15e05.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Coach_1_Phone.png/297dece6addc1904cc9200a2eb7c2bbb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_Phone.jpg/75d6d1189157040ce6336cc7c860211d.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_map_bkg.tga.ckd/484ded5a8cf9dccab930baa0c447355d.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_banner_bkg.jpg/b81369ecb18965e36137b2b250dfb3f6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Coach_1.png/9e55807fe7ed7e17dd6f105cb81e1143.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_Generic.jpg/a174c026c0680c977b36b456473669bd.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_1024.png/84a2fbd26ff4d6506de838027018849d.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_Online.jpg/75d6d1189157040ce6336cc7c860211d.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_AlbumBkg.jpg/76ddf787ec2c291e588dca8c08a46564.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_AlbumCoach.png/b5886afc2130fbf78129dbccea29c1ff.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Coach_1_Phone.png/297dece6addc1904cc9200a2eb7c2bbb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_Cover_Phone.jpg/75d6d1189157040ce6336cc7c860211d.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26160,52320,78528,104688,130896,157056,183264,209424,235632,261792,288000,314160,340320,366528,392688,418896,445056,471264,497424,523632,549792,576000,602160,628320,654528,680688,706895,733055,759263,785423,811631,837791,863999,890159,916319,942527,968687,994895,1021055,1047263,1073423,1099631,1125791,1151999,1178159,1204319,1230527,1256687,1282895,1309055,1335263,1361423,1387631,1413791,1439999],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":370,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":55,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/calypso/calypso_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Andres Torres, Luis Fonsi, Stephanie Allen, Mauricio Rengifo, Oladayo Oyinlola Olatunji. Published by Dafons Songs/Sony/ATV Latin Music Publishing LLC (BMI) and Sony/ATV Music Publishing Allegro (UK) (PRS) both c/o Sony/ATV Music Publishing Canada (SOCAN) / Warner-Tamerlane Publishing Corp. (BMI), Sonic Panda Music (BMI), Mauricio Rengifo Pub Designee (ASCAP), WB Music Corp. (ASCAP) and WARNER/CHAPPELL MUSIC LTD (PRS). All rights on behalf of itself and Mauricio Rengifo Pub Designee administered by WB Music Corp. All rights on behalf of itself and Sonic Panda Music and WARNER/CHAPPELL MUSIC LTD administered by Warner-Tamerlane Publishing Corp. All rights reserved. Used with permission. Courtesy of Universal Music Latino under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "03D09EFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 206.182, + "mapName": "Calypso", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "Calypso_mapContent" + }, + "parentMapName": "Calypso", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "57F1F9FF", + "songColor_1B": "0132ADFF", + "songColor_2A": "FC97C6FF", + "songColor_2B": "F91D88FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Calypso", + "urls": { + "jmcs://jd-contents/Calypso/Calypso_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_AudioPreview.ogg/26ebc2e4fa58d58b86d7132483094ebf.ogg", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_HIGH.vp8.webm/8c5c21bf9cb620201d65ff1e5e182a15.webm", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_HIGH.vp9.webm/4a3d984959e5276d2433cd2b081bf6fc.webm", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_LOW.vp8.webm/64929f248d772b7245c21909565a8b4b.webm", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_LOW.vp9.webm/a058e60d71af5232263856d1e0cd10a8.webm", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_MID.vp8.webm/8de173d9a951e29e6bb2c0ed412da87c.webm", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_MID.vp9.webm/bb7480a27bb134f03ea0e35df7dd5297.webm", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_ULTRA.vp8.webm/fe561dd777fdd7e6341d6c5f48effbd0.webm", + "jmcs://jd-contents/Calypso/Calypso_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Calypso/Calypso_MapPreviewNoSoundCrop_ULTRA.vp9.webm/3d0f35536763f72331b5fd840afb2cff.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "aea0a0ce02bc65286ebac6bb79bccc2c", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Calypso/ps4/Calypso_MAIN_SCENE_ORBIS.zip/aea0a0ce02bc65286ebac6bb79bccc2c.zip", + "version": 2 + }, + "nx": { + "md5": "259c3d8f5993a5eb587e96b21ca9f800", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Calypso/nx/Calypso_MAIN_SCENE_NX.zip/259c3d8f5993a5eb587e96b21ca9f800.zip", + "version": 2 + }, + "pc": { + "md5": "200f3d6e31f31adaf579b2c08e536938", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/calypso_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Candy.json b/justdanceonline-main/maps/Candy.json new file mode 100644 index 0000000000000000000000000000000000000000..d333b562dc8739130ae490fbead9b3d3395f8ab8 --- /dev/null +++ b/justdanceonline-main/maps/Candy.json @@ -0,0 +1,74 @@ +{ + "artist": "Robbie Williams", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Coach_1.png", + "coach2ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Coach_2.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Coach_1.png", + "phoneCoach2ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Coach_2.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/textures/Candy_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22511,44976,67488,90000,112511,134976,157488,180000,202511,224976,247488,269999,292511,314976,337488,359999,382511,404976,427488,449999,472512,494976,517488,539999,562511,584976,607488,629999,652512,674976,697488,719999,742511,764976,787488,809999,832512,854976,877488,899999,922512,944975,967488,989999,1012512,1034976,1057488,1079999,1102512,1124975,1147488,1169999,1192512,1214976,1237488,1259999,1282512,1304975,1327488,1349999,1372512,1394976,1417488],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":488,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/Candy/Candy_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF4500FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "Candy", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2014, + "packages": { + "mapContent": "Candy_mapContent" + }, + "parentMapName": "Candy", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "FF5105FF", + "songColor_1B": "A13100FF", + "songColor_2A": "0F5098FF", + "songColor_2B": "6385ABFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Candy", + "urls": { + "jmcs://jd-contents/Candy/Candy_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/Candy_AudioPreview.ogg", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm", + "jmcs://jd-contents/Candy/Candy_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/Candy_VideoPreview.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "nx": { + "md5": "ac1b9c96f4b9bd7fd697040dab994b90", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Candy/nx/ac1b9c96f4b9bd7fd697040dab994b90.zip", + "version": 1 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/CardiacCaress.json b/justdanceonline-main/maps/CardiacCaress.json new file mode 100644 index 0000000000000000000000000000000000000000..58534bfee88f6267f1fc69a02f7ded2abd13086c --- /dev/null +++ b/justdanceonline-main/maps/CardiacCaress.json @@ -0,0 +1,97 @@ +{ + "artist": "Sweat Invaders", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/textures/CardiacCaress_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":410,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":58,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/CardiacCaress/CardiacCaress_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 410, + "mapName": "CardiacCaress", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_LOW.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_MID.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_HIGH.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_ULTRA.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 3, + "packages": { + "mapContent": "CardiacCaress_mapContent" + }, + "parentMapName": "CardiacCaress", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "00B5A3FF", + "songColor_1B": "004039FF", + "songColor_2A": "9AB42DFF", + "songColor_2B": "2E451BFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Cardiac Caress", + "urls": { + "jmcs://jd-contents/CardiacCaress/CardiacCaress_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/CardiacCaress_AudioPreview.ogg", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm", + "jmcs://jd-contents/CardiacCaress/CardiacCaress_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/CardiacCaress_VideoPreview.vp9.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "5a409471f76cf4b31700e61ec04d182f", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/pc/5a409471f76cf4b31700e61ec04d182f.zip", + "version": 1 + }, + "orbis": { + "md5": "21a2b31aeab3185b8957df3c62428ca9", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/ps4/orbis_21a2b31aeab3185b8957df3c62428ca9.zip", + "version": 3 + }, + "nx": { + "md5": "8b8c59437cde03a7763368c8aa381018", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/CardiacCaress/nx/8b8c59437cde03a7763368c8aa381018.zip", + "version": 1 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Carmen.json b/justdanceonline-main/maps/Carmen.json new file mode 100644 index 0000000000000000000000000000000000000000..7a9237e154767f6bcf0a6be523a779971edb7dfe --- /dev/null +++ b/justdanceonline-main/maps/Carmen.json @@ -0,0 +1,130 @@ +{ + "artist": "Just Dance Orchestra", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_banner_bkg.tga.ckd/4e467883d661b37c97b6441866244cf5.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_Coach_1.tga.ckd/25ccd46681bcf217000dbc9c48507ae8.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_Coach_2.tga.ckd/0bc97bbff771babcfe67191072ff9723.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_Cover_Generic.tga.ckd/951c6a5dde8506ef923232f8f5ed677c.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Cover_1024.png/ee53fc5a9ce3e042af32d0035e03db0e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_Cover_Online.tga.ckd/2414d2b00c5de07c137d9fd1b05b3434.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_Cover_AlbumBkg.tga.ckd/c9af9c164092d563ee769327fbe67e79.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_Cover_AlbumCoach.tga.ckd/9d52bffc81aee9d4ac03b3185f75bb99.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Coach_1_Phone.png/ae8d048647c58ef254cbe9f8ef934bc5.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Coach_2_Phone.png/80f25531a0c9e7c66d752aed0b4dc600.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Cover_Phone.jpg/e22b6c6b9d431c2d1d7f8726cd462173.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_VideoPreview.webm/520280c86bf9ecae186c1874628b605a.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_map_bkg.tga.ckd/631de6988b758505b6a057e74b96a951.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_banner_bkg.tga.ckd/02a23569ce44de6d9455315705a299ae.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_Coach_1.tga.ckd/e042aec0b4acf30cac8c4adf5de00390.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_Coach_2.tga.ckd/e4fd7a9d742524c929ca9a92dfdbdf90.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_Cover_Generic.tga.ckd/fc3d338b75a3b1657694523d250a4a7d.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Cover_1024.png/ee53fc5a9ce3e042af32d0035e03db0e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_Cover_Online.tga.ckd/05f93bed39cf0058ba83077418037ab8.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_Cover_AlbumBkg.tga.ckd/19d694b7c74b85cc0a4142ff83c6b7e8.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_Cover_AlbumCoach.tga.ckd/7cd762699a9b54a4fe5fb46efa202286.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Coach_1_Phone.png/ae8d048647c58ef254cbe9f8ef934bc5.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Coach_2_Phone.png/80f25531a0c9e7c66d752aed0b4dc600.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Cover_Phone.jpg/e22b6c6b9d431c2d1d7f8726cd462173.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_VideoPreview.webm/520280c86bf9ecae186c1874628b605a.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_map_bkg.tga.ckd/169bf67abf79e60ca457fe56395d2ab0.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_banner_bkg.tga.ckd/f7befa8a955d90c36dc3590e987f498e.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_Coach_1.tga.ckd/1c688ec1b06c237caa27ac663492a520.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_Coach_2.tga.ckd/0cb39b85779dde9f2eef19fa83ee5075.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_Cover_Generic.tga.ckd/68c2faaf483980e443179bbc396cae95.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Cover_1024.png/ee53fc5a9ce3e042af32d0035e03db0e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_Cover_Online.tga.ckd/4a989b0e2e03ad4466c91d33b30a2372.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_Cover_AlbumBkg.tga.ckd/c635b4e2c3beee9891f44196614e91f5.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_Cover_AlbumCoach.tga.ckd/00439f36259141a4806dbc414d043f86.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Coach_1_Phone.png/ae8d048647c58ef254cbe9f8ef934bc5.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Coach_2_Phone.png/80f25531a0c9e7c66d752aed0b4dc600.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_Cover_Phone.jpg/e22b6c6b9d431c2d1d7f8726cd462173.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_VideoPreview.webm/520280c86bf9ecae186c1874628b605a.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24192,48432,71568,93552,115344,137136,158880,180672,202464,224304,246096,267888,289728,311520,333312,355152,376896,398688,420480,442224,464016,485808,507600,529344,551088,572784,594528,616271,638927,661583,684239,706895,728879,750863,772799,794783,816767,838703,860687,882623,905327,928031,950735,973439,995567,1017695,1039775,1061903,1083839,1105775,1127663,1149599,1171535,1193471,1215359,1237295,1259518,1281790,1303438,1325086,1347886,1370686,1393486,1416286,1438750],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-14,\"endBeat\":278,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":65,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/carmen/carmen_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Georges Bizet. Published by APM Music. Courtesy of APM Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 140.373, + "mapName": "Carmen", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Carmen_mapContent" + }, + "parentMapName": "Carmen", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "D71818FF", + "songColor_1B": "2E000FFF", + "songColor_2A": "FFE540FF", + "songColor_2B": "E2AD73FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "HallOfFame", + "CnUnlimited2018" + ], + "title": "Carmen (Ouverture)", + "urls": { + "jmcs://jd-contents/Carmen/Carmen_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_AudioPreview.ogg/8e96140a311899c62c22dc4b81650dff.ogg", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_HIGH.vp8.webm/2bb2484970ab4c7515aaa1ecb111d131.webm", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_HIGH.vp9.webm/f378129dfcd801c79a800c8b80477e63.webm", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_LOW.vp8.webm/d18d5eb99f56d68b135b063ff74b7c46.webm", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_LOW.vp9.webm/373df6b53d874cd6607c1bd2f5c9d858.webm", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_MID.vp8.webm/82c1f86bcbcde52775fce5e65cb80665.webm", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_MID.vp9.webm/50d954d43fa7fd297ad63d4716708f1d.webm", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_ULTRA.vp8.webm/bbcbfa4f30a82963b1630fbe0417837f.webm", + "jmcs://jd-contents/Carmen/Carmen_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Carmen/Carmen_MapPreviewNoSoundCrop_ULTRA.vp9.webm/5fce3c9d0a5042b1c3d73850a1573f98.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "17d079d0921eaf1b4c5314704903a777", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Carmen/ps4/Carmen_MAIN_SCENE_ORBIS.zip/17d079d0921eaf1b4c5314704903a777.zip", + "version": 5 + }, + "nx": { + "md5": "8328ef1eec477bc5233661a41b1d362d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Carmen/nx/Carmen_MAIN_SCENE_NX.zip/8328ef1eec477bc5233661a41b1d362d.zip", + "version": 4 + }, + "pc": { + "md5": "2523d95055775f513385a21f599a5b26", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Carmen/pc/Carmen_MAIN_SCENE_PC.zip/2523d95055775f513385a21f599a5b26.zip", + "version": 2 + }, + "wiiu": { + "md5": "1c0f94e41db99e8e2cc4937c5673bb71", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Carmen/wiiu/Carmen_MAIN_SCENE_WIIU.zip/1c0f94e41db99e8e2cc4937c5673bb71.zip", + "version": 5 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/CarpetKids.json b/justdanceonline-main/maps/CarpetKids.json new file mode 100644 index 0000000000000000000000000000000000000000..3e13520ab4357d804e42c2455176020ad73813e4 --- /dev/null +++ b/justdanceonline-main/maps/CarpetKids.json @@ -0,0 +1,93 @@ +{ + "artist": "Persian Nights", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_banner_bkg.jpg/056bfcb4bf615a6cd2b4397f6f43fa41.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Coach_1.png/509896c07b4775572687fbd6e5ee12a7.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_Generic.jpg/5810e3b3b54c6259baf145a9cc6f6f0f.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_Online.jpg/ce4652b8b4b7da22e10bf43145a2a7ac.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_AlbumBkg.jpg/e165b1620b320e2c98505e162084105b.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_AlbumCoach.png/2f76494d744ddce0db18d28a68d50361.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Coach_1_Phone.png/1afdeb40295605429fdb58fe01c29c49.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_Phone.jpg/ce4652b8b4b7da22e10bf43145a2a7ac.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_banner_bkg.jpg/056bfcb4bf615a6cd2b4397f6f43fa41.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Coach_1.png/509896c07b4775572687fbd6e5ee12a7.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_Generic.jpg/5810e3b3b54c6259baf145a9cc6f6f0f.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_Online.jpg/ce4652b8b4b7da22e10bf43145a2a7ac.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_AlbumBkg.jpg/e165b1620b320e2c98505e162084105b.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_AlbumCoach.png/2f76494d744ddce0db18d28a68d50361.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Coach_1_Phone.png/1afdeb40295605429fdb58fe01c29c49.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/CarpetKids/CarpetKids_Cover_Phone.jpg/ce4652b8b4b7da22e10bf43145a2a7ac.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28800,57600,86400,115200,144000,172800,201600,230400,259200,288000,316801,345601,374401,403201,432001,460801,489601,518401,547201,576001,604801,633601,662401,691201,720001,748801,777601,806401,835202,864002,892802,921602,950402,979202,1008002,1036802,1065602,1094402,1123202,1152002,1180802,1209602,1238402,1267202,1296002,1324802,1353602,1382403,1411203],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-1,\"endBeat\":200,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":49,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/carpetkids/carpetkids_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Composed, produced, engineered and mixed by Steve Ouimette. Published by Ubisoft Music Publishing. All instruments - Steve Ouimette. Flute - Mark Visher. Courtesy of Ubisoft Music.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FE67E2FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 124.854, + "mapName": "CarpetKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "CarpetKids_mapContent" + }, + "parentMapName": "CarpetKids", + "skuIds": [], + "songColors": { + "songColor_1A": "4D1073FF", + "songColor_1B": "F3DBC4FF", + "songColor_2A": "D567E3FF", + "songColor_2B": "24DAF4FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "KidsOnly", + "ChairTutorial", + "subscribedSong" + ], + "title": "Flying Carpet", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "5dfd00b7ab69d88baad6bb58b64c4baf", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/ps4/CarpetKids_MAIN_SCENE_ORBIS.zip/5dfd00b7ab69d88baad6bb58b64c4baf.zip", + "version": 1 + }, + "nx": { + "md5": "bc399fdf2ea204d0e4cc85fffc7e0460", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/nx/CarpetKids_MAIN_SCENE_NX.zip/bc399fdf2ea204d0e4cc85fffc7e0460.zip", + "version": 1 + }, + "pc": { + "md5": "e78b884217a413138a21fcfa08a05f1d", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/CarpetKids/pc/e78b884217a413138a21fcfa08a05f1d.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939, + "urls": { + "jmcs://jd-contents/CarpetKids/CarpetKids_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_AudioPreview.ogg/7ca8531378decb8f605edb3f041f0b10.ogg", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/7522ac1290fde922c9206ea9c01a88e3.webm", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/a08df0630a088d3803617dc036c32e49.webm", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_LOW.vp8.webm/e6ebfd565838b792ca0b4776d4ec4cfb.webm", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_LOW.vp9.webm/97fabfd12bf3e401f3aab1a4a79258cb.webm", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_MID.vp8.webm/83c4f27a98a389a2865b2f61d9e10b0a.webm", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_MID.vp9.webm/4ec25e1093bcd00a1fce8bd719154acc.webm", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/faef2fcbffea02205a6808626d50ccea.webm", + "jmcs://jd-contents/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/CarpetKids/CarpetKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/4842ca327afcbe44e7b6909695d25453.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Chantaje.json b/justdanceonline-main/maps/Chantaje.json new file mode 100644 index 0000000000000000000000000000000000000000..1ade7f312f26b437a23a8ed3493187ffc79b8649 --- /dev/null +++ b/justdanceonline-main/maps/Chantaje.json @@ -0,0 +1,130 @@ +{ + "artist": "Shakira ft. Maluma", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_banner_bkg.tga.ckd/79fbaca3ada7c81a3b27f69681ecbb2e.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_Coach_1.tga.ckd/9ec72044798a385a6e47de13f6b7196b.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_Coach_2.tga.ckd/bfb68883d010a269bcdcc1a0614109c0.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_Cover_Generic.tga.ckd/3cd15d8487c71b82871f736aa57dc3e7.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Cover_1024.png/d05ea52bf83d01e848f9d018457c2292.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_Cover_Online.tga.ckd/5cc15276ce615ec14bc6586d16ad3d86.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_Cover_AlbumBkg.tga.ckd/ecdc69c7741d6c6cc7e6cb81b2b36eef.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_Cover_AlbumCoach.tga.ckd/50e290db0ad3a0bca17995f929acb9eb.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Coach_1_Phone.png/8256db6e3cf150d5e19845413c015b96.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Coach_2_Phone.png/5b5652f131afdddbb81660e843ec66b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Cover_Phone.jpg/685db64eb3d7162eaa31bc6df8c1c5bd.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_VideoPreview.webm/b93e272de18ca66ebf104810fdf5645e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_map_bkg.tga.ckd/fc7ffeab87455e94a1f39632095f0218.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_banner_bkg.tga.ckd/4a152517cfe41b141a1ac2ac757b6b0a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_Coach_1.tga.ckd/0073ed46a750ffc155ff6628097e6703.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_Coach_2.tga.ckd/ba66638382c6acc14261f904fadbdaca.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_Cover_Generic.tga.ckd/4f36133217abf82b1089646f6df17a49.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Cover_1024.png/d05ea52bf83d01e848f9d018457c2292.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_Cover_Online.tga.ckd/3d7a45c71c350822f6fc49810007679a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_Cover_AlbumBkg.tga.ckd/a6e1db8c3905005e0c5057816a6a07f0.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_Cover_AlbumCoach.tga.ckd/2daa6cfc0607aac1771bec79f174cf4c.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Coach_1_Phone.png/8256db6e3cf150d5e19845413c015b96.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Coach_2_Phone.png/5b5652f131afdddbb81660e843ec66b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Cover_Phone.jpg/685db64eb3d7162eaa31bc6df8c1c5bd.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_VideoPreview.webm/b93e272de18ca66ebf104810fdf5645e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_map_bkg.tga.ckd/a973906d1dc7709f4c80ccdedb112bf6.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_banner_bkg.tga.ckd/3c3042bd5ba2d3c449cfe0a165dc1da6.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_Coach_1.tga.ckd/4d25942796ddec7d12e02b1d3e9e25ad.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_Coach_2.tga.ckd/b0e8aaced01ab3c5194b16d5fc545fb5.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_Cover_Generic.tga.ckd/40c418592ebca02a1fa54a0ea0a0e740.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Cover_1024.png/d05ea52bf83d01e848f9d018457c2292.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_Cover_Online.tga.ckd/eb8bc01874516311034081a1ff0e0f56.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_Cover_AlbumBkg.tga.ckd/81891e90bc6a4495924662ba4a98849d.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_Cover_AlbumCoach.tga.ckd/e7bc3a60e4899d7ceb548d6497c43ef4.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Coach_1_Phone.png/8256db6e3cf150d5e19845413c015b96.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Coach_2_Phone.png/5b5652f131afdddbb81660e843ec66b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_Cover_Phone.jpg/685db64eb3d7162eaa31bc6df8c1c5bd.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_VideoPreview.webm/b93e272de18ca66ebf104810fdf5645e.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28224,56448,84672,112944,141168,169392,197616,225888,254112,282336,310560,338832,367056,395280,423504,451776,480000,508224,536448,564672,592944,621168,649392,677616,705888,734113,762337,790561,818833,847057,875281,903505,931777,960001,988225,1016449,1044673,1072945,1101169,1129393,1157617,1185889,1214113,1242337,1270561,1298833,1327057,1355281,1383505,1411777],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-6,\"endBeat\":331,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":50,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/chantaje/chantaje_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Kevin Mauricio Jimenez Londono, Bryan Snaider Lezcano Chaverra, Shakira Mebarak, Joel Antonio and Juan Luis Londono. Published by Rude Boyz Music / Sony/ATV Accorde (ASCAP) and MyMPM Music / Sony/ATV Melody (BMI) c/o Sony/ATV Music Publishing Canada (SOCAN). All rights reserved. Used with permission. Courtesy of SME U.S. Latin, LLC. By arrangement with Sony Music Licensing. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "6F1CC4FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 198.23499999999999, + "mapName": "Chantaje", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Chantaje_mapContent" + }, + "parentMapName": "Chantaje", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "FF4582FF", + "songColor_1B": "320033FF", + "songColor_2A": "FFA100FF", + "songColor_2B": "880056FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "LatinCorner", + "CnUnlimited2018" + ], + "title": "Chantaje", + "urls": { + "jmcs://jd-contents/Chantaje/Chantaje_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_AudioPreview.ogg/1d3e829d41ca12355ff06b33e5d67159.ogg", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_HIGH.vp8.webm/24bf5c141e4738acc6935cba9b0a6a4f.webm", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_HIGH.vp9.webm/0377b62cbe1d477c4d3a6dcf007e0ec0.webm", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_LOW.vp8.webm/2420ba8d01411aa36935648fd8fdef9d.webm", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_LOW.vp9.webm/3b456765484e354f960d7549d2e5c5c7.webm", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_MID.vp8.webm/a3cdf21e80d2b40f0f0c53bf4e3fe233.webm", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_MID.vp9.webm/623084415cf5a637ed15921ab6897c31.webm", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_ULTRA.vp8.webm/6333068aad17988e8b60d428952d4e6d.webm", + "jmcs://jd-contents/Chantaje/Chantaje_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chantaje/Chantaje_MapPreviewNoSoundCrop_ULTRA.vp9.webm/18b3b1bf7e441f4bb920f7db34c674a0.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "e4a3f52bd241b755f7c601065af4f3c4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Chantaje/ps4/Chantaje_MAIN_SCENE_ORBIS.zip/e4a3f52bd241b755f7c601065af4f3c4.zip", + "version": 3 + }, + "nx": { + "md5": "03727c8a49dcf8e822dd3cd15b1a6e0f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Chantaje/nx/Chantaje_MAIN_SCENE_NX.zip/03727c8a49dcf8e822dd3cd15b1a6e0f.zip", + "version": 3 + }, + "pc": { + "md5": "047a8dbe10a1b46e91ae536d70ba0404", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Chantaje/pc/047a8dbe10a1b46e91ae536d70ba0404.zip", + "version": 1 + }, + "wiiu": { + "md5": "f6b10f157fcc39845bcd169843720785", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Chantaje/wiiu/Chantaje_MAIN_SCENE_WIIU.zip/f6b10f157fcc39845bcd169843720785.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/ChantajeALT.json b/justdanceonline-main/maps/ChantajeALT.json new file mode 100644 index 0000000000000000000000000000000000000000..015ec462110bb34eb0f0ec879e991be6c4ea4a2f --- /dev/null +++ b/justdanceonline-main/maps/ChantajeALT.json @@ -0,0 +1,137 @@ +{ + "artist": "Shakira ft. Maluma", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_banner_bkg.tga.ckd/63cdf3301f377b8edd95337f5c40dd32.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_Coach_1.tga.ckd/e142b8dd0214660b5db7d638e9e141b1.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_Coach_2.tga.ckd/cd653a11ef2cef87ffa6b2b12593f5fe.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_Coach_3.tga.ckd/b088b6dd8813a59dc7bacffe819ba875.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_Cover_Generic.tga.ckd/c9b0d89c8d19d4af3356a02e6dfe3eca.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Cover_1024.png/7228fb9c1f352cb5dbb08f0d3391247c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_Cover_Online.tga.ckd/c07eeb56ab6c3f69233c5b8bae931828.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_Cover_AlbumBkg.tga.ckd/2a982bb4f689eb38f2394c2a42587cf8.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_Cover_AlbumCoach.tga.ckd/0516ab722273fff3bd60377184d7ddca.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_1_Phone.png/bba38f540f9650648eacbac7346a6a41.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_2_Phone.png/444454dc69aee6338af4c7656d1191c1.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_3_Phone.png/d98a62f9abf803fc5e526d5968daacbd.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Cover_Phone.jpg/48fefab0117cc5c70a39390348bc430d.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_VideoPreview.webm/4118d166471b98a2ce803cb3b8724cba.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_map_bkg.tga.ckd/92a88c83019786d3f126b60f125758ff.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_banner_bkg.tga.ckd/c688a0beefd1a81fa6a481d8b16b1b30.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_Coach_1.tga.ckd/a2a18071f8878c3195e61adf7155ac30.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_Coach_2.tga.ckd/8eb484fda7a84e84f405ec9ce60ccfd1.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_Coach_3.tga.ckd/a53d139ffa4316d7625c54dbfcc8a636.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_Cover_Generic.tga.ckd/81cf76a7f5323a6f84362706b2f4179a.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Cover_1024.png/7228fb9c1f352cb5dbb08f0d3391247c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_Cover_Online.tga.ckd/a4c65fd4adce49462beb8d9f50a8afca.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_Cover_AlbumBkg.tga.ckd/10845f5060214871dea0bdb5ea07f0f9.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_Cover_AlbumCoach.tga.ckd/b4a8855595d9900438d70bd5b5f54164.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_1_Phone.png/bba38f540f9650648eacbac7346a6a41.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_2_Phone.png/444454dc69aee6338af4c7656d1191c1.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_3_Phone.png/d98a62f9abf803fc5e526d5968daacbd.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Cover_Phone.jpg/48fefab0117cc5c70a39390348bc430d.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_VideoPreview.webm/4118d166471b98a2ce803cb3b8724cba.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_map_bkg.tga.ckd/015d055448c2e5a0814d350e56c0b243.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_banner_bkg.tga.ckd/450676ef5df3068d69e03bc320c97dfe.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_Coach_1.tga.ckd/540b50d8875739d2d2f9c12333390f72.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_Coach_2.tga.ckd/7c53449c0a677127210ecb41fb702677.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_Coach_3.tga.ckd/2da39d6dbecdc8211dd719835413e879.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_Cover_Generic.tga.ckd/c3c5f073cbf49e2afd35c8ce518a505d.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Cover_1024.png/7228fb9c1f352cb5dbb08f0d3391247c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_Cover_Online.tga.ckd/5106ebe7ea085370831872a7361eeb12.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_Cover_AlbumBkg.tga.ckd/14e5709daabe8d8f81aa24a17fc07775.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_Cover_AlbumCoach.tga.ckd/7ba93045f890c9d8e2a43b89e5c7f796.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_1_Phone.png/bba38f540f9650648eacbac7346a6a41.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_2_Phone.png/444454dc69aee6338af4c7656d1191c1.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Coach_3_Phone.png/d98a62f9abf803fc5e526d5968daacbd.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_Cover_Phone.jpg/48fefab0117cc5c70a39390348bc430d.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_VideoPreview.webm/4118d166471b98a2ce803cb3b8724cba.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28224,56448,84672,112944,141168,169392,197616,225840,254112,282336,310560,338784,367056,395280,423504,451728,480000,508224,536448,564672,592945,621169,649393,677617,705841,734113,762337,790561,818785,847057,875281,903505,931729,960001,988225,1016449,1044673,1072945,1101169,1129393,1157617,1185841,1214113,1242337,1270561,1298785,1327057,1355281,1383505,1411729],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-10,\"endBeat\":332,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":50,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/chantajealt/chantajealt_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Kevin Mauricio Jimenez Londono, Bryan Snaider Lezcano Chaverra, Shakira Mebarak, Joel Antonio and Juan Luis Londono. Published by Rude Boyz Music / Sony/ATV Accorde (ASCAP) and MyMPM Music / Sony/ATV Melody (BMI) c/o Sony/ATV Music Publishing Canada (SOCAN). All rights reserved. Used with permission. Courtesy of SME U.S. Latin, LLC. By arrangement with Sony Music Licensing. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "F71670FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 201.176, + "mapName": "ChantajeALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "ChantajeALT_mapContent" + }, + "parentMapName": "Chantaje", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "C31C5FFF", + "songColor_1B": "490822FF", + "songColor_2A": "F3F993FF", + "songColor_2B": "0098B3FF" + }, + "status": 9, + "sweatDifficulty": 1, + "tags": [ + "Alternate", + "Chair2Tutorial", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Chantaje", + "urls": { + "jmcs://jd-contents/ChantajeALT/ChantajeALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_AudioPreview.ogg/0dbf61f20e182f29a6c20ad3ea5926a0.ogg", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/2dfcebd9c2c1c44c9294f247ac1b41ad.webm", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/aff724430bd7838b3563e308d4a45d67.webm", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_LOW.vp8.webm/a040564cfc3132dca788f8cd417d5756.webm", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_LOW.vp9.webm/d13b2c227a8e010309c88f1b12203ebe.webm", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_MID.vp8.webm/097f8a2fd5699f2fb26556ea2e1c9f12.webm", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_MID.vp9.webm/095c8eee841dcee46ad43196272b526a.webm", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/4dce4101ef46fa0c93ed16f01b7a2279.webm", + "jmcs://jd-contents/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ChantajeALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/f47480442bf6b9c1329f368851b9e274.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "e0e8e9a66f9df3d5a4508ce3dae57da6", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ChantajeALT/ps4/ChantajeALT_MAIN_SCENE_ORBIS.zip/e0e8e9a66f9df3d5a4508ce3dae57da6.zip", + "version": 3 + }, + "nx": { + "md5": "fa5a2ebfcf23b83b60e0f3b4516b852e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ChantajeALT/nx/ChantajeALT_MAIN_SCENE_NX.zip/fa5a2ebfcf23b83b60e0f3b4516b852e.zip", + "version": 3 + }, + "pc": { + "md5": "438d54a7b416d3f174f1c26cb5fe5718", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/ChantajeALT/pc/438d54a7b416d3f174f1c26cb5fe5718.zip", + "version": 1 + }, + "wiiu": { + "md5": "3f70fcb92b4d5dae4ecc2a288b6ff1ab", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ChantajeALT/wiiu/ChantajeALT_MAIN_SCENE_WIIU.zip/3f70fcb92b4d5dae4ecc2a288b6ff1ab.zip", + "version": 3 + } + }, + "mapType": "jdu", + "customTypeNameId": 14526 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/ChasmonauteKids.json b/justdanceonline-main/maps/ChasmonauteKids.json new file mode 100644 index 0000000000000000000000000000000000000000..828eacee3fc76007fad0749f8027c4bd03d4945a --- /dev/null +++ b/justdanceonline-main/maps/ChasmonauteKids.json @@ -0,0 +1,92 @@ +{ + "artist": "Equinox Stars", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_banner_bkg.jpg/23ef2f5ec1ca7f5ef488f7a37496c135.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Coach_1.png/df8a4cec69004319a103cc3062302420.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_Generic.jpg/ba47c02bcf4926e9e843abc996b2e3a5.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_Online.jpg/504c1f4e887cfda06381cc8513749362.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_AlbumCoach.png/a9cda640d75c782d9af467b0c155ceb7.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Coach_1_Phone.png/646670165c831b782296f56263812ee1.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_Phone.jpg/504c1f4e887cfda06381cc8513749362.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_banner_bkg.jpg/23ef2f5ec1ca7f5ef488f7a37496c135.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Coach_1.png/df8a4cec69004319a103cc3062302420.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_Generic.jpg/ba47c02bcf4926e9e843abc996b2e3a5.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_Online.jpg/504c1f4e887cfda06381cc8513749362.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_AlbumCoach.png/a9cda640d75c782d9af467b0c155ceb7.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Coach_1_Phone.png/646670165c831b782296f56263812ee1.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ChasmonauteKids/ChasmonauteKids_Cover_Phone.jpg/504c1f4e887cfda06381cc8513749362.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,24000,48000,72000,96000,120000,144000,168000,192000,216000,240000,264000,288000,312000,336000,360000,384000,408000,432000,456000,480000,504000,528000,552000,576000,600000,624000,648000,672000,696000,720000,744000,768000,792000,816000,840000,864000,888000,912000,936000,960000,984000,1008000,1032000,1056000,1080000,1104000,1128000,1152000,1176000,1200000,1224000,1248000,1272000,1296000,1320000,1344000,1368000,1392000,1416000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":240,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":59,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/chasmonautekids/chasmonautekids_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Christian Marsac. Published by Audio Network Canada Inc. Courtesy of Audio Network Canada Inc.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FE47FEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 121.5, + "mapName": "ChasmonauteKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "ChasmonauteKids_mapContent" + }, + "parentMapName": "ChasmonauteKids", + "skuIds": [], + "songColors": { + "songColor_1A": "009EFCFF", + "songColor_1B": "461ACAFF", + "songColor_2A": "3D0FC3FF", + "songColor_2B": "0035B6FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "KidsOnly", + "subscribedSong" + ], + "title": "Space Cat", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "cf920c330fa23e294f7ce78300cf6c45", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ps4/ChasmonauteKids_MAIN_SCENE_ORBIS.zip/cf920c330fa23e294f7ce78300cf6c45.zip", + "version": 1 + }, + "nx": { + "md5": "c5c95550adbb9535c002e0283d3a0811", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/nx/ChasmonauteKids_MAIN_SCENE_NX.zip/c5c95550adbb9535c002e0283d3a0811.zip", + "version": 1 + }, + "pc": { + "md5": "a840079973d3f10f81cef54042bfd205", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/ChasmonauteKids/pc/a840079973d3f10f81cef54042bfd205.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939, + "urls": { + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_AudioPreview.ogg/967dbfc83aa8edaf11ee24046ca724e6.ogg", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/f8ff25d3ab07cd1f476d1a05c46779a3.webm", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/e73ccf89d2eb5d5a2e73cd90c37df75a.webm", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_LOW.vp8.webm/a261f3fd02401b46065c7cdf691f9b19.webm", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_LOW.vp9.webm/59671885aa758f30fa83ceed4b971c8c.webm", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_MID.vp8.webm/a8960535af67192f8c90660383d7cf97.webm", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_MID.vp9.webm/ef7c96b8fb8c57245752ac53cf564244.webm", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/c018446f8a7a576101a3e4c0c13f25f2.webm", + "jmcs://jd-contents/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/ChasmonauteKids/ChasmonauteKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/fdc27557f33232e51514fb0ca2d74241.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Chiwawa.json b/justdanceonline-main/maps/Chiwawa.json new file mode 100644 index 0000000000000000000000000000000000000000..5574bfcc4fe74f14f62fec05f317d5aef2a0b623 --- /dev/null +++ b/justdanceonline-main/maps/Chiwawa.json @@ -0,0 +1,120 @@ +{ + "artist": "Wanko Ni Mero Mero", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_banner_bkg.jpg/ceb243a713526f64d7ac4e8bfc6141be.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Coach_1.png/644b501f83fc63190784d3ed7d8c7dde.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_Generic.jpg/34e50d7c75ee1cfabde066c3a245c065.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_1024.png/46586d5ab059f1a70517296f057f80ab.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_Online.jpg/a6d6fe5cdf7babbf8c3341060b2f4fa0.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_AlbumBkg.jpg/cfc749f86490d8383d72cdc3593f6ac0.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_AlbumCoach.png/1c54c764a0a47e24624bdf5782a5db9c.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Coach_1_Phone.png/ac3e7e78aea183eaa0ff537b8e24f84b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_Phone.jpg/a6d6fe5cdf7babbf8c3341060b2f4fa0.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_banner_bkg.jpg/ceb243a713526f64d7ac4e8bfc6141be.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Coach_1.png/644b501f83fc63190784d3ed7d8c7dde.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_Generic.jpg/34e50d7c75ee1cfabde066c3a245c065.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_1024.png/46586d5ab059f1a70517296f057f80ab.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_Online.jpg/a6d6fe5cdf7babbf8c3341060b2f4fa0.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_AlbumBkg.jpg/cfc749f86490d8383d72cdc3593f6ac0.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_AlbumCoach.png/1c54c764a0a47e24624bdf5782a5db9c.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Coach_1_Phone.png/ac3e7e78aea183eaa0ff537b8e24f84b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_Phone.jpg/a6d6fe5cdf7babbf8c3341060b2f4fa0.jpg" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/wiiu/Chiwawa_banner_bkg.tga.ckd/2083f3f57654adbd6312b4047d237161.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/wiiu/Chiwawa_Coach_1.tga.ckd/81e8937781e0b6cd0b6638df1b36623b.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/wiiu/Chiwawa_Cover_Generic.tga.ckd/459e77fa631b0238bb13964ebed17ed7.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_1024.png/46586d5ab059f1a70517296f057f80ab.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/wiiu/Chiwawa_Cover_Online.tga.ckd/09408fae1e0c0d5283a3b9230a9b3d74.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/wiiu/Chiwawa_Cover_AlbumBkg.tga.ckd/b86804d100f9eeb5968da45faeff73b6.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/wiiu/Chiwawa_Cover_AlbumCoach.tga.ckd/38887e11f2b6795799b7854d62e5208f.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Coach_1_Phone.png/ac3e7e78aea183eaa0ff537b8e24f84b.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_Cover_Phone.jpg/a6d6fe5cdf7babbf8c3341060b2f4fa0.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22512,45024,67488,90000,112512,135023,157487,179999,202511,225023,247487,269999,292511,315023,337487,359999,382511,405023,427487,449999,472510,495022,517486,539998,562510,585022,607486,629998,652510,675022,697486,719998,742510,765022,787486,809997,832509,855021,877485,899997,922509,945021,967485,989997,1012509,1035021,1057485,1079997,1102509,1125021,1147484,1169996,1192508,1215020,1237484,1259996,1282508,1305020,1327484,1349996,1372508,1395020,1417484,1439996],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":362,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":64,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/chiwawa/chiwawa_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Reni Mimura and Tom Salta. Published by Ubisoft Music Publishing. Courtesy of Ubisoft Music. Produced and performed by Tom Salta. Vocals by Reni Mimura, Tom Salta, anonymous cats and dogs. Music supervision - Manu Bachet and Alkis Argyriadis. No animal were harmed in the making of this song. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "3C2DFFFF", + "lyricsType": 1, + "mainCoach": -1, + "mapLength": 171.563, + "mapName": "Chiwawa", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "Chiwawa_mapContent" + }, + "parentMapName": "Chiwawa", + "skuIds": [ + "jd2017-nx-all", + "jd2016-ps4-scea", + "jd2016-ps4-scee", + "jd2016-wiiu-noa", + "jd2016-wiiu-noe", + "jd2016-xone-emea", + "jd2016-xone-ncsa" + ], + "songColors": { + "songColor_1A": "5CD0FFFF", + "songColor_1B": "0049B4FF", + "songColor_2A": "FFACF7FF", + "songColor_2B": "EE59FFFF" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Extreme", + "Main", + "subscribedSong", + "EasyPeasy", + "HallOfFame" + ], + "title": "Chiwawa", + "urls": { + "jmcs://jd-contents/Chiwawa/Chiwawa_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_AudioPreview.ogg/5cfacc84fa35c81423f166fb6735d0d0.ogg", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_HIGH.vp8.webm/777a3567ededcdcc406513faf40b74d2.webm", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_HIGH.vp9.webm/0ff236a3f3199437ed5de0e747cbfe6a.webm", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_LOW.vp8.webm/b84390fac3ee7283e6d57a42ec45833e.webm", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_LOW.vp9.webm/462a449d0a8ed8d71df5b2ee80916f35.webm", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_MID.vp8.webm/662a7a0032deb725ba780d2587b53e69.webm", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_MID.vp9.webm/f5232dbd59f15f9e966fab82ef0b3393.webm", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_ULTRA.vp8.webm/a0079977f9b1bea1045ddcf55a7ce1bb.webm", + "jmcs://jd-contents/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Chiwawa/Chiwawa_MapPreviewNoSoundCrop_ULTRA.vp9.webm/c1ca8123c4390211f3556c24a21060b8.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "8d4cc8821b1de8de091406e086e150c4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Chiwawa/ps4/Chiwawa_MAIN_SCENE_ORBIS.zip/8d4cc8821b1de8de091406e086e150c4.zip", + "version": 34 + }, + "nx": { + "md5": "af61f41ece0b5d5f99c8b8590d8369b3", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Chiwawa/nx/Chiwawa_MAIN_SCENE_NX.zip/af61f41ece0b5d5f99c8b8590d8369b3.zip", + "version": 27 + }, + "pc": { + "md5": "08ef4dc234b3dcfb4319706467f1879e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Chiwawa/pc/Chiwawa_MAIN_SCENE_PC.zip/08ef4dc234b3dcfb4319706467f1879e.zip", + "version": 6 + }, + "wiiu": { + "md5": "0d3500964dfa749a4493213da5d9dd95", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Chiwawa/wiiu/Chiwawa_MAIN_SCENE_WIIU.zip/0d3500964dfa749a4493213da5d9dd95.zip", + "version": 32 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Circus.json b/justdanceonline-main/maps/Circus.json new file mode 100644 index 0000000000000000000000000000000000000000..00afbec5234f8630ad9ea0f7895d40d52cb0e5f4 --- /dev/null +++ b/justdanceonline-main/maps/Circus.json @@ -0,0 +1,132 @@ +{ + "artist": "Britney Spears", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_banner_bkg.jpg/acd98598730bcddd42347b55d331e3ee.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_1.png/b81c40507153c6b21712ade53c4b0bf5.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_2.png/59a0b751ccb92d27be86e72a0e7dcecf.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_3.png/d2d35fe12a00bbc938d991f8543994eb.png", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_4.png/3c6c9f2c14135d810557e68a13976b78.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_Generic.jpg/692e0e90bc351c0f1791bd4e341e8cfd.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_1024.png/e9c41e5fd480e408a7aca5cbb24bf54c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_Online.jpg/0c818ee5247fbc22a1610be12456ef4a.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_AlbumBkg.jpg/e40ee756fd09ceab64583291ce82bbd6.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_AlbumCoach.png/b1861c2a7f5cf78e6fda6846b5707320.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_1_Phone.png/8b5ab8926a1ad0345716505bf2e4b087.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_2_Phone.png/2c017961b300778722742a01a7e8fb41.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_3_Phone.png/2676c1c915d1b5bf078686bd311e4193.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_4_Phone.png/acb07290331223447ef5e965019eccdd.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_Phone.jpg/0c818ee5247fbc22a1610be12456ef4a.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Circus/Circus_VideoPreview.webm/e490cb749d99dc782bd833ed0e84dab3.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_banner_bkg.jpg/acd98598730bcddd42347b55d331e3ee.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_1.png/b81c40507153c6b21712ade53c4b0bf5.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_2.png/59a0b751ccb92d27be86e72a0e7dcecf.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_3.png/d2d35fe12a00bbc938d991f8543994eb.png", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_4.png/3c6c9f2c14135d810557e68a13976b78.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_Generic.jpg/692e0e90bc351c0f1791bd4e341e8cfd.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_1024.png/e9c41e5fd480e408a7aca5cbb24bf54c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_Online.jpg/0c818ee5247fbc22a1610be12456ef4a.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_AlbumBkg.jpg/e40ee756fd09ceab64583291ce82bbd6.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_AlbumCoach.png/b1861c2a7f5cf78e6fda6846b5707320.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_1_Phone.png/8b5ab8926a1ad0345716505bf2e4b087.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_2_Phone.png/2c017961b300778722742a01a7e8fb41.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_3_Phone.png/2676c1c915d1b5bf078686bd311e4193.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_4_Phone.png/acb07290331223447ef5e965019eccdd.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_Phone.jpg/0c818ee5247fbc22a1610be12456ef4a.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Circus/Circus_VideoPreview.webm/e490cb749d99dc782bd833ed0e84dab3.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_banner_bkg.tga.ckd/d177de19fef6fd6436a7d914d9fcb651.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Coach_1.tga.ckd/81692bd62adebb1b7bf907ea07589c89.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Coach_2.tga.ckd/3fb56676b75094731f331d9bb6e37588.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Coach_3.tga.ckd/eab5b324440d61cd6089430e8f7f6559.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Coach_4.tga.ckd/cc7ddf780ea5f718756e2d88702efbcc.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Cover_Generic.tga.ckd/43112130a83cfa084ce34af046056861.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_1024.png/e9c41e5fd480e408a7aca5cbb24bf54c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Cover_Online.tga.ckd/6b605dd6371155a45d5d9fe45e63cf91.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Cover_AlbumBkg.tga.ckd/eaa0c8be58c34e46d88527a8cc0ec321.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_Cover_AlbumCoach.tga.ckd/827ea72babbc4aa2d823b7f8958220ea.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_1_Phone.png/8b5ab8926a1ad0345716505bf2e4b087.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_2_Phone.png/2c017961b300778722742a01a7e8fb41.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_3_Phone.png/2676c1c915d1b5bf078686bd311e4193.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Coach_4_Phone.png/acb07290331223447ef5e965019eccdd.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Circus/Circus_Cover_Phone.jpg/0c818ee5247fbc22a1610be12456ef4a.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Circus/Circus_VideoPreview.webm/e490cb749d99dc782bd833ed0e84dab3.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,25056,50112,75168,100176,125232,150288,175344,200352,225408,250464,275472,300528,325584,350640,375648,400704,425760,450816,475824,500880,525936,550992,576000,601056,626112,651167,676175,701231,726287,751343,776351,801407,826463,851471,876527,901583,926639,951647,976703,1001759,1026815,1051823,1076879,1101935,1126991,1151999,1177055,1202111,1227167,1252175,1277231,1302287,1327343,1352351,1377407,1402462,1427470],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":363,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":57,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/circus/circus_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "EA4CACFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 190.956, + "mapName": "Circus", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "Circus_mapContent" + }, + "parentMapName": "Circus", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "549D99FF", + "songColor_1B": "041027FF", + "songColor_2A": "EF8912FF", + "songColor_2B": "410044FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Circus", + "urls": { + "jmcs://jd-contents/Circus/Circus_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Circus/Circus_AudioPreview.ogg/98f35fd22a45780500fda2d0460b85f7.ogg", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_HIGH.vp8.webm/22db73cb34bb5137afff8a7555f05a7e.webm", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_HIGH.vp9.webm/af744950981ef5800494abeb03732e52.webm", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_LOW.vp8.webm/703b3d593f800ef83187877ddbddced7.webm", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_LOW.vp9.webm/36daced0a3c5fd593a3970e045e7e31a.webm", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_MID.vp8.webm/abedfc9def2b2c46107baa0748980036.webm", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_MID.vp9.webm/8c899e2cc00a51ba40bfce6ce975d8f6.webm", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_ULTRA.vp8.webm/ba6a6a2938934361c5c1d438471d114a.webm", + "jmcs://jd-contents/Circus/Circus_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Circus/Circus_MapPreviewNoSoundCrop_ULTRA.vp9.webm/f8ef09abcf374ee38f1e562237cd32bb.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "f29c65011cc06f95332f6c09bec4d6a5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Circus/ps4/Circus_MAIN_SCENE_ORBIS.zip/f29c65011cc06f95332f6c09bec4d6a5.zip", + "version": 7 + }, + "pc": { + "md5": "e08ccb0433794ccd13a7ca04e7810b6e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Circus/pc/Circus_MAIN_SCENE_PC.zip/e08ccb0433794ccd13a7ca04e7810b6e.zip", + "version": 4 + }, + "wiiu": { + "md5": "f2fd350a24583963b4aaa25527cd32e0", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Circus/wiiu/Circus_MAIN_SCENE_WIIU.zip/f2fd350a24583963b4aaa25527cd32e0.zip", + "version": 7 + }, + "nx": { + "md5": "08c8134d8aa508adf38305ae31dff643", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Circus/nx/Circus_MAIN_SCENE_NX.zip/08c8134d8aa508adf38305ae31dff643.zip", + "version": 7 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/ComeBackHome.json b/justdanceonline-main/maps/ComeBackHome.json new file mode 100644 index 0000000000000000000000000000000000000000..595b00d75790d4271b2a8918e2ec7fee1fc08e1d --- /dev/null +++ b/justdanceonline-main/maps/ComeBackHome.json @@ -0,0 +1,119 @@ +{ + "artist": "2NE1", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_banner_bkg.tga.ckd/87b1dda54ee6653137e7ace5ebfe9bf7.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Coach_1.tga.ckd/37ffc3693518d568eeca6e460ef4ebdf.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Coach_2.tga.ckd/6c619f580ca48552c04efadb1cd04f8e.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Coach_3.tga.ckd/86f7a86faa810e4d0f1717d18fc00120.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Cover_Generic.tga.ckd/ea5a39538df67a42886eb6cf363bcfbf.ckd", + "coverKidsImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Cover_Generic_Kids.tga.ckd/77bff4518f95c4559700db93908c5651.ckd", + "coverKids_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Cover_Online_Kids.tga.ckd/c4ca419fedeb8233c1f018fde3318e07.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Cover_1024.tga.ckd/5362d5bc48a6a8358a25b6e478523801.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Cover_Online.tga.ckd/819e4a2cfa13cbbb13f197c71083010f.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Cover_AlbumBkg.tga.ckd/90930f06d21511d58bcc13b6eeaea0b7.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_Cover_AlbumCoach.tga.ckd/810f0aeeee87f29f336abbabdc8bc8f2.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_map_bkg.tga.ckd/0492099bf494024867e84f40e4d3b35b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Coach_1_Phone.png/e445b7f82702dc5f72f9e657ca97397d.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Coach_2_Phone.png/95fb34dbf55020e06f4678b4e260fc70.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Coach_3_Phone.png/d313bf54bd9ac15834cac3be49ced8d8.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Cover_Phone.jpg/4a9b12bd1a451ff6e76052b914c78f1e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_VideoPreview.webm/04d7ffd4b38164951cd5c24bc81f3bc2.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_banner_bkg.tga.ckd/dd93d1174f6100867a8c3127e3c9c735.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Coach_1.tga.ckd/edc06a743b38c253a5857d16985847d3.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Coach_2.tga.ckd/3927a4681591b46222639aaa7c05ca03.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Coach_3.tga.ckd/9bf8eb8d4ec940f601395661b9b3fdd4.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Cover_Generic.tga.ckd/84ea77a6419ec7b04a4f26d682ddcb09.ckd", + "coverKidsImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Cover_Generic_Kids.tga.ckd/36ca53f6d270fef78b9d4b344939348e.ckd", + "coverKids_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Cover_Online_Kids.tga.ckd/a74315a9fa4379015a6f46f7628a117b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Cover_1024.tga.ckd/843a0454f0e6d183990752a13489d341.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Cover_Online.tga.ckd/d63c783537d702ab87cdba79cbd256c9.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Cover_AlbumBkg.tga.ckd/e4d9b8830ec68791bd58a687ee3c5f30.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_Cover_AlbumCoach.tga.ckd/8659cd02356b6725e259efeaeab431cc.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_map_bkg.tga.ckd/3cce6e55f1daaae48457bc9484895792.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Coach_1_Phone.png/e445b7f82702dc5f72f9e657ca97397d.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Coach_2_Phone.png/95fb34dbf55020e06f4678b4e260fc70.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Coach_3_Phone.png/d313bf54bd9ac15834cac3be49ced8d8.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_Cover_Phone.jpg/4a9b12bd1a451ff6e76052b914c78f1e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_VideoPreview.webm/04d7ffd4b38164951cd5c24bc81f3bc2.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,38400,76800,115200,153600,192000,230400,268800,307200,345600,384000,422400,460800,499200,537600,576000,614400,652800,691200,729600,768000,806400,844800,883200,921600,960000,998400,1036800,1075200,1113600,1152000,1190400,1228800,1267200,1305600,1344000,1382400,1420800],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":288,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":37,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/comebackhome/comebackhome_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Written by Pil Kang Choi, Daniel Park and Hong Jun Park. Published by Universal Music Publishing Ltd. Courtesy of YG Entertainment Inc. ", + "difficulty": 3, + "jdmAttributes": [], + "lyricsColor": "F3D062FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 232.79999999999998, + "mapName": "ComeBackHome", + "mapType": "jdu", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "ComeBackHome_mapContent" + }, + "parentMapName": "ComeBackHome", + "songColors": { + "songColor_1A": "930098FF", + "songColor_1B": "370039FF", + "songColor_2A": "FF0030FF", + "songColor_2B": "210000FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "Exclusive", + "ExcluJD21_Quickplay " + ], + "title": "Come Back Home", + "urls": { + "jmcs://jd-contents/ComeBackHome/ComeBackHome_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_AudioPreview.ogg/51eefebeb08a3a461cb5bc7962f08321.ogg", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_HIGH.vp8.webm/ee5b095a9363a25cf151ecb7ea33766b.webm", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_HIGH.vp9.webm/cab000c7c88e5650d98b5693d4756681.webm", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_LOW.vp8.webm/6b2e6eba9ea490af4ca8486d6a5364ff.webm", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_LOW.vp9.webm/d23b2284dd9f6017141f449d1601d93c.webm", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_MID.vp8.webm/cf8460ef3af6043fef16c5368bc8aaaf.webm", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_MID.vp9.webm/1d5938c8e080706bc884fb2e6db9aec0.webm", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_ULTRA.vp8.webm/89f3e16df0479424cc9875eb7b6b99ed.webm", + "jmcs://jd-contents/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ComeBackHome_MapPreviewNoSoundCrop_ULTRA.vp9.webm/a56924cf423ceab0c3769b2d05690578.webm" + }, + "searchTags": [], + "searchTagsLocIds": [ + 20002261, + 15277, + 15287, + 15290, + 15299, + 9349, + 15284, + 15189 + ], + "serverChangelist": 0, + "skupackages": { + "pc": { + "md5": "55f0bfada9c1b97f32f709edfc0da4df", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/ComeBackHome/pc/55f0bfada9c1b97f32f709edfc0da4df.zip", + "version": 1 + }, + "nx": { + "md5": "46656271067b3d44a5e9dc38ba2febf1", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ComeBackHome/nx/ComeBackHome_MAIN_SCENE_NX.zip/46656271067b3d44a5e9dc38ba2febf1.zip", + "version": 3 + }, + "orbis": { + "md5": "7bd717c48be9ba4c89f1c7a2b3d9b762", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ComeBackHome/ps4/ComeBackHome_MAIN_SCENE_ORBIS.zip/7bd717c48be9ba4c89f1c7a2b3d9b762.zip", + "version": 3 + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Copperhead.json b/justdanceonline-main/maps/Copperhead.json new file mode 100644 index 0000000000000000000000000000000000000000..6cda3f27661d8e97d6623682a8d76469f1065037 --- /dev/null +++ b/justdanceonline-main/maps/Copperhead.json @@ -0,0 +1,135 @@ +{ + "artist": "Iggy Azalea Ft. Zedd", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_banner_bkg.tga.ckd/39c1bb7d0ba83d5fee4babb291e362f4.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_Coach_1.tga.ckd/72baeff7140038e345631c4d204a90b8.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_Coach_2.tga.ckd/032ab5979dd5f1f89b6d0da93d0d4e1e.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_Coach_3.tga.ckd/b6a26b230f5ce12f39243eea796e9716.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_Cover_Generic.tga.ckd/b70bb889279a24e2865805f3d858888a.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Cover_1024.png/0c39091f8c40f6c4a8040f83572984f0.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_Cover_Online.tga.ckd/be2161e2e7b230a3e8504fb03b232a27.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_Cover_AlbumBkg.tga.ckd/e00b2db29e5e530333c0b83495b81e73.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_Cover_AlbumCoach.tga.ckd/aa2262a98223d67951e73dac9f3d5125.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_1_Phone.png/834cb23a0bbd8a9740a4a96f06fdfdc0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_2_Phone.png/19d6f8082d147f3eac5b6f2848689641.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_3_Phone.png/67cac1724733fd652009e708ca670d21.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Cover_Phone.jpg/66dec48a4fa9671e825016acc7da11e5.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_VideoPreview.webm/0e0c2cabeeb5e655d5870c0409c73e25.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_map_bkg.tga.ckd/5ad032e236906a21d1c55aaf055109ac.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_banner_bkg.tga.ckd/9bdf510e81d4e39849c5c196c288560e.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_Coach_1.tga.ckd/21a081542efa0ed3ac280fe02d376c43.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_Coach_2.tga.ckd/ece571531178d82fd87014bc55e76f2b.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_Coach_3.tga.ckd/d1588f2ef66463ed9bc3b176498e62b1.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_Cover_Generic.tga.ckd/bc12cbcb4e73e218e873bba95dd91018.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Cover_1024.png/0c39091f8c40f6c4a8040f83572984f0.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_Cover_Online.tga.ckd/d7d5cdb951aa4e0eaf8864f9e24f3575.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_Cover_AlbumBkg.tga.ckd/41656ffedd032c9853058e9e3a284616.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_Cover_AlbumCoach.tga.ckd/a6915b06c683bcf409dc1caecdf79747.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_1_Phone.png/834cb23a0bbd8a9740a4a96f06fdfdc0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_2_Phone.png/19d6f8082d147f3eac5b6f2848689641.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_3_Phone.png/67cac1724733fd652009e708ca670d21.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Cover_Phone.jpg/66dec48a4fa9671e825016acc7da11e5.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_VideoPreview.webm/0e0c2cabeeb5e655d5870c0409c73e25.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_map_bkg.tga.ckd/d57a8bfbab908d82e7b34072e4c9fcab.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_banner_bkg.tga.ckd/c63d01a5de8daceeeb238bfbed39d5b2.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_Coach_1.tga.ckd/5cf3ea5c127dff6a54bb3ca20e09d8c5.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_Coach_2.tga.ckd/37738649c51d5b5291b6746a83cff958.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_Coach_3.tga.ckd/364a7c4d5d257acec50818dba073209a.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_Cover_Generic.tga.ckd/009c558087fc81cbf9cd1067a302e580.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Cover_1024.png/0c39091f8c40f6c4a8040f83572984f0.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_Cover_Online.tga.ckd/479ef0045bce1a9eb03e9d6cd9693690.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_Cover_AlbumBkg.tga.ckd/7701715c040255b254b54c49bf13af48.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_Cover_AlbumCoach.tga.ckd/6e4658038759782a64288a2ed2711412.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_1_Phone.png/834cb23a0bbd8a9740a4a96f06fdfdc0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_2_Phone.png/19d6f8082d147f3eac5b6f2848689641.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Coach_3_Phone.png/67cac1724733fd652009e708ca670d21.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_Cover_Phone.jpg/66dec48a4fa9671e825016acc7da11e5.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_VideoPreview.webm/0e0c2cabeeb5e655d5870c0409c73e25.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26208,52368,78576,104736,130896,157104,183264,209472,235632,261840,288001,314209,340369,366577,392737,418897,445105,471265,497473,523633,549841,576001,602209,628369,654577,680737,706898,733106,759266,785474,811634,837842,864002,890210,916370,942578,968738,994898,1021106,1047266,1073474,1099635,1125843,1152003,1178211,1204371,1230579,1256739,1282899,1309107,1335267,1361475,1387635,1413843],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-10,\"endBeat\":344,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":54,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/copperhead/copperhead_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Alexander Palmer, Amethyst Amelia Kelly, Anton Zaslavski, Brandon Salaam-Bailey, Brittany Hazzard, Jeremy Hawkins, Marlon Travis Barrow, Michael J. Fonseca and Priscilla Renae Hamilton. Published by BMG Platinum Songs on behalf of Conrad Music, A Division Of Arc Music Corp. All rights administered by BMG Rights Management (US) LLC. / Grand Hustle Anthems/Sony/ATV Allegro (ASCAP) c/o Sony/ATV Music Publishing Canada (SOCAN). / These Are Songs Of Pulse (ASCAP) and People Over Planes (ASCAP)/ Universal Tunes, A Division Of Songs Of Universal, Inc. on behalf of Itself & Music Of Sheba (SESAC). / The Great O Music / Music Of Radar / Chordz for Spaced Out (ASCAP) administered by Kobalt. / WB Music Corp./Warner Chappell Music Inc. (ASCAP) All rights reserved. Used with permission. Courtesy of Def Jam Recordings under license from Universal Music Enterprises. / Zedd appears courtesy of Interscope Records. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "50BEFAFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 193.09, + "mapName": "Copperhead", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Copperhead_mapContent" + }, + "parentMapName": "Copperhead", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "ED9302FF", + "songColor_1B": "300205FF", + "songColor_2A": "00BFFFFF", + "songColor_2B": "010472FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Boom Boom", + "urls": { + "jmcs://jd-contents/Copperhead/Copperhead_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_AudioPreview.ogg/6afeee512c0d1d5c6b7e82ccb9e51be9.ogg", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_HIGH.vp8.webm/ef1fb177dbf133edc8a739d47cc51da6.webm", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_HIGH.vp9.webm/0f55287b1e6862c72cabb81f9a2cb7ab.webm", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_LOW.vp8.webm/c9e299b0703ef8ab2fa9f2f97da2cf98.webm", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_LOW.vp9.webm/441ea846349219262fc747a937ab8042.webm", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_MID.vp8.webm/3a3598aa3e9bbcc7560cdd3efed9478e.webm", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_MID.vp9.webm/ada643b7fbd663d03ee62d292c37fe06.webm", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_ULTRA.vp8.webm/1a5e18eb46917ecc9e0becd299578134.webm", + "jmcs://jd-contents/Copperhead/Copperhead_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Copperhead/Copperhead_MapPreviewNoSoundCrop_ULTRA.vp9.webm/85a51cd7bf57a7795a7ff31cf925e4cb.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "d83288313c09f7c763ceb3c44676e626", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Copperhead/ps4/Copperhead_MAIN_SCENE_ORBIS.zip/d83288313c09f7c763ceb3c44676e626.zip", + "version": 3 + }, + "nx": { + "md5": "6089fb99571eeaaed4565aab179f492a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Copperhead/nx/Copperhead_MAIN_SCENE_NX.zip/6089fb99571eeaaed4565aab179f492a.zip", + "version": 3 + }, + "pc": { + "md5": "fb9185b84d8d0deea5f7e3946c611d74", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Copperhead/pc/fb9185b84d8d0deea5f7e3946c611d74.zip", + "version": 1 + }, + "wiiu": { + "md5": "01d38a2be5761e630f505bfc1aa45158", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Copperhead/wiiu/Copperhead_MAIN_SCENE_WIIU.zip/01d38a2be5761e630f505bfc1aa45158.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DDUDU.json b/justdanceonline-main/maps/DDUDU.json new file mode 100644 index 0000000000000000000000000000000000000000..35784276625266fca36cf32dc30b17491137ec88 --- /dev/null +++ b/justdanceonline-main/maps/DDUDU.json @@ -0,0 +1,125 @@ +{ + "artist": "BLACKPINK", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_banner_bkg.tga.ckd/5ef152560132817787446816444d98ec.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Coach_1.tga.ckd/89de677efe8db274d0fc38acc5ca6e7b.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Coach_2.tga.ckd/1e1ae08182e5d5a4de0e106b40974806.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Coach_3.tga.ckd/ca1906f8ee7bb2c1487638fad4db5263.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Coach_4.tga.ckd/8ad3b8bdab3c798520c3eef685e245b5.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Cover_Generic.tga.ckd/8cbb8050a15f213b4574c0e5392a6613.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_1024.png/e22a1d2c6d96d7b655621a9faa431b09.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Cover_Online.tga.ckd/8cbb8050a15f213b4574c0e5392a6613.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Cover_AlbumBkg.tga.ckd/a91d875a3651cee60909790f575d07d2.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_Cover_AlbumCoach.tga.ckd/a54725fcc85b5cc427b4720ece35d2e9.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_1_Phone.png/96a8deb9932266b77ffebaaf146b00e1.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_2_Phone.png/97e14af52dbf858affef37176da7ad59.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_3_Phone.png/6a1bc711433410a9a50548a52c06fe01.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_4_Phone.png/86adafb8e0bfca7a1e6ca9c9d5857480.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_Phone.jpg/d679d92d5cf5ae2082d4347b2e24c581.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/ggp/DDUDU_map_bkg.tga.ckd/e570b543c5ff18e208ca981388aa9b3f.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_banner_bkg.tga.ckd/aa8a03cec02680f8800282ad27021101.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Coach_1.tga.ckd/2d43883b35158e6edd9d05902fd318e8.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Coach_2.tga.ckd/eb7b11b6d1ac8d9a35cf61f5ef7ef933.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Coach_3.tga.ckd/c6b3c27ba150d6bfedff3c570364685b.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Coach_4.tga.ckd/abb4509d44a4c49eaa080e08eeae9461.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Cover_Generic.tga.ckd/757c529e71bc1ec0ebc7411a0c246077.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_1024.png/e22a1d2c6d96d7b655621a9faa431b09.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Cover_Online.tga.ckd/62619cecbd7f594cdce0ca65d1855dea.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Cover_AlbumBkg.tga.ckd/1c79faf2957a4e01e7c1698a5672cb8d.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_Cover_AlbumCoach.tga.ckd/a56bdee9160d2258af5e362409253d8c.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_map_bkg.tga.ckd/f6677d8162124f11fd6dcf0386656f17.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_1_Phone.png/96a8deb9932266b77ffebaaf146b00e1.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_2_Phone.png/97e14af52dbf858affef37176da7ad59.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_3_Phone.png/6a1bc711433410a9a50548a52c06fe01.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_4_Phone.png/86adafb8e0bfca7a1e6ca9c9d5857480.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_Phone.jpg/d679d92d5cf5ae2082d4347b2e24c581.jpg" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_banner_bkg.jpg/96de1627aca252e98357f2993f947459.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_1.png/d85991a95dbe725931237fecd2fb936f.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_2.png/5bb5ea8c8fb7e7016aff75f38b5745c6.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_3.png/88fb11b50c8a1cd882fe543edb2a87c3.png", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_4.png/feb72f8cb99c4d61253a9085ad41fd6c.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_Generic.jpg/8755b552bd84f61eb201d1ee1d79f356.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_1024.png/e22a1d2c6d96d7b655621a9faa431b09.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_Online.jpg/d679d92d5cf5ae2082d4347b2e24c581.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_AlbumBkg.jpg/b66607f431c8593ca0176e26b1d2d92e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_AlbumCoach.png/f6c0dd826dea279918ee6f008822b17e.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_1_Phone.png/96a8deb9932266b77ffebaaf146b00e1.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_2_Phone.png/97e14af52dbf858affef37176da7ad59.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_3_Phone.png/6a1bc711433410a9a50548a52c06fe01.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Coach_4_Phone.png/86adafb8e0bfca7a1e6ca9c9d5857480.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_Cover_Phone.jpg/d679d92d5cf5ae2082d4347b2e24c581.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,20592,41136,61728,82272,102864,123408,144000,164592,185136,205728,226272,246864,267408,288000,308592,329136,349728,370272,390864,411408,432000,452592,473136,493728,514272,534864,555408,575999,596591,617135,637727,658271,678863,699407,719999,740591,761135,781727,802271,822863,843407,863999,884591,905135,925727,946271,966863,987407,1007999,1028591,1049135,1069727,1090271,1110863,1131407,1151999,1172591,1193135,1213727,1234271,1254863,1275407,1295999,1316591,1337135,1357727,1378271,1398863,1419407,1439999],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":488,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":70,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/ddudu/ddudu_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FFBF1FFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 210.428, + "mapName": "DDUDU", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "DDUDU_mapContent" + }, + "parentMapName": "DDUDU", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "F922B9FF", + "songColor_1B": "38012EFF", + "songColor_2A": "CB81F9FF", + "songColor_2B": "46026DFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "DDU-DU DDU-DU", + "urls": { + "jmcs://jd-contents/DDUDU/DDUDU_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_AudioPreview.ogg/4cf849250f2760a958723ec251c75d18.ogg", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_HIGH.vp8.webm/2257f4e49d7f3a8b1fd63e96925c1097.webm", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_HIGH.vp9.webm/03a352781749fe813e4e5ce48fc53e92.webm", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_LOW.vp8.webm/4fe9fffc0af8ba53ed9c8dd3c82aa624.webm", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_LOW.vp9.webm/57716c4189ad7c8f1883fba093c61f52.webm", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_MID.vp8.webm/1c3d61b9894ee67611288573ab484c35.webm", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_MID.vp9.webm/114f318cb16e32b1f08ff7bb1b12cf59.webm", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_ULTRA.vp8.webm/dbce3a93941da09a3376d0a755604ed2.webm", + "jmcs://jd-contents/DDUDU/DDUDU_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DDUDU/DDUDU_MapPreviewNoSoundCrop_ULTRA.vp9.webm/24341a18503f85ff178c171d915fbd59.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "633334b245c8d7ef3e7295281663dd18", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DDUDU/ps4/DDUDU_MAIN_SCENE_ORBIS.zip/633334b245c8d7ef3e7295281663dd18.zip", + "version": 1 + }, + "nx": { + "md5": "b64a8d673fe6dbad2387ba983839ae6e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DDUDU/nx/DDUDU_MAIN_SCENE_NX.zip/b64a8d673fe6dbad2387ba983839ae6e.zip", + "version": 1 + }, + "pc": { + "md5": "4b1ed4d7610d4f084296f8eec47f7451", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/ddudu_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DaddyCool.json b/justdanceonline-main/maps/DaddyCool.json new file mode 100644 index 0000000000000000000000000000000000000000..eba9ff474a516487521bef7052ee5f993427f74b --- /dev/null +++ b/justdanceonline-main/maps/DaddyCool.json @@ -0,0 +1,123 @@ +{ + "artist": "Groove Century", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_banner_bkg.tga.ckd/76683ccd314dc03d6d0d49858419520b.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_Coach_1.tga.ckd/c297d3a156b18f956cd3ff3a24c8a191.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_Cover_Generic.tga.ckd/bc9f16a52c32eec30b8ed3ab6192458b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Cover_1024.png/b5daf3df306ddfe43ad1239a922065f9.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_Cover_Online.tga.ckd/a823c16c36d35ca0c32b7d107de6da14.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_Cover_AlbumBkg.tga.ckd/903f3b13964c977f570ac36eeec50ce6.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_Cover_AlbumCoach.tga.ckd/4eedbf6aac65ffe06ea5f43c20a0d99b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Coach_1_Phone.png/4223e27af00b7eac1f516de9cd0ffde7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Cover_Phone.jpg/0cfb6b2f027866c98cb6b20ab3d271e0.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_VideoPreview.webm/45bbba3b31562a1f90698d513e1a870b.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_map_bkg.tga.ckd/a5967dd7e923b2d353bb31da6feb0d28.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_banner_bkg.tga.ckd/69b1478cb69b01da3738d17f028ecce3.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_Coach_1.tga.ckd/0581f583e73370307e93f61639d01610.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_Cover_Generic.tga.ckd/03b1eeefb9b58c546308d4b20751f28b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Cover_1024.png/b5daf3df306ddfe43ad1239a922065f9.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_Cover_Online.tga.ckd/6b53dfd475311073307f8f80dadc51a4.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_Cover_AlbumBkg.tga.ckd/f2b4aaffcdd901c5db69c23e12007aaa.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_Cover_AlbumCoach.tga.ckd/4317cf250926904822b74e1d68773abc.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Coach_1_Phone.png/4223e27af00b7eac1f516de9cd0ffde7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Cover_Phone.jpg/0cfb6b2f027866c98cb6b20ab3d271e0.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_VideoPreview.webm/45bbba3b31562a1f90698d513e1a870b.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_map_bkg.tga.ckd/10296f1dded0a74515ff80c400bd233f.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/wiiu/DaddyCool_banner_bkg.tga.ckd/f706445316d8031bac9c7c0092f015b2.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/wiiu/DaddyCool_Coach_1.tga.ckd/17dcb6262341984f2c568dc43688f422.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/wiiu/DaddyCool_Cover_Generic.tga.ckd/48bf7030c8d65f6ea9618c2d3b430a41.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Cover_1024.png/b5daf3df306ddfe43ad1239a922065f9.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/wiiu/DaddyCool_Cover_Online.tga.ckd/f18db8f1c51ba6d7df96a06b41993fc4.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/wiiu/DaddyCool_Cover_AlbumBkg.tga.ckd/605b9a511e5a8e636ab55215f28e529f.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/wiiu/DaddyCool_Cover_AlbumCoach.tga.ckd/8219f87ad37c1e7bcf93b8cca6fdb515.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Coach_1_Phone.png/4223e27af00b7eac1f516de9cd0ffde7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_Cover_Phone.jpg/0cfb6b2f027866c98cb6b20ab3d271e0.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_VideoPreview.webm/45bbba3b31562a1f90698d513e1a870b.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23280,46512,69744,92976,116208,139440,162672,185904,209184,232416,255648,278880,302112,325344,348576,371856,394944,418032,441120,464208,487296,510385,533473,556561,579649,602737,625825,648913,672001,695089,718177,741265,764449,787633,810865,834049,857233,880417,903649,926833,950017,973201,996433,1019617,1042801,1065985,1089217,1112401,1135489,1158625,1181713,1204849,1227937,1251025,1274161,1297249,1320385,1343473,1366561,1389697,1412785,1435921],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-6,\"endBeat\":432,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":62,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/daddycool/daddycool_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Frank Farian and George Reyam. Published by Far Musikverlag Gmbh & Co. Kg c/o Sony/ATV Music Publishing Canada (SOCAN). All rights reserved. Used with permission. Produced, Engineered and Mixed by Steve Ouimette. Additional Engineering: Lawrence ‘Boo’ Mitchell, Royal Studios – Memphis, TN Vocals: Cat Gray. Background Vocals: Tiffany Palmer, Sharisse Norman and Candise Rayborne Marshall. Drums, Bass, Guitar: Steve Ouimette. Strings: Pete Whitefield, Alex Stemp, Sarah Brandwood-Spencer. Horns: The Junkyard Funk Players. Music Supervision – Manu Bachet. Courtesy of Ubisoft Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "36FFFBFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 210.605, + "mapName": "DaddyCool", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "DaddyCool_mapContent" + }, + "parentMapName": "DaddyCool", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "FF4EC0FF", + "songColor_1B": "500072FF", + "songColor_2A": "1DFFECFF", + "songColor_2B": "8451BAFF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Daddy Cool", + "urls": { + "jmcs://jd-contents/DaddyCool/DaddyCool_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_AudioPreview.ogg/a2b39d377903143085ec7c6330abae2c.ogg", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_HIGH.vp8.webm/b71e244ed5b879aaee1c0668f81e321d.webm", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_HIGH.vp9.webm/5cabb529c50896b2e4c09d0137c908f8.webm", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_LOW.vp8.webm/fec86e01acde8047ba5661fe5482923b.webm", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_LOW.vp9.webm/95d2b5aa5b38044eca8be48faf9dd158.webm", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_MID.vp8.webm/e36d77528643f4f876b1b368332860b0.webm", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_MID.vp9.webm/7fcb3f3e632dde1759bd4f5d2fbcf3de.webm", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_ULTRA.vp8.webm/f77aaaba416c3b42ec9bc1c3c7f6b22d.webm", + "jmcs://jd-contents/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DaddyCool/DaddyCool_MapPreviewNoSoundCrop_ULTRA.vp9.webm/b285dc5637e95491733e5c678c9abc19.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "499943b6ddc1bfc74f9252c00ac8d555", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DaddyCool/ps4/DaddyCool_MAIN_SCENE_ORBIS.zip/499943b6ddc1bfc74f9252c00ac8d555.zip", + "version": 3 + }, + "nx": { + "md5": "c1ecf2c5c002fe677eb30523eb4f0c25", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DaddyCool/nx/DaddyCool_MAIN_SCENE_NX.zip/c1ecf2c5c002fe677eb30523eb4f0c25.zip", + "version": 3 + }, + "pc": { + "md5": "865ba1e8d6f85f182149c34da8e44d6d", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DaddyCool/pc/865ba1e8d6f85f182149c34da8e44d6d.zip", + "version": 1 + }, + "wiiu": { + "md5": "df9ba09aea2a8b1339b52766f6a9f2f4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DaddyCool/wiiu/DaddyCool_MAIN_SCENE_WIIU.zip/df9ba09aea2a8b1339b52766f6a9f2f4.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DameTu.json b/justdanceonline-main/maps/DameTu.json new file mode 100644 index 0000000000000000000000000000000000000000..f1032357b4fe205e1cd52013717308e6aa3eb191 --- /dev/null +++ b/justdanceonline-main/maps/DameTu.json @@ -0,0 +1,112 @@ +{ + "artist": "El Chombo Ft. Cutty Ranks", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_banner_bkg.jpg/a155433787dd0e5774b79b7ac1692479.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Coach_1.png/1868eb008984b457552d67b559a16030.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Generic.jpg/f83a6467add2be6f7b655cabc099243c.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_1024.png/267bd24024598b5159797a8027061d4a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Online.jpg/9658e90d8c5b7cd96c32a9ca304f36b9.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_AlbumBkg.jpg/9b4f643ab7141827a260ebfee4a1bcc5.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_AlbumCoach.png/f83ca94219fd0a7e1e11e5a7646dd416.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Coach_1_Phone.png/568c4068c1d6005a475ed03d47098aeb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Phone.jpg/9658e90d8c5b7cd96c32a9ca304f36b9.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_VideoPreview.webm/4509d269f1d7dbca80611b7947c50811.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_banner_bkg.jpg/a155433787dd0e5774b79b7ac1692479.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Coach_1.png/1868eb008984b457552d67b559a16030.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Generic.jpg/f83a6467add2be6f7b655cabc099243c.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_1024.png/267bd24024598b5159797a8027061d4a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Online.jpg/9658e90d8c5b7cd96c32a9ca304f36b9.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_AlbumBkg.jpg/9b4f643ab7141827a260ebfee4a1bcc5.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_AlbumCoach.png/f83ca94219fd0a7e1e11e5a7646dd416.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Coach_1_Phone.png/568c4068c1d6005a475ed03d47098aeb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Phone.jpg/9658e90d8c5b7cd96c32a9ca304f36b9.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_VideoPreview.webm/4509d269f1d7dbca80611b7947c50811.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_banner_bkg.tga.ckd/4cf51bbc42b0439154890800f760a473.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Coach_1.tga.ckd/28b40ec636fee771592c80eda32b3cdf.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Generic.tga.ckd/96fa02a925ce250022d277c710124092.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_1024.png/267bd24024598b5159797a8027061d4a.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Online.tga.ckd/4f99a5263a381bf32deb6587a5182bb7.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_AlbumBkg.tga.ckd/1b99693789a781d53639ad7b57a56d77.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_AlbumCoach.tga.ckd/e1e4fd4aea6302f8d12d43db81aec292.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Coach_1_Phone.png/568c4068c1d6005a475ed03d47098aeb.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_Cover_Phone.jpg/9658e90d8c5b7cd96c32a9ca304f36b9.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_VideoPreview.webm/4509d269f1d7dbca80611b7947c50811.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26208,52368,78576,104736,130944,157104,183265,209473,235633,261841,288001,314209,340369,366577,392737,418945,445105,471265,497474,523634,549842,576002,602210,628370,654578,680738,706946,733106,759266,785475,811635,837843,864003,890211,916371,942579,968739,994947,1021107,1047267,1073475,1099636,1125844,1152004,1178212,1204372,1230580,1256740,1282948,1309108,1335268,1361476,1387637,1413845],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-7,\"endBeat\":268,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":54,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dametu/dametu_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Rodney S. Clark Donalds and Philip Thomas. Published by © 2018 NW Collections (BMI) obo Jack Russell Music Ltd. (PRS) / Juston Records – Jack Russell. Courtesy of Ultra Records, LLC. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FFDA07FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 150, + "mapName": "DameTu", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "DameTu_mapContent" + }, + "parentMapName": "DameTu", + "skuIds": [], + "songColors": { + "songColor_1A": "0A817DFF", + "songColor_1B": "003426FF", + "songColor_2A": "1DDEB3FF", + "songColor_2B": "0025E2FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Dame Tu Cosita", + "urls": { + "jmcs://jd-contents/DameTu/DameTu_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_AudioPreview.ogg/3e9408f6a944644994070aa0ca1b9fdf.ogg", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_HIGH.vp8.webm/5d538e828b899140154fa60072138acf.webm", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_HIGH.vp9.webm/51bfdf21cfa281432e064cb5f1b5a4b0.webm", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_LOW.vp8.webm/e564e1b14049257fcff6524589454ab3.webm", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_LOW.vp9.webm/85f977a6da3a79b4da11e9f25863affd.webm", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_MID.vp8.webm/d2e15830c19a1356303c0ea73d6611f9.webm", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_MID.vp9.webm/86607f7b46ce18ed9e3fa8fe2029b245.webm", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_ULTRA.vp8.webm/7b62817d600c94fd86a63822b9baa64e.webm", + "jmcs://jd-contents/DameTu/DameTu_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MapPreviewNoSoundCrop_ULTRA.vp9.webm/9fe0dc7cc834da30c741e55113b2c1c0.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "e447c2a0e4ba7db4358a0a8ae51bf116", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MAIN_SCENE_ORBIS.zip/e447c2a0e4ba7db4358a0a8ae51bf116.zip", + "version": 5 + }, + "nx": { + "md5": "494906240bc908ab294dbda855da8f4f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MAIN_SCENE_NX.zip/494906240bc908ab294dbda855da8f4f.zip", + "version": 5 + }, + "pc": { + "md5": "ed46d85b6a761f8bcdb0d9e56cc10806", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MAIN_SCENE_PC.zip/ed46d85b6a761f8bcdb0d9e56cc10806.zip", + "version": 4 + }, + "wiiu": { + "md5": "ca129d1490613969c42b7a72393fe6c4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DameTu/DameTu_MAIN_SCENE_WIIU.zip/ca129d1490613969c42b7a72393fe6c4.zip", + "version": 5 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DanceMonkey.json b/justdanceonline-main/maps/DanceMonkey.json new file mode 100644 index 0000000000000000000000000000000000000000..7397d9dfd39dec0c526a8483ad8bca4b86285494 --- /dev/null +++ b/justdanceonline-main/maps/DanceMonkey.json @@ -0,0 +1,90 @@ +{ + "artist": "Tones And I", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_banner_bkg.jpg/fc3a460bc1bc8f9407b43f71300f12e6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Coach_1.png/939a2fce017ad7efb22efe871bb02987.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_Generic.jpg/b9f857d048731acd0ba81fc896ef066b.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_Online.jpg/82617eab00823c0dbd25c66a6e746410.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_AlbumBkg.jpg/0c39b88be39931d4ac5afc6bf2397ab2.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_AlbumCoach.png/b959754c2d6e8f8ad8a08e11e7abc108.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Coach_1_Phone.png/f7749d677b0a8dfe841428f6f5865d49.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_Phone.jpg/82617eab00823c0dbd25c66a6e746410.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_banner_bkg.jpg/fc3a460bc1bc8f9407b43f71300f12e6.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Coach_1.png/939a2fce017ad7efb22efe871bb02987.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_Generic.jpg/b9f857d048731acd0ba81fc896ef066b.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_Online.jpg/82617eab00823c0dbd25c66a6e746410.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_AlbumBkg.jpg/0c39b88be39931d4ac5afc6bf2397ab2.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_AlbumCoach.png/b959754c2d6e8f8ad8a08e11e7abc108.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Coach_1_Phone.png/f7749d677b0a8dfe841428f6f5865d49.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DanceMonkey/DanceMonkey_Cover_Phone.jpg/82617eab00823c0dbd25c66a6e746410.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,29388,58776,88164,117551,146939,176327,205715,235102,264490,293878,323266,352653,382041,411429,440817,470204,499592,528980,558368,587755,617143,646531,675919,705306,734694,764082,793470,822857,852245,881633,911021,940408,969796,999184,1028572,1057959,1087347,1116735,1146123,1175510,1204898,1234286,1263674,1293061,1322449,1351837,1381225,1410612],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":343,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":48,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dancemonkey/dancemonkey_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Toni Watson. Published by Tones and I pub designee (ASCAP). All rights administered by WC Music Corp. Courtesy of Elektra Records. By arrangement with Warner Music Group Film & TV Licensing.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "C458EBFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 212.54999999999998, + "mapName": "DanceMonkey", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "DanceMonkey_mapContent" + }, + "parentMapName": "DanceMonkey", + "skuIds": [], + "songColors": { + "songColor_1A": "E55346FF", + "songColor_1B": "52164DFF", + "songColor_2A": "A6384CFF", + "songColor_2B": "61B773FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Dance Monkey", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "e04d9bbf8cf208e5f15921549e31d962", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/ps4/DanceMonkey_MAIN_SCENE_ORBIS.zip/e04d9bbf8cf208e5f15921549e31d962.zip", + "version": 1 + }, + "nx": { + "md5": "505cbbc1dae2ad25008a8ba30c10e164", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/nx/DanceMonkey_MAIN_SCENE_NX.zip/505cbbc1dae2ad25008a8ba30c10e164.zip", + "version": 1 + }, + "pc": { + "md5": "327f42cf0150bc01f6540e629c0138a8", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DanceMonkey/pc/327f42cf0150bc01f6540e629c0138a8.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/DanceMonkey/DanceMonkey_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_AudioPreview.ogg/4fddaf47aa0b25318221a2e27329bd4b.ogg", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_HIGH.vp8.webm/29906d6b72e1ff1d195de89f9035db4c.webm", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_HIGH.vp9.webm/1f4282921c0e26ff011667f463a61086.webm", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_LOW.vp8.webm/b6e7427b725b67da372a2e3cbe144c52.webm", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_LOW.vp9.webm/38cca18440f53d046dc78a4762709e34.webm", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_MID.vp8.webm/1f2eb28454ce4b3e9406db50c792e2f0.webm", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_MID.vp9.webm/2ed2655d398c3cee2fa2b68cb145a923.webm", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_ULTRA.vp8.webm/7eaf70312a0150672e5036334907aff7.webm", + "jmcs://jd-contents/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DanceMonkey/DanceMonkey_MapPreviewNoSoundCrop_ULTRA.vp9.webm/fc784f1e98b2b4d642da1d063cacaf8d.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DancingDivaCHN.json b/justdanceonline-main/maps/DancingDivaCHN.json new file mode 100644 index 0000000000000000000000000000000000000000..c221b5e5fc20d966c471290b4100e731324e708f --- /dev/null +++ b/justdanceonline-main/maps/DancingDivaCHN.json @@ -0,0 +1,95 @@ +{ + "artist": "Cai Yi Lin (Jolin Tsai)", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_VideoPreview.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/DancingDivaCHN_VideoPreview.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23184,46416,69648,92832,116064,139296,162528,185760,208992,232224,255456,278640,301872,325104,348336,371568,394800,418032,441264,464448,487680,510912,534144,557376,580608,603840,627072,650256,673488,696720,719952,743184,766416,789648,812832,836064,859296,882528,905760,928992,952224,975456,998640,1021872,1045104,1068336,1091568,1114800,1138032,1161264,1184448,1207680,1230912,1254144,1277376,1300608,1323840,1347072,1370256,1393488,1416720,1439952,1463184,1486416,1509648],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":394,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "01FFFFFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "DancingDivaCHN", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 4514, + "packages": { + "mapContent": "DancingDivaCHN_mapContent" + }, + "parentMapName": "DancingDivaCHN", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "1184E1FF", + "songColor_1B": "101572FF", + "songColor_2A": "781A7DFF", + "songColor_2B": "733896FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Wu Niang (Dancing Diva)", + "urls": { + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/DancingDivaCHN_AudioPreview.ogg", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm", + "jmcs://jd-contents/DancingDivaCHN/DancingDivaCHN_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/DancingDivaCHN_VideoPreview.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "e3fcc4101f10b73cbd80ded69e6fd116", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/pc/e3fcc4101f10b73cbd80ded69e6fd116.zip", + "version": 2 + }, + "orbis": { + "md5": "59be20c870aa76678cd91798e7db5598", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/ps4/59be20c870aa76678cd91798e7db5598.zip", + "version": 1 + }, + "nx": { + "md5": "51da48d9dad79382ccdc3ba435104556", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DancingDivaCHN/nx/51da48d9dad79382ccdc3ba435104556.zip", + "version": 5 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DancingQueen.json b/justdanceonline-main/maps/DancingQueen.json new file mode 100644 index 0000000000000000000000000000000000000000..f0feaa4fd8370f1ebe67221b7311a41d16d71243 --- /dev/null +++ b/justdanceonline-main/maps/DancingQueen.json @@ -0,0 +1,126 @@ +{ + "artist": "ABBA", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_banner_bkg.jpg/1e96e6e15b495c0a2a95bc4597ae426c.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_1.png/370ff83cd0116f75cfd8af7f3b09ea0c.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_2.png/556f69ce2ac4c04ba6030280dc58c217.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_3.png/bb26715cc81def66456d048143c5faff.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Generic.jpg/5f749798cd816c8174a47fe0a1821edb.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_1024.png/4d92ab9705b2670347fcdb817811d36b.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Online.jpg/6cc35eaf3527a23770925ed3010f2a46.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_AlbumBkg.jpg/160852870ddb2673df0503db3a93d562.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_AlbumCoach.png/60609862015429e096b0dc52727f28e5.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_1_Phone.png/e072bde771150b8bcc76fda6429a0905.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_2_Phone.png/0a5ab4050630c6d7d0ea549fd15c3860.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_3_Phone.png/71938bf5d57520eda639d52df334a940.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Phone.jpg/6cc35eaf3527a23770925ed3010f2a46.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_VideoPreview.webm/4a73121f01b21bcda59694220c5439d1.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_banner_bkg.jpg/1e96e6e15b495c0a2a95bc4597ae426c.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_1.png/370ff83cd0116f75cfd8af7f3b09ea0c.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_2.png/556f69ce2ac4c04ba6030280dc58c217.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_3.png/bb26715cc81def66456d048143c5faff.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Generic.jpg/5f749798cd816c8174a47fe0a1821edb.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_1024.png/4d92ab9705b2670347fcdb817811d36b.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Online.jpg/6cc35eaf3527a23770925ed3010f2a46.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_AlbumBkg.jpg/160852870ddb2673df0503db3a93d562.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_AlbumCoach.png/60609862015429e096b0dc52727f28e5.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_1_Phone.png/e072bde771150b8bcc76fda6429a0905.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_2_Phone.png/0a5ab4050630c6d7d0ea549fd15c3860.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_3_Phone.png/71938bf5d57520eda639d52df334a940.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Phone.jpg/6cc35eaf3527a23770925ed3010f2a46.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_VideoPreview.webm/4a73121f01b21bcda59694220c5439d1.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_banner_bkg.tga.ckd/66773012532fc9d8c756396ae49c11d1.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_1.tga.ckd/ebca3ec86c633e28f1e7e4d4c53a0d74.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_2.tga.ckd/e51ff2a21ce38df8458570f07351c855.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_3.tga.ckd/6decc7dbf68a2ccee48a9b5219ebfec6.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Generic.tga.ckd/28dbdab224b935c7b1b809dd84cc83cf.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_1024.png/4d92ab9705b2670347fcdb817811d36b.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Online.tga.ckd/706538a5bf635690894dbab98c5295fc.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_AlbumBkg.tga.ckd/a61c4278de4a910995dcfe618747f350.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_AlbumCoach.tga.ckd/59ba622027b80eb9d4ea07197c063c66.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_1_Phone.png/e072bde771150b8bcc76fda6429a0905.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_2_Phone.png/0a5ab4050630c6d7d0ea549fd15c3860.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Coach_3_Phone.png/71938bf5d57520eda639d52df334a940.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_Cover_Phone.jpg/6cc35eaf3527a23770925ed3010f2a46.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_VideoPreview.webm/4a73121f01b21bcda59694220c5439d1.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28655,57311,86015,114671,143327,171983,200639,229295,257951,286607,315263,343919,372575,401231,429887,458543,487199,515855,544558,573262,601966,630670,659374,688078,716830,745534,774238,802942,831646,860350,889054,917758,946462,975166,1003726,1032334,1060893,1089501,1118013,1146477,1174989,1203501,1231965,1260477,1288989,1317501,1345965,1374381,1402845,1431309],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":348,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":50,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dancingqueen/dancingqueen_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Ulvaeus, Bjoern K.; Andersson, Benny Goran Bror; Anderson, Stig Erik Leopold. Published by Universal Music Publishing. Courtesy of Polydor Limited under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "5CF2FDFF", + "lyricsType": 2, + "mainCoach": -1, + "mapLength": 212.114, + "mapName": "DancingQueen", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "DancingQueen_mapContent" + }, + "parentMapName": "DancingQueen", + "skuIds": [], + "songColors": { + "songColor_1A": "89500BFF", + "songColor_1B": "F9CD52FF", + "songColor_2A": "50CBFCFF", + "songColor_2B": "02267AFF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "Exclusive" + ], + "title": "Dancing Queen", + "urls": { + "jmcs://jd-contents/DancingQueen/DancingQueen_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_AudioPreview.ogg/755c9085e80423f806bb04a0f5e1fd95.ogg", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_HIGH.vp8.webm/ac9a87db10157fc6d89eb39bce602b55.webm", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_HIGH.vp9.webm/5fa5c7a5b03f29da6d80b9027394358a.webm", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_LOW.vp8.webm/be4ebb2cc9f40d4afb8bc5958999bd62.webm", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_LOW.vp9.webm/6fe4c7b917b95c97a8c5abf1f8b3d9e7.webm", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_MID.vp8.webm/0a582fda2e520ce6ffb1741a2318e6aa.webm", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_MID.vp9.webm/6f5300fdaf2e6c2a57262a1d0ef44f60.webm", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_ULTRA.vp8.webm/044b75fe493f263af0ffa4726f8ca4b0.webm", + "jmcs://jd-contents/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MapPreviewNoSoundCrop_ULTRA.vp9.webm/d051e76e5ed8acc3d5d574ca529af757.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "940685f4c64764a84f16d01565128587", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MAIN_SCENE_ORBIS.zip/940685f4c64764a84f16d01565128587.zip", + "version": 42 + }, + "nx": { + "md5": "d8564971cc2e78e58da1e2260963ac6a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MAIN_SCENE_NX.zip/d8564971cc2e78e58da1e2260963ac6a.zip", + "version": 37 + }, + "pc": { + "md5": "9bed5eb5c0d47c60f182def2c2c8d0d1", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MAIN_SCENE_PC.zip/9bed5eb5c0d47c60f182def2c2c8d0d1.zip", + "version": 31 + }, + "wiiu": { + "md5": "ddd3c150b0b95f9359be53bd1cfa4439", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DancingQueen/DancingQueen_MAIN_SCENE_WIIU.zip/ddd3c150b0b95f9359be53bd1cfa4439.zip", + "version": 42 + } + }, + "mapType": "jdu", + "customTypeNameId": 15182 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DansVanDeFarao.json b/justdanceonline-main/maps/DansVanDeFarao.json new file mode 100644 index 0000000000000000000000000000000000000000..99f7d7ea1f59edc4965297e1125f2d38e535e61c --- /dev/null +++ b/justdanceonline-main/maps/DansVanDeFarao.json @@ -0,0 +1,104 @@ +{ + "artist": "K3", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_banner_bkg.tga.ckd/4270291bacd098f18fcef73ab97ff36c.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_Coach_1.tga.ckd/4dc76a3d42f14ad520677c86f859328c.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_Coach_2.tga.ckd/0f924711bc0e597c2107432de3fb3795.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_Coach_3.tga.ckd/80a3e278512c7935dfee3ecd2c0f5d20.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_Cover_Generic.tga.ckd/e3177fa8690b40127a9180cb705b39fe.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Cover_1024.png/756766dd44c586a01c44d945ba3996dc.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_Cover_Online.tga.ckd/8ad5cf3ddc9984cbde846045140b9cfa.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_Cover_AlbumBkg.tga.ckd/0ef77fae77ab55273f06f6c3c91e6b1c.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_Cover_AlbumCoach.tga.ckd/3a6cccc484547f554ee63349480c081f.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Coach_1_Phone.png/d97bd3f3ae25e802f7f6ccf107a323f6.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Coach_2_Phone.png/c8c474486a47311fb61a3d30a1db1e2a.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Coach_3_Phone.png/8962d6eb13e72ce0227f31a5fed99d59.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Cover_Phone.jpg/f9dc35eb85ea17e382b753ee5c02f5b1.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_VideoPreview.webm/520e10e52ff72d05609b6bfd39b8e553.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_map_bkg.tga.ckd/150d1d85889cbddae9be1bef0e0c1db9.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_banner_bkg.tga.ckd/7922e3d379b5502f4b0fc3907229186d.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_Coach_1.tga.ckd/d8bc2fd55a9300fe88edd3bf7d643ca3.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_Coach_2.tga.ckd/975ac6ef30eab1704a1f2127a6e2d971.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_Coach_3.tga.ckd/7a0185ce622202dac4e9699c76381224.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_Cover_Generic.tga.ckd/408d84e725966b1e85352527254ae47f.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Cover_1024.png/756766dd44c586a01c44d945ba3996dc.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_Cover_Online.tga.ckd/832258f1813f33a59378178d51de2d4d.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_Cover_AlbumBkg.tga.ckd/22ba582820f4f9e2a00163dcf2531711.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_Cover_AlbumCoach.tga.ckd/6befa16cfed4eca663e114f434a035a4.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Coach_1_Phone.png/d97bd3f3ae25e802f7f6ccf107a323f6.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Coach_2_Phone.png/c8c474486a47311fb61a3d30a1db1e2a.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Coach_3_Phone.png/8962d6eb13e72ce0227f31a5fed99d59.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_Cover_Phone.jpg/f9dc35eb85ea17e382b753ee5c02f5b1.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_VideoPreview.webm/520e10e52ff72d05609b6bfd39b8e553.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_map_bkg.tga.ckd/50def5533bc32ad3a43160be199a8223.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28800,57600,86400,115200,144000,172800,201600,230400,259200,288000,316800,345600,374400,403200,432000,460800,489600,518400,547200,576000,604800,633600,662400,691200,720000,748800,777600,806400,835200,864000,892800,921600,950400,979200,1008000,1036800,1065600,1094400,1123200,1152000,1180800,1209600,1238400,1267200,1296000,1324800,1353600,1382400,1411200],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":341,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":49,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dansvandefarao/dansvandefarao_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Alain Vande Putte, Miguel Wiels and Peter Gillis. Published by Studio 100 nv and Studio Entertainment 2. Courtesy of Studio 100 nv.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "D762F6FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 205.79999999999998, + "mapName": "DansVanDeFarao", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "DansVanDeFarao_mapContent" + }, + "parentMapName": "DansVanDeFarao", + "skuIds": [], + "songColors": { + "songColor_1A": "FFC27BFF", + "songColor_1B": "F7A539FF", + "songColor_2A": "FFF7E5FF", + "songColor_2B": "FF9600FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Dans van de Farao", + "urls": { + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_AudioPreview.ogg/ca9cb505dfd97b4f1ed1e43469008f62.ogg", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_HIGH.vp8.webm/ee78b2f6f9cca8271e9c6b085fa51b4f.webm", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_HIGH.vp9.webm/d53f4e8d7ce6e2b9c6d7a285e77ece05.webm", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_LOW.vp8.webm/82ed641b94ba99ce5362ec15ec529689.webm", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_LOW.vp9.webm/83050dc55a85dae0edc1976b9a3aa390.webm", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_MID.vp8.webm/280cd03bfd2dade8e867baeea84d1ca4.webm", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_MID.vp9.webm/859a8a78249070ee3858e1a835ca41e7.webm", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_ULTRA.vp8.webm/4713b10470428912465536eb19dcfc92.webm", + "jmcs://jd-contents/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/DansVanDeFarao_MapPreviewNoSoundCrop_ULTRA.vp9.webm/4994783250d8eab4f65598eab41e7a6b.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "402d08f776e06018cafdd7d2f37cfaa4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/ps4/DansVanDeFarao_MAIN_SCENE_ORBIS.zip/402d08f776e06018cafdd7d2f37cfaa4.zip", + "version": 30 + }, + "nx": { + "md5": "85aa407be24f72c7e099371cd2a1859e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DansVanDeFarao/nx/DansVanDeFarao_MAIN_SCENE_NX.zip/85aa407be24f72c7e099371cd2a1859e.zip", + "version": 30 + }, + "pc": { + "md5": "090ee77ddc988df324c855a60342d710", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DansVanDeFarao/pc/090ee77ddc988df324c855a60342d710.zip", + "version": 6 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Danse.json b/justdanceonline-main/maps/Danse.json new file mode 100644 index 0000000000000000000000000000000000000000..1609242aae9a20fb6975b9153e0d552145c7488a --- /dev/null +++ b/justdanceonline-main/maps/Danse.json @@ -0,0 +1,114 @@ +{ + "artist": "Tal", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_banner_bkg.jpg/0b8b1f463242d7529ed65fe3728bd2ee.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Coach_1.png/d2ddef61a83bbbf064e70ff79cd768d1.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_Generic.jpg/ae0cb58c173bf8222dffec8cdeaed474.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_1024.png/381e021fe9dda56a080933d92248f781.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_Online.jpg/d39c6742fd01eecb256aa7252396cad8.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_AlbumBkg.jpg/6b278ff1b8fb47379e68199818df02a3.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_AlbumCoach.png/3c1ffbed90ffc03aabc7ac4afeacfa6d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Coach_1_Phone.png/3b401f0dca09a170d154665fda25ad24.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_Phone.jpg/d39c6742fd01eecb256aa7252396cad8.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Danse/Danse_VideoPreview.webm/5623baf67988111e6536a5ddb2e972fa.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_banner_bkg.jpg/0b8b1f463242d7529ed65fe3728bd2ee.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Coach_1.png/d2ddef61a83bbbf064e70ff79cd768d1.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_Generic.jpg/ae0cb58c173bf8222dffec8cdeaed474.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_1024.png/381e021fe9dda56a080933d92248f781.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_Online.jpg/d39c6742fd01eecb256aa7252396cad8.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_AlbumBkg.jpg/6b278ff1b8fb47379e68199818df02a3.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_AlbumCoach.png/3c1ffbed90ffc03aabc7ac4afeacfa6d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Coach_1_Phone.png/3b401f0dca09a170d154665fda25ad24.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_Phone.jpg/d39c6742fd01eecb256aa7252396cad8.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Danse/Danse_VideoPreview.webm/5623baf67988111e6536a5ddb2e972fa.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/wiiu/Danse_banner_bkg.tga.ckd/4b93a17bda2d297775c5ff55efed1fbb.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/wiiu/Danse_Coach_1.tga.ckd/a8a52a9367a45bcf27416ceb658655b1.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/wiiu/Danse_Cover_Generic.tga.ckd/984a1b0759a64dbf657f9c3257ddee9b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_1024.png/381e021fe9dda56a080933d92248f781.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/wiiu/Danse_Cover_Online.tga.ckd/1684c4ede714467c62b26b067a43b721.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/wiiu/Danse_Cover_AlbumBkg.tga.ckd/363c4903290412e015428c1d367d36c1.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/wiiu/Danse_Cover_AlbumCoach.tga.ckd/23908e3a5ae4431e401541fe8f4e8bb3.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Coach_1_Phone.png/3b401f0dca09a170d154665fda25ad24.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Danse/Danse_Cover_Phone.jpg/d39c6742fd01eecb256aa7252396cad8.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Danse/Danse_VideoPreview.webm/5623baf67988111e6536a5ddb2e972fa.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22848,45744,68592,91440,114288,137136,160032,182880,205728,228576,251424,274272,297168,320016,342864,365712,388560,411456,434303,457151,479999,502847,525743,548591,571439,594287,617135,640031,662879,685727,708575,731423,754271,777167,800015,822863,845711,868559,891455,914302,937150,959998,982846,1005742,1028590,1051438,1074286,1097134,1120030,1142878,1165726,1188574,1211422,1234270,1257166,1280014,1302862,1325710,1348558,1371454,1394301,1417149,1439997],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":376,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/danse/danse_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FB7910FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 179.048, + "mapName": "Danse", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2014, + "packages": { + "mapContent": "Danse_mapContent" + }, + "parentMapName": "Danse", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "3DC8F5FF", + "songColor_1B": "470061FF", + "songColor_2A": "F5AC80FF", + "songColor_2B": "7F0060FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Danse (Pop version)", + "urls": { + "jmcs://jd-contents/Danse/Danse_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Danse/Danse_AudioPreview.ogg/3c67c1db430a26f749829da81f00b9a2.ogg", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_HIGH.vp8.webm/6f67f23f82fb7774a124cc2a299d6370.webm", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_HIGH.vp9.webm/0b8e28ce2e0ffdeb7caf02e791bcaa42.webm", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_LOW.vp8.webm/44c5b0c64af6d85abc6aeb572b06952b.webm", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_LOW.vp9.webm/5a5468be2a86cfad6222422b1eca19f6.webm", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_MID.vp8.webm/66785f64d885803af0437a563ca8d86c.webm", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_MID.vp9.webm/cfa7f717bf8cdabe38e357e9516186ee.webm", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_ULTRA.vp8.webm/dac99279904fa9f82c39c589085c44fa.webm", + "jmcs://jd-contents/Danse/Danse_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Danse/Danse_MapPreviewNoSoundCrop_ULTRA.vp9.webm/7843b0e6472edecf060c6902b711c227.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "5996804735f9de584296b4d82c472342", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Danse/ps4/Danse_MAIN_SCENE_ORBIS.zip/5996804735f9de584296b4d82c472342.zip", + "version": 13 + }, + "pc": { + "md5": "a222ff06faa06d1ef09f79f24d9762e2", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Danse/pc/Danse_MAIN_SCENE_PC.zip/a222ff06faa06d1ef09f79f24d9762e2.zip", + "version": 7 + }, + "wiiu": { + "md5": "142a861aae15646c1750ad0d33bbc9be", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Danse/wiiu/Danse_MAIN_SCENE_WIIU.zip/142a861aae15646c1750ad0d33bbc9be.zip", + "version": 13 + }, + "nx": { + "md5": "adac05a61ce231f7619cb7ee0da6f949", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Danse/nx/Danse_MAIN_SCENE_NX.zip/adac05a61ce231f7619cb7ee0da6f949.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Despacito.json b/justdanceonline-main/maps/Despacito.json new file mode 100644 index 0000000000000000000000000000000000000000..96d00e9bf859fc4531fee3576640e2965e6bad49 --- /dev/null +++ b/justdanceonline-main/maps/Despacito.json @@ -0,0 +1,134 @@ +{ + "artist": "Luis Fonsi & Daddy Yankee", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_banner_bkg.tga.ckd/88287cb3293166e4cb1bc20620d5fd46.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Coach_1.tga.ckd/31fa537276504e9e30d7711d0f5f0d81.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Coach_2.tga.ckd/5a4693ea24548348b23a1e550cb80810.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Coach_3.tga.ckd/ab155330225e6a08da878ccf777253e9.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Coach_4.tga.ckd/64e2e13ce941a06ec71eaee59efd77f2.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Cover_Generic.tga.ckd/b24dc6789834fc0c10a7f18d3b48979a.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Cover_1024.png/e01c321219f1da05abb565cd008d35f7.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Cover_Online.tga.ckd/b24dc6789834fc0c10a7f18d3b48979a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Cover_AlbumBkg.tga.ckd/9558c029905d135e0d268170fd04e6ef.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_Cover_AlbumCoach.tga.ckd/b7a2aa422e606ee90c3b254c02267e42.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_1_Phone.png/e8b90227c95470f1e8a27269a685c899.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_2_Phone.png/a74941ec8bef75883230776d952e9fca.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_3_Phone.png/a656e3ecfcfc7498e4b13e1672617f38.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_4_Phone.png/bcff3e8e426bae94c8c3f0ce6ce48760.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Cover_Phone.jpg/37a6d939c5417fc8ffe803221d74c380.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_VideoPreview.webm/f07ae5e9ba18fbf313ef242d2704127d.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/ggp/Despacito_map_bkg.tga.ckd/c05f8782ce0e8cea0b7f61d485785341.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_banner_bkg.tga.ckd/261ad36277687ab5412ac7067f4adf25.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Coach_1.tga.ckd/499a179bbf3011d9cc50532264027525.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Coach_2.tga.ckd/8dc29e66a381419a31c8df96fabbe5ff.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Coach_3.tga.ckd/ae10961858d35348e65ca38a671b0f89.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Coach_4.tga.ckd/d963b51ee137c0d1a07f561d6b540e51.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Cover_Generic.tga.ckd/3b4a5cd3c15fab2ebe8ceb7a9e403922.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Cover_1024.png/e01c321219f1da05abb565cd008d35f7.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Cover_Online.tga.ckd/3f1945b9e673c58b03fb8a19e4e77ef8.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Cover_AlbumBkg.tga.ckd/ac65d949f911ae89a89df216c9b4502a.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_Cover_AlbumCoach.tga.ckd/3157921e6ce22ec9c2e03e0f7021b729.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_map_bkg.tga.ckd/53a1cc4c2c1fbd06eafffa39f21496b2.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_1_Phone.png/e8b90227c95470f1e8a27269a685c899.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_2_Phone.png/a74941ec8bef75883230776d952e9fca.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_3_Phone.png/a656e3ecfcfc7498e4b13e1672617f38.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_4_Phone.png/bcff3e8e426bae94c8c3f0ce6ce48760.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Cover_Phone.jpg/37a6d939c5417fc8ffe803221d74c380.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_VideoPreview.webm/f07ae5e9ba18fbf313ef242d2704127d.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_banner_bkg.tga.ckd/e5951db20c79918fef92a64b7f43a081.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Coach_1.tga.ckd/d945ade949a96351dedbaa342d49283d.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Coach_2.tga.ckd/3235ffb04d817108728bedb1d91b9ed9.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Coach_3.tga.ckd/235a2035694435226c87eaff685481a5.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Coach_4.tga.ckd/4ba6e27fe7bcbcc9e0b2f1eaa3974bad.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Cover_Generic.tga.ckd/80cedc07f72ac4d98f20e17240ab0aec.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Cover_1024.png/e01c321219f1da05abb565cd008d35f7.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Cover_Online.tga.ckd/377792f2dc333c40af48774b7490ee19.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Cover_AlbumBkg.tga.ckd/2f7fafda1a8eacb25e43087814d664ff.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_Cover_AlbumCoach.tga.ckd/5abdaa6d817c660d1b404332e9306885.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_1_Phone.png/e8b90227c95470f1e8a27269a685c899.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_2_Phone.png/a74941ec8bef75883230776d952e9fca.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_3_Phone.png/a656e3ecfcfc7498e4b13e1672617f38.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Coach_4_Phone.png/bcff3e8e426bae94c8c3f0ce6ce48760.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_Cover_Phone.jpg/37a6d939c5417fc8ffe803221d74c380.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_VideoPreview.webm/f07ae5e9ba18fbf313ef242d2704127d.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,44064,88080,120432,152832,185184,217536,249888,282240,314592,346992,379344,411696,444048,476399,508751,541103,573503,605855,638207,670559,702911,735263,767663,800015,832367,864719,897071,929423,961775,994175,1026527,1058879,1091230,1123582,1155934,1188334,1220686,1253038,1285390,1317742,1350094,1382494,1414846],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":2},{\"__class\":\"MusicSignature\",\"marker\":2,\"beats\":4}],\"startBeat\":-5,\"endBeat\":333,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":43,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/despacito/despacito_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "43FFBEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 228.35299999999998, + "mapName": "Despacito", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Despacito_mapContent" + }, + "parentMapName": "Despacito", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "89500BFF", + "songColor_1B": "F9CD52FF", + "songColor_2A": "50CBFCFF", + "songColor_2B": "02267AFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Despacito", + "urls": { + "jmcs://jd-contents/Despacito/Despacito_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_AudioPreview.ogg/b7e46bd256856fdf802aa84451015c90.ogg", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp8.webm/8e3c668453341a01db89e387ace8d1a3.webm", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_HIGH.vp9.webm/fe1996ffcb7a022efe7bf8db1fb0c334.webm", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp8.webm/4b23b3ee2cabe4817381b90fb1024db5.webm", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_LOW.vp9.webm/3aae356f820a9506afcfc4ec48278c9b.webm", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp8.webm/30d09d05502939ba2b2fcfef2dd2f235.webm", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_MID.vp9.webm/2ec92c2bc7e5a418bcac4d92072ee04a.webm", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp8.webm/f138123f2b9339fb273c36f470987a89.webm", + "jmcs://jd-contents/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Despacito/Despacito_MapPreviewNoSoundCrop_ULTRA.vp9.webm/9e36a22c9161bcbbec39022d88d187bb.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "0f0f66f7883f6057fbc88d7accf1910a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Despacito/ps4/Despacito_MAIN_SCENE_ORBIS.zip/0f0f66f7883f6057fbc88d7accf1910a.zip", + "version": 8 + }, + "pc": { + "md5": "394a6d87d767aea40764d7f51ab1c127", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Despacito/pc/Despacito_MAIN_SCENE_PC.zip/394a6d87d767aea40764d7f51ab1c127.zip", + "version": 5 + }, + "wiiu": { + "md5": "bf3de1264cc8b57f558f8ee2ea359af5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Despacito/wiiu/Despacito_MAIN_SCENE_WIIU.zip/bf3de1264cc8b57f558f8ee2ea359af5.zip", + "version": 8 + }, + "nx": { + "md5": "938871f3641338323294848eb01e889d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Despacito/nx/Despacito_MAIN_SCENE_NX.zip/938871f3641338323294848eb01e889d.zip", + "version": 7 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Dharma.json b/justdanceonline-main/maps/Dharma.json new file mode 100644 index 0000000000000000000000000000000000000000..aab63366d43beae23d86837672065a29eab0f6b3 --- /dev/null +++ b/justdanceonline-main/maps/Dharma.json @@ -0,0 +1,124 @@ +{ + "artist": "Headhunterz & KSHMR", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_banner_bkg.tga.ckd/d237d588ff948c721605aea598c23b82.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_Coach_1.tga.ckd/1f0e7f6b7d6c66edbdd8d60f35e00c20.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_Cover_Generic.tga.ckd/c10de814acc55801e6250491c2705087.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Cover_1024.png/3743dd3e211aa775fd5cca641489b249.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_Cover_Online.tga.ckd/3ef88354a638f3fe6c25913d03bc043a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_Cover_AlbumBkg.tga.ckd/67bb2e3e749e1a7425581ca414b66a41.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_Cover_AlbumCoach.tga.ckd/6a02f6814240e52419b25243b6e7b1e0.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Coach_1_Phone.png/c08e2335db196938b9fdefa48c7f7a4a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Cover_Phone.jpg/f0cc3f6ce86b0a6af40d66d71bb5f01c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_VideoPreview.webm/b9540fae9f9a41143406848a21373a08.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_map_bkg.tga.ckd/146f3f77efd0ac2a4ce813eb3582f3f0.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_banner_bkg.tga.ckd/4af800e994534480bca60b9f1c571ae6.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_Coach_1.tga.ckd/6b6d5809cba48b35f5b7662eea65c5da.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_Cover_Generic.tga.ckd/7ce7d167c2524daacf73527681d02bf2.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Cover_1024.png/3743dd3e211aa775fd5cca641489b249.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_Cover_Online.tga.ckd/82db10b70c79a897849b061b33e0c465.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_Cover_AlbumBkg.tga.ckd/66af64fbaf194705c071dff017f279b1.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_Cover_AlbumCoach.tga.ckd/78fad51245fd5141ca4ed5b4b30c603d.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Coach_1_Phone.png/c08e2335db196938b9fdefa48c7f7a4a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Cover_Phone.jpg/f0cc3f6ce86b0a6af40d66d71bb5f01c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_VideoPreview.webm/b9540fae9f9a41143406848a21373a08.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_map_bkg.tga.ckd/c84f0430477d4bb1e6679cf294a745d1.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/wiiu/Dharma_banner_bkg.tga.ckd/d1f15aa23fccf7fafbe79c6db42dc4aa.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/wiiu/Dharma_Coach_1.tga.ckd/5ea14c7aa2488142d41fa62fac984b68.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/wiiu/Dharma_Cover_Generic.tga.ckd/4fb745df63e02a4fdede1807b2fe70b8.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Cover_1024.png/3743dd3e211aa775fd5cca641489b249.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/wiiu/Dharma_Cover_Online.tga.ckd/1645bb8014ec6c29bd4f863231b94669.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/wiiu/Dharma_Cover_AlbumBkg.tga.ckd/918c1c0705a6d3782b4e7d2a019babeb.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/wiiu/Dharma_Cover_AlbumCoach.tga.ckd/078902f25730396af725c69cb61b4590.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Coach_1_Phone.png/c08e2335db196938b9fdefa48c7f7a4a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_Cover_Phone.jpg/f0cc3f6ce86b0a6af40d66d71bb5f01c.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_VideoPreview.webm/b9540fae9f9a41143406848a21373a08.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22511,45023,67488,90000,112512,135024,157488,180000,202512,225024,247488,270000,292511,315023,337488,360000,382512,405024,427487,450000,472512,495024,517487,540000,562511,585024,607488,630000,652512,675024,697487,720000,742511,765024,787487,810000,832511,855024,877488,900000,922512,945024,967487,990000,1012511,1035024,1057487,1080000,1102511,1125024,1147488,1170000,1192512,1215024,1237487,1260000,1282511,1305024,1327487,1350000,1372511,1395024,1417488],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-6,\"endBeat\":388,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dharma/dharma_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Niles Howell-Dhar, Willem Rebergen and Friso Venema. Published by Ultra Tunes (ASCAP) obo Trouble and Bass. / Indie Pop Music / Sony/ATV Tunes LLC (ASCAP) c/o Sony/ATV Music Publishing Canada (SOCAN). / WF Productions. All rights reserved. Used with permission. Courtesy of Spinnin' Records, arranged by Fine Gold Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "0BCA7DFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 184.688, + "mapName": "Dharma", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Dharma_mapContent" + }, + "parentMapName": "Dharma", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "008688FF", + "songColor_1B": "001926FF", + "songColor_2A": "FF0073FF", + "songColor_2B": "66005FFF" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Main", + "SWEAT", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Dharma", + "urls": { + "jmcs://jd-contents/Dharma/Dharma_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_AudioPreview.ogg/c8de375d2baa1dfdb492827cac01c876.ogg", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_HIGH.vp8.webm/de8e7e34a296bae2100b5c8a7e712742.webm", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_HIGH.vp9.webm/86fbbe537a630d2fb300303927783f07.webm", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_LOW.vp8.webm/e57840c62e78bfcd1b26e63f7794beb0.webm", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_LOW.vp9.webm/159371e5b16d0be21aece8bba5b921a8.webm", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_MID.vp8.webm/87e7a4f989c5ea9c66be2c0119ec47b7.webm", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_MID.vp9.webm/c47adfdbe35028720f35067c4b1e6397.webm", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_ULTRA.vp8.webm/12620ff07d43a7070f69f9b5152db7fe.webm", + "jmcs://jd-contents/Dharma/Dharma_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Dharma/Dharma_MapPreviewNoSoundCrop_ULTRA.vp9.webm/4623f9d703d4b60e84e92bc44951d501.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "6bd525810b4ad6013501b5eb12cf3c63", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Dharma/ps4/Dharma_MAIN_SCENE_ORBIS.zip/6bd525810b4ad6013501b5eb12cf3c63.zip", + "version": 3 + }, + "nx": { + "md5": "079735ff5b04fe70711070a50e5a17f4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Dharma/nx/Dharma_MAIN_SCENE_NX.zip/079735ff5b04fe70711070a50e5a17f4.zip", + "version": 3 + }, + "pc": { + "md5": "771f3c890b845e60d881a25802eb7c86", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Dharma/pc/771f3c890b845e60d881a25802eb7c86.zip", + "version": 1 + }, + "wiiu": { + "md5": "fcf05f13dfa40dd1b1db9642365654dc", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Dharma/wiiu/Dharma_MAIN_SCENE_WIIU.zip/fcf05f13dfa40dd1b1db9642365654dc.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DharmaALT.json b/justdanceonline-main/maps/DharmaALT.json new file mode 100644 index 0000000000000000000000000000000000000000..c8afef7316149c18ccc4b407ede462ef5d04fcb1 --- /dev/null +++ b/justdanceonline-main/maps/DharmaALT.json @@ -0,0 +1,130 @@ +{ + "artist": "Headhunterz & KSHMR", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_banner_bkg.tga.ckd/f1a84dd6da9317f70ce0a7822b6fb400.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_Coach_1.tga.ckd/61c409ac6eb9de08b74b6c7e4b97da0a.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_Coach_2.tga.ckd/f041f1655612f81b416f4ba1fe6d0903.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_Cover_Generic.tga.ckd/7db70175d422e8be39786fb6dd7af0c2.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Cover_1024.png/7f47070164ce74f99d1c1a46409e7f37.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_Cover_Online.tga.ckd/d704701d939ef5e814ddc93d92076cfc.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_Cover_AlbumBkg.tga.ckd/650adbb47db8276e57d493550f6863c1.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_Cover_AlbumCoach.tga.ckd/0d624065a123031ebc22f76af4c282f6.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Coach_1_Phone.png/4a824fae26e8cf93dc1ed7e7212d11b0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Coach_2_Phone.png/f9e6e970cf9041aed8663e7d15516c82.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Cover_Phone.jpg/c37de910ed97d8c70ca6b40764650a62.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_VideoPreview.webm/57e1a232b9628938877978797d6ce74f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_map_bkg.tga.ckd/94a188a0b9a44c3dde9c0cf9aec275b5.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_banner_bkg.tga.ckd/61a082d9f6d6cdb69b953463be508c09.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_Coach_1.tga.ckd/cd88d6988c0a48049f69d5893e422f75.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_Coach_2.tga.ckd/f6242ae3560419469e28c14e740b1f30.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_Cover_Generic.tga.ckd/7077355dddb6f37af6cfb3b8532b342b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Cover_1024.png/7f47070164ce74f99d1c1a46409e7f37.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_Cover_Online.tga.ckd/2c53b23921a1494d70c01409d2f338ee.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_Cover_AlbumBkg.tga.ckd/7c62c9f4214de19bcfb4c8044f92e70d.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_Cover_AlbumCoach.tga.ckd/2077b4cf18428e08130242a1fff66063.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Coach_1_Phone.png/4a824fae26e8cf93dc1ed7e7212d11b0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Coach_2_Phone.png/f9e6e970cf9041aed8663e7d15516c82.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Cover_Phone.jpg/c37de910ed97d8c70ca6b40764650a62.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_VideoPreview.webm/57e1a232b9628938877978797d6ce74f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_map_bkg.tga.ckd/9ccbfdb34d7fc91a14159e3f3d32851c.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_banner_bkg.tga.ckd/e748890e235e808034c5f4972b8585ed.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_Coach_1.tga.ckd/6ca873ad17a324c1825ec0b458e2dd1f.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_Coach_2.tga.ckd/39a4bcc69e50d607b7e5dc674d23188e.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_Cover_Generic.tga.ckd/5ca5933b2676ff2e6a2b0e4bc3cc2027.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Cover_1024.png/7f47070164ce74f99d1c1a46409e7f37.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_Cover_Online.tga.ckd/70f39e017936e8c61498a9e0d2d8a2b4.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_Cover_AlbumBkg.tga.ckd/124ffecf511957554654057f8fcaea45.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_Cover_AlbumCoach.tga.ckd/293fc167bcd2dac545169c4f6ae2ed76.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Coach_1_Phone.png/4a824fae26e8cf93dc1ed7e7212d11b0.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Coach_2_Phone.png/f9e6e970cf9041aed8663e7d15516c82.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_Cover_Phone.jpg/c37de910ed97d8c70ca6b40764650a62.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_VideoPreview.webm/57e1a232b9628938877978797d6ce74f.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22511,45023,67488,90000,112511,135024,157487,180000,202511,225023,247488,270000,292511,315024,337488,360000,382512,405023,427487,450000,472511,495023,517487,540000,562512,585023,607488,630000,652511,675023,697488,720000,742512,765024,787487,810000,832511,855023,877488,900000,922512,945023,967488,990000,1012511,1035024,1057488,1080000,1102511,1125024,1147488,1170000,1192512,1215024,1237488,1260000,1282511,1305023,1327488,1350000,1372511,1395024,1417488],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":386,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dharmaalt/dharmaalt_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Niles Howell-Dhar, Willem Rebergen and Friso Venema. Published by Ultra Tunes (ASCAP) obo Trouble and Bass. / Indie Pop Music / Sony/ATV Tunes LLC (ASCAP) c/o Sony/ATV Music Publishing Canada (SOCAN). / WF Productions. All rights reserved. Used with permission. Courtesy of Spinnin' Records, arranged by Fine Gold Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "E40006FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 184.688, + "mapName": "DharmaALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "DharmaALT_mapContent" + }, + "parentMapName": "Dharma", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "124988FF", + "songColor_1B": "011934FF", + "songColor_2A": "F9FCC4FF", + "songColor_2B": "40791EFF" + }, + "status": 9, + "sweatDifficulty": 3, + "tags": [ + "Alternate", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Dharma", + "urls": { + "jmcs://jd-contents/DharmaALT/DharmaALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_AudioPreview.ogg/d5933ab4258f817d8cc1959ca8263655.ogg", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/87d10aa3e25650b7ec21269a9e71521e.webm", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/3e6f3d9a1500308951b6359da2c84a88.webm", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_LOW.vp8.webm/b3cb32772add16d3c737a546b7b1d3a5.webm", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_LOW.vp9.webm/ef26f4f6b6593666d1489e2828d56fcd.webm", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_MID.vp8.webm/a2dc7bf3a4b75a1ec100bc077b72676c.webm", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_MID.vp9.webm/183b61a2e4a175a5dd5bd90632238977.webm", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/34dc9bf9c4f08b453ff22a26c8042d6c.webm", + "jmcs://jd-contents/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DharmaALT/DharmaALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/60da39a8aa6960f5552a475b5c8070d7.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "e96e9153ffacc6970d6ef81956b65e71", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DharmaALT/ps4/DharmaALT_MAIN_SCENE_ORBIS.zip/e96e9153ffacc6970d6ef81956b65e71.zip", + "version": 3 + }, + "nx": { + "md5": "5a4b21781e791b52925ee0dfaf91d29a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DharmaALT/nx/DharmaALT_MAIN_SCENE_NX.zip/5a4b21781e791b52925ee0dfaf91d29a.zip", + "version": 3 + }, + "pc": { + "md5": "4d7603d22ac76fdd3f7d9fa5efc3a5fc", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DharmaALT/pc/4d7603d22ac76fdd3f7d9fa5efc3a5fc.zip", + "version": 1 + }, + "wiiu": { + "md5": "132f09db97adc50c58fe53179e0d5a9a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DharmaALT/wiiu/DharmaALT_MAIN_SCENE_WIIU.zip/132f09db97adc50c58fe53179e0d5a9a.zip", + "version": 3 + } + }, + "mapType": "jdu", + "customTypeNameId": 14528 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Diamonds.json b/justdanceonline-main/maps/Diamonds.json new file mode 100644 index 0000000000000000000000000000000000000000..20e364a6ce1595db37febf8760c1b8a87634544d --- /dev/null +++ b/justdanceonline-main/maps/Diamonds.json @@ -0,0 +1,88 @@ +{ + "artist": "Rihanna", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_Cover_Generic.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_Cover_Generic.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_Cover_Generic.png", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/textures/Diamonds_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,31295,62591,93935,125231,156527,187823,219119,250415,281759,313055,344351,375647,406943,438239,469583,500879,532175,563471,594767,626063,657407,688703,719999,751295,782591,813935,845231,876527,907823,939119,970415,1001759,1033055,1064351,1095647,1126943,1158239,1189583,1220879,1252175,1283471,1314767,1346063],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":\"344\",\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":43,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/Diamonds/Diamonds_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "DA8634FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 344, + "mapName": "Diamonds", + "mapType": "custom", + "serverBoosterOnly": true, + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2015, + "packages": { + "mapContent": "Diamonds_mapContent" + }, + "parentMapName": "Diamonds", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "554899FF", + "songColor_1B": "1F0E69FF", + "songColor_2A": "8C72B3FF", + "songColor_2B": "111111FF" + }, + "status": 5, + "sweatDifficulty": 2, + "tags": [ + "Main" + ], + "title": "Diamonds", + "urls": { + "jmcs://jd-contents/Diamonds/Diamonds_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_AudioPreview.ogg", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm", + "jmcs://jd-contents/Diamonds/Diamonds_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/Diamonds_VideoPreview.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "21c62a5d88e80d7650d9554f476374f9", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/pc/pc_21c62a5d88e80d7650d9554f476374f9.zip", + "version": 2 + }, + "ps4": { + "md5": "7c97b52d57a35bf682ac9bc8a548ddb3", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/ps4/orbis_7c97b52d57a35bf682ac9bc8a548ddb3.zip", + "version": 1 + }, + "nx": { + "md5": "099fc33b94e775174a181bd159222da0", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/nx/nx_099fc33b94e775174a181bd159222da0.zip", + "version": 2 + }, + "orbis": { + "md5": "f474b535f6a237b482a24207f6267a04", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diamonds/orbis/orbis_f474b535f6a237b482a24207f6267a04.zip", + "version": 1 + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DibbyDibby.json b/justdanceonline-main/maps/DibbyDibby.json new file mode 100644 index 0000000000000000000000000000000000000000..08402486306cd73330a633f88d421dbbfb0535af --- /dev/null +++ b/justdanceonline-main/maps/DibbyDibby.json @@ -0,0 +1,94 @@ +{ + "artist": "DJ Fresh & Jay Fay Ft. Ms Dynamite", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_banner_bkg.jpg/f307f5abf58745a65ffcb3adc7b2f2b5.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_1.png/8a46baa2d98e63a09619c9e3f60f28d1.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_2.png/b732398c164ed0f10c9ab86d30e434e7.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_Generic.jpg/0b0895eff22b1b3d944d87d0757a600c.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_Online.jpg/a04c8fd18ded9ba7a707622b0d626494.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_AlbumCoach.png/4350166b404139603efb680c4790e44d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_1_Phone.png/8255e2a12f393477618070710e560b27.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_2_Phone.png/7bee123f8dfbb4b701205f98219355fa.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_Phone.jpg/a04c8fd18ded9ba7a707622b0d626494.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_banner_bkg.jpg/f307f5abf58745a65ffcb3adc7b2f2b5.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_1.png/8a46baa2d98e63a09619c9e3f60f28d1.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_2.png/b732398c164ed0f10c9ab86d30e434e7.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_Generic.jpg/0b0895eff22b1b3d944d87d0757a600c.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_Online.jpg/a04c8fd18ded9ba7a707622b0d626494.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_AlbumBkg.jpg/10b99f2aa1c4d04a1a3d5a1b4a2ec858.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_AlbumCoach.png/4350166b404139603efb680c4790e44d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_1_Phone.png/8255e2a12f393477618070710e560b27.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Coach_2_Phone.png/7bee123f8dfbb4b701205f98219355fa.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DibbyDibby/DibbyDibby_Cover_Phone.jpg/a04c8fd18ded9ba7a707622b0d626494.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,25714,51429,77143,102857,128572,154286,180000,205714,231429,257143,282857,308572,334286,360000,385714,411429,437143,462857,488572,514286,540000,565714,591429,617143,642857,668572,694286,720000,745714,771429,797143,822857,848572,874286,900000,925714,951429,977143,1002857,1028572,1054286,1080000,1105714,1131429,1157143,1182857,1208572,1234286,1260000,1285714,1311429,1337143,1362857,1388572,1414286],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":361,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":55,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dibbydibby/dibbydibby_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Daniel Edward Stein, George Astasio, Jason Andrew Pebworth, Joshua Fagin, Niomi Daley and Jonathan Shave. Published by Tunefirst Limited (PRS) / Sony/ATV Music Publishing (UK) Limited (PRS) / Sony/ATV Music Publishing Allegro (UK) (PRS) / EMI Music Publishing Ltd. (PRS) / Universal Music Publishing Canada on behalf of Astasio Music Ltd., Universal Music Publishing Ltd. and Pebworth Music Ltd. All rights reserved. Used with permission. Courtesy of Sony Music Entertainment (UK) Ltd. By arrangement with Sony Music Entertainment.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "3AF2BAFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 195, + "mapName": "DibbyDibby", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "DibbyDibby_mapContent" + }, + "parentMapName": "DibbyDibby", + "skuIds": [], + "songColors": { + "songColor_1A": "B712CCFF", + "songColor_1B": "32416BFF", + "songColor_2A": "E0DEE9FF", + "songColor_2B": "F9CE31FF" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Dibby Dibby Sound", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "557e522f5b7635710b7fa95662acd75f", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/ps4/DibbyDibby_MAIN_SCENE_ORBIS.zip/557e522f5b7635710b7fa95662acd75f.zip", + "version": 1 + }, + "nx": { + "md5": "9c7200c172ae98006c9b97874bc00952", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/nx/DibbyDibby_MAIN_SCENE_NX.zip/9c7200c172ae98006c9b97874bc00952.zip", + "version": 1 + }, + "pc": { + "md5": "80a340a782f9b6f8480fc50adfc143d7", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DibbyDibby/pc/80a340a782f9b6f8480fc50adfc143d7.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/DibbyDibby/DibbyDibby_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_AudioPreview.ogg/045e4ebfa839efc8bbb1552b0f95f2f9.ogg", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_HIGH.vp8.webm/f3f2ab852b1fb16e0c32f607706372d6.webm", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_HIGH.vp9.webm/35e3415edbed096fa7ac59acc728da94.webm", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_LOW.vp8.webm/0c02e2a70ac77139c5a2d4b13f320a69.webm", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_LOW.vp9.webm/0bb3c4799dce751e54c2369fd00f83cf.webm", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_MID.vp8.webm/dc662e4287449c84e32a961ecaff644d.webm", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_MID.vp9.webm/29ed57aeae19e01807668aaf124db8d3.webm", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_ULTRA.vp8.webm/26b9e0f9173ef913aee479fc7c42d54a.webm", + "jmcs://jd-contents/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DibbyDibby/DibbyDibby_MapPreviewNoSoundCrop_ULTRA.vp9.webm/0ced6cccaec81d6f22c4a57b8842eb42.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Diggy.json b/justdanceonline-main/maps/Diggy.json new file mode 100644 index 0000000000000000000000000000000000000000..84357cd34aea27460f6cf9b2ba8e24af8c140920 --- /dev/null +++ b/justdanceonline-main/maps/Diggy.json @@ -0,0 +1,123 @@ +{ + "artist": "Spencer Ludwig", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_banner_bkg.tga.ckd/41cd26f1bb1b54d5880c2916dd70802a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_Coach_1.tga.ckd/6d77996998e9857515104360a6951284.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_Cover_Generic.tga.ckd/56e4d2c6e5619f6ea346923642879161.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Cover_1024.png/ab196c03d9550176eb1ff925552eef71.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_Cover_Online.tga.ckd/e09137367a91c76f7d9adfa39db5d02e.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_Cover_AlbumBkg.tga.ckd/097df7a90a5b43473f151b8949e8dba2.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_Cover_AlbumCoach.tga.ckd/076d64712c6a282b78ea24bc667af96c.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Coach_1_Phone.png/850cac99431255b33849013c6a8a8aed.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Cover_Phone.jpg/199facb562366d26f7a9412e95c3e940.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_VideoPreview.webm/924596f4c1d740efa538832675d6500c.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_map_bkg.tga.ckd/bc79a4c136ab5887c65d8e1d590e4464.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_banner_bkg.tga.ckd/d7ebe8e413064a349f9bd0d3ef0e7654.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_Coach_1.tga.ckd/f905f1f0a28bb8ea99c1e0d9cf9a9dc7.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_Cover_Generic.tga.ckd/b39dbfbd0b141cffaafa703e68db50a6.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Cover_1024.png/ab196c03d9550176eb1ff925552eef71.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_Cover_Online.tga.ckd/56e2db6e87ce0109582bcff3aa1398b4.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_Cover_AlbumBkg.tga.ckd/5b8793fcc8a6b0332422a71c3bb168e4.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_Cover_AlbumCoach.tga.ckd/f0df5d15ff070490a8a76413c5fe8732.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Coach_1_Phone.png/850cac99431255b33849013c6a8a8aed.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Cover_Phone.jpg/199facb562366d26f7a9412e95c3e940.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_VideoPreview.webm/924596f4c1d740efa538832675d6500c.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_map_bkg.tga.ckd/09309d1891326663b8471acceb8f88f7.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/wiiu/Diggy_banner_bkg.tga.ckd/7ebdab6a6ca6f04ee950ec2a6e0938f5.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/wiiu/Diggy_Coach_1.tga.ckd/21a433e215067facbcf3a742f72fd789.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/wiiu/Diggy_Cover_Generic.tga.ckd/535b4204dc3f8c323e11689c4f0a54b1.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Cover_1024.png/ab196c03d9550176eb1ff925552eef71.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/wiiu/Diggy_Cover_Online.tga.ckd/b837a060495a35a7db8cfa34d04ad357.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/wiiu/Diggy_Cover_AlbumBkg.tga.ckd/001b1c194ce883bc20bc8cb2ce85f1cb.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/wiiu/Diggy_Cover_AlbumCoach.tga.ckd/545185ee9115182d3d5b4907be097e25.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Coach_1_Phone.png/850cac99431255b33849013c6a8a8aed.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_Cover_Phone.jpg/199facb562366d26f7a9412e95c3e940.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_VideoPreview.webm/924596f4c1d740efa538832675d6500c.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26160,52368,78528,104736,130896,157104,183264,209472,235632,261840,288000,314160,340368,366528,392736,418896,445104,471264,497472,523632,549840,576000,602160,628367,654527,680735,706895,733103,759263,785471,811631,837839,863999,890159,916367,942527,968735,994895,1021103,1047263,1073471,1099631,1125839,1151999,1178159,1204367,1230527,1256735,1282895,1309103,1335263,1361471,1387631,1413839,1439999],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":373,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":55,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/diggy/diggy_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Rachid Aziz, Lee Anna McCollum, Nadir Khayat, Spencer Ludwig, Daniel Leonard Nigro and Tom Peyton. Published by Songs of RedOne / Sony/ATV Songs LLC (BMI) c/o Sony/ATV Music Publishing Canada (SOCAN). / Spencer Ludwig Music Publishing (BMI) administered by Songs of Kobalt Music Publishing. / Brought To You By Heavy Duty (ASCAP). / BMG Platinum Songs on behalf of Song Of Reach Music, Songs From The Boardwalk, Lord Boyce, and BMG Gold Songs on behalf of Green And Bloom Smashes, Lee Anna James Music, and Lee Anna McCollum. All rights administered to BMG Rights Management (US) LLC. / Hits Change Everything. All rights reserved. Used with permission. (P) Line: 2016 Warner Bros. Records Inc. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "00E1E1FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 203.45499999999998, + "mapName": "Diggy", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Diggy_mapContent" + }, + "parentMapName": "Diggy", + "skuIds": [ + "jd2018-nx-all", + "jd2018-ps4-scea", + "jd2018-ps4-scee", + "jd2018-wiiu-noa", + "jd2018-wiiu-noe", + "jd2018-xone-emea", + "jd2018-xone-ncsa" + ], + "songColors": { + "songColor_1A": "EA45FFFF", + "songColor_1B": "190033FF", + "songColor_2A": "FFC300FF", + "songColor_2B": "E26B00FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2018" + ], + "title": "Diggy", + "urls": { + "jmcs://jd-contents/Diggy/Diggy_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_AudioPreview.ogg/22feb3393e5410e2a85a5c0e227b626d.ogg", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_HIGH.vp8.webm/1dc63fa4be4258b6f83e8c6a2d387f8b.webm", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_HIGH.vp9.webm/4be2c730341fc31f2b5638d99f0c3229.webm", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_LOW.vp8.webm/5a008af82319c23277780296d56fbcf2.webm", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_LOW.vp9.webm/3d676050756dfadc1be4d830ba22b502.webm", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_MID.vp8.webm/44f3b2f33aa0e655118ba0d6c288bd29.webm", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_MID.vp9.webm/1fc5d602dca69d2403d119694f627b76.webm", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_ULTRA.vp8.webm/13c8f1f8727e2463d8f8a718a4829873.webm", + "jmcs://jd-contents/Diggy/Diggy_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Diggy/Diggy_MapPreviewNoSoundCrop_ULTRA.vp9.webm/1fbaed9e7f9b7bbc8707699114e98221.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "2dbfb11be2eced28ea4f919d9d09242a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Diggy/ps4/Diggy_MAIN_SCENE_ORBIS.zip/2dbfb11be2eced28ea4f919d9d09242a.zip", + "version": 3 + }, + "nx": { + "md5": "0dec0e08873e46590bdc8cddd136026d", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Diggy/nx/Diggy_MAIN_SCENE_NX.zip/0dec0e08873e46590bdc8cddd136026d.zip", + "version": 3 + }, + "pc": { + "md5": "d25407aeea0168c005fd168987c5fb67", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Diggy/pc/d25407aeea0168c005fd168987c5fb67.zip", + "version": 1 + }, + "wiiu": { + "md5": "46a70b8ee6a7ba5becab2cf5a413c4ac", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Diggy/wiiu/Diggy_MAIN_SCENE_WIIU.zip/46a70b8ee6a7ba5becab2cf5a413c4ac.zip", + "version": 3 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Disturbia.json b/justdanceonline-main/maps/Disturbia.json new file mode 100644 index 0000000000000000000000000000000000000000..83d40e30d5e517d11c314b99acfa2a86bc4bec01 --- /dev/null +++ b/justdanceonline-main/maps/Disturbia.json @@ -0,0 +1,91 @@ +{ + "artist": "Rihanna", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/textures/Disturbia_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23226,46452,69678,92904,116129,139355,162581,185807,209033,232258,255484,278710,301936,325162,348388,371613,394839,418065,441291,464517,487742,510968,534194,557420,580646,603871,627097,650323,673549,696775,720000,743226,766452,789678,812904,836129,859355,882581,905807,929033,952258,975484,998710,1021936,1045162,1068388,1091613,1114839,1138065,1161291,1184517,1207742,1230968,1254194,1277420,1300646,1323871,1347097,1370323,1393549,1416775],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":394,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/Disturbia/Disturbia_AudioPreview.ogg\"}\"", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "28BB77FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "Disturbia", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 4, + "packages": { + "mapContent": "Disturbia_mapContent" + }, + "parentMapName": "Disturbia", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "176289FF", + "songColor_1B": "153170FF", + "songColor_2A": "5E039CFF", + "songColor_2B": "3F115EFF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Disturbia", + "urls": { + "jmcs://jd-contents/Disturbia/Disturbia_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/Disturbia_AudioPreview.ogg", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm", + "jmcs://jd-contents/Disturbia/Disturbia_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/Disturbia_VideoPreview.vp8.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "ae06b90da42a533c433b8b4ee6ef3c87", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/pc/ae06b90da42a533c433b8b4ee6ef3c87.zip", + "version": 1 + }, + "nx": { + "md5": "2d3254a8b9268e36c37b3de73c345e9b", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Disturbia/nx/2d3254a8b9268e36c37b3de73c345e9b.zip", + "version": 1 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DjaDja.json b/justdanceonline-main/maps/DjaDja.json new file mode 100644 index 0000000000000000000000000000000000000000..87696faafad7797e1b2f92068b078b9701169215 --- /dev/null +++ b/justdanceonline-main/maps/DjaDja.json @@ -0,0 +1,102 @@ +{ + "artist": "Aya Nakamura", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_banner_bkg.tga.ckd/1f2a08932de8f8de2f021dc5c2a2b80a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_Coach_1.tga.ckd/908ef6917fc589c3b50bf78ff2a48b7e.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_Cover_Generic.tga.ckd/9921fa1a66332831f6988e0aed3a91e0.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_Cover_1024.png/dd13cfbb1147809ae34a7baa4bfe4205.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_Cover_Online.tga.ckd/ced081b00d129fee90ccb8bd1498aa46.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_Cover_AlbumBkg.tga.ckd/3ec05a38ac08e089abafc768c4d52873.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_Cover_AlbumCoach.tga.ckd/aad2aebc2e4ac711ceeb48f3db4bffdc.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_Coach_1_Phone.png/48fad59fb36e966fc9f6f082ee8edf1a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_Cover_Phone.jpg/535fe50fbe36902ab530dd524db5643e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_VideoPreview.webm/898b789f952c801129eb0dfb2500169f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_map_bkg.tga.ckd/376ff557f236fbbfc38064d460992931.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_banner_bkg.tga.ckd/241def8a579a7e935e77f8a590831648.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_Coach_1.tga.ckd/22243d93765eafc6633f37b09504310c.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_Cover_Generic.tga.ckd/e67730282aefcf72d42bd746fbb974d9.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_Cover_1024.png/dd13cfbb1147809ae34a7baa4bfe4205.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_Cover_Online.tga.ckd/b50c70815669ee97e08e74f861abc4ff.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_Cover_AlbumBkg.tga.ckd/18076bb61c8de1d906fc6788e5a1bd54.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_Cover_AlbumCoach.tga.ckd/084adb8d9ca75de211eb265719a8faf8.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_Coach_1_Phone.png/48fad59fb36e966fc9f6f082ee8edf1a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_Cover_Phone.jpg/535fe50fbe36902ab530dd524db5643e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_VideoPreview.webm/898b789f952c801129eb0dfb2500169f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_map_bkg.tga.ckd/e5afd3a4b04c2584dcfc68819d237ff7.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,29388,58776,88163,117551,146939,176327,205714,235102,264490,293878,323265,352653,382041,411429,440816,470204,499592,528980,558367,587755,617143,646531,675918,705306,734694,764082,793469,822857,852245,881633,911020,940408,969796,999184,1028571,1057959,1087347,1116735,1146122,1175510,1204898,1234286,1263673,1293061,1322449,1351837,1381224,1410612],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-10,\"endBeat\":277,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":48,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/djadja/djadja_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Machynist, Some 1NE, Alois Zandry and Aya Nakamura. Published by Universal Music Publishing on behalf of itself, Perspective Productions, and 6 et 7 with permission from Universal Music Publishing Film & TV. / Warner Chappell Music France. Courtesy of Warner France France. (P) 2018 Rec. 118 / Warner Music France, a Warner Music Group Company. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "3AFE9CFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 175.715, + "mapName": "DjaDja", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2020, + "packages": { + "mapContent": "DjaDja_mapContent" + }, + "parentMapName": "DjaDja", + "skuIds": [], + "songColors": { + "songColor_1A": "FF967FFF", + "songColor_1B": "FF173EFF", + "songColor_2A": "FFCE74FF", + "songColor_2B": "E27D19FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Djadja", + "urls": { + "jmcs://jd-contents/DjaDja/DjaDja_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_AudioPreview.ogg/1f0f855e29a9469f511e8813aed32e23.ogg", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_HIGH.vp8.webm/335e2fd20dbe7f7f4435327c945714bd.webm", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_HIGH.vp9.webm/1ca924f2b6cf5113604f56d1389998b6.webm", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_LOW.vp8.webm/09ea0b771ded08d712b1fa3ef4e948e4.webm", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_LOW.vp9.webm/81ce2a66a568a1895c7398bce2992798.webm", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_MID.vp8.webm/176a54a7911d3afdee3f64ce353f146a.webm", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_MID.vp9.webm/4cf3c0b36085080f8f6cfc770710e0a4.webm", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_ULTRA.vp8.webm/80279e44f2b0ca50e249ae040b4f5885.webm", + "jmcs://jd-contents/DjaDja/DjaDja_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DjaDja/DjaDja_MapPreviewNoSoundCrop_ULTRA.vp9.webm/b55bb5b8ed8521bcf6641762123e20cd.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "59d1c8d8f2a16dfab189559576244e10", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DjaDja/ps4/DjaDja_MAIN_SCENE_ORBIS.zip/59d1c8d8f2a16dfab189559576244e10.zip", + "version": 31 + }, + "nx": { + "md5": "976f218cf761ab9b013ac44496b9a63e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DjaDja/nx/DjaDja_MAIN_SCENE_NX.zip/976f218cf761ab9b013ac44496b9a63e.zip", + "version": 31 + }, + "pc": { + "md5": "67520df2330dc4d46c67e72d48fa5afc", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DjaDja/pc/DjaDja_MAIN_SCENE_PC.zip/67520df2330dc4d46c67e72d48fa5afc.zip", + "version": 11 + }, + "wiiu": { + "md5": "f3a1abe890970e1b01c2a4ed3868f941", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DjaDja/wiiu/DjaDja_MAIN_SCENE_WIIU.zip/f3a1abe890970e1b01c2a4ed3868f941.zip", + "version": 25 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DoneForMe.json b/justdanceonline-main/maps/DoneForMe.json new file mode 100644 index 0000000000000000000000000000000000000000..b1b24055af225f5c32df8f0dc21edbaee1191ea8 --- /dev/null +++ b/justdanceonline-main/maps/DoneForMe.json @@ -0,0 +1,117 @@ +{ + "artist": "Charlie Puth ft. Kehlani", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_banner_bkg.tga.ckd/0c1b2348960f297bee2b6d06fe69db33.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_Coach_1.tga.ckd/d37873dc24739e6299e70e4aa368b290.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_Coach_2.tga.ckd/4628373d4e5dee2aeb0bf5ae0091b1c8.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_Cover_Generic.tga.ckd/cc4478c7e5a9573cc0c8971078df69fc.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Cover_1024.png/4fe15d5b52afdfc5032ff3189cedb125.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_Cover_Online.tga.ckd/b5b6cbd3ad7531b9efbda26f1bc5b41a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_Cover_AlbumBkg.tga.ckd/3a5898e084b27e75ae2a439d4cf6b880.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_Cover_AlbumCoach.tga.ckd/67f922c6cdfc2acd09cfb55b9aedcaf8.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Coach_1_Phone.png/19d267f547a9c9fe85933b9f6afa0866.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Coach_2_Phone.png/8fa656d15c0540bd4218fec7af8d29d4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Cover_Phone.jpg/185a0c5314c8f51c4ba72ad3068799bc.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_map_bkg.tga.ckd/64a8b61398edc3ec7574fa7dfe2ed877.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_banner_bkg.tga.ckd/fce4e7cdad36946a489ecc365bfcdec5.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_Coach_1.tga.ckd/ef3f6b2201e7765ed017467bd779455a.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_Coach_2.tga.ckd/6db67b1ef90822e1c2076dcb7da58384.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_Cover_Generic.tga.ckd/518bc3d42b01092d61050aca39008d75.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Cover_1024.png/4fe15d5b52afdfc5032ff3189cedb125.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_Cover_Online.tga.ckd/fcedb3c4102413c5eae56e5fdc035785.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_Cover_AlbumBkg.tga.ckd/bdd1260ab3297bb0f992f52c15a841ca.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_Cover_AlbumCoach.tga.ckd/6b2df1dfdb6dbe681351015814c22848.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Coach_1_Phone.png/19d267f547a9c9fe85933b9f6afa0866.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Coach_2_Phone.png/8fa656d15c0540bd4218fec7af8d29d4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Cover_Phone.jpg/185a0c5314c8f51c4ba72ad3068799bc.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_map_bkg.tga.ckd/352ded8972301d4094419c127effb6ee.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_banner_bkg.tga.ckd/528bc86edd1e8680a8620b6938facf63.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_Coach_1.tga.ckd/63577adc848e118aeb1244f91fb6886e.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_Coach_2.tga.ckd/a4c211fcad17c3bb3f783f1bdef95a8e.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_Cover_Generic.tga.ckd/99e403160981f10d77d1c00d7508f68e.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Cover_1024.png/4fe15d5b52afdfc5032ff3189cedb125.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_Cover_Online.tga.ckd/f7c8a208a7338be1ab9fedd16095203d.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_Cover_AlbumBkg.tga.ckd/110d07ed7e721c721ddd069a97f1abae.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_Cover_AlbumCoach.tga.ckd/98f26b4472c45eeeb3b95fe0d7bc9653.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Coach_1_Phone.png/19d267f547a9c9fe85933b9f6afa0866.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Coach_2_Phone.png/8fa656d15c0540bd4218fec7af8d29d4.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_Cover_Phone.jpg/185a0c5314c8f51c4ba72ad3068799bc.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,25728,51408,77136,102864,128544,154272,180000,205728,231407,257135,282863,308543,334272,360000,385727,411408,437136,462863,488544,514272,540000,565727,591408,617136,642864,668544,694272,720000,745728,771408,797136,822864,848544,874272,900000,925728,951408,977136,1002864,1028543,1054271,1080000,1105728,1131407,1157136,1182864,1208544,1234272,1260000,1285728,1311408,1337136,1362864,1388544,1414272],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":358,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":55,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/doneforme/doneforme_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Charlie Puth, John Ryan, Jacob Hindlin and Kehlani Parrish. Published by Kobalt Music Services America Inc. (KMSA) obo Prescription Songs (ASCAP) / Artist 101 Publishing Group (BMI) / KMR Music Royalties II SCSp / Charlie Puth Music Publishing (BMI). / Don Wyan Music administered by Words and Music International. / Kehlani Music (ASCAP). Courtesy of Atlantic Records. By arrangement with Warner Music Group Film & TV Licensing. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FD9AA8FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 193.929, + "mapName": "DoneForMe", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "DoneForMe_mapContent" + }, + "parentMapName": "DoneForMe", + "skuIds": [], + "songColors": { + "songColor_1A": "73108FFF", + "songColor_1B": "090030FF", + "songColor_2A": "00FCFFFF", + "songColor_2B": "001B37FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Done For Me", + "urls": { + "jmcs://jd-contents/DoneForMe/DoneForMe_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_AudioPreview.ogg/bc5a2beb362be44e8be75b3ff44d8b2b.ogg", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_HIGH.vp8.webm/9175505d7769561e8ae108ca68e3c5dd.webm", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_HIGH.vp9.webm/7305862aba70af769899a92efae69d0f.webm", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_LOW.vp8.webm/fee614365a95a91fe05cb6a8c47f3ff7.webm", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_LOW.vp9.webm/858a4a4aca1152b6a66f49ef323b072c.webm", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_MID.vp8.webm/aecbdcc4bd2f4e2e9d25be9b082b7f67.webm", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_MID.vp9.webm/12c9742e889ffd936451b0201deb946c.webm", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm/eff4b22693d78c34234af52af309f142.webm", + "jmcs://jd-contents/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DoneForMe/DoneForMe_MapPreviewNoSoundCrop_ULTRA.vp9.webm/716626aa97fe3dd192362f7030941db0.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "7609838d7ffaabf01e7e6cb6f474a2ca", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DoneForMe/ps4/DoneForMe_MAIN_SCENE_ORBIS.zip/7609838d7ffaabf01e7e6cb6f474a2ca.zip", + "version": 24 + }, + "nx": { + "md5": "792958e29bfbb98f80ded4bd49bc88b7", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DoneForMe/nx/DoneForMe_MAIN_SCENE_NX.zip/792958e29bfbb98f80ded4bd49bc88b7.zip", + "version": 24 + }, + "pc": { + "md5": "1d1a8f1a04a9c55f0f3def7d330ae617", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DoneForMe/pc/DoneForMe_MAIN_SCENE_PC.zip/1d1a8f1a04a9c55f0f3def7d330ae617.zip", + "version": 13 + }, + "wiiu": { + "md5": "03a96faabe10ce7fc4e93d7a33a39ba4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DoneForMe/wiiu/DoneForMe_MAIN_SCENE_WIIU.zip/03a96faabe10ce7fc4e93d7a33a39ba4.zip", + "version": 24 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DontCall.json b/justdanceonline-main/maps/DontCall.json new file mode 100644 index 0000000000000000000000000000000000000000..e955fc0e1d1c963bf795f1452317798b27e21473 --- /dev/null +++ b/justdanceonline-main/maps/DontCall.json @@ -0,0 +1,102 @@ +{ + "artist": "Mabel", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_banner_bkg.tga.ckd/a4dfffd243ced95bf25143ebf4956200.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_Coach_1.tga.ckd/0446a8e05e1d4988603588052380e0df.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_Cover_Generic.tga.ckd/9363eaf98038fc8c5857af636e1247c1.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_Cover_1024.png/43505a4ea17dca88d67aa4111ef147fa.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_Cover_Online.tga.ckd/8ab4e2779536335a4d51a9da63b08c9a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_Cover_AlbumBkg.tga.ckd/8deaf5664d0c257483c8f76b31888b59.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_Cover_AlbumCoach.tga.ckd/94409988fb29b989c9e7c418aae7a807.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_Coach_1_Phone.png/281604e4eaf509d40281e0c3f109b7b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_Cover_Phone.jpg/8c75fb3c7115f9577bc7a9b4b325ad46.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_VideoPreview.webm/3f28d2830bd0a88103f59943c4f2b3f3.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_map_bkg.tga.ckd/e4adfab336656a8e69a5c7688fbefdaa.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_banner_bkg.tga.ckd/d09d02080bfb539830d22e171d6b957e.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_Coach_1.tga.ckd/1bccaf5c5387ba4fe5ed0656cd118f1b.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_Cover_Generic.tga.ckd/b35fed89f50df4383f2d7353dc72c31b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_Cover_1024.png/43505a4ea17dca88d67aa4111ef147fa.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_Cover_Online.tga.ckd/7cfdbbc133e7bf46daa6e936a737442e.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_Cover_AlbumBkg.tga.ckd/3f916d5ee3e3eaaf2d340e580313ee4e.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_Cover_AlbumCoach.tga.ckd/dae7b4f22f6097bc1d81ce4e726fcff6.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_Coach_1_Phone.png/281604e4eaf509d40281e0c3f109b7b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_Cover_Phone.jpg/8c75fb3c7115f9577bc7a9b4b325ad46.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_VideoPreview.webm/3f28d2830bd0a88103f59943c4f2b3f3.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_map_bkg.tga.ckd/ed6c21732e0b5ea46822a743869c7599.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,29088,58176,87264,116352,145440,174528,203616,232704,261792,290880,319968,349056,378144,407232,436320,465408,494496,523584,552672,581760,610848,639936,669023,698111,727199,756287,785375,814463,843551,872639,901727,930815,959903,988991,1018079,1047167,1076255,1105343,1134431,1163519,1192607,1221695,1250783,1279871,1308959,1338047,1367135,1396223,1425311],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":292,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":49,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dontcall/dontcall_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Camille Angelina Purcell, Mabel McVey and Steve Mac. Published by BMG Gold Songs (ASCAP), BMG Platinum Songs US (BMI). / Universal Music Publishing Limited. Courtesy of Polydor Records Ltd/Capitol Records under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "F8920EFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 178.76999999999998, + "mapName": "DontCall", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2020, + "packages": { + "mapContent": "DontCall_mapContent" + }, + "parentMapName": "DontCall", + "skuIds": [], + "songColors": { + "songColor_1A": "ECD4B6FF", + "songColor_1B": "3C2D61FF", + "songColor_2A": "0FBF71FF", + "songColor_2B": "CC1AE0FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Don't Call Me Up", + "urls": { + "jmcs://jd-contents/DontCall/DontCall_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_AudioPreview.ogg/6b030e469e9a93be4265f814f8d68423.ogg", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_HIGH.vp8.webm/aed3a76b772a92713d12ab46e0501078.webm", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_HIGH.vp9.webm/6ec689268fed2f0053f323d949ce9795.webm", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_LOW.vp8.webm/4cda1a634841f77fc59c1c144a37b72c.webm", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_LOW.vp9.webm/62fdb74b4f2460989871dd681ebe4228.webm", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_MID.vp8.webm/22479efce94853fac4144a70653f470b.webm", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_MID.vp9.webm/542c6cc34606b0cd859a2ef399b8667c.webm", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_ULTRA.vp8.webm/b4536ad1db17e766411991c56bab2e74.webm", + "jmcs://jd-contents/DontCall/DontCall_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontCall/DontCall_MapPreviewNoSoundCrop_ULTRA.vp9.webm/80206d4058e13ac4fc9a30b24b7d5e47.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "5ad35bc621f4e72e3735275874ca1e89", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontCall/ps4/DontCall_MAIN_SCENE_ORBIS.zip/5ad35bc621f4e72e3735275874ca1e89.zip", + "version": 48 + }, + "nx": { + "md5": "118cb1be2202b621e137fda090cac02b", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontCall/nx/DontCall_MAIN_SCENE_NX.zip/118cb1be2202b621e137fda090cac02b.zip", + "version": 48 + }, + "pc": { + "md5": "317be6400ebb58b3ab343c6546200051", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontCall/pc/DontCall_MAIN_SCENE_PC.zip/317be6400ebb58b3ab343c6546200051.zip", + "version": 38 + }, + "wiiu": { + "md5": "9d416ff625ec2ccc4223f87447276053", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontCall/wiiu/DontCall_MAIN_SCENE_WIIU.zip/9d416ff625ec2ccc4223f87447276053.zip", + "version": 15 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DontKnowMe.json b/justdanceonline-main/maps/DontKnowMe.json new file mode 100644 index 0000000000000000000000000000000000000000..5575b3b02c3e25bb4c778a07fd6950504269a4d1 --- /dev/null +++ b/justdanceonline-main/maps/DontKnowMe.json @@ -0,0 +1,114 @@ +{ + "artist": "Jax Jones Ft. RAYE", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_banner_bkg.tga.ckd/c96ac5b9f92dfb2d92c1568f8e44ba89.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_Coach_1.tga.ckd/6ba9c04b4828f2af704bd7367bee55f4.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_Cover_Generic.tga.ckd/b68404ee250559af6991f9e449745d9c.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Cover_1024.png/59b7d88faf577034ee4316be2b80cc57.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_Cover_Online.tga.ckd/50d250e29c83df361c1195f8a2a997a0.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_Cover_AlbumBkg.tga.ckd/b8efaf8dde2f93c0fa303310d5871b72.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_Cover_AlbumCoach.tga.ckd/63fa13bc57e5f9c0ef44cd65c769ffbd.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Coach_1_Phone.png/8044681fdec13d73dbf3ecbe91886e5f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Cover_Phone.jpg/be61a8408f6a44e928db0f77a22413c4.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_VideoPreview.webm/c71045dc4083f46ccf8b460e1a1e1d76.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_map_bkg.tga.ckd/4e1d018cc4a78d3565b53d805c1f24ba.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_banner_bkg.tga.ckd/9b2b2227c7b0dc02f8a0ece003b1c220.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_Coach_1.tga.ckd/e369001fc46602ad6d23b4cb5695b1cb.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_Cover_Generic.tga.ckd/29ac41f789b904d56608179cf29f07a7.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Cover_1024.png/59b7d88faf577034ee4316be2b80cc57.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_Cover_Online.tga.ckd/3694361de370f948ac5cd1e896cb5b1a.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_Cover_AlbumBkg.tga.ckd/9922969cd3f7b9473aeb5427bb1a91e2.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_Cover_AlbumCoach.tga.ckd/5b0b00df102c88ddd642b69289305d14.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Coach_1_Phone.png/8044681fdec13d73dbf3ecbe91886e5f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Cover_Phone.jpg/be61a8408f6a44e928db0f77a22413c4.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_VideoPreview.webm/c71045dc4083f46ccf8b460e1a1e1d76.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_map_bkg.tga.ckd/9c246763291fc3d4632c57ea1f20d3a2.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/wiiu/DontKnowMe_banner_bkg.tga.ckd/622c5cb70c1b95fc1ffd5b7c107c5e29.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/wiiu/DontKnowMe_Coach_1.tga.ckd/9ceac14f1521ba9b8a0448a5cd138206.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/wiiu/DontKnowMe_Cover_Generic.tga.ckd/eb04ef26f6d2fa23a66a9992a94b5a40.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Cover_1024.png/59b7d88faf577034ee4316be2b80cc57.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/wiiu/DontKnowMe_Cover_Online.tga.ckd/b27c101fb0f1fd17284a8ab7974873ec.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/wiiu/DontKnowMe_Cover_AlbumBkg.tga.ckd/7b2fa8171990e3665c7abafa9df2f43c.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/wiiu/DontKnowMe_Cover_AlbumCoach.tga.ckd/247f9c02249cce6bce3c334cc17c16e6.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Coach_1_Phone.png/8044681fdec13d73dbf3ecbe91886e5f.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_Cover_Phone.jpg/be61a8408f6a44e928db0f77a22413c4.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_VideoPreview.webm/c71045dc4083f46ccf8b460e1a1e1d76.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23232,46464,69696,92880,116112,139344,162576,185808,209040,232272,255504,278688,301920,325152,348384,371616,394848,418080,441312,464497,487729,510961,534193,557425,580657,603889,627121,650305,673537,696769,720001,743233,766465,789697,812881,836113,859345,882577,905810,929042,952274,975506,998690,1021922,1045154,1068386,1091618,1114850,1138082,1161314,1184498,1207730,1230962,1254194,1277426,1300658,1323890,1347123,1370307,1393539,1416771],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-6,\"endBeat\":440,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dontknowme/dontknowme_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Janee Millicent Lucy Bennett, Timucin Lam, DJ Pat Bo, MNEK, Peter Hayo, Arno Kammermeier, Rachel Keen, Walter Merziger and Phil D. Young. Published by Universal Music Publishing AB. / Hanseatic Musikverlag GMBH. (GEMA) and Warner/Chappell Music Ltd. (PRS). All rights on behalf of Hanseatic Musikverlag GMBH. and Warner/Chappell Music Ltd. Administered by WB Music Corp. / Kobalt Songs Music Publishing obo Funky Wonton Ltd. (ASCAP) / Mila Publishing Edition. Courtesy of Polydor Records Ltd/Interscope Records under license from Universal Music Enterprises. / Etcetc Music Pty Ltd. All rights of the producer and other right holders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "F97A13FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 215.80599999999998, + "mapName": "DontKnowMe", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "DontKnowMe_mapContent" + }, + "parentMapName": "DontKnowMe", + "skuIds": [], + "songColors": { + "songColor_1A": "AD2A2AFF", + "songColor_1B": "333645FF", + "songColor_2A": "D9EAF2FF", + "songColor_2B": "DFAF3FFF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "You Don't Know Me", + "urls": { + "jmcs://jd-contents/DontKnowMe/DontKnowMe_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_AudioPreview.ogg/18a790889b74a7811e65ba2b9ec895ec.ogg", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_HIGH.vp8.webm/9925bc993c9ccf6f51d2ecbbbe1c020a.webm", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_HIGH.vp9.webm/33a4689170349a1550d4184015d9575e.webm", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_LOW.vp8.webm/5d81ca9a0a34ee5aac9bb49fd203e633.webm", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_LOW.vp9.webm/d8ab347d5c31205b7de1a8d702874393.webm", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_MID.vp8.webm/688e845af2d5d37fb406641a1b5854eb.webm", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_MID.vp9.webm/2e3ba5a2c0b1ab64bbf721828f85cb58.webm", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm/7f9bdcba675ce146ece44c113f473903.webm", + "jmcs://jd-contents/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontKnowMe/DontKnowMe_MapPreviewNoSoundCrop_ULTRA.vp9.webm/085c1d31fa8f6788db2498ac83d60d4d.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "8140c674eff48a6301db2b45b9a72ee1", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontKnowMe/ps4/DontKnowMe_MAIN_SCENE_ORBIS.zip/8140c674eff48a6301db2b45b9a72ee1.zip", + "version": 21 + }, + "nx": { + "md5": "0e9d2ad1da87d2fb74532d5185b4cb84", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontKnowMe/nx/DontKnowMe_MAIN_SCENE_NX.zip/0e9d2ad1da87d2fb74532d5185b4cb84.zip", + "version": 21 + }, + "pc": { + "md5": "65af91055293818ac3b85853af39090a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontKnowMe/pc/DontKnowMe_MAIN_SCENE_PC.zip/65af91055293818ac3b85853af39090a.zip", + "version": 17 + }, + "wiiu": { + "md5": "80036af78b46e980d3cd3c933154e972", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontKnowMe/wiiu/DontKnowMe_MAIN_SCENE_WIIU.zip/80036af78b46e980d3cd3c933154e972.zip", + "version": 20 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DontStart.json b/justdanceonline-main/maps/DontStart.json new file mode 100644 index 0000000000000000000000000000000000000000..00db5739b2dfca3ab91e4ded78e6766955522fd2 --- /dev/null +++ b/justdanceonline-main/maps/DontStart.json @@ -0,0 +1,90 @@ +{ + "artist": "Dua Lipa", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_banner_bkg.jpg/d48213acf7c8f87079af52813f978635.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Coach_1.png/57ab4182e60627a5a88f9f31aa23d6ae.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_Generic.jpg/0e8a7c987cc34d08d4c008713011aaba.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_Online.jpg/4f45f178ba8767a0966f5921250a19e5.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_AlbumBkg.jpg/a13efd0208971bf719992e5ad9212a1e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_AlbumCoach.png/eaeb6248cca295c776aa7455d12048ac.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Coach_1_Phone.png/0385662923d754804ee4853aea187f66.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_Phone.jpg/4f45f178ba8767a0966f5921250a19e5.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_banner_bkg.jpg/d48213acf7c8f87079af52813f978635.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Coach_1.png/57ab4182e60627a5a88f9f31aa23d6ae.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_Generic.jpg/0e8a7c987cc34d08d4c008713011aaba.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_Online.jpg/4f45f178ba8767a0966f5921250a19e5.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_AlbumBkg.jpg/a13efd0208971bf719992e5ad9212a1e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_AlbumCoach.png/eaeb6248cca295c776aa7455d12048ac.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Coach_1_Phone.png/0385662923d754804ee4853aea187f66.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStart/DontStart_Cover_Phone.jpg/4f45f178ba8767a0966f5921250a19e5.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23226,46452,69678,92904,116129,139355,162581,185807,209033,232258,255484,278710,301936,325162,348388,371613,394839,418065,441291,464517,487742,510968,534194,557420,580646,603871,627097,650323,673549,696775,720000,743226,766452,789678,812904,836129,859355,882581,905807,929033,952258,975484,998710,1021936,1045162,1068388,1091613,1114839,1138065,1161291,1184517,1207742,1230968,1254194,1277420,1300646,1323871,1347097,1370323,1393549,1416775],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":377,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dontstart/dontstart_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Dua Lipa, Emily Warren Schwartz, Caroline Ailin and Ian Kirkpatrick. Published by Buckley Tenenbaum Publishing (BMI) and Warner-Tamerlane Publishing Corp. (BMI). All rights on behalf of itself and Buckley Tenenbaum Publishing administered by Warner-Tamerlane Publishing Corp. / Universal Music Publishing Canada on behalf of Tap Music Publishing Ltd. / BMG Platinum Songs US (BMI). All rights administered by BMG Rights Management (US) LLC / Prescription Songs (ASCAP) / Havenwood House (ASCAP). Administered by Kobalt Music Publishing America, Inc. Courtesy of Warner Records UK. By arrangement with Warner Music Group Film & TV Licensing.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "04CCFEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 183.387, + "mapName": "DontStart", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "DontStart_mapContent" + }, + "parentMapName": "DontStart", + "skuIds": [], + "songColors": { + "songColor_1A": "10B6EBFF", + "songColor_1B": "E9F3D3FF", + "songColor_2A": "B740A6FF", + "songColor_2B": "2639C3FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Don't Start Now", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "99d80c05b7d8dcffb0edc63755ef3448", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/ps4/DontStart_MAIN_SCENE_ORBIS.zip/99d80c05b7d8dcffb0edc63755ef3448.zip", + "version": 1 + }, + "nx": { + "md5": "62aa5f1befc23d6ff8e6c9638316002d", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/nx/DontStart_MAIN_SCENE_NX.zip/62aa5f1befc23d6ff8e6c9638316002d.zip", + "version": 1 + }, + "pc": { + "md5": "691e23f7d55f5c3db3ef5e98da5e2ebb", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DontStart/pc/691e23f7d55f5c3db3ef5e98da5e2ebb.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/DontStart/DontStart_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_AudioPreview.ogg/2ea851d433e3fd44416b9b5342079e74.ogg", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_HIGH.vp8.webm/da021f6cf5d2dab101ea9a6cdd9c5e3a.webm", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_HIGH.vp9.webm/2e134b8ca3cf552b7f3f8d1a7b4c2cf2.webm", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_LOW.vp8.webm/69fbf75b2db684bd6471e07e93b99ade.webm", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_LOW.vp9.webm/ba878abd9312332464fbf8379dc7341c.webm", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_MID.vp8.webm/78abb695a36cbd15974f37efbed0e30f.webm", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_MID.vp9.webm/6a482cc8de0a9e03b8f41ab19a32481a.webm", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_ULTRA.vp8.webm/5644c5f348e06bfa518e83d51dff8744.webm", + "jmcs://jd-contents/DontStart/DontStart_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStart/DontStart_MapPreviewNoSoundCrop_ULTRA.vp9.webm/9ec02342f2b98c04a90e5321ca9d8b3c.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DontStartALT.json b/justdanceonline-main/maps/DontStartALT.json new file mode 100644 index 0000000000000000000000000000000000000000..9ee8cf3fc3f09e15a758b4484cec01723f2b4068 --- /dev/null +++ b/justdanceonline-main/maps/DontStartALT.json @@ -0,0 +1,91 @@ +{ + "artist": "Dua Lipa", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_banner_bkg.jpg/64c3054eb1533cb7ee626a195649c3a5.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Coach_1.png/0178c03bc9ea2d84a6eb2f65d653e5d8.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_Generic.jpg/d0e7d8932cde120af849792ffdce2d6f.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_Online.jpg/9bf32e1a1be536d81dffc0652ece8154.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_AlbumBkg.jpg/4a46b25fc24fe37a58029735f249524d.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_AlbumCoach.png/90aee34d9ef82711f50a022800f99d98.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Coach_1_Phone.png/fd52d7077958c8a37e33ee58724665af.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_Phone.jpg/9bf32e1a1be536d81dffc0652ece8154.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_banner_bkg.jpg/64c3054eb1533cb7ee626a195649c3a5.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Coach_1.png/0178c03bc9ea2d84a6eb2f65d653e5d8.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_Generic.jpg/d0e7d8932cde120af849792ffdce2d6f.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_Online.jpg/9bf32e1a1be536d81dffc0652ece8154.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_AlbumBkg.jpg/4a46b25fc24fe37a58029735f249524d.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_AlbumCoach.png/90aee34d9ef82711f50a022800f99d98.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Coach_1_Phone.png/fd52d7077958c8a37e33ee58724665af.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontStartALT/DontStartALT_Cover_Phone.jpg/9bf32e1a1be536d81dffc0652ece8154.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23226,46452,69678,92904,116129,139355,162581,185807,209033,232258,255484,278710,301936,325162,348388,371613,394839,418065,441291,464517,487742,510968,534194,557420,580646,603871,627097,650323,673549,696775,720000,743226,766452,789678,812904,836129,859355,882581,905807,929033,952258,975484,998710,1021936,1045162,1068388,1091613,1114839,1138065,1161291,1184517,1207742,1230968,1254194,1277420,1300646,1323871,1347097,1370323,1393549,1416775],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-3,\"endBeat\":375,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dontstartalt/dontstartalt_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Dua Lipa, Emily Warren Schwartz, Caroline Ailin and Ian Kirkpatrick. Published by Buckley Tenenbaum Publishing (BMI) and Warner-Tamerlane Publishing Corp. (BMI). All rights on behalf of itself and Buckley Tenenbaum Publishing administered by Warner-Tamerlane Publishing Corp. / Universal Music Publishing Canada on behalf of Tap Music Publishing Ltd. / BMG Platinum Songs US (BMI). All rights administered by BMG Rights Management (US) LLC / Prescription Songs (ASCAP) / Havenwood House (ASCAP). Administered by Kobalt Music Publishing America, Inc. Courtesy of Warner Records UK. By arrangement with Warner Music Group Film & TV Licensing.", + "difficulty": 4, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "50D4A6FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 182.902, + "mapName": "DontStartALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "DontStartALT_mapContent" + }, + "parentMapName": "DontStart", + "skuIds": [], + "songColors": { + "songColor_1A": "7000EFFF", + "songColor_1B": "2D076CFF", + "songColor_2A": "8588FFFF", + "songColor_2B": "530054FF" + }, + "status": 12, + "sweatDifficulty": 3, + "tags": [ + "Alternate", + "subscribedSong" + ], + "title": "Don't Start Now", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "568af25cd214ff9710cf4f8ea5b799b0", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/ps4/DontStartALT_MAIN_SCENE_ORBIS.zip/568af25cd214ff9710cf4f8ea5b799b0.zip", + "version": 3 + }, + "nx": { + "md5": "d5c050de63955eaf4bebacd5ad3b416b", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/nx/DontStartALT_MAIN_SCENE_NX.zip/d5c050de63955eaf4bebacd5ad3b416b.zip", + "version": 3 + }, + "pc": { + "md5": "6249187e6dc04beb5df46bb79ad3af95", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/DontStartALT/pc/6249187e6dc04beb5df46bb79ad3af95.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12624, + "urls": { + "jmcs://jd-contents/DontStartALT/DontStartALT_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_AudioPreview.ogg/d58d7b93910d1084a8f2508037d64059.ogg", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/4233f28c85bca1fdb0118b380844f100.webm", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/c9fe3378f4833f074cb2556000eb91e1.webm", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_LOW.vp8.webm/e53c93c28eb1774c3d8e4c2ad41a2407.webm", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_LOW.vp9.webm/f0b7d8cb5a76acb2be11e1e7b1c09cf7.webm", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_MID.vp8.webm/42909d3472da21fe9ed2c7ed3827fad3.webm", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_MID.vp9.webm/fbecf62cf29c8bffd05c1ca476be111e.webm", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/673d940f09ced012985fc24f4472a010.webm", + "jmcs://jd-contents/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/DontStartALT/DontStartALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/dd5c252e07182991e8725baea8bf018d.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/DontWorry.json b/justdanceonline-main/maps/DontWorry.json new file mode 100644 index 0000000000000000000000000000000000000000..ecf0818d8a79a4ff26623762b8cd4f3042e4596b --- /dev/null +++ b/justdanceonline-main/maps/DontWorry.json @@ -0,0 +1,126 @@ +{ + "artist": "The Bench Men", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_banner_bkg.jpg/3a86ee1658933bac3ddd40e49680ae9d.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_1.png/bb40712191415770b7f7394d19634e02.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_2.png/5cbb0b32424f565b8fa3e3fec481641e.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_3.png/4acc113de472364d46999ee0a990e05e.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_Generic.jpg/8325a9dac79d8ad439c337e9c38da456.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_1024.png/629121ab36abedd185bdf67fc43de192.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_Online.jpg/f8ade6427f3b04c09161451824498468.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_AlbumBkg.jpg/0042ed9173f28411e88be7fafb1565da.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_AlbumCoach.png/e7a2b7a002465dca89f6a717c1d1271f.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_1_Phone.png/0f3703bd3620bdcdc904b1adf2104422.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_2_Phone.png/f66c1f5a32f9897f62a40ca56cc560ed.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_3_Phone.png/472cd641c7db4bba6c5bb2bba38f9514.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_Phone.jpg/f8ade6427f3b04c09161451824498468.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_VideoPreview.webm/1dfa6e3548a366fd50dc6981ecfe85af.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_banner_bkg.jpg/3a86ee1658933bac3ddd40e49680ae9d.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_1.png/bb40712191415770b7f7394d19634e02.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_2.png/5cbb0b32424f565b8fa3e3fec481641e.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_3.png/4acc113de472364d46999ee0a990e05e.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_Generic.jpg/8325a9dac79d8ad439c337e9c38da456.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_1024.png/629121ab36abedd185bdf67fc43de192.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_Online.jpg/f8ade6427f3b04c09161451824498468.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_AlbumBkg.jpg/0042ed9173f28411e88be7fafb1565da.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_AlbumCoach.png/e7a2b7a002465dca89f6a717c1d1271f.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_1_Phone.png/0f3703bd3620bdcdc904b1adf2104422.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_2_Phone.png/f66c1f5a32f9897f62a40ca56cc560ed.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_3_Phone.png/472cd641c7db4bba6c5bb2bba38f9514.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_Phone.jpg/f8ade6427f3b04c09161451824498468.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_VideoPreview.webm/1dfa6e3548a366fd50dc6981ecfe85af.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_banner_bkg.tga.ckd/7e0b8309f28e70db7d38b973b25e8e1b.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_Coach_1.tga.ckd/005851c4f3730b88ed400c7134689aff.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_Coach_2.tga.ckd/36dcd8774036a21e9aa930f90d17c668.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_Coach_3.tga.ckd/aa5b9fa50790a0f856379d945be07792.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_Cover_Generic.tga.ckd/b3b5878053ae00024e2842ef58caa0d4.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_1024.png/629121ab36abedd185bdf67fc43de192.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_Cover_Online.tga.ckd/112a904319cddadd534d3bd2a4c6a943.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_Cover_AlbumBkg.tga.ckd/2dd3bb9e0e6f9ad8ee3905bd4b632317.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_Cover_AlbumCoach.tga.ckd/49c22f38cde3df653ba454809070cfd6.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_1_Phone.png/0f3703bd3620bdcdc904b1adf2104422.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_2_Phone.png/f66c1f5a32f9897f62a40ca56cc560ed.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Coach_3_Phone.png/472cd641c7db4bba6c5bb2bba38f9514.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_Cover_Phone.jpg/f8ade6427f3b04c09161451824498468.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_VideoPreview.webm/1dfa6e3548a366fd50dc6981ecfe85af.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,20976,42144,63312,84480,105648,127008,148320,169680,191040,212400,233711,255071,276431,297455,318527,339551,360575,381647,402671,423695,444767,465359,485951,506543,527135,547775,568367,588959,609551,630383,651215,672047,692879,713711,734543,755375,776207,796751,817343,837886,858430,878974,899518,920110,940654,961486,982318,1003198,1024030,1045102,1066174,1087294,1108366,1128958,1149598,1170190,1190830,1211902,1232926,1253998,1275022,1295710,1316350,1337038,1357678,1378366,1399054,1419694],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-20,\"endBeat\":488,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":68,\"volume\":-1.100000,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/dontworry/dontworry_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "31B2D2FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 220.886, + "mapName": "DontWorry", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2015, + "packages": { + "mapContent": "DontWorry_mapContent" + }, + "parentMapName": "DontWorry", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "774E32FF", + "songColor_1B": "370803FF", + "songColor_2A": "FFDBA2FF", + "songColor_2B": "592519FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Don't Worry Be Happy", + "urls": { + "jmcs://jd-contents/DontWorry/DontWorry_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_AudioPreview.ogg/85133fff4a709b532636bf2152b13d21.ogg", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_HIGH.vp8.webm/b94b4a4778970aa6aa98e91d8fb8f888.webm", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_HIGH.vp9.webm/7755cd10042e77a2cea6dd0c2a0a21b1.webm", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_LOW.vp8.webm/2ab77859721a5dd8e4823e8a50bd1d67.webm", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_LOW.vp9.webm/50e1cfc71604dc2b4444787b1f84bee6.webm", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_MID.vp8.webm/d869595e5e7f9cb884d775db9be947eb.webm", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_MID.vp9.webm/12f31de99de00c6584d22fa321e8c748.webm", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_ULTRA.vp8.webm/d3bbf4c5812946f680d67a93a4d75570.webm", + "jmcs://jd-contents/DontWorry/DontWorry_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/DontWorry/DontWorry_MapPreviewNoSoundCrop_ULTRA.vp9.webm/e7bf95d45ddf58f9b4a16a9b04bf4cdf.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "46ae62e1277f865218ad149635915c89", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontWorry/ps4/DontWorry_MAIN_SCENE_ORBIS.zip/46ae62e1277f865218ad149635915c89.zip", + "version": 3 + }, + "pc": { + "md5": "0670846206e5102a9af6b5ac890ad249", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontWorry/pc/DontWorry_MAIN_SCENE_PC.zip/0670846206e5102a9af6b5ac890ad249.zip", + "version": 2 + }, + "wiiu": { + "md5": "be8015b9e8bee08e7536a872bba39928", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontWorry/wiiu/DontWorry_MAIN_SCENE_WIIU.zip/be8015b9e8bee08e7536a872bba39928.zip", + "version": 3 + }, + "nx": { + "md5": "a7145322d9baefc265991c1808815ed9", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/DontWorry/nx/DontWorry_MAIN_SCENE_NX.zip/a7145322d9baefc265991c1808815ed9.zip", + "version": 2 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/EQUIS.json b/justdanceonline-main/maps/EQUIS.json new file mode 100644 index 0000000000000000000000000000000000000000..142a574235ef3ff82a8f1f0fd23db5f45b691b70 --- /dev/null +++ b/justdanceonline-main/maps/EQUIS.json @@ -0,0 +1,106 @@ +{ + "artist": "Nicky Jam & J Balvin ", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_banner_bkg.tga.ckd/72d0538f61d211bc9067163d8a2c9a38.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_Coach_1.tga.ckd/b93967b419c7a9984dfe7b892bf5a808.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_Coach_2.tga.ckd/f8c3f808895aa426e9b7cdf14c0d7011.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_Cover_Generic.tga.ckd/d9df8fdf31f44baf371f88c2e7a5601c.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Cover_1024.png/ff566143b26dc1198eb5db0d5b85e36f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_Cover_Online.tga.ckd/0251c0b2cfe0b634372f4ed5593bce7f.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_Cover_AlbumBkg.tga.ckd/ee3893ec007ada6931bb9555be7d6170.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_Cover_AlbumCoach.tga.ckd/face6b772ba8d4b683b21ec5937ef528.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Coach_1_Phone.png/8d038330a269eb5491e126058f8dabd1.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Coach_2_Phone.png/bd8758252b167ffda54c380715666a54.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Cover_Phone.jpg/f883da3f007e4b059db96314827cd6ff.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_VideoPreview.webm/b30c8f61784a80c3f7dd09d6be36905e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_map_bkg.tga.ckd/32318e470dfcb5d3d1113eba05079f8a.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_banner_bkg.tga.ckd/d023d0e04e4cc46c6b06246d9fdf9797.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_Coach_1.tga.ckd/559188caff000f55627cb61c3fbf3e2c.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_Coach_2.tga.ckd/080b46551c833f953bff779c15490b07.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_Cover_Generic.tga.ckd/83eddc35dc02bb885d3fa741dce488a5.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Cover_1024.png/ff566143b26dc1198eb5db0d5b85e36f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_Cover_Online.tga.ckd/9e37b1fa03bdaec960f6bd9caf59adb9.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_Cover_AlbumBkg.tga.ckd/ce91d756302827466aaa0ff40e86cc80.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_Cover_AlbumCoach.tga.ckd/a9ec59d887b449fcdc7c40ee62999f33.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Coach_1_Phone.png/8d038330a269eb5491e126058f8dabd1.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Coach_2_Phone.png/bd8758252b167ffda54c380715666a54.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_Cover_Phone.jpg/f883da3f007e4b059db96314827cd6ff.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_VideoPreview.webm/b30c8f61784a80c3f7dd09d6be36905e.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_map_bkg.tga.ckd/ce478f50dbecebf97b8f9f84ef9fe010.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,32000,64000,96000,128000,160000,192000,224000,256000,288000,320000,352000,384000,416000,448000,480000,512000,544000,576000,608000,640000,672000,704000,736000,768000,800000,832000,864000,896000,928000,960000,992000,1024000,1056000,1088000,1120000,1152000,1184000,1216000,1248000,1280000,1312000,1344000,1376000,1408000],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":261,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":44,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/equis/equis_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Nick Rivera Caminero, Juan Diego Medina, Rashid M S Badloe, Giordano M S Dano Ashruf, Jose Alvaro Osorio Balvin, Vicente Saavedra, Jan Carlos Ozuna Rosado and Jonathan Bryan Thiel. Published by CSN Publishing (BUMA) / La Industria Music Publishing (SESAC) / Sony/ATV Sounds LLC. (SESAC) / Temazo Music (BUM/STE). All rights on behalf of Temazo Music administered by WB Music Corp. / Universal Music Publishing. / Music Good Vibes Publishing (BMI), Ozuna Worldwide (BMI). Administered by Songs of Kobalt Music Publishing (BMI). All rights reserved. Used with permission. Courtesy of Sony Music Entertainment US Latin LLC. By arrangement with Sony Music Entertainment. / J Balvin appears courtesy of Universal Music Latino. ", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "EA38A1FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 174, + "mapName": "EQUIS", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2020, + "packages": { + "mapContent": "EQUIS_mapContent" + }, + "parentMapName": "EQUIS", + "skuIds": [], + "songColors": { + "songColor_1A": "162593FF", + "songColor_1B": "000734FF", + "songColor_2A": "00F1EEFF", + "songColor_2B": "0A0018FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "X", + "urls": { + "jmcs://jd-contents/EQUIS/EQUIS_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_AudioPreview.ogg/ec04770fef37fb50e5716a33e66b25a2.ogg", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_HIGH.vp8.webm/70c06ec1a0dc021419aa7d2472770a79.webm", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_HIGH.vp9.webm/a0c074c1a28606139a659dea3b1ee28d.webm", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_LOW.vp8.webm/353d51f66d0680e77b76d93f2940b485.webm", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_LOW.vp9.webm/d500d048e7651f03ef448ba3c6c0c4f1.webm", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_MID.vp8.webm/d9daaa5b5d0a705350351430b594a276.webm", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_MID.vp9.webm/434d7656a4fedb828e22fa91c860872c.webm", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_ULTRA.vp8.webm/0e6f5bee925755ddc256bc7fc54d04b2.webm", + "jmcs://jd-contents/EQUIS/EQUIS_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/EQUIS/EQUIS_MapPreviewNoSoundCrop_ULTRA.vp9.webm/039dccebcb301ace1ef673ab79503093.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "ec4378c80f240ab56deb9a00cc06a565", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/EQUIS/ps4/EQUIS_MAIN_SCENE_ORBIS.zip/ec4378c80f240ab56deb9a00cc06a565.zip", + "version": 51 + }, + "nx": { + "md5": "3ff67fd9bede15e41d6ed476e6a88f7e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/EQUIS/nx/EQUIS_MAIN_SCENE_NX.zip/3ff67fd9bede15e41d6ed476e6a88f7e.zip", + "version": 53 + }, + "pc": { + "md5": "d0aac1fd5a2e64b25c9f941c7c54e5dc", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/EQUIS/pc/EQUIS_MAIN_SCENE_PC.zip/d0aac1fd5a2e64b25c9f941c7c54e5dc.zip", + "version": 43 + }, + "wiiu": { + "md5": "930c4673217185ac8b9a9107768f8f24", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/EQUIS/wiiu/EQUIS_MAIN_SCENE_WIIU.zip/930c4673217185ac8b9a9107768f8f24.zip", + "version": 25 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/EcoloKids.json b/justdanceonline-main/maps/EcoloKids.json new file mode 100644 index 0000000000000000000000000000000000000000..0aa770b7514b5fdb638eb91a81f7a01ae259851d --- /dev/null +++ b/justdanceonline-main/maps/EcoloKids.json @@ -0,0 +1,96 @@ +{ + "artist": "The Sunlight Shakers", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_banner_bkg.jpg/8267c02425e6118ab50258d57c9a9d99.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_1.png/3a6a49b2471a5b06469251c4c64f59ff.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_2.png/d0a7b0700a6185e53848054b19a4cd08.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_Generic.jpg/b38a2208adde0aa22f00bb7ef9b829de.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_Online.jpg/14dfe6b51efad79adfe7daccea022055.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_AlbumBkg.jpg/98f26a4ba9442ccb134632795e001def.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_AlbumCoach.png/85aef62fece45f5e498401b96ce12c3f.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_1_Phone.png/8870430e1eefb9b312ba85115b88b896.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_2_Phone.png/1d2d6bad348a5f97e54a2c3964a88193.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_Phone.jpg/14dfe6b51efad79adfe7daccea022055.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_banner_bkg.jpg/8267c02425e6118ab50258d57c9a9d99.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_1.png/3a6a49b2471a5b06469251c4c64f59ff.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_2.png/d0a7b0700a6185e53848054b19a4cd08.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_Generic.jpg/b38a2208adde0aa22f00bb7ef9b829de.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_Online.jpg/14dfe6b51efad79adfe7daccea022055.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_AlbumBkg.jpg/98f26a4ba9442ccb134632795e001def.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_AlbumCoach.png/85aef62fece45f5e498401b96ce12c3f.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_1_Phone.png/8870430e1eefb9b312ba85115b88b896.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Coach_2_Phone.png/1d2d6bad348a5f97e54a2c3964a88193.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/EcoloKids/EcoloKids_Cover_Phone.jpg/14dfe6b51efad79adfe7daccea022055.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,27692,55384,83077,110769,138461,166154,193846,221538,249231,276923,304615,332307,360000,387692,415384,443077,470769,498461,526154,553846,581538,609231,636923,664615,692307,720000,747692,775384,803077,830769,858461,886154,913846,941538,969231,996923,1024615,1052307,1080000,1107692,1135384,1163077,1190769,1218461,1246154,1273846,1301538,1329231,1356923,1384615,1412307],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-6,\"endBeat\":209,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":51,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/ecolokids/ecolokids_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Barrie Gledden, Chris Bussey and Jason Pedder. Published by Audio Network Canada Inc. Courtesy of Audio Network Canada Inc.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FC2CECFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 124.039, + "mapName": "EcoloKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "EcoloKids_mapContent" + }, + "parentMapName": "EcoloKids", + "skuIds": [], + "songColors": { + "songColor_1A": "EFF0F0FF", + "songColor_1B": "13123FFF", + "songColor_2A": "E1B223FF", + "songColor_2B": "DA35E9FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "KidsOnly", + "subscribedSong" + ], + "title": "Let's Save Our Planet", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "116ca38754303c800982b2a956412ebb", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/ps4/EcoloKids_MAIN_SCENE_ORBIS.zip/116ca38754303c800982b2a956412ebb.zip", + "version": 1 + }, + "nx": { + "md5": "305c2dae3b0ba74fc5e55b8f7b83cbcb", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/nx/EcoloKids_MAIN_SCENE_NX.zip/305c2dae3b0ba74fc5e55b8f7b83cbcb.zip", + "version": 1 + }, + "pc": { + "md5": "2c298b276a124af13cc0ac83b15df3f6", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/EcoloKids/pc/2c298b276a124af13cc0ac83b15df3f6.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939, + "urls": { + "jmcs://jd-contents/EcoloKids/EcoloKids_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_AudioPreview.ogg/bade82ea06df09fcac5f3a4691554311.ogg", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/56c45725142714e3e72af838a7ae2ce6.webm", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/95a7a09433dc7db67900ef9dd7b53827.webm", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_LOW.vp8.webm/bcd1de7f6ce201c8bc5e432252ac5e82.webm", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_LOW.vp9.webm/8b11b1e1e125952e091d26ab2cf6a686.webm", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_MID.vp8.webm/7e6a2fc8dc122b89a0f10f8fafcc3042.webm", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_MID.vp9.webm/367c1422c95b2312a8e904cad49c5ec8.webm", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/123cb756a450650af17b142f7061b9e2.webm", + "jmcs://jd-contents/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/EcoloKids/EcoloKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/8270adc4139e8f96887e6f89d394086a.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/ElectroMambo.json b/justdanceonline-main/maps/ElectroMambo.json new file mode 100644 index 0000000000000000000000000000000000000000..9ba5633f1ced58e826285f8fc0dc89e8af06b26d --- /dev/null +++ b/justdanceonline-main/maps/ElectroMambo.json @@ -0,0 +1,130 @@ +{ + "artist": "Diva Carmina", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_banner_bkg.jpg/7b6da331b5eec49320a9e43fe0dcc00c.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Coach_1.png/e4a3fb078fc383a3c2fe805d395eb7ca.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_Generic.jpg/65e6800594cfe94f0c79e62bde6da2e9.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_1024.png/9d6f1e80b170ab12438431d1e3700b1e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_Online.jpg/55eac7ff9b0e7c9945ee3eee366c8b4e.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_AlbumBkg.jpg/241165142d165d8a39cd278f2a404fa0.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_AlbumCoach.png/36e668e24aae380fa2dd77e277721dd5.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Coach_1_Phone.png/4ff34890299f8bad4e56a931037e9a8a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_Phone.jpg/55eac7ff9b0e7c9945ee3eee366c8b4e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_VideoPreview.webm/f6586ead746cec1cb2e228fe9a01366f.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_banner_bkg.jpg/7b6da331b5eec49320a9e43fe0dcc00c.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Coach_1.png/e4a3fb078fc383a3c2fe805d395eb7ca.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_Generic.jpg/65e6800594cfe94f0c79e62bde6da2e9.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_1024.png/9d6f1e80b170ab12438431d1e3700b1e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_Online.jpg/55eac7ff9b0e7c9945ee3eee366c8b4e.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_AlbumBkg.jpg/241165142d165d8a39cd278f2a404fa0.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_AlbumCoach.png/36e668e24aae380fa2dd77e277721dd5.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Coach_1_Phone.png/4ff34890299f8bad4e56a931037e9a8a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_Phone.jpg/55eac7ff9b0e7c9945ee3eee366c8b4e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_VideoPreview.webm/f6586ead746cec1cb2e228fe9a01366f.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/wiiu/ElectroMambo_banner_bkg.tga.ckd/620f4551065a1f809d49a79525d1eb4a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/wiiu/ElectroMambo_Coach_1.tga.ckd/6cd7c81742061c4315efbb83a74242ab.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/wiiu/ElectroMambo_Cover_Generic.tga.ckd/7db3276a88617f624215166e6d85f90b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_1024.png/9d6f1e80b170ab12438431d1e3700b1e.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/wiiu/ElectroMambo_Cover_Online.tga.ckd/fe57a0bda33c2ed851d7849f7ff47c6e.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/wiiu/ElectroMambo_Cover_AlbumBkg.tga.ckd/d2958405f0589e62f6e5d92c29bb172f.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/wiiu/ElectroMambo_Cover_AlbumCoach.tga.ckd/3ef9f1fb0ee9cb6cbb0d8c345de361fd.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Coach_1_Phone.png/4ff34890299f8bad4e56a931037e9a8a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_Cover_Phone.jpg/55eac7ff9b0e7c9945ee3eee366c8b4e.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_VideoPreview.webm/f6586ead746cec1cb2e228fe9a01366f.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22176,44304,66480,88608,110784,132912,155088,177216,199392,221520,243696,265872,288000,310176,332304,354480,376608,398784,420912,443088,465216,487392,509520,531696,553872,576000,598176,620304,642480,664608,686784,708913,731089,753217,775393,797521,819697,841873,864001,886177,908305,930481,952609,974785,996913,1019089,1041217,1063393,1085521,1107697,1129873,1152001,1174177,1196305,1218481,1240609,1262785,1284913,1307089,1329217,1351393,1373521,1395697,1417873],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":393,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":64,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/electromambo/electromambo_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by: Tom Salta, Nikki Leonti, Letty Rivera, Angela Clemmons. Published by Ubisoft Music Publishing. Courtesy of Ubisoft Music. Produced and Mixed by: Tom Salta. Vocalists: Nikki Leonti, Angela Clemmons, Marcos Bermudez, Tom Salta. Operatic Vocals: Jeanette Vecchione. Gang Vocals: Don Harris, Jeff Harris, Angela Lynch, Tom Salta. Trumpet, Sax and Trombone: The Harris Bros Horns. Percussion: Gumbi Ortiz. Bass: Gene Perez. Special Thanks: Philippe Saisse, Jose Madera, John Rodriguez. Music supervision - Manu Bachet and Alkis Argyriadis. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "CB3863FF", + "lyricsType": 1, + "mainCoach": -1, + "mapLength": 182.308, + "mapName": "ElectroMambo", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2016, + "packages": { + "mapContent": "ElectroMambo_mapContent" + }, + "parentMapName": "ElectroMambo", + "skuIds": [ + "jd2017-pc-ww", + "jd2017-ps4-scea", + "jd2017-ps4-scee", + "jd2017-wiiu-noa", + "jd2017-wiiu-noe", + "jd2017-xone-emea", + "jd2017-xone-ncsa", + "jd2016-ps4-scea", + "jd2016-ps4-scee", + "jd2016-wiiu-noa", + "jd2016-wiiu-noe", + "jd2016-xone-emea", + "jd2016-xone-ncsa" + ], + "songColors": { + "songColor_1A": "E175FFFF", + "songColor_1B": "1E0009FF", + "songColor_2A": "FFBB1AFF", + "songColor_2B": "211700FF" + }, + "status": 5, + "sweatDifficulty": 3, + "tags": [ + "Extreme", + "Main", + "Uplay2017", + "subscribedSong", + "HallOfFame", + "LatinCorner" + ], + "title": "Drop The Mambo", + "urls": { + "jmcs://jd-contents/ElectroMambo/ElectroMambo_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_AudioPreview.ogg/71cac2f2a4449a2b35b60e1f0b0d0b99.ogg", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_HIGH.vp8.webm/dd7352d653e92279e4b3667c1ec312d7.webm", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_HIGH.vp9.webm/c42cf994ce8d442d7139def857c9b3d9.webm", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_LOW.vp8.webm/09ddb8df0d72ed55ac63349b7345b3fe.webm", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_LOW.vp9.webm/82362df9a258f6e0a89613ed8c886017.webm", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_MID.vp8.webm/5b31a3914a4456a11a45f3094e54f57b.webm", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_MID.vp9.webm/26b6292518317cd9422eb72ecc2d55c4.webm", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_ULTRA.vp8.webm/48ec3e2f34d7af7935d1d5d239ea83c0.webm", + "jmcs://jd-contents/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ElectroMambo_MapPreviewNoSoundCrop_ULTRA.vp9.webm/5cdb294eb27a1a76b4fba2efccf604f3.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "a89148e447c7a4d81de829fe8d9bf4ac", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ElectroMambo/ps4/ElectroMambo_MAIN_SCENE_ORBIS.zip/a89148e447c7a4d81de829fe8d9bf4ac.zip", + "version": 16 + }, + "nx": { + "md5": "7e68b190fe9aa58335952357e479edb3", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ElectroMambo/nx/ElectroMambo_MAIN_SCENE_NX.zip/7e68b190fe9aa58335952357e479edb3.zip", + "version": 9 + }, + "pc": { + "md5": "3f59fc409bacc9735aec48203baafe18", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ElectroMambo/pc/ElectroMambo_MAIN_SCENE_PC.zip/3f59fc409bacc9735aec48203baafe18.zip", + "version": 2 + }, + "wiiu": { + "md5": "bee62e36612d67c4abc9824af4c916e8", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/ElectroMambo/wiiu/ElectroMambo_MAIN_SCENE_WIIU.zip/bee62e36612d67c4abc9824af4c916e8.zip", + "version": 16 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Error.json b/justdanceonline-main/maps/Error.json new file mode 100644 index 0000000000000000000000000000000000000000..9ea60fe85447b056ae0596e125b73b2108c2aefd --- /dev/null +++ b/justdanceonline-main/maps/Error.json @@ -0,0 +1,116 @@ +{ + "artist": "Natalia Nykiel", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_banner_bkg.tga.ckd/26c78f0f95b5b50a6cdb50bd5af5e7ea.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_Coach_1.tga.ckd/d4732aa8571a2da07100d3c56e1bb48a.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_Cover_Generic.tga.ckd/8cb4d38e92e4e380d8d1c999e493b8a4.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Cover_1024.png/c0cccbf71a3adb9d551bd0ccb3087f38.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_Cover_Online.tga.ckd/0e8734a7ee84012623963ac607cf2e6c.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_Cover_AlbumBkg.tga.ckd/d798b9a1beb4014a589435c0bb9fb26b.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_Cover_AlbumCoach.tga.ckd/d533557e368f7802c7d1613bbeb9a686.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Coach_1_Phone.png/cb824b48e1dc50c815af41d6f8fd37f0.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Cover_Phone.jpg/d1a120b199ef3ba041e9ccbbb8222c45.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Error/Error_VideoPreview.webm/3824f0031471accb586599f3850b3b7f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_map_bkg.tga.ckd/5fbe0cbcf35b50c51f77217eba83e344.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_banner_bkg.tga.ckd/f3f7df197223658cff9733523fbbf86e.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_Coach_1.tga.ckd/9ce6d1da0d7448a666b2376da191b9be.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_Cover_Generic.tga.ckd/b8cd4e7f0653f39e51838a382430f27e.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Cover_1024.png/c0cccbf71a3adb9d551bd0ccb3087f38.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_Cover_Online.tga.ckd/adc542c0f7234c75e00ec456070a89e1.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_Cover_AlbumBkg.tga.ckd/aa03fda0c0d0d7feb727de92d9804d0e.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_Cover_AlbumCoach.tga.ckd/62cb8055994213127cef28325fecd95b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Coach_1_Phone.png/cb824b48e1dc50c815af41d6f8fd37f0.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Cover_Phone.jpg/d1a120b199ef3ba041e9ccbbb8222c45.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Error/Error_VideoPreview.webm/3824f0031471accb586599f3850b3b7f.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_map_bkg.tga.ckd/3ccd99289b787c112a16790b4241e259.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/wiiu/Error_banner_bkg.tga.ckd/18e7bcdd61f21691dd6a0cdb193ca443.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/wiiu/Error_Coach_1.tga.ckd/5793878e85d0a22494d033fd6f2b7b77.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Error/wiiu/Error_Cover_Generic.tga.ckd/24bdd212987cb5ca44e97003816775c0.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Cover_1024.png/c0cccbf71a3adb9d551bd0ccb3087f38.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Error/wiiu/Error_Cover_Online.tga.ckd/416cc89c18f7c5f0e5aa1a3b3bbf67b6.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Error/wiiu/Error_Cover_AlbumBkg.tga.ckd/0327710ae473299d2f96f249cdc5efbb.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Error/wiiu/Error_Cover_AlbumCoach.tga.ckd/4bba74ab7914e1a89f3caa97b66b558e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Coach_1_Phone.png/cb824b48e1dc50c815af41d6f8fd37f0.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Error/Error_Cover_Phone.jpg/d1a120b199ef3ba041e9ccbbb8222c45.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Error/Error_VideoPreview.webm/3824f0031471accb586599f3850b3b7f.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23232,46464,69696,92928,116160,139344,162576,185809,209041,232273,255505,278737,301921,325153,348385,371617,394849,418081,441313,464545,487729,510961,534193,557425,580657,603889,627121,650353,673537,696769,720001,743234,766466,789698,812930,836162,859346,882578,905810,929042,952274,975506,998738,1021922,1045154,1068386,1091618,1114850,1138082,1161314,1184546,1207730,1230962,1254194,1277426,1300659,1323891,1347123,1370355,1393539,1416771],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-7,\"endBeat\":408,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/error/error_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Natalia Nykiel, Michał Majak, Jakub Parowicz and Michal 'FOX' Krol. Published by Natalia Nykiel / Michał Majak / Jakub Parowicz / Michal 'FOX' Krol. Courtesy of Universal Music Poland under license from Universal Music Enterprise. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "00FB5FFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 200.80499999999998, + "mapName": "Error", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "Error_mapContent" + }, + "parentMapName": "Error", + "skuIds": [], + "songColors": { + "songColor_1A": "F44E6FFF", + "songColor_1B": "511834FF", + "songColor_2A": "18A58BFF", + "songColor_2B": "004B4CFF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "ExcludedFromWDF", + "ExcludedFromWDF-PC" + ], + "title": "Error", + "urls": { + "jmcs://jd-contents/Error/Error_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Error/Error_AudioPreview.ogg/43dfd414cafab60427eb02797f8e184e.ogg", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_HIGH.vp8.webm/33b0d95f16d4d0fedc60c7f9b4587ea6.webm", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_HIGH.vp9.webm/bd333ce886b85abfdec740a2b731e3cf.webm", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_LOW.vp8.webm/845be12547746b42295c7a8e3cb44488.webm", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_LOW.vp9.webm/c54ee47685d0519787d76e358ff0f50a.webm", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_MID.vp8.webm/7a82db71042639839802686304f845e7.webm", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_MID.vp9.webm/663a58c0dac83caddf3b84b397d479f5.webm", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_ULTRA.vp8.webm/713e93d1739ee3faf6d21e3647b9eded.webm", + "jmcs://jd-contents/Error/Error_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Error/Error_MapPreviewNoSoundCrop_ULTRA.vp9.webm/896bfca63d8e19360a4e61238b25bb02.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "ab634f457714fa315321ea3c4e723689", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Error/ps4/Error_MAIN_SCENE_ORBIS.zip/ab634f457714fa315321ea3c4e723689.zip", + "version": 18 + }, + "nx": { + "md5": "2b15c65069e70872493ee4f0b1709b8a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Error/nx/Error_MAIN_SCENE_NX.zip/2b15c65069e70872493ee4f0b1709b8a.zip", + "version": 10 + }, + "pc": { + "md5": "b1957ae5ad69fd18c8ba252e021dc493", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Error/pc/Error_MAIN_SCENE_PC.zip/b1957ae5ad69fd18c8ba252e021dc493.zip", + "version": 3 + }, + "wiiu": { + "md5": "c25fdf577c1c299e0461f839cd829b00", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Error/wiiu/Error_MAIN_SCENE_WIIU.zip/c25fdf577c1c299e0461f839cd829b00.zip", + "version": 18 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Familiar.json b/justdanceonline-main/maps/Familiar.json new file mode 100644 index 0000000000000000000000000000000000000000..e196f259f32c473c88f657e6d0ba991ef9840ec4 --- /dev/null +++ b/justdanceonline-main/maps/Familiar.json @@ -0,0 +1,119 @@ +{ + "artist": "Liam Payne & J Balvin", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_banner_bkg.tga.ckd/ef250efafa73db65768ebfc5e48a4049.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_Coach_1.tga.ckd/743e9b3c500923ad50e44d3de18f3338.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_Cover_Generic.tga.ckd/da37125ba6308b3548ec0422d7b72461.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_1024.png/f87b677038c019bf7c0524b31c2e23f0.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_Cover_Online.tga.ckd/109a005c7ff147b90cc339f8be998adf.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_Cover_AlbumBkg.tga.ckd/e716d12ae29a322d6a66b93759aca131.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_Cover_AlbumCoach.tga.ckd/c939c6b5cb0af723a05c0fcb663a6e8e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Coach_1_Phone.png/a46a443239aafe94cb50d3154653dd3d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_Phone.jpg/a4eb75f21208b30142e0351bbf6def4e.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_map_bkg.tga.ckd/7458e171b00c9f23813faa20160be338.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_banner_bkg.tga.ckd/bd3459948670ec545691cf1920a9f8c7.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_Coach_1.tga.ckd/51f4b7b96eaacf71bfdab4809000dfd9.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_Cover_Generic.tga.ckd/b6639d7a51d5cacc431d3d3fa061ab93.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_1024.png/f87b677038c019bf7c0524b31c2e23f0.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_Cover_Online.tga.ckd/963c1a4d1f0d4188e30572d7b67b4ead.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_Cover_AlbumBkg.tga.ckd/294e82a63155fb34c757e3d1dceca918.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_Cover_AlbumCoach.tga.ckd/8ed6d121eec24dbf98e5f755e92465e9.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Coach_1_Phone.png/a46a443239aafe94cb50d3154653dd3d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_Phone.jpg/a4eb75f21208b30142e0351bbf6def4e.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_map_bkg.tga.ckd/c49c6b06ad1b3b63a8a6c126ccca1d10.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_banner_bkg.jpg/1051dbc46a0d94645557eab635ee26ac.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Coach_1.png/43d540773fed1f39bf61293bc1ff3950.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_Generic.jpg/6422b070e839af77ba5a69b92cdd095a.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_1024.png/f87b677038c019bf7c0524b31c2e23f0.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_Online.jpg/a4eb75f21208b30142e0351bbf6def4e.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_AlbumBkg.jpg/5e98a624c773fab35feb22bf3a7f7b95.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_AlbumCoach.png/af92049e8a4d392a705bbbc73a38e771.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Coach_1_Phone.png/a46a443239aafe94cb50d3154653dd3d.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_Cover_Phone.jpg/a4eb75f21208b30142e0351bbf6def4e.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,30960,61920,92880,123840,154800,185808,216768,247728,278688,309648,340608,371616,402576,433536,464496,495456,526416,557424,588384,619344,650304,681264,712224,743184,774192,805152,836112,867072,898032,928992,960000,990960,1021920,1052880,1083840,1114800,1145808,1176768,1207728,1238688,1269648,1300608,1331616,1362576,1393536,1424496],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":302,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":46,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/familiar/familiar_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Gamal Lewis, Jose Alvaro Osorio Balvin, Mike Sabath and Sean Douglas. Published by Sony/ATV Sonata (SESAC), Eastman Pond Publishing (BMI) c/o Sony/ATV Music Publishing Canada (SOCAN) / Universal Musica Unica Publishing. All rights reserved. Used with permission. Courtesy of Republic Records under license from Universal Music Enterprises. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FE03C3FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 196.13, + "mapName": "Familiar", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "Familiar_mapContent" + }, + "parentMapName": "Familiar", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "7941EAFF", + "songColor_1B": "541A77FF", + "songColor_2A": "CC6302FF", + "songColor_2B": "C67B11FF" + }, + "status": 3, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Familiar", + "urls": { + "jmcs://jd-contents/Familiar/Familiar_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_AudioPreview.ogg/069e15fa3e5a71636117d359ff91891e.ogg", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_HIGH.vp8.webm/a03a8492aa211891a5fb06229d421517.webm", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_HIGH.vp9.webm/37cf0d2b7b68dbeaaa352d299ee4f9a0.webm", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_LOW.vp8.webm/b07580b618d4cb10af11cc1e630a49d8.webm", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_LOW.vp9.webm/31e337bc42bad84ed247bbe56d620e7a.webm", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_MID.vp8.webm/dd3fca508238c02863f4e1824d79dea5.webm", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_MID.vp9.webm/efe237cb22a8dd23b3e4f6e97cad8db2.webm", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_ULTRA.vp8.webm/76dc71b853203c89bd5e332f94572641.webm", + "jmcs://jd-contents/Familiar/Familiar_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Familiar/Familiar_MapPreviewNoSoundCrop_ULTRA.vp9.webm/84223c1ff6792f778d79a3fc1230efdb.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "0e87d9c0eff179471b2cff84f2967054", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Familiar/ps4/Familiar_MAIN_SCENE_ORBIS.zip/0e87d9c0eff179471b2cff84f2967054.zip", + "version": 2 + }, + "nx": { + "md5": "a88006724235f4763d93ae76809d93a4", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Familiar/nx/Familiar_MAIN_SCENE_NX.zip/a88006724235f4763d93ae76809d93a4.zip", + "version": 2 + }, + "pc": { + "md5": "433b079011536ca538dc0ff4c21e3fe1", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/familiar_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FantasticBaby.json b/justdanceonline-main/maps/FantasticBaby.json new file mode 100644 index 0000000000000000000000000000000000000000..6ddcc4f1acffa1a837a99b22df3b0c79991154e3 --- /dev/null +++ b/justdanceonline-main/maps/FantasticBaby.json @@ -0,0 +1,97 @@ +{ + "artist": "BIGBANG", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/textures/FantasticBaby_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22176,44304,66480,88608,110784,132912,155088,177216,199392,221520,243696,265824,288000,310176,332304,354480,376608,398784,420912,443088,465216,487392,509520,531696,553824,576000,598177,620305,642481,664609,686785,708913,731089,753217,775393,797521,819697,841825,864001,886177,908305,930481,952609,974785,996913,1019089,1041217,1063393,1085521,1107697,1129825,1152001,1174177,1196306,1218482,1240610,1262786,1284914,1307090,1329218,1351394,1373522,1395698,1417826,1440002,1462178,1484306,1506482],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":0,\"endBeat\":496,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":68,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/FantasticBaby/FantasticBaby_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FA6000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "FantasticBaby", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 4514, + "packages": { + "mapContent": "FantasticBaby_mapContent" + }, + "parentMapName": "FantasticBaby", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "0907A6FF", + "songColor_1B": "00003FFF", + "songColor_2A": "978581FF", + "songColor_2B": "575056FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "FANTASTIC BABY (Japanese ver.)", + "urls": { + "jmcs://jd-contents/FantasticBaby/FantasticBaby_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/FantasticBaby_AudioPreview.ogg", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm", + "jmcs://jd-contents/FantasticBaby/FantasticBaby_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/FantasticBaby_VideoPreview.vp8.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "dabcb8b55b18d88c84e315d7a4fa978b", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/pc/dabcb8b55b18d88c84e315d7a4fa978b.zip", + "version": 2 + }, + "nx": { + "md5": "c8f7a8dac1369803c91f56c6ff767ae6", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/nx/c8f7a8dac1369803c91f56c6ff767ae6.zip", + "version": 1 + }, + "orbis": { + "md5": "4cc86c220595ddb27ce67769dd9b5f27", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FantasticBaby/ps4/4cc86c220595ddb27ce67769dd9b5f27.zip", + "version": 1 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FearlessPirateKids.json b/justdanceonline-main/maps/FearlessPirateKids.json new file mode 100644 index 0000000000000000000000000000000000000000..78a5fb1bcbaf542c3a290e26df5e15eb093ac4f0 --- /dev/null +++ b/justdanceonline-main/maps/FearlessPirateKids.json @@ -0,0 +1,117 @@ +{ + "artist": "Marine Band", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ggp/FearlessPirateKids_banner_bkg.tga.ckd/750e230136f6b3f9463fed64c1b73fca.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ggp/FearlessPirateKids_Coach_1.tga.ckd/a2cc8f8ff93e802d0a7c6fc76498798d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ggp/FearlessPirateKids_Cover_Generic.tga.ckd/93cae6cdfe2a93093929fe532fa71b26.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Cover_1024.png/4b7a27275e0a689ab66df2a45c610343.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ggp/FearlessPirateKids_Cover_Online.tga.ckd/93cae6cdfe2a93093929fe532fa71b26.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ggp/FearlessPirateKids_Cover_AlbumBkg.tga.ckd/90ce7f0135548025609ef7e916b80f04.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ggp/FearlessPirateKids_Cover_AlbumCoach.tga.ckd/29fd401383467222163151dc2ebcbe1d.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Coach_1_Phone.png/e89b03dfa70680120338774c483255b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Cover_Phone.jpg/81d2194aba62317300d0e73637af75cf.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_VideoPreview.webm/fa58e1a7597e423cddd3b6ab017f1728.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ggp/FearlessPirateKids_map_bkg.tga.ckd/ed2d9d971ec321d3e74cc9394b38d63e.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_banner_bkg.tga.ckd/97827bd508929de00be37d66e303d51d.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_Coach_1.tga.ckd/b43c9ec230b1046165471a63238ea7b2.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_Cover_Generic.tga.ckd/22962e2b08aca82991888ff85bffe93d.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Cover_1024.png/4b7a27275e0a689ab66df2a45c610343.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_Cover_Online.tga.ckd/11fe3ef02fd09198a48843f67dba36e4.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_Cover_AlbumBkg.tga.ckd/e694432ef501b63193b42bc0e150bb77.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_Cover_AlbumCoach.tga.ckd/66d26bab0d0da49a75cc7bbcab502632.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_map_bkg.tga.ckd/9c8ccdb4e00ba2e6c9707738cfab8fde.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Coach_1_Phone.png/e89b03dfa70680120338774c483255b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Cover_Phone.jpg/81d2194aba62317300d0e73637af75cf.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_VideoPreview.webm/fa58e1a7597e423cddd3b6ab017f1728.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/wiiu/FearlessPirateKids_banner_bkg.tga.ckd/9ba80e117df2fc45bdc274fcf8826a1a.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/wiiu/FearlessPirateKids_Coach_1.tga.ckd/acdf78eb00a1b2f1acf45d61d3af6eb4.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/wiiu/FearlessPirateKids_Cover_Generic.tga.ckd/b562a0113323da4a4d7decc8a5297352.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Cover_1024.png/4b7a27275e0a689ab66df2a45c610343.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/wiiu/FearlessPirateKids_Cover_Online.tga.ckd/7a298b994c830d7a1188f1969e5ed908.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/wiiu/FearlessPirateKids_Cover_AlbumBkg.tga.ckd/b7b72dfb1afdf67bfafba685367c4641.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/wiiu/FearlessPirateKids_Cover_AlbumCoach.tga.ckd/9c5601a668557764808c3e2f1d458c2b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Coach_1_Phone.png/e89b03dfa70680120338774c483255b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_Cover_Phone.jpg/81d2194aba62317300d0e73637af75cf.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_VideoPreview.webm/fa58e1a7597e423cddd3b6ab017f1728.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23424,46848,71328,95808,120288,143472,166608,189792,212976,236640,260304,283967,307631,331295,354959,378623,401903,425231,448511,471791,495071,518399,541679,564958,588238,611566,634846,658126,681406,705406,729358,753310,777310,801262,825214,849213,873165,897117,921117,945069,969069,991869,1014717,1037565,1060365,1083741,1107165,1130540,1153916,1177292,1200668,1224044,1247420,1270796,1294172,1317548,1340924,1363916,1386860,1409852,1432795],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-18,\"endBeat\":249,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/fearlesspiratekids/fearlesspiratekids_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "19FBEEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 129.575, + "mapName": "FearlessPirateKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "FearlessPirateKids_mapContent" + }, + "parentMapName": "FearlessPirateKids", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "FF9D00FF", + "songColor_1B": "6C1300FF", + "songColor_2A": "00E0FFFF", + "songColor_2B": "004B84FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Fearless Pirate", + "urls": { + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_AudioPreview.ogg/3dbbff45833ecf20e1ec185f3b66ad9f.ogg", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/40843fc8d9ac97d3d3879ec1e2c97c7b.webm", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/708a6452a8cfd9f76284799a33ebe1e1.webm", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_LOW.vp8.webm/6031b9f3fe47d3638865fdc484866675.webm", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_LOW.vp9.webm/1728148afe2578ccebf6d2f819c6507d.webm", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_MID.vp8.webm/6231ccc350bd36d553cc7ced93271f97.webm", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_MID.vp9.webm/c50f2d861f8927fe33863bd5b53be8ea.webm", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/e4f2457380d154d2d766f40a8a7f9153.webm", + "jmcs://jd-contents/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/FearlessPirateKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/17482a612ef5671a7b80fd8da2a95659.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "76e1e79cdf0b7faed1ee6eb8901550cf", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/ps4/FearlessPirateKids_MAIN_SCENE_ORBIS.zip/76e1e79cdf0b7faed1ee6eb8901550cf.zip", + "version": 2 + }, + "wiiu": { + "md5": "5768eebe9c7992b8e8161eaa3b63741a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/wiiu/FearlessPirateKids_MAIN_SCENE_WIIU.zip/5768eebe9c7992b8e8161eaa3b63741a.zip", + "version": 2 + }, + "nx": { + "md5": "25902238c760977e62f269f55e4f9719", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FearlessPirateKids/nx/FearlessPirateKids_MAIN_SCENE_NX.zip/25902238c760977e62f269f55e4f9719.zip", + "version": 2 + }, + "pc": { + "md5": "8e5e9fa730e3b9e922c7b3b4b197dd25", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FearlessPirateKids/pc/8e5e9fa730e3b9e922c7b3b4b197dd25.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FeelIt.json b/justdanceonline-main/maps/FeelIt.json new file mode 100644 index 0000000000000000000000000000000000000000..0d3617e992d359a4004e1f6e44ec8c2f98ad62d4 --- /dev/null +++ b/justdanceonline-main/maps/FeelIt.json @@ -0,0 +1,113 @@ +{ + "artist": "Portugal. The Man", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_banner_bkg.jpg/58e06427493a5e630c7f0635b39432b1.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Coach_1.png/d427ce88cc89d189805465a11a7a6d1e.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_Generic.jpg/8b46610c3ca198bbe45cc2335070f993.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_1024.png/25afba9192df679de92754d68a45f9d4.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_Online.jpg/f5a8f6dee9c3dcce51813a8f8b911f0d.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_AlbumBkg.jpg/8301fe3d2c8125b8af15d56cc4844376.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_AlbumCoach.png/93cd1e0bd947b23bd01cd76762bb48f8.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Coach_1_Phone.png/2503b54dffc767f8b97c7d243d72a90a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_Phone.jpg/f5a8f6dee9c3dcce51813a8f8b911f0d.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_VideoPreview.webm/0a544be8ddebfc1111688b5a6e3e4f82.webm" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_banner_bkg.jpg/58e06427493a5e630c7f0635b39432b1.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Coach_1.png/d427ce88cc89d189805465a11a7a6d1e.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_Generic.jpg/8b46610c3ca198bbe45cc2335070f993.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_1024.png/25afba9192df679de92754d68a45f9d4.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_Online.jpg/f5a8f6dee9c3dcce51813a8f8b911f0d.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_AlbumBkg.jpg/8301fe3d2c8125b8af15d56cc4844376.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_AlbumCoach.png/93cd1e0bd947b23bd01cd76762bb48f8.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Coach_1_Phone.png/2503b54dffc767f8b97c7d243d72a90a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_Phone.jpg/f5a8f6dee9c3dcce51813a8f8b911f0d.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_VideoPreview.webm/0a544be8ddebfc1111688b5a6e3e4f82.webm" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/wiiu/FeelIt_banner_bkg.tga.ckd/ed9e0cb0356a1f7854e48807ad2d67ce.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/wiiu/FeelIt_Coach_1.tga.ckd/a12d736ba2b9ec4426a2712ec34bb288.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/wiiu/FeelIt_Cover_Generic.tga.ckd/10ea529938538baa4982b9779313fad0.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_1024.png/25afba9192df679de92754d68a45f9d4.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/wiiu/FeelIt_Cover_Online.tga.ckd/86f34a3a1e0ef0e11982f95f9f4101a5.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/wiiu/FeelIt_Cover_AlbumBkg.tga.ckd/8b440a88a5fa9a452bb83a1227ad6b1c.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/wiiu/FeelIt_Cover_AlbumCoach.tga.ckd/f1a8300c5d31f6f5091fc36f62d20abd.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Coach_1_Phone.png/2503b54dffc767f8b97c7d243d72a90a.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_Cover_Phone.jpg/f5a8f6dee9c3dcce51813a8f8b911f0d.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_VideoPreview.webm/0a544be8ddebfc1111688b5a6e3e4f82.webm" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,18240,36480,54720,72912,91152,109392,127583,145823,164015,182255,200495,218735,236975,255167,273407,291647,309839,328079,346271,364511,382751,400991,419231,437471,455711,473903,492143,510383,528575,546815,565055,583295,601487,619679,637871,656015,674639,693263,711839,730462,748222,766030,783790,802030,820270,838462,856702,874942,893134,911374,929566,947806,966046,984286,1002574,1020814,1039102,1057342,1075582,1093870,1112014,1130206,1148398,1166590,1184782,1203022,1221214,1239454,1257694,1275886,1294126,1312366,1330605,1348845,1367085,1385325,1403565,1421757,1439997],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-7,\"endBeat\":425,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":79,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/feelit/feelit_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Eric Howk, Zachary Carothers, Kyle O’Quin, John Gourley, Jason Sechrist, Freddie Gorman, Robert Bateman, Brian Holland, John Hill, Georgina Dobbins, William Garrett and Asa Taccone. Published by Warner-Tamerlane Publishing Corp. (BMI) Approaching Airbaloons (ASCAP), Kyle O’Quin (BMI) Pub Designee (BMI) and WB Music Corp. (ASCAP). / R odeoman Music / EMI Pop Music Publishing (GMR), Jobete Music Co Inc. (ASCAP) and Stone Agate Music (BMI) c/o EMI Blackwood Music (Canada) Ltd. (SOCAN). / Asa Taccone (Twonk Donklis/ASCAP). All rights reserved. Used with permission. (P) Line: 2017 Atlantic Recording Corporation. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "F3B136FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 163.789, + "mapName": "FeelIt", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2018, + "packages": { + "mapContent": "FeelIt_mapContent" + }, + "parentMapName": "FeelIt", + "skuIds": [], + "songColors": { + "songColor_1A": "000085FF", + "songColor_1B": "070832FF", + "songColor_2A": "C00063FF", + "songColor_2B": "100D25FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "EasyPeasy" + ], + "title": "Feel It Still", + "urls": { + "jmcs://jd-contents/FeelIt/FeelIt_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_AudioPreview.ogg/b309823bd0086af9fd9583b316656958.ogg", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_HIGH.vp8.webm/0a27aa15786b728eab1532ece4765569.webm", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_HIGH.vp9.webm/07eac9dbeb928eaae37bea28c2f652a3.webm", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_LOW.vp8.webm/0263fd381efb189a17ba4760cb926d8e.webm", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_LOW.vp9.webm/89005e53d71653678bf179180bffacf1.webm", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_MID.vp8.webm/f3d23d72ea381d5313d799e8bce42270.webm", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_MID.vp9.webm/5ac10172ad6b7e86749a4419963dad3b.webm", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_ULTRA.vp8.webm/ae809929df9de77fd9921259b73f8a45.webm", + "jmcs://jd-contents/FeelIt/FeelIt_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/FeelIt/FeelIt_MapPreviewNoSoundCrop_ULTRA.vp9.webm/202c415838480bfdda48c6a55b8ecbf0.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "07db9229d8e7601a4d9309e10c29980f", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FeelIt/ps4/FeelIt_MAIN_SCENE_ORBIS.zip/07db9229d8e7601a4d9309e10c29980f.zip", + "version": 52 + }, + "nx": { + "md5": "351be35f68e27356b64c19b7343e8fe5", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FeelIt/nx/FeelIt_MAIN_SCENE_NX.zip/351be35f68e27356b64c19b7343e8fe5.zip", + "version": 27 + }, + "pc": { + "md5": "7a3be26074da5c15037c0c268d0aa347", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FeelIt/pc/FeelIt_MAIN_SCENE_PC.zip/7a3be26074da5c15037c0c268d0aa347.zip", + "version": 25 + }, + "wiiu": { + "md5": "b37c037f1fc430356185168f2c244f91", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FeelIt/wiiu/FeelIt_MAIN_SCENE_WIIU.zip/b37c037f1fc430356185168f2c244f91.zip", + "version": 52 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FeelSpecial.json b/justdanceonline-main/maps/FeelSpecial.json new file mode 100644 index 0000000000000000000000000000000000000000..48edf132471bc1fe5cf36676f9d12455cf86699b --- /dev/null +++ b/justdanceonline-main/maps/FeelSpecial.json @@ -0,0 +1,98 @@ +{ + "artist": "TWICE", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_banner_bkg.jpg/0077781626d707726fe55cb2edff6ae9.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_1.png/2cc24f7442681263e93360022259c9d7.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_2.png/d5a6771d911a889a2560743ea2073363.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_3.png/7840f558024b3c1b1bec7fc4fd89d7ba.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_Generic.jpg/e4030b42ea7c760c544be16b405edafc.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_Online.jpg/0495fbe042747a3302968817a7087948.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_AlbumBkg.jpg/0528892e9278ab407e51737ee5ef8be5.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_AlbumCoach.png/801c73bf986f75b288db386b9e5a9188.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_1_Phone.png/8a3cf34f8e4ef2ea5224a6705014b4db.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_2_Phone.png/7de72bcc7656276c5d710d04ca25b8a0.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_3_Phone.png/354de318cefc3a4a97a2afe7d06b3b82.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_Phone.jpg/0495fbe042747a3302968817a7087948.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_banner_bkg.jpg/0077781626d707726fe55cb2edff6ae9.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_1.png/2cc24f7442681263e93360022259c9d7.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_2.png/d5a6771d911a889a2560743ea2073363.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_3.png/7840f558024b3c1b1bec7fc4fd89d7ba.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_Generic.jpg/e4030b42ea7c760c544be16b405edafc.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_Online.jpg/0495fbe042747a3302968817a7087948.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_AlbumBkg.jpg/0528892e9278ab407e51737ee5ef8be5.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_AlbumCoach.png/801c73bf986f75b288db386b9e5a9188.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_1_Phone.png/8a3cf34f8e4ef2ea5224a6705014b4db.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_2_Phone.png/7de72bcc7656276c5d710d04ca25b8a0.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Coach_3_Phone.png/354de318cefc3a4a97a2afe7d06b3b82.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecial/FeelSpecial_Cover_Phone.jpg/0495fbe042747a3302968817a7087948.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22326,44652,66977,89303,111628,133954,156279,178605,200931,223256,245582,267907,290233,312559,334884,357210,379535,401861,424186,446512,468838,491163,513489,535814,558140,580466,602791,625117,647442,669768,692093,714419,736745,759070,781396,803721,826047,848372,870698,893024,915349,937675,960000,982326,1004652,1026977,1049303,1071628,1093954,1116279,1138605,1160931,1183256,1205582,1227907,1250233,1272559,1294884,1317210,1339535,1361861,1384186,1406512,1428838],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-6,\"endBeat\":443,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":64,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/feelspecial/feelspecial_AudioPreview.ogg\"}", + "coachCount": 3, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by J.Y. Park “The Asian Soul”, Woo Min Lee “collapsedone”, Ollipop and Hayley Michelle Aitken. Published by Universal Music Publishing Canada on behalf of Kennel AB, The and Universal Music Publishing AB / JYP Publishing (KOMCA), The Kennel AB. / JYP Publishing (KOMCA). All rights reserved. Used with permission. Courtesy of JYP Entertainment.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "E52365FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 208.83599999999998, + "mapName": "FeelSpecial", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "FeelSpecial_mapContent" + }, + "parentMapName": "FeelSpecial", + "skuIds": [], + "songColors": { + "songColor_1A": "E4C3A0FF", + "songColor_1B": "6ACAB1FF", + "songColor_2A": "1F1608FF", + "songColor_2B": "E02F95FF" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Main", + "subscribedSong" + ], + "title": "Feel Special", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "e306a3ce59e89fdb7b25c25d7d0337db", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/ps4/FeelSpecial_MAIN_SCENE_ORBIS.zip/e306a3ce59e89fdb7b25c25d7d0337db.zip", + "version": 1 + }, + "nx": { + "md5": "131de6d8c61c232b2207527860d755bd", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/nx/FeelSpecial_MAIN_SCENE_NX.zip/131de6d8c61c232b2207527860d755bd.zip", + "version": 1 + }, + "pc": { + "md5": "d7bd381542a85b09acf9c1355b3f3a13", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelSpecial/pc/d7bd381542a85b09acf9c1355b3f3a13.zip", + "version": 1 + } + }, + "mapType": "jdu", + "urls": { + "jmcs://jd-contents/FeelSpecial/FeelSpecial_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_AudioPreview.ogg/d3996cba4e5b483f09678512ec0fea6f.ogg", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_HIGH.vp8.webm/0addcb4e00cabbf132e941d1353da061.webm", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_HIGH.vp9.webm/a5291452d04cbc84c427aed97d20b115.webm", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_LOW.vp8.webm/0c1994c1dde51c9fd717838459dcd7a0.webm", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_LOW.vp9.webm/51a0346eb02d0503d9dc7980f54b7833.webm", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_MID.vp8.webm/93037022b259f82eea682eb051915593.webm", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_MID.vp9.webm/4131c995f4b81a66d836569194c6ecad.webm", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_ULTRA.vp8.webm/cdccbd2deac87cde2dde3c5edb153a8a.webm", + "jmcs://jd-contents/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecial/FeelSpecial_MapPreviewNoSoundCrop_ULTRA.vp9.webm/ee74dc2f648d8718b7e77a23a85b905b.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FeelSpecialALT.json b/justdanceonline-main/maps/FeelSpecialALT.json new file mode 100644 index 0000000000000000000000000000000000000000..813b192c4967370576c165ccbb6186c15ca9fabf --- /dev/null +++ b/justdanceonline-main/maps/FeelSpecialALT.json @@ -0,0 +1,91 @@ +{ + "artist": "TWICE", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_banner_bkg.jpg/24566d522174f2c4db07e83b035f5f02.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Coach_1.png/de0f47138340d0c7a6a582d924dfc5bd.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_Generic.jpg/2e98b1979a00c237791e192f45e27b98.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_Online.jpg/0561cdc38b42603c84d13af9a629c624.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_AlbumBkg.jpg/cfa5ded3a03c4d9025592a9bc6a9f3c5.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_AlbumCoach.png/8d291ac9873064fd6b2c381e01aed772.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Coach_1_Phone.png/14e91ed8543c30edf3fbfdd4d7642ba0.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_Phone.jpg/0561cdc38b42603c84d13af9a629c624.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_banner_bkg.jpg/24566d522174f2c4db07e83b035f5f02.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Coach_1.png/de0f47138340d0c7a6a582d924dfc5bd.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_Generic.jpg/2e98b1979a00c237791e192f45e27b98.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_Online.jpg/0561cdc38b42603c84d13af9a629c624.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_AlbumBkg.jpg/cfa5ded3a03c4d9025592a9bc6a9f3c5.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_AlbumCoach.png/8d291ac9873064fd6b2c381e01aed772.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Coach_1_Phone.png/14e91ed8543c30edf3fbfdd4d7642ba0.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FeelSpecialALT/FeelSpecialALT_Cover_Phone.jpg/0561cdc38b42603c84d13af9a629c624.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,22326,44652,66977,89303,111628,133954,156279,178605,200931,223256,245582,267907,290233,312559,334884,357210,379535,401861,424186,446512,468838,491163,513489,535814,558140,580466,602791,625117,647442,669768,692093,714419,736745,759070,781396,803721,826047,848372,870698,893024,915349,937675,960000,982326,1004652,1026977,1049303,1071628,1093954,1116279,1138605,1160931,1183256,1205582,1227907,1250233,1272559,1294884,1317210,1339535,1361861,1384186,1406512,1428838],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":440,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":64,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/feelspecialalt/feelspecialalt_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by J.Y. Park “The Asian Soul”, Woo Min Lee “collapsedone”, Ollipop and Hayley Michelle Aitken. Published by Universal Music Publishing Canada on behalf of Kennel AB, The and Universal Music Publishing AB / JYP Publishing (KOMCA), The Kennel AB. / JYP Publishing (KOMCA). All rights reserved. Used with permission. Courtesy of JYP Entertainment.", + "difficulty": 4, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "F41978FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 206.511, + "mapName": "FeelSpecialALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "FeelSpecialALT_mapContent" + }, + "parentMapName": "FeelSpecial", + "skuIds": [], + "songColors": { + "songColor_1A": "242E33FF", + "songColor_1B": "D6BF82FF", + "songColor_2A": "CB2375FF", + "songColor_2B": "EEE3EDFF" + }, + "status": 12, + "sweatDifficulty": 3, + "tags": [ + "Alternate", + "subscribedSong" + ], + "title": "Feel Special", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "e2f13825d55771eb442e6424c8675dcf", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/ps4/FeelSpecialALT_MAIN_SCENE_ORBIS.zip/e2f13825d55771eb442e6424c8675dcf.zip", + "version": 1 + }, + "nx": { + "md5": "001b1a4993f4a59d2ae7cc62d859c635", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/nx/FeelSpecialALT_MAIN_SCENE_NX.zip/001b1a4993f4a59d2ae7cc62d859c635.zip", + "version": 1 + }, + "pc": { + "md5": "8b425de6416c75ece92c84d6a8908428", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelSpecialALT/pc/8b425de6416c75ece92c84d6a8908428.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12624, + "urls": { + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_AudioPreview.ogg/f335fbac0d5aea2375e3cfd569c2b4be.ogg", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/9cfd05e6c42cd3c71d996efbf43b55d5.webm", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/0c75ab0fbdc5a276a1d2d0642a04220f.webm", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_LOW.vp8.webm/180e63e7393555f885914dce0e3353cd.webm", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_LOW.vp9.webm/296e13e278ac4f94061e9df31bfef65d.webm", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_MID.vp8.webm/24618661f2232996c07c552beb20ad97.webm", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_MID.vp9.webm/9bdae0b5e0325af29277078b15a7a89d.webm", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/d47d534f7c92ce470cf75f6a9ac86681.webm", + "jmcs://jd-contents/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FeelSpecialALT/FeelSpecialALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/f45e32edfbebd139ae7f7dcf8cd080ff.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FeelThisMoment.json b/justdanceonline-main/maps/FeelThisMoment.json new file mode 100644 index 0000000000000000000000000000000000000000..67f6dcfe0ced4e539a4efe4e1d6ccbb9991e47de --- /dev/null +++ b/justdanceonline-main/maps/FeelThisMoment.json @@ -0,0 +1,91 @@ +{ + "artist": "Pitbull Ft. Christina Aguilera", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/textures/FeelThisMoment_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,21167,42335,63551,84719,105887,127055,148223,169391,190607,211775,232943,254111,275279,296447,317663,338831,359999,381167,402335,423551,444719,465887,487055,508223,529391,550607,571775,592943,614111,635279,656447,677663,698831,719999,741167,762335,783551,804719,825887,847055,868223,889391,910607,931775,952943,974111,995279,1016446,1037662,1058830,1079998,1101166,1122334,1143550,1164718,1185886,1207054,1228222,1249390,1270606,1291774,1312942,1334110,1355278,1376446,1397662,1418830,1439998,1461166],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":394,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":69,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/FeelThisMoment/FeelThisMoment_AudioPreview.ogg\"}\"", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FFFF00FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "FeelThisMoment", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2014, + "packages": { + "mapContent": "FeelThisMoment_mapContent" + }, + "parentMapName": "FeelThisMoment", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "25294AFF", + "songColor_1B": "181543FF", + "songColor_2A": "2CD192FF", + "songColor_2B": "093C42FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Feel This Moment", + "urls": { + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/FeelThisMoment_AudioPreview.ogg", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm", + "jmcs://jd-contents/FeelThisMoment/FeelThisMoment_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/FeelThisMoment_VideoPreview.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "5cfc0009e21075d1fbce409e9bdc18fe", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/pc/5cfc0009e21075d1fbce409e9bdc18fe.zip", + "version": 4 + }, + "nx": { + "md5": "6f77067a3d7ccd74efb1e0f9be1cf1f9", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FeelThisMoment/nx/6f77067a3d7ccd74efb1e0f9be1cf1f9.zip", + "version": 3 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Finesse.json b/justdanceonline-main/maps/Finesse.json new file mode 100644 index 0000000000000000000000000000000000000000..df4651bac9f7eb6b06beddeab3acf8549f1ca994 --- /dev/null +++ b/justdanceonline-main/maps/Finesse.json @@ -0,0 +1,137 @@ +{ + "artist": "Bruno Mars Ft. Cardi B", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_banner_bkg.tga.ckd/de1309753ef23c1196cd65cf69fa2502.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Coach_1.tga.ckd/aec79b90af95857c83a2f92ba39f760d.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Coach_2.tga.ckd/a41b13a8ec36288a85d6f458e32d83bb.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Coach_3.tga.ckd/d2fbaf88cee19c5f59c84827aaafe066.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Coach_4.tga.ckd/d9e5e46c1dbde1e81944afdfbefd0510.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Cover_Generic.tga.ckd/cfe08af5d9827eea1dd66f36f6ef4e98.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_1024.png/4aa47c35258fca587de3897ea45c91f5.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Cover_Online.tga.ckd/6d91cf03baaf0a3450333a310ef0448f.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Cover_AlbumBkg.tga.ckd/da1867d325163a4da09ebf0cb8fe01ac.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_Cover_AlbumCoach.tga.ckd/7df9fc984c7afcd0deaa1e565a5207ee.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_1_Phone.png/51e5fa28b6be1c0f0a1ea366b1a62376.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_2_Phone.png/dbc1c081c2f468cc8391e98f4be46cad.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_3_Phone.png/dd4f5520fa2b1a80413f9d2a6fc8c49e.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_4_Phone.png/84c49691523be2e4790e170ff6d68622.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_Phone.jpg/d60c3227df650321427994a784e8f6a0.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_map_bkg.tga.ckd/f926c54a24ea477593e173caa0b58124.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_banner_bkg.tga.ckd/6b89a5724b61632629f674ee3dc8dc40.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Coach_1.tga.ckd/849163eeb34218f9a598a60e8be9e6a3.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Coach_2.tga.ckd/db9531ceaeb46f52e94281e55ff3c30b.ckd", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Coach_3.tga.ckd/5d5fffb2037c0114af44fbc1936a6d83.ckd", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Coach_4.tga.ckd/408c83838c52f7643db03930dff6eba1.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Cover_Generic.tga.ckd/6d3cb0e0f9c1160ecd145511649e7f52.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_1024.png/4aa47c35258fca587de3897ea45c91f5.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Cover_Online.tga.ckd/b77625f10c6d60e545f99efa0b55db69.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Cover_AlbumBkg.tga.ckd/f5162b2d86f279d2f2b113d69998dce1.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_Cover_AlbumCoach.tga.ckd/9cd060bd2f133623f611b1cb7fece1f2.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_1_Phone.png/51e5fa28b6be1c0f0a1ea366b1a62376.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_2_Phone.png/dbc1c081c2f468cc8391e98f4be46cad.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_3_Phone.png/dd4f5520fa2b1a80413f9d2a6fc8c49e.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_4_Phone.png/84c49691523be2e4790e170ff6d68622.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_Phone.jpg/d60c3227df650321427994a784e8f6a0.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_map_bkg.tga.ckd/9935ddc005c44a53ba070ab8580f697f.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_banner_bkg.jpg/4ff4c7ffa35782c26134ea3dbb0137d0.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_1.png/ced953be9b6ce8281a384287a3d81a24.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_2.png/61eda16b1b3b695c291ca7d9cfbac5a7.png", + "coach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_3.png/cdbfb3fb696625298f0716d124564f9c.png", + "coach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_4.png/2966fd8867557ea3e0ffc2fde6e0e701.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_Generic.jpg/3e9011b4bd52bb70707e7f516d5697f6.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_1024.png/4aa47c35258fca587de3897ea45c91f5.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_Online.jpg/d60c3227df650321427994a784e8f6a0.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_AlbumBkg.jpg/617d532d33ffcbc2558b284ce95d062b.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_AlbumCoach.png/d00485cb5c204d42fa93ee7e5582834d.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_1_Phone.png/51e5fa28b6be1c0f0a1ea366b1a62376.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_2_Phone.png/dbc1c081c2f468cc8391e98f4be46cad.png", + "phoneCoach3ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_3_Phone.png/dd4f5520fa2b1a80413f9d2a6fc8c49e.png", + "phoneCoach4ImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Coach_4_Phone.png/84c49691523be2e4790e170ff6d68622.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_Cover_Phone.jpg/d60c3227df650321427994a784e8f6a0.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,27408,54864,82272,109728,137136,164592,192000,219408,246864,274272,301728,329136,356592,384000,411408,438864,466272,493728,521136,548592,576000,603408,630864,658272,685728,713136,740592,768000,795408,822864,850272,877728,905136,932592,960000,987408,1014864,1042272,1069728,1097136,1124592,1152000,1179408,1206864,1234272,1261728,1289136,1316592,1344000,1371408,1398864,1426272],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":380,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":52,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/finesse/finesse_AudioPreview.ogg\"}", + "coachCount": 4, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Chris “Brody” Brown, Bruno Mars, Jeremy Reeves, Jonathan Yip, James Edward Fauntleroy II, Philip Martin Lawrence II, Ray Charles II McCullough, Ray Romulus and Belcalis Almanzar. Published by Please Enjoy The Music (BMI), Washpoppin Inc (ASCAP) c/o Sony/ATV Music Publishing Canada (SOCAN) / Almo Music Corp. on behalf of itself, Fauntleroy Music, and Underdog West Songs, Universal Music Works on behalf of ZZR Music LLC., Universal Music Corp. on behalf of itself, and Ra Charm Music. / WB Music Corp. (ASCAP) on behalf of Shaftizm (ASCAP) and Sumphu (ASCAP) / Westside Independent Music Publishing LLC (ASCAP) on behalf of itself and Late 80's Music (ASCAP) and Thou Art The Hunger (ASCAP) / Warner-Tamerlane Publishing Corp. (BMI) on behalf of itself and Music For Milo (BMI) / BMG Onyx Songs on behalf of itself and Mars Force Music. All rights administered by BMG Rights Management (US) LLC. All rights reserved. Used with permission. (P) Line: 2018 Atlantic Recording Corporation. All rights of the producer and other right holders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "62EBFFFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 219.429, + "mapName": "Finesse", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "Finesse_mapContent" + }, + "parentMapName": "Finesse", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "030182FF", + "songColor_1B": "A84BD1FF", + "songColor_2A": "F9F225FF", + "songColor_2B": "EF79FCFF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Finesse (Remix)", + "urls": { + "jmcs://jd-contents/Finesse/Finesse_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_AudioPreview.ogg/3a40aac342649fb7e904ae454df13fc4.ogg", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_HIGH.vp8.webm/a3387c7280fb6862b3adb4f0c15db309.webm", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_HIGH.vp9.webm/28c52cfd3656dd86c61eaefefe2bcec7.webm", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_LOW.vp8.webm/963d9ec777c08f20386ac824dc4107ee.webm", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_LOW.vp9.webm/e0f4bc09cd70a1141ae611993e706814.webm", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_MID.vp8.webm/f5dc42a17554a7c89e32ebdf0fa7cea8.webm", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_MID.vp9.webm/9528f3165aee5196fc5f1deb26258627.webm", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_ULTRA.vp8.webm/9c65b4a27b42360b55879fe558094109.webm", + "jmcs://jd-contents/Finesse/Finesse_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Finesse/Finesse_MapPreviewNoSoundCrop_ULTRA.vp9.webm/90e252e254807036af7111308e1eb901.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "df3f7f3f1e807de048bebc3b70b82e23", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Finesse/ps4/Finesse_MAIN_SCENE_ORBIS.zip/df3f7f3f1e807de048bebc3b70b82e23.zip", + "version": 3 + }, + "nx": { + "md5": "eea91bc3d30a04487011c0eccb5a5660", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Finesse/nx/Finesse_MAIN_SCENE_NX.zip/eea91bc3d30a04487011c0eccb5a5660.zip", + "version": 3 + }, + "pc": { + "md5": "cf15c8aaf6466628820c4fa35dcc3840", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/finesse_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FinesseALT.json b/justdanceonline-main/maps/FinesseALT.json new file mode 100644 index 0000000000000000000000000000000000000000..d4ce3d964011587bf03a05c102d46b1c3079f43b --- /dev/null +++ b/justdanceonline-main/maps/FinesseALT.json @@ -0,0 +1,108 @@ +{ + "artist": "Bruno Mars Ft. Cardi B", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/ggp/FinesseALT_banner_bkg.tga.ckd/a76e8a32342068f8f05ce1ac820c4735.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/ggp/FinesseALT_Coach_1.tga.ckd/997151f6a3b36f7089f7b0e10d4af0f3.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/ggp/FinesseALT_Cover_Generic.tga.ckd/8b87bbca346fad949b6abf31eba04ac5.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_1024.png/d594f6f22a620b161111bff9d0f88a8b.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/ggp/FinesseALT_Cover_Online.tga.ckd/8b87bbca346fad949b6abf31eba04ac5.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/ggp/FinesseALT_Cover_AlbumBkg.tga.ckd/91af7e68b83611ce012891960e40c67e.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/ggp/FinesseALT_Cover_AlbumCoach.tga.ckd/17246b6bdef32a18d76eb8e6be97dd91.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Coach_1_Phone.png/76b12e440aa47a52b2498bf4ed1451b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_Phone.jpg/bda77aa7a334c9a474faa98e1ae295f9.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/ggp/FinesseALT_map_bkg.tga.ckd/28161df0d45bc044a5c9cbc6c50ad016.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_banner_bkg.tga.ckd/94f35260f683c139e3c289f434c1c7dc.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_Coach_1.tga.ckd/b39de6bade5a49dfe0dc14e53a8e31b9.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_Cover_Generic.tga.ckd/d981fd9eba4221fc3001b57462dd03e4.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_1024.png/d594f6f22a620b161111bff9d0f88a8b.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_Cover_Online.tga.ckd/b89a7dcc40d6971a7705bb6e9cf29f1d.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_Cover_AlbumBkg.tga.ckd/9fd69cdf169345e8ae9331271bca6675.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_Cover_AlbumCoach.tga.ckd/949ad675bbbd562c3361f46e3a9dcef8.ckd", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_map_bkg.tga.ckd/6f9276726ad6feaf0805b585c8ed1e0c.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Coach_1_Phone.png/76b12e440aa47a52b2498bf4ed1451b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_Phone.jpg/bda77aa7a334c9a474faa98e1ae295f9.jpg" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_banner_bkg.jpg/5acc02a722715bde1739444af6751469.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Coach_1.png/56e14b2c4c7c738d665215227d2655dc.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_Generic.jpg/afdcf195dc0f4d845324796e4a5e6158.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_1024.png/729db051c169b00757ea108578face31.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_Online.jpg/bda77aa7a334c9a474faa98e1ae295f9.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_AlbumBkg.jpg/1c3c3a057d73aab80d4179953c03ff66.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_AlbumCoach.png/71b96077410abcc7b8bf593a58f14572.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Coach_1_Phone.png/76b12e440aa47a52b2498bf4ed1451b7.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_Cover_Phone.jpg/bda77aa7a334c9a474faa98e1ae295f9.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,27408,54864,82272,109728,137136,164592,192000,219408,246864,274272,301728,329136,356592,384000,411408,438864,466272,493728,521136,548592,576000,603408,630864,658272,685728,713136,740592,768000,795408,822864,850272,877728,905136,932592,960000,987408,1014864,1042272,1069728,1097136,1124592,1152000,1179408,1206864,1234272,1261728,1289136,1316592,1344000,1371408,1398864,1426272],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-2,\"endBeat\":380,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":52,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/finessealt/finessealt_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 4, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FD00C8FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 218.286, + "mapName": "FinesseALT", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "FinesseALT_mapContent" + }, + "parentMapName": "FinesseALT", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "018087FF", + "songColor_1B": "034866FF", + "songColor_2A": "CCA80CFF", + "songColor_2B": "B75403FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main", + "freeSong" + ], + "title": "Finesse (Remix)", + "urls": { + "jmcs://jd-contents/FinesseALT/FinesseALT_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_AudioPreview.ogg/4f873576d4af00121f8aae3da694d1c0.ogg", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_HIGH.vp8.webm/7ee6b38e79d455cf5ed66526332ab1ce.webm", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_HIGH.vp9.webm/4906297a72bccef4bcc3730c7930008c.webm", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_LOW.vp8.webm/9fa3dc99a1e58cad744626ecbdfe4e60.webm", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_LOW.vp9.webm/1281848e5475c840e58d7bd5bedd8817.webm", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_MID.vp8.webm/27421801a9a7bda50460af8cc8f25e33.webm", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_MID.vp9.webm/dcaa1d266f3ba5d072ff04426a84876c.webm", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_ULTRA.vp8.webm/7ce4193353528da0b410881214b48645.webm", + "jmcs://jd-contents/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/FinesseALT/FinesseALT_MapPreviewNoSoundCrop_ULTRA.vp9.webm/e52cf43803f7b96da6f8111112b74e6d.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "9e11b5feee8f14478d5c04667cf2b084", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FinesseALT/ps4/FinesseALT_MAIN_SCENE_ORBIS.zip/9e11b5feee8f14478d5c04667cf2b084.zip", + "version": 1 + }, + "nx": { + "md5": "6e9aa771c38154b50882729a8282046e", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FinesseALT/nx/FinesseALT_MAIN_SCENE_NX.zip/6e9aa771c38154b50882729a8282046e.zip", + "version": 1 + }, + "pc": { + "md5": "83cf450c0c30d47a23ad1731205282f9", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/finessealt_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 13763 +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Fire.json b/justdanceonline-main/maps/Fire.json new file mode 100644 index 0000000000000000000000000000000000000000..e4de07f7cff0fb69e6e6b03e65b2cd75289c2a59 --- /dev/null +++ b/justdanceonline-main/maps/Fire.json @@ -0,0 +1,125 @@ +{ + "artist": "LLP Ft. Mike Diamondz", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_banner_bkg.tga.ckd/1f94a272f1be0e24e0fe904d288a4b35.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_Coach_1.tga.ckd/cb69b0fd9b28dad5396c84a670455ecc.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_Coach_2.tga.ckd/2bbbc2d2e6e68da0a9d0cdb462fbb104.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_Cover_Generic.tga.ckd/09c99ff85be22a6169cd5a4e1e951aa0.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_1024.png/8860790909bc9c0838dce7cc96d3f451.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_Cover_Online.tga.ckd/f92c62ad37de0ec3404600344db31085.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_Cover_AlbumBkg.tga.ckd/d67f35c44309a2603171d37868fc4abe.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_Cover_AlbumCoach.tga.ckd/695f25144179bc49ff413465dd901c14.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_1_Phone.png/814e039b71e9840c5863374e2f1e92cc.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_2_Phone.png/ce542b05fb8aa6949ee5a6a89ef9aa39.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_Phone.jpg/1bd11dfc5439816b19306d63a6645a92.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_map_bkg.tga.ckd/4af82593f9359cd1ea72c7c87015c651.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_banner_bkg.tga.ckd/2a48558fc670184abc1c6d04f3af7ae8.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_Coach_1.tga.ckd/0cb514051d68f8633aba7f3ff784ff28.ckd", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_Coach_2.tga.ckd/9ee174e3a45d27fe56d886e7bf6d3ba5.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_Cover_Generic.tga.ckd/e941ef8650e4a4cd3cde80226d06a414.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_1024.png/8860790909bc9c0838dce7cc96d3f451.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_Cover_Online.tga.ckd/67b7cd4bf75c5c5cc13591c3e61aec9c.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_Cover_AlbumBkg.tga.ckd/ac6d10b950c5660529cd4b60a17bafcc.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_Cover_AlbumCoach.tga.ckd/76be5302ab7147db3e192a2a284ada2b.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_1_Phone.png/814e039b71e9840c5863374e2f1e92cc.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_2_Phone.png/ce542b05fb8aa6949ee5a6a89ef9aa39.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_Phone.jpg/1bd11dfc5439816b19306d63a6645a92.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_map_bkg.tga.ckd/6b4de3e22de21a7c445d4a5cf93a90d1.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_banner_bkg.jpg/e8b5bdecc00e0ae129179e02a906832e.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_1.png/9f1aa5a2e97eb3a4b3685374f79d8e1c.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_2.png/0c7f7349391f1c27bdd3bd29f252cd82.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_Generic.jpg/bbd431f6c6111b19f65301e780693418.jpg", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_1024.png/8860790909bc9c0838dce7cc96d3f451.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_Online.jpg/1bd11dfc5439816b19306d63a6645a92.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_AlbumBkg.jpg/01566d23ebf86d31f9cf14fe50cf975e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_AlbumCoach.png/439e94e2f3e4dd8c3b932752ba36f443.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_1_Phone.png/814e039b71e9840c5863374e2f1e92cc.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Coach_2_Phone.png/ce542b05fb8aa6949ee5a6a89ef9aa39.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Fire/Fire_Cover_Phone.jpg/1bd11dfc5439816b19306d63a6645a92.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,26208,52368,78576,104736,130944,157103,183263,209471,235631,261839,287999,314207,340367,366575,392735,418943,445103,471263,497471,523631,549839,575999,602207,628367,654574,680734,706942,733102,759262,785470,811630,837838,863998,890206,916366,942574,968734,994942,1021102,1047262,1073470,1099630,1125837,1151997,1178205,1204365,1230573,1256733,1282941,1309101,1335261,1361469,1387629,1413837,1439997],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-9,\"endBeat\":380,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":55,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/fire/fire_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Emanuel Paul Vasilescu, Michael-Richie Ntumba-Kapumbwa. Published by Roton Music Publishing. Administered in the US by Schubert Music Publishing. © & (P) 2015 ROTON MUSIC. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "08FDFEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 212.182, + "mapName": "Fire", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "Fire_mapContent" + }, + "parentMapName": "Fire", + "skuIds": [ + "jd2019-demo-nx-all", + "jd2019-demo-ps4-scea", + "jd2019-demo-ps4-scee", + "jd2019-demo-wiiu-noa", + "jd2019-demo-wiiu-noe", + "jd2019-demo-xone-all", + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "540440FF", + "songColor_1B": "110121FF", + "songColor_2A": "EDF93BFF", + "songColor_2B": "BA0B1CFF" + }, + "status": 3, + "sweatDifficulty": 3, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Fire", + "urls": { + "jmcs://jd-contents/Fire/Fire_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Fire/Fire_AudioPreview.ogg/74ba3f6e8e59cf760c0ffbcbf1f92697.ogg", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_HIGH.vp8.webm/f422372a74f084fcb9e4b8109086510d.webm", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_HIGH.vp9.webm/b5d1274db3858da2d6b50f4f8c28c6d4.webm", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_LOW.vp8.webm/1e0d87e2a374cdc3382b625ba951267b.webm", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_LOW.vp9.webm/75664f94a1d97d6e18773cdf6704eca0.webm", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_MID.vp8.webm/7ec95506f3a53e257c47c0b874d2b776.webm", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_MID.vp9.webm/a9e8f831d8b10fb85f5ce7d3bf0527cb.webm", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_ULTRA.vp8.webm/712190bcbd15fce22eb634a775eba45a.webm", + "jmcs://jd-contents/Fire/Fire_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Fire/Fire_MapPreviewNoSoundCrop_ULTRA.vp9.webm/27f513e087b7cf253d627765f7687596.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "019db2bf507d39c52557f6aa79bad919", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Fire/ps4/Fire_MAIN_SCENE_ORBIS.zip/019db2bf507d39c52557f6aa79bad919.zip", + "version": 2 + }, + "nx": { + "md5": "8827d8308cb00839653ebbbd3fe6cac7", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Fire/nx/Fire_MAIN_SCENE_NX.zip/8827d8308cb00839653ebbbd3fe6cac7.zip", + "version": 2 + }, + "pc": { + "md5": "c25c37fefe4c6a09cb7bd50d86d51169", + "storageType": 0, + "url": "https://cdn.glitch.com/a9ec9cff-2a9f-4de5-bc2a-76a573caf0b3/fire_main_scene_pc.zip", + "version": 1 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FireOnTheDancefloor.json b/justdanceonline-main/maps/FireOnTheDancefloor.json new file mode 100644 index 0000000000000000000000000000000000000000..3238caafff622a6b229d1f77261c81b08e4a37f6 --- /dev/null +++ b/justdanceonline-main/maps/FireOnTheDancefloor.json @@ -0,0 +1,119 @@ +{ + "artist": "Michelle Delamor", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_banner_bkg.tga.ckd/4ccbd8a0f3f6c916229dd7ccfa727440.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_Coach_1.tga.ckd/0277bcde458b114d02b205e78dcfb5dc.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_Cover_Generic.tga.ckd/5d7ac27a015d49685c4bb0b176a8d52b.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Cover_1024.png/0f4894887ee3cf5c8958d2b898ffe08c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_Cover_Online.tga.ckd/08c57a49800f4b097b2372a6a2f7b4f0.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_Cover_AlbumBkg.tga.ckd/4786edbe4aa31e186707e5ef18779587.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_Cover_AlbumCoach.tga.ckd/b801603beeab37d815b2e82c84b89ad2.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Coach_1_Phone.png/108ed57e79182cdd52ae91a140c869f1.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Cover_Phone.jpg/2a1ea958c22c18b51cfec384420116d0.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_map_bkg.tga.ckd/5bf4dd45c31513fcf58296a442573f02.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_banner_bkg.tga.ckd/53ccb174140860c5a3c0894d80d2c7e8.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_Coach_1.tga.ckd/1d14e1b2c8a18a1230593778c8df294d.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_Cover_Generic.tga.ckd/715243fa9206ff78be25c2a6347781a2.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Cover_1024.png/0f4894887ee3cf5c8958d2b898ffe08c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_Cover_Online.tga.ckd/226af22f5c81660a2560161dba08e4e8.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_Cover_AlbumBkg.tga.ckd/1af553c4fe52365441b4f7b5ceadbf28.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_Cover_AlbumCoach.tga.ckd/f8ad8638bed6fd8324ad27722ef8912e.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Coach_1_Phone.png/108ed57e79182cdd52ae91a140c869f1.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Cover_Phone.jpg/2a1ea958c22c18b51cfec384420116d0.jpg", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_map_bkg.tga.ckd/46af8a5458b0619f8ef3faf96dc769d1.ckd" + }, + "wiiu": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/wiiu/FireOnTheDancefloor_banner_bkg.tga.ckd/00d00a6096fdc731b5b763e4864c3c48.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/wiiu/FireOnTheDancefloor_Coach_1.tga.ckd/2f77fe0aff8216e37f8733992749215c.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/wiiu/FireOnTheDancefloor_Cover_Generic.tga.ckd/6f733c966d987bcb075a9cc228973817.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Cover_1024.png/0f4894887ee3cf5c8958d2b898ffe08c.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/wiiu/FireOnTheDancefloor_Cover_Online.tga.ckd/521ecf8db67f7149123084ac2083b218.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/wiiu/FireOnTheDancefloor_Cover_AlbumBkg.tga.ckd/596cd0c35e08fe9eca9ba81c0754e0a2.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/wiiu/FireOnTheDancefloor_Cover_AlbumCoach.tga.ckd/6c2e8e1d68c380c69529e8c12e2334f1.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Coach_1_Phone.png/108ed57e79182cdd52ae91a140c869f1.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_Cover_Phone.jpg/2a1ea958c22c18b51cfec384420116d0.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28560,57072,85584,114144,142656,171216,199728,228240,256800,285312,313824,342336,370896,399408,427920,456432,484992,513504,542016,570528,599040,627552,655920,684624,712944,741696,770112,798528,827136,855744,884352,912576,941088,969600,998112,1026624,1055136,1083648,1112160,1140672,1169280,1197840,1226400,1254960,1283568,1312128,1340688,1369296,1397856,1426416],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-4,\"endBeat\":308,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":50,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/fireonthedancefloor/fireonthedancefloor_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Ivan Corraliza and Michelle Delamor. Published by Kobalt Music Publishing. / Michelle Delamor. Courtesy of Ubiloud / Ubisoft Music. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FD1913FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 185.338, + "mapName": "FireOnTheDancefloor", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2019, + "packages": { + "mapContent": "FireOnTheDancefloor_mapContent" + }, + "parentMapName": "FireOnTheDancefloor", + "skuIds": [ + "jd2019-nx-all", + "jd2019-ps4-scea", + "jd2019-ps4-scee", + "jd2019-wiiu-noa", + "jd2019-wiiu-noe", + "jd2019-xone-all" + ], + "songColors": { + "songColor_1A": "750029FF", + "songColor_1B": "270439FF", + "songColor_2A": "FF1A1AFF", + "songColor_2B": "05013FFF" + }, + "status": 4, + "sweatDifficulty": 1, + "tags": [ + "Main", + "subscribedSong", + "CnUnlimited2019" + ], + "title": "Fire On The Floor", + "urls": { + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_AudioPreview.ogg/7006208437314189e98fc87d3711a4c8.ogg", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_HIGH.vp8.webm/04d8316001468236ed7cc8397a66f563.webm", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_HIGH.vp9.webm/308f05ae2645272b15d628b17a50268f.webm", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_LOW.vp8.webm/041224e18188ffc1ee933c8cc01ee47b.webm", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_LOW.vp9.webm/b76c62c690a802e5297a597aeb56c007.webm", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_MID.vp8.webm/c046e8fa46058cf49b9e384acaad238b.webm", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_MID.vp9.webm/617184739be2f6d3cb6ad9353a51d87d.webm", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_ULTRA.vp8.webm/916ca594d619f5845be423d67971a6ae.webm", + "jmcs://jd-contents/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/FireOnTheDancefloor_MapPreviewNoSoundCrop_ULTRA.vp9.webm/b9bbf51e80d2d7fc73a1e0e9beb9f0b1.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "0c00d034ab4fcfd345a107c7a4b9a0cd", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/ps4/FireOnTheDancefloor_MAIN_SCENE_ORBIS.zip/0c00d034ab4fcfd345a107c7a4b9a0cd.zip", + "version": 5 + }, + "nx": { + "md5": "3f5a4d80878caed69ebfc3fe806ce34a", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/nx/FireOnTheDancefloor_MAIN_SCENE_NX.zip/3f5a4d80878caed69ebfc3fe806ce34a.zip", + "version": 5 + }, + "pc": { + "md5": "41fdc1be4d11caafcd3338c863cf39f9", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/pc/FireOnTheDancefloor_MAIN_SCENE_PC.zip/41fdc1be4d11caafcd3338c863cf39f9.zip", + "version": 4 + }, + "wiiu": { + "md5": "efd34d00ca373854de9db346f0e087f0", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/FireOnTheDancefloor/wiiu/FireOnTheDancefloor_MAIN_SCENE_WIIU.zip/efd34d00ca373854de9db346f0e087f0.zip", + "version": 5 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FiremenKids.json b/justdanceonline-main/maps/FiremenKids.json new file mode 100644 index 0000000000000000000000000000000000000000..7e940de6e83198842a90fddcec232134f7480a37 --- /dev/null +++ b/justdanceonline-main/maps/FiremenKids.json @@ -0,0 +1,96 @@ +{ + "artist": "The Step Brigade", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_banner_bkg.jpg/98944d8409e4fa307e687e53e3f6e755.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_1.png/3a1706eb1cbac23d8f752a08e7f67b66.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_2.png/86ba5f1264aca90f43b9c8a7eff5d240.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_Generic.jpg/af98038d03f2a71d9e80b03adb5e49f9.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_Online.jpg/f5f7a87eb85d6ea078dd7602717901a7.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_AlbumBkg.jpg/d825551aab4da2c81be720a2228d650e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_AlbumCoach.png/318d0a20ddc597317c723fc60291fcab.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_1_Phone.png/fdc128abb8ebbf6a2523009abaa7010e.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_2_Phone.png/c1353c22484eefbdfbf3dd2242e7b229.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_Phone.jpg/f5f7a87eb85d6ea078dd7602717901a7.jpg" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_banner_bkg.jpg/98944d8409e4fa307e687e53e3f6e755.jpg", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_1.png/3a1706eb1cbac23d8f752a08e7f67b66.png", + "coach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_2.png/86ba5f1264aca90f43b9c8a7eff5d240.png", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_Generic.jpg/af98038d03f2a71d9e80b03adb5e49f9.jpg", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_Online.jpg/f5f7a87eb85d6ea078dd7602717901a7.jpg", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_AlbumBkg.jpg/d825551aab4da2c81be720a2228d650e.jpg", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_AlbumCoach.png/318d0a20ddc597317c723fc60291fcab.png", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_1_Phone.png/fdc128abb8ebbf6a2523009abaa7010e.png", + "phoneCoach2ImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Coach_2_Phone.png/c1353c22484eefbdfbf3dd2242e7b229.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/FiremenKids/FiremenKids_Cover_Phone.jpg/f5f7a87eb85d6ea078dd7602717901a7.jpg" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,28800,57600,86400,115200,144000,172800,201600,230400,259200,288000,316800,345600,374400,403200,432000,460800,489600,518400,547200,576000,604800,633600,662400,691200,720000,748800,777600,806400,835200,864000,892800,921600,950400,979200,1008000,1036800,1065600,1094400,1123200,1152000,1180800,1209600,1238400,1267200,1296000,1324800,1353600,1382400,1411200],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-1,\"endBeat\":200,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":49,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/firemenkids/firemenkids_AudioPreview.ogg\"}", + "coachCount": 2, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Terry Devine-King. Published by Audio Network Canada Inc. Courtesy of Audio Network Canada Inc.", + "difficulty": 1, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "21D2DEFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 120.6, + "mapName": "FiremenKids", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "FiremenKids_mapContent" + }, + "parentMapName": "FiremenKids", + "skuIds": [], + "songColors": { + "songColor_1A": "28143BFF", + "songColor_1B": "EFE7EBFF", + "songColor_2A": "0FF1F5FF", + "songColor_2B": "F89422FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "KidsOnly", + "subscribedSong" + ], + "title": "Get On The Fire Truck", + "serverChangelist": 455481, + "skupackages": { + "orbis": { + "md5": "b7c0a42c493ef2af050241cbacaa4e41", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/ps4/FiremenKids_MAIN_SCENE_ORBIS.zip/b7c0a42c493ef2af050241cbacaa4e41.zip", + "version": 1 + }, + "nx": { + "md5": "c78aef8fdd9e70aabbd019853f8b2d0d", + "storageType": 0, + "url": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/nx/FiremenKids_MAIN_SCENE_NX.zip/c78aef8fdd9e70aabbd019853f8b2d0d.zip", + "version": 1 + }, + "pc": { + "md5": "c3f6e6f5b758d0ff1b8966d7f020f349", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FiremenKids/pc/c3f6e6f5b758d0ff1b8966d7f020f349.zip", + "version": 1 + } + }, + "mapType": "jdu", + "customTypeNameId": 12939, + "urls": { + "jmcs://jd-contents/FiremenKids/FiremenKids_AudioPreview.ogg": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_AudioPreview.ogg/7fd7d18b7dd88d2350dd183af6faf20f.ogg", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_HIGH.vp8.webm/12d942aba9bd6a8c002cdc75e6174aab.webm", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_HIGH.vp9.webm/c95df983208d6f5832787f92d20f5339.webm", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_LOW.vp8.webm/25bdf26834a63c5103233f97d91b7986.webm", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_LOW.vp9.webm/38bf028dd0edea3c4d4d5694a23bfe6c.webm", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_MID.vp8.webm/63737cba1b467bcca5b27e088104775f.webm", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_MID.vp9.webm/3a481dc2a1f535b75b3558503fb0fc9d.webm", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_ULTRA.vp8.webm/18ccb2c8d11badda208b1ed2e03cf013.webm", + "jmcs://jd-contents/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdcn-console.cdn.ubisoft.cn/public/map/FiremenKids/FiremenKids_MapPreviewNoSoundCrop_ULTRA.vp9.webm/0190d32ab1b7952029be810412a0fb61.webm" + } +} \ No newline at end of file diff --git a/justdanceonline-main/maps/Flash.json b/justdanceonline-main/maps/Flash.json new file mode 100644 index 0000000000000000000000000000000000000000..37c5518f60498fca2595193c05b436c8a7d1d02a --- /dev/null +++ b/justdanceonline-main/maps/Flash.json @@ -0,0 +1,114 @@ +{ + "artist": "Bilal Hassani, avec Sulivan Gwed, Paola Locatelli et Sundy Jules", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_banner_bkg.tga.ckd/16d0ed91e299b68d10163277b5072614.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_Coach_1.tga.ckd/f6f5bddfe8904f3d21b1bf3a53341ae8.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_Cover_Generic.tga.ckd/329e7c10e3167cd710ad14da4fcba392.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/Flash_Cover_1024.png/072f8e5b130b135de1c36cf4c541752f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_Cover_Online.tga.ckd/363f940f01b33d0e219591b38483705c.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_Cover_AlbumBkg.tga.ckd/8cb2bdc1c0660e230974cff8d9bebc24.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_Cover_AlbumCoach.tga.ckd/74a143259d777ea9e9921a48e1f7bb30.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/Flash_Coach_1_Phone.png/3a306e6bc29960409c3ac1afdcc15740.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/Flash_Cover_Phone.jpg/633f025ffc339e86820362e3e22391b7.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Flash/Flash_VideoPreview.webm/619faf0be2a0f2bc030a74b871a7c20d.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_map_bkg.tga.ckd/4e715580ed9dfcc4b64ee3e1f9b62416.ckd" + }, + "nx": { + "banner_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_banner_bkg.tga.ckd/df16ba4152a8ba4dfb2ab76ef4785170.ckd", + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_Coach_1.tga.ckd/0597da0892ebccb68fe5c79915de33c0.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_Cover_Generic.tga.ckd/20acff22ba3d4716536e279715270f15.ckd", + "cover_1024ImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/Flash_Cover_1024.png/072f8e5b130b135de1c36cf4c541752f.png", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_Cover_Online.tga.ckd/631dbe30e3791e5f9b2f028b0b42ed60.ckd", + "expandBkgImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_Cover_AlbumBkg.tga.ckd/d0d9583fa94a9835085ff81896d4416d.ckd", + "expandCoachImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_Cover_AlbumCoach.tga.ckd/64bdeffce34a6c58d74036868b689669.ckd", + "phoneCoach1ImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/Flash_Coach_1_Phone.png/3a306e6bc29960409c3ac1afdcc15740.png", + "phoneCoverImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/Flash_Cover_Phone.jpg/633f025ffc339e86820362e3e22391b7.jpg", + "videoPreviewVideoURL": "https://jd-s3.akamaized.net/public/map/Flash/Flash_VideoPreview.webm/619faf0be2a0f2bc030a74b871a7c20d.webm", + "map_bkgImageUrl": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_map_bkg.tga.ckd/c203a3b8caeb8420fc7d97d84c855d61.ckd" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23225,46451,69677,92903,116129,139354,162580,185806,209032,232258,255483,278709,301935,325161,348387,371613,394838,418064,441290,464516,487742,510967,534193,557419,580645,603871,627096,650322,673548,696774,720000,743225,766451,789677,812903,836129,859354,882580,905806,929032,952258,975483,998709,1021935,1045161,1068387,1091613,1114838,1138064,1161290,1184516,1207742,1230967,1254193,1277419,1300645,1323871,1347096,1370322,1393548,1416774],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-5,\"endBeat\":310,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":61,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/flash/flash_AudioPreview.ogg\"}", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. Written by Bilal Hassani and Matthieu Mendès. Adaptation by Sulivan Guedouar. Published by House of Hassani – The Dude and the Music admin by Peermusic France. Courtesy of House of Hassani. ", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "9AEC0FFF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 152.418, + "mapName": "Flash", + "mapPreviewMpd": { + "videoEncoding": { + "vp8": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "vp9": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_LOW.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_MID.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_HIGH.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_ULTRA.vp9.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n" + } + }, + "mode": 6, + "originalJDVersion": 2021, + "packages": { + "mapContent": "Flash_mapContent" + }, + "parentMapName": "Flash", + "skuIds": [], + "songColors": { + "songColor_1A": "4DA8B6FF", + "songColor_1B": "F8B651FF", + "songColor_2A": "EFBCDAFF", + "songColor_2B": "C93492FF" + }, + "status": 3, + "sweatDifficulty": 2, + "tags": [ + "Main", + "subscribedSong", + "ExcludedFromWDF", + "JustDance2021", + "Solo", + "Medium", + "Sweat Medium", + "Boys", + "Electro", + "Futuristic", + "Geek", + "Girls", + "Party", + "Pop", + "Robots" + ], + "title": "Flash (Just Dance Version) ", + "urls": { + "jmcs://jd-contents/Flash/Flash_AudioPreview.ogg": "https://jd-s3.akamaized.net/public/map/Flash/Flash_AudioPreview.ogg/f0040227613d746f66ae32d1defdb814.ogg", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_HIGH.vp8.webm/334df7a09887baa31b572c1a6890d5bb.webm", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_HIGH.vp9.webm/3b2cec969ffa57e67a6021a69b041a77.webm", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_LOW.vp8.webm/41d9cceef01839cf2994741212cf0bdb.webm", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_LOW.vp9.webm/8ac30391024fd1fb80295f590fe11887.webm", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_MID.vp8.webm/290d59e7472ac39d6032b0849cf32da0.webm", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_MID.vp9.webm/32ecd306f7a14cdbd2c37e8781d50568.webm", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_ULTRA.vp8.webm/ad28bd0c2c165218c9c2f681444601f1.webm", + "jmcs://jd-contents/Flash/Flash_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jd-s3.akamaized.net/public/map/Flash/Flash_MapPreviewNoSoundCrop_ULTRA.vp9.webm/a085b52818968df2f21e5cb0b37d662f.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "d02a017a79a003db0fa3a27e93807558", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/Flash/pc/d02a017a79a003db0fa3a27e93807558.zip", + "version": 5 + }, + "orbis": { + "md5": "6301b2c6faa90e1688abd2ce07959714", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Flash/ps4/Flash_MAIN_SCENE_ORBIS.zip/6301b2c6faa90e1688abd2ce07959714.zip", + "version": 46 + }, + "nx": { + "md5": "eff1afc2e1c0484a34fd2b34781514ea", + "storageType": 0, + "url": "https://jd-s3.akamaized.net/public/map/Flash/nx/Flash_MAIN_SCENE_NX.zip/eff1afc2e1c0484a34fd2b34781514ea.zip", + "version": 46 + } + }, + "mapType": "jdu" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FollowMe.json b/justdanceonline-main/maps/FollowMe.json new file mode 100644 index 0000000000000000000000000000000000000000..5fdfbf2e5b639a3f3d80fa9957362fd16f76f29e --- /dev/null +++ b/justdanceonline-main/maps/FollowMe.json @@ -0,0 +1,97 @@ +{ + "artist": "E-Girls", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/textures/FollowMe_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,20160,40272,60432,80544,100704,120816,140976,161136,181248,201408,221520,241680,261840,281952,302112,322224,342384,362496,382656,402816,422928,443088,463200,483360,503520,523632,543792,563904,584064,604176,624336,644496,664608,684768,704880,725040,745152,765312,785472,805584,825744,845856,866016,886176,906288,926448,946560,966720,986832,1006992,1027152,1047264,1067424,1087536,1107696,1127856,1147968,1168128,1188240,1208400,1228512,1248672,1268832,1288944,1309104,1329216,1349376,1369488,1389648,1409808,1429920,1450080,1470192,1490352],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":394,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":74,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/FollowMe/FollowMe_AudioPreview.ogg\"}\"", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 2, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF7700FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "FollowMe", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 4514, + "packages": { + "mapContent": "FollowMe_mapContent" + }, + "parentMapName": "FollowMe", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "a92c7bff", + "songColor_1B": "681440ff", + "songColor_2B": "65041fff", + "songColor_2A": "d17b99ff" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Follow Me", + "urls": { + "jmcs://jd-contents/FollowMe/FollowMe_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/FollowMe_AudioPreview.ogg", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm", + "jmcs://jd-contents/FollowMe/FollowMe_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/FollowMe_VideoPreview.vp8.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "b388515e545c3096acd8476f07627e8e", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/pc/b388515e545c3096acd8476f07627e8e.zip", + "version": 1 + }, + "nx": { + "md5": "b89bb6ae55e83fd3a6d3109c00a21ac9", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/nx/b89bb6ae55e83fd3a6d3109c00a21ac9.zip", + "version": 1 + }, + "orbis": { + "md5": "46b03b696d14f8ee46a45526c269af20", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowMe/ps4/46b03b696d14f8ee46a45526c269af20.zip", + "version": 1 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps/FollowTheLeader.json b/justdanceonline-main/maps/FollowTheLeader.json new file mode 100644 index 0000000000000000000000000000000000000000..685024bf1aa1ff4c13554f8c57d27af6997fa574 --- /dev/null +++ b/justdanceonline-main/maps/FollowTheLeader.json @@ -0,0 +1,91 @@ +{ + "artist": "Wisin & Yandel Ft. Jennifer Lopez", + "assets": { + "default": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_Generic.jpg", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_Generic.jpg", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_Generic.jpg", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_map_bkg.png" + }, + "nx": { + "banner_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_banner_bkg.png", + "coach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Coach_1.png", + "coverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_Generic.png", + "cover_1024ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_1024.png", + "cover_smallImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_Generic.png", + "expandBkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_AlbumBkg.png", + "expandCoachImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_AlbumCoach.png", + "phoneCoach1ImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Coach_1.png", + "phoneCoverImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_Cover_Generic.png", + "videoPreviewVideoURL": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_VideoPreview.webm", + "map_bkgImageUrl": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/textures/FollowTheLeader_map_bkg.png" + } + }, + "audioPreviewData": "{\"__class\":\"MusicTrackData\",\"structure\":{\"__class\":\"MusicTrackStructure\",\"markers\":[0,23424,46848,70224,93648,117072,140496,163920,187296,210720,234144,257568,280944,304368,327792,351216,374640,398016,421440,444864,468288,491712,515088,538512,561936,585360,608784,632160,655584,679008,702433,725857,749233,772657,796081,819505,842881,866305,889729,913153,936577,959953,983377,1006801,1030225,1053649,1077025,1100449,1123873,1147297,1170721,1194097,1217521,1240945,1264369,1287745,1311169,1334593,1358017,1381442,1404818,1428242,1451666,1475090],\"signatures\":[{\"__class\":\"MusicSignature\",\"marker\":0,\"beats\":4}],\"startBeat\":-8,\"endBeat\":394,\"fadeStartBeat\":0,\"useFadeStartBeat\":false,\"fadeEndBeat\":0,\"useFadeEndBeat\":false,\"videoStartTime\":0,\"previewEntry\":0,\"previewLoopStart\":0,\"previewLoopEnd\":63,\"volume\":0,\"fadeInDuration\":0,\"fadeInType\":0,\"fadeOutDuration\":0,\"fadeOutType\":0},\"path\":\"\",\"url\":\"jmcs://jd-contents/FollowTheLeader/FollowTheLeader_AudioPreview.ogg\"}\"", + "coachCount": 1, + "credits": "Just Dance Best is an online mod made by Just Dance Alliance. We are not affiliated with Ubisoft nor own any rights over their copyrighted content and trademark. All rights of the producer and other rightholders to the recorded work reserved. Unless otherwise authorized, the duplication, rental, loan, exchange or use of this video game for public performance, broadcasting and online distribution to the public are prohibited.", + "difficulty": 3, + "doubleScoringType": -1, + "jdmAttributes": [], + "lyricsColor": "FF5900FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 100, + "mapName": "FollowTheLeader", + "mapPreviewMpd": "\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_LOW.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_MID.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_HIGH.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tjmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_ULTRA.vp8.webm\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n", + "mode": 6, + "originalJDVersion": 2014, + "packages": { + "mapContent": "FollowTheLeader_mapContent" + }, + "parentMapName": "FollowTheLeader", + "skuIds": [ + "jd2017-pc-ww" + ], + "songColors": { + "songColor_1A": "DD0B00FF", + "songColor_1B": "800103FF", + "songColor_2A": "F6590BFF", + "songColor_2B": "5D1806FF" + }, + "status": 5, + "sweatDifficulty": 1, + "tags": [ + "Main" + ], + "title": "Follow The Leader", + "urls": { + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_AudioPreview.ogg": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/FollowTheLeader_AudioPreview.ogg", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_HIGH.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_HIGH.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_LOW.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_LOW.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_MID.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_MID.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_ULTRA.vp8.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm", + "jmcs://jd-contents/FollowTheLeader/FollowTheLeader_MapPreviewNoSoundCrop_ULTRA.vp9.webm": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/FollowTheLeader_VideoPreview.webm" + }, + "serverChangelist": 455481, + "skupackages": { + "pc": { + "md5": "bad68ed62cd98d87cd025efdae08c368", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/pc/bad68ed62cd98d87cd025efdae08c368.zip", + "version": 3 + }, + "nx": { + "md5": "535ec5430db8b7d6e7fb9847d8805e1d", + "storageType": 0, + "url": "https://jdbest-cdn.s3.amazonaws.com/public/map/FollowTheLeader/nx/535ec5430db8b7d6e7fb9847d8805e1d.zip", + "version": 3 + } + }, + "mapType": "custom" +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMApplauseConcert.json b/justdanceonline-main/maps_blocks/JDMApplauseConcert.json new file mode 100644 index 0000000000000000000000000000000000000000..0e26fa5f529bad06a58c66c4bea5b6b78128168b --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMApplauseConcert.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMApplauseConcert Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMApplauseConcert/pc/JDMApplauseConcert_Cover_Generic.tga.ckd/f5b19d46f548e39acf7618d4e36729df.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMApplauseConcert/pc/JDMApplauseConcert_Cover_Online.tga.ckd/cf70739917a25072c19b2d2cda9aea57.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.5, + "mapName": "JDMApplauseConcert", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMApplauseConcert_mapContent" + }, + "parentMapName": "JDMApplauseConcert", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMApplauseConcert", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMBallerina.json b/justdanceonline-main/maps_blocks/JDMBallerina.json new file mode 100644 index 0000000000000000000000000000000000000000..207132b6ec2c45ebfc7e8ebe3e233b11991080f3 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMBallerina.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMBallerina Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBallerina/pc/JDMBallerina_Cover_Generic.tga.ckd/7ef53d9a23d87f618d9e5b41e94006ba.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBallerina/pc/JDMBallerina_Cover_Online.tga.ckd/598d68b9ee0248421c05f8f6fe7a7a28.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 31.729999999999997, + "mapName": "JDMBallerina", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMBallerina_mapContent" + }, + "parentMapName": "JDMBallerina", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMBallerina", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMBallerinaALT01.json b/justdanceonline-main/maps_blocks/JDMBallerinaALT01.json new file mode 100644 index 0000000000000000000000000000000000000000..aa39ad74fca8d5395a2086213cb99a33aac7c76f --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMBallerinaALT01.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMBallerina Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBallerinaALT01/pc/JDMBallerinaALT01_Cover_Generic.tga.ckd/63c1c9aa20f646522400512424fec7b3.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBallerinaALT01/pc/JDMBallerinaALT01_Cover_Online.tga.ckd/b1397a8d19f00b1b5d1212f6f20d3641.ckd" + }, + "coachCount": 1, + "credits": "Empty Credits", + "customTypeNameId": 8610, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 31.729999999999997, + "mapName": "JDMBallerinaALT01", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMBallerinaALT01_mapContent" + }, + "parentMapName": "JDMBallerina", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMBallerina - ALTERNATE01", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMBallerinaBS.json b/justdanceonline-main/maps_blocks/JDMBallerinaBS.json new file mode 100644 index 0000000000000000000000000000000000000000..5b1d5a907c417d284aa35876227147f2bf7b11e1 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMBallerinaBS.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMBallerina Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBallerinaBS/pc/JDMBallerinaBS_Cover_Generic.tga.ckd/f939c7ef5251a63f54ca25f1cfb982f9.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBallerinaBS/pc/JDMBallerinaBS_Cover_Online.tga.ckd/ae76a9f73798333d13c5e0a3f0a42a8f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_BonusStage" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.677999999999997, + "mapName": "JDMBallerinaBS", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMBallerinaBS_mapContent" + }, + "parentMapName": "JDMBallerinaBS", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "JDMBS" + ], + "title": "JDMBallerina - BONUS STAGE", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMBollywood.json b/justdanceonline-main/maps_blocks/JDMBollywood.json new file mode 100644 index 0000000000000000000000000000000000000000..32258a1e3f0ff221172099f5a9f50b3ef4ee7a27 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMBollywood.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMBollywood Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBollywood/pc/JDMBollywood_Cover_Generic.tga.ckd/ac2cb73000cf2abb261095105c6820c6.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBollywood/pc/JDMBollywood_Cover_Online.tga.ckd/a0c44288a7ff1296e92dccf0dd4292e4.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.4, + "mapName": "JDMBollywood", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMBollywood_mapContent" + }, + "parentMapName": "JDMBollywood", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMBollywood", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMBollywoodALT01.json b/justdanceonline-main/maps_blocks/JDMBollywoodALT01.json new file mode 100644 index 0000000000000000000000000000000000000000..5f5c31091edcecf023b6bcfa5ec3f81e852b52cc --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMBollywoodALT01.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMBollywood Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBollywoodALT01/pc/JDMBollywoodALT01_Cover_Generic.tga.ckd/ca72608b971055c6613b4bb1430971d4.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBollywoodALT01/pc/JDMBollywoodALT01_Cover_Online.tga.ckd/b4fd4364798d9060ffbbc0dbb1b3bd1d.ckd" + }, + "coachCount": 1, + "credits": "Empty Credits", + "customTypeNameId": 8610, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.4, + "mapName": "JDMBollywoodALT01", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMBollywoodALT01_mapContent" + }, + "parentMapName": "JDMBollywood", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMBollywood - ALTERNATE01", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMBruceLee.json b/justdanceonline-main/maps_blocks/JDMBruceLee.json new file mode 100644 index 0000000000000000000000000000000000000000..dec63874faafdcb7584021b4333165af6de1556b --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMBruceLee.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMBruceLee Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBruceLee/pc/JDMBruceLee_Cover_Generic.tga.ckd/44740939e41956b67501bd3980653800.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMBruceLee/pc/JDMBruceLee_Cover_Online.tga.ckd/fc49985bc376562a53c287273e09c3af.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.718, + "mapName": "JDMBruceLee", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMBruceLee_mapContent" + }, + "parentMapName": "JDMBruceLee", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMBruceLee", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMCharleston.json b/justdanceonline-main/maps_blocks/JDMCharleston.json new file mode 100644 index 0000000000000000000000000000000000000000..32417fc0be471b2a25bd320b85c5dfdf1f151d37 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMCharleston.json @@ -0,0 +1,31 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMCharleston Artist", + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.297, + "mapName": "JDMCharleston", + "mode": 6, + "originalJDVersion": 2017, + "parentMapName": "JDMCharleston", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMCharleston", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMCharlestonALT01.json b/justdanceonline-main/maps_blocks/JDMCharlestonALT01.json new file mode 100644 index 0000000000000000000000000000000000000000..c1fb000a928cb14abd51a7de5d570e1a8acb45b4 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMCharlestonALT01.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMCharleston Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMCharlestonALT01/pc/JDMCharlestonALT01_Cover_Generic.tga.ckd/7f52fde49e2f511f5534e5c2741bb66d.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMCharlestonALT01/pc/JDMCharlestonALT01_Cover_Online.tga.ckd/9bbe041ab1e851fe3a7aa2eab54282d1.ckd" + }, + "coachCount": 1, + "credits": "Empty Credits", + "customTypeNameId": 8610, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.296999999999997, + "mapName": "JDMCharlestonALT01", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMCharlestonALT01_mapContent" + }, + "parentMapName": "JDMCharleston", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMCharleston - ALTERNATE01", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMCharlestonBS.json b/justdanceonline-main/maps_blocks/JDMCharlestonBS.json new file mode 100644 index 0000000000000000000000000000000000000000..a74056c39051a52e5507d7de7e2d0aeda03229bd --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMCharlestonBS.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMCharleston Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMCharlestonBS/pc/JDMCharlestonBS_Cover_Generic.tga.ckd/f939c7ef5251a63f54ca25f1cfb982f9.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMCharlestonBS/pc/JDMCharlestonBS_Cover_Online.tga.ckd/ae76a9f73798333d13c5e0a3f0a42a8f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_BonusStage" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.779999999999998, + "mapName": "JDMCharlestonBS", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMCharlestonBS_mapContent" + }, + "parentMapName": "JDMCharlestonBS", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "JDMBS" + ], + "title": "JDMCharleston - BONUS STAGE", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMCheerleader.json b/justdanceonline-main/maps_blocks/JDMCheerleader.json new file mode 100644 index 0000000000000000000000000000000000000000..67c3dac4f07c06af56544c4f7a87be194bb5ad54 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMCheerleader.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMCheerleader Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMCheerleader/pc/JDMCheerleader_Cover_Generic.tga.ckd/0267bfd7c8fdf45b3c040b34fe3c6dfd.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMCheerleader/pc/JDMCheerleader_Cover_Online.tga.ckd/c4f6de89d85e7b33d55768d3951804aa.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 31.049, + "mapName": "JDMCheerleader", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMCheerleader_mapContent" + }, + "parentMapName": "JDMCheerleader", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMCheerleader", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMEgyptian.json b/justdanceonline-main/maps_blocks/JDMEgyptian.json new file mode 100644 index 0000000000000000000000000000000000000000..5be252c959e071aa3037ade3fd18024ba17e76b1 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMEgyptian.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMEgyptian Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMEgyptian/pc/JDMEgyptian_Cover_Generic.tga.ckd/5f2f0ebe8ba213ce2c15dd825bc42a5a.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMEgyptian/pc/JDMEgyptian_Cover_Online.tga.ckd/c0dca9f54b366615d102b6322d057a85.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 24.49, + "mapName": "JDMEgyptian", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMEgyptian_mapContent" + }, + "parentMapName": "JDMEgyptian", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMEgyptian", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMEgyptianBS.json b/justdanceonline-main/maps_blocks/JDMEgyptianBS.json new file mode 100644 index 0000000000000000000000000000000000000000..5576e12c113647fd5199d35358ba234d7328f5d2 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMEgyptianBS.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMEgyptian Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMEgyptianBS/pc/JDMEgyptianBS_Cover_Generic.tga.ckd/f939c7ef5251a63f54ca25f1cfb982f9.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMEgyptianBS/pc/JDMEgyptianBS_Cover_Online.tga.ckd/ae76a9f73798333d13c5e0a3f0a42a8f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_BonusStage" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.964, + "mapName": "JDMEgyptianBS", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMEgyptianBS_mapContent" + }, + "parentMapName": "JDMEgyptianBS", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "JDMBS" + ], + "title": "JDMEgyptian - BONUS STAGE", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMFlamenco.json b/justdanceonline-main/maps_blocks/JDMFlamenco.json new file mode 100644 index 0000000000000000000000000000000000000000..9d42294a0aca66a818837fa462b27650ad2e8fc3 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMFlamenco.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMFlamenco Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMFlamenco/pc/JDMFlamenco_Cover_Generic.tga.ckd/ffdae6ae8927895ccb3eecfe25d4cc88.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMFlamenco/pc/JDMFlamenco_Cover_Online.tga.ckd/37bc56d38ed652bff81c698d1c5adbc2.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.464, + "mapName": "JDMFlamenco", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMFlamenco_mapContent" + }, + "parentMapName": "JDMFlamenco", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMFlamenco", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMFlamencoALT01.json b/justdanceonline-main/maps_blocks/JDMFlamencoALT01.json new file mode 100644 index 0000000000000000000000000000000000000000..c8d07a1c61e209d3da778dadeb86ae613301cb19 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMFlamencoALT01.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMFlamenco Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMFlamencoALT01/pc/JDMFlamencoALT01_Cover_Generic.tga.ckd/6fd5e404b010a2139d2d11eb28e7867e.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMFlamencoALT01/pc/JDMFlamencoALT01_Cover_Online.tga.ckd/7f6bc6c0a5a995eb68c7dbee6e308927.ckd" + }, + "coachCount": 1, + "credits": "Empty Credits", + "customTypeNameId": 8610, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30, + "mapName": "JDMFlamencoALT01", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMFlamencoALT01_mapContent" + }, + "parentMapName": "JDMFlamenco", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMFlamenco - ALTERNATE01", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMFrenchCancan.json b/justdanceonline-main/maps_blocks/JDMFrenchCancan.json new file mode 100644 index 0000000000000000000000000000000000000000..7573bd60a0fe9c388bae665efd9b5d80f9c761fe --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMFrenchCancan.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMFrenchCancan Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMFrenchCancan/pc/JDMFrenchCancan_Cover_Generic.tga.ckd/85416c9cd7c665d9e556a8347f6e2d93.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMFrenchCancan/pc/JDMFrenchCancan_Cover_Online.tga.ckd/d34ee4ed6e47e9f3fbe0993f59ad1a55.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.409, + "mapName": "JDMFrenchCancan", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMFrenchCancan_mapContent" + }, + "parentMapName": "JDMFrenchCancan", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMFrenchCancan", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMGymnast.json b/justdanceonline-main/maps_blocks/JDMGymnast.json new file mode 100644 index 0000000000000000000000000000000000000000..35b572696fd52f30d65657e3f7a1c6114bb688a3 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMGymnast.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMGymnast Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMGymnast/pc/JDMGymnast_Cover_Generic.tga.ckd/928c3835f5ff768fa610d21816feca86.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMGymnast/pc/JDMGymnast_Cover_Online.tga.ckd/886bd970f7b0d4657b050f73d25e5975.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 25.366, + "mapName": "JDMGymnast", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMGymnast_mapContent" + }, + "parentMapName": "JDMGymnast", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMGymnast", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMGymnastALT01.json b/justdanceonline-main/maps_blocks/JDMGymnastALT01.json new file mode 100644 index 0000000000000000000000000000000000000000..c03ce010fe39ad6a4f29db36da705eb1d78ace3a --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMGymnastALT01.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMGymnast Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMGymnastALT01/pc/JDMGymnastALT01_Cover_Generic.tga.ckd/010ff981c918b6f850bcc8cfd6cbbe34.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMGymnastALT01/pc/JDMGymnastALT01_Cover_Online.tga.ckd/ce24cd7f69fe320558f62f950411b295.ckd" + }, + "coachCount": 1, + "credits": "Empty Credits", + "customTypeNameId": 8610, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 25.366, + "mapName": "JDMGymnastALT01", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMGymnastALT01_mapContent" + }, + "parentMapName": "JDMGymnast", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMGymnast - ALTERNATE01", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMHaka.json b/justdanceonline-main/maps_blocks/JDMHaka.json new file mode 100644 index 0000000000000000000000000000000000000000..7569336b86df54afd16bdb17a4943ac0eb1d16df --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMHaka.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMHaka Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMHaka/pc/JDMHaka_Cover_Generic.tga.ckd/e1550a0f135d37d553a37e9be4e7bf82.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMHaka/pc/JDMHaka_Cover_Online.tga.ckd/2ca065e3f108e13df88bcd1456bd7bf0.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 20.308, + "mapName": "JDMHaka", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMHaka_mapContent" + }, + "parentMapName": "JDMHaka", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMHaka", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMIsidora.json b/justdanceonline-main/maps_blocks/JDMIsidora.json new file mode 100644 index 0000000000000000000000000000000000000000..5b6b6d7a2bc113063c3fb952faac954968b22328 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMIsidora.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMIsidora Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMIsidora/pc/JDMIsidora_Cover_Generic.tga.ckd/0dc2cafcf54def22b9a0155efe8f674e.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMIsidora/pc/JDMIsidora_Cover_Online.tga.ckd/978924e718571ce887bbd301a71953f5.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.026999999999997, + "mapName": "JDMIsidora", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMIsidora_mapContent" + }, + "parentMapName": "JDMIsidora", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMIsidora", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMKungFu.json b/justdanceonline-main/maps_blocks/JDMKungFu.json new file mode 100644 index 0000000000000000000000000000000000000000..f29e307cf134c68d04c2fa7b35fe72f7a9a63bec --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMKungFu.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMKungFu Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMKungFu/pc/JDMKungFu_Cover_Generic.tga.ckd/fd5763a67d211fb2591bdf02cb4baf54.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMKungFu/pc/JDMKungFu_Cover_Online.tga.ckd/848a3c9a82e30e538ba97aec6b474e83.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 34.091, + "mapName": "JDMKungFu", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMKungFu_mapContent" + }, + "parentMapName": "JDMKungFu", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMKungFu", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMKungFuALT01.json b/justdanceonline-main/maps_blocks/JDMKungFuALT01.json new file mode 100644 index 0000000000000000000000000000000000000000..15d947f21aa7d0f82d645802b3ed1103ab1699a2 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMKungFuALT01.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMKungFu Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMKungFuALT01/pc/JDMKungFuALT01_Cover_Generic.tga.ckd/37d2ee91a0bc1db42ff64deaf06eb623.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMKungFuALT01/pc/JDMKungFuALT01_Cover_Online.tga.ckd/e22ed948a40bd68eac4d48f8d9400239.ckd" + }, + "coachCount": 1, + "credits": "Empty Credits", + "customTypeNameId": 8610, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 34.091, + "mapName": "JDMKungFuALT01", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMKungFuALT01_mapContent" + }, + "parentMapName": "JDMKungFu", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMKungFu - ALTERNATE01", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMLimbo.json b/justdanceonline-main/maps_blocks/JDMLimbo.json new file mode 100644 index 0000000000000000000000000000000000000000..e3327dd600caebb4defb431741499748d9905a92 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMLimbo.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMLimbo Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMLimbo/pc/JDMLimbo_Cover_Generic.tga.ckd/ff8ffe96ae317f70b9f5215da2b5239b.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMLimbo/pc/JDMLimbo_Cover_Online.tga.ckd/a99da58746a98986ca9dc81348112026.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.695999999999998, + "mapName": "JDMLimbo", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMLimbo_mapContent" + }, + "parentMapName": "JDMLimbo", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMLimbo", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMLimboBS.json b/justdanceonline-main/maps_blocks/JDMLimboBS.json new file mode 100644 index 0000000000000000000000000000000000000000..0f0d55ec53f1b6b4bca124918b7e62f680d63b44 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMLimboBS.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMLimbo Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMLimboBS/pc/JDMLimboBS_Cover_Generic.tga.ckd/f939c7ef5251a63f54ca25f1cfb982f9.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMLimboBS/pc/JDMLimboBS_Cover_Online.tga.ckd/ae76a9f73798333d13c5e0a3f0a42a8f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDMBS" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 34.756, + "mapName": "JDMLimboBS", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMLimboBS_mapContent" + }, + "parentMapName": "JDMLimboBS", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "JDMBS" + ], + "title": "JDMLimbo - BONUS STAGE", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMMaestro.json b/justdanceonline-main/maps_blocks/JDMMaestro.json new file mode 100644 index 0000000000000000000000000000000000000000..9cda5a009e2f7e3217dca4f578d5c3e6f7335ed8 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMMaestro.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMMaestro Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMMaestro/pc/JDMMaestro_Cover_Generic.tga.ckd/ceb74c0b6235786c6c10c4bc603ea2d0.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMMaestro/pc/JDMMaestro_Cover_Online.tga.ckd/4c56013e3f48744560f71f5ece6f63a2.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 31.616999999999997, + "mapName": "JDMMaestro", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMMaestro_mapContent" + }, + "parentMapName": "JDMMaestro", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMMaestro", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMMagicMike.json b/justdanceonline-main/maps_blocks/JDMMagicMike.json new file mode 100644 index 0000000000000000000000000000000000000000..862ac51ecc315e449010b8c578694c4239d616e7 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMMagicMike.json @@ -0,0 +1,31 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMMagicMike Artist", + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.968, + "mapName": "JDMMagicMike", + "mode": 6, + "originalJDVersion": 2017, + "parentMapName": "JDMMagicMike", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMMagicMike", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMMetalGuitar.json b/justdanceonline-main/maps_blocks/JDMMetalGuitar.json new file mode 100644 index 0000000000000000000000000000000000000000..ade34837103d1e8e5149ab22afb591cc9490164a --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMMetalGuitar.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMMetalGuitar Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMMetalGuitar/pc/JDMMetalGuitar_Cover_Generic.tga.ckd/d5a110de80f9a7c95909426bee62ba4d.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMMetalGuitar/pc/JDMMetalGuitar_Cover_Online.tga.ckd/312ad43de78a59d2ef8e326728e86e90.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 21.686999999999998, + "mapName": "JDMMetalGuitar", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMMetalGuitar_mapContent" + }, + "parentMapName": "JDMMetalGuitar", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMMetalGuitar", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMOrientalDance.json b/justdanceonline-main/maps_blocks/JDMOrientalDance.json new file mode 100644 index 0000000000000000000000000000000000000000..da7fb8e5b49f988ed2f2f00e2988953aeaec2ac7 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMOrientalDance.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMOrientalDance Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMOrientalDance/pc/JDMOrientalDance_Cover_Generic.tga.ckd/83d05ee685a035233d1dba79e4cba0f6.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMOrientalDance/pc/JDMOrientalDance_Cover_Online.tga.ckd/40930347856f86935af28df876be0436.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.645, + "mapName": "JDMOrientalDance", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMOrientalDance_mapContent" + }, + "parentMapName": "JDMOrientalDance", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMOrientalDance", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMRapper.json b/justdanceonline-main/maps_blocks/JDMRapper.json new file mode 100644 index 0000000000000000000000000000000000000000..06d9f88475758e8b3937cd11baeecd9665ed3741 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMRapper.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMRapper Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRapper/pc/JDMRapper_Cover_Generic.tga.ckd/b46663e3ba14350ed5dd55c1ce752370.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRapper/pc/JDMRapper_Cover_Online.tga.ckd/5ea71f65f354718da1f33fe625742d31.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.691, + "mapName": "JDMRapper", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMRapper_mapContent" + }, + "parentMapName": "JDMRapper", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMRapper", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMRaveParty.json b/justdanceonline-main/maps_blocks/JDMRaveParty.json new file mode 100644 index 0000000000000000000000000000000000000000..ccf2781e3f8d7ff16b56eacc14f051db3f095a3f --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMRaveParty.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMRaveParty Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRaveParty/pc/JDMRaveParty_Cover_Generic.tga.ckd/c74d9c93b0e5539a00ce53ad4f1672b3.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRaveParty/pc/JDMRaveParty_Cover_Online.tga.ckd/6e57acfbfb9ec5d8f7f958e45139efab.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.4, + "mapName": "JDMRaveParty", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMRaveParty_mapContent" + }, + "parentMapName": "JDMRaveParty", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMRaveParty", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMRobot.json b/justdanceonline-main/maps_blocks/JDMRobot.json new file mode 100644 index 0000000000000000000000000000000000000000..782e6411c5f55ea49f540f98a8b2546c2ece61a1 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMRobot.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMRobot Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRobot/pc/JDMRobot_Cover_Generic.tga.ckd/f5e4710b321978f2470ed84f96a58b6a.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRobot/pc/JDMRobot_Cover_Online.tga.ckd/cf010d8d5fbf7861377f98a43e3cd83b.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30, + "mapName": "JDMRobot", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMRobot_mapContent" + }, + "parentMapName": "JDMRobot", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMRobot", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMRunningMan.json b/justdanceonline-main/maps_blocks/JDMRunningMan.json new file mode 100644 index 0000000000000000000000000000000000000000..bbb33b802e0ff7a4d3002a7f63c4f826db9770c5 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMRunningMan.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMRunningMan Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRunningMan/pc/JDMRunningMan_Cover_Generic.tga.ckd/1c69acdb9852095e8d7ab9868ac1a807.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRunningMan/pc/JDMRunningMan_Cover_Online.tga.ckd/4b1bb648af2f8378e990675416da31e2.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.474999999999998, + "mapName": "JDMRunningMan", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMRunningMan_mapContent" + }, + "parentMapName": "JDMRunningMan", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMRunningMan", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMRunningManBS.json b/justdanceonline-main/maps_blocks/JDMRunningManBS.json new file mode 100644 index 0000000000000000000000000000000000000000..72f43422447e4cc90facc384aec551f881780485 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMRunningManBS.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMRunningMan Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRunningManBS/pc/JDMRunningManBS_Cover_Generic.tga.ckd/f939c7ef5251a63f54ca25f1cfb982f9.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRunningManBS/pc/JDMRunningManBS_Cover_Online.tga.ckd/ae76a9f73798333d13c5e0a3f0a42a8f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_BonusStage" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.743, + "mapName": "JDMRunningManBS", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMRunningManBS_mapContent" + }, + "parentMapName": "JDMRunningManBS", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "JDMBS" + ], + "title": "JDMRunningMan - BONUS STAGE", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMRussian.json b/justdanceonline-main/maps_blocks/JDMRussian.json new file mode 100644 index 0000000000000000000000000000000000000000..a03b89438bbddf97b25294ce416caf22133b8141 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMRussian.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMRussian Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRussian/pc/JDMRussian_Cover_Generic.tga.ckd/6b42b1e12a1c70292802dea39f38f271.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMRussian/pc/JDMRussian_Cover_Online.tga.ckd/2755e85d77f3b2ad1030d6ee05baf269.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.596999999999998, + "mapName": "JDMRussian", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMRussian_mapContent" + }, + "parentMapName": "JDMRussian", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMRussian", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMSaloon.json b/justdanceonline-main/maps_blocks/JDMSaloon.json new file mode 100644 index 0000000000000000000000000000000000000000..bd5fb082061fc01e69cdef440f0d8f417af6482c --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMSaloon.json @@ -0,0 +1,39 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMSaloon Artist", + "assets": { + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMSaloon/pc/JDMSaloon_Coach_1.tga.ckd/b9394a9a7b10216ab8de50ec9acfb123.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMSaloon/pc/JDMSaloon_Cover_Generic.tga.ckd/23cc671381b23442153170b79e91139a.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMSaloon/pc/JDMSaloon_Cover_Online.tga.ckd/7cfd49c22bb7d2398daf477bc9868b8f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.909, + "mapName": "JDMSaloon", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMSaloon_mapContent" + }, + "parentMapName": "JDMSaloon", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMSaloon", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMSirtaki.json b/justdanceonline-main/maps_blocks/JDMSirtaki.json new file mode 100644 index 0000000000000000000000000000000000000000..40efdd22d44a1e23e49ef9ef32c2cd94361d5663 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMSirtaki.json @@ -0,0 +1,39 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMSirtaki Artist", + "assets": { + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMSirtaki/pc/JDMSirtaki_Coach_1.tga.ckd/b9394a9a7b10216ab8de50ec9acfb123.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMSirtaki/pc/JDMSirtaki_Cover_Generic.tga.ckd/13e1b00254df9838f3ccd6b715fe0ae9.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMSirtaki/pc/JDMSirtaki_Cover_Online.tga.ckd/0a4cdb9b9b800a9427eecc3c80d12349.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.215999999999998, + "mapName": "JDMSirtaki", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMSirtaki_mapContent" + }, + "parentMapName": "JDMSirtaki", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMSirtaki", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMStripteaseBurlesque.json b/justdanceonline-main/maps_blocks/JDMStripteaseBurlesque.json new file mode 100644 index 0000000000000000000000000000000000000000..436f5bddda6fcce72ac7edea9c2a64f84b9c6b25 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMStripteaseBurlesque.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMStripteaseBurlesque Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMStripteaseBurlesque/pc/JDMStripteaseBurlesque_Cover_Generic.tga.ckd/fd351fb19cc09d760ce940d417b21ccb.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMStripteaseBurlesque/pc/JDMStripteaseBurlesque_Cover_Online.tga.ckd/8898f327a85c3422214ee21cc83161b2.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 27.884999999999998, + "mapName": "JDMStripteaseBurlesque", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMStripteaseBurlesque_mapContent" + }, + "parentMapName": "JDMStripteaseBurlesque", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMStripteaseBurlesque", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMTectonic.json b/justdanceonline-main/maps_blocks/JDMTectonic.json new file mode 100644 index 0000000000000000000000000000000000000000..445dec1afd1550f3eb3bbda5b48a450443d3eb56 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMTectonic.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMTectonic Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMTectonic/pc/JDMTectonic_Cover_Generic.tga.ckd/88af20288f83e7bc9b67c84d4a338c98.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMTectonic/pc/JDMTectonic_Cover_Online.tga.ckd/ddaf07b91c2fbf38b8a2fc47aee7251f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.346, + "mapName": "JDMTectonic", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMTectonic_mapContent" + }, + "parentMapName": "JDMTectonic", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMTectonic", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMTwerk.json b/justdanceonline-main/maps_blocks/JDMTwerk.json new file mode 100644 index 0000000000000000000000000000000000000000..50b958fa5f64bba7d239babd9ca647769a0e130b --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMTwerk.json @@ -0,0 +1,39 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMTwerk Artist", + "assets": { + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMTwerk/pc/JDMTwerk_Coach_1.tga.ckd/b9394a9a7b10216ab8de50ec9acfb123.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMTwerk/pc/JDMTwerk_Cover_Generic.tga.ckd/b2b8ab4d1d3c67b8052f57cd0276b838.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMTwerk/pc/JDMTwerk_Cover_Online.tga.ckd/31b274b02dd6c8546733002c2d86142e.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.544999999999998, + "mapName": "JDMTwerk", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMTwerk_mapContent" + }, + "parentMapName": "JDMTwerk", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMTwerk", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMTwerkBS.json b/justdanceonline-main/maps_blocks/JDMTwerkBS.json new file mode 100644 index 0000000000000000000000000000000000000000..f088c7d9183738d154803c2e7bcad1b9556fad23 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMTwerkBS.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMTwerk Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMTwerkBS/pc/JDMTwerkBS_Cover_Generic.tga.ckd/f939c7ef5251a63f54ca25f1cfb982f9.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMTwerkBS/pc/JDMTwerkBS_Cover_Online.tga.ckd/ae76a9f73798333d13c5e0a3f0a42a8f.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_BonusStage" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.285, + "mapName": "JDMTwerkBS", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMTwerkBS_mapContent" + }, + "parentMapName": "JDMTwerkBS", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "JDMBS" + ], + "title": "JDMTwerk - BONUS STAGE", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUAirHostess.json b/justdanceonline-main/maps_blocks/JDMUAirHostess.json new file mode 100644 index 0000000000000000000000000000000000000000..b459f0f0edb01ab873cd3015ba0663f2e5a6c184 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUAirHostess.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUAirHostess/pc/JDMUAirHostess_Cover_Generic.tga.ckd/f61ea694e72a2e430acdf9fa6f1cffc8.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUAirHostess/pc/JDMUAirHostess_Cover_Online.tga.ckd/1b1cec19286f1062a8df95f513131fe4.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.141, + "mapName": "JDMUAirHostess", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUAirHostess_mapContent" + }, + "parentMapName": "JDMUAirHostess", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUBaroque.json b/justdanceonline-main/maps_blocks/JDMUBaroque.json new file mode 100644 index 0000000000000000000000000000000000000000..421430a6ace3edc94880fa6883f4c19acbd23ff0 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUBaroque.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUBaroque/pc/JDMUBaroque_Cover_Generic.tga.ckd/5daf8fc8edf609cffd20ca95eefadf33.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUBaroque/pc/JDMUBaroque_Cover_Online.tga.ckd/4a5cd886a3ce7d77e36f6863090981be.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 27.945, + "mapName": "JDMUBaroque", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUBaroque_mapContent" + }, + "parentMapName": "JDMUBaroque", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUBathroomSinger.json b/justdanceonline-main/maps_blocks/JDMUBathroomSinger.json new file mode 100644 index 0000000000000000000000000000000000000000..2adfe29cb581f692dea66bd431e07c3a7967c202 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUBathroomSinger.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUBathroomSinger/pc/JDMUBathroomSinger_Cover_Generic.tga.ckd/f6abc8f865ebab1db2809461e32ae26c.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUBathroomSinger/pc/JDMUBathroomSinger_Cover_Online.tga.ckd/13cd7472d3825514206edeb3bde04d76.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 31.459, + "mapName": "JDMUBathroomSinger", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUBathroomSinger_mapContent" + }, + "parentMapName": "JDMUBathroomSinger", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUBoxer.json b/justdanceonline-main/maps_blocks/JDMUBoxer.json new file mode 100644 index 0000000000000000000000000000000000000000..a7d126ffa83d27ab968d601b1e0efe4ff10fb6e0 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUBoxer.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUBoxer/pc/JDMUBoxer_Cover_Generic.tga.ckd/1a674ac448c9f19b9c159f4152ea47b7.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUBoxer/pc/JDMUBoxer_Cover_Online.tga.ckd/9e884dbd632acccfcb6961359329754a.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.403, + "mapName": "JDMUBoxer", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUBoxer_mapContent" + }, + "parentMapName": "JDMUBoxer", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUChef.json b/justdanceonline-main/maps_blocks/JDMUChef.json new file mode 100644 index 0000000000000000000000000000000000000000..0ca251919271d042dcb8ed0e9afcf009eace78c7 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUChef.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUChef/pc/JDMUChef_Cover_Generic.tga.ckd/d01d8f6fbaae0b5d0e0139ea6cec8025.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUChef/pc/JDMUChef_Cover_Online.tga.ckd/1108373dc99fccd174f2be46a1baf933.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.127, + "mapName": "JDMUChef", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUChef_mapContent" + }, + "parentMapName": "JDMUChef", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUCrab.json b/justdanceonline-main/maps_blocks/JDMUCrab.json new file mode 100644 index 0000000000000000000000000000000000000000..3050558f74493307399891f9c80834a7685fbf2d --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUCrab.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUCrab/pc/JDMUCrab_Cover_Generic.tga.ckd/f0bfad51e2b708beef06896de17b1d95.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUCrab/pc/JDMUCrab_Cover_Online.tga.ckd/e369921fade7bc3ef795c81ef74ba43a.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.198, + "mapName": "JDMUCrab", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUCrab_mapContent" + }, + "parentMapName": "JDMUCrab", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUCrazyBallerina.json b/justdanceonline-main/maps_blocks/JDMUCrazyBallerina.json new file mode 100644 index 0000000000000000000000000000000000000000..4b9c28959eedc319d30f6e44cfe3ff0ddfbf1efc --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUCrazyBallerina.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUCrazyBallerina/pc/JDMUCrazyBallerina_Cover_Generic.tga.ckd/1779ac6e7caef88920f99eca2363eaf2.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUCrazyBallerina/pc/JDMUCrazyBallerina_Cover_Online.tga.ckd/8cb0162eb2b334caa0d5642ab0f6bcaa.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.663, + "mapName": "JDMUCrazyBallerina", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUCrazyBallerina_mapContent" + }, + "parentMapName": "JDMUCrazyBallerina", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUGeisha.json b/justdanceonline-main/maps_blocks/JDMUGeisha.json new file mode 100644 index 0000000000000000000000000000000000000000..45ec1b17fe4d2b30707070b057150e63d6ebe2db --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUGeisha.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUGeisha/pc/JDMUGeisha_Cover_Generic.tga.ckd/1d563e8c93982d007350a7e7c5ac1b53.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUGeisha/pc/JDMUGeisha_Cover_Online.tga.ckd/6b9aaa8dc78f9249ca758382e0f6c868.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 27.383, + "mapName": "JDMUGeisha", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUGeisha_mapContent" + }, + "parentMapName": "JDMUGeisha", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUGlassCleaner.json b/justdanceonline-main/maps_blocks/JDMUGlassCleaner.json new file mode 100644 index 0000000000000000000000000000000000000000..77c52ab451dc3fae6d83190dae4f580abca5337a --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUGlassCleaner.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUGlassCleaner/pc/JDMUGlassCleaner_Cover_Generic.tga.ckd/c3f024be8181550e55787ef20f044be1.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUGlassCleaner/pc/JDMUGlassCleaner_Cover_Online.tga.ckd/3150bd39def6902aa284929a9eb7c926.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 26.71, + "mapName": "JDMUGlassCleaner", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUGlassCleaner_mapContent" + }, + "parentMapName": "JDMUGlassCleaner", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUHurdle.json b/justdanceonline-main/maps_blocks/JDMUHurdle.json new file mode 100644 index 0000000000000000000000000000000000000000..2b7d580b240bc3d4bb75da9a39cc8cfbe6d97f90 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUHurdle.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUHurdle/pc/JDMUHurdle_Cover_Generic.tga.ckd/822ac6b7dc7cf63f801d15f93dca05f3.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUHurdle/pc/JDMUHurdle_Cover_Online.tga.ckd/459c8cc4a9d2b271be48ea9bcb94a058.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.831, + "mapName": "JDMUHurdle", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUHurdle_mapContent" + }, + "parentMapName": "JDMUHurdle", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUPirate.json b/justdanceonline-main/maps_blocks/JDMUPirate.json new file mode 100644 index 0000000000000000000000000000000000000000..3147900843f7155d10b88491da87eb3934ecda12 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUPirate.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUPirate/pc/JDMUPirate_Cover_Generic.tga.ckd/479abc4ee32f376dccd9b00dc0080566.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUPirate/pc/JDMUPirate_Cover_Online.tga.ckd/f594e07dd5e5a54b86b861f361272760.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 23.837, + "mapName": "JDMUPirate", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUPirate_mapContent" + }, + "parentMapName": "JDMUPirate", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUSecretaryTypewriter.json b/justdanceonline-main/maps_blocks/JDMUSecretaryTypewriter.json new file mode 100644 index 0000000000000000000000000000000000000000..b8c0744f9df73dcd2689337a1697df83e4ec3fbd --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUSecretaryTypewriter.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUSecretaryTypewriter/pc/JDMUSecretaryTypewriter_Cover_Generic.tga.ckd/d6a2349882b2d567d2855ed52df12e76.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUSecretaryTypewriter/pc/JDMUSecretaryTypewriter_Cover_Online.tga.ckd/5e538d0452cf6800c0dccfa38374ee49.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 30.649, + "mapName": "JDMUSecretaryTypewriter", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUSecretaryTypewriter_mapContent" + }, + "parentMapName": "JDMUSecretaryTypewriter", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUSuperHero.json b/justdanceonline-main/maps_blocks/JDMUSuperHero.json new file mode 100644 index 0000000000000000000000000000000000000000..126d094d7fb23dcfe63ce34eaeb4988813bfb490 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUSuperHero.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUSuperHero/pc/JDMUSuperHero_Cover_Generic.tga.ckd/a7de1a01a299317a63accd2da13679ee.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUSuperHero/pc/JDMUSuperHero_Cover_Online.tga.ckd/9143447fcdc9c896983437a5fadb6c25.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Cool" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 28.688, + "mapName": "JDMUSuperHero", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUSuperHero_mapContent" + }, + "parentMapName": "JDMUSuperHero", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUSupporter.json b/justdanceonline-main/maps_blocks/JDMUSupporter.json new file mode 100644 index 0000000000000000000000000000000000000000..68be3938b03a8f8a6c16ac049452b0dacd36bfdd --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUSupporter.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUSupporter/pc/JDMUSupporter_Cover_Generic.tga.ckd/122d3d2e927e9355831c07306a70e37d.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUSupporter/pc/JDMUSupporter_Cover_Online.tga.ckd/3e569c431f645c3890567fc315f3f174.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 26.751, + "mapName": "JDMUSupporter", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUSupporter_mapContent" + }, + "parentMapName": "JDMUSupporter", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUTapDance.json b/justdanceonline-main/maps_blocks/JDMUTapDance.json new file mode 100644 index 0000000000000000000000000000000000000000..31b536a34ad7cd2e90e64fb7917b3b4719b0b99b --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUTapDance.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUTapDance/pc/JDMUTapDance_Cover_Generic.tga.ckd/487c5fd750ba130fd43cc94d51c24c89.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUTapDance/pc/JDMUTapDance_Cover_Online.tga.ckd/e0578fdb18526dec01d959e3a1d272f7.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Speed" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 27.229, + "mapName": "JDMUTapDance", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUTapDance_mapContent" + }, + "parentMapName": "JDMUTapDance", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUWizard.json b/justdanceonline-main/maps_blocks/JDMUWizard.json new file mode 100644 index 0000000000000000000000000000000000000000..f317354a55002a9fe572e724abb35d9f5f8716c6 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUWizard.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUWizard/pc/JDMUWizard_Cover_Generic.tga.ckd/3a5f906018e4f8a8adfb64ec3b20258d.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUWizard/pc/JDMUWizard_Cover_Online.tga.ckd/b4fc0b47df1c585b294cfe6e782f25c9.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 27.131, + "mapName": "JDMUWizard", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUWizard_mapContent" + }, + "parentMapName": "JDMUWizard", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUZombie.json b/justdanceonline-main/maps_blocks/JDMUZombie.json new file mode 100644 index 0000000000000000000000000000000000000000..4dcae1270fd50845bc75319f833de41e33b82158 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUZombie.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUZombie/pc/JDMUZombie_Cover_Generic.tga.ckd/2db6e5dffefc5c2f41d596f06d1feeea.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUZombie/pc/JDMUZombie_Cover_Online.tga.ckd/79d56bb3a7e60f0c70e4e22d4a05b44a.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 26.207, + "mapName": "JDMUZombie", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUZombie_mapContent" + }, + "parentMapName": "JDMUZombie", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMUnderwater.json b/justdanceonline-main/maps_blocks/JDMUnderwater.json new file mode 100644 index 0000000000000000000000000000000000000000..84eec06be7e6aa70228c5dedd44a8cc870a79c6e --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMUnderwater.json @@ -0,0 +1,39 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMUnderwater Artist", + "assets": { + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUnderwater/pc/JDMUnderwater_Coach_1.tga.ckd/b9394a9a7b10216ab8de50ec9acfb123.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUnderwater/pc/JDMUnderwater_Cover_Generic.tga.ckd/0de62706f6a84ce83263f9048664d878.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMUnderwater/pc/JDMUnderwater_Cover_Online.tga.ckd/1bba54d9bdd755f970c0c2008f970e32.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_WhatTheFuck" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 33, + "mapName": "JDMUnderwater", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMUnderwater_mapContent" + }, + "parentMapName": "JDMUnderwater", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 6, + "tags": [ + "DanceMachine" + ], + "title": "JDMUnderwater", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMWestCoast.json b/justdanceonline-main/maps_blocks/JDMWestCoast.json new file mode 100644 index 0000000000000000000000000000000000000000..a8e795563bfefcc0b60c9934f33de2c4bbb79f0b --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMWestCoast.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMWestCoast Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMWestCoast/pc/JDMWestCoast_Cover_Generic.tga.ckd/941e1938c028747b6ab26bb23de26dd0.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMWestCoast/pc/JDMWestCoast_Cover_Online.tga.ckd/d608a0037db580c722ea818afa10d51a.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 26.666999999999998, + "mapName": "JDMWestCoast", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMWestCoast_mapContent" + }, + "parentMapName": "JDMWestCoast", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMWestCoast", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMYodel.json b/justdanceonline-main/maps_blocks/JDMYodel.json new file mode 100644 index 0000000000000000000000000000000000000000..b9932b892ae8f1dd7cfe08c3015f214c739bca8b --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMYodel.json @@ -0,0 +1,38 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMYodel Artist", + "assets": { + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMYodel/pc/JDMYodel_Cover_Generic.tga.ckd/9e47938d0f842a2364ae0f07e692ddce.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMYodel/pc/JDMYodel_Cover_Online.tga.ckd/008c5a97e91bf51d7d0e0bdfd5a7d3c0.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 29.227, + "mapName": "JDMYodel", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMYodel_mapContent" + }, + "parentMapName": "JDMYodel", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMYodel", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/maps_blocks/JDMYoga.json b/justdanceonline-main/maps_blocks/JDMYoga.json new file mode 100644 index 0000000000000000000000000000000000000000..12a49fcfaf32971eb0f973683e5e06b792cc5902 --- /dev/null +++ b/justdanceonline-main/maps_blocks/JDMYoga.json @@ -0,0 +1,39 @@ +{ + "__class": "OnlineBlock", + "artist": "JDMYoga Artist", + "assets": { + "coach1ImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMYoga/pc/JDMYoga_Coach_1.tga.ckd/b9394a9a7b10216ab8de50ec9acfb123.ckd", + "coverImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMYoga/pc/JDMYoga_Cover_Generic.tga.ckd/05763b6bdd562e70b4f26f63aee39354.ckd", + "cover_smallImageUrl": "https://jd-s3.akamaized.net/public/dance-machine/JDMYoga/pc/JDMYoga_Cover_Online.tga.ckd/2672d7692805affd6c143a4573f5de89.ckd" + }, + "coachCount": 1, + "credits": "CREDITS STRING TO BE FILLED", + "customTypeNameId": -1, + "difficulty": 2, + "jdmAttributes": [ + "JDM_Normal" + ], + "lyricsColor": "FF0000FF", + "lyricsType": 0, + "mainCoach": -1, + "mapLength": 31.714, + "mapName": "JDMYoga", + "mode": 6, + "originalJDVersion": 2017, + "packages": { + "mapContent": "JDMYoga_mapContent" + }, + "parentMapName": "JDMYoga", + "songColors": { + "songColor_1A": "444444FF", + "songColor_1B": "111111FF", + "songColor_2A": "AAAAAAFF", + "songColor_2B": "777777FF" + }, + "status": 3, + "tags": [ + "DanceMachine" + ], + "title": "JDMYoga", + "isPlayable": false +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/.bin/md5-file b/justdanceonline-main/node_modules/.bin/md5-file new file mode 100644 index 0000000000000000000000000000000000000000..dff995488b31a1935049f5477041a6a22b4e9634 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/md5-file @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../md5-file/cli.js" "$@" +else + exec node "$basedir/../md5-file/cli.js" "$@" +fi diff --git a/justdanceonline-main/node_modules/.bin/md5-file.cmd b/justdanceonline-main/node_modules/.bin/md5-file.cmd new file mode 100644 index 0000000000000000000000000000000000000000..77f01516c146fedf57f9c050b7f79102cf96ad66 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/md5-file.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\md5-file\cli.js" %* diff --git a/justdanceonline-main/node_modules/.bin/md5-file.ps1 b/justdanceonline-main/node_modules/.bin/md5-file.ps1 new file mode 100644 index 0000000000000000000000000000000000000000..86bee036ce92a8e8ff6717ee2ab4133c2a245774 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/md5-file.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../md5-file/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../md5-file/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../md5-file/cli.js" $args + } else { + & "node$exe" "$basedir/../md5-file/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/justdanceonline-main/node_modules/.bin/mime b/justdanceonline-main/node_modules/.bin/mime new file mode 100644 index 0000000000000000000000000000000000000000..0a62a1b13b965546f7aab56bbcb07d37e1cb6087 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/mime @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../mime/cli.js" "$@" +else + exec node "$basedir/../mime/cli.js" "$@" +fi diff --git a/justdanceonline-main/node_modules/.bin/mime.cmd b/justdanceonline-main/node_modules/.bin/mime.cmd new file mode 100644 index 0000000000000000000000000000000000000000..54491f12e08014083099d3a46bf7b99f0ec22b56 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/mime.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %* diff --git a/justdanceonline-main/node_modules/.bin/mime.ps1 b/justdanceonline-main/node_modules/.bin/mime.ps1 new file mode 100644 index 0000000000000000000000000000000000000000..2222f40bcf2aca56c70178225cfe21cc31e2773f --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/mime.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../mime/cli.js" $args + } else { + & "node$exe" "$basedir/../mime/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/justdanceonline-main/node_modules/.bin/rimraf b/justdanceonline-main/node_modules/.bin/rimraf new file mode 100644 index 0000000000000000000000000000000000000000..b816825501681cb0eb7a06021ceaf06669977fd1 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/rimraf @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../rimraf/bin.js" "$@" +else + exec node "$basedir/../rimraf/bin.js" "$@" +fi diff --git a/justdanceonline-main/node_modules/.bin/rimraf.cmd b/justdanceonline-main/node_modules/.bin/rimraf.cmd new file mode 100644 index 0000000000000000000000000000000000000000..13f45eca337b1e901d40623f7270a4b687913b7c --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/rimraf.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rimraf\bin.js" %* diff --git a/justdanceonline-main/node_modules/.bin/rimraf.ps1 b/justdanceonline-main/node_modules/.bin/rimraf.ps1 new file mode 100644 index 0000000000000000000000000000000000000000..17167914ff79eef0e1cf7ed4e94c5933073d9cd4 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/rimraf.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args + } else { + & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../rimraf/bin.js" $args + } else { + & "node$exe" "$basedir/../rimraf/bin.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/justdanceonline-main/node_modules/.bin/uuid b/justdanceonline-main/node_modules/.bin/uuid new file mode 100644 index 0000000000000000000000000000000000000000..c3ec0035f9952484cd7a89dd063aff6ae4c9cc9a --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/uuid @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../uuid/dist/bin/uuid" "$@" +else + exec node "$basedir/../uuid/dist/bin/uuid" "$@" +fi diff --git a/justdanceonline-main/node_modules/.bin/uuid.cmd b/justdanceonline-main/node_modules/.bin/uuid.cmd new file mode 100644 index 0000000000000000000000000000000000000000..0f2376eaf4dbb387b218cc3dcd7d66fe13b95502 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/uuid.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\dist\bin\uuid" %* diff --git a/justdanceonline-main/node_modules/.bin/uuid.ps1 b/justdanceonline-main/node_modules/.bin/uuid.ps1 new file mode 100644 index 0000000000000000000000000000000000000000..78046284b9366ed44fd3365394fd3696a86f2386 --- /dev/null +++ b/justdanceonline-main/node_modules/.bin/uuid.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } else { + & "$basedir/node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } else { + & "node$exe" "$basedir/../uuid/dist/bin/uuid" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/justdanceonline-main/node_modules/.package-lock.json b/justdanceonline-main/node_modules/.package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..364f4d6cdb16c12cb867438ef3f6533116fe6572 --- /dev/null +++ b/justdanceonline-main/node_modules/.package-lock.json @@ -0,0 +1,1237 @@ +{ + "name": "jdcs-prod", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@types/bson": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", + "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mongodb": { + "version": "3.6.12", + "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.12.tgz", + "integrity": "sha512-49aEzQD5VdHPxyd5dRyQdqEveAg9LanwrH8RQipnMuulwzKmODXIZRp0umtxi1eBUfEusRkoy8AVOMr+kVuFog==", + "dependencies": { + "@types/bson": "*", + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.2.tgz", + "integrity": "sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==" + }, + "node_modules/accept-language-parser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/accept-language-parser/-/accept-language-parser-1.5.0.tgz", + "integrity": "sha1-iHfFQECo3LWeCgfZwf3kIpgzR5E=" + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "node_modules/aws-sdk": { + "version": "2.932.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.932.0.tgz", + "integrity": "sha512-U6MWUtFD0npWa+ReVEgm0fCIM0fMOYahFp14GLv8fC+BWOTvh5Iwt/gF8NrLomx42bBjA1Abaw6yhmiaSJDQHQ==", + "hasInstallScript": true, + "dependencies": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/aws-sdk/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dependencies": { + "follow-redirects": "^1.10.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/denque": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", + "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-ip": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/express-ip/-/express-ip-1.0.4.tgz", + "integrity": "sha512-PP9s2kg1+GHhJGtRqwoVHkBHi8glbL5wXXSj2p2+3qcxUNALwXoNhjtY2eLuNchcnWPkmJGyZcqAWUUpd9ecpA==", + "dependencies": { + "geoip-lite": "^1.2.2" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/follow-redirects": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", + "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/geoip-lite": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/geoip-lite/-/geoip-lite-1.4.2.tgz", + "integrity": "sha512-1rUNqar68+ldSSlSMdpLZPAM+NRokIDzB2lpQFRHSOaDVqtmy25jTAWe0lM2GqWFeaA35RiLhF8GF0vvL+qOKA==", + "dependencies": { + "async": "^2.1.1", + "colors": "^1.1.2", + "iconv-lite": "^0.4.13", + "ip-address": "^5.8.9", + "lazy": "^1.0.11", + "rimraf": "^2.5.2", + "yauzl": "^2.9.2" + }, + "engines": { + "node": ">=5.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "node_modules/ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/ip-address": { + "version": "5.9.4", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-5.9.4.tgz", + "integrity": "sha512-dHkI3/YNJq4b/qQaz+c8LuarD3pY24JqZWfjB8aZx1gtpc2MDILu9L9jpZe1sHpzo/yWFweQVn+U//FhazUxmw==", + "dependencies": { + "jsbn": "1.1.0", + "lodash": "^4.17.15", + "sprintf-js": "1.1.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" + }, + "node_modules/kareem": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", + "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" + }, + "node_modules/lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/md5-dir": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/md5-dir/-/md5-dir-0.2.0.tgz", + "integrity": "sha512-hZ7nEcG1PXQph98ELAEC3SArDiNQLgeIPAGHtMawVOD0Lxmbpj3L9yRUEk5TpaImh9KiiSNv8M0ddI7Gcv6xyA==", + "dependencies": { + "async-each": "^1.0.1", + "ignore": "^3.3.7", + "md5-file": "^4.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/md5-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-4.0.0.tgz", + "integrity": "sha512-UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==", + "bin": { + "md5-file": "cli.js" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "dependencies": { + "mime-db": "1.47.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mongodb": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", + "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==", + "dependencies": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "optional-require": "^1.0.2", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + }, + "peerDependenciesMeta": { + "aws4": { + "optional": true + }, + "bson-ext": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "mongodb-extjson": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongoose": { + "version": "5.12.7", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.7.tgz", + "integrity": "sha512-BniNwACn7uflK2h+M3juvyLH5nn9JDFgnB5KE2EwWFwSrRyhSpPnCtanRKJW3OtMCJyPccMIjtGZxHNW7JfnIw==", + "dependencies": { + "@types/mongodb": "^3.5.27", + "bson": "^1.1.4", + "kareem": "2.3.2", + "mongodb": "3.6.6", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.8.3", + "mquery": "3.2.5", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.2.1", + "sift": "13.5.2", + "sliced": "1.0.1" + }, + "engines": { + "node": ">=4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", + "peerDependencies": { + "mongoose": "*" + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mongoose/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/mpath": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", + "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", + "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", + "dependencies": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optional-require": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", + "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sift": { + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", + "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" + }, + "node_modules/sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/justdanceonline-main/node_modules/@types/bson/LICENSE b/justdanceonline-main/node_modules/@types/bson/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9e841e7a26e4eb057b24511e7b92d42b257a80e5 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/bson/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/justdanceonline-main/node_modules/@types/bson/README.md b/justdanceonline-main/node_modules/@types/bson/README.md new file mode 100644 index 0000000000000000000000000000000000000000..76c3eedd8a01bbde939a37feb000994f7fdf7748 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/bson/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/bson` + +# Summary +This package contains type definitions for bson (https://github.com/mongodb/js-bson). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bson. + +### Additional Details + * Last updated: Tue, 20 Oct 2020 02:03:19 GMT + * Dependencies: [@types/node](https://npmjs.com/package/@types/node) + * Global values: none + +# Credits +These definitions were written by [Hiroki Horiuchi](https://github.com/horiuchi), [Federico Caselli](https://github.com/CaselIT), [Justin Grant](https://github.com/justingrant), and [Mikael Lirbank](https://github.com/lirbank). diff --git a/justdanceonline-main/node_modules/@types/bson/index.d.ts b/justdanceonline-main/node_modules/@types/bson/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4f781acd72b05eb59d2c5cbf0f31bee2c6da5cb8 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/bson/index.d.ts @@ -0,0 +1,600 @@ +// Type definitions for bson 4.0 +// Project: https://github.com/mongodb/js-bson +// Definitions by: Hiroki Horiuchi +// Federico Caselli +// Justin Grant +// Mikael Lirbank +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +interface CommonSerializeOptions { + /** {default:false}, the serializer will check if keys are valid. */ + checkKeys?: boolean; + /** {default:false}, serialize the javascript functions. */ + serializeFunctions?: boolean; + /** {default:true}, ignore undefined fields. */ + ignoreUndefined?: boolean; +} + +export interface SerializeOptions extends CommonSerializeOptions { + /** {default:1024*1024*17}, minimum size of the internal temporary serialization buffer. */ + minInternalBufferSize?: number; +} + +export interface SerializeWithBufferAndIndexOptions extends CommonSerializeOptions { + /** {default:0}, the index in the buffer where we wish to start serializing into. */ + index?: number; +} + +export interface DeserializeOptions { + /** {default:false}, evaluate functions in the BSON document scoped to the object deserialized. */ + evalFunctions?: boolean; + /** {default:false}, cache evaluated functions for reuse. */ + cacheFunctions?: boolean; + /** {default:false}, use a crc32 code for caching, otherwise use the string of the function. */ + cacheFunctionsCrc32?: boolean; + /** {default:true}, when deserializing a Long will fit it into a Number if it's smaller than 53 bits. */ + promoteLongs?: boolean; + /** {default:false}, deserialize Binary data directly into node.js Buffer object. */ + promoteBuffers?: boolean; + /** {default:false}, when deserializing will promote BSON values to their Node.js closest equivalent types. */ + promoteValues?: boolean; + /** {default:null}, allow to specify if there what fields we wish to return as unserialized raw buffer. */ + fieldsAsRaw?: { readonly [fieldName: string]: boolean }; + /** {default:false}, return BSON regular expressions as BSONRegExp instances. */ + bsonRegExp?: boolean; + /** {default:false}, allows the buffer to be larger than the parsed BSON object. */ + allowObjectSmallerThanBufferSize?: boolean; +} + +export interface CalculateObjectSizeOptions { + /** {default:false}, serialize the javascript functions */ + serializeFunctions?: boolean; + /** {default:true}, ignore undefined fields. */ + ignoreUndefined?: boolean; +} + + +/** + * Serialize a Javascript object. + * + * @param object The Javascript object to serialize. + * @param options Serialize options. + * @return The Buffer object containing the serialized object. + */ +export function serialize(object: any, options?: SerializeOptions): Buffer; + +/** + * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization. + * + * @param object The Javascript object to serialize. + * @param buffer The Buffer you pre-allocated to store the serialized BSON object. + * @param options Serialize options. + * @returns The index pointing to the last written byte in the buffer + */ +export function serializeWithBufferAndIndex(object: any, buffer: Buffer, options?: SerializeWithBufferAndIndexOptions): number; + +/** + * Deserialize data as BSON. + * + * @param buffer The buffer containing the serialized set of BSON documents. + * @param options Deserialize options. + * @returns The deserialized Javascript Object. + */ +export function deserialize(buffer: Buffer, options?: DeserializeOptions): any; + +/** + * Calculate the bson size for a passed in Javascript object. + * + * @param {Object} object the Javascript object to calculate the BSON byte size for. + * @param {CalculateObjectSizeOptions} Options + * @return {Number} returns the number of bytes the BSON object will take up. + */ +export function calculateObjectSize(object: any, options?: CalculateObjectSizeOptions): number; + +/** + * Deserialize stream data as BSON documents. + * + * @param data The buffer containing the serialized set of BSON documents. + * @param startIndex The start index in the data Buffer where the deserialization is to start. + * @param numberOfDocuments Number of documents to deserialize + * @param documents An array where to store the deserialized documents + * @param docStartIndex The index in the documents array from where to start inserting documents + * @param options Additional options used for the deserialization + * @returns The next index in the buffer after deserialization of the `numberOfDocuments` + */ +export function deserializeStream( + data: Buffer, + startIndex: number, + numberOfDocuments: number, + documents: Array, + docStartIndex: number, + options?: DeserializeOptions +): number; + +/** A class representation of the BSON Binary type. */ +export class Binary { + + static readonly SUBTYPE_DEFAULT: number; + static readonly SUBTYPE_FUNCTION: number; + static readonly SUBTYPE_BYTE_ARRAY: number; + static readonly SUBTYPE_UUID_OLD: number; + static readonly SUBTYPE_UUID: number; + static readonly SUBTYPE_MD5: number; + static readonly SUBTYPE_USER_DEFINED: number; + + /** + * @param buffer A buffer object containing the binary data + * @param subType Binary data subtype + */ + constructor(buffer: Buffer, subType?: number); + + /** The underlying Buffer which stores the binary data. */ + readonly buffer: Buffer; + /** Binary data subtype */ + readonly sub_type?: number; + + /** The length of the binary. */ + length(): number; + /** Updates this binary with byte_value */ + put(byte_value: number | string): void; + /** Reads length bytes starting at position. */ + read(position: number, length: number): Buffer; + /** Returns the value of this binary as a string. */ + value(): string; + /** Writes a buffer or string to the binary */ + write(buffer: Buffer | string, offset: number): void; +} + +/** A class representation of the BSON Code type. */ +export class Code { + + /** + * @param code A string or function. + * @param scope An optional scope for the function. + */ + constructor(code: string | Function, scope?: any); + + readonly code: string | Function; + readonly scope?: any; + +} + +/** + * A class representation of the BSON DBRef type. + */ +export class DBRef { + /** + * @param namespace The collection name. + * @param oid The reference ObjectId. + * @param db Optional db name, if omitted the reference is local to the current db + */ + constructor(namespace: string, oid: ObjectId, db?: string); + namespace: string; + oid: ObjectId; + db?: string; +} + +/** A class representation of the BSON Double type. */ +export class Double { + /** + * @param value The number we want to represent as a double. + */ + constructor(value: number); + + /** + * https://github.com/mongodb/js-bson/blob/master/lib/double.js#L17 + */ + value: number; + + + valueOf(): number; +} + +/** A class representation of the BSON Int32 type. */ +export class Int32 { + /** + * @param value The number we want to represent as an int32. + */ + constructor(value: number); + + valueOf(): number; +} + +/** + * Base class for Long and Timestamp. + * In original js-node@1.0.x code 'Timestamp' is a 100% copy-paste of 'Long' + * with 'Long' replaced by 'Timestamp' (changed to inheritance in js-node@2.0.0) + */ +declare class LongLike { + + /** + * @param low The low (signed) 32 bits. + * @param high The high (signed) 32 bits. + */ + constructor(low: number, high: number); + + /** Returns the sum of `this` and the `other`. */ + add(other: T): T; + /** Returns the bitwise-AND of `this` and the `other`. */ + and(other: T): T; + /** + * Compares `this` with the given `other`. + * @returns 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ + compare(other: T): number; + /** Returns `this` divided by the given `other`. */ + div(other: T): T; + /** Return whether `this` equals the `other` */ + equals(other: T): boolean; + /** Return the high 32-bits value. */ + getHighBits(): number; + /** Return the low 32-bits value. */ + getLowBits(): number; + /** Return the low unsigned 32-bits value. */ + getLowBitsUnsigned(): number; + /** Returns the number of bits needed to represent the absolute value of `this`. */ + getNumBitsAbs(): number; + /** Return whether `this` is greater than the `other`. */ + greaterThan(other: T): boolean; + /** Return whether `this` is greater than or equal to the `other`. */ + greaterThanOrEqual(other: T): boolean; + /** Return whether `this` value is negative. */ + isNegative(): boolean; + /** Return whether `this` value is odd. */ + isOdd(): boolean; + /** Return whether `this` value is zero. */ + isZero(): boolean; + /** Return whether `this` is less than the `other`. */ + lessThan(other: T): boolean; + /** Return whether `this` is less than or equal to the `other`. */ + lessThanOrEqual(other: T): boolean; + /** Returns `this` modulo the given `other`. */ + modulo(other: T): T; + /** Returns the product of `this` and the given `other`. */ + multiply(other: T): T; + /** The negation of this value. */ + negate(): T; + /** The bitwise-NOT of this value. */ + not(): T; + /** Return whether `this` does not equal to the `other`. */ + notEquals(other: T): boolean; + /** Returns the bitwise-OR of `this` and the given `other`. */ + or(other: T): T; + /** + * Returns `this` with bits shifted to the left by the given amount. + * @param numBits The number of bits by which to shift. + */ + shiftLeft(numBits: number): T; + /** + * Returns `this` with bits shifted to the right by the given amount. + * @param numBits The number of bits by which to shift. + */ + shiftRight(numBits: number): T; + /** + * Returns `this` with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * @param numBits The number of bits by which to shift. + */ + shiftRightUnsigned(numBits: number): T; + /** Returns the difference of `this` and the given `other`. */ + subtract(other: T): T; + /** Return the int value (low 32 bits). */ + toInt(): number; + /** Return the JSON value. */ + toJSON(): string; + /** Returns closest floating-point representation to `this` value */ + toNumber(): number; + /** + * Return as a string + * @param radix the radix in which the text should be written. {default:10} + */ + toString(radix?: number): string; + /** Returns the bitwise-XOR of `this` and the given `other`. */ + xor(other: T): T; + +} + +/** + * A class representation of the BSON Long type, a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Long". This + * implementation is derived from LongLib in GWT. + */ +export class Long extends LongLike { + + static readonly MAX_VALUE: Long; + static readonly MIN_VALUE: Long; + static readonly NEG_ONE: Long; + static readonly ONE: Long; + static readonly ZERO: Long; + + /** Returns a Long representing the given (32-bit) integer value. */ + static fromInt(i: number): Long; + /** Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. */ + static fromNumber(n: number): Long; + /** + * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * @param lowBits The low 32-bits. + * @param highBits The high 32-bits. + */ + static fromBits(lowBits: number, highBits: number): Long; + /** + * Returns a Long representation of the given string + * @param opt_radix The radix in which the text is written. {default:10} + */ + static fromString(s: string, opt_radix?: number): Long; + +} + +/** A class representation of the BSON Decimal128 type. */ +export class Decimal128 { + + /** Create a Decimal128 instance from a string representation. */ + static fromString(s: string): Decimal128; + + /** + * @param bytes A buffer containing the raw Decimal128 bytes. + */ + constructor(bytes: Buffer); + + /** A buffer containing the raw Decimal128 bytes. */ + readonly bytes: Buffer; + + toJSON(): string; + toString(): string; +} + +/** A class representation of the BSON MaxKey type. */ +export class MaxKey { + constructor(); +} + +/** A class representation of the BSON MinKey type. */ +export class MinKey { + constructor(); +} + +/** A class representation of the BSON ObjectId type. */ +export class ObjectId { + /** + * Create a new ObjectId instance + * @param {(string|number|ObjectId)} id Can be a 24 byte hex string, 12 byte binary string or a Number. + */ + constructor(id?: string | number | ObjectId); + /** The generation time of this ObjectId instance */ + generationTime: number; + /** If true cache the hex string representation of ObjectId */ + static cacheHexString?: boolean; + /** + * Creates an ObjectId from a hex string representation of an ObjectId. + * @param {string} hexString create a ObjectId from a passed in 24 byte hexstring. + * @return {ObjectId} return the created ObjectId + */ + static createFromHexString(hexString: string): ObjectId; + /** + * Creates an ObjectId from a second based number, with the rest of the ObjectId zeroed out. Used for comparisons or sorting the ObjectId. + * @param {number} time an integer number representing a number of seconds. + * @return {ObjectId} return the created ObjectId + */ + static createFromTime(time: number): ObjectId; + /** + * Checks if a value is a valid bson ObjectId + * + * @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise. + */ + static isValid(id: string | number | ObjectId): boolean; + /** + * Compares the equality of this ObjectId with `otherID`. + * @param {ObjectId|string} otherID ObjectId instance to compare against. + * @return {boolean} the result of comparing two ObjectId's + */ + equals(otherID: ObjectId | string): boolean; + /** + * Generate a 12 byte id string used in ObjectId's + * @param {number} time optional parameter allowing to pass in a second based timestamp. + * @return {string} return the 12 byte id binary string. + */ + static generate(time?: number): Buffer; + /** + * Returns the generation date (accurate up to the second) that this ID was generated. + * @return {Date} the generation date + */ + getTimestamp(): Date; + /** + * Return the ObjectId id as a 24 byte hex string representation + * @return {string} return the 24 byte hex string representation. + */ + toHexString(): string; +} + +/** + * ObjectID (with capital "D") is deprecated. Use ObjectId (lowercase "d") instead. + * @deprecated + */ +export { ObjectId as ObjectID }; + +/** A class representation of the BSON RegExp type. */ +export class BSONRegExp { + + constructor(pattern: string, options: string); + + readonly pattern: string; + readonly options: string; + +} + +/** + * A class representation of the BSON Symbol type. + * @deprecated + */ +export class Symbol { + + constructor(value: string); + + /** Access the wrapped string value. */ + valueOf(): string; + +} + +/** A class representation of the BSON Timestamp type. */ +export class Timestamp extends LongLike { + + static readonly MAX_VALUE: Timestamp; + static readonly MIN_VALUE: Timestamp; + static readonly NEG_ONE: Timestamp; + static readonly ONE: Timestamp; + static readonly ZERO: Timestamp; + + /** Returns a Timestamp represented by the given (32-bit) integer value */ + static fromInt(value: number): Timestamp; + /** Returns a Timestamp representing the given number value, provided that it is a finite number. */ + static fromNumber(value: number): Timestamp; + /** + * Returns a Timestamp for the given high and low bits. Each is assumed to use 32 bits. + * @param lowBits The low 32-bits. + * @param highBits The high 32-bits. + */ + static fromBits(lowBits: number, highBits: number): Timestamp; + /** + * Returns a Timestamp from the given string. + * @param opt_radix The radix in which the text is written. {default:10} + */ + static fromString(str: string, opt_radix?: number): Timestamp; + +} + +/** + * Functions for serializing JavaScript objects into Mongodb Extended JSON (EJSON). + * @namespace EJSON + */ +export namespace EJSON { + + /** + * Parse an Extended JSON string, constructing the JavaScript value or object described by that + * string. + * + * @memberof EJSON + * @param {string} text + * @param {object} [options] Optional settings + * @param {boolean} [options.relaxed=true] Attempt to return native JS types where possible, rather than BSON types (if true) + * @return {object} + * + * @example + * const { EJSON } = require('bson'); + * const text = '{ "int32": { "$numberInt": "10" } }'; + * + * // prints { int32: { [String: '10'] _bsontype: 'Int32', value: '10' } } + * console.log(EJSON.parse(text, { relaxed: false })); + * + * // prints { int32: 10 } + * console.log(EJSON.parse(text)); + */ + export function parse(text: string, options?: {relaxed?: boolean;}): {}; + + /** + * Deserializes an Extended JSON object into a plain JavaScript object with native/BSON types + * + * @memberof EJSON + * @param {object} ejson The Extended JSON object to deserialize + * @param {object} [options] Optional settings passed to the parse method + * @return {object} + */ + export function deserialize(ejson: {}, options?: {relaxed?: boolean;}): {}; + + /** + * Serializes an object to an Extended JSON string, and reparse it as a JavaScript object. + * + * @memberof EJSON + * @param {object} bson The object to serialize + * @param {object} [options] Optional settings passed to the `stringify` function + * @return {object} + */ + export function serialize(bson: {}, options?: {relaxed?: boolean;}): {}; + + /** + * Converts a BSON document to an Extended JSON string, optionally replacing values if a replacer + * function is specified or optionally including only the specified properties if a replacer array + * is specified. + * + * @memberof EJSON + * @param {object} value The value to convert to extended JSON + * @param {function|array} [replacer] A function that alters the behavior of the stringification process, or an array of String and Number objects that serve as a whitelist for selecting/filtering the properties of the value object to be included in the JSON string. If this value is null or not provided, all properties of the object are included in the resulting JSON string + * @param {string|number} [space] A String or Number object that's used to insert white space into the output JSON string for readability purposes. + * @param {object} [options] Optional settings. + * @param {boolean} [options.relaxed=true] Enabled Extended JSON's `relaxed` mode + * @returns {string} + * + * @example + * const { EJSON, Int32 } = require('bson'); + * const doc = { int32: new Int32(10) }; + * + * // prints '{"int32":{"$numberInt":"10"}}' + * console.log(EJSON.stringify(doc, { relaxed: false })); + * + * // prints '{"int32":10}' + * console.log(EJSON.stringify(doc)); + */ + export function stringify( + value: {}, + options?: {relaxed?: boolean;} + ): string; + + /** + * Converts a BSON document to an Extended JSON string, optionally replacing values if a replacer + * function is specified or optionally including only the specified properties if a replacer array + * is specified. + * + * @memberof EJSON + * @param {object} value The value to convert to extended JSON + * @param {function|array} [replacer] A function that alters the behavior of the stringification process, or an array of String and Number objects that serve as a whitelist for selecting/filtering the properties of the value object to be included in the JSON string. If this value is null or not provided, all properties of the object are included in the resulting JSON string + * @param {string|number} [space] A String or Number object that's used to insert white space into the output JSON string for readability purposes. + * @param {object} [options] Optional settings. + * @param {boolean} [options.relaxed=true] Enabled Extended JSON's `relaxed` mode + * @returns {string} + * + * @example + * const { EJSON, Int32 } = require('bson'); + * const doc = { int32: new Int32(10) }; + * + * // prints '{"int32":{"$numberInt":"10"}}' + * console.log(EJSON.stringify(doc, { relaxed: false })); + * + * // prints '{"int32":10}' + * console.log(EJSON.stringify(doc)); + */ + + export function stringify( + value: {}, + replacer: ((key: string, value: any) => any) | Array | null | undefined, + options?: {relaxed?: boolean;} + ): string; + /** + * Converts a BSON document to an Extended JSON string, optionally replacing values if a replacer + * function is specified or optionally including only the specified properties if a replacer array + * is specified. + * + * @memberof EJSON + * @param {object} value The value to convert to extended JSON + * @param {function|array} [replacer] A function that alters the behavior of the stringification process, or an array of String and Number objects that serve as a whitelist for selecting/filtering the properties of the value object to be included in the JSON string. If this value is null or not provided, all properties of the object are included in the resulting JSON string + * @param {string|number} [space] A String or Number object that's used to insert white space into the output JSON string for readability purposes. + * @param {object} [options] Optional settings. + * @param {boolean} [options.relaxed=true] Enabled Extended JSON's `relaxed` mode + * @returns {string} + * + * @example + * const { EJSON, Int32 } = require('bson'); + * const doc = { int32: new Int32(10) }; + * + * // prints '{"int32":{"$numberInt":"10"}}' + * console.log(EJSON.stringify(doc, { relaxed: false })); + * + * // prints '{"int32":10}' + * console.log(EJSON.stringify(doc)); + */ + export function stringify( + value: {}, + replacer: ((key: string, value: any) => any) | Array | null | undefined, + indents?: string | number, + options?: {relaxed?: boolean;} + ): string; +} diff --git a/justdanceonline-main/node_modules/@types/bson/package.json b/justdanceonline-main/node_modules/@types/bson/package.json new file mode 100644 index 0000000000000000000000000000000000000000..6e8fb5f0cb4f987a557fad6b531da24dee749583 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/bson/package.json @@ -0,0 +1,41 @@ +{ + "name": "@types/bson", + "version": "4.0.3", + "description": "TypeScript definitions for bson", + "license": "MIT", + "contributors": [ + { + "name": "Hiroki Horiuchi", + "url": "https://github.com/horiuchi", + "githubUsername": "horiuchi" + }, + { + "name": "Federico Caselli", + "url": "https://github.com/CaselIT", + "githubUsername": "CaselIT" + }, + { + "name": "Justin Grant", + "url": "https://github.com/justingrant", + "githubUsername": "justingrant" + }, + { + "name": "Mikael Lirbank", + "url": "https://github.com/lirbank", + "githubUsername": "lirbank" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/bson" + }, + "scripts": {}, + "dependencies": { + "@types/node": "*" + }, + "typesPublisherContentHash": "de339c6ae3194d7c34d771d4580048f1007707bafc646731b539c3a79638ebe9", + "typeScriptVersion": "3.2" +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/@types/mongodb/LICENSE b/justdanceonline-main/node_modules/@types/mongodb/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9e841e7a26e4eb057b24511e7b92d42b257a80e5 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/mongodb/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/justdanceonline-main/node_modules/@types/mongodb/README.md b/justdanceonline-main/node_modules/@types/mongodb/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7c251f185121308a04300b56384ab11b556f01f6 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/mongodb/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/mongodb` + +# Summary +This package contains type definitions for MongoDB (https://github.com/mongodb/node-mongodb-native). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mongodb. + +### Additional Details + * Last updated: Mon, 05 Apr 2021 10:31:26 GMT + * Dependencies: [@types/bson](https://npmjs.com/package/@types/bson), [@types/node](https://npmjs.com/package/@types/node) + * Global values: none + +# Credits +These definitions were written by [Federico Caselli](https://github.com/CaselIT), [Alan Marcell](https://github.com/alanmarcell), [Gaurav Lahoti](https://github.com/dante-101), [Mariano Cortesi](https://github.com/mcortesi), [Enrico Picci](https://github.com/EnricoPicci), [Alexander Christie](https://github.com/AJCStriker), [Julien Chaumond](https://github.com/julien-c), [Dan Aprahamian](https://github.com/daprahamian), [Denys Bushulyak](https://github.com/denys-bushulyak), [Bastien Arata](https://github.com/BastienAr), [Wan Bachtiar](https://github.com/sindbach), [Geraldine Lemeur](https://github.com/geraldinelemeur), [Dominik Heigl](https://github.com/various89), [Angela-1](https://github.com/angela-1), [Hector Ribes](https://github.com/hector7), [Florian Richter](https://github.com/floric), [Erik Christensen](https://github.com/erikc5000), [Nick Zahn](https://github.com/Manc), [Jarom Loveridge](https://github.com/jloveridge), [Luis Pais](https://github.com/ranguna), [Hossein Saniei](https://github.com/HosseinAgha), [Alberto Silva](https://github.com/albertossilva), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Linus Unnebäck](https://github.com/LinusU), [Richard Bateman](https://github.com/taxilian), [Igor Strebezhev](https://github.com/xamgore), [Valentin Agachi](https://github.com/avaly), [HitkoDev](https://github.com/HitkoDev), [TJT](https://github.com/Celend), [Julien TASSIN](https://github.com/jtassin), [Anna Henningsen](https://github.com/addaleax), [Emmanuel Gautier](https://github.com/emmanuelgautier), and [Wyatt Johnson](https://github.com/wyattjoh). diff --git a/justdanceonline-main/node_modules/@types/mongodb/index.d.ts b/justdanceonline-main/node_modules/@types/mongodb/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..dc0fe11ebdd303a92df4fca910e5b1d82fcfb194 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/mongodb/index.d.ts @@ -0,0 +1,3427 @@ +// Type definitions for MongoDB 3.6 +// Project: https://github.com/mongodb/node-mongodb-native +// https://github.com/mongodb/node-mongodb-native/tree/3.1 +// Definitions by: Federico Caselli +// Alan Marcell +// Gaurav Lahoti +// Mariano Cortesi +// Enrico Picci +// Alexander Christie +// Julien Chaumond +// Dan Aprahamian +// Denys Bushulyak +// Bastien Arata +// Wan Bachtiar +// Geraldine Lemeur +// Dominik Heigl +// Angela-1 +// Hector Ribes +// Florian Richter +// Erik Christensen +// Nick Zahn +// Jarom Loveridge +// Luis Pais +// Hossein Saniei +// Alberto Silva +// Piotr Błażejewicz +// Linus Unnebäck +// Richard Bateman +// Igor Strebezhev +// Valentin Agachi +// HitkoDev +// TJT +// Julien TASSIN +// Anna Henningsen +// Emmanuel Gautier +// Wyatt Johnson +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// Minimum TypeScript Version: 3.2 + +// Documentation: https://mongodb.github.io/node-mongodb-native/3.6/api/ + +/// +/// + +import { Binary, Decimal128, Double, Int32, Long, ObjectId, Timestamp } from 'bson'; +import { EventEmitter } from 'events'; +import { Readable, Writable } from 'stream'; +import { checkServerIdentity } from 'tls'; + +type FlattenIfArray = T extends ReadonlyArray ? R : T; +export type WithoutProjection = T & { fields?: undefined; projection?: undefined }; + +export function connect(uri: string, options?: MongoClientOptions): Promise; +export function connect(uri: string, callback: MongoCallback): void; +export function connect(uri: string, options: MongoClientOptions, callback: MongoCallback): void; + +export { Binary, DBRef, Decimal128, Double, Int32, Long, MaxKey, MinKey, ObjectID, ObjectId, Timestamp } from 'bson'; + +type NumericTypes = number | Decimal128 | Double | Int32 | Long; + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html */ +export class MongoClient extends EventEmitter { + constructor(uri: string, options?: MongoClientOptions); + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#.connect */ + static connect(uri: string, callback: MongoCallback): void; + static connect(uri: string, options?: MongoClientOptions): Promise; + static connect(uri: string, options: MongoClientOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#connect */ + connect(): Promise; + connect(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#close */ + close(callback: MongoCallback): void; + close(force?: boolean): Promise; + close(force: boolean, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#db */ + db(dbName?: string, options?: MongoClientCommonOption): Db; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#isConnected */ + isConnected(options?: MongoClientCommonOption): boolean; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#logout */ + logout(callback: MongoCallback): void; + logout(options?: { dbName?: string }): Promise; + logout(options: { dbName?: string }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#startSession */ + startSession(options?: SessionOptions): ClientSession; + /** @see https://mongodb.github.io/node-mongodb-native/3.3/api/MongoClient.html#watch */ + watch( + pipeline?: object[], + options?: ChangeStreamOptions & { session?: ClientSession }, + ): ChangeStream; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#withSession */ + withSession(operation: (session: ClientSession) => Promise): Promise; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#withSession */ + withSession(options: SessionOptions, operation: (session: ClientSession) => Promise): Promise; + + readPreference: ReadPreference; + writeConcern: WriteConcern; +} + +export type ClientSessionId = unknown; + +/** + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/ClientSession.html + */ +export interface ClientSession extends EventEmitter { + /** The server id associated with this session */ + id: ClientSessionId; + + /** + * Aborts the currently active transaction in this session. + */ + abortTransaction(): Promise; + /** + * Aborts the currently active transaction in this session. + * @param callback for completion of this operation + */ + abortTransaction(callback?: MongoCallback): void; + + /** + * Advances the operationTime for a {@link ClientSession}. + */ + advanceOperationTime(operationTime: Timestamp): void; + + /** + * Commits the currently active transaction in this session. + */ + commitTransaction(): Promise; + /** + * Commits the currently active transaction in this session. + * @param callback - for completion of this operation + */ + commitTransaction(callback: MongoCallback): void; + + /** + * Ends this session on the server + * @param callback - for completion of this operation + */ + endSession(callback?: MongoCallback): void; + /** + * Ends this session on the server + * @param options - settings. Currently reserved for future use + * @param callback - for completion of this operation + */ + endSession(options: unknown, callback: MongoCallback): void; + /** + * Ends this session on the server + * @param options - settings. Currently reserved for future use + */ + endSession(options?: unknown): Promise; + + /** + * Used to determine if this session equals another + * + * @param session - a class representing a client session on the server + * @returns `true` if the sessions are equal + */ + equals(session: ClientSession): boolean; + + /** Increment the transaction number on the internal `ServerSession` */ + incrementTransactionNumber(): void; + + /** + * @returns whether this session is currently in a transaction or not + */ + inTransaction(): boolean; + + /** + * Starts a new transaction with the given options. + */ + startTransaction(options?: TransactionOptions): void; + + /** + * Runs a provided lambda within a transaction, retrying either the commit operation + * or entire transaction as needed (and when the error permits) to better ensure that + * the transaction can complete successfully. + * + * IMPORTANT: This method requires the user to return a {@link Promise}, all lambdas that do not + * return a {@link Promise} will result in undefined behavior. + * + * @param fn + * @param options - settings for the transaction + */ + withTransaction(fn: WithTransactionCallback, options?: TransactionOptions): Promise; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/global.html#ReadConcern */ +type ReadConcernLevel = 'local' | 'available' | 'majority' | 'linearizable' | 'snapshot'; + +/** + * The MongoDB ReadConcern, which allows for control of the consistency and isolation properties + * of the data read from replica sets and replica set shards. + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/global.html#ReadConcern + */ +export interface ReadConcern { + level: ReadConcernLevel; +} + +/** + * A MongoDB WriteConcern, which describes the level of acknowledgement + * requested from MongoDB for write operations. + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/global.html#WriteConcern + */ +interface WriteConcern { + /** + * requests acknowledgement that the write operation has + * propagated to a specified number of mongod hosts + * @default 1 + */ + w?: number | 'majority' | string; + /** + * requests acknowledgement from MongoDB that the write operation has + * been written to the journal + * @default false + */ + j?: boolean; + /** + * a time limit, in milliseconds, for the write concern + */ + wtimeout?: number; +} + +/** + * Options to pass when creating a Client Session + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/global.html#SessionOptions + */ +export interface SessionOptions { + /** + * Whether causal consistency should be enabled on this session + * @default true + */ + causalConsistency?: boolean; + /** + * The default TransactionOptions to use for transactions started on this session. + */ + defaultTransactionOptions?: TransactionOptions; +} + +/** + * Configuration options for a transaction. + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/global.html#TransactionOptions + */ +export interface TransactionOptions { + readConcern?: ReadConcern; + writeConcern?: WriteConcern; + readPreference?: ReadPreferenceOrMode; +} + +export interface MongoClientCommonOption { + /** Do not make the db an event listener to the original connection. */ + noListener?: boolean; + /** Control if you want to return a cached instance or have a new one created */ + returnNonCachedInstance?: boolean; +} + +export interface MongoCallback { + (error: MongoError, result: T): void; +} + +/** + * A user provided function to be run within a transaction + * + * @param session - the parent session of the transaction running the operation. + * This should be passed into each operation within the lambda. + * @returns - the resulting {@link Promise} of operations run within this transaction + */ +export type WithTransactionCallback = (session: ClientSession) => Promise; + +/** + * Creates a new MongoError + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoError.html + */ +export class MongoError extends Error { + constructor(message: string | Error | object); + /** + * @deprecated Use `new MongoError()` instead. + */ + static create(options: string | Error | object): MongoError; + /** + * Checks the error to see if it has an error label + * @return `true` if the error has the provided error label + */ + hasErrorLabel(label: string): boolean; + readonly errorLabels: string[]; + code?: number | string; + /** + * While not documented, the `errmsg` prop is AFAIK the only way to find out + * which unique index caused a duplicate key error. When you have multiple + * unique indexes on a collection, knowing which index caused a duplicate + * key error enables you to send better (more precise) error messages to the + * client/user (eg. "Email address must be unique" instead of "Both email + * address and username must be unique") – which caters for a better (app) + * user experience. + * + * Details: + * {@link https://github.com/Automattic/mongoose/issues/2129 How to get index name on duplicate document 11000 error?} + * (issue for mongoose, but the same applies for the native mongodb driver). + * + * Note that in mongoose (the link above) the prop in question is called + * 'message' while in mongodb it is called 'errmsg'. This can be seen in + * multiple places in the source code, for example + * {@link https://github.com/mongodb/node-mongodb-native/blob/a12aa15ac3eaae3ad5c4166ea1423aec4560f155/test/functional/find_tests.js#L1111 here}. + */ + errmsg?: string; + name: string; +} + +/** + * An error indicating an issue with the network, including TCP errors and timeouts + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoNetworkError.html + */ +export class MongoNetworkError extends MongoError {} + +/** + * An error used when attempting to parse a value (like a connection string) + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoParseError.html + */ +export class MongoParseError extends MongoError {} + +/** + * An error signifying a client-side timeout event + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoTimeoutError.html + */ +export class MongoTimeoutError extends MongoError { + /** + * An optional reason context for the timeout, generally an error + * saved during flow of monitoring and selecting servers + */ + reason?: string | object; +} + +/** + * An error signifying a client-side server selection error + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoServerSelectionError.html + */ +export class MongoServerSelectionError extends MongoTimeoutError {} + +/** + * An error thrown when the server reports a writeConcernError + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoWriteConcernError.html + */ +export class MongoWriteConcernError extends MongoError { + /** + * The result document (provided if ok: 1) + */ + result?: object; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoClient.html#.connect */ +export interface MongoClientOptions + extends DbCreateOptions, + ServerOptions, + MongosOptions, + ReplSetOptions, + SocketOptions, + SSLOptions, + TLSOptions, + HighAvailabilityOptions, + WriteConcern, + UnifiedTopologyOptions { + /** + * The logging level (error/warn/info/debug) + */ + loggerLevel?: string; + + /** + * Custom logger object + */ + logger?: object | log; + + /** + * Validate MongoClient passed in options for correctness. + * @default false + */ + validateOptions?: object | boolean; + + /** + * The name of the application that created this MongoClient instance. + */ + appname?: string; + + /** + * Authentication credentials + */ + auth?: { + /** + * The username for auth + */ + user: string; + /** + * The password for auth + */ + password: string; + }; + + /** + * Determines whether or not to use the new url parser. Enables the new, spec-compliant + * url parser shipped in the core driver. This url parser fixes a number of problems with + * the original parser, and aims to outright replace that parser in the near future. + * @default true + */ + useNewUrlParser?: boolean; + + /** + * Number of retries for a tailable cursor + * @default 5 + */ + numberOfRetries?: number; + + /** + * An authentication mechanism to use for connection authentication, + * see the {@link https://docs.mongodb.com/manual/reference/connection-string/#urioption.authMechanism authMechanism} + * reference for supported options. + */ + authMechanism?: + | 'DEFAULT' + | 'GSSAPI' + | 'PLAIN' + | 'MONGODB-X509' + | 'MONGODB-CR' + | 'MONGODB-AWS' + | 'SCRAM-SHA-1' + | 'SCRAM-SHA-256' + | string; + + /** Type of compression to use */ + compression?: { + /** The selected compressors in preference order */ + compressors?: Array<'snappy' | 'zlib'>; + }; + + /** + * Enable directConnection + * @default false + */ + directConnection?: boolean; + + /* + * Optionally enable client side auto encryption. + */ + autoEncryption?: AutoEncryptionOptions; +} + +/** + * Extra options related to the mongocryptd process. + * See {@link https://mongodb.github.io/node-mongodb-native/3.6/api/AutoEncrypter.html#~AutoEncryptionExtraOptions documentation} + * for more info. + */ +export interface AutoEncryptionExtraOptions { + /** + * A local process the driver communicates with to determine how to encrypt + * values in a command. Defaults to "mongodb:///var/mongocryptd.sock" if + * domain sockets are available or "mongodb://localhost:27020" otherwise. + */ + mongocryptdURI?: string; + + /** + * If true, autoEncryption will not attempt to spawn a mongocryptd before + * connecting. + */ + mongocryptdBypassSpawn?: boolean; + + /** + * The path to the mongocryptd executable on the system. + */ + mongocryptdSpawnPath?: string; + + /** + * Command line arguments to use when auto-spawning a mongocryptd. + */ + mongocryptdSpawnArgs?: string[]; +} + +/** + * Configuration options that are used by specific KMS providers during key + * generation, encryption, and decryption. + * See {@link http://mongodb.github.io/node-mongodb-native/3.6/api/global.html#KMSProviders documentation} + * for more info. + */ +export interface KMSProviders { + /** + * Configuration options for using 'aws' as your KMS provider. + */ + aws?: { + /** + * The access key used for the AWS KMS provider. + */ + accessKeyId?: string; + + /** + * The secret access key used for the AWS KMS provider. + */ + secretAccessKey?: string; + }; + + /** + * Configuration options for using `gcp` as your KMS provider. + */ + gcp?: { + /** + * The service account email to authenticate. + */ + email?: string; + + /** + * A PKCS#8 encrypted key. This can either be a base64 string or a + * binary representation. + */ + privateKey?: string | Buffer; + + /** + * If present, a host with optional port. E.g. "example.com" or + * "example.com:443". Defaults to "oauth2.googleapis.com". + */ + endpoint?: string; + }; + + /** + * Configuration options for using 'local' as your KMS provider. + */ + local?: { + /** + * The master key used to encrypt/decrypt data keys. A 96-byte long + * Buffer. + */ + key?: Buffer; + }; +} + +/** + * Configuration options for a automatic client encryption. + * See {@link https://mongodb.github.io/node-mongodb-native/3.6/api/AutoEncrypter.html#~AutoEncryptionOptions documentation} + * for more info. + */ +export interface AutoEncryptionOptions { + /** + * A MongoClient used to fetch keys from a key vault + */ + keyVaultClient?: MongoClient; + + /** + * The namespace where keys are stored in the key vault. + */ + keyVaultNamespace?: string; + + /** + * Configuration options that are used by specific KMS providers during key + * generation, encryption, and decryption. + */ + kmsProviders?: KMSProviders; + + /** + * A map of namespaces to a local JSON schema for encryption. + */ + schemaMap?: object; + + /** + * Allows the user to bypass auto encryption, maintaining implicit + * decryption. + */ + bypassAutoEncryption?: boolean; + + /** + * Extra options related to the mongocryptd process. + */ + extraOptions?: AutoEncryptionExtraOptions; +} + +export interface SSLOptions { + /** + * Passed directly through to tls.createSecureContext. + * See {@link https://nodejs.org/dist/latest/docs/api/tls.html#tls_tls_createsecurecontext_options documentation} + * for more info. + */ + ciphers?: string; + /** + * Passed directly through to tls.createSecureContext. + * See {@link https://nodejs.org/dist/latest/docs/api/tls.html#tls_tls_createsecurecontext_options documentation} + * for more info. + */ + ecdhCurve?: string; + /** + * Number of connections for each server instance; set to 5 as default for legacy reasons. + * @default 5 + */ + poolSize?: number; + /** + * If present, the connection pool will be initialized with minSize connections, and will never dip below minSize connections + */ + minSize?: number; + /** + * Use ssl connection (needs to have a mongod server with ssl support) + */ + ssl?: boolean; + /** + * Validate mongod server certificate against ca (mongod server >=2.4 with ssl support required) + * @default true + */ + sslValidate?: boolean; + /** + * Server identity checking during SSL + * @default true + */ + checkServerIdentity?: boolean | typeof checkServerIdentity; + /** + * Array of valid certificates either as Buffers or Strings + */ + sslCA?: ReadonlyArray; + /** + * SSL Certificate revocation list binary buffer + */ + sslCRL?: ReadonlyArray; + /** + * SSL Certificate binary buffer + */ + sslCert?: Buffer | string; + /** + * SSL Key file binary buffer + */ + sslKey?: Buffer | string; + /** + * SSL Certificate pass phrase + */ + sslPass?: Buffer | string; + /** + * String containing the server name requested via TLS SNI. + */ + servername?: string; +} + +export interface TLSOptions { + /** + * Enable TLS connections + * @default false + */ + tls?: boolean; + /** + * Relax TLS constraints, disabling validation + * @default false + */ + tlsInsecure?: boolean; + /** + * Path to file with either a single or bundle of certificate authorities + * to be considered trusted when making a TLS connection + */ + tlsCAFile?: string; + /** + * Path to the client certificate file or the client private key file; + * in the case that they both are needed, the files should be concatenated + */ + tlsCertificateKeyFile?: string; + /** + * The password to decrypt the client private key to be used for TLS connections + */ + tlsCertificateKeyFilePassword?: string; + /** + * Specifies whether or not the driver should error when the server’s TLS certificate is invalid + */ + tlsAllowInvalidCertificates?: boolean; + /** + * Specifies whether or not the driver should error when there is a mismatch between the server’s hostname + * and the hostname specified by the TLS certificate + */ + tlsAllowInvalidHostnames?: boolean; +} + +export interface HighAvailabilityOptions { + /** + * Turn on high availability monitoring. + * @default true + */ + ha?: boolean; + /** + * The High availability period for replicaset inquiry + * @default 10000 + */ + haInterval?: number; + /** + * @default false + */ + domainsEnabled?: boolean; + + /** + * The {@link ReadPreference} mode as listed + * {@link https://mongodb.github.io/node-mongodb-native/3.6/api/MongoClient.html here} + */ + readPreference?: ReadPreferenceOrMode; + /** + * An object representing read preference tags + * @see https://docs.mongodb.com/manual/core/read-preference-tags/ + */ + readPreferenceTags?: ReadPreferenceTags; +} + +export type ReadPreferenceTags = ReadonlyArray>; +export type ReadPreferenceMode = 'primary' | 'primaryPreferred' | 'secondary' | 'secondaryPreferred' | 'nearest'; +export type ReadPreferenceOrMode = ReadPreference | ReadPreferenceMode; +export type ReadPreferenceOptions = { + /** Server mode in which the same query is dispatched in parallel to multiple replica set members. */ + hedge?: { + /** Explicitly enable or disable hedged reads. */ + enabled?: boolean; + }; + /** + * Max secondary read staleness in seconds, Minimum value is 90 seconds. + */ + maxStalenessSeconds?: number; +}; + +/** + * The **ReadPreference** class represents a MongoDB ReadPreference and is used to construct connections. + * @see https://docs.mongodb.com/manual/core/read-preference/ + */ +export class ReadPreference { + constructor(mode: ReadPreferenceMode, tags: object, options?: ReadPreferenceOptions); + mode: ReadPreferenceMode; + tags: ReadPreferenceTags; + static PRIMARY: 'primary'; + static PRIMARY_PREFERRED: 'primaryPreferred'; + static SECONDARY: 'secondary'; + static SECONDARY_PREFERRED: 'secondaryPreferred'; + static NEAREST: 'nearest'; + isValid(mode: ReadPreferenceMode | string): boolean; + static isValid(mode: string): boolean; + /** + * Indicates that this readPreference needs the "slaveOk" bit when sent over the wire + * @see https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/#op-query + */ + slaveOk(): boolean; + /** + * Are the two read preference equal + * @param readPreference - the read preference with which to check equality + * @return `true` if the two {@link ReadPreference}s are equivalent + */ + equals(readPreference: ReadPreference): boolean; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Db.html */ +export interface DbCreateOptions extends CommonOptions { + /** + * If the database authentication is dependent on another databaseName. + */ + authSource?: string; + /** + * Force server to assign `_id` fields instead of driver. + * @default false + */ + forceServerObjectId?: boolean; + /** + * Use c++ bson parser. + * @default false + */ + native_parser?: boolean; + /** + * Serialize functions on any object. + * @default false + */ + serializeFunctions?: boolean; + /** + * Specify if the BSON serializer should ignore undefined fields. + * @default false + */ + ignoreUndefined?: boolean; + /** + * Return document results as raw BSON buffers. + * @default false + */ + raw?: boolean; + /** + * Promotes Long values to number if they fit inside the 53 bits resolution. + * @default true + */ + promoteLongs?: boolean; + /** + * Promotes Binary BSON values to native Node Buffers + * @default false + */ + promoteBuffers?: boolean; + /** + * Promotes BSON values to native types where possible, set to false to only receive wrapper types. + * @default true + */ + promoteValues?: boolean; + /** + * The preferred read preference. Use {@link ReadPreference} class. + */ + readPreference?: ReadPreferenceOrMode; + /** + * A primary key factory object for generation of custom `_id` keys. + */ + pkFactory?: object; + /** + * A Promise library class the application wishes to use such as Bluebird, must be ES6 compatible + */ + promiseLibrary?: PromiseConstructor; + /** + * @see https://docs.mongodb.com/manual/reference/read-concern/#read-concern + * @since MongoDB 3.2 + */ + readConcern?: ReadConcern | string; + /** + * Sets a cap on how many operations the driver will buffer up before giving up on getting a + * working connection, default is -1 which is unlimited. + */ + bufferMaxEntries?: number; +} + +export interface UnifiedTopologyOptions { + /** + * Enables the new unified topology layer + */ + useUnifiedTopology?: boolean; + + /** + * **Only applies to the unified topology** + * The size of the latency window for selecting among multiple suitable servers + * @default 15 + */ + localThresholdMS?: number; + + /** + * With `useUnifiedTopology`, the MongoDB driver will try to find a server to send any given operation to + * and keep retrying for `serverSelectionTimeoutMS` milliseconds. + * @default 30000 + */ + serverSelectionTimeoutMS?: number; + + /** + * **Only applies to the unified topology** + * The frequency with which topology updates are scheduled + * @default 10000 + */ + heartbeatFrequencyMS?: number; + + /** + * **Only applies to the unified topology** + * The maximum number of connections that may be associated with a pool at a given time. + * This includes in use and available connections + * @default 10 + */ + maxPoolSize?: number; + + /** + * **Only applies to the unified topology** + * The minimum number of connections that MUST exist at any moment in a single connection pool. + * @default 0 + */ + minPoolSize?: number; + + /** + * **Only applies to the unified topology** + * The maximum amount of time a connection should remain idle in the connection pool before being marked idle. + * @default Infinity + */ + maxIdleTimeMS?: number; + + /** + * **Only applies to the unified topology** + * The maximum amount of time operation execution should wait for a connection to become available. + * The default is 0 which means there is no limit. + * @default 0 + */ + waitQueueTimeoutMS?: number; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Server.html */ +export interface SocketOptions { + /** + * Reconnect on error. + * @default true + */ + autoReconnect?: boolean; + /** + * TCP Socket NoDelay option. + * @default true + */ + noDelay?: boolean; + /** + * TCP KeepAlive enabled on the socket. + * @default true + */ + keepAlive?: boolean; + /** + * TCP KeepAlive initial delay before sending first keep-alive packet when idle. + * @default 30000 + */ + keepAliveInitialDelay?: number; + /** + * TCP Connection timeout setting. + * @default 10000 + */ + connectTimeoutMS?: number; + /** + * Version of IP stack. Can be 4, 6 or null. + * @default null + * + * If null, will attempt to connect with IPv6, and will fall back to IPv4 on failure + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/MongoClient.html + */ + family?: 4 | 6 | null; + /** + * TCP Socket timeout setting. + * @default 360000 + */ + socketTimeoutMS?: number; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Server.html */ +export interface ServerOptions extends SSLOptions { + /** + * If you're connected to a single server or mongos proxy (as opposed to a replica set), + * the MongoDB driver will try to reconnect every reconnectInterval milliseconds for reconnectTries + * times, and give up afterward. When the driver gives up, the mongoose connection emits a + * reconnectFailed event. + * @default 30 + */ + reconnectTries?: number; + /** + * Will wait # milliseconds between retries + * @default 1000 + */ + reconnectInterval?: number; + /** + * @default true + */ + monitoring?: boolean; + + /** + * Enable command monitoring for this client + * @default false + */ + monitorCommands?: boolean; + + /** + * Socket Options + */ + socketOptions?: SocketOptions; + + /** + * The High availability period for replicaset inquiry + * @default 10000 + */ + haInterval?: number; + /** + * @default false + */ + domainsEnabled?: boolean; + + /** + * Specify a file sync write concern + * @default false + */ + fsync?: boolean; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Mongos.html */ +export interface MongosOptions extends SSLOptions, HighAvailabilityOptions { + /** + * Cutoff latency point in MS for MongoS proxy selection + * @default 15 + */ + acceptableLatencyMS?: number; + + /** + * Socket Options + */ + socketOptions?: SocketOptions; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/ReplSet.html */ +export interface ReplSetOptions extends SSLOptions, HighAvailabilityOptions { + /** + * The max staleness to secondary reads (values under 10 seconds cannot be guaranteed); + */ + maxStalenessSeconds?: number; + /** + * The name of the replicaset to connect to. + */ + replicaSet?: string; + /** + * Range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms) + * @default 15 + */ + secondaryAcceptableLatencyMS?: number; + connectWithNoPrimary?: boolean; + socketOptions?: SocketOptions; +} + +export type ProfilingLevel = 'off' | 'slow_only' | 'all'; + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html */ +export class Db extends EventEmitter { + constructor(databaseName: string, serverConfig: Server | ReplSet | Mongos, options?: DbCreateOptions); + + serverConfig: Server | ReplSet | Mongos; + bufferMaxEntries: number; + databaseName: string; + options: any; + native_parser: boolean; + slaveOk: boolean; + writeConcern: WriteConcern; + + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#addUser */ + addUser(username: string, password: string, callback: MongoCallback): void; + addUser(username: string, password: string, options?: DbAddUserOptions): Promise; + addUser(username: string, password: string, options: DbAddUserOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#admin */ + admin(): Admin; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#collection */ + collection( + name: string, + callback?: MongoCallback>, + ): Collection; + collection( + name: string, + options: DbCollectionOptions, + callback?: MongoCallback>, + ): Collection; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#collections */ + collections(): Promise>>; + collections(callback: MongoCallback>>): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#command */ + command(command: object, callback: MongoCallback): void; + command( + command: object, + options?: { readPreference?: ReadPreferenceOrMode; session?: ClientSession }, + ): Promise; + command( + command: object, + options: { readPreference: ReadPreferenceOrMode; session?: ClientSession }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#createCollection */ + createCollection(name: string, callback: MongoCallback>): void; + createCollection( + name: string, + options?: CollectionCreateOptions, + ): Promise>; + createCollection( + name: string, + options: CollectionCreateOptions, + callback: MongoCallback>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#createIndex */ + createIndex(name: string, fieldOrSpec: string | object, callback: MongoCallback): void; + createIndex(name: string, fieldOrSpec: string | object, options?: IndexOptions): Promise; + createIndex(name: string, fieldOrSpec: string | object, options: IndexOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#dropCollection */ + dropCollection(name: string): Promise; + dropCollection(name: string, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#dropDatabase */ + dropDatabase(): Promise; + dropDatabase(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#executeDbAdminCommand */ + executeDbAdminCommand(command: object, callback: MongoCallback): void; + executeDbAdminCommand( + command: object, + options?: { readPreference?: ReadPreferenceOrMode; session?: ClientSession }, + ): Promise; + executeDbAdminCommand( + command: object, + options: { readPreference?: ReadPreferenceOrMode; session?: ClientSession }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#indexInformation */ + indexInformation(name: string, callback: MongoCallback): void; + indexInformation(name: string, options?: { full?: boolean; readPreference?: ReadPreferenceOrMode }): Promise; + indexInformation( + name: string, + options: { full?: boolean; readPreference?: ReadPreferenceOrMode }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#listCollections */ + listCollections( + filter?: object, + options?: { + nameOnly?: boolean; + batchSize?: number; + readPreference?: ReadPreferenceOrMode; + session?: ClientSession; + }, + ): CommandCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#profilingInfo */ + /** @deprecated Query the system.profile collection directly. */ + profilingInfo(callback: MongoCallback): void; + profilingInfo(options?: { session?: ClientSession }): Promise; + profilingInfo(options: { session?: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#profilingLevel */ + profilingLevel(callback: MongoCallback): void; + profilingLevel(options?: { session?: ClientSession }): Promise; + profilingLevel(options: { session?: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#removeUser */ + removeUser(username: string, callback: MongoCallback): void; + removeUser(username: string, options?: CommonOptions): Promise; + removeUser(username: string, options: CommonOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#renameCollection */ + renameCollection( + fromCollection: string, + toCollection: string, + callback: MongoCallback>, + ): void; + renameCollection( + fromCollection: string, + toCollection: string, + options?: { dropTarget?: boolean }, + ): Promise>; + renameCollection( + fromCollection: string, + toCollection: string, + options: { dropTarget?: boolean }, + callback: MongoCallback>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#setProfilingLevel */ + setProfilingLevel(level: ProfilingLevel, callback: MongoCallback): void; + setProfilingLevel(level: ProfilingLevel, options?: { session?: ClientSession }): Promise; + setProfilingLevel( + level: ProfilingLevel, + options: { session?: ClientSession }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#stats */ + stats(callback: MongoCallback): void; + stats(options?: { scale?: number }): Promise; + stats(options: { scale?: number }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.3/api/Db.html#watch */ + watch( + pipeline?: object[], + options?: ChangeStreamOptions & { session?: ClientSession }, + ): ChangeStream; +} + +export interface CommonOptions extends WriteConcern { + session?: ClientSession; +} + +/** + * @deprecated + * @see https://mongodb.github.io/node-mongodb-native/3.1/api/Server.html + */ +export class Server extends EventEmitter { + constructor(host: string, port: number, options?: ServerOptions); + + connections(): any[]; +} + +/** + * @deprecated + * @see https://mongodb.github.io/node-mongodb-native/3.1/api/ReplSet.html + */ +export class ReplSet extends EventEmitter { + constructor(servers: Server[], options?: ReplSetOptions); + + connections(): any[]; +} + +/** + * @deprecated + * @see https://mongodb.github.io/node-mongodb-native/3.1/api/Mongos.html + */ +export class Mongos extends EventEmitter { + constructor(servers: Server[], options?: MongosOptions); + + connections(): any[]; +} + +/** + * @deprecated + * @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#addUser + */ +export interface DbAddUserOptions extends CommonOptions { + customData?: object; + roles?: object[]; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#createCollection */ +export interface CollectionCreateOptions extends CommonOptions { + raw?: boolean; + pkFactory?: object; + readPreference?: ReadPreferenceOrMode; + serializeFunctions?: boolean; + /** + * @deprecated + * @see https://jira.mongodb.org/browse/NODE-2746 + */ + strict?: boolean; + capped?: boolean; + /** + * @deprecated + */ + autoIndexId?: boolean; + size?: number; + max?: number; + flags?: number; + storageEngine?: object; + validator?: object; + validationLevel?: 'off' | 'strict' | 'moderate'; + validationAction?: 'error' | 'warn'; + indexOptionDefaults?: object; + viewOn?: string; + pipeline?: any[]; + collation?: CollationDocument; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#collection */ +export interface DbCollectionOptions extends CommonOptions { + raw?: boolean; + pkFactory?: object; + readPreference?: ReadPreferenceOrMode; + serializeFunctions?: boolean; + strict?: boolean; + readConcern?: ReadConcern; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Db.html#createIndex */ +export interface IndexOptions extends CommonOptions { + /** + * Creates an unique index. + */ + unique?: boolean; + /** + * Creates a sparse index. + */ + sparse?: boolean; + /** + * Creates the index in the background, yielding whenever possible. + */ + background?: boolean; + /** + * A unique index cannot be created on a key that has pre-existing duplicate values. + * + * If you would like to create the index anyway, keeping the first document the database indexes and + * deleting all subsequent documents that have duplicate value + */ + dropDups?: boolean; + /** + * For geo spatial indexes set the lower bound for the co-ordinates. + */ + min?: number; + /** + * For geo spatial indexes set the high bound for the co-ordinates. + */ + max?: number; + /** + * Specify the format version of the indexes. + */ + v?: number; + /** + * Allows you to expire data on indexes applied to a data (MongoDB 2.2 or higher) + */ + expireAfterSeconds?: number; + /** + * Override the auto generated index name (useful if the resulting name is larger than 128 bytes) + */ + name?: string; + /** + * Creates a partial index based on the given filter object (MongoDB 3.2 or higher) + */ + partialFilterExpression?: any; + collation?: CollationDocument; + default_language?: string; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html */ +export interface Admin { + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#addUser */ + addUser(username: string, password: string, callback: MongoCallback): void; + addUser(username: string, password: string, options?: AddUserOptions): Promise; + addUser(username: string, password: string, options: AddUserOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#buildInfo */ + buildInfo(options?: { session?: ClientSession }): Promise; + buildInfo(options: { session?: ClientSession }, callback: MongoCallback): void; + buildInfo(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#command */ + command(command: object, callback: MongoCallback): void; + command(command: object, options?: { readPreference?: ReadPreferenceOrMode; maxTimeMS?: number }): Promise; + command( + command: object, + options: { readPreference?: ReadPreferenceOrMode; maxTimeMS?: number }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#listDatabases */ + listDatabases(options?: { nameOnly?: boolean; session?: ClientSession }): Promise; + listDatabases(options: { nameOnly?: boolean; session?: ClientSession }, callback: MongoCallback): void; + listDatabases(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#ping */ + ping(options?: { session?: ClientSession }): Promise; + ping(options: { session?: ClientSession }, callback: MongoCallback): void; + ping(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#removeUser */ + removeUser(username: string, callback: MongoCallback): void; + removeUser(username: string, options?: FSyncOptions): Promise; + removeUser(username: string, options: FSyncOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#replSetGetStatus */ + replSetGetStatus(options?: { session?: ClientSession }): Promise; + replSetGetStatus(options: { session?: ClientSession }, callback: MongoCallback): void; + replSetGetStatus(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#serverInfo */ + serverInfo(): Promise; + serverInfo(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#serverStatus */ + serverStatus(options?: { session?: ClientSession }): Promise; + serverStatus(options: { session?: ClientSession }, callback: MongoCallback): void; + serverStatus(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#validateCollection */ + validateCollection(collectionNme: string, callback: MongoCallback): void; + validateCollection(collectionNme: string, options?: object): Promise; + validateCollection(collectionNme: string, options: object, callback: MongoCallback): void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#addUser */ +export interface AddUserOptions extends CommonOptions { + fsync: boolean; + customData?: object; + roles?: object[]; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Admin.html#removeUser */ +export interface FSyncOptions extends CommonOptions { + fsync?: boolean; +} + +// TypeScript Omit (Exclude to be specific) does not work for objects with an "any" indexed type, and breaks discriminated unions +type EnhancedOmit = string | number extends keyof T + ? T // T has indexed type e.g. { _id: string; [k: string]: any; } or it is "any" + : T extends any + ? Pick> // discriminated unions + : never; + +type ExtractIdType = TSchema extends { _id: infer U } // user has defined a type for _id + ? {} extends U + ? Exclude + : unknown extends U + ? ObjectId + : U + : ObjectId; // user has not defined _id on schema + +// this makes _id optional +export type OptionalId = ObjectId extends TSchema['_id'] + ? // a Schema with ObjectId _id type or "any" or "indexed type" provided + EnhancedOmit & { _id?: ExtractIdType } + : // a Schema provided but _id type is not ObjectId + WithId; + +// this adds _id as a required property +export type WithId = EnhancedOmit & { _id: ExtractIdType }; + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html */ +export interface Collection { + /** + * Get the collection name. + */ + collectionName: string; + /** + * Get the full collection namespace. + */ + namespace: string; + /** + * The current write concern values. + */ + writeConcern: WriteConcern; + /** + * The current read concern values. + */ + readConcern: ReadConcern; + /** + * Get current index hint for collection. + */ + hint: any; + /** @see https://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#aggregate */ + aggregate(callback: MongoCallback>): AggregationCursor; + aggregate(pipeline: object[], callback: MongoCallback>): AggregationCursor; + aggregate( + pipeline?: object[], + options?: CollectionAggregationOptions, + callback?: MongoCallback>, + ): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#bulkWrite */ + bulkWrite(operations: Array>, callback: MongoCallback): void; + bulkWrite( + operations: Array>, + options?: CollectionBulkWriteOptions, + ): Promise; + bulkWrite( + operations: Array>, + options: CollectionBulkWriteOptions, + callback: MongoCallback, + ): void; + /** + * @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#count + * @deprecated Use countDocuments or estimatedDocumentCount + */ + count(callback: MongoCallback): void; + count(query: FilterQuery, callback: MongoCallback): void; + count(query?: FilterQuery, options?: MongoCountPreferences): Promise; + count(query: FilterQuery, options: MongoCountPreferences, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#countDocuments */ + countDocuments(callback: MongoCallback): void; + countDocuments(query: FilterQuery, callback: MongoCallback): void; + countDocuments(query?: FilterQuery, options?: MongoCountPreferences): Promise; + countDocuments(query: FilterQuery, options: MongoCountPreferences, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#createIndex */ + createIndex(fieldOrSpec: string | any, callback: MongoCallback): void; + createIndex(fieldOrSpec: string | any, options?: IndexOptions): Promise; + createIndex(fieldOrSpec: string | any, options: IndexOptions, callback: MongoCallback): void; + /** + * @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#createIndexes + * @see https://docs.mongodb.org/manual/reference/command/createIndexes/ + */ + createIndexes(indexSpecs: IndexSpecification[], callback: MongoCallback): void; + createIndexes(indexSpecs: IndexSpecification[], options?: { session?: ClientSession }): Promise; + createIndexes( + indexSpecs: IndexSpecification[], + options: { session?: ClientSession }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#deleteMany */ + deleteMany(filter: FilterQuery, callback: MongoCallback): void; + deleteMany(filter: FilterQuery, options?: CommonOptions): Promise; + deleteMany( + filter: FilterQuery, + options: CommonOptions, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#deleteOne */ + deleteOne(filter: FilterQuery, callback: MongoCallback): void; + deleteOne( + filter: FilterQuery, + options?: CommonOptions & { bypassDocumentValidation?: boolean }, + ): Promise; + deleteOne( + filter: FilterQuery, + options: CommonOptions & { bypassDocumentValidation?: boolean }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#distinct */ + distinct>( + key: Key, + callback: MongoCallback[Key]>>>, + ): void; + distinct>( + key: Key, + query: FilterQuery, + callback: MongoCallback[Key]>>>, + ): void; + distinct>( + key: Key, + query?: FilterQuery, + options?: MongoDistinctPreferences, + ): Promise[Key]>>>; + distinct>( + key: Key, + query: FilterQuery, + options: MongoDistinctPreferences, + callback: MongoCallback[Key]>>>, + ): void; + distinct(key: string, callback: MongoCallback): void; + distinct(key: string, query: FilterQuery, callback: MongoCallback): void; + distinct(key: string, query?: FilterQuery, options?: MongoDistinctPreferences): Promise; + distinct( + key: string, + query: FilterQuery, + options: MongoDistinctPreferences, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#drop */ + drop(options?: { session: ClientSession }): Promise; + drop(callback: MongoCallback): void; + drop(options: { session: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#dropIndex */ + dropIndex(indexName: string, callback: MongoCallback): void; + dropIndex(indexName: string, options?: CommonOptions & { maxTimeMS?: number }): Promise; + dropIndex(indexName: string, options: CommonOptions & { maxTimeMS?: number }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#dropIndexes */ + dropIndexes(options?: { session?: ClientSession; maxTimeMS?: number }): Promise; + dropIndexes(callback?: MongoCallback): void; + dropIndexes(options: { session?: ClientSession; maxTimeMS?: number }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#estimatedDocumentCount */ + estimatedDocumentCount(callback: MongoCallback): void; + estimatedDocumentCount(query: FilterQuery, callback: MongoCallback): void; + estimatedDocumentCount(query?: FilterQuery, options?: MongoCountPreferences): Promise; + estimatedDocumentCount( + query: FilterQuery, + options: MongoCountPreferences, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#find */ + find(query?: FilterQuery): Cursor; + find(query: FilterQuery, options?: WithoutProjection>): Cursor; + find(query: FilterQuery, options: FindOneOptions): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOne */ + findOne(filter: FilterQuery, callback: MongoCallback): void; + findOne( + filter: FilterQuery, + options?: WithoutProjection>, + ): Promise; + findOne( + filter: FilterQuery, + options?: FindOneOptions, + ): Promise; + findOne( + filter: FilterQuery, + options: WithoutProjection>, + callback: MongoCallback, + ): void; + findOne( + filter: FilterQuery, + options: FindOneOptions, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOneAndDelete */ + findOneAndDelete( + filter: FilterQuery, + callback: MongoCallback>, + ): void; + findOneAndDelete( + filter: FilterQuery, + options?: FindOneAndDeleteOption, + ): Promise>; + findOneAndDelete( + filter: FilterQuery, + options: FindOneAndDeleteOption, + callback: MongoCallback>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOneAndReplace */ + findOneAndReplace( + filter: FilterQuery, + replacement: object, + callback: MongoCallback>, + ): void; + findOneAndReplace( + filter: FilterQuery, + replacement: object, + options?: FindOneAndReplaceOption, + ): Promise>; + findOneAndReplace( + filter: FilterQuery, + replacement: object, + options: FindOneAndReplaceOption, + callback: MongoCallback>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOneAndUpdate */ + findOneAndUpdate( + filter: FilterQuery, + update: UpdateQuery | TSchema, + callback: MongoCallback>, + ): void; + findOneAndUpdate( + filter: FilterQuery, + update: UpdateQuery | TSchema, + options?: FindOneAndUpdateOption, + ): Promise>; + findOneAndUpdate( + filter: FilterQuery, + update: UpdateQuery | TSchema, + options: FindOneAndUpdateOption, + callback: MongoCallback>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#geoHaystackSearch */ + geoHaystackSearch(x: number, y: number, callback: MongoCallback): void; + geoHaystackSearch(x: number, y: number, options?: GeoHaystackSearchOptions): Promise; + geoHaystackSearch(x: number, y: number, options: GeoHaystackSearchOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#group */ + /** @deprecated MongoDB 3.6 or higher no longer supports the group command. We recommend rewriting using the aggregation framework. */ + group( + keys: object | any[] | Function | Code, + condition: object, + initial: object, + reduce: Function | Code, + finalize: Function | Code, + command: boolean, + callback: MongoCallback, + ): void; + /** @deprecated MongoDB 3.6 or higher no longer supports the group command. We recommend rewriting using the aggregation framework. */ + group( + keys: object | any[] | Function | Code, + condition: object, + initial: object, + reduce: Function | Code, + finalize: Function | Code, + command: boolean, + options?: { readPreference?: ReadPreferenceOrMode; session?: ClientSession }, + ): Promise; + /** @deprecated MongoDB 3.6 or higher no longer supports the group command. We recommend rewriting using the aggregation framework. */ + group( + keys: object | any[] | Function | Code, + condition: object, + initial: object, + reduce: Function | Code, + finalize: Function | Code, + command: boolean, + options: { + readPreference?: ReadPreferenceOrMode; + session?: ClientSession; + }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#indexes */ + indexes(options?: { session: ClientSession }): Promise; + indexes(callback: MongoCallback): void; + indexes(options: { session?: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#indexExists */ + indexExists(indexes: string | string[], callback: MongoCallback): void; + indexExists(indexes: string | string[], options?: { session: ClientSession }): Promise; + indexExists( + indexes: string | string[], + options: { session: ClientSession }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#indexInformation */ + indexInformation(callback: MongoCallback): void; + indexInformation(options?: { full: boolean; session: ClientSession }): Promise; + indexInformation(options: { full: boolean; session: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#initializeOrderedBulkOp */ + initializeOrderedBulkOp(options?: CommonOptions): OrderedBulkOperation; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#initializeUnorderedBulkOp */ + initializeUnorderedBulkOp(options?: CommonOptions): UnorderedBulkOperation; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertOne */ + /** @deprecated Use insertOne, insertMany or bulkWrite */ + insert(docs: OptionalId, callback: MongoCallback>>): void; + /** @deprecated Use insertOne, insertMany or bulkWrite */ + insert( + docs: OptionalId, + options?: CollectionInsertOneOptions, + ): Promise>>; + /** @deprecated Use insertOne, insertMany or bulkWrite */ + insert( + docs: OptionalId, + options: CollectionInsertOneOptions, + callback: MongoCallback>>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertMany */ + insertMany(docs: Array>, callback: MongoCallback>>): void; + insertMany( + docs: Array>, + options?: CollectionInsertManyOptions, + ): Promise>>; + insertMany( + docs: Array>, + options: CollectionInsertManyOptions, + callback: MongoCallback>>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertOne */ + insertOne(docs: OptionalId, callback: MongoCallback>>): void; + insertOne( + docs: OptionalId, + options?: CollectionInsertOneOptions, + ): Promise>>; + insertOne( + docs: OptionalId, + options: CollectionInsertOneOptions, + callback: MongoCallback>>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#isCapped */ + isCapped(options?: { session: ClientSession }): Promise; + isCapped(callback: MongoCallback): void; + isCapped(options: { session: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#listIndexes */ + listIndexes(options?: { + batchSize?: number; + readPreference?: ReadPreferenceOrMode; + session?: ClientSession; + }): CommandCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#mapReduce */ + mapReduce( + map: CollectionMapFunction | string, + reduce: CollectionReduceFunction | string, + callback: MongoCallback, + ): void; + mapReduce( + map: CollectionMapFunction | string, + reduce: CollectionReduceFunction | string, + options?: MapReduceOptions, + ): Promise; + mapReduce( + map: CollectionMapFunction | string, + reduce: CollectionReduceFunction | string, + options: MapReduceOptions, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#options */ + options(options?: { session: ClientSession }): Promise; + options(callback: MongoCallback): void; + options(options: { session: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#parallelCollectionScan */ + parallelCollectionScan(callback: MongoCallback>>): void; + parallelCollectionScan(options?: ParallelCollectionScanOptions): Promise>>; + parallelCollectionScan(options: ParallelCollectionScanOptions, callback: MongoCallback>>): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#reIndex */ + reIndex(options?: { session: ClientSession }): Promise; + reIndex(callback: MongoCallback): void; + reIndex(options: { session: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#remove */ + /** @deprecated Use use deleteOne, deleteMany or bulkWrite */ + remove(selector: object, callback: MongoCallback): void; + /** @deprecated Use use deleteOne, deleteMany or bulkWrite */ + remove(selector: object, options?: CommonOptions & { single?: boolean }): Promise; + /** @deprecated Use use deleteOne, deleteMany or bulkWrite */ + remove( + selector: object, + options?: CommonOptions & { single?: boolean }, + callback?: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#rename */ + rename(newName: string, callback: MongoCallback>): void; + rename(newName: string, options?: { dropTarget?: boolean; session?: ClientSession }): Promise>; + rename( + newName: string, + options: { dropTarget?: boolean; session?: ClientSession }, + callback: MongoCallback>, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#replaceOne */ + replaceOne(filter: FilterQuery, doc: TSchema, callback: MongoCallback): void; + replaceOne(filter: FilterQuery, doc: TSchema, options?: ReplaceOneOptions): Promise; + replaceOne( + filter: FilterQuery, + doc: TSchema, + options: ReplaceOneOptions, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#save */ + /** @deprecated Use insertOne, insertMany, updateOne or updateMany */ + save(doc: TSchema, callback: MongoCallback): void; + /** @deprecated Use insertOne, insertMany, updateOne or updateMany */ + save(doc: TSchema, options?: CommonOptions): Promise; + /** @deprecated Use insertOne, insertMany, updateOne or updateMany */ + save(doc: TSchema, options: CommonOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#stats */ + stats(callback: MongoCallback): void; + stats(options?: { scale: number; session?: ClientSession }): Promise; + stats(options: { scale: number; session?: ClientSession }, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#update */ + /** @deprecated use updateOne, updateMany or bulkWrite */ + update( + filter: FilterQuery, + update: UpdateQuery | Partial, + callback: MongoCallback, + ): void; + /** @deprecated use updateOne, updateMany or bulkWrite */ + update( + filter: FilterQuery, + update: UpdateQuery | Partial, + options?: UpdateOneOptions & { multi?: boolean }, + ): Promise; + /** @deprecated use updateOne, updateMany or bulkWrite */ + update( + filter: FilterQuery, + update: UpdateQuery | Partial, + options: UpdateOneOptions & { multi?: boolean }, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateMany */ + updateMany( + filter: FilterQuery, + update: UpdateQuery | Partial, + callback: MongoCallback, + ): void; + updateMany( + filter: FilterQuery, + update: UpdateQuery | Partial, + options?: UpdateManyOptions, + ): Promise; + updateMany( + filter: FilterQuery, + update: UpdateQuery | Partial, + options: UpdateManyOptions, + callback: MongoCallback, + ): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateOne */ + updateOne( + filter: FilterQuery, + update: UpdateQuery | Partial, + callback: MongoCallback, + ): void; + updateOne( + filter: FilterQuery, + update: UpdateQuery | Partial, + options?: UpdateOneOptions, + ): Promise; + updateOne( + filter: FilterQuery, + update: UpdateQuery | Partial, + options: UpdateOneOptions, + callback: MongoCallback, + ): void; + /** + * @param pipeline - an array of + * {@link https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/ aggregation pipeline stages} + * through which to pass change stream documents. This allows for filtering (using `$match`) and manipulating + * the change stream documents. + * + * @param options - optional settings + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#watch + */ + watch( + pipeline?: object[], + options?: ChangeStreamOptions & { session?: ClientSession }, + ): ChangeStream; + /** + * @param options - optional settings + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#watch + */ + watch(options?: ChangeStreamOptions & { session?: ClientSession }): ChangeStream; +} + +/** Update Query */ +type KeysOfAType = { + [key in keyof TSchema]: NonNullable extends Type ? key : never; +}[keyof TSchema]; +type KeysOfOtherType = { + [key in keyof TSchema]: NonNullable extends Type ? never : key; +}[keyof TSchema]; + +type AcceptedFields = { + readonly [key in KeysOfAType]?: AssignableType; +}; + +/** It avoid uses fields of non Type */ +type NotAcceptedFields = { + readonly [key in KeysOfOtherType]?: never; +}; + +type DotAndArrayNotation = { + readonly [key: string]: AssignableType; +}; + +type ReadonlyPartial = { + readonly [key in keyof TSchema]?: TSchema[key]; +}; + +export type OnlyFieldsOfType = AcceptedFields< + TSchema, + FieldType, + AssignableType +> & + NotAcceptedFields & + DotAndArrayNotation; + +export type MatchKeysAndValues = ReadonlyPartial & DotAndArrayNotation; + +type Unpacked = Type extends ReadonlyArray ? Element : Type; + +type UpdateOptionalId = T extends { _id?: any } ? OptionalId : T; + +export type SortValues = -1 | 1; + +/** @see https://docs.mongodb.com/manual/reference/operator/aggregation/meta/#proj._S_meta */ +export type MetaSortOperators = 'textScore' | 'indexKey'; + +export type MetaProjectionOperators = + | MetaSortOperators + /** Only for Atlas Search https://docs.atlas.mongodb.com/reference/atlas-search/scoring/ */ + | 'searchScore' + /** Only for Atlas Search https://docs.atlas.mongodb.com/reference/atlas-search/highlighting/ */ + | 'searchHighlights'; + +export type SchemaMember = { [P in keyof T]?: V } | { [key: string]: V }; + +export type SortOptionObject = SchemaMember; + +export type AddToSetOperators = { + $each: Type; +}; + +export type ArrayOperator = { + $each: Type; + $slice?: number; + $position?: number; + $sort?: SortValues | Record; +}; + +export type SetFields = ({ + readonly [key in KeysOfAType | undefined>]?: + | UpdateOptionalId> + | AddToSetOperators>>>; +} & + NotAcceptedFields | undefined>) & { + readonly [key: string]: AddToSetOperators | any; +}; + +export type PushOperator = ({ + readonly [key in KeysOfAType>]?: + | Unpacked + | ArrayOperator>>; +} & + NotAcceptedFields>) & { + readonly [key: string]: ArrayOperator | any; +}; + +export type PullOperator = ({ + readonly [key in KeysOfAType>]?: + | Partial> + | ObjectQuerySelector>; +} & + NotAcceptedFields>) & { + readonly [key: string]: QuerySelector | any; +}; + +export type PullAllOperator = ({ + readonly [key in KeysOfAType>]?: TSchema[key]; +} & + NotAcceptedFields>) & { + readonly [key: string]: any[]; +}; + +/** @see https://docs.mongodb.com/manual/reference/operator/update */ +export type UpdateQuery = { + /** @see https://docs.mongodb.com/manual/reference/operator/update-field/ */ + $currentDate?: OnlyFieldsOfType; + $inc?: OnlyFieldsOfType; + $min?: MatchKeysAndValues; + $max?: MatchKeysAndValues; + $mul?: OnlyFieldsOfType; + $rename?: { [key: string]: string }; + $set?: MatchKeysAndValues; + $setOnInsert?: MatchKeysAndValues; + $unset?: OnlyFieldsOfType; + + /** @see https://docs.mongodb.com/manual/reference/operator/update-array/ */ + $addToSet?: SetFields; + $pop?: OnlyFieldsOfType, 1 | -1>; + $pull?: PullOperator; + $push?: PushOperator; + $pullAll?: PullAllOperator; + + /** @see https://docs.mongodb.com/manual/reference/operator/update-bitwise/ */ + $bit?: { + [key: string]: { [key in 'and' | 'or' | 'xor']?: number }; + }; +}; + +/** @see https://docs.mongodb.com/manual/reference/operator/query/type/#available-types */ +export enum BSONType { + Double = 1, + String, + Object, + Array, + BinData, + /** @deprecated */ + Undefined, + ObjectId, + Boolean, + Date, + Null, + Regex, + /** @deprecated */ + DBPointer, + JavaScript, + /** @deprecated */ + Symbol, + JavaScriptWithScope, + Int, + Timestamp, + Long, + Decimal, + MinKey = -1, + MaxKey = 127, +} + +type BSONTypeAlias = + | 'number' + | 'double' + | 'string' + | 'object' + | 'array' + | 'binData' + | 'undefined' + | 'objectId' + | 'bool' + | 'date' + | 'null' + | 'regex' + | 'dbPointer' + | 'javascript' + | 'symbol' + | 'javascriptWithScope' + | 'int' + | 'timestamp' + | 'long' + | 'decimal' + | 'minKey' + | 'maxKey'; + +/** @see https://docs.mongodb.com/manual/reference/operator/query-bitwise */ +type BitwiseQuery = + | number /** */ + | Binary /** */ + | number[]; /** [ , , ... ] */ + +// we can search using alternative types in mongodb e.g. +// string types can be searched using a regex in mongo +// array types can be searched using their element type +type RegExpForString = T extends string ? RegExp | T : T; +type MongoAltQuery = T extends ReadonlyArray ? T | RegExpForString : RegExpForString; + +/** @see https://docs.mongodb.com/manual/reference/operator/query/#query-selectors */ +export type QuerySelector = { + // Comparison + $eq?: T; + $gt?: T; + $gte?: T; + $in?: T[]; + $lt?: T; + $lte?: T; + $ne?: T; + $nin?: T[]; + // Logical + $not?: T extends string ? QuerySelector | RegExp : QuerySelector; + // Element + /** + * When `true`, `$exists` matches the documents that contain the field, + * including documents where the field value is null. + */ + $exists?: boolean; + $type?: BSONType | BSONTypeAlias; + // Evaluation + $expr?: any; + $jsonSchema?: any; + $mod?: T extends number ? [number, number] : never; + $regex?: T extends string ? RegExp | string : never; + $options?: T extends string ? string : never; + // Geospatial + // TODO: define better types for geo queries + $geoIntersects?: { $geometry: object }; + $geoWithin?: object; + $near?: object; + $nearSphere?: object; + $maxDistance?: number; + // Array + // TODO: define better types for $all and $elemMatch + $all?: T extends ReadonlyArray ? any[] : never; + $elemMatch?: T extends ReadonlyArray ? object : never; + $size?: T extends ReadonlyArray ? number : never; + // Bitwise + $bitsAllClear?: BitwiseQuery; + $bitsAllSet?: BitwiseQuery; + $bitsAnyClear?: BitwiseQuery; + $bitsAnySet?: BitwiseQuery; +}; + +export type RootQuerySelector = { + /** @see https://docs.mongodb.com/manual/reference/operator/query/and/#op._S_and */ + $and?: Array>; + /** @see https://docs.mongodb.com/manual/reference/operator/query/nor/#op._S_nor */ + $nor?: Array>; + /** @see https://docs.mongodb.com/manual/reference/operator/query/or/#op._S_or */ + $or?: Array>; + /** @see https://docs.mongodb.com/manual/reference/operator/query/text */ + $text?: { + $search: string; + $language?: string; + $caseSensitive?: boolean; + $diacriticSensitive?: boolean; + }; + /** @see https://docs.mongodb.com/manual/reference/operator/query/where/#op._S_where */ + $where?: string | Function; + /** @see https://docs.mongodb.com/manual/reference/operator/query/comment/#op._S_comment */ + $comment?: string; + // we could not find a proper TypeScript generic to support nested queries e.g. 'user.friends.name' + // this will mark all unrecognized properties as any (including nested queries) + [key: string]: any; +}; + +export type ObjectQuerySelector = T extends object ? { [key in keyof T]?: QuerySelector } : QuerySelector; + +export type Condition = MongoAltQuery | QuerySelector>; + +export type FilterQuery = { + [P in keyof T]?: Condition; +} & + RootQuerySelector; + +/** @see https://docs.mongodb.com/manual/reference/method/db.collection.bulkWrite/#insertone */ +export type BulkWriteInsertOneOperation = { + insertOne: { + document: OptionalId; + }; +}; + +/** @see https://docs.mongodb.com/manual/reference/method/db.collection.bulkWrite/#updateone-and-updatemany */ +export type BulkWriteUpdateOperation = { + arrayFilters?: object[]; + collation?: object; + hint?: string | object; + filter: FilterQuery; + update: UpdateQuery; + upsert?: boolean; +}; +export type BulkWriteUpdateOneOperation = { + updateOne: BulkWriteUpdateOperation; +}; +export type BulkWriteUpdateManyOperation = { + updateMany: BulkWriteUpdateOperation; +}; + +/** @see https://docs.mongodb.com/manual/reference/method/db.collection.bulkWrite/#replaceone */ +export type BulkWriteReplaceOneOperation = { + replaceOne: { + collation?: object; + hint?: string | object; + filter: FilterQuery; + replacement: TSchema; + upsert?: boolean; + }; +}; + +/** @see https://docs.mongodb.com/manual/reference/method/db.collection.bulkWrite/#deleteone-and-deletemany */ +export type BulkWriteDeleteOperation = { + collation?: object; + filter: FilterQuery; +}; +export type BulkWriteDeleteOneOperation = { + deleteOne: BulkWriteDeleteOperation; +}; +export type BulkWriteDeleteManyOperation = { + deleteMany: BulkWriteDeleteOperation; +}; + +/** @see https://mongodb.github.io/node-mongodb-native/3.0/api/Collection.html#bulkWrite */ +export type BulkWriteOperation = + | BulkWriteInsertOneOperation + | BulkWriteUpdateOneOperation + | BulkWriteUpdateManyOperation + | BulkWriteReplaceOneOperation + | BulkWriteDeleteOneOperation + | BulkWriteDeleteManyOperation; + +/** @see https://docs.mongodb.org/manual/reference/command/collStats/ */ +export interface CollStats { + /** + * Namespace. + */ + ns: string; + /** + * Number of documents. + */ + count: number; + /** + * Collection size in bytes. + */ + size: number; + /** + * Average object size in bytes. + */ + avgObjSize: number; + /** + * (Pre)allocated space for the collection in bytes. + */ + storageSize: number; + /** + * Number of extents (contiguously allocated chunks of datafile space). + */ + numExtents: number; + /** + * Number of indexes. + */ + nindexes: number; + /** + * Size of the most recently created extent in bytes. + */ + lastExtentSize: number; + /** + * Padding can speed up updates if documents grow. + */ + paddingFactor: number; + /** + * A number that indicates the user-set flags on the collection. userFlags only appears when using the mmapv1 storage engine. + */ + userFlags?: number; + /** + * Total index size in bytes. + */ + totalIndexSize: number; + /** + * Size of specific indexes in bytes. + */ + indexSizes: { + _id_: number; + [index: string]: number; + }; + /** + * `true` if the collection is capped. + */ + capped: boolean; + /** + * The maximum number of documents that may be present in a capped collection. + */ + max: number; + /** + * The maximum size of a capped collection. + */ + maxSize: number; + wiredTiger?: WiredTigerData; + indexDetails?: any; + ok: number; +} + +export interface WiredTigerData { + LSM: { + 'bloom filter false positives': number; + 'bloom filter hits': number; + 'bloom filter misses': number; + 'bloom filter pages evicted from cache': number; + 'bloom filter pages read into cache': number; + 'bloom filters in the LSM tree': number; + 'chunks in the LSM tree': number; + 'highest merge generation in the LSM tree': number; + 'queries that could have benefited from a Bloom filter that did not exist': number; + 'sleep for LSM checkpoint throttle': number; + 'sleep for LSM merge throttle': number; + 'total size of bloom filters': number; + }; + 'block-manager': { + 'allocations requiring file extension': number; + 'blocks allocated': number; + 'blocks freed': number; + 'checkpoint size': number; + 'file allocation unit size': number; + 'file bytes available for reuse': number; + 'file magic number': number; + 'file major version number': number; + 'file size in bytes': number; + 'minor version number': number; + }; + btree: { + 'btree checkpoint generation': number; + 'column-store fixed-size leaf pages': number; + 'column-store internal pages': number; + 'column-store variable-size RLE encoded values': number; + 'column-store variable-size deleted values': number; + 'column-store variable-size leaf pages': number; + 'fixed-record size': number; + 'maximum internal page key size': number; + 'maximum internal page size': number; + 'maximum leaf page key size': number; + 'maximum leaf page size': number; + 'maximum leaf page value size': number; + 'maximum tree depth': number; + 'number of key/value pairs': number; + 'overflow pages': number; + 'pages rewritten by compaction': number; + 'row-store internal pages': number; + 'row-store leaf pages': number; + }; + cache: { + 'bytes currently in the cache': number; + 'bytes read into cache': number; + 'bytes written from cache': number; + 'checkpoint blocked page eviction': number; + 'data source pages selected for eviction unable to be evicted': number; + 'hazard pointer blocked page eviction': number; + 'in-memory page passed criteria to be split': number; + 'in-memory page splits': number; + 'internal pages evicted': number; + 'internal pages split during eviction': number; + 'leaf pages split during eviction': number; + 'modified pages evicted': number; + 'overflow pages read into cache': number; + 'overflow values cached in memory': number; + 'page split during eviction deepened the tree': number; + 'page written requiring lookaside records': number; + 'pages read into cache': number; + 'pages read into cache requiring lookaside entries': number; + 'pages requested from the cache': number; + 'pages written from cache': number; + 'pages written requiring in-memory restoration': number; + 'tracked dirty bytes in the cache': number; + 'unmodified pages evicted': number; + }; + cache_walk: { + 'Average difference between current eviction generation when the page was last considered': number; + 'Average on-disk page image size seen': number; + 'Clean pages currently in cache': number; + 'Current eviction generation': number; + 'Dirty pages currently in cache': number; + 'Entries in the root page': number; + 'Internal pages currently in cache': number; + 'Leaf pages currently in cache': number; + 'Maximum difference between current eviction generation when the page was last considered': number; + 'Maximum page size seen': number; + 'Minimum on-disk page image size seen': number; + 'On-disk page image sizes smaller than a single allocation unit': number; + 'Pages created in memory and never written': number; + 'Pages currently queued for eviction': number; + 'Pages that could not be queued for eviction': number; + 'Refs skipped during cache traversal': number; + 'Size of the root page': number; + 'Total number of pages currently in cache': number; + }; + compression: { + 'compressed pages read': number; + 'compressed pages written': number; + 'page written failed to compress': number; + 'page written was too small to compress': number; + 'raw compression call failed, additional data available': number; + 'raw compression call failed, no additional data available': number; + 'raw compression call succeeded': number; + }; + cursor: { + 'bulk-loaded cursor-insert calls': number; + 'create calls': number; + 'cursor-insert key and value bytes inserted': number; + 'cursor-remove key bytes removed': number; + 'cursor-update value bytes updated': number; + 'insert calls': number; + 'next calls': number; + 'prev calls': number; + 'remove calls': number; + 'reset calls': number; + 'restarted searches': number; + 'search calls': number; + 'search near calls': number; + 'truncate calls': number; + 'update calls': number; + }; + reconciliation: { + 'dictionary matches': number; + 'fast-path pages deleted': number; + 'internal page key bytes discarded using suffix compression': number; + 'internal page multi-block writes': number; + 'internal-page overflow keys': number; + 'leaf page key bytes discarded using prefix compression': number; + 'leaf page multi-block writes': number; + 'leaf-page overflow keys': number; + 'maximum blocks required for a page': number; + 'overflow values written': number; + 'page checksum matches': number; + 'page reconciliation calls': number; + 'page reconciliation calls for eviction': number; + 'pages deleted': number; + }; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#aggregate */ +export interface CollectionAggregationOptions { + readPreference?: ReadPreferenceOrMode; + /** + * Return the query as cursor, on 2.6 > it returns as a real cursor + * on pre 2.6 it returns as an emulated cursor. + */ + cursor?: { batchSize?: number }; + /** + * Explain returns the aggregation execution plan (requires mongodb 2.6 >). + */ + explain?: boolean; + /** + * Lets the server know if it can use disk to store + * temporary results for the aggregation (requires mongodb 2.6 >). + */ + allowDiskUse?: boolean; + /** + * specifies a cumulative time limit in milliseconds for processing operations + * on the cursor. MongoDB interrupts the operation at the earliest following interrupt point. + */ + maxTimeMS?: number; + /** + * Allow driver to bypass schema validation in MongoDB 3.2 or higher. + */ + bypassDocumentValidation?: boolean; + hint?: string | object; + raw?: boolean; + promoteLongs?: boolean; + promoteValues?: boolean; + promoteBuffers?: boolean; + collation?: CollationDocument; + comment?: string; + session?: ClientSession; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertMany */ +export interface CollectionInsertManyOptions extends CommonOptions { + /** + * Serialize functions on any object. + */ + serializeFunctions?: boolean; + /** + * Force server to assign _id values instead of driver. + */ + forceServerObjectId?: boolean; + /** + * Allow driver to bypass schema validation in MongoDB 3.2 or higher. + */ + bypassDocumentValidation?: boolean; + /** + * If true, when an insert fails, don't execute the remaining writes. If false, continue with remaining inserts when one fails. + */ + ordered?: boolean; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#bulkWrite */ +export interface CollectionBulkWriteOptions extends CommonOptions { + /** + * Serialize functions on any object. + */ + serializeFunctions?: boolean; + /** + * Execute write operation in ordered or unordered fashion. + */ + ordered?: boolean; + /** + * Allow driver to bypass schema validation in MongoDB 3.2 or higher. + */ + bypassDocumentValidation?: boolean; + //Force server to assign _id values instead of driver. + forceServerObjectId?: boolean; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~BulkWriteOpResult */ +export interface BulkWriteOpResultObject { + insertedCount?: number; + matchedCount?: number; + modifiedCount?: number; + deletedCount?: number; + upsertedCount?: number; + insertedIds?: { [index: number]: any }; + upsertedIds?: { [index: number]: any }; + result?: any; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#count */ +export interface MongoCountPreferences { + /** + * The limit of documents to count. + */ + limit?: number; + /** + * The number of documents to skip for the count. + */ + skip?: number; + /** + * An index name hint for the query. + */ + hint?: string; + /** + * The preferred read preference + */ + readPreference?: ReadPreferenceOrMode; + /** + * Number of miliseconds to wait before aborting the query. + */ + maxTimeMS?: number; + /** + * Optional session to use for this operation + */ + session?: ClientSession; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#distinct */ +export interface MongoDistinctPreferences { + /** + * The preferred read preference + */ + readPreference?: ReadPreferenceOrMode; + /** + * Number of miliseconds to wait before aborting the query. + */ + maxTimeMS?: number; + /** + * Optional session to use for this operation + */ + session?: ClientSession; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~deleteWriteOpResult */ +export interface DeleteWriteOpResultObject { + //The raw result returned from MongoDB, field will vary depending on server version. + result: { + //Is 1 if the command executed correctly. + ok?: number; + //The total count of documents deleted. + n?: number; + }; + //The connection object used for the operation. + connection?: any; + //The number of documents deleted. + deletedCount?: number; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~findAndModifyWriteOpResult */ +export interface FindAndModifyWriteOpResultObject { + //Document returned from findAndModify command. + value?: TSchema; + //The raw lastErrorObject returned from the command. + lastErrorObject?: any; + //Is 1 if the command executed correctly. + ok?: number; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOneAndReplace */ +export interface FindOneAndReplaceOption extends CommonOptions { + projection?: SchemaMember; + sort?: SortOptionObject; + maxTimeMS?: number; + upsert?: boolean; + returnOriginal?: boolean; + collation?: CollationDocument; +} + +/** @see https://docs.mongodb.com/manual/reference/operator/projection/ */ +export interface ProjectionOperators { + /** @see https://docs.mongodb.com/manual/reference/operator/projection/elemMatch/#proj._S_elemMatch */ + $elemMatch?: object; + /** @see https://docs.mongodb.com/manual/reference/operator/projection/slice/#proj._S_slice */ + $slice?: number | [number, number]; + $meta?: MetaProjectionOperators; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOneAndUpdate */ +export interface FindOneAndUpdateOption extends FindOneAndReplaceOption { + arrayFilters?: object[]; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOneAndDelete */ +export interface FindOneAndDeleteOption { + projection?: SchemaMember; + sort?: SortOptionObject; + maxTimeMS?: number; + session?: ClientSession; + collation?: CollationDocument; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#geoHaystackSearch */ +export interface GeoHaystackSearchOptions { + readPreference?: ReadPreferenceOrMode; + maxDistance?: number; + search?: object; + limit?: number; + session?: ClientSession; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Code.html */ +export class Code { + constructor(code: string | Function, scope?: object); + code: string | Function; + scope: any; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/OrderedBulkOperation.html */ +export interface OrderedBulkOperation { + length: number; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/OrderedBulkOperation.html#execute */ + execute(callback: MongoCallback): void; + execute(options?: FSyncOptions): Promise; + execute(options: FSyncOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/OrderedBulkOperation.html#find */ + find(selector: object): FindOperatorsOrdered; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/OrderedBulkOperation.html#insert */ + insert(doc: object): OrderedBulkOperation; +} + +/** @see https://docs.mongodb.com/manual/reference/method/BulkWriteResult/index.html#BulkWriteResult.upserted */ +export interface BulkWriteResultUpsertedIdObject { + index: number; + _id: ObjectId; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.5/api/BulkWriteResult.html */ +export interface BulkWriteResult { + /** + * Evaluates to `true` if the bulk operation correctly executes + */ + ok: boolean; + + /** + * The number of documents inserted, excluding upserted documents. + * + * @see {@link nUpserted} for the number of documents inserted through an upsert. + */ + nInserted: number; + + /** + * The number of documents selected for update. + * + * If the update operation results in no change to the document, + * e.g. `$set` expression updates the value to the current value, + * {@link nMatched} can be greater than {@link nModified}. + */ + nMatched: number; + + /** + * The number of existing documents updated. + * + * If the update/replacement operation results in no change to the document, + * such as setting the value of the field to its current value, + * {@link nModified} can be less than {@link nMatched} + */ + nModified: number; + + /** + * The number of documents inserted by an + * [upsert]{@link https://docs.mongodb.com/manual/reference/method/db.collection.update/#upsert-parameter}. + */ + nUpserted: number; + + /** + * The number of documents removed. + */ + nRemoved: number; + + // Returns an array of all inserted ids + getInsertedIds(): object[]; + // Retrieve lastOp if available + getLastOp(): object; + // Returns raw internal result + getRawResponse(): object; + + /** + * Returns the upserted id at the given index + * @param index the number of the upserted id to return, returns `undefined` if no result for passed in index + */ + getUpsertedIdAt(index: number): BulkWriteResultUpsertedIdObject; + + // Returns an array of all upserted ids + getUpsertedIds(): BulkWriteResultUpsertedIdObject[]; + // Retrieve the write concern error if any + getWriteConcernError(): WriteConcernError; + + /** + * Returns a specific write error object + * @param index of the write error to return, returns `null` if there is no result for passed in index + */ + getWriteErrorAt(index: number): WriteError; + + // Returns the number of write errors off the bulk operation + getWriteErrorCount(): number; + // Retrieve all write errors + getWriteErrors(): object[]; + // Returns `true` if the bulk operation contains a write error + hasWriteErrors(): boolean; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/WriteError.html */ +export interface WriteError { + //Write concern error code. + code: number; + //Write concern error original bulk operation index. + index: number; + //Write concern error message. + errmsg: string; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/WriteConcernError.html */ +export interface WriteConcernError { + //Write concern error code. + code: number; + //Write concern error message. + errmsg: string; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/FindOperatorsOrdered.html */ +export interface FindOperatorsOrdered { + delete(): OrderedBulkOperation; + deleteOne(): OrderedBulkOperation; + replaceOne(doc: object): OrderedBulkOperation; + update(doc: object): OrderedBulkOperation; + updateOne(doc: object): OrderedBulkOperation; + upsert(): FindOperatorsOrdered; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/UnorderedBulkOperation.html */ +export interface UnorderedBulkOperation { + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/lib_bulk_unordered.js.html line 339 */ + length: number; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/UnorderedBulkOperation.html#execute */ + execute(callback: MongoCallback): void; + execute(options?: FSyncOptions): Promise; + execute(options: FSyncOptions, callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/UnorderedBulkOperation.html#find */ + find(selector: object): FindOperatorsUnordered; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/UnorderedBulkOperation.html#insert */ + insert(doc: object): UnorderedBulkOperation; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/FindOperatorsUnordered.html */ +export interface FindOperatorsUnordered { + length: number; + remove(): UnorderedBulkOperation; + removeOne(): UnorderedBulkOperation; + replaceOne(doc: object): UnorderedBulkOperation; + update(doc: object): UnorderedBulkOperation; + updateOne(doc: object): UnorderedBulkOperation; + upsert(): FindOperatorsUnordered; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#findOne */ +export interface FindOneOptions { + limit?: number; + sort?: Array<[string, number]> | SortOptionObject; + projection?: SchemaMember; + /** + * @deprecated Use options.projection instead + */ + fields?: { [P in keyof T]: boolean | number }; + skip?: number; + hint?: object; + explain?: boolean; + snapshot?: boolean; + timeout?: boolean; + tailable?: boolean; + awaitData?: boolean; + batchSize?: number; + returnKey?: boolean; + maxScan?: number; + min?: number; + max?: number; + showDiskLoc?: boolean; + comment?: string; + raw?: boolean; + promoteLongs?: boolean; + promoteValues?: boolean; + promoteBuffers?: boolean; + readPreference?: ReadPreferenceOrMode; + partial?: boolean; + maxTimeMS?: number; + collation?: CollationDocument; + session?: ClientSession; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#insertOne */ +export interface CollectionInsertOneOptions extends CommonOptions { + /** + * Serialize functions on any object. + */ + serializeFunctions?: boolean; + //Force server to assign _id values instead of driver. + forceServerObjectId?: boolean; + //Allow driver to bypass schema validation in MongoDB 3.2 or higher. + bypassDocumentValidation?: boolean; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~insertWriteOpResult */ +export interface InsertWriteOpResult { + insertedCount: number; + ops: TSchema[]; + insertedIds: { [key: number]: TSchema['_id'] }; + connection: any; + result: { ok: number; n: number }; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~insertOneWriteOpResult */ +export interface InsertOneWriteOpResult { + insertedCount: number; + ops: TSchema[]; + insertedId: TSchema['_id']; + connection: any; + result: { ok: number; n: number }; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#parallelCollectionScan */ +export interface ParallelCollectionScanOptions { + readPreference?: ReadPreferenceOrMode; + batchSize?: number; + numCursors?: number; + raw?: boolean; + session?: ClientSession; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#replaceOne */ +export interface ReplaceOneOptions extends CommonOptions { + upsert?: boolean; + bypassDocumentValidation?: boolean; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateOne */ +export interface UpdateOneOptions extends ReplaceOneOptions { + arrayFilters?: object[]; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateMany */ +export interface UpdateManyOptions extends CommonOptions { + upsert?: boolean; + arrayFilters?: object[]; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~updateWriteOpResult */ +export interface UpdateWriteOpResult { + result: { ok: number; n: number; nModified: number }; + connection: any; + matchedCount: number; + modifiedCount: number; + upsertedCount: number; + upsertedId: { _id: ObjectId }; +} + +/** @see https://github.com/mongodb/node-mongodb-native/blob/2.2/lib/collection.js#L957 */ +export interface ReplaceWriteOpResult extends UpdateWriteOpResult { + ops: any[]; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#mapReduce */ +export interface MapReduceOptions { + readPreference?: ReadPreferenceOrMode; + out?: object; + query?: object; + sort?: object; + limit?: number; + keeptemp?: boolean; + finalize?: Function | string; + scope?: object; + jsMode?: boolean; + verbose?: boolean; + bypassDocumentValidation?: boolean; + session?: ClientSession; +} + +export type CollectionMapFunction = (this: TSchema) => void; + +export type CollectionReduceFunction = (key: TKey, values: TValue[]) => TValue; + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~WriteOpResult */ +export interface WriteOpResult { + ops: any[]; + connection: any; + result: any; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#~resultCallback */ +export type CursorResult = object | null | boolean; + +type Default = any; +type DefaultSchema = any; + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html */ +export class Cursor extends Readable { + [Symbol.asyncIterator](): AsyncIterableIterator; + sortValue: string; + timeout: boolean; + readPreference: ReadPreference; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#addCursorFlag */ + addCursorFlag(flag: string, value: boolean): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#addQueryModifier */ + addQueryModifier(name: string, value: boolean): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#batchSize */ + batchSize(value: number): Cursor; + bufferedCount(): number; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#clone */ + clone(): Cursor; // still returns the same type + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#close */ + close(): Promise; + close(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#collation */ + collation(value: CollationDocument): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#comment */ + comment(value: string): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#count */ + count(callback: MongoCallback): void; + count(applySkipLimit: boolean, callback: MongoCallback): void; + count(options: CursorCommentOptions, callback: MongoCallback): void; + count(applySkipLimit: boolean, options: CursorCommentOptions, callback: MongoCallback): void; + count(applySkipLimit?: boolean, options?: CursorCommentOptions): Promise; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#explain */ + explain(): Promise; + explain(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#filter */ + filter(filter: object): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#forEach */ + forEach(iterator: IteratorCallback, callback: EndCallback): void; + forEach(iterator: IteratorCallback): Promise; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#hasNext */ + hasNext(): Promise; + hasNext(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#hint */ + hint(hint: string | object): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#isClosed */ + isClosed(): boolean; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#limit */ + limit(value: number): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#map */ + map(transform: (document: T) => U): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#max */ + max(max: object): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#maxAwaitTimeMS */ + maxAwaitTimeMS(value: number): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#maxScan */ + maxScan(maxScan: object): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#maxTimeMS */ + maxTimeMS(value: number): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#min */ + min(min: object): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#next */ + next(): Promise; + next(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Cursor.html#project */ + project(value: SchemaMember): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#read */ + read(size: number): string | Buffer | void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#returnKey */ + returnKey(returnKey: boolean): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#rewind */ + rewind(): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#setCursorOption */ + setCursorOption(field: string, value: object): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#setReadPreference */ + setReadPreference(readPreference: ReadPreferenceOrMode): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#showRecordId */ + showRecordId(showRecordId: boolean): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#skip */ + skip(value: number): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#snapshot */ + snapshot(snapshot: object): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.6/api/Cursor.html#sort */ + sort(keyOrList: string | Array<[string, number]> | SortOptionObject, direction?: number): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#stream */ + stream(options?: { transform?: (document: T) => any }): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#toArray */ + toArray(): Promise; + toArray(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#unshift */ + unshift(stream: Buffer | string): void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#count */ +export interface CursorCommentOptions { + skip?: number; + limit?: number; + maxTimeMS?: number; + hint?: string; + readPreference?: ReadPreferenceOrMode; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#~iteratorCallback */ +export interface IteratorCallback { + (doc: T): void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#~endCallback */ +export interface EndCallback { + (error: MongoError): void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#~resultCallback */ +export type AggregationCursorResult = object | null; +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html */ +export class AggregationCursor extends Cursor { + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#batchSize */ + batchSize(value: number): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#clone */ + clone(): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#close */ + close(): Promise; + close(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#each */ + each(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#explain */ + explain(): Promise; + explain(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#geoNear */ + geoNear(document: object): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#group */ + group(document: object): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#hasNext */ + hasNext(): Promise; + hasNext(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#isClosed */ + isClosed(): boolean; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#limit */ + limit(value: number): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#lookup */ + lookup(document: object): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#match */ + match(document: object): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#maxTimeMS */ + maxTimeMS(value: number): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#next */ + next(): Promise; + next(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#out */ + out(destination: string): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#project */ + project(document: object): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#read */ + read(size: number): string | Buffer | void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#redact */ + redact(document: object): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#rewind */ + rewind(): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#setEncoding */ + skip(value: number): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#sort */ + sort(document: object): AggregationCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#toArray */ + toArray(): Promise; + toArray(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#unshift */ + unshift(stream: Buffer | string): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/AggregationCursor.html#unwind */ + unwind( + field: string | { path: string; includeArrayIndex?: string; preserveNullAndEmptyArrays?: boolean }, + ): AggregationCursor; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#~resultCallback */ +export type CommandCursorResult = object | null; +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html */ +export class CommandCursor extends Readable { + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#hasNext */ + hasNext(): Promise; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#hasNext */ + hasNext(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#batchSize */ + batchSize(value: number): CommandCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#clone */ + clone(): CommandCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#close */ + close(): Promise; + close(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#each */ + each(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#isClosed */ + isClosed(): boolean; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#maxTimeMS */ + maxTimeMS(value: number): CommandCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#next */ + next(): Promise; + next(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#read */ + read(size: number): string | Buffer | void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#rewind */ + rewind(): CommandCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#setReadPreference */ + setReadPreference(readPreference: ReadPreferenceOrMode): CommandCursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#toArray */ + toArray(): Promise; + toArray(callback: MongoCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/CommandCursor.html#unshift */ + unshift(stream: Buffer | string): void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html */ +export class GridFSBucket { + constructor(db: Db, options?: GridFSBucketOptions); + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#delete */ + delete(id: ObjectId, callback?: GridFSBucketErrorCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#drop */ + drop(callback?: GridFSBucketErrorCallback): void; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#find */ + find(filter?: object, options?: GridFSBucketFindOptions): Cursor; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#openDownloadStream */ + openDownloadStream(id: ObjectId, options?: { start: number; end: number }): GridFSBucketReadStream; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#openDownloadStreamByName */ + openDownloadStreamByName( + filename: string, + options?: { revision: number; start: number; end: number }, + ): GridFSBucketReadStream; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#openUploadStream */ + openUploadStream(filename: string, options?: GridFSBucketOpenUploadStreamOptions): GridFSBucketWriteStream; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#openUploadStreamWithId */ + openUploadStreamWithId( + id: GridFSBucketWriteStreamId, + filename: string, + options?: GridFSBucketOpenUploadStreamOptions, + ): GridFSBucketWriteStream; + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#rename */ + rename(id: ObjectId, filename: string, callback?: GridFSBucketErrorCallback): void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html */ +export interface GridFSBucketOptions { + bucketName?: string; + chunkSizeBytes?: number; + writeConcern?: WriteConcern; + readPreference?: ReadPreferenceOrMode; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.6/api/GridFSBucket.html#~errorCallback */ +export interface GridFSBucketErrorCallback extends MongoCallback {} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#find */ +export interface GridFSBucketFindOptions { + batchSize?: number; + limit?: number; + maxTimeMS?: number; + noCursorTimeout?: boolean; + skip?: number; + sort?: object; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucket.html#openUploadStream */ +export interface GridFSBucketOpenUploadStreamOptions { + chunkSizeBytes?: number; + metadata?: object; + contentType?: string; + aliases?: string[]; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucketReadStream.html */ +export class GridFSBucketReadStream extends Readable { + id: ObjectId; + constructor( + chunks: Collection, + files: Collection, + readPreference: object, + filter: object, + options?: GridFSBucketReadStreamOptions, + ); +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucketReadStream.html */ +export interface GridFSBucketReadStreamOptions { + sort?: number; + skip?: number; + start?: number; + end?: number; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucketWriteStream.html */ +export class GridFSBucketWriteStream extends Writable { + id: GridFSBucketWriteStreamId; + constructor(bucket: GridFSBucket, filename: string, options?: GridFSBucketWriteStreamOptions); + + /** + * Places this write stream into an aborted state (all future writes fail) + * and deletes all chunks that have already been written. + * @param [callback] called when chunks are successfully removed or error occurred + * @see https://mongodb.github.io/node-mongodb-native/3.6/api/GridFSBucketWriteStream.html#abort + */ + abort(callback?: GridFSBucketErrorCallback): void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/GridFSBucketWriteStream.html */ +export interface GridFSBucketWriteStreamOptions extends WriteConcern { + /** + * Custom file id for the GridFS file. + */ + id?: GridFSBucketWriteStreamId; + /** + * The chunk size to use, in bytes + */ + chunkSizeBytes?: number; + /** + * If true, disables adding an md5 field to file data + * @default false + */ + disableMD5?: boolean; +} + +/** + * This is similar to Parameters but will work with a type which is + * a function or with a tuple specifying arguments, which are both + * common ways to define eventemitter events + */ +type EventArguments = [T] extends [(...args: infer U) => any] ? U : [T] extends [undefined] ? [] : [T]; + +/** + * Type-safe event emitter from {@link https://github.com/andywer/typed-emitter}. + * + * Use it like this: + * + * interface MyEvents { + * error: (error: Error) => void + * message: (from: string, content: string) => void + * } + * + * const myEmitter = new EventEmitter() as TypedEmitter + * + * myEmitter.on("message", (from, content) => { + * // ... + * }) + * + * myEmitter.emit("error", "x") // <- Will catch this type error + */ +declare class TypedEventEmitter { + addListener(event: E, listener: Events[E]): this; + on(event: E, listener: Events[E]): this; + once(event: E, listener: Events[E]): this; + prependListener(event: E, listener: Events[E]): this; + prependOnceListener(event: E, listener: Events[E]): this; + + off(event: E, listener: Events[E]): this; + removeAllListeners(event?: E): this; + removeListener(event: E, listener: Events[E]): this; + + emit(event: E, ...args: EventArguments): boolean; + eventNames(): Array; + rawListeners(event: E): Function[]; + listeners(event: E): Function[]; + listenerCount(event: E): number; + + getMaxListeners(): number; + setMaxListeners(maxListeners: number): this; +} + +interface ChangeStreamEvents { + change: (doc: ChangeEvent) => void; + close: () => void; + end: () => void; + error: (err: MongoError) => void; + resumeTokenChanged: (newToken: ResumeToken) => void; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.3/api/ChangeStream.html */ +export class ChangeStream extends TypedEventEmitter< + ChangeStreamEvents +> { + resumeToken: ResumeToken; + + constructor(parent: MongoClient | Db | Collection, pipeline: object[], options?: ChangeStreamOptions); + + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#close */ + close(): Promise; + close(callback: MongoCallback): void; + + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#hasNext */ + hasNext(): Promise; + hasNext(callback: MongoCallback): void; + + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#isClosed */ + isClosed(): boolean; + + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#next */ + next(): Promise; + next(callback: MongoCallback): void; + + /** @see https://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#stream */ + stream(options?: { transform?: Function }): Cursor; +} + +export class ResumeToken {} + +export type ChangeEventTypes = + | 'insert' + | 'delete' + | 'replace' + | 'update' + | 'drop' + | 'rename' + | 'dropDatabase' + | 'invalidate'; +export interface ChangeEventBase { + _id: ResumeToken; + /** + * We leave this off the base type so that we can differentiate + * by checking its value and get intelligent types on the other fields + */ + // operationType: ChangeEventTypes; + ns: { + db: string; + coll: string; + }; + clusterTime: Timestamp; + txnNumber?: number; + lsid?: { + id: any; + uid: any; + }; +} +export interface ChangeEventCR + extends ChangeEventBase { + operationType: 'insert' | 'replace'; + fullDocument?: TSchema; + documentKey: { + _id: ExtractIdType; + }; +} +type FieldUpdates = Partial & { [key: string]: any }; +export interface ChangeEventUpdate + extends ChangeEventBase { + operationType: 'update'; + updateDescription: { + /** + * This is an object with all changed fields; if they are nested, + * the keys will be paths, e.g. 'question.answer.0.text': 'new text' + */ + updatedFields: FieldUpdates; + removedFields: Array; + }; + fullDocument?: TSchema; + documentKey: { + _id: ExtractIdType; + }; +} +export interface ChangeEventDelete + extends ChangeEventBase { + operationType: 'delete'; + documentKey: { + _id: ExtractIdType; + }; +} +export interface ChangeEventRename + extends ChangeEventBase { + operationType: 'rename'; + to: { + db: string; + coll: string; + }; +} + +export interface ChangeEventOther + extends ChangeEventBase { + operationType: 'drop' | 'dropDatabase'; +} + +export interface ChangeEventInvalidate { + _id: ResumeToken; + operationType: 'invalidate'; + clusterTime: Timestamp; +} + +export type ChangeEvent = + | ChangeEventCR + | ChangeEventUpdate + | ChangeEventDelete + | ChangeEventRename + | ChangeEventOther + | ChangeEventInvalidate; + +/** @see https://mongodb.github.io/node-mongodb-native/3.3/api/global.html#ChangeStreamOptions */ +export interface ChangeStreamOptions { + fullDocument?: 'default' | 'updateLookup'; + maxAwaitTimeMS?: number; + resumeAfter?: ResumeToken; + startAfter?: ResumeToken; + startAtOperationTime?: Timestamp; + batchSize?: number; + collation?: CollationDocument; + readPreference?: ReadPreferenceOrMode; +} + +type GridFSBucketWriteStreamId = string | number | object | ObjectId; + +export interface LoggerOptions { + /** + * Custom logger function + */ + loggerLevel?: string; + /** + * Override default global log level. + */ + logger?: log; +} + +export type log = (message?: string, state?: LoggerState) => void; + +export interface LoggerState { + type: string; + message: string; + className: string; + pid: number; + date: number; +} + +/** @see https://mongodb.github.io/node-mongodb-native/3.1/api/Logger.html */ +export class Logger { + constructor(className: string, options?: LoggerOptions); + /** + * Log a message at the debug level + */ + debug(message: string, state: LoggerState): void; + /** + * Log a message at the warn level + */ + warn(message: string, state: LoggerState): void; + /** + * Log a message at the info level + */ + info(message: string, state: LoggerState): void; + /** + * Log a message at the error level + */ + error(message: string, state: LoggerState): void; + /** + * Is the logger set at info level + */ + isInfo(): boolean; + /** + * Is the logger set at error level + */ + isError(): boolean; + /** + * Is the logger set at error level + */ + isWarn(): boolean; + /** + * Is the logger set at debug level + */ + isDebug(): boolean; + /** + * Resets the logger to default settings, error and no filtered classes + */ + static reset(): void; + /** + * Get the current logger function + */ + static currentLogger(): log; + //Set the current logger function + static setCurrentLogger(log: log): void; + /** + * Set what classes to log. + */ + static filter(type: string, values: string[]): void; + /** + * Set the current log level + */ + static setLevel(level: string): void; +} + +/** @see https://docs.mongodb.com/manual/reference/collation/#collation-document-fields */ +export interface CollationDocument { + locale: string; + strength?: number; + caseLevel?: boolean; + caseFirst?: string; + numericOrdering?: boolean; + alternate?: string; + maxVariable?: string; + backwards?: boolean; + normalization?: boolean; +} + +/** @see https://docs.mongodb.com/manual/reference/command/createIndexes/ */ +export interface IndexSpecification { + key: object; + name?: string; + background?: boolean; + unique?: boolean; + partialFilterExpression?: object; + sparse?: boolean; + expireAfterSeconds?: number; + storageEngine?: object; + weights?: object; + default_language?: string; + language_override?: string; + textIndexVersion?: number; + '2dsphereIndexVersion'?: number; + bits?: number; + min?: number; + max?: number; + bucketSize?: number; + collation?: CollationDocument; +} diff --git a/justdanceonline-main/node_modules/@types/mongodb/package.json b/justdanceonline-main/node_modules/@types/mongodb/package.json new file mode 100644 index 0000000000000000000000000000000000000000..ec9b97c8097b6736bc4e41eda19f6c1aa1d075e9 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/mongodb/package.json @@ -0,0 +1,187 @@ +{ + "name": "@types/mongodb", + "version": "3.6.12", + "description": "TypeScript definitions for MongoDB", + "license": "MIT", + "contributors": [ + { + "name": "Federico Caselli", + "url": "https://github.com/CaselIT", + "githubUsername": "CaselIT" + }, + { + "name": "Alan Marcell", + "url": "https://github.com/alanmarcell", + "githubUsername": "alanmarcell" + }, + { + "name": "Gaurav Lahoti", + "url": "https://github.com/dante-101", + "githubUsername": "dante-101" + }, + { + "name": "Mariano Cortesi", + "url": "https://github.com/mcortesi", + "githubUsername": "mcortesi" + }, + { + "name": "Enrico Picci", + "url": "https://github.com/EnricoPicci", + "githubUsername": "EnricoPicci" + }, + { + "name": "Alexander Christie", + "url": "https://github.com/AJCStriker", + "githubUsername": "AJCStriker" + }, + { + "name": "Julien Chaumond", + "url": "https://github.com/julien-c", + "githubUsername": "julien-c" + }, + { + "name": "Dan Aprahamian", + "url": "https://github.com/daprahamian", + "githubUsername": "daprahamian" + }, + { + "name": "Denys Bushulyak", + "url": "https://github.com/denys-bushulyak", + "githubUsername": "denys-bushulyak" + }, + { + "name": "Bastien Arata", + "url": "https://github.com/BastienAr", + "githubUsername": "BastienAr" + }, + { + "name": "Wan Bachtiar", + "url": "https://github.com/sindbach", + "githubUsername": "sindbach" + }, + { + "name": "Geraldine Lemeur", + "url": "https://github.com/geraldinelemeur", + "githubUsername": "geraldinelemeur" + }, + { + "name": "Dominik Heigl", + "url": "https://github.com/various89", + "githubUsername": "various89" + }, + { + "name": "Angela-1", + "url": "https://github.com/angela-1", + "githubUsername": "angela-1" + }, + { + "name": "Hector Ribes", + "url": "https://github.com/hector7", + "githubUsername": "hector7" + }, + { + "name": "Florian Richter", + "url": "https://github.com/floric", + "githubUsername": "floric" + }, + { + "name": "Erik Christensen", + "url": "https://github.com/erikc5000", + "githubUsername": "erikc5000" + }, + { + "name": "Nick Zahn", + "url": "https://github.com/Manc", + "githubUsername": "Manc" + }, + { + "name": "Jarom Loveridge", + "url": "https://github.com/jloveridge", + "githubUsername": "jloveridge" + }, + { + "name": "Luis Pais", + "url": "https://github.com/ranguna", + "githubUsername": "ranguna" + }, + { + "name": "Hossein Saniei", + "url": "https://github.com/HosseinAgha", + "githubUsername": "HosseinAgha" + }, + { + "name": "Alberto Silva", + "url": "https://github.com/albertossilva", + "githubUsername": "albertossilva" + }, + { + "name": "Piotr Błażejewicz", + "url": "https://github.com/peterblazejewicz", + "githubUsername": "peterblazejewicz" + }, + { + "name": "Linus Unnebäck", + "url": "https://github.com/LinusU", + "githubUsername": "LinusU" + }, + { + "name": "Richard Bateman", + "url": "https://github.com/taxilian", + "githubUsername": "taxilian" + }, + { + "name": "Igor Strebezhev", + "url": "https://github.com/xamgore", + "githubUsername": "xamgore" + }, + { + "name": "Valentin Agachi", + "url": "https://github.com/avaly", + "githubUsername": "avaly" + }, + { + "name": "HitkoDev", + "url": "https://github.com/HitkoDev", + "githubUsername": "HitkoDev" + }, + { + "name": "TJT", + "url": "https://github.com/Celend", + "githubUsername": "Celend" + }, + { + "name": "Julien TASSIN", + "url": "https://github.com/jtassin", + "githubUsername": "jtassin" + }, + { + "name": "Anna Henningsen", + "url": "https://github.com/addaleax", + "githubUsername": "addaleax" + }, + { + "name": "Emmanuel Gautier", + "url": "https://github.com/emmanuelgautier", + "githubUsername": "emmanuelgautier" + }, + { + "name": "Wyatt Johnson", + "url": "https://github.com/wyattjoh", + "githubUsername": "wyattjoh" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/mongodb" + }, + "scripts": {}, + "dependencies": { + "@types/bson": "*", + "@types/node": "*" + }, + "typesPublisherContentHash": "6282044f9027bdbf955b40f7299d5ee271ae4163999fd6cab367c31aaf8f8209", + "typeScriptVersion": "3.5" +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/@types/node/LICENSE b/justdanceonline-main/node_modules/@types/node/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..9e841e7a26e4eb057b24511e7b92d42b257a80e5 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/justdanceonline-main/node_modules/@types/node/README.md b/justdanceonline-main/node_modules/@types/node/README.md new file mode 100644 index 0000000000000000000000000000000000000000..99a43981de04a030f6b6505d4ab8344c522877af --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/node` + +# Summary +This package contains type definitions for Node.js (http://nodejs.org/). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node. + +### Additional Details + * Last updated: Tue, 04 May 2021 23:03:11 GMT + * Dependencies: none + * Global values: `AbortController`, `AbortSignal`, `Buffer`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout` + +# Credits +These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Hoàng Văn Khải](https://github.com/KSXGitHub), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Minh Son Nguyen](https://github.com/nguymin4), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Surasak Chaisurin](https://github.com/Ryan-Willpower), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Jason Kwok](https://github.com/JasonHK), [Victor Perin](https://github.com/victorperin), and [Yongsheng Zhang](https://github.com/ZYSzys). diff --git a/justdanceonline-main/node_modules/@types/node/assert.d.ts b/justdanceonline-main/node_modules/@types/node/assert.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e9e3585237802defdd1316990dc5199d1ef26ac5 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/assert.d.ts @@ -0,0 +1,124 @@ +declare module 'assert' { + /** An alias of `assert.ok()`. */ + function assert(value: any, message?: string | Error): asserts value; + namespace assert { + class AssertionError extends Error { + actual: any; + expected: any; + operator: string; + generatedMessage: boolean; + code: 'ERR_ASSERTION'; + + constructor(options?: { + /** If provided, the error message is set to this value. */ + message?: string; + /** The `actual` property on the error instance. */ + actual?: any; + /** The `expected` property on the error instance. */ + expected?: any; + /** The `operator` property on the error instance. */ + operator?: string; + /** If provided, the generated stack trace omits frames before this function. */ + // tslint:disable-next-line:ban-types + stackStartFn?: Function; + }); + } + + class CallTracker { + calls(exact?: number): () => void; + calls any>(fn?: Func, exact?: number): Func; + report(): CallTrackerReportInformation[]; + verify(): void; + } + interface CallTrackerReportInformation { + message: string; + /** The actual number of times the function was called. */ + actual: number; + /** The number of times the function was expected to be called. */ + expected: number; + /** The name of the function that is wrapped. */ + operator: string; + /** A stack trace of the function. */ + stack: object; + } + + type AssertPredicate = RegExp | (new () => object) | ((thrown: any) => boolean) | object | Error; + + function fail(message?: string | Error): never; + /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ + function fail( + actual: any, + expected: any, + message?: string | Error, + operator?: string, + // tslint:disable-next-line:ban-types + stackStartFn?: Function, + ): never; + function ok(value: any, message?: string | Error): asserts value; + /** @deprecated since v9.9.0 - use strictEqual() instead. */ + function equal(actual: any, expected: any, message?: string | Error): void; + /** @deprecated since v9.9.0 - use notStrictEqual() instead. */ + function notEqual(actual: any, expected: any, message?: string | Error): void; + /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */ + function deepEqual(actual: any, expected: any, message?: string | Error): void; + /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */ + function notDeepEqual(actual: any, expected: any, message?: string | Error): void; + function strictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; + function notStrictEqual(actual: any, expected: any, message?: string | Error): void; + function deepStrictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; + function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void; + + function throws(block: () => any, message?: string | Error): void; + function throws(block: () => any, error: AssertPredicate, message?: string | Error): void; + function doesNotThrow(block: () => any, message?: string | Error): void; + function doesNotThrow(block: () => any, error: AssertPredicate, message?: string | Error): void; + + function ifError(value: any): asserts value is null | undefined; + + function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise; + function rejects( + block: (() => Promise) | Promise, + error: AssertPredicate, + message?: string | Error, + ): Promise; + function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise; + function doesNotReject( + block: (() => Promise) | Promise, + error: AssertPredicate, + message?: string | Error, + ): Promise; + + function match(value: string, regExp: RegExp, message?: string | Error): void; + function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void; + + const strict: Omit< + typeof assert, + | 'equal' + | 'notEqual' + | 'deepEqual' + | 'notDeepEqual' + | 'ok' + | 'strictEqual' + | 'deepStrictEqual' + | 'ifError' + | 'strict' + > & { + (value: any, message?: string | Error): asserts value; + equal: typeof strictEqual; + notEqual: typeof notStrictEqual; + deepEqual: typeof deepStrictEqual; + notDeepEqual: typeof notDeepStrictEqual; + + // Mapped types and assertion functions are incompatible? + // TS2775: Assertions require every name in the call target + // to be declared with an explicit type annotation. + ok: typeof ok; + strictEqual: typeof strictEqual; + deepStrictEqual: typeof deepStrictEqual; + ifError: typeof ifError; + strict: typeof strict; + }; + } + + export = assert; +} diff --git a/justdanceonline-main/node_modules/@types/node/assert/strict.d.ts b/justdanceonline-main/node_modules/@types/node/assert/strict.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..bc3b2a76c7dabf114c00e6afbf618d001485ee2a --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/assert/strict.d.ts @@ -0,0 +1,4 @@ +declare module 'assert/strict' { + import { strict } from 'assert'; + export = strict; +} diff --git a/justdanceonline-main/node_modules/@types/node/async_hooks.d.ts b/justdanceonline-main/node_modules/@types/node/async_hooks.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..24ccf3659cefd44ab51992aeae5be7d1f605655f --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/async_hooks.d.ts @@ -0,0 +1,226 @@ +/** + * Async Hooks module: https://nodejs.org/api/async_hooks.html + */ +declare module 'async_hooks' { + /** + * Returns the asyncId of the current execution context. + */ + function executionAsyncId(): number; + + /** + * The resource representing the current execution. + * Useful to store data within the resource. + * + * Resource objects returned by `executionAsyncResource()` are most often internal + * Node.js handle objects with undocumented APIs. Using any functions or properties + * on the object is likely to crash your application and should be avoided. + * + * Using `executionAsyncResource()` in the top-level execution context will + * return an empty object as there is no handle or request object to use, + * but having an object representing the top-level can be helpful. + */ + function executionAsyncResource(): object; + + /** + * Returns the ID of the resource responsible for calling the callback that is currently being executed. + */ + function triggerAsyncId(): number; + + interface HookCallbacks { + /** + * Called when a class is constructed that has the possibility to emit an asynchronous event. + * @param asyncId a unique ID for the async resource + * @param type the type of the async resource + * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created + * @param resource reference to the resource representing the async operation, needs to be released during destroy + */ + init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void; + + /** + * When an asynchronous operation is initiated or completes a callback is called to notify the user. + * The before callback is called just before said callback is executed. + * @param asyncId the unique identifier assigned to the resource about to execute the callback. + */ + before?(asyncId: number): void; + + /** + * Called immediately after the callback specified in before is completed. + * @param asyncId the unique identifier assigned to the resource which has executed the callback. + */ + after?(asyncId: number): void; + + /** + * Called when a promise has resolve() called. This may not be in the same execution id + * as the promise itself. + * @param asyncId the unique id for the promise that was resolve()d. + */ + promiseResolve?(asyncId: number): void; + + /** + * Called after the resource corresponding to asyncId is destroyed + * @param asyncId a unique ID for the async resource + */ + destroy?(asyncId: number): void; + } + + interface AsyncHook { + /** + * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop. + */ + enable(): this; + + /** + * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled. + */ + disable(): this; + } + + /** + * Registers functions to be called for different lifetime events of each async operation. + * @param options the callbacks to register + * @return an AsyncHooks instance used for disabling and enabling hooks + */ + function createHook(options: HookCallbacks): AsyncHook; + + interface AsyncResourceOptions { + /** + * The ID of the execution context that created this async event. + * Default: `executionAsyncId()` + */ + triggerAsyncId?: number; + + /** + * Disables automatic `emitDestroy` when the object is garbage collected. + * This usually does not need to be set (even if `emitDestroy` is called + * manually), unless the resource's `asyncId` is retrieved and the + * sensitive API's `emitDestroy` is called with it. + * Default: `false` + */ + requireManualDestroy?: boolean; + } + + /** + * The class AsyncResource was designed to be extended by the embedder's async resources. + * Using this users can easily trigger the lifetime events of their own resources. + */ + class AsyncResource { + /** + * AsyncResource() is meant to be extended. Instantiating a + * new AsyncResource() also triggers init. If triggerAsyncId is omitted then + * async_hook.executionAsyncId() is used. + * @param type The type of async event. + * @param triggerAsyncId The ID of the execution context that created + * this async event (default: `executionAsyncId()`), or an + * AsyncResourceOptions object (since 9.3) + */ + constructor(type: string, triggerAsyncId?: number|AsyncResourceOptions); + + /** + * Binds the given function to the current execution context. + * @param fn The function to bind to the current execution context. + * @param type An optional name to associate with the underlying `AsyncResource`. + */ + static bind any>(fn: Func, type?: string): Func & { asyncResource: AsyncResource }; + + /** + * Binds the given function to execute to this `AsyncResource`'s scope. + * @param fn The function to bind to the current `AsyncResource`. + */ + bind any>(fn: Func): Func & { asyncResource: AsyncResource }; + + /** + * Call the provided function with the provided arguments in the + * execution context of the async resource. This will establish the + * context, trigger the AsyncHooks before callbacks, call the function, + * trigger the AsyncHooks after callbacks, and then restore the original + * execution context. + * @param fn The function to call in the execution context of this + * async resource. + * @param thisArg The receiver to be used for the function call. + * @param args Optional arguments to pass to the function. + */ + runInAsyncScope(fn: (this: This, ...args: any[]) => Result, thisArg?: This, ...args: any[]): Result; + + /** + * Call AsyncHooks destroy callbacks. + */ + emitDestroy(): this; + + /** + * @return the unique ID assigned to this AsyncResource instance. + */ + asyncId(): number; + + /** + * @return the trigger ID for this AsyncResource instance. + */ + triggerAsyncId(): number; + } + + /** + * When having multiple instances of `AsyncLocalStorage`, they are independent + * from each other. It is safe to instantiate this class multiple times. + */ + class AsyncLocalStorage { + /** + * This method disables the instance of `AsyncLocalStorage`. All subsequent calls + * to `asyncLocalStorage.getStore()` will return `undefined` until + * `asyncLocalStorage.run()` is called again. + * + * When calling `asyncLocalStorage.disable()`, all current contexts linked to the + * instance will be exited. + * + * Calling `asyncLocalStorage.disable()` is required before the + * `asyncLocalStorage` can be garbage collected. This does not apply to stores + * provided by the `asyncLocalStorage`, as those objects are garbage collected + * along with the corresponding async resources. + * + * This method is to be used when the `asyncLocalStorage` is not in use anymore + * in the current process. + */ + disable(): void; + + /** + * This method returns the current store. If this method is called outside of an + * asynchronous context initialized by calling `asyncLocalStorage.run`, it will + * return `undefined`. + */ + getStore(): T | undefined; + + /** + * This methods runs a function synchronously within a context and return its + * return value. The store is not accessible outside of the callback function or + * the asynchronous operations created within the callback. + * + * Optionally, arguments can be passed to the function. They will be passed to the + * callback function. + * + * I the callback function throws an error, it will be thrown by `run` too. The + * stacktrace will not be impacted by this call and the context will be exited. + */ + // TODO: Apply generic vararg once available + run(store: T, callback: (...args: any[]) => R, ...args: any[]): R; + + /** + * This methods runs a function synchronously outside of a context and return its + * return value. The store is not accessible within the callback function or the + * asynchronous operations created within the callback. + * + * Optionally, arguments can be passed to the function. They will be passed to the + * callback function. + * + * If the callback function throws an error, it will be thrown by `exit` too. The + * stacktrace will not be impacted by this call and the context will be + * re-entered. + */ + // TODO: Apply generic vararg once available + exit(callback: (...args: any[]) => R, ...args: any[]): R; + + /** + * Calling `asyncLocalStorage.enterWith(store)` will transition into the context + * for the remainder of the current synchronous execution and will persist + * through any following asynchronous calls. + */ + enterWith(store: T): void; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/base.d.ts b/justdanceonline-main/node_modules/@types/node/base.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..fa671790eb264730b002c1e2f42ee04bd367dd35 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/base.d.ts @@ -0,0 +1,19 @@ +// NOTE: These definitions support NodeJS and TypeScript 3.7. + +// NOTE: TypeScript version-specific augmentations can be found in the following paths: +// - ~/base.d.ts - Shared definitions common to all TypeScript versions +// - ~/index.d.ts - Definitions specific to TypeScript 2.1 +// - ~/ts3.7/base.d.ts - Definitions specific to TypeScript 3.7 +// - ~/ts3.7/index.d.ts - Definitions specific to TypeScript 3.7 with assert pulled in + +// Reference required types from the default lib: +/// +/// +/// +/// + +// Base definitions for all NodeJS modules that are not specific to any version of TypeScript: +/// + +// TypeScript 3.7-specific augmentations: +/// diff --git a/justdanceonline-main/node_modules/@types/node/buffer.d.ts b/justdanceonline-main/node_modules/@types/node/buffer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..0aa039c56a2ee580f1b27307b10d729f498f0ed6 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/buffer.d.ts @@ -0,0 +1,22 @@ +declare module 'buffer' { + export const INSPECT_MAX_BYTES: number; + export const kMaxLength: number; + export const kStringMaxLength: number; + export const constants: { + MAX_LENGTH: number; + MAX_STRING_LENGTH: number; + }; + const BuffType: typeof Buffer; + + export type TranscodeEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "latin1" | "binary"; + + export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer; + + export const SlowBuffer: { + /** @deprecated since v6.0.0, use `Buffer.allocUnsafeSlow()` */ + new(size: number): Buffer; + prototype: Buffer; + }; + + export { BuffType as Buffer }; +} diff --git a/justdanceonline-main/node_modules/@types/node/child_process.d.ts b/justdanceonline-main/node_modules/@types/node/child_process.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d3a0bda7e67116653ac226e3da2ce3595f062f44 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/child_process.d.ts @@ -0,0 +1,510 @@ +declare module 'child_process' { + import { BaseEncodingOptions } from 'fs'; + import * as events from 'events'; + import * as net from 'net'; + import { Writable, Readable, Stream, Pipe } from 'stream'; + + type Serializable = string | object | number | boolean; + type SendHandle = net.Socket | net.Server; + + interface ChildProcess extends events.EventEmitter { + stdin: Writable | null; + stdout: Readable | null; + stderr: Readable | null; + readonly channel?: Pipe | null; + readonly stdio: [ + Writable | null, // stdin + Readable | null, // stdout + Readable | null, // stderr + Readable | Writable | null | undefined, // extra + Readable | Writable | null | undefined // extra + ]; + readonly killed: boolean; + readonly pid: number; + readonly connected: boolean; + readonly exitCode: number | null; + readonly signalCode: NodeJS.Signals | null; + readonly spawnargs: string[]; + readonly spawnfile: string; + kill(signal?: NodeJS.Signals | number): boolean; + send(message: Serializable, callback?: (error: Error | null) => void): boolean; + send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean; + send(message: Serializable, sendHandle?: SendHandle, options?: MessageOptions, callback?: (error: Error | null) => void): boolean; + disconnect(): void; + unref(): void; + ref(): void; + + /** + * events.EventEmitter + * 1. close + * 2. disconnect + * 3. error + * 4. exit + * 5. message + */ + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + addListener(event: "disconnect", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + addListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close", code: number | null, signal: NodeJS.Signals | null): boolean; + emit(event: "disconnect"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "exit", code: number | null, signal: NodeJS.Signals | null): boolean; + emit(event: "message", message: Serializable, sendHandle: SendHandle): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + on(event: "disconnect", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + on(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + once(event: "disconnect", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + once(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependListener(event: "disconnect", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependOnceListener(event: "disconnect", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependOnceListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this; + } + + // return this object when stdio option is undefined or not specified + interface ChildProcessWithoutNullStreams extends ChildProcess { + stdin: Writable; + stdout: Readable; + stderr: Readable; + readonly stdio: [ + Writable, // stdin + Readable, // stdout + Readable, // stderr + Readable | Writable | null | undefined, // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + + // return this object when stdio option is a tuple of 3 + interface ChildProcessByStdio< + I extends null | Writable, + O extends null | Readable, + E extends null | Readable, + > extends ChildProcess { + stdin: I; + stdout: O; + stderr: E; + readonly stdio: [ + I, + O, + E, + Readable | Writable | null | undefined, // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + + interface MessageOptions { + keepOpen?: boolean; + } + + type StdioOptions = "pipe" | "ignore" | "inherit" | Array<("pipe" | "ipc" | "ignore" | "inherit" | Stream | number | null | undefined)>; + + type SerializationType = 'json' | 'advanced'; + + interface MessagingOptions { + /** + * Specify the kind of serialization used for sending messages between processes. + * @default 'json' + */ + serialization?: SerializationType; + } + + interface ProcessEnvOptions { + uid?: number; + gid?: number; + cwd?: string; + env?: NodeJS.ProcessEnv; + } + + interface CommonOptions extends ProcessEnvOptions { + /** + * @default true + */ + windowsHide?: boolean; + /** + * @default 0 + */ + timeout?: number; + } + + interface CommonSpawnOptions extends CommonOptions, MessagingOptions { + argv0?: string; + stdio?: StdioOptions; + shell?: boolean | string; + windowsVerbatimArguments?: boolean; + } + + interface SpawnOptions extends CommonSpawnOptions { + detached?: boolean; + } + + interface SpawnOptionsWithoutStdio extends SpawnOptions { + stdio?: 'pipe' | Array; + } + + type StdioNull = 'inherit' | 'ignore' | Stream; + type StdioPipe = undefined | null | 'pipe'; + + interface SpawnOptionsWithStdioTuple< + Stdin extends StdioNull | StdioPipe, + Stdout extends StdioNull | StdioPipe, + Stderr extends StdioNull | StdioPipe, + > extends SpawnOptions { + stdio: [Stdin, Stdout, Stderr]; + } + + // overloads of spawn without 'args' + function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + + function spawn(command: string, options: SpawnOptions): ChildProcess; + + // overloads of spawn with 'args' + function spawn(command: string, args?: ReadonlyArray, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + + function spawn(command: string, args: ReadonlyArray, options: SpawnOptions): ChildProcess; + + interface ExecOptions extends CommonOptions { + shell?: string; + maxBuffer?: number; + killSignal?: NodeJS.Signals | number; + } + + interface ExecOptionsWithStringEncoding extends ExecOptions { + encoding: BufferEncoding; + } + + interface ExecOptionsWithBufferEncoding extends ExecOptions { + encoding: BufferEncoding | null; // specify `null`. + } + + interface ExecException extends Error { + cmd?: string; + killed?: boolean; + code?: number; + signal?: NodeJS.Signals; + } + + // no `options` definitely means stdout/stderr are `string`. + function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function exec(command: string, options: { encoding: "buffer" | null } & ExecOptions, callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function exec(command: string, options: { encoding: BufferEncoding } & ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function exec( + command: string, + options: { encoding: BufferEncoding } & ExecOptions, + callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, + ): ChildProcess; + + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function exec( + command: string, + options: (BaseEncodingOptions & ExecOptions) | undefined | null, + callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, + ): ChildProcess; + + interface PromiseWithChild extends Promise { + child: ChildProcess; + } + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace exec { + function __promisify__(command: string): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(command: string, options: { encoding: "buffer" | null } & ExecOptions): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>; + function __promisify__(command: string, options: { encoding: BufferEncoding } & ExecOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(command: string, options: ExecOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(command: string, options?: (BaseEncodingOptions & ExecOptions) | null): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + } + + interface ExecFileOptions extends CommonOptions { + maxBuffer?: number; + killSignal?: NodeJS.Signals | number; + windowsVerbatimArguments?: boolean; + shell?: boolean | string; + } + interface ExecFileOptionsWithStringEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions { + encoding: 'buffer' | null; + } + interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + type ExecFileException = ExecException & NodeJS.ErrnoException; + + function execFile(file: string): ChildProcess; + function execFile(file: string, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess; + function execFile(file: string, args?: ReadonlyArray | null): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess; + + // no `options` definitely means stdout/stderr are `string`. + function execFile(file: string, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithBufferEncoding, + callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void, + ): ChildProcess; + + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithStringEncoding, + callback: (error: ExecFileException | null, stdout: string, stderr: string) => void, + ): ChildProcess; + + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function execFile( + file: string, + options: ExecFileOptionsWithOtherEncoding, + callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void, + ): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithOtherEncoding, + callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void, + ): ChildProcess; + + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptions, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptions, + callback: (error: ExecFileException | null, stdout: string, stderr: string) => void + ): ChildProcess; + + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function execFile( + file: string, + options: (BaseEncodingOptions & ExecFileOptions) | undefined | null, + callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null, + ): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: (BaseEncodingOptions & ExecFileOptions) | undefined | null, + callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null, + ): ChildProcess; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace execFile { + function __promisify__(file: string): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, args: ReadonlyArray | undefined | null): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>; + function __promisify__(file: string, args: ReadonlyArray | undefined | null, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>; + function __promisify__(file: string, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, args: ReadonlyArray | undefined | null, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, options: ExecFileOptionsWithOtherEncoding): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithOtherEncoding, + ): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + function __promisify__(file: string, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, args: ReadonlyArray | undefined | null, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: (BaseEncodingOptions & ExecFileOptions) | undefined | null, + ): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + } + + interface ForkOptions extends ProcessEnvOptions, MessagingOptions { + execPath?: string; + execArgv?: string[]; + silent?: boolean; + stdio?: StdioOptions; + detached?: boolean; + windowsVerbatimArguments?: boolean; + } + function fork(modulePath: string, options?: ForkOptions): ChildProcess; + function fork(modulePath: string, args?: ReadonlyArray, options?: ForkOptions): ChildProcess; + + interface SpawnSyncOptions extends CommonSpawnOptions { + input?: string | NodeJS.ArrayBufferView; + killSignal?: NodeJS.Signals | number; + maxBuffer?: number; + encoding?: BufferEncoding | 'buffer' | null; + } + interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions { + encoding: BufferEncoding; + } + interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions { + encoding?: 'buffer' | null; + } + interface SpawnSyncReturns { + pid: number; + output: string[]; + stdout: T; + stderr: T; + status: number | null; + signal: NodeJS.Signals | null; + error?: Error; + } + function spawnSync(command: string): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptions): SpawnSyncReturns; + + interface ExecSyncOptions extends CommonOptions { + input?: string | Uint8Array; + stdio?: StdioOptions; + shell?: string; + killSignal?: NodeJS.Signals | number; + maxBuffer?: number; + encoding?: BufferEncoding | 'buffer' | null; + } + interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions { + encoding: BufferEncoding; + } + interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions { + encoding?: 'buffer' | null; + } + function execSync(command: string): Buffer; + function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string; + function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer; + function execSync(command: string, options?: ExecSyncOptions): Buffer; + + interface ExecFileSyncOptions extends CommonOptions { + input?: string | NodeJS.ArrayBufferView; + stdio?: StdioOptions; + killSignal?: NodeJS.Signals | number; + maxBuffer?: number; + encoding?: BufferEncoding; + shell?: boolean | string; + } + interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions { + encoding: BufferEncoding; + } + interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions { + encoding: BufferEncoding; // specify `null`. + } + function execFileSync(command: string): Buffer; + function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer; + function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptions): Buffer; +} diff --git a/justdanceonline-main/node_modules/@types/node/cluster.d.ts b/justdanceonline-main/node_modules/@types/node/cluster.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..5117639346014fceeedfc4a4a21c435156cb0e41 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/cluster.d.ts @@ -0,0 +1,262 @@ +declare module 'cluster' { + import * as child from 'child_process'; + import EventEmitter = require('events'); + import * as net from 'net'; + + // interfaces + interface ClusterSettings { + execArgv?: string[]; // default: process.execArgv + exec?: string; + args?: string[]; + silent?: boolean; + stdio?: any[]; + uid?: number; + gid?: number; + inspectPort?: number | (() => number); + } + + interface Address { + address: string; + port: number; + addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6" + } + + class Worker extends EventEmitter { + id: number; + process: child.ChildProcess; + send(message: child.Serializable, sendHandle?: child.SendHandle, callback?: (error: Error | null) => void): boolean; + kill(signal?: string): void; + destroy(signal?: string): void; + disconnect(): void; + isConnected(): boolean; + isDead(): boolean; + exitedAfterDisconnect: boolean; + + /** + * events.EventEmitter + * 1. disconnect + * 2. error + * 3. exit + * 4. listening + * 5. message + * 6. online + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "disconnect", listener: () => void): this; + addListener(event: "error", listener: (error: Error) => void): this; + addListener(event: "exit", listener: (code: number, signal: string) => void): this; + addListener(event: "listening", listener: (address: Address) => void): this; + addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: "online", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "disconnect"): boolean; + emit(event: "error", error: Error): boolean; + emit(event: "exit", code: number, signal: string): boolean; + emit(event: "listening", address: Address): boolean; + emit(event: "message", message: any, handle: net.Socket | net.Server): boolean; + emit(event: "online"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "disconnect", listener: () => void): this; + on(event: "error", listener: (error: Error) => void): this; + on(event: "exit", listener: (code: number, signal: string) => void): this; + on(event: "listening", listener: (address: Address) => void): this; + on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: "online", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "disconnect", listener: () => void): this; + once(event: "error", listener: (error: Error) => void): this; + once(event: "exit", listener: (code: number, signal: string) => void): this; + once(event: "listening", listener: (address: Address) => void): this; + once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: "online", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "disconnect", listener: () => void): this; + prependListener(event: "error", listener: (error: Error) => void): this; + prependListener(event: "exit", listener: (code: number, signal: string) => void): this; + prependListener(event: "listening", listener: (address: Address) => void): this; + prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: "online", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "disconnect", listener: () => void): this; + prependOnceListener(event: "error", listener: (error: Error) => void): this; + prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this; + prependOnceListener(event: "listening", listener: (address: Address) => void): this; + prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: "online", listener: () => void): this; + } + + interface Cluster extends EventEmitter { + Worker: Worker; + disconnect(callback?: () => void): void; + fork(env?: any): Worker; + isMaster: boolean; + isWorker: boolean; + schedulingPolicy: number; + settings: ClusterSettings; + setupMaster(settings?: ClusterSettings): void; + worker?: Worker; + workers?: NodeJS.Dict; + + readonly SCHED_NONE: number; + readonly SCHED_RR: number; + + /** + * events.EventEmitter + * 1. disconnect + * 2. exit + * 3. fork + * 4. listening + * 5. message + * 6. online + * 7. setup + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "disconnect", listener: (worker: Worker) => void): this; + addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + addListener(event: "fork", listener: (worker: Worker) => void): this; + addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; + addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: "online", listener: (worker: Worker) => void): this; + addListener(event: "setup", listener: (settings: ClusterSettings) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "disconnect", worker: Worker): boolean; + emit(event: "exit", worker: Worker, code: number, signal: string): boolean; + emit(event: "fork", worker: Worker): boolean; + emit(event: "listening", worker: Worker, address: Address): boolean; + emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean; + emit(event: "online", worker: Worker): boolean; + emit(event: "setup", settings: ClusterSettings): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "disconnect", listener: (worker: Worker) => void): this; + on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + on(event: "fork", listener: (worker: Worker) => void): this; + on(event: "listening", listener: (worker: Worker, address: Address) => void): this; + on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: "online", listener: (worker: Worker) => void): this; + on(event: "setup", listener: (settings: ClusterSettings) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "disconnect", listener: (worker: Worker) => void): this; + once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + once(event: "fork", listener: (worker: Worker) => void): this; + once(event: "listening", listener: (worker: Worker, address: Address) => void): this; + once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: "online", listener: (worker: Worker) => void): this; + once(event: "setup", listener: (settings: ClusterSettings) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "disconnect", listener: (worker: Worker) => void): this; + prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + prependListener(event: "fork", listener: (worker: Worker) => void): this; + prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; + prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: "online", listener: (worker: Worker) => void): this; + prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this; + prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + prependOnceListener(event: "fork", listener: (worker: Worker) => void): this; + prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; + // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; + prependOnceListener(event: "online", listener: (worker: Worker) => void): this; + prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this; + } + + const SCHED_NONE: number; + const SCHED_RR: number; + + function disconnect(callback?: () => void): void; + function fork(env?: any): Worker; + const isMaster: boolean; + const isWorker: boolean; + let schedulingPolicy: number; + const settings: ClusterSettings; + function setupMaster(settings?: ClusterSettings): void; + const worker: Worker; + const workers: NodeJS.Dict; + + /** + * events.EventEmitter + * 1. disconnect + * 2. exit + * 3. fork + * 4. listening + * 5. message + * 6. online + * 7. setup + */ + function addListener(event: string, listener: (...args: any[]) => void): Cluster; + function addListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function addListener(event: "fork", listener: (worker: Worker) => void): Cluster; + function addListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + // the handle is a net.Socket or net.Server object, or undefined. + function addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; + function addListener(event: "online", listener: (worker: Worker) => void): Cluster; + function addListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function emit(event: string | symbol, ...args: any[]): boolean; + function emit(event: "disconnect", worker: Worker): boolean; + function emit(event: "exit", worker: Worker, code: number, signal: string): boolean; + function emit(event: "fork", worker: Worker): boolean; + function emit(event: "listening", worker: Worker, address: Address): boolean; + function emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean; + function emit(event: "online", worker: Worker): boolean; + function emit(event: "setup", settings: ClusterSettings): boolean; + + function on(event: string, listener: (...args: any[]) => void): Cluster; + function on(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function on(event: "fork", listener: (worker: Worker) => void): Cluster; + function on(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + function on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined. + function on(event: "online", listener: (worker: Worker) => void): Cluster; + function on(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function once(event: string, listener: (...args: any[]) => void): Cluster; + function once(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function once(event: "fork", listener: (worker: Worker) => void): Cluster; + function once(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + function once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined. + function once(event: "online", listener: (worker: Worker) => void): Cluster; + function once(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function removeListener(event: string, listener: (...args: any[]) => void): Cluster; + function removeAllListeners(event?: string): Cluster; + function setMaxListeners(n: number): Cluster; + function getMaxListeners(): number; + function listeners(event: string): Function[]; + function listenerCount(type: string): number; + + function prependListener(event: string, listener: (...args: any[]) => void): Cluster; + function prependListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function prependListener(event: "fork", listener: (worker: Worker) => void): Cluster; + function prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + // the handle is a net.Socket or net.Server object, or undefined. + function prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; + function prependListener(event: "online", listener: (worker: Worker) => void): Cluster; + function prependListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function prependOnceListener(event: string, listener: (...args: any[]) => void): Cluster; + function prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function prependOnceListener(event: "fork", listener: (worker: Worker) => void): Cluster; + function prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + // the handle is a net.Socket or net.Server object, or undefined. + function prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; + function prependOnceListener(event: "online", listener: (worker: Worker) => void): Cluster; + function prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function eventNames(): string[]; +} diff --git a/justdanceonline-main/node_modules/@types/node/console.d.ts b/justdanceonline-main/node_modules/@types/node/console.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..102042cc75faf1125dc6afee59d3720fc89e8149 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/console.d.ts @@ -0,0 +1,133 @@ +declare module 'console' { + import { InspectOptions } from 'util'; + + global { + // This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build + interface Console { + Console: NodeJS.ConsoleConstructor; + /** + * A simple assertion test that verifies whether `value` is truthy. + * If it is not, an `AssertionError` is thrown. + * If provided, the error `message` is formatted using `util.format()` and used as the error message. + */ + assert(value: any, message?: string, ...optionalParams: any[]): void; + /** + * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the TTY. + * When `stdout` is not a TTY, this method does nothing. + */ + clear(): void; + /** + * Maintains an internal counter specific to `label` and outputs to `stdout` the number of times `console.count()` has been called with the given `label`. + */ + count(label?: string): void; + /** + * Resets the internal counter specific to `label`. + */ + countReset(label?: string): void; + /** + * The `console.debug()` function is an alias for {@link console.log()}. + */ + debug(message?: any, ...optionalParams: any[]): void; + /** + * Uses {@link util.inspect()} on `obj` and prints the resulting string to `stdout`. + * This function bypasses any custom `inspect()` function defined on `obj`. + */ + dir(obj: any, options?: InspectOptions): void; + /** + * This method calls {@link console.log()} passing it the arguments received. Please note that this method does not produce any XML formatting + */ + dirxml(...data: any[]): void; + /** + * Prints to `stderr` with newline. + */ + error(message?: any, ...optionalParams: any[]): void; + /** + * Increases indentation of subsequent lines by two spaces. + * If one or more `label`s are provided, those are printed first without the additional indentation. + */ + group(...label: any[]): void; + /** + * The `console.groupCollapsed()` function is an alias for {@link console.group()}. + */ + groupCollapsed(...label: any[]): void; + /** + * Decreases indentation of subsequent lines by two spaces. + */ + groupEnd(): void; + /** + * The {@link console.info()} function is an alias for {@link console.log()}. + */ + info(message?: any, ...optionalParams: any[]): void; + /** + * Prints to `stdout` with newline. + */ + log(message?: any, ...optionalParams: any[]): void; + /** + * This method does not display anything unless used in the inspector. + * Prints to `stdout` the array `array` formatted as a table. + */ + table(tabularData: any, properties?: ReadonlyArray): void; + /** + * Starts a timer that can be used to compute the duration of an operation. Timers are identified by a unique `label`. + */ + time(label?: string): void; + /** + * Stops a timer that was previously started by calling {@link console.time()} and prints the result to `stdout`. + */ + timeEnd(label?: string): void; + /** + * For a timer that was previously started by calling {@link console.time()}, prints the elapsed time and other `data` arguments to `stdout`. + */ + timeLog(label?: string, ...data: any[]): void; + /** + * Prints to `stderr` the string 'Trace :', followed by the {@link util.format()} formatted message and stack trace to the current position in the code. + */ + trace(message?: any, ...optionalParams: any[]): void; + /** + * The {@link console.warn()} function is an alias for {@link console.error()}. + */ + warn(message?: any, ...optionalParams: any[]): void; + + // --- Inspector mode only --- + /** + * This method does not display anything unless used in the inspector. + * Starts a JavaScript CPU profile with an optional label. + */ + profile(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector. + */ + profileEnd(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Adds an event with the label `label` to the Timeline panel of the inspector. + */ + timeStamp(label?: string): void; + } + + var console: Console; + + namespace NodeJS { + interface ConsoleConstructorOptions { + stdout: WritableStream; + stderr?: WritableStream; + ignoreErrors?: boolean; + colorMode?: boolean | 'auto'; + inspectOptions?: InspectOptions; + } + + interface ConsoleConstructor { + prototype: Console; + new(stdout: WritableStream, stderr?: WritableStream, ignoreErrors?: boolean): Console; + new(options: ConsoleConstructorOptions): Console; + } + + interface Global { + console: typeof console; + } + } + } + + export = console; +} diff --git a/justdanceonline-main/node_modules/@types/node/constants.d.ts b/justdanceonline-main/node_modules/@types/node/constants.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..98ff97602b78c1fa3e97c4db3c670c040b5f9bf6 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/constants.d.ts @@ -0,0 +1,13 @@ +/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ +declare module 'constants' { + import { constants as osConstants, SignalConstants } from 'os'; + import { constants as cryptoConstants } from 'crypto'; + import { constants as fsConstants } from 'fs'; + + const exp: typeof osConstants.errno & + typeof osConstants.priority & + SignalConstants & + typeof cryptoConstants & + typeof fsConstants; + export = exp; +} diff --git a/justdanceonline-main/node_modules/@types/node/crypto.d.ts b/justdanceonline-main/node_modules/@types/node/crypto.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..188e02b7f79b03c87b4114b4779048fb9bfb9c7f --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/crypto.d.ts @@ -0,0 +1,1270 @@ +declare module 'crypto' { + import * as stream from 'stream'; + + interface Certificate { + /** + * @deprecated + * @param spkac + * @returns The challenge component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportChallenge(spkac: BinaryLike): Buffer; + /** + * @deprecated + * @param spkac + * @param encoding The encoding of the spkac string. + * @returns The public key component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer; + /** + * @deprecated + * @param spkac + * @returns `true` if the given `spkac` data structure is valid, + * `false` otherwise. + */ + verifySpkac(spkac: NodeJS.ArrayBufferView): boolean; + } + const Certificate: Certificate & { + /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */ + new(): Certificate; + /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */ + (): Certificate; + + /** + * @param spkac + * @returns The challenge component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportChallenge(spkac: BinaryLike): Buffer; + /** + * @param spkac + * @param encoding The encoding of the spkac string. + * @returns The public key component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer; + /** + * @param spkac + * @returns `true` if the given `spkac` data structure is valid, + * `false` otherwise. + */ + verifySpkac(spkac: NodeJS.ArrayBufferView): boolean; + }; + + namespace constants { + // https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_constants + const OPENSSL_VERSION_NUMBER: number; + + /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */ + const SSL_OP_ALL: number; + /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number; + /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_CIPHER_SERVER_PREFERENCE: number; + /** Instructs OpenSSL to use Cisco's "speshul" version of DTLS_BAD_VER. */ + const SSL_OP_CISCO_ANYCONNECT: number; + /** Instructs OpenSSL to turn on cookie exchange. */ + const SSL_OP_COOKIE_EXCHANGE: number; + /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */ + const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number; + /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */ + const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number; + /** Instructs OpenSSL to always use the tmp_rsa key when performing RSA operations. */ + const SSL_OP_EPHEMERAL_RSA: number; + /** Allows initial connection to servers that do not support RI. */ + const SSL_OP_LEGACY_SERVER_CONNECT: number; + const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number; + const SSL_OP_MICROSOFT_SESS_ID_BUG: number; + /** Instructs OpenSSL to disable the workaround for a man-in-the-middle protocol-version vulnerability in the SSL 2.0 server implementation. */ + const SSL_OP_MSIE_SSLV2_RSA_PADDING: number; + const SSL_OP_NETSCAPE_CA_DN_BUG: number; + const SSL_OP_NETSCAPE_CHALLENGE_BUG: number; + const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number; + const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number; + /** Instructs OpenSSL to disable support for SSL/TLS compression. */ + const SSL_OP_NO_COMPRESSION: number; + const SSL_OP_NO_QUERY_MTU: number; + /** Instructs OpenSSL to always start a new session when performing renegotiation. */ + const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number; + const SSL_OP_NO_SSLv2: number; + const SSL_OP_NO_SSLv3: number; + const SSL_OP_NO_TICKET: number; + const SSL_OP_NO_TLSv1: number; + const SSL_OP_NO_TLSv1_1: number; + const SSL_OP_NO_TLSv1_2: number; + const SSL_OP_PKCS1_CHECK_1: number; + const SSL_OP_PKCS1_CHECK_2: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral DH parameters. */ + const SSL_OP_SINGLE_DH_USE: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral ECDH parameters. */ + const SSL_OP_SINGLE_ECDH_USE: number; + const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number; + const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number; + const SSL_OP_TLS_BLOCK_PADDING_BUG: number; + const SSL_OP_TLS_D5_BUG: number; + /** Instructs OpenSSL to disable version rollback attack detection. */ + const SSL_OP_TLS_ROLLBACK_BUG: number; + + const ENGINE_METHOD_RSA: number; + const ENGINE_METHOD_DSA: number; + const ENGINE_METHOD_DH: number; + const ENGINE_METHOD_RAND: number; + const ENGINE_METHOD_EC: number; + const ENGINE_METHOD_CIPHERS: number; + const ENGINE_METHOD_DIGESTS: number; + const ENGINE_METHOD_PKEY_METHS: number; + const ENGINE_METHOD_PKEY_ASN1_METHS: number; + const ENGINE_METHOD_ALL: number; + const ENGINE_METHOD_NONE: number; + + const DH_CHECK_P_NOT_SAFE_PRIME: number; + const DH_CHECK_P_NOT_PRIME: number; + const DH_UNABLE_TO_CHECK_GENERATOR: number; + const DH_NOT_SUITABLE_GENERATOR: number; + + const ALPN_ENABLED: number; + + const RSA_PKCS1_PADDING: number; + const RSA_SSLV23_PADDING: number; + const RSA_NO_PADDING: number; + const RSA_PKCS1_OAEP_PADDING: number; + const RSA_X931_PADDING: number; + const RSA_PKCS1_PSS_PADDING: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */ + const RSA_PSS_SALTLEN_DIGEST: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */ + const RSA_PSS_SALTLEN_MAX_SIGN: number; + /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */ + const RSA_PSS_SALTLEN_AUTO: number; + + const POINT_CONVERSION_COMPRESSED: number; + const POINT_CONVERSION_UNCOMPRESSED: number; + const POINT_CONVERSION_HYBRID: number; + + /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */ + const defaultCoreCipherList: string; + /** Specifies the active default cipher list used by the current Node.js process (colon-separated values). */ + const defaultCipherList: string; + } + + interface HashOptions extends stream.TransformOptions { + /** + * For XOF hash functions such as `shake256`, the + * outputLength option can be used to specify the desired output length in bytes. + */ + outputLength?: number; + } + + /** @deprecated since v10.0.0 */ + const fips: boolean; + + function createHash(algorithm: string, options?: HashOptions): Hash; + function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac; + + // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings + type BinaryToTextEncoding = 'base64' | 'hex'; + type CharacterEncoding = 'utf8' | 'utf-8' | 'utf16le' | 'latin1'; + type LegacyCharacterEncoding = 'ascii' | 'binary' | 'ucs2' | 'ucs-2'; + + type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding; + + type ECDHKeyFormat = 'compressed' | 'uncompressed' | 'hybrid'; + + class Hash extends stream.Transform { + private constructor(); + copy(): Hash; + update(data: BinaryLike): Hash; + update(data: string, input_encoding: Encoding): Hash; + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + class Hmac extends stream.Transform { + private constructor(); + update(data: BinaryLike): Hmac; + update(data: string, input_encoding: Encoding): Hmac; + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + + type KeyObjectType = 'secret' | 'public' | 'private'; + + interface KeyExportOptions { + type: 'pkcs1' | 'spki' | 'pkcs8' | 'sec1'; + format: T; + cipher?: string; + passphrase?: string | Buffer; + } + + class KeyObject { + private constructor(); + asymmetricKeyType?: KeyType; + /** + * For asymmetric keys, this property represents the size of the embedded key in + * bytes. This property is `undefined` for symmetric keys. + */ + asymmetricKeySize?: number; + export(options: KeyExportOptions<'pem'>): string | Buffer; + export(options?: KeyExportOptions<'der'>): Buffer; + symmetricKeySize?: number; + type: KeyObjectType; + } + + type CipherCCMTypes = 'aes-128-ccm' | 'aes-192-ccm' | 'aes-256-ccm' | 'chacha20-poly1305'; + type CipherGCMTypes = 'aes-128-gcm' | 'aes-192-gcm' | 'aes-256-gcm'; + + type BinaryLike = string | NodeJS.ArrayBufferView; + + type CipherKey = BinaryLike | KeyObject; + + interface CipherCCMOptions extends stream.TransformOptions { + authTagLength: number; + } + interface CipherGCMOptions extends stream.TransformOptions { + authTagLength?: number; + } + /** @deprecated since v10.0.0 use `createCipheriv()` */ + function createCipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): CipherCCM; + /** @deprecated since v10.0.0 use `createCipheriv()` */ + function createCipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): CipherGCM; + /** @deprecated since v10.0.0 use `createCipheriv()` */ + function createCipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Cipher; + + function createCipheriv( + algorithm: CipherCCMTypes, + key: CipherKey, + iv: BinaryLike | null, + options: CipherCCMOptions, + ): CipherCCM; + function createCipheriv( + algorithm: CipherGCMTypes, + key: CipherKey, + iv: BinaryLike | null, + options?: CipherGCMOptions, + ): CipherGCM; + function createCipheriv( + algorithm: string, + key: CipherKey, + iv: BinaryLike | null, + options?: stream.TransformOptions, + ): Cipher; + + class Cipher extends stream.Transform { + private constructor(); + update(data: BinaryLike): Buffer; + update(data: string, input_encoding: Encoding): Buffer; + update(data: NodeJS.ArrayBufferView, input_encoding: undefined, output_encoding: Encoding): string; + update(data: string, input_encoding: Encoding | undefined, output_encoding: Encoding): string; + final(): Buffer; + final(output_encoding: BufferEncoding): string; + setAutoPadding(auto_padding?: boolean): this; + // getAuthTag(): Buffer; + // setAAD(buffer: NodeJS.ArrayBufferView): this; + } + interface CipherCCM extends Cipher { + setAAD(buffer: NodeJS.ArrayBufferView, options: { plaintextLength: number }): this; + getAuthTag(): Buffer; + } + interface CipherGCM extends Cipher { + setAAD(buffer: NodeJS.ArrayBufferView, options?: { plaintextLength: number }): this; + getAuthTag(): Buffer; + } + /** @deprecated since v10.0.0 use `createDecipheriv()` */ + function createDecipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): DecipherCCM; + /** @deprecated since v10.0.0 use `createDecipheriv()` */ + function createDecipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): DecipherGCM; + /** @deprecated since v10.0.0 use `createDecipheriv()` */ + function createDecipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Decipher; + + function createDecipheriv( + algorithm: CipherCCMTypes, + key: CipherKey, + iv: BinaryLike | null, + options: CipherCCMOptions, + ): DecipherCCM; + function createDecipheriv( + algorithm: CipherGCMTypes, + key: CipherKey, + iv: BinaryLike | null, + options?: CipherGCMOptions, + ): DecipherGCM; + function createDecipheriv( + algorithm: string, + key: CipherKey, + iv: BinaryLike | null, + options?: stream.TransformOptions, + ): Decipher; + + class Decipher extends stream.Transform { + private constructor(); + update(data: NodeJS.ArrayBufferView): Buffer; + update(data: string, input_encoding: Encoding): Buffer; + update(data: NodeJS.ArrayBufferView, input_encoding: undefined, output_encoding: Encoding): string; + update(data: string, input_encoding: Encoding | undefined, output_encoding: Encoding): string; + final(): Buffer; + final(output_encoding: BufferEncoding): string; + setAutoPadding(auto_padding?: boolean): this; + // setAuthTag(tag: NodeJS.ArrayBufferView): this; + // setAAD(buffer: NodeJS.ArrayBufferView): this; + } + interface DecipherCCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD(buffer: NodeJS.ArrayBufferView, options: { plaintextLength: number }): this; + } + interface DecipherGCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD(buffer: NodeJS.ArrayBufferView, options?: { plaintextLength: number }): this; + } + + interface PrivateKeyInput { + key: string | Buffer; + format?: KeyFormat; + type?: 'pkcs1' | 'pkcs8' | 'sec1'; + passphrase?: string | Buffer; + } + + interface PublicKeyInput { + key: string | Buffer; + format?: KeyFormat; + type?: 'pkcs1' | 'spki'; + } + + function createPrivateKey(key: PrivateKeyInput | string | Buffer): KeyObject; + function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject): KeyObject; + function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject; + + function createSign(algorithm: string, options?: stream.WritableOptions): Signer; + + type DSAEncoding = 'der' | 'ieee-p1363'; + + interface SigningOptions { + /** + * @See crypto.constants.RSA_PKCS1_PADDING + */ + padding?: number; + saltLength?: number; + dsaEncoding?: DSAEncoding; + } + + interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions { } + interface SignKeyObjectInput extends SigningOptions { + key: KeyObject; + } + interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions { } + interface VerifyKeyObjectInput extends SigningOptions { + key: KeyObject; + } + + type KeyLike = string | Buffer | KeyObject; + + class Signer extends stream.Writable { + private constructor(); + + update(data: BinaryLike): Signer; + update(data: string, input_encoding: Encoding): Signer; + sign(private_key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer; + sign( + private_key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, + output_format: BinaryToTextEncoding, + ): string; + } + + function createVerify(algorithm: string, options?: stream.WritableOptions): Verify; + class Verify extends stream.Writable { + private constructor(); + + update(data: BinaryLike): Verify; + update(data: string, input_encoding: Encoding): Verify; + verify( + object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: NodeJS.ArrayBufferView, + ): boolean; + verify( + object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: string, + signature_format?: BinaryToTextEncoding, + ): boolean; + // https://nodejs.org/api/crypto.html#crypto_verifier_verify_object_signature_signature_format + // The signature field accepts a TypedArray type, but it is only available starting ES2017 + } + function createDiffieHellman(prime_length: number, generator?: number | NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: string, prime_encoding: BinaryToTextEncoding): DiffieHellman; + function createDiffieHellman( + prime: string, + prime_encoding: BinaryToTextEncoding, + generator: number | NodeJS.ArrayBufferView, + ): DiffieHellman; + function createDiffieHellman( + prime: string, + prime_encoding: BinaryToTextEncoding, + generator: string, + generator_encoding: BinaryToTextEncoding, + ): DiffieHellman; + class DiffieHellman { + private constructor(); + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding): string; + computeSecret(other_public_key: NodeJS.ArrayBufferView): Buffer; + computeSecret(other_public_key: string, input_encoding: BinaryToTextEncoding): Buffer; + computeSecret(other_public_key: NodeJS.ArrayBufferView, output_encoding: BinaryToTextEncoding): string; + computeSecret( + other_public_key: string, + input_encoding: BinaryToTextEncoding, + output_encoding: BinaryToTextEncoding, + ): string; + getPrime(): Buffer; + getPrime(encoding: BinaryToTextEncoding): string; + getGenerator(): Buffer; + getGenerator(encoding: BinaryToTextEncoding): string; + getPublicKey(): Buffer; + getPublicKey(encoding: BinaryToTextEncoding): string; + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + setPublicKey(public_key: NodeJS.ArrayBufferView): void; + setPublicKey(public_key: string, encoding: BufferEncoding): void; + setPrivateKey(private_key: NodeJS.ArrayBufferView): void; + setPrivateKey(private_key: string, encoding: BufferEncoding): void; + verifyError: number; + } + function getDiffieHellman(group_name: string): DiffieHellman; + function pbkdf2( + password: BinaryLike, + salt: BinaryLike, + iterations: number, + keylen: number, + digest: string, + callback: (err: Error | null, derivedKey: Buffer) => any, + ): void; + function pbkdf2Sync( + password: BinaryLike, + salt: BinaryLike, + iterations: number, + keylen: number, + digest: string, + ): Buffer; + + function randomBytes(size: number): Buffer; + function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + function pseudoRandomBytes(size: number): Buffer; + function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + + function randomInt(max: number): number; + function randomInt(min: number, max: number): number; + function randomInt(max: number, callback: (err: Error | null, value: number) => void): void; + function randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void; + + function randomFillSync(buffer: T, offset?: number, size?: number): T; + function randomFill( + buffer: T, + callback: (err: Error | null, buf: T) => void, + ): void; + function randomFill( + buffer: T, + offset: number, + callback: (err: Error | null, buf: T) => void, + ): void; + function randomFill( + buffer: T, + offset: number, + size: number, + callback: (err: Error | null, buf: T) => void, + ): void; + + interface ScryptOptions { + cost?: number; + blockSize?: number; + parallelization?: number; + N?: number; + r?: number; + p?: number; + maxmem?: number; + } + function scrypt( + password: BinaryLike, + salt: BinaryLike, + keylen: number, + callback: (err: Error | null, derivedKey: Buffer) => void, + ): void; + function scrypt( + password: BinaryLike, + salt: BinaryLike, + keylen: number, + options: ScryptOptions, + callback: (err: Error | null, derivedKey: Buffer) => void, + ): void; + function scryptSync(password: BinaryLike, salt: BinaryLike, keylen: number, options?: ScryptOptions): Buffer; + + interface RsaPublicKey { + key: KeyLike; + padding?: number; + } + interface RsaPrivateKey { + key: KeyLike; + passphrase?: string; + /** + * @default 'sha1' + */ + oaepHash?: string; + oaepLabel?: NodeJS.TypedArray; + padding?: number; + } + function publicEncrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function publicDecrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function privateDecrypt(private_key: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function privateEncrypt(private_key: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function getCiphers(): string[]; + function getCurves(): string[]; + function getFips(): 1 | 0; + function getHashes(): string[]; + class ECDH { + private constructor(); + static convertKey( + key: BinaryLike, + curve: string, + inputEncoding?: BinaryToTextEncoding, + outputEncoding?: 'latin1' | 'hex' | 'base64', + format?: 'uncompressed' | 'compressed' | 'hybrid', + ): Buffer | string; + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + computeSecret(other_public_key: NodeJS.ArrayBufferView): Buffer; + computeSecret(other_public_key: string, input_encoding: BinaryToTextEncoding): Buffer; + computeSecret(other_public_key: NodeJS.ArrayBufferView, output_encoding: BinaryToTextEncoding): string; + computeSecret( + other_public_key: string, + input_encoding: BinaryToTextEncoding, + output_encoding: BinaryToTextEncoding, + ): string; + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + getPublicKey(): Buffer; + getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + setPrivateKey(private_key: NodeJS.ArrayBufferView): void; + setPrivateKey(private_key: string, encoding: BinaryToTextEncoding): void; + } + function createECDH(curve_name: string): ECDH; + function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean; + /** @deprecated since v10.0.0 */ + const DEFAULT_ENCODING: BufferEncoding; + + type KeyType = 'rsa' | 'dsa' | 'ec' | 'ed25519' | 'ed448' | 'x25519' | 'x448'; + type KeyFormat = 'pem' | 'der'; + + interface BasePrivateKeyEncodingOptions { + format: T; + cipher?: string; + passphrase?: string; + } + + interface KeyPairKeyObjectResult { + publicKey: KeyObject; + privateKey: KeyObject; + } + + interface ED25519KeyPairKeyObjectOptions { + /** + * No options. + */ + } + + interface ED448KeyPairKeyObjectOptions { + /** + * No options. + */ + } + + interface X25519KeyPairKeyObjectOptions { + /** + * No options. + */ + } + + interface X448KeyPairKeyObjectOptions { + /** + * No options. + */ + } + + interface ECKeyPairKeyObjectOptions { + /** + * Name of the curve to use. + */ + namedCurve: string; + } + + interface RSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + + /** + * @default 0x10001 + */ + publicExponent?: number; + } + + interface DSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + + /** + * Size of q in bits + */ + divisorLength: number; + } + + interface RSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * @default 0x10001 + */ + publicExponent?: number; + + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs1' | 'pkcs8'; + }; + } + + interface DSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Size of q in bits + */ + divisorLength: number; + + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + + interface ECKeyPairOptions { + /** + * Name of the curve to use. + */ + namedCurve: string; + + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'sec1' | 'pkcs8'; + }; + } + + interface ED25519KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + + interface ED448KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + + interface X25519KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + + interface X448KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + + interface KeyPairSyncResult { + publicKey: T1; + privateKey: T2; + } + + function generateKeyPairSync( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync( + type: 'ec', + options: ECKeyPairOptions<'pem', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ec', + options: ECKeyPairOptions<'pem', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ec', + options: ECKeyPairOptions<'der', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ec', + options: ECKeyPairOptions<'der', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync( + type: 'x448', + options: X448KeyPairOptions<'pem', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'x448', + options: X448KeyPairOptions<'pem', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'x448', + options: X448KeyPairOptions<'der', 'pem'>, + ): KeyPairSyncResult; + function generateKeyPairSync( + type: 'x448', + options: X448KeyPairOptions<'der', 'der'>, + ): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options?: X448KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPair( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'pem'>, + callback: (err: Error | null, publicKey: string, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'der'>, + callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'pem'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'der'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'rsa', + options: RSAKeyPairKeyObjectOptions, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + + function generateKeyPair( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'pem'>, + callback: (err: Error | null, publicKey: string, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'der'>, + callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'pem'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'der'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'dsa', + options: DSAKeyPairKeyObjectOptions, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + + function generateKeyPair( + type: 'ec', + options: ECKeyPairOptions<'pem', 'pem'>, + callback: (err: Error | null, publicKey: string, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'ec', + options: ECKeyPairOptions<'pem', 'der'>, + callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'ec', + options: ECKeyPairOptions<'der', 'pem'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'ec', + options: ECKeyPairOptions<'der', 'der'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'ec', + options: ECKeyPairKeyObjectOptions, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + + function generateKeyPair( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'pem'>, + callback: (err: Error | null, publicKey: string, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'der'>, + callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'pem'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'der'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'ed25519', + options: ED25519KeyPairKeyObjectOptions | undefined, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + + function generateKeyPair( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'pem'>, + callback: (err: Error | null, publicKey: string, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'der'>, + callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'pem'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'der'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'ed448', + options: ED448KeyPairKeyObjectOptions | undefined, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + + function generateKeyPair( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'pem'>, + callback: (err: Error | null, publicKey: string, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'der'>, + callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'pem'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'der'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'x25519', + options: X25519KeyPairKeyObjectOptions | undefined, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + + function generateKeyPair( + type: 'x448', + options: X448KeyPairOptions<'pem', 'pem'>, + callback: (err: Error | null, publicKey: string, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'x448', + options: X448KeyPairOptions<'pem', 'der'>, + callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'x448', + options: X448KeyPairOptions<'der', 'pem'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void, + ): void; + function generateKeyPair( + type: 'x448', + options: X448KeyPairOptions<'der', 'der'>, + callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void, + ): void; + function generateKeyPair( + type: 'x448', + options: X448KeyPairKeyObjectOptions | undefined, + callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void, + ): void; + + namespace generateKeyPair { + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'pem'>, + ): Promise<{ publicKey: string; privateKey: string }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'der'>, + ): Promise<{ publicKey: string; privateKey: Buffer }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'pem'>, + ): Promise<{ publicKey: Buffer; privateKey: string }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'der'>, + ): Promise<{ publicKey: Buffer; privateKey: Buffer }>; + function __promisify__(type: 'rsa', options: RSAKeyPairKeyObjectOptions): Promise; + + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'pem'>, + ): Promise<{ publicKey: string; privateKey: string }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'der'>, + ): Promise<{ publicKey: string; privateKey: Buffer }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'pem'>, + ): Promise<{ publicKey: Buffer; privateKey: string }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'der'>, + ): Promise<{ publicKey: Buffer; privateKey: Buffer }>; + function __promisify__(type: 'dsa', options: DSAKeyPairKeyObjectOptions): Promise; + + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'pem', 'pem'>, + ): Promise<{ publicKey: string; privateKey: string }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'pem', 'der'>, + ): Promise<{ publicKey: string; privateKey: Buffer }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'der', 'pem'>, + ): Promise<{ publicKey: Buffer; privateKey: string }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'der', 'der'>, + ): Promise<{ publicKey: Buffer; privateKey: Buffer }>; + function __promisify__(type: 'ec', options: ECKeyPairKeyObjectOptions): Promise; + + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'pem'>, + ): Promise<{ publicKey: string; privateKey: string }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'der'>, + ): Promise<{ publicKey: string; privateKey: Buffer }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'pem'>, + ): Promise<{ publicKey: Buffer; privateKey: string }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'der'>, + ): Promise<{ publicKey: Buffer; privateKey: Buffer }>; + function __promisify__( + type: 'ed25519', + options?: ED25519KeyPairKeyObjectOptions, + ): Promise; + + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'pem'>, + ): Promise<{ publicKey: string; privateKey: string }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'der'>, + ): Promise<{ publicKey: string; privateKey: Buffer }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'pem'>, + ): Promise<{ publicKey: Buffer; privateKey: string }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'der'>, + ): Promise<{ publicKey: Buffer; privateKey: Buffer }>; + function __promisify__(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): Promise; + + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'pem'>, + ): Promise<{ publicKey: string; privateKey: string }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'der'>, + ): Promise<{ publicKey: string; privateKey: Buffer }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'pem'>, + ): Promise<{ publicKey: Buffer; privateKey: string }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'der'>, + ): Promise<{ publicKey: Buffer; privateKey: Buffer }>; + function __promisify__( + type: 'x25519', + options?: X25519KeyPairKeyObjectOptions, + ): Promise; + + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'pem', 'pem'>, + ): Promise<{ publicKey: string; privateKey: string }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'pem', 'der'>, + ): Promise<{ publicKey: string; privateKey: Buffer }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'der', 'pem'>, + ): Promise<{ publicKey: Buffer; privateKey: string }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'der', 'der'>, + ): Promise<{ publicKey: Buffer; privateKey: Buffer }>; + function __promisify__(type: 'x448', options?: X448KeyPairKeyObjectOptions): Promise; + } + + /** + * Calculates and returns the signature for `data` using the given private key and + * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is + * dependent upon the key type (especially Ed25519 and Ed448). + * + * If `key` is not a [`KeyObject`][], this function behaves as if `key` had been + * passed to [`crypto.createPrivateKey()`][]. + */ + function sign( + algorithm: string | null | undefined, + data: NodeJS.ArrayBufferView, + key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, + ): Buffer; + + /** + * Calculates and returns the signature for `data` using the given private key and + * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is + * dependent upon the key type (especially Ed25519 and Ed448). + * + * If `key` is not a [`KeyObject`][], this function behaves as if `key` had been + * passed to [`crypto.createPublicKey()`][]. + */ + function verify( + algorithm: string | null | undefined, + data: NodeJS.ArrayBufferView, + key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: NodeJS.ArrayBufferView, + ): boolean; + + /** + * Computes the Diffie-Hellman secret based on a privateKey and a publicKey. + * Both keys must have the same asymmetricKeyType, which must be one of + * 'dh' (for Diffie-Hellman), 'ec' (for ECDH), 'x448', or 'x25519' (for ECDH-ES). + */ + function diffieHellman(options: { privateKey: KeyObject; publicKey: KeyObject }): Buffer; + + type CipherMode = 'cbc' | 'ccm' | 'cfb' | 'ctr' | 'ecb' | 'gcm' | 'ocb' | 'ofb' | 'stream' | 'wrap' | 'xts'; + + interface CipherInfoOptions { + /** + * A test key length. + */ + keyLength?: number; + /** + * A test IV length. + */ + ivLength?: number; + } + + interface CipherInfo { + /** + * The name of the cipher. + */ + name: string; + /** + * The nid of the cipher. + */ + nid: number; + /** + * The block size of the cipher in bytes. + * This property is omitted when mode is 'stream'. + */ + blockSize?: number; + /** + * The expected or default initialization vector length in bytes. + * This property is omitted if the cipher does not use an initialization vector. + */ + ivLength?: number; + /** + * The expected or default key length in bytes. + */ + keyLength: number; + /** + * The cipher mode. + */ + mode: CipherMode; + } + + /** + * Returns information about a given cipher. + * + * Some ciphers accept variable length keys and initialization vectors. + * By default, the `crypto.getCipherInfo()` method will return the default + * values for these ciphers. To test if a given key length or iv length + * is acceptable for given cipher, use the `keyLenth` and `ivLenth` options. + * If the given values are unacceptable, `undefined` will be returned. + * @param nameOrNid The name or nid of the cipher to query. + */ + function getCipherInfo(nameOrNid: string | number, options?: CipherInfoOptions): CipherInfo | undefined; + + /** + * HKDF is a simple key derivation function defined in RFC 5869. + * The given `key`, `salt` and `info` are used with the `digest` to derive a key of `keylen` bytes. + * + * The supplied `callback` function is called with two arguments: `err` and `derivedKey`. + * If an errors occurs while deriving the key, `err` will be set; otherwise `err` will be `null`. + * The successfully generated `derivedKey` will be passed to the callback as an [`ArrayBuffer`][]. + * An error will be thrown if any of the input aguments specify invalid values or types. + */ + function hkdf(digest: string, key: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: ArrayBuffer) => any): void; + + /** + * Provides a synchronous HKDF key derivation function as defined in RFC 5869. + * The given `key`, `salt` and `info` are used with the `digest` to derive a key of `keylen` bytes. + * + * The successfully generated `derivedKey` will be returned as an [`ArrayBuffer`][]. + * An error will be thrown if any of the input aguments specify invalid values or types, + * or if the derived key cannot be generated. + */ + function hkdfSync(digest: string, key: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number): ArrayBuffer; +} diff --git a/justdanceonline-main/node_modules/@types/node/dgram.d.ts b/justdanceonline-main/node_modules/@types/node/dgram.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c94eb4aed9ef74a722c97129741c0f6ba1eec5fb --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/dgram.d.ts @@ -0,0 +1,141 @@ +declare module 'dgram' { + import { AddressInfo } from 'net'; + import * as dns from 'dns'; + import EventEmitter = require('events'); + + interface RemoteInfo { + address: string; + family: 'IPv4' | 'IPv6'; + port: number; + size: number; + } + + interface BindOptions { + port?: number; + address?: string; + exclusive?: boolean; + fd?: number; + } + + type SocketType = "udp4" | "udp6"; + + interface SocketOptions { + type: SocketType; + reuseAddr?: boolean; + /** + * @default false + */ + ipv6Only?: boolean; + recvBufferSize?: number; + sendBufferSize?: number; + lookup?: (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void; + } + + function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + + class Socket extends EventEmitter { + addMembership(multicastAddress: string, multicastInterface?: string): void; + address(): AddressInfo; + bind(port?: number, address?: string, callback?: () => void): void; + bind(port?: number, callback?: () => void): void; + bind(callback?: () => void): void; + bind(options: BindOptions, callback?: () => void): void; + close(callback?: () => void): void; + connect(port: number, address?: string, callback?: () => void): void; + connect(port: number, callback: () => void): void; + disconnect(): void; + dropMembership(multicastAddress: string, multicastInterface?: string): void; + getRecvBufferSize(): number; + getSendBufferSize(): number; + ref(): this; + remoteAddress(): AddressInfo; + send(msg: string | Uint8Array | ReadonlyArray, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | ReadonlyArray, port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | ReadonlyArray, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void; + setBroadcast(flag: boolean): void; + setMulticastInterface(multicastInterface: string): void; + setMulticastLoopback(flag: boolean): void; + setMulticastTTL(ttl: number): void; + setRecvBufferSize(size: number): void; + setSendBufferSize(size: number): void; + setTTL(ttl: number): void; + unref(): this; + /** + * Tells the kernel to join a source-specific multicast channel at the given + * `sourceAddress` and `groupAddress`, using the `multicastInterface` with the + * `IP_ADD_SOURCE_MEMBERSHIP` socket option. + * If the `multicastInterface` argument + * is not specified, the operating system will choose one interface and will add + * membership to it. + * To add membership to every available interface, call + * `socket.addSourceSpecificMembership()` multiple times, once per interface. + */ + addSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void; + + /** + * Instructs the kernel to leave a source-specific multicast channel at the given + * `sourceAddress` and `groupAddress` using the `IP_DROP_SOURCE_MEMBERSHIP` + * socket option. This method is automatically called by the kernel when the + * socket is closed or the process terminates, so most apps will never have + * reason to call this. + * + * If `multicastInterface` is not specified, the operating system will attempt to + * drop membership on all valid interfaces. + */ + dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void; + + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. error + * 4. listening + * 5. message + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "connect", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "listening", listener: () => void): this; + addListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "connect"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "listening"): boolean; + emit(event: "message", msg: Buffer, rinfo: RemoteInfo): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "connect", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "listening", listener: () => void): this; + on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "connect", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "listening", listener: () => void): this; + once(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "connect", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "listening", listener: () => void): this; + prependListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "connect", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "listening", listener: () => void): this; + prependOnceListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/dns.d.ts b/justdanceonline-main/node_modules/@types/node/dns.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..62c75ef5a2101b97075b941a761a9e39a40be632 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/dns.d.ts @@ -0,0 +1,322 @@ +declare module 'dns' { + import * as dnsPromises from "dns/promises"; + + // Supported getaddrinfo flags. + export const ADDRCONFIG: number; + export const V4MAPPED: number; + /** + * If `dns.V4MAPPED` is specified, return resolved IPv6 addresses as + * well as IPv4 mapped IPv6 addresses. + */ + export const ALL: number; + + export interface LookupOptions { + family?: number; + hints?: number; + all?: boolean; + verbatim?: boolean; + } + + export interface LookupOneOptions extends LookupOptions { + all?: false; + } + + export interface LookupAllOptions extends LookupOptions { + all: true; + } + + export interface LookupAddress { + address: string; + family: number; + } + + export function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void; + export function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void; + export function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace lookup { + function __promisify__(hostname: string, options: LookupAllOptions): Promise; + function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise; + function __promisify__(hostname: string, options: LookupOptions): Promise; + } + + export function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void; + + export namespace lookupService { + function __promisify__(address: string, port: number): Promise<{ hostname: string, service: string }>; + } + + export interface ResolveOptions { + ttl: boolean; + } + + export interface ResolveWithTtlOptions extends ResolveOptions { + ttl: true; + } + + export interface RecordWithTtl { + address: string; + ttl: number; + } + + /** @deprecated Use `AnyARecord` or `AnyAaaaRecord` instead. */ + export type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord; + + export interface AnyARecord extends RecordWithTtl { + type: "A"; + } + + export interface AnyAaaaRecord extends RecordWithTtl { + type: "AAAA"; + } + + export interface CaaRecord { + critial: number; + issue?: string; + issuewild?: string; + iodef?: string; + contactemail?: string; + contactphone?: string; + } + + export interface MxRecord { + priority: number; + exchange: string; + } + + export interface AnyMxRecord extends MxRecord { + type: "MX"; + } + + export interface NaptrRecord { + flags: string; + service: string; + regexp: string; + replacement: string; + order: number; + preference: number; + } + + export interface AnyNaptrRecord extends NaptrRecord { + type: "NAPTR"; + } + + export interface SoaRecord { + nsname: string; + hostmaster: string; + serial: number; + refresh: number; + retry: number; + expire: number; + minttl: number; + } + + export interface AnySoaRecord extends SoaRecord { + type: "SOA"; + } + + export interface SrvRecord { + priority: number; + weight: number; + port: number; + name: string; + } + + export interface AnySrvRecord extends SrvRecord { + type: "SRV"; + } + + export interface AnyTxtRecord { + type: "TXT"; + entries: string[]; + } + + export interface AnyNsRecord { + type: "NS"; + value: string; + } + + export interface AnyPtrRecord { + type: "PTR"; + value: string; + } + + export interface AnyCnameRecord { + type: "CNAME"; + value: string; + } + + export type AnyRecord = AnyARecord | + AnyAaaaRecord | + AnyCnameRecord | + AnyMxRecord | + AnyNaptrRecord | + AnyNsRecord | + AnyPtrRecord | + AnySoaRecord | + AnySrvRecord | + AnyTxtRecord; + + export function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: "A", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: "AAAA", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: "ANY", callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + export function resolve(hostname: string, rrtype: "CNAME", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: "MX", callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + export function resolve(hostname: string, rrtype: "NAPTR", callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + export function resolve(hostname: string, rrtype: "NS", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: "PTR", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: "SOA", callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void; + export function resolve(hostname: string, rrtype: "SRV", callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + export function resolve(hostname: string, rrtype: "TXT", callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + export function resolve( + hostname: string, + rrtype: string, + callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void, + ): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace resolve { + function __promisify__(hostname: string, rrtype?: "A" | "AAAA" | "CNAME" | "NS" | "PTR"): Promise; + function __promisify__(hostname: string, rrtype: "ANY"): Promise; + function __promisify__(hostname: string, rrtype: "MX"): Promise; + function __promisify__(hostname: string, rrtype: "NAPTR"): Promise; + function __promisify__(hostname: string, rrtype: "SOA"): Promise; + function __promisify__(hostname: string, rrtype: "SRV"): Promise; + function __promisify__(hostname: string, rrtype: "TXT"): Promise; + function __promisify__(hostname: string, rrtype: string): Promise; + } + + export function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + export function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace resolve4 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + + export function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + export function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace resolve6 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + + export function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolveCname { + function __promisify__(hostname: string): Promise; + } + + export function resolveCaa(hostname: string, callback: (err: NodeJS.ErrnoException | null, records: CaaRecord[]) => void): void; + export namespace resolveCaa { + function __promisify__(hostname: string): Promise; + } + + export function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + export namespace resolveMx { + function __promisify__(hostname: string): Promise; + } + + export function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + export namespace resolveNaptr { + function __promisify__(hostname: string): Promise; + } + + export function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolveNs { + function __promisify__(hostname: string): Promise; + } + + export function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolvePtr { + function __promisify__(hostname: string): Promise; + } + + export function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void; + export namespace resolveSoa { + function __promisify__(hostname: string): Promise; + } + + export function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + export namespace resolveSrv { + function __promisify__(hostname: string): Promise; + } + + export function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + export namespace resolveTxt { + function __promisify__(hostname: string): Promise; + } + + export function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + export namespace resolveAny { + function __promisify__(hostname: string): Promise; + } + + export function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void; + export function setServers(servers: ReadonlyArray): void; + export function getServers(): string[]; + + // Error codes + export const NODATA: string; + export const FORMERR: string; + export const SERVFAIL: string; + export const NOTFOUND: string; + export const NOTIMP: string; + export const REFUSED: string; + export const BADQUERY: string; + export const BADNAME: string; + export const BADFAMILY: string; + export const BADRESP: string; + export const CONNREFUSED: string; + export const TIMEOUT: string; + export const EOF: string; + export const FILE: string; + export const NOMEM: string; + export const DESTRUCTION: string; + export const BADSTR: string; + export const BADFLAGS: string; + export const NONAME: string; + export const BADHINTS: string; + export const NOTINITIALIZED: string; + export const LOADIPHLPAPI: string; + export const ADDRGETNETWORKPARAMS: string; + export const CANCELLED: string; + + export interface ResolverOptions { + timeout?: number; + } + + export class Resolver { + constructor(options?: ResolverOptions); + + cancel(): void; + getServers: typeof getServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + setLocalAddress(ipv4?: string, ipv6?: string): void; + setServers: typeof setServers; + } + + export { dnsPromises as promises }; +} diff --git a/justdanceonline-main/node_modules/@types/node/dns/promises.d.ts b/justdanceonline-main/node_modules/@types/node/dns/promises.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..2feb874345f00ce2cf99ff5c254eeeae5ee55fb4 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/dns/promises.d.ts @@ -0,0 +1,97 @@ +declare module "dns/promises" { + import { + LookupAddress, + LookupOneOptions, + LookupAllOptions, + LookupOptions, + AnyRecord, + CaaRecord, + MxRecord, + NaptrRecord, + SoaRecord, + SrvRecord, + ResolveWithTtlOptions, + RecordWithTtl, + ResolveOptions, + ResolverOptions, + } from "dns"; + + function getServers(): string[]; + + function lookup(hostname: string, family: number): Promise; + function lookup(hostname: string, options: LookupOneOptions): Promise; + function lookup(hostname: string, options: LookupAllOptions): Promise; + function lookup(hostname: string, options: LookupOptions): Promise; + function lookup(hostname: string): Promise; + + function lookupService(address: string, port: number): Promise<{ hostname: string, service: string }>; + + function resolve(hostname: string): Promise; + function resolve(hostname: string, rrtype: "A"): Promise; + function resolve(hostname: string, rrtype: "AAAA"): Promise; + function resolve(hostname: string, rrtype: "ANY"): Promise; + function resolve(hostname: string, rrtype: "CAA"): Promise; + function resolve(hostname: string, rrtype: "CNAME"): Promise; + function resolve(hostname: string, rrtype: "MX"): Promise; + function resolve(hostname: string, rrtype: "NAPTR"): Promise; + function resolve(hostname: string, rrtype: "NS"): Promise; + function resolve(hostname: string, rrtype: "PTR"): Promise; + function resolve(hostname: string, rrtype: "SOA"): Promise; + function resolve(hostname: string, rrtype: "SRV"): Promise; + function resolve(hostname: string, rrtype: "TXT"): Promise; + function resolve(hostname: string, rrtype: string): Promise; + + function resolve4(hostname: string): Promise; + function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve4(hostname: string, options: ResolveOptions): Promise; + + function resolve6(hostname: string): Promise; + function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve6(hostname: string, options: ResolveOptions): Promise; + + function resolveAny(hostname: string): Promise; + + function resolveCaa(hostname: string): Promise; + + function resolveCname(hostname: string): Promise; + + function resolveMx(hostname: string): Promise; + + function resolveNaptr(hostname: string): Promise; + + function resolveNs(hostname: string): Promise; + + function resolvePtr(hostname: string): Promise; + + function resolveSoa(hostname: string): Promise; + + function resolveSrv(hostname: string): Promise; + + function resolveTxt(hostname: string): Promise; + + function reverse(ip: string): Promise; + + function setServers(servers: ReadonlyArray): void; + + class Resolver { + constructor(options?: ResolverOptions); + + cancel(): void; + getServers: typeof getServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + setLocalAddress(ipv4?: string, ipv6?: string): void; + setServers: typeof setServers; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/domain.d.ts b/justdanceonline-main/node_modules/@types/node/domain.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6423ebfce17256371c03027f2cf25e8d376d65c4 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/domain.d.ts @@ -0,0 +1,24 @@ +declare module 'domain' { + import EventEmitter = require('events'); + + global { + namespace NodeJS { + interface Domain extends EventEmitter { + run(fn: (...args: any[]) => T, ...args: any[]): T; + add(emitter: EventEmitter | Timer): void; + remove(emitter: EventEmitter | Timer): void; + bind(cb: T): T; + intercept(cb: T): T; + } + } + } + + interface Domain extends NodeJS.Domain {} + class Domain extends EventEmitter { + members: Array; + enter(): void; + exit(): void; + } + + function create(): Domain; +} diff --git a/justdanceonline-main/node_modules/@types/node/events.d.ts b/justdanceonline-main/node_modules/@types/node/events.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..90907accb0dc5b4c3c04621709d7c42c09795564 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/events.d.ts @@ -0,0 +1,82 @@ +declare module 'events' { + interface EventEmitterOptions { + /** + * Enables automatic capturing of promise rejection. + */ + captureRejections?: boolean; + } + + interface NodeEventTarget { + once(event: string | symbol, listener: (...args: any[]) => void): this; + } + + interface DOMEventTarget { + addEventListener(event: string, listener: (...args: any[]) => void, opts?: { once: boolean }): any; + } + + interface StaticEventEmitterOptions { + signal?: AbortSignal; + } + + interface EventEmitter extends NodeJS.EventEmitter {} + class EventEmitter { + constructor(options?: EventEmitterOptions); + + static once(emitter: NodeEventTarget, event: string | symbol, options?: StaticEventEmitterOptions): Promise; + static once(emitter: DOMEventTarget, event: string, options?: StaticEventEmitterOptions): Promise; + static on(emitter: NodeJS.EventEmitter, event: string, options?: StaticEventEmitterOptions): AsyncIterableIterator; + + /** @deprecated since v4.0.0 */ + static listenerCount(emitter: NodeJS.EventEmitter, event: string | symbol): number; + + /** + * This symbol shall be used to install a listener for only monitoring `'error'` + * events. Listeners installed using this symbol are called before the regular + * `'error'` listeners are called. + * + * Installing a listener using this symbol does not change the behavior once an + * `'error'` event is emitted, therefore the process will still crash if no + * regular `'error'` listener is installed. + */ + static readonly errorMonitor: unique symbol; + static readonly captureRejectionSymbol: unique symbol; + + /** + * Sets or gets the default captureRejection value for all emitters. + */ + // TODO: These should be described using static getter/setter pairs: + static captureRejections: boolean; + static defaultMaxListeners: number; + } + + import internal = require('events'); + namespace EventEmitter { + // Should just be `export { EventEmitter }`, but that doesn't work in TypeScript 3.4 + export { internal as EventEmitter }; + } + + global { + namespace NodeJS { + interface EventEmitter { + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + off(event: string | symbol, listener: (...args: any[]) => void): this; + removeAllListeners(event?: string | symbol): this; + setMaxListeners(n: number): this; + getMaxListeners(): number; + listeners(event: string | symbol): Function[]; + rawListeners(event: string | symbol): Function[]; + emit(event: string | symbol, ...args: any[]): boolean; + listenerCount(event: string | symbol): number; + // Added in Node 6... + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + eventNames(): Array; + } + } + } + + export = EventEmitter; +} diff --git a/justdanceonline-main/node_modules/@types/node/fs.d.ts b/justdanceonline-main/node_modules/@types/node/fs.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7d815909350df22d6ec6315fdb4bce432d04b510 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/fs.d.ts @@ -0,0 +1,2257 @@ +declare module 'fs' { + import * as stream from 'stream'; + import EventEmitter = require('events'); + import { URL } from 'url'; + import * as promises from 'fs/promises'; + + export { promises }; + /** + * Valid types for path values in "fs". + */ + export type PathLike = string | Buffer | URL; + + export type NoParamCallback = (err: NodeJS.ErrnoException | null) => void; + + export type BufferEncodingOption = 'buffer' | { encoding: 'buffer' }; + + export interface BaseEncodingOptions { + encoding?: BufferEncoding | null; + } + + export type OpenMode = number | string; + + export type Mode = number | string; + + export interface StatsBase { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + + dev: T; + ino: T; + mode: T; + nlink: T; + uid: T; + gid: T; + rdev: T; + size: T; + blksize: T; + blocks: T; + atimeMs: T; + mtimeMs: T; + ctimeMs: T; + birthtimeMs: T; + atime: Date; + mtime: Date; + ctime: Date; + birthtime: Date; + } + + export interface Stats extends StatsBase { + } + + export class Stats { + } + + export class Dirent { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + name: string; + } + + /** + * A class representing a directory stream. + */ + export class Dir { + readonly path: string; + + /** + * Asynchronously iterates over the directory via `readdir(3)` until all entries have been read. + */ + [Symbol.asyncIterator](): AsyncIterableIterator; + + /** + * Asynchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + */ + close(): Promise; + close(cb: NoParamCallback): void; + + /** + * Synchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + */ + closeSync(): void; + + /** + * Asynchronously read the next directory entry via `readdir(3)` as an `Dirent`. + * After the read is completed, a value is returned that will be resolved with an `Dirent`, or `null` if there are no more directory entries to read. + * Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. + */ + read(): Promise; + read(cb: (err: NodeJS.ErrnoException | null, dirEnt: Dirent | null) => void): void; + + /** + * Synchronously read the next directory entry via `readdir(3)` as a `Dirent`. + * If there are no more directory entries to read, null will be returned. + * Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. + */ + readSync(): Dirent | null; + } + + export interface FSWatcher extends EventEmitter { + close(): void; + + /** + * events.EventEmitter + * 1. change + * 2. error + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + addListener(event: "error", listener: (error: Error) => void): this; + addListener(event: "close", listener: () => void): this; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + on(event: "error", listener: (error: Error) => void): this; + on(event: "close", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + once(event: "error", listener: (error: Error) => void): this; + once(event: "close", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + prependListener(event: "error", listener: (error: Error) => void): this; + prependListener(event: "close", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + prependOnceListener(event: "error", listener: (error: Error) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + } + + export class ReadStream extends stream.Readable { + close(): void; + bytesRead: number; + path: string | Buffer; + pending: boolean; + + /** + * events.EventEmitter + * 1. open + * 2. close + * 3. ready + */ + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: Buffer | string) => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "open", listener: (fd: number) => void): this; + addListener(event: "pause", listener: () => void): this; + addListener(event: "readable", listener: () => void): this; + addListener(event: "ready", listener: () => void): this; + addListener(event: "resume", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: Buffer | string) => void): this; + on(event: "end", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "open", listener: (fd: number) => void): this; + on(event: "pause", listener: () => void): this; + on(event: "readable", listener: () => void): this; + on(event: "ready", listener: () => void): this; + on(event: "resume", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: Buffer | string) => void): this; + once(event: "end", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "open", listener: (fd: number) => void): this; + once(event: "pause", listener: () => void): this; + once(event: "readable", listener: () => void): this; + once(event: "ready", listener: () => void): this; + once(event: "resume", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "open", listener: (fd: number) => void): this; + prependListener(event: "pause", listener: () => void): this; + prependListener(event: "readable", listener: () => void): this; + prependListener(event: "ready", listener: () => void): this; + prependListener(event: "resume", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "open", listener: (fd: number) => void): this; + prependOnceListener(event: "pause", listener: () => void): this; + prependOnceListener(event: "readable", listener: () => void): this; + prependOnceListener(event: "ready", listener: () => void): this; + prependOnceListener(event: "resume", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export class WriteStream extends stream.Writable { + close(): void; + bytesWritten: number; + path: string | Buffer; + pending: boolean; + + /** + * events.EventEmitter + * 1. open + * 2. close + * 3. ready + */ + addListener(event: "close", listener: () => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "open", listener: (fd: number) => void): this; + addListener(event: "pipe", listener: (src: stream.Readable) => void): this; + addListener(event: "ready", listener: () => void): this; + addListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + on(event: "close", listener: () => void): this; + on(event: "drain", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "open", listener: (fd: number) => void): this; + on(event: "pipe", listener: (src: stream.Readable) => void): this; + on(event: "ready", listener: () => void): this; + on(event: "unpipe", listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "drain", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "open", listener: (fd: number) => void): this; + once(event: "pipe", listener: (src: stream.Readable) => void): this; + once(event: "ready", listener: () => void): this; + once(event: "unpipe", listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "open", listener: (fd: number) => void): this; + prependListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependListener(event: "ready", listener: () => void): this; + prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "open", listener: (fd: number) => void): this; + prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: "ready", listener: () => void): this; + prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function rename(oldPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace rename { + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(oldPath: PathLike, newPath: PathLike): Promise; + } + + /** + * Synchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function renameSync(oldPath: PathLike, newPath: PathLike): void; + + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + export function truncate(path: PathLike, len: number | undefined | null, callback: NoParamCallback): void; + + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function truncate(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace truncate { + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(path: PathLike, len?: number | null): Promise; + } + + /** + * Synchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + export function truncateSync(path: PathLike, len?: number | null): void; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + export function ftruncate(fd: number, len: number | undefined | null, callback: NoParamCallback): void; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + */ + export function ftruncate(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace ftruncate { + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(fd: number, len?: number | null): Promise; + } + + /** + * Synchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + export function ftruncateSync(fd: number, len?: number | null): void; + + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function chown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace chown { + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + + /** + * Synchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function chownSync(path: PathLike, uid: number, gid: number): void; + + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + export function fchown(fd: number, uid: number, gid: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace fchown { + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + function __promisify__(fd: number, uid: number, gid: number): Promise; + } + + /** + * Synchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + export function fchownSync(fd: number, uid: number, gid: number): void; + + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function lchown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace lchown { + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + + /** + * Synchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function lchownSync(path: PathLike, uid: number, gid: number): void; + + /** + * Changes the access and modification times of a file in the same way as `fs.utimes()`, + * with the difference that if the path refers to a symbolic link, then the link is not + * dereferenced: instead, the timestamps of the symbolic link itself are changed. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + export function lutimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace lutimes { + /** + * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, + * with the difference that if the path refers to a symbolic link, then the link is not + * dereferenced: instead, the timestamps of the symbolic link itself are changed. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; + } + + /** + * Change the file system timestamps of the symbolic link referenced by `path`. Returns `undefined`, + * or throws an exception when parameters are incorrect or the operation fails. + * This is the synchronous version of `fs.lutimes()`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + export function lutimesSync(path: PathLike, atime: string | number | Date, mtime: string | number | Date): void; + + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + export function chmod(path: PathLike, mode: Mode, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace chmod { + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: Mode): Promise; + } + + /** + * Synchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + export function chmodSync(path: PathLike, mode: Mode): void; + + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + export function fchmod(fd: number, mode: Mode, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace fchmod { + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(fd: number, mode: Mode): Promise; + } + + /** + * Synchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + export function fchmodSync(fd: number, mode: Mode): void; + + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + export function lchmod(path: PathLike, mode: Mode, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace lchmod { + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: Mode): Promise; + } + + /** + * Synchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + export function lchmodSync(path: PathLike, mode: Mode): void; + + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function stat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function stat(path: PathLike, options: StatOptions & { bigint?: false } | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function stat(path: PathLike, options: StatOptions & { bigint: true }, callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void): void; + export function stat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace stat { + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, options?: StatOptions & { bigint?: false }): Promise; + function __promisify__(path: PathLike, options: StatOptions & { bigint: true }): Promise; + function __promisify__(path: PathLike, options?: StatOptions): Promise; + } + + /** + * Synchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function statSync(path: PathLike, options?: StatOptions & { bigint?: false }): Stats; + export function statSync(path: PathLike, options: StatOptions & { bigint: true }): BigIntStats; + export function statSync(path: PathLike, options?: StatOptions): Stats | BigIntStats; + + /** + * Asynchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + export function fstat(fd: number, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function fstat(fd: number, options: StatOptions & { bigint?: false } | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function fstat(fd: number, options: StatOptions & { bigint: true }, callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void): void; + export function fstat(fd: number, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace fstat { + /** + * Asynchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + function __promisify__(fd: number, options?: StatOptions & { bigint?: false }): Promise; + function __promisify__(fd: number, options: StatOptions & { bigint: true }): Promise; + function __promisify__(fd: number, options?: StatOptions): Promise; + } + + /** + * Synchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + export function fstatSync(fd: number, options?: StatOptions & { bigint?: false }): Stats; + export function fstatSync(fd: number, options: StatOptions & { bigint: true }): BigIntStats; + export function fstatSync(fd: number, options?: StatOptions): Stats | BigIntStats; + + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function lstat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function lstat(path: PathLike, options: StatOptions & { bigint?: false } | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function lstat(path: PathLike, options: StatOptions & { bigint: true }, callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void): void; + export function lstat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace lstat { + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, options?: StatOptions & { bigint?: false }): Promise; + function __promisify__(path: PathLike, options: StatOptions & { bigint: true }): Promise; + function __promisify__(path: PathLike, options?: StatOptions): Promise; + } + + /** + * Synchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function lstatSync(path: PathLike, options?: StatOptions & { bigint?: false }): Stats; + export function lstatSync(path: PathLike, options: StatOptions & { bigint: true }): BigIntStats; + export function lstatSync(path: PathLike, options?: StatOptions): Stats | BigIntStats; + + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function link(existingPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace link { + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(existingPath: PathLike, newPath: PathLike): Promise; + } + + /** + * Synchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function linkSync(existingPath: PathLike, newPath: PathLike): void; + + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + export function symlink(target: PathLike, path: PathLike, type: symlink.Type | undefined | null, callback: NoParamCallback): void; + + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + */ + export function symlink(target: PathLike, path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace symlink { + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function __promisify__(target: PathLike, path: PathLike, type?: string | null): Promise; + + type Type = "dir" | "file" | "junction"; + } + + /** + * Synchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + export function symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type | null): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlink( + path: PathLike, + options: BaseEncodingOptions | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, linkString: string) => void + ): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlink(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: Buffer) => void): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlink(path: PathLike, options: BaseEncodingOptions | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, linkString: string | Buffer) => void): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function readlink(path: PathLike, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace readlink { + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: BufferEncodingOption): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: BaseEncodingOptions | string | null): Promise; + } + + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlinkSync(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): string; + + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlinkSync(path: PathLike, options: BufferEncodingOption): Buffer; + + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlinkSync(path: PathLike, options?: BaseEncodingOptions | string | null): string | Buffer; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpath( + path: PathLike, + options: BaseEncodingOptions | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void + ): void; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpath(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpath(path: PathLike, options: BaseEncodingOptions | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function realpath(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace realpath { + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: BufferEncodingOption): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: BaseEncodingOptions | string | null): Promise; + + function native( + path: PathLike, + options: BaseEncodingOptions | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void + ): void; + function native(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + function native(path: PathLike, options: BaseEncodingOptions | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + function native(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + } + + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpathSync(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): string; + + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpathSync(path: PathLike, options: BufferEncodingOption): Buffer; + + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpathSync(path: PathLike, options?: BaseEncodingOptions | string | null): string | Buffer; + + export namespace realpathSync { + function native(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): string; + function native(path: PathLike, options: BufferEncodingOption): Buffer; + function native(path: PathLike, options?: BaseEncodingOptions | string | null): string | Buffer; + } + + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function unlink(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace unlink { + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike): Promise; + } + + /** + * Synchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function unlinkSync(path: PathLike): void; + + export interface RmDirOptions { + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number; + /** + * @deprecated since v14.14.0 In future versions of Node.js, + * `fs.rmdir(path, { recursive: true })` will throw if `path` does not exist or is a file. + * Use `fs.rm(path, { recursive: true, force: true })` instead. + * + * If `true`, perform a recursive directory removal. In + * recursive mode, errors are not reported if `path` does not exist, and + * operations are retried on failure. + * @default false + */ + recursive?: boolean; + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number; + } + + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function rmdir(path: PathLike, callback: NoParamCallback): void; + export function rmdir(path: PathLike, options: RmDirOptions, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace rmdir { + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, options?: RmDirOptions): Promise; + } + + /** + * Synchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function rmdirSync(path: PathLike, options?: RmDirOptions): void; + + export interface RmOptions { + /** + * When `true`, exceptions will be ignored if `path` does not exist. + * @default false + */ + force?: boolean; + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number; + /** + * If `true`, perform a recursive directory removal. In + * recursive mode, errors are not reported if `path` does not exist, and + * operations are retried on failure. + * @default false + */ + recursive?: boolean; + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number; + } + + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility). + */ + export function rm(path: PathLike, callback: NoParamCallback): void; + export function rm(path: PathLike, options: RmOptions, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace rm { + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility). + */ + function __promisify__(path: PathLike, options?: RmOptions): Promise; + } + + /** + * Synchronously removes files and directories (modeled on the standard POSIX `rm` utility). + */ + export function rmSync(path: PathLike, options?: RmOptions): void; + + export interface MakeDirectoryOptions { + /** + * Indicates whether parent folders should be created. + * If a folder was created, the path to the first created folder will be returned. + * @default false + */ + recursive?: boolean; + /** + * A file mode. If a string is passed, it is parsed as an octal integer. If not specified + * @default 0o777 + */ + mode?: Mode; + } + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdir(path: PathLike, options: MakeDirectoryOptions & { recursive: true }, callback: (err: NodeJS.ErrnoException | null, path?: string) => void): void; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdir(path: PathLike, options: Mode | (MakeDirectoryOptions & { recursive?: false; }) | null | undefined, callback: NoParamCallback): void; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdir(path: PathLike, options: Mode | MakeDirectoryOptions | null | undefined, callback: (err: NodeJS.ErrnoException | null, path?: string) => void): void; + + /** + * Asynchronous mkdir(2) - create a directory with a mode of `0o777`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function mkdir(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace mkdir { + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__(path: PathLike, options: MakeDirectoryOptions & { recursive: true; }): Promise; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__(path: PathLike, options?: Mode | (MakeDirectoryOptions & { recursive?: false; }) | null): Promise; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise; + } + + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdirSync(path: PathLike, options: MakeDirectoryOptions & { recursive: true; }): string | undefined; + + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdirSync(path: PathLike, options?: Mode | (MakeDirectoryOptions & { recursive?: false; }) | null): void; + + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdirSync(path: PathLike, options?: Mode | MakeDirectoryOptions | null): string | undefined; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtemp(prefix: string, options: BaseEncodingOptions | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtemp(prefix: string, options: "buffer" | { encoding: "buffer" }, callback: (err: NodeJS.ErrnoException | null, folder: Buffer) => void): void; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtemp(prefix: string, options: BaseEncodingOptions | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, folder: string | Buffer) => void): void; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + */ + export function mkdtemp(prefix: string, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace mkdtemp { + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options: BufferEncodingOption): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: BaseEncodingOptions | string | null): Promise; + } + + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtempSync(prefix: string, options?: BaseEncodingOptions | BufferEncoding | null): string; + + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtempSync(prefix: string, options: BufferEncodingOption): Buffer; + + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtempSync(prefix: string, options?: BaseEncodingOptions | string | null): string | Buffer; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdir( + path: PathLike, + options: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, files: string[]) => void, + ): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer", callback: (err: NodeJS.ErrnoException | null, files: Buffer[]) => void): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdir( + path: PathLike, + options: BaseEncodingOptions & { withFileTypes?: false } | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, files: string[] | Buffer[]) => void, + ): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function readdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null, files: string[]) => void): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdir(path: PathLike, options: BaseEncodingOptions & { withFileTypes: true }, callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace readdir { + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: "buffer" | { encoding: "buffer"; withFileTypes?: false }): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: BaseEncodingOptions & { withFileTypes?: false } | BufferEncoding | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent + */ + function __promisify__(path: PathLike, options: BaseEncodingOptions & { withFileTypes: true }): Promise; + } + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdirSync(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): string[]; + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdirSync(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer"): Buffer[]; + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdirSync(path: PathLike, options?: BaseEncodingOptions & { withFileTypes?: false } | BufferEncoding | null): string[] | Buffer[]; + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdirSync(path: PathLike, options: BaseEncodingOptions & { withFileTypes: true }): Dirent[]; + + /** + * Asynchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + export function close(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace close { + /** + * Asynchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + + /** + * Synchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + export function closeSync(fd: number): void; + + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + export function open(path: PathLike, flags: OpenMode, mode: Mode | undefined | null, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function open(path: PathLike, flags: OpenMode, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace open { + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + function __promisify__(path: PathLike, flags: OpenMode, mode?: Mode | null): Promise; + } + + /** + * Synchronous open(2) - open and possibly create a file, returning a file descriptor.. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + export function openSync(path: PathLike, flags: OpenMode, mode?: Mode | null): number; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + export function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace utimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; + } + + /** + * Synchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + export function utimesSync(path: PathLike, atime: string | number | Date, mtime: string | number | Date): void; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + export function futimes(fd: number, atime: string | number | Date, mtime: string | number | Date, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace futimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(fd: number, atime: string | number | Date, mtime: string | number | Date): Promise; + } + + /** + * Synchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + export function futimesSync(fd: number, atime: string | number | Date, mtime: string | number | Date): void; + + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + export function fsync(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace fsync { + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + + /** + * Synchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + export function fsyncSync(fd: number): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + position: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + */ + export function write(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void): void; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + export function write( + fd: number, + string: string, + position: number | undefined | null, + encoding: BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void, + ): void; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + export function write(fd: number, string: string, position: number | undefined | null, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + */ + export function write(fd: number, string: string, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace write { + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function __promisify__( + fd: number, + buffer?: TBuffer, + offset?: number, + length?: number, + position?: number | null, + ): Promise<{ bytesWritten: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function __promisify__(fd: number, string: string, position?: number | null, encoding?: BufferEncoding | null): Promise<{ bytesWritten: number, buffer: string }>; + } + + /** + * Synchronously writes `buffer` to the file referenced by the supplied file descriptor, returning the number of bytes written. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + export function writeSync(fd: number, buffer: NodeJS.ArrayBufferView, offset?: number | null, length?: number | null, position?: number | null): number; + + /** + * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + export function writeSync(fd: number, string: string, position?: number | null, encoding?: BufferEncoding | null): number; + + /** + * Asynchronously reads data from the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + export function read( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: number | null, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void, + ): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace read { + /** + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + function __promisify__( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: number | null + ): Promise<{ bytesRead: number, buffer: TBuffer }>; + } + + export interface ReadSyncOptions { + /** + * @default 0 + */ + offset?: number; + /** + * @default `length of buffer` + */ + length?: number; + /** + * @default null + */ + position?: number | null; + } + + /** + * Synchronously reads data from the file referenced by the supplied file descriptor, returning the number of bytes read. + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, offset: number, length: number, position: number | null): number; + + /** + * Similar to the above `fs.readSync` function, this version takes an optional `options` object. + * If no `options` object is specified, it will default with the above values. + */ + export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, opts?: ReadSyncOptions): number; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFile(path: PathLike | number, options: { encoding?: null; flag?: string; } | undefined | null, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFile(path: PathLike | number, options: { encoding: BufferEncoding; flag?: string; } | string, callback: (err: NodeJS.ErrnoException | null, data: string) => void): void; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFile( + path: PathLike | number, + options: BaseEncodingOptions & { flag?: string; } | string | undefined | null, + callback: (err: NodeJS.ErrnoException | null, data: string | Buffer) => void, + ): void; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + */ + export function readFile(path: PathLike | number, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace readFile { + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__(path: PathLike | number, options?: { encoding?: null; flag?: string; } | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__(path: PathLike | number, options: { encoding: BufferEncoding; flag?: string; } | string): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__(path: PathLike | number, options?: BaseEncodingOptions & { flag?: string; } | string | null): Promise; + } + + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. If a flag is not provided, it defaults to `'r'`. + */ + export function readFileSync(path: PathLike | number, options?: { encoding?: null; flag?: string; } | null): Buffer; + + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFileSync(path: PathLike | number, options: { encoding: BufferEncoding; flag?: string; } | BufferEncoding): string; + + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFileSync(path: PathLike | number, options?: BaseEncodingOptions & { flag?: string; } | BufferEncoding | null): string | Buffer; + + export type WriteFileOptions = BaseEncodingOptions & { mode?: Mode; flag?: string; } | string | null; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + export function writeFile(path: PathLike | number, data: string | NodeJS.ArrayBufferView, options: WriteFileOptions, callback: NoParamCallback): void; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + export function writeFile(path: PathLike | number, data: string | NodeJS.ArrayBufferView, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace writeFile { + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function __promisify__(path: PathLike | number, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): Promise; + } + + /** + * Synchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + export function writeFileSync(path: PathLike | number, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): void; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + export function appendFile(file: PathLike | number, data: string | Uint8Array, options: WriteFileOptions, callback: NoParamCallback): void; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + export function appendFile(file: PathLike | number, data: string | Uint8Array, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace appendFile { + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function __promisify__(file: PathLike | number, data: string | Uint8Array, options?: WriteFileOptions): Promise; + } + + /** + * Synchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + export function appendFileSync(file: PathLike | number, data: string | Uint8Array, options?: WriteFileOptions): void; + + /** + * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. + */ + export function watchFile(filename: PathLike, options: { persistent?: boolean; interval?: number; } | undefined, listener: (curr: Stats, prev: Stats) => void): void; + + /** + * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function watchFile(filename: PathLike, listener: (curr: Stats, prev: Stats) => void): void; + + /** + * Stop watching for changes on `filename`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function unwatchFile(filename: PathLike, listener?: (curr: Stats, prev: Stats) => void): void; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch( + filename: PathLike, + options: { encoding?: BufferEncoding | null, persistent?: boolean, recursive?: boolean } | BufferEncoding | undefined | null, + listener?: (event: "rename" | "change", filename: string) => void, + ): FSWatcher; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch( + filename: PathLike, + options: { encoding: "buffer", persistent?: boolean, recursive?: boolean; } | "buffer", + listener?: (event: "rename" | "change", filename: Buffer) => void + ): FSWatcher; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch( + filename: PathLike, + options: { encoding?: BufferEncoding | null, persistent?: boolean, recursive?: boolean } | string | null, + listener?: (event: "rename" | "change", filename: string | Buffer) => void, + ): FSWatcher; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function watch(filename: PathLike, listener?: (event: "rename" | "change", filename: string) => any): FSWatcher; + + /** + * Asynchronously tests whether or not the given path exists by checking with the file system. + * @deprecated since v1.0.0 Use `fs.stat()` or `fs.access()` instead + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function exists(path: PathLike, callback: (exists: boolean) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace exists { + /** + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike): Promise; + } + + /** + * Synchronously tests whether or not the given path exists by checking with the file system. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function existsSync(path: PathLike): boolean; + + export namespace constants { + // File Access Constants + + /** Constant for fs.access(). File is visible to the calling process. */ + const F_OK: number; + + /** Constant for fs.access(). File can be read by the calling process. */ + const R_OK: number; + + /** Constant for fs.access(). File can be written by the calling process. */ + const W_OK: number; + + /** Constant for fs.access(). File can be executed by the calling process. */ + const X_OK: number; + + // File Copy Constants + + /** Constant for fs.copyFile. Flag indicating the destination file should not be overwritten if it already exists. */ + const COPYFILE_EXCL: number; + + /** + * Constant for fs.copyFile. copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used. + */ + const COPYFILE_FICLONE: number; + + /** + * Constant for fs.copyFile. Copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then the operation will fail with an error. + */ + const COPYFILE_FICLONE_FORCE: number; + + // File Open Constants + + /** Constant for fs.open(). Flag indicating to open a file for read-only access. */ + const O_RDONLY: number; + + /** Constant for fs.open(). Flag indicating to open a file for write-only access. */ + const O_WRONLY: number; + + /** Constant for fs.open(). Flag indicating to open a file for read-write access. */ + const O_RDWR: number; + + /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */ + const O_CREAT: number; + + /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */ + const O_EXCL: number; + + /** + * Constant for fs.open(). Flag indicating that if path identifies a terminal device, + * opening the path shall not cause that terminal to become the controlling terminal for the process + * (if the process does not already have one). + */ + const O_NOCTTY: number; + + /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */ + const O_TRUNC: number; + + /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */ + const O_APPEND: number; + + /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */ + const O_DIRECTORY: number; + + /** + * constant for fs.open(). + * Flag indicating reading accesses to the file system will no longer result in + * an update to the atime information associated with the file. + * This flag is available on Linux operating systems only. + */ + const O_NOATIME: number; + + /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */ + const O_NOFOLLOW: number; + + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */ + const O_SYNC: number; + + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O with write operations waiting for data integrity. */ + const O_DSYNC: number; + + /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */ + const O_SYMLINK: number; + + /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */ + const O_DIRECT: number; + + /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */ + const O_NONBLOCK: number; + + // File Type Constants + + /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */ + const S_IFMT: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */ + const S_IFREG: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */ + const S_IFDIR: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */ + const S_IFCHR: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */ + const S_IFBLK: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */ + const S_IFIFO: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */ + const S_IFLNK: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */ + const S_IFSOCK: number; + + // File Mode Constants + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */ + const S_IRWXU: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */ + const S_IRUSR: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */ + const S_IWUSR: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */ + const S_IXUSR: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */ + const S_IRWXG: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */ + const S_IRGRP: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */ + const S_IWGRP: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */ + const S_IXGRP: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */ + const S_IRWXO: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */ + const S_IROTH: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */ + const S_IWOTH: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */ + const S_IXOTH: number; + + /** + * When set, a memory file mapping is used to access the file. This flag + * is available on Windows operating systems only. On other operating systems, + * this flag is ignored. + */ + const UV_FS_O_FILEMAP: number; + } + + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function access(path: PathLike, mode: number | undefined, callback: NoParamCallback): void; + + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function access(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace access { + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike, mode?: number): Promise; + } + + /** + * Synchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function accessSync(path: PathLike, mode?: number): void; + + /** + * Returns a new `ReadStream` object. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function createReadStream(path: PathLike, options?: string | { + flags?: string; + encoding?: BufferEncoding; + fd?: number; + mode?: number; + autoClose?: boolean; + /** + * @default false + */ + emitClose?: boolean; + start?: number; + end?: number; + highWaterMark?: number; + }): ReadStream; + + /** + * Returns a new `WriteStream` object. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + export function createWriteStream(path: PathLike, options?: string | { + flags?: string; + encoding?: BufferEncoding; + fd?: number; + mode?: number; + autoClose?: boolean; + emitClose?: boolean; + start?: number; + highWaterMark?: number; + }): WriteStream; + + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + export function fdatasync(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace fdatasync { + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + + /** + * Synchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + export function fdatasyncSync(fd: number): void; + + /** + * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. + * No arguments other than a possible exception are given to the callback function. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + */ + export function copyFile(src: PathLike, dest: PathLike, callback: NoParamCallback): void; + /** + * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. + * No arguments other than a possible exception are given to the callback function. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An integer that specifies the behavior of the copy operation. The only supported flag is fs.constants.COPYFILE_EXCL, which causes the copy operation to fail if dest already exists. + */ + export function copyFile(src: PathLike, dest: PathLike, flags: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + export namespace copyFile { + /** + * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. + * No arguments other than a possible exception are given to the callback function. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An optional integer that specifies the behavior of the copy operation. + * The only supported flag is fs.constants.COPYFILE_EXCL, + * which causes the copy operation to fail if dest already exists. + */ + function __promisify__(src: PathLike, dst: PathLike, flags?: number): Promise; + } + + /** + * Synchronously copies src to dest. By default, dest is overwritten if it already exists. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An optional integer that specifies the behavior of the copy operation. + * The only supported flag is fs.constants.COPYFILE_EXCL, which causes the copy operation to fail if dest already exists. + */ + export function copyFileSync(src: PathLike, dest: PathLike, flags?: number): void; + + /** + * Write an array of ArrayBufferViews to the file specified by fd using writev(). + * position is the offset from the beginning of the file where this data should be written. + * It is unsafe to use fs.writev() multiple times on the same file without waiting for the callback. For this scenario, use fs.createWriteStream(). + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to the end of the file. + */ + export function writev( + fd: number, + buffers: ReadonlyArray, + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + export function writev( + fd: number, + buffers: ReadonlyArray, + position: number, + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + + export interface WriteVResult { + bytesWritten: number; + buffers: NodeJS.ArrayBufferView[]; + } + + export namespace writev { + function __promisify__(fd: number, buffers: ReadonlyArray, position?: number): Promise; + } + + /** + * See `writev`. + */ + export function writevSync(fd: number, buffers: ReadonlyArray, position?: number): number; + + export function readv( + fd: number, + buffers: ReadonlyArray, + cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + export function readv( + fd: number, + buffers: ReadonlyArray, + position: number, + cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + + export interface ReadVResult { + bytesRead: number; + buffers: NodeJS.ArrayBufferView[]; + } + + export namespace readv { + function __promisify__(fd: number, buffers: ReadonlyArray, position?: number): Promise; + } + + /** + * See `readv`. + */ + export function readvSync(fd: number, buffers: ReadonlyArray, position?: number): number; + + export interface OpenDirOptions { + encoding?: BufferEncoding; + /** + * Number of directory entries that are buffered + * internally when reading from the directory. Higher values lead to better + * performance but higher memory usage. + * @default 32 + */ + bufferSize?: number; + } + + export function opendirSync(path: string, options?: OpenDirOptions): Dir; + + export function opendir(path: string, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + export function opendir(path: string, options: OpenDirOptions, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + + export namespace opendir { + function __promisify__(path: string, options?: OpenDirOptions): Promise; + } + + export interface BigIntStats extends StatsBase { + } + + export class BigIntStats { + atimeNs: bigint; + mtimeNs: bigint; + ctimeNs: bigint; + birthtimeNs: bigint; + } + + export interface BigIntOptions { + bigint: true; + } + + export interface StatOptions { + bigint?: boolean; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/fs/promises.d.ts b/justdanceonline-main/node_modules/@types/node/fs/promises.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4e74fd470afa6771e9f0d6b29d82a440a8ec452b --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/fs/promises.d.ts @@ -0,0 +1,557 @@ +declare module 'fs/promises' { + import { + Stats, + BigIntStats, + StatOptions, + WriteVResult, + ReadVResult, + PathLike, + RmDirOptions, + RmOptions, + MakeDirectoryOptions, + Dirent, + OpenDirOptions, + Dir, + BaseEncodingOptions, + BufferEncodingOption, + OpenMode, + Mode, + } from 'fs'; + + interface FileHandle { + /** + * Gets the file descriptor for this file handle. + */ + readonly fd: number; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for appending. + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + appendFile(data: string | Uint8Array, options?: BaseEncodingOptions & { mode?: Mode, flag?: OpenMode } | BufferEncoding | null): Promise; + + /** + * Asynchronous fchown(2) - Change ownership of a file. + */ + chown(uid: number, gid: number): Promise; + + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + chmod(mode: Mode): Promise; + + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + */ + datasync(): Promise; + + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + */ + sync(): Promise; + + /** + * Asynchronously reads data from the file. + * The `FileHandle` must have been opened for reading. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + read(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesRead: number, buffer: TBuffer }>; + + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile(options?: { encoding?: null, flag?: OpenMode } | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile(options: { encoding: BufferEncoding, flag?: OpenMode } | BufferEncoding): Promise; + + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile(options?: BaseEncodingOptions & { flag?: OpenMode } | BufferEncoding | null): Promise; + + /** + * Asynchronous fstat(2) - Get file status. + */ + stat(opts?: StatOptions & { bigint?: false }): Promise; + stat(opts: StatOptions & { bigint: true }): Promise; + stat(opts?: StatOptions): Promise; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param len If not specified, defaults to `0`. + */ + truncate(len?: number): Promise; + + /** + * Asynchronously change file timestamps of the file. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + utimes(atime: string | number | Date, mtime: string | number | Date): Promise; + + /** + * Asynchronously writes `buffer` to the file. + * The `FileHandle` must have been opened for writing. + * @param buffer The buffer that the data will be written to. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + write(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `string` to the file. + * The `FileHandle` must have been opened for writing. + * It is unsafe to call `write()` multiple times on the same file without waiting for the `Promise` + * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + write(data: string | Uint8Array, position?: number | null, encoding?: BufferEncoding | null): Promise<{ bytesWritten: number, buffer: string }>; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for writing. + * It is unsafe to call `writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected). + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + writeFile(data: string | Uint8Array, options?: BaseEncodingOptions & { mode?: Mode, flag?: OpenMode } | BufferEncoding | null): Promise; + + /** + * See `fs.writev` promisified version. + */ + writev(buffers: ReadonlyArray, position?: number): Promise; + + /** + * See `fs.readv` promisified version. + */ + readv(buffers: ReadonlyArray, position?: number): Promise; + + /** + * Asynchronous close(2) - close a `FileHandle`. + */ + close(): Promise; + } + + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function access(path: PathLike, mode?: number): Promise; + + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it already exists. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An optional integer that specifies the behavior of the copy operation. The only + * supported flag is `fs.constants.COPYFILE_EXCL`, which causes the copy operation to fail if + * `dest` already exists. + */ + function copyFile(src: PathLike, dest: PathLike, flags?: number): Promise; + + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not + * supplied, defaults to `0o666`. + */ + function open(path: PathLike, flags: string | number, mode?: Mode): Promise; + + /** + * Asynchronously reads data from the file referenced by the supplied `FileHandle`. + * @param handle A `FileHandle`. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If + * `null`, data will be read from the current position. + */ + function read( + handle: FileHandle, + buffer: TBuffer, + offset?: number | null, + length?: number | null, + position?: number | null, + ): Promise<{ bytesRead: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied `FileHandle`. + * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise` + * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. + * @param handle A `FileHandle`. + * @param buffer The buffer that the data will be written to. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function write( + handle: FileHandle, + buffer: TBuffer, + offset?: number | null, + length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `string` to the file referenced by the supplied `FileHandle`. + * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise` + * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. + * @param handle A `FileHandle`. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function write(handle: FileHandle, string: string, position?: number | null, encoding?: BufferEncoding | null): Promise<{ bytesWritten: number, buffer: string }>; + + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function rename(oldPath: PathLike, newPath: PathLike): Promise; + + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function truncate(path: PathLike, len?: number): Promise; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param handle A `FileHandle`. + * @param len If not specified, defaults to `0`. + */ + function ftruncate(handle: FileHandle, len?: number): Promise; + + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function rmdir(path: PathLike, options?: RmDirOptions): Promise; + + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility). + */ + function rm(path: PathLike, options?: RmOptions): Promise; + + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param handle A `FileHandle`. + */ + function fdatasync(handle: FileHandle): Promise; + + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param handle A `FileHandle`. + */ + function fsync(handle: FileHandle): Promise; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options: MakeDirectoryOptions & { recursive: true; }): Promise; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options?: Mode | (MakeDirectoryOptions & { recursive?: false; }) | null): Promise; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir(path: PathLike, options?: BaseEncodingOptions & { withFileTypes?: false } | BufferEncoding | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer"): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir(path: PathLike, options?: BaseEncodingOptions & { withFileTypes?: false } | BufferEncoding | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdir(path: PathLike, options: BaseEncodingOptions & { withFileTypes: true }): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options: BufferEncodingOption): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options?: BaseEncodingOptions | string | null): Promise; + + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function symlink(target: PathLike, path: PathLike, type?: string | null): Promise; + + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lstat(path: PathLike, opts?: StatOptions & { bigint?: false }): Promise; + function lstat(path: PathLike, opts: StatOptions & { bigint: true }): Promise; + function lstat(path: PathLike, opts?: StatOptions): Promise; + + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function stat(path: PathLike, opts?: StatOptions & { bigint?: false }): Promise; + function stat(path: PathLike, opts: StatOptions & { bigint: true }): Promise; + function stat(path: PathLike, opts?: StatOptions): Promise; + + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function link(existingPath: PathLike, newPath: PathLike): Promise; + + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function unlink(path: PathLike): Promise; + + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param handle A `FileHandle`. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function fchmod(handle: FileHandle, mode: Mode): Promise; + + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function chmod(path: PathLike, mode: Mode): Promise; + + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function lchmod(path: PathLike, mode: Mode): Promise; + + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lchown(path: PathLike, uid: number, gid: number): Promise; + + /** + * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, + * with the difference that if the path refers to a symbolic link, then the link is not + * dereferenced: instead, the timestamps of the symbolic link itself are changed. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function lutimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; + + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param handle A `FileHandle`. + */ + function fchown(handle: FileHandle, uid: number, gid: number): Promise; + + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function chown(path: PathLike, uid: number, gid: number): Promise; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied `FileHandle`. + * @param handle A `FileHandle`. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function futimes(handle: FileHandle, atime: string | number | Date, mtime: string | number | Date): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options: BufferEncodingOption): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: BufferEncodingOption): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options?: BaseEncodingOptions | BufferEncoding | null): Promise; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * It is unsafe to call `fsPromises.writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected). + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function writeFile(path: PathLike | FileHandle, data: string | Uint8Array, options?: BaseEncodingOptions & { mode?: Mode, flag?: OpenMode } | BufferEncoding | null): Promise; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function appendFile(path: PathLike | FileHandle, data: string | Uint8Array, options?: BaseEncodingOptions & { mode?: Mode, flag?: OpenMode } | BufferEncoding | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | FileHandle, options?: { encoding?: null, flag?: OpenMode } | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | FileHandle, options: { encoding: BufferEncoding, flag?: OpenMode } | BufferEncoding): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | FileHandle, options?: BaseEncodingOptions & { flag?: OpenMode } | BufferEncoding | null): Promise; + + function opendir(path: string, options?: OpenDirOptions): Promise; +} diff --git a/justdanceonline-main/node_modules/@types/node/globals.d.ts b/justdanceonline-main/node_modules/@types/node/globals.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4f78edd44e5483a9a4128abf8b390928a6e10bf8 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/globals.d.ts @@ -0,0 +1,649 @@ +// Declare "static" methods in Error +interface ErrorConstructor { + /** Create .stack property on a target object */ + captureStackTrace(targetObject: object, constructorOpt?: Function): void; + + /** + * Optional override for formatting stack traces + * + * @see https://v8.dev/docs/stack-trace-api#customizing-stack-traces + */ + prepareStackTrace?: (err: Error, stackTraces: NodeJS.CallSite[]) => any; + + stackTraceLimit: number; +} + +// Node.js ESNEXT support +interface String { + /** Removes whitespace from the left end of a string. */ + trimLeft(): string; + /** Removes whitespace from the right end of a string. */ + trimRight(): string; + + /** Returns a copy with leading whitespace removed. */ + trimStart(): string; + /** Returns a copy with trailing whitespace removed. */ + trimEnd(): string; +} + +interface ImportMeta { + url: string; +} + +/*-----------------------------------------------* + * * + * GLOBAL * + * * + ------------------------------------------------*/ + +// For backwards compability +interface NodeRequire extends NodeJS.Require {} +interface RequireResolve extends NodeJS.RequireResolve {} +interface NodeModule extends NodeJS.Module {} + +declare var process: NodeJS.Process; +declare var console: Console; + +declare var __filename: string; +declare var __dirname: string; + +declare function setTimeout(callback: (...args: any[]) => void, ms?: number, ...args: any[]): NodeJS.Timeout; +declare namespace setTimeout { + function __promisify__(ms: number): Promise; + function __promisify__(ms: number, value: T): Promise; +} +declare function clearTimeout(timeoutId: NodeJS.Timeout): void; +declare function setInterval(callback: (...args: any[]) => void, ms?: number, ...args: any[]): NodeJS.Timeout; +declare function clearInterval(intervalId: NodeJS.Timeout): void; +declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; +declare namespace setImmediate { + function __promisify__(): Promise; + function __promisify__(value: T): Promise; +} +declare function clearImmediate(immediateId: NodeJS.Immediate): void; + +declare function queueMicrotask(callback: () => void): void; + +declare var require: NodeRequire; +declare var module: NodeModule; + +// Same as module.exports +declare var exports: any; + +// Buffer class +type BufferEncoding = "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "base64url" | "latin1" | "binary" | "hex"; + +type WithImplicitCoercion = T | { valueOf(): T }; + +/** + * Raw data is stored in instances of the Buffer class. + * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized. + * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + */ +declare class Buffer extends Uint8Array { + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead. + */ + constructor(str: string, encoding?: BufferEncoding); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`). + */ + constructor(size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + constructor(array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}/{SharedArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead. + */ + constructor(arrayBuffer: ArrayBuffer | SharedArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + constructor(array: ReadonlyArray); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + * @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead. + */ + constructor(buffer: Buffer); + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of any TypedArray or a new ArrayBuffer() + */ + static from(arrayBuffer: WithImplicitCoercion, byteOffset?: number, length?: number): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param data data to create a new Buffer + */ + static from(data: Uint8Array | ReadonlyArray): Buffer; + static from(data: WithImplicitCoercion | string>): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + */ + static from(str: WithImplicitCoercion | { [Symbol.toPrimitive](hint: 'string'): string }, encoding?: BufferEncoding): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param values to create a new Buffer + */ + static of(...items: number[]): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): encoding is BufferEncoding; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength( + string: string | NodeJS.ArrayBufferView | ArrayBuffer | SharedArrayBuffer, + encoding?: BufferEncoding + ): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: ReadonlyArray, totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Uint8Array, buf2: Uint8Array): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + /** + * This is the number of bytes used to determine the size of pre-allocated, internal Buffer instances used for pooling. This value may be modified. + */ + static poolSize: number; + + write(string: string, encoding?: BufferEncoding): number; + write(string: string, offset: number, encoding?: BufferEncoding): number; + write(string: string, offset: number, length: number, encoding?: BufferEncoding): number; + toString(encoding?: BufferEncoding, start?: number, end?: number): string; + toJSON(): { type: 'Buffer'; data: number[] }; + equals(otherBuffer: Uint8Array): boolean; + compare( + otherBuffer: Uint8Array, + targetStart?: number, + targetEnd?: number, + sourceStart?: number, + sourceEnd?: number + ): number; + copy(targetBuffer: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + /** + * Returns a new `Buffer` that references **the same memory as the original**, but offset and cropped by the start and end indices. + * + * This method is incompatible with `Uint8Array#slice()`, which returns a copy of the original memory. + * + * @param begin Where the new `Buffer` will start. Default: `0`. + * @param end Where the new `Buffer` will end (not inclusive). Default: `buf.length`. + */ + slice(begin?: number, end?: number): Buffer; + /** + * Returns a new `Buffer` that references **the same memory as the original**, but offset and cropped by the start and end indices. + * + * This method is compatible with `Uint8Array#subarray()`. + * + * @param begin Where the new `Buffer` will start. Default: `0`. + * @param end Where the new `Buffer` will end (not inclusive). Default: `buf.length`. + */ + subarray(begin?: number, end?: number): Buffer; + writeBigInt64BE(value: bigint, offset?: number): number; + writeBigInt64LE(value: bigint, offset?: number): number; + writeBigUInt64BE(value: bigint, offset?: number): number; + writeBigUInt64LE(value: bigint, offset?: number): number; + writeUIntLE(value: number, offset: number, byteLength: number): number; + writeUIntBE(value: number, offset: number, byteLength: number): number; + writeIntLE(value: number, offset: number, byteLength: number): number; + writeIntBE(value: number, offset: number, byteLength: number): number; + readBigUInt64BE(offset?: number): bigint; + readBigUInt64LE(offset?: number): bigint; + readBigInt64BE(offset?: number): bigint; + readBigInt64LE(offset?: number): bigint; + readUIntLE(offset: number, byteLength: number): number; + readUIntBE(offset: number, byteLength: number): number; + readIntLE(offset: number, byteLength: number): number; + readIntBE(offset: number, byteLength: number): number; + readUInt8(offset?: number): number; + readUInt16LE(offset?: number): number; + readUInt16BE(offset?: number): number; + readUInt32LE(offset?: number): number; + readUInt32BE(offset?: number): number; + readInt8(offset?: number): number; + readInt16LE(offset?: number): number; + readInt16BE(offset?: number): number; + readInt32LE(offset?: number): number; + readInt32BE(offset?: number): number; + readFloatLE(offset?: number): number; + readFloatBE(offset?: number): number; + readDoubleLE(offset?: number): number; + readDoubleBE(offset?: number): number; + reverse(): this; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset?: number): number; + writeUInt16LE(value: number, offset?: number): number; + writeUInt16BE(value: number, offset?: number): number; + writeUInt32LE(value: number, offset?: number): number; + writeUInt32BE(value: number, offset?: number): number; + writeInt8(value: number, offset?: number): number; + writeInt16LE(value: number, offset?: number): number; + writeInt16BE(value: number, offset?: number): number; + writeInt32LE(value: number, offset?: number): number; + writeInt32BE(value: number, offset?: number): number; + writeFloatLE(value: number, offset?: number): number; + writeFloatBE(value: number, offset?: number): number; + writeDoubleLE(value: number, offset?: number): number; + writeDoubleBE(value: number, offset?: number): number; + + fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this; + + indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + entries(): IterableIterator<[number, number]>; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean; + keys(): IterableIterator; + values(): IterableIterator; +} + +//#region borrowed +// from https://github.com/microsoft/TypeScript/blob/38da7c600c83e7b31193a62495239a0fe478cb67/lib/lib.webworker.d.ts#L633 until moved to separate lib +/** A controller object that allows you to abort one or more DOM requests as and when desired. */ +interface AbortController { + /** + * Returns the AbortSignal object associated with this object. + */ + readonly signal: AbortSignal; + /** + * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. + */ + abort(): void; +} + +/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */ +interface AbortSignal { + /** + * Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. + */ + readonly aborted: boolean; +} + +declare var AbortController: { + prototype: AbortController; + new(): AbortController; +}; + +declare var AbortSignal: { + prototype: AbortSignal; + new(): AbortSignal; +}; +//#endregion borrowed + +/*----------------------------------------------* +* * +* GLOBAL INTERFACES * +* * +*-----------------------------------------------*/ +declare namespace NodeJS { + interface InspectOptions { + /** + * If set to `true`, getters are going to be + * inspected as well. If set to `'get'` only getters without setter are going + * to be inspected. If set to `'set'` only getters having a corresponding + * setter are going to be inspected. This might cause side effects depending on + * the getter function. + * @default `false` + */ + getters?: 'get' | 'set' | boolean; + showHidden?: boolean; + /** + * @default 2 + */ + depth?: number | null; + colors?: boolean; + customInspect?: boolean; + showProxy?: boolean; + maxArrayLength?: number | null; + /** + * Specifies the maximum number of characters to + * include when formatting. Set to `null` or `Infinity` to show all elements. + * Set to `0` or negative to show no characters. + * @default 10000 + */ + maxStringLength?: number | null; + breakLength?: number; + /** + * Setting this to `false` causes each object key + * to be displayed on a new line. It will also add new lines to text that is + * longer than `breakLength`. If set to a number, the most `n` inner elements + * are united on a single line as long as all properties fit into + * `breakLength`. Short array elements are also grouped together. Note that no + * text will be reduced below 16 characters, no matter the `breakLength` size. + * For more information, see the example below. + * @default `true` + */ + compact?: boolean | number; + sorted?: boolean | ((a: string, b: string) => number); + } + + interface CallSite { + /** + * Value of "this" + */ + getThis(): any; + + /** + * Type of "this" as a string. + * This is the name of the function stored in the constructor field of + * "this", if available. Otherwise the object's [[Class]] internal + * property. + */ + getTypeName(): string | null; + + /** + * Current function + */ + getFunction(): Function | undefined; + + /** + * Name of the current function, typically its name property. + * If a name property is not available an attempt will be made to try + * to infer a name from the function's context. + */ + getFunctionName(): string | null; + + /** + * Name of the property [of "this" or one of its prototypes] that holds + * the current function + */ + getMethodName(): string | null; + + /** + * Name of the script [if this function was defined in a script] + */ + getFileName(): string | null; + + /** + * Current line number [if this function was defined in a script] + */ + getLineNumber(): number | null; + + /** + * Current column number [if this function was defined in a script] + */ + getColumnNumber(): number | null; + + /** + * A call site object representing the location where eval was called + * [if this function was created using a call to eval] + */ + getEvalOrigin(): string | undefined; + + /** + * Is this a toplevel invocation, that is, is "this" the global object? + */ + isToplevel(): boolean; + + /** + * Does this call take place in code defined by a call to eval? + */ + isEval(): boolean; + + /** + * Is this call in native V8 code? + */ + isNative(): boolean; + + /** + * Is this a constructor call? + */ + isConstructor(): boolean; + } + + interface ErrnoException extends Error { + errno?: number; + code?: string; + path?: string; + syscall?: string; + stack?: string; + } + + interface ReadableStream extends EventEmitter { + readable: boolean; + read(size?: number): string | Buffer; + setEncoding(encoding: BufferEncoding): this; + pause(): this; + resume(): this; + isPaused(): boolean; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: WritableStream): this; + unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void; + wrap(oldStream: ReadableStream): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + interface WritableStream extends EventEmitter { + writable: boolean; + write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean; + write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean; + end(cb?: () => void): void; + end(data: string | Uint8Array, cb?: () => void): void; + end(str: string, encoding?: BufferEncoding, cb?: () => void): void; + } + + interface ReadWriteStream extends ReadableStream, WritableStream { } + + interface Global { + AbortController: typeof AbortController; + AbortSignal: typeof AbortSignal; + Array: typeof Array; + ArrayBuffer: typeof ArrayBuffer; + Boolean: typeof Boolean; + Buffer: typeof Buffer; + DataView: typeof DataView; + Date: typeof Date; + Error: typeof Error; + EvalError: typeof EvalError; + Float32Array: typeof Float32Array; + Float64Array: typeof Float64Array; + Function: typeof Function; + Infinity: typeof Infinity; + Int16Array: typeof Int16Array; + Int32Array: typeof Int32Array; + Int8Array: typeof Int8Array; + Intl: typeof Intl; + JSON: typeof JSON; + Map: MapConstructor; + Math: typeof Math; + NaN: typeof NaN; + Number: typeof Number; + Object: typeof Object; + Promise: typeof Promise; + RangeError: typeof RangeError; + ReferenceError: typeof ReferenceError; + RegExp: typeof RegExp; + Set: SetConstructor; + String: typeof String; + Symbol: Function; + SyntaxError: typeof SyntaxError; + TypeError: typeof TypeError; + URIError: typeof URIError; + Uint16Array: typeof Uint16Array; + Uint32Array: typeof Uint32Array; + Uint8Array: typeof Uint8Array; + Uint8ClampedArray: typeof Uint8ClampedArray; + WeakMap: WeakMapConstructor; + WeakSet: WeakSetConstructor; + clearImmediate: (immediateId: Immediate) => void; + clearInterval: (intervalId: Timeout) => void; + clearTimeout: (timeoutId: Timeout) => void; + decodeURI: typeof decodeURI; + decodeURIComponent: typeof decodeURIComponent; + encodeURI: typeof encodeURI; + encodeURIComponent: typeof encodeURIComponent; + escape: (str: string) => string; + eval: typeof eval; + global: Global; + isFinite: typeof isFinite; + isNaN: typeof isNaN; + parseFloat: typeof parseFloat; + parseInt: typeof parseInt; + setImmediate: (callback: (...args: any[]) => void, ...args: any[]) => Immediate; + setInterval: (callback: (...args: any[]) => void, ms?: number, ...args: any[]) => Timeout; + setTimeout: (callback: (...args: any[]) => void, ms?: number, ...args: any[]) => Timeout; + queueMicrotask: typeof queueMicrotask; + undefined: typeof undefined; + unescape: (str: string) => string; + gc: () => void; + v8debug?: any; + } + + interface RefCounted { + ref(): this; + unref(): this; + } + + // compatibility with older typings + interface Timer extends RefCounted { + hasRef(): boolean; + refresh(): this; + [Symbol.toPrimitive](): number; + } + + interface Immediate extends RefCounted { + hasRef(): boolean; + _onImmediate: Function; // to distinguish it from the Timeout class + } + + interface Timeout extends Timer { + hasRef(): boolean; + refresh(): this; + [Symbol.toPrimitive](): number; + } + + type TypedArray = + | Uint8Array + | Uint8ClampedArray + | Uint16Array + | Uint32Array + | Int8Array + | Int16Array + | Int32Array + | BigUint64Array + | BigInt64Array + | Float32Array + | Float64Array; + type ArrayBufferView = TypedArray | DataView; + + interface Require { + (id: string): any; + resolve: RequireResolve; + cache: Dict; + /** + * @deprecated + */ + extensions: RequireExtensions; + main: Module | undefined; + } + + interface RequireResolve { + (id: string, options?: { paths?: string[]; }): string; + paths(request: string): string[] | null; + } + + interface RequireExtensions extends Dict<(m: Module, filename: string) => any> { + '.js': (m: Module, filename: string) => any; + '.json': (m: Module, filename: string) => any; + '.node': (m: Module, filename: string) => any; + } + interface Module { + exports: any; + require: Require; + id: string; + filename: string; + loaded: boolean; + /** @deprecated since 14.6.0 Please use `require.main` and `module.children` instead. */ + parent: Module | null | undefined; + children: Module[]; + /** + * @since 11.14.0 + * + * The directory name of the module. This is usually the same as the path.dirname() of the module.id. + */ + path: string; + paths: string[]; + } + + interface Dict { + [key: string]: T | undefined; + } + + interface ReadOnlyDict { + readonly [key: string]: T | undefined; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/globals.global.d.ts b/justdanceonline-main/node_modules/@types/node/globals.global.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d66acba63e02eb36050bc8f3aecee5ef421f36c5 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/globals.global.d.ts @@ -0,0 +1 @@ +declare var global: NodeJS.Global & typeof globalThis; diff --git a/justdanceonline-main/node_modules/@types/node/http.d.ts b/justdanceonline-main/node_modules/@types/node/http.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..a0773bbd73ec95c28f3702ff746b70b8da4d5645 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/http.d.ts @@ -0,0 +1,424 @@ +declare module 'http' { + import * as stream from 'stream'; + import { URL } from 'url'; + import { Socket, Server as NetServer } from 'net'; + + // incoming headers will never contain number + interface IncomingHttpHeaders extends NodeJS.Dict { + 'accept'?: string; + 'accept-language'?: string; + 'accept-patch'?: string; + 'accept-ranges'?: string; + 'access-control-allow-credentials'?: string; + 'access-control-allow-headers'?: string; + 'access-control-allow-methods'?: string; + 'access-control-allow-origin'?: string; + 'access-control-expose-headers'?: string; + 'access-control-max-age'?: string; + 'access-control-request-headers'?: string; + 'access-control-request-method'?: string; + 'age'?: string; + 'allow'?: string; + 'alt-svc'?: string; + 'authorization'?: string; + 'cache-control'?: string; + 'connection'?: string; + 'content-disposition'?: string; + 'content-encoding'?: string; + 'content-language'?: string; + 'content-length'?: string; + 'content-location'?: string; + 'content-range'?: string; + 'content-type'?: string; + 'cookie'?: string; + 'date'?: string; + 'etag'?: string; + 'expect'?: string; + 'expires'?: string; + 'forwarded'?: string; + 'from'?: string; + 'host'?: string; + 'if-match'?: string; + 'if-modified-since'?: string; + 'if-none-match'?: string; + 'if-unmodified-since'?: string; + 'last-modified'?: string; + 'location'?: string; + 'origin'?: string; + 'pragma'?: string; + 'proxy-authenticate'?: string; + 'proxy-authorization'?: string; + 'public-key-pins'?: string; + 'range'?: string; + 'referer'?: string; + 'retry-after'?: string; + 'sec-websocket-accept'?: string; + 'sec-websocket-extensions'?: string; + 'sec-websocket-key'?: string; + 'sec-websocket-protocol'?: string; + 'sec-websocket-version'?: string; + 'set-cookie'?: string[]; + 'strict-transport-security'?: string; + 'tk'?: string; + 'trailer'?: string; + 'transfer-encoding'?: string; + 'upgrade'?: string; + 'user-agent'?: string; + 'vary'?: string; + 'via'?: string; + 'warning'?: string; + 'www-authenticate'?: string; + } + + // outgoing headers allows numbers (as they are converted internally to strings) + type OutgoingHttpHeader = number | string | string[]; + + interface OutgoingHttpHeaders extends NodeJS.Dict { + } + + interface ClientRequestArgs { + protocol?: string | null; + host?: string | null; + hostname?: string | null; + family?: number; + port?: number | string | null; + defaultPort?: number | string; + localAddress?: string; + socketPath?: string; + /** + * @default 8192 + */ + maxHeaderSize?: number; + method?: string; + path?: string | null; + headers?: OutgoingHttpHeaders; + auth?: string | null; + agent?: Agent | boolean; + _defaultAgent?: Agent; + timeout?: number; + setHost?: boolean; + // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L278 + createConnection?: (options: ClientRequestArgs, oncreate: (err: Error, socket: Socket) => void) => Socket; + } + + interface ServerOptions { + IncomingMessage?: typeof IncomingMessage; + ServerResponse?: typeof ServerResponse; + /** + * Optionally overrides the value of + * [`--max-http-header-size`][] for requests received by this server, i.e. + * the maximum length of request headers in bytes. + * @default 8192 + */ + maxHeaderSize?: number; + /** + * Use an insecure HTTP parser that accepts invalid HTTP headers when true. + * Using the insecure parser should be avoided. + * See --insecure-http-parser for more information. + * @default false + */ + insecureHTTPParser?: boolean; + } + + type RequestListener = (req: IncomingMessage, res: ServerResponse) => void; + + interface HttpBase { + setTimeout(msecs?: number, callback?: () => void): this; + setTimeout(callback: () => void): this; + /** + * Limits maximum incoming headers count. If set to 0, no limit will be applied. + * @default 2000 + * {@link https://nodejs.org/api/http.html#http_server_maxheaderscount} + */ + maxHeadersCount: number | null; + timeout: number; + /** + * Limit the amount of time the parser will wait to receive the complete HTTP headers. + * @default 60000 + * {@link https://nodejs.org/api/http.html#http_server_headerstimeout} + */ + headersTimeout: number; + keepAliveTimeout: number; + /** + * Sets the timeout value in milliseconds for receiving the entire request from the client. + * @default 0 + * {@link https://nodejs.org/api/http.html#http_server_requesttimeout} + */ + requestTimeout: number; + } + + interface Server extends HttpBase {} + class Server extends NetServer { + constructor(requestListener?: RequestListener); + constructor(options: ServerOptions, requestListener?: RequestListener); + } + + // https://github.com/nodejs/node/blob/master/lib/_http_outgoing.js + class OutgoingMessage extends stream.Writable { + upgrading: boolean; + chunkedEncoding: boolean; + shouldKeepAlive: boolean; + useChunkedEncodingByDefault: boolean; + sendDate: boolean; + /** + * @deprecated Use `writableEnded` instead. + */ + finished: boolean; + headersSent: boolean; + /** + * @deprecate Use `socket` instead. + */ + connection: Socket | null; + socket: Socket | null; + + constructor(); + + setTimeout(msecs: number, callback?: () => void): this; + setHeader(name: string, value: number | string | ReadonlyArray): void; + getHeader(name: string): number | string | string[] | undefined; + getHeaders(): OutgoingHttpHeaders; + getHeaderNames(): string[]; + hasHeader(name: string): boolean; + removeHeader(name: string): void; + addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; + flushHeaders(): void; + } + + // https://github.com/nodejs/node/blob/master/lib/_http_server.js#L108-L256 + class ServerResponse extends OutgoingMessage { + statusCode: number; + statusMessage: string; + + constructor(req: IncomingMessage); + + assignSocket(socket: Socket): void; + detachSocket(socket: Socket): void; + // https://github.com/nodejs/node/blob/master/test/parallel/test-http-write-callbacks.js#L53 + // no args in writeContinue callback + writeContinue(callback?: () => void): void; + writeHead(statusCode: number, reasonPhrase?: string, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[]): this; + writeHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[]): this; + writeProcessing(): void; + } + + interface InformationEvent { + statusCode: number; + statusMessage: string; + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + headers: IncomingHttpHeaders; + rawHeaders: string[]; + } + + // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L77 + class ClientRequest extends OutgoingMessage { + aborted: boolean; + host: string; + protocol: string; + + constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void); + + method: string; + path: string; + /** @deprecated since v14.1.0 Use `request.destroy()` instead. */ + abort(): void; + onSocket(socket: Socket): void; + setTimeout(timeout: number, callback?: () => void): this; + setNoDelay(noDelay?: boolean): void; + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + + addListener(event: 'abort', listener: () => void): this; + addListener(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + addListener(event: 'continue', listener: () => void): this; + addListener(event: 'information', listener: (info: InformationEvent) => void): this; + addListener(event: 'response', listener: (response: IncomingMessage) => void): this; + addListener(event: 'socket', listener: (socket: Socket) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + on(event: 'abort', listener: () => void): this; + on(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'continue', listener: () => void): this; + on(event: 'information', listener: (info: InformationEvent) => void): this; + on(event: 'response', listener: (response: IncomingMessage) => void): this; + on(event: 'socket', listener: (socket: Socket) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: 'abort', listener: () => void): this; + once(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'continue', listener: () => void): this; + once(event: 'information', listener: (info: InformationEvent) => void): this; + once(event: 'response', listener: (response: IncomingMessage) => void): this; + once(event: 'socket', listener: (socket: Socket) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: 'abort', listener: () => void): this; + prependListener(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependListener(event: 'continue', listener: () => void): this; + prependListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependListener(event: 'socket', listener: (socket: Socket) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: 'abort', listener: () => void): this; + prependOnceListener(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependOnceListener(event: 'continue', listener: () => void): this; + prependOnceListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependOnceListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependOnceListener(event: 'socket', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + class IncomingMessage extends stream.Readable { + constructor(socket: Socket); + + aborted: boolean; + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + complete: boolean; + /** + * @deprecated since v13.0.0 - Use `socket` instead. + */ + connection: Socket; + socket: Socket; + headers: IncomingHttpHeaders; + rawHeaders: string[]; + trailers: NodeJS.Dict; + rawTrailers: string[]; + setTimeout(msecs: number, callback?: () => void): this; + /** + * Only valid for request obtained from http.Server. + */ + method?: string; + /** + * Only valid for request obtained from http.Server. + */ + url?: string; + /** + * Only valid for response obtained from http.ClientRequest. + */ + statusCode?: number; + /** + * Only valid for response obtained from http.ClientRequest. + */ + statusMessage?: string; + destroy(error?: Error): void; + } + + interface AgentOptions { + /** + * Keep sockets around in a pool to be used by other requests in the future. Default = false + */ + keepAlive?: boolean; + /** + * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. + * Only relevant if keepAlive is set to true. + */ + keepAliveMsecs?: number; + /** + * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity + */ + maxSockets?: number; + /** + * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity. + */ + maxTotalSockets?: number; + /** + * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. + */ + maxFreeSockets?: number; + /** + * Socket timeout in milliseconds. This will set the timeout after the socket is connected. + */ + timeout?: number; + /** + * Scheduling strategy to apply when picking the next free socket to use. Default: 'fifo'. + */ + scheduling?: 'fifo' | 'lifo'; + } + + class Agent { + maxFreeSockets: number; + maxSockets: number; + maxTotalSockets: number; + readonly freeSockets: NodeJS.ReadOnlyDict; + readonly sockets: NodeJS.ReadOnlyDict; + readonly requests: NodeJS.ReadOnlyDict; + + constructor(opts?: AgentOptions); + + /** + * Destroy any sockets that are currently in use by the agent. + * It is usually not necessary to do this. However, if you are using an agent with KeepAlive enabled, + * then it is best to explicitly shut down the agent when you know that it will no longer be used. Otherwise, + * sockets may hang open for quite a long time before the server terminates them. + */ + destroy(): void; + } + + const METHODS: string[]; + + const STATUS_CODES: { + [errorCode: number]: string | undefined; + [errorCode: string]: string | undefined; + }; + + function createServer(requestListener?: RequestListener): Server; + function createServer(options: ServerOptions, requestListener?: RequestListener): Server; + + // although RequestOptions are passed as ClientRequestArgs to ClientRequest directly, + // create interface RequestOptions would make the naming more clear to developers + interface RequestOptions extends ClientRequestArgs { } + function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function request(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + let globalAgent: Agent; + + /** + * Read-only property specifying the maximum allowed size of HTTP headers in bytes. + * Defaults to 16KB. Configurable using the [`--max-http-header-size`][] CLI option. + */ + const maxHeaderSize: number; +} diff --git a/justdanceonline-main/node_modules/@types/node/http2.d.ts b/justdanceonline-main/node_modules/@types/node/http2.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..abcbb9c66373df06917cbd8fb03456272ec47ac9 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/http2.d.ts @@ -0,0 +1,964 @@ +declare module 'http2' { + import EventEmitter = require('events'); + import * as fs from 'fs'; + import * as net from 'net'; + import * as stream from 'stream'; + import * as tls from 'tls'; + import * as url from 'url'; + + import { + IncomingHttpHeaders as Http1IncomingHttpHeaders, + OutgoingHttpHeaders, + IncomingMessage, + ServerResponse, + } from 'http'; + export { OutgoingHttpHeaders } from 'http'; + + export interface IncomingHttpStatusHeader { + ":status"?: number; + } + + export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders { + ":path"?: string; + ":method"?: string; + ":authority"?: string; + ":scheme"?: string; + } + + // Http2Stream + + export interface StreamPriorityOptions { + exclusive?: boolean; + parent?: number; + weight?: number; + silent?: boolean; + } + + export interface StreamState { + localWindowSize?: number; + state?: number; + localClose?: number; + remoteClose?: number; + sumDependencyWeight?: number; + weight?: number; + } + + export interface ServerStreamResponseOptions { + endStream?: boolean; + waitForTrailers?: boolean; + } + + export interface StatOptions { + offset: number; + length: number; + } + + export interface ServerStreamFileResponseOptions { + statCheck?(stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions): void | boolean; + waitForTrailers?: boolean; + offset?: number; + length?: number; + } + + export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions { + onError?(err: NodeJS.ErrnoException): void; + } + + export interface Http2Stream extends stream.Duplex { + readonly aborted: boolean; + readonly bufferSize: number; + readonly closed: boolean; + readonly destroyed: boolean; + /** + * Set the true if the END_STREAM flag was set in the request or response HEADERS frame received, + * indicating that no additional data should be received and the readable side of the Http2Stream will be closed. + */ + readonly endAfterHeaders: boolean; + readonly id?: number; + readonly pending: boolean; + readonly rstCode: number; + readonly sentHeaders: OutgoingHttpHeaders; + readonly sentInfoHeaders?: OutgoingHttpHeaders[]; + readonly sentTrailers?: OutgoingHttpHeaders; + readonly session: Http2Session; + readonly state: StreamState; + + close(code?: number, callback?: () => void): void; + priority(options: StreamPriorityOptions): void; + setTimeout(msecs: number, callback?: () => void): void; + sendTrailers(headers: OutgoingHttpHeaders): void; + + addListener(event: "aborted", listener: () => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: Buffer | string) => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + addListener(event: "pipe", listener: (src: stream.Readable) => void): this; + addListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + addListener(event: "streamClosed", listener: (code: number) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "wantTrailers", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "aborted"): boolean; + emit(event: "close"): boolean; + emit(event: "data", chunk: Buffer | string): boolean; + emit(event: "drain"): boolean; + emit(event: "end"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "finish"): boolean; + emit(event: "frameError", frameType: number, errorCode: number): boolean; + emit(event: "pipe", src: stream.Readable): boolean; + emit(event: "unpipe", src: stream.Readable): boolean; + emit(event: "streamClosed", code: number): boolean; + emit(event: "timeout"): boolean; + emit(event: "trailers", trailers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "wantTrailers"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "aborted", listener: () => void): this; + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: Buffer | string) => void): this; + on(event: "drain", listener: () => void): this; + on(event: "end", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + on(event: "pipe", listener: (src: stream.Readable) => void): this; + on(event: "unpipe", listener: (src: stream.Readable) => void): this; + on(event: "streamClosed", listener: (code: number) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "wantTrailers", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "aborted", listener: () => void): this; + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: Buffer | string) => void): this; + once(event: "drain", listener: () => void): this; + once(event: "end", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + once(event: "pipe", listener: (src: stream.Readable) => void): this; + once(event: "unpipe", listener: (src: stream.Readable) => void): this; + once(event: "streamClosed", listener: (code: number) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "wantTrailers", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "aborted", listener: () => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + prependListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependListener(event: "streamClosed", listener: (code: number) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "wantTrailers", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "aborted", listener: () => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: "streamClosed", listener: (code: number) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "wantTrailers", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface ClientHttp2Stream extends Http2Stream { + addListener(event: "continue", listener: () => {}): this; + addListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "continue"): boolean; + emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "continue", listener: () => {}): this; + on(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "continue", listener: () => {}): this; + once(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "continue", listener: () => {}): this; + prependListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "continue", listener: () => {}): this; + prependOnceListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface ServerHttp2Stream extends Http2Stream { + readonly headersSent: boolean; + readonly pushAllowed: boolean; + additionalHeaders(headers: OutgoingHttpHeaders): void; + pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void; + respondWithFD(fd: number | fs.promises.FileHandle, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void; + respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void; + } + + // Http2Session + + export interface Settings { + headerTableSize?: number; + enablePush?: boolean; + initialWindowSize?: number; + maxFrameSize?: number; + maxConcurrentStreams?: number; + maxHeaderListSize?: number; + enableConnectProtocol?: boolean; + } + + export interface ClientSessionRequestOptions { + endStream?: boolean; + exclusive?: boolean; + parent?: number; + weight?: number; + waitForTrailers?: boolean; + } + + export interface SessionState { + effectiveLocalWindowSize?: number; + effectiveRecvDataLength?: number; + nextStreamID?: number; + localWindowSize?: number; + lastProcStreamID?: number; + remoteWindowSize?: number; + outboundQueueSize?: number; + deflateDynamicTableSize?: number; + inflateDynamicTableSize?: number; + } + + export interface Http2Session extends EventEmitter { + readonly alpnProtocol?: string; + readonly closed: boolean; + readonly connecting: boolean; + readonly destroyed: boolean; + readonly encrypted?: boolean; + readonly localSettings: Settings; + readonly originSet?: string[]; + readonly pendingSettingsAck: boolean; + readonly remoteSettings: Settings; + readonly socket: net.Socket | tls.TLSSocket; + readonly state: SessionState; + readonly type: number; + + close(callback?: () => void): void; + destroy(error?: Error, code?: number): void; + goaway(code?: number, lastStreamID?: number, opaqueData?: NodeJS.ArrayBufferView): void; + ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + ping(payload: NodeJS.ArrayBufferView, callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + ref(): void; + setLocalWindowSize(windowSize: number): void; + setTimeout(msecs: number, callback?: () => void): void; + settings(settings: Settings): void; + unref(): void; + + addListener(event: "close", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + addListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + addListener(event: "localSettings", listener: (settings: Settings) => void): this; + addListener(event: "ping", listener: () => void): this; + addListener(event: "remoteSettings", listener: (settings: Settings) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "frameError", frameType: number, errorCode: number, streamID: number): boolean; + emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean; + emit(event: "localSettings", settings: Settings): boolean; + emit(event: "ping"): boolean; + emit(event: "remoteSettings", settings: Settings): boolean; + emit(event: "timeout"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + on(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + on(event: "localSettings", listener: (settings: Settings) => void): this; + on(event: "ping", listener: () => void): this; + on(event: "remoteSettings", listener: (settings: Settings) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + once(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + once(event: "localSettings", listener: (settings: Settings) => void): this; + once(event: "ping", listener: () => void): this; + once(event: "remoteSettings", listener: (settings: Settings) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependListener(event: "localSettings", listener: (settings: Settings) => void): this; + prependListener(event: "ping", listener: () => void): this; + prependListener(event: "remoteSettings", listener: (settings: Settings) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependOnceListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependOnceListener(event: "localSettings", listener: (settings: Settings) => void): this; + prependOnceListener(event: "ping", listener: () => void): this; + prependOnceListener(event: "remoteSettings", listener: (settings: Settings) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface ClientHttp2Session extends Http2Session { + request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream; + + addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + addListener(event: "origin", listener: (origins: string[]) => void): this; + addListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "altsvc", alt: string, origin: string, stream: number): boolean; + emit(event: "origin", origins: ReadonlyArray): boolean; + emit(event: "connect", session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: "stream", stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + on(event: "origin", listener: (origins: string[]) => void): this; + on(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + once(event: "origin", listener: (origins: string[]) => void): this; + once(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + prependListener(event: "origin", listener: (origins: string[]) => void): this; + prependListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + prependOnceListener(event: "origin", listener: (origins: string[]) => void): this; + prependOnceListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface AlternativeServiceOptions { + origin: number | string | url.URL; + } + + export interface ServerHttp2Session extends Http2Session { + readonly server: Http2Server | Http2SecureServer; + + altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void; + origin(...args: Array): void; + + addListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "connect", session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + // Http2Server + + export interface SessionOptions { + maxDeflateDynamicTableSize?: number; + maxSessionMemory?: number; + maxHeaderListPairs?: number; + maxOutstandingPings?: number; + maxSendHeaderBlockLength?: number; + paddingStrategy?: number; + peerMaxConcurrentStreams?: number; + settings?: Settings; + + selectPadding?(frameLen: number, maxFrameLen: number): number; + createConnection?(authority: url.URL, option: SessionOptions): stream.Duplex; + } + + export interface ClientSessionOptions extends SessionOptions { + maxReservedRemoteStreams?: number; + createConnection?: (authority: url.URL, option: SessionOptions) => stream.Duplex; + protocol?: 'http:' | 'https:'; + } + + export interface ServerSessionOptions extends SessionOptions { + Http1IncomingMessage?: typeof IncomingMessage; + Http1ServerResponse?: typeof ServerResponse; + Http2ServerRequest?: typeof Http2ServerRequest; + Http2ServerResponse?: typeof Http2ServerResponse; + } + + export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions { } + export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions { } + + export interface ServerOptions extends ServerSessionOptions { } + + export interface SecureServerOptions extends SecureServerSessionOptions { + allowHTTP1?: boolean; + origins?: string[]; + } + + export interface Http2Server extends net.Server { + addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + addListener(event: "sessionError", listener: (err: Error) => void): this; + addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "session", session: ServerHttp2Session): boolean; + emit(event: "sessionError", err: Error): boolean; + emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "timeout"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "session", listener: (session: ServerHttp2Session) => void): this; + on(event: "sessionError", listener: (err: Error) => void): this; + on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "session", listener: (session: ServerHttp2Session) => void): this; + once(event: "sessionError", listener: (err: Error) => void): this; + once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependListener(event: "sessionError", listener: (err: Error) => void): this; + prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: "sessionError", listener: (err: Error) => void): this; + prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + setTimeout(msec?: number, callback?: () => void): this; + } + + export interface Http2SecureServer extends tls.Server { + addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + addListener(event: "sessionError", listener: (err: Error) => void): this; + addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "session", session: ServerHttp2Session): boolean; + emit(event: "sessionError", err: Error): boolean; + emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "timeout"): boolean; + emit(event: "unknownProtocol", socket: tls.TLSSocket): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "session", listener: (session: ServerHttp2Session) => void): this; + on(event: "sessionError", listener: (err: Error) => void): this; + on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "session", listener: (session: ServerHttp2Session) => void): this; + once(event: "sessionError", listener: (err: Error) => void): this; + once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependListener(event: "sessionError", listener: (err: Error) => void): this; + prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: "sessionError", listener: (err: Error) => void): this; + prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + setTimeout(msec?: number, callback?: () => void): this; + } + + export class Http2ServerRequest extends stream.Readable { + constructor(stream: ServerHttp2Stream, headers: IncomingHttpHeaders, options: stream.ReadableOptions, rawHeaders: ReadonlyArray); + + readonly aborted: boolean; + readonly authority: string; + readonly connection: net.Socket | tls.TLSSocket; + readonly complete: boolean; + readonly headers: IncomingHttpHeaders; + readonly httpVersion: string; + readonly httpVersionMinor: number; + readonly httpVersionMajor: number; + readonly method: string; + readonly rawHeaders: string[]; + readonly rawTrailers: string[]; + readonly scheme: string; + readonly socket: net.Socket | tls.TLSSocket; + readonly stream: ServerHttp2Stream; + readonly trailers: IncomingHttpHeaders; + readonly url: string; + + setTimeout(msecs: number, callback?: () => void): void; + read(size?: number): Buffer | string | null; + + addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: Buffer | string) => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "readable", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "aborted", hadError: boolean, code: number): boolean; + emit(event: "close"): boolean; + emit(event: "data", chunk: Buffer | string): boolean; + emit(event: "end"): boolean; + emit(event: "readable"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: Buffer | string) => void): this; + on(event: "end", listener: () => void): this; + on(event: "readable", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: Buffer | string) => void): this; + once(event: "end", listener: () => void): this; + once(event: "readable", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "readable", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "readable", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export class Http2ServerResponse extends stream.Writable { + constructor(stream: ServerHttp2Stream); + + readonly connection: net.Socket | tls.TLSSocket; + readonly finished: boolean; + readonly headersSent: boolean; + readonly socket: net.Socket | tls.TLSSocket; + readonly stream: ServerHttp2Stream; + sendDate: boolean; + statusCode: number; + statusMessage: ''; + addTrailers(trailers: OutgoingHttpHeaders): void; + end(callback?: () => void): void; + end(data: string | Uint8Array, callback?: () => void): void; + end(data: string | Uint8Array, encoding: BufferEncoding, callback?: () => void): void; + getHeader(name: string): string; + getHeaderNames(): string[]; + getHeaders(): OutgoingHttpHeaders; + hasHeader(name: string): boolean; + removeHeader(name: string): void; + setHeader(name: string, value: number | string | ReadonlyArray): void; + setTimeout(msecs: number, callback?: () => void): void; + write(chunk: string | Uint8Array, callback?: (err: Error) => void): boolean; + write(chunk: string | Uint8Array, encoding: BufferEncoding, callback?: (err: Error) => void): boolean; + writeContinue(): void; + writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this; + writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this; + createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void; + + addListener(event: "close", listener: () => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "error", listener: (error: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "pipe", listener: (src: stream.Readable) => void): this; + addListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "drain"): boolean; + emit(event: "error", error: Error): boolean; + emit(event: "finish"): boolean; + emit(event: "pipe", src: stream.Readable): boolean; + emit(event: "unpipe", src: stream.Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "drain", listener: () => void): this; + on(event: "error", listener: (error: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "pipe", listener: (src: stream.Readable) => void): this; + on(event: "unpipe", listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "drain", listener: () => void): this; + once(event: "error", listener: (error: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "pipe", listener: (src: stream.Readable) => void): this; + once(event: "unpipe", listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "error", listener: (error: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "error", listener: (error: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + // Public API + + export namespace constants { + const NGHTTP2_SESSION_SERVER: number; + const NGHTTP2_SESSION_CLIENT: number; + const NGHTTP2_STREAM_STATE_IDLE: number; + const NGHTTP2_STREAM_STATE_OPEN: number; + const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number; + const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number; + const NGHTTP2_STREAM_STATE_CLOSED: number; + const NGHTTP2_NO_ERROR: number; + const NGHTTP2_PROTOCOL_ERROR: number; + const NGHTTP2_INTERNAL_ERROR: number; + const NGHTTP2_FLOW_CONTROL_ERROR: number; + const NGHTTP2_SETTINGS_TIMEOUT: number; + const NGHTTP2_STREAM_CLOSED: number; + const NGHTTP2_FRAME_SIZE_ERROR: number; + const NGHTTP2_REFUSED_STREAM: number; + const NGHTTP2_CANCEL: number; + const NGHTTP2_COMPRESSION_ERROR: number; + const NGHTTP2_CONNECT_ERROR: number; + const NGHTTP2_ENHANCE_YOUR_CALM: number; + const NGHTTP2_INADEQUATE_SECURITY: number; + const NGHTTP2_HTTP_1_1_REQUIRED: number; + const NGHTTP2_ERR_FRAME_SIZE_ERROR: number; + const NGHTTP2_FLAG_NONE: number; + const NGHTTP2_FLAG_END_STREAM: number; + const NGHTTP2_FLAG_END_HEADERS: number; + const NGHTTP2_FLAG_ACK: number; + const NGHTTP2_FLAG_PADDED: number; + const NGHTTP2_FLAG_PRIORITY: number; + const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number; + const DEFAULT_SETTINGS_ENABLE_PUSH: number; + const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number; + const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number; + const MAX_MAX_FRAME_SIZE: number; + const MIN_MAX_FRAME_SIZE: number; + const MAX_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_DEFAULT_WEIGHT: number; + const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number; + const NGHTTP2_SETTINGS_ENABLE_PUSH: number; + const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number; + const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number; + const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number; + const PADDING_STRATEGY_NONE: number; + const PADDING_STRATEGY_MAX: number; + const PADDING_STRATEGY_CALLBACK: number; + const HTTP2_HEADER_STATUS: string; + const HTTP2_HEADER_METHOD: string; + const HTTP2_HEADER_AUTHORITY: string; + const HTTP2_HEADER_SCHEME: string; + const HTTP2_HEADER_PATH: string; + const HTTP2_HEADER_ACCEPT_CHARSET: string; + const HTTP2_HEADER_ACCEPT_ENCODING: string; + const HTTP2_HEADER_ACCEPT_LANGUAGE: string; + const HTTP2_HEADER_ACCEPT_RANGES: string; + const HTTP2_HEADER_ACCEPT: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string; + const HTTP2_HEADER_AGE: string; + const HTTP2_HEADER_ALLOW: string; + const HTTP2_HEADER_AUTHORIZATION: string; + const HTTP2_HEADER_CACHE_CONTROL: string; + const HTTP2_HEADER_CONNECTION: string; + const HTTP2_HEADER_CONTENT_DISPOSITION: string; + const HTTP2_HEADER_CONTENT_ENCODING: string; + const HTTP2_HEADER_CONTENT_LANGUAGE: string; + const HTTP2_HEADER_CONTENT_LENGTH: string; + const HTTP2_HEADER_CONTENT_LOCATION: string; + const HTTP2_HEADER_CONTENT_MD5: string; + const HTTP2_HEADER_CONTENT_RANGE: string; + const HTTP2_HEADER_CONTENT_TYPE: string; + const HTTP2_HEADER_COOKIE: string; + const HTTP2_HEADER_DATE: string; + const HTTP2_HEADER_ETAG: string; + const HTTP2_HEADER_EXPECT: string; + const HTTP2_HEADER_EXPIRES: string; + const HTTP2_HEADER_FROM: string; + const HTTP2_HEADER_HOST: string; + const HTTP2_HEADER_IF_MATCH: string; + const HTTP2_HEADER_IF_MODIFIED_SINCE: string; + const HTTP2_HEADER_IF_NONE_MATCH: string; + const HTTP2_HEADER_IF_RANGE: string; + const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string; + const HTTP2_HEADER_LAST_MODIFIED: string; + const HTTP2_HEADER_LINK: string; + const HTTP2_HEADER_LOCATION: string; + const HTTP2_HEADER_MAX_FORWARDS: string; + const HTTP2_HEADER_PREFER: string; + const HTTP2_HEADER_PROXY_AUTHENTICATE: string; + const HTTP2_HEADER_PROXY_AUTHORIZATION: string; + const HTTP2_HEADER_RANGE: string; + const HTTP2_HEADER_REFERER: string; + const HTTP2_HEADER_REFRESH: string; + const HTTP2_HEADER_RETRY_AFTER: string; + const HTTP2_HEADER_SERVER: string; + const HTTP2_HEADER_SET_COOKIE: string; + const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string; + const HTTP2_HEADER_TRANSFER_ENCODING: string; + const HTTP2_HEADER_TE: string; + const HTTP2_HEADER_UPGRADE: string; + const HTTP2_HEADER_USER_AGENT: string; + const HTTP2_HEADER_VARY: string; + const HTTP2_HEADER_VIA: string; + const HTTP2_HEADER_WWW_AUTHENTICATE: string; + const HTTP2_HEADER_HTTP2_SETTINGS: string; + const HTTP2_HEADER_KEEP_ALIVE: string; + const HTTP2_HEADER_PROXY_CONNECTION: string; + const HTTP2_METHOD_ACL: string; + const HTTP2_METHOD_BASELINE_CONTROL: string; + const HTTP2_METHOD_BIND: string; + const HTTP2_METHOD_CHECKIN: string; + const HTTP2_METHOD_CHECKOUT: string; + const HTTP2_METHOD_CONNECT: string; + const HTTP2_METHOD_COPY: string; + const HTTP2_METHOD_DELETE: string; + const HTTP2_METHOD_GET: string; + const HTTP2_METHOD_HEAD: string; + const HTTP2_METHOD_LABEL: string; + const HTTP2_METHOD_LINK: string; + const HTTP2_METHOD_LOCK: string; + const HTTP2_METHOD_MERGE: string; + const HTTP2_METHOD_MKACTIVITY: string; + const HTTP2_METHOD_MKCALENDAR: string; + const HTTP2_METHOD_MKCOL: string; + const HTTP2_METHOD_MKREDIRECTREF: string; + const HTTP2_METHOD_MKWORKSPACE: string; + const HTTP2_METHOD_MOVE: string; + const HTTP2_METHOD_OPTIONS: string; + const HTTP2_METHOD_ORDERPATCH: string; + const HTTP2_METHOD_PATCH: string; + const HTTP2_METHOD_POST: string; + const HTTP2_METHOD_PRI: string; + const HTTP2_METHOD_PROPFIND: string; + const HTTP2_METHOD_PROPPATCH: string; + const HTTP2_METHOD_PUT: string; + const HTTP2_METHOD_REBIND: string; + const HTTP2_METHOD_REPORT: string; + const HTTP2_METHOD_SEARCH: string; + const HTTP2_METHOD_TRACE: string; + const HTTP2_METHOD_UNBIND: string; + const HTTP2_METHOD_UNCHECKOUT: string; + const HTTP2_METHOD_UNLINK: string; + const HTTP2_METHOD_UNLOCK: string; + const HTTP2_METHOD_UPDATE: string; + const HTTP2_METHOD_UPDATEREDIRECTREF: string; + const HTTP2_METHOD_VERSION_CONTROL: string; + const HTTP_STATUS_CONTINUE: number; + const HTTP_STATUS_SWITCHING_PROTOCOLS: number; + const HTTP_STATUS_PROCESSING: number; + const HTTP_STATUS_OK: number; + const HTTP_STATUS_CREATED: number; + const HTTP_STATUS_ACCEPTED: number; + const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number; + const HTTP_STATUS_NO_CONTENT: number; + const HTTP_STATUS_RESET_CONTENT: number; + const HTTP_STATUS_PARTIAL_CONTENT: number; + const HTTP_STATUS_MULTI_STATUS: number; + const HTTP_STATUS_ALREADY_REPORTED: number; + const HTTP_STATUS_IM_USED: number; + const HTTP_STATUS_MULTIPLE_CHOICES: number; + const HTTP_STATUS_MOVED_PERMANENTLY: number; + const HTTP_STATUS_FOUND: number; + const HTTP_STATUS_SEE_OTHER: number; + const HTTP_STATUS_NOT_MODIFIED: number; + const HTTP_STATUS_USE_PROXY: number; + const HTTP_STATUS_TEMPORARY_REDIRECT: number; + const HTTP_STATUS_PERMANENT_REDIRECT: number; + const HTTP_STATUS_BAD_REQUEST: number; + const HTTP_STATUS_UNAUTHORIZED: number; + const HTTP_STATUS_PAYMENT_REQUIRED: number; + const HTTP_STATUS_FORBIDDEN: number; + const HTTP_STATUS_NOT_FOUND: number; + const HTTP_STATUS_METHOD_NOT_ALLOWED: number; + const HTTP_STATUS_NOT_ACCEPTABLE: number; + const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number; + const HTTP_STATUS_REQUEST_TIMEOUT: number; + const HTTP_STATUS_CONFLICT: number; + const HTTP_STATUS_GONE: number; + const HTTP_STATUS_LENGTH_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_FAILED: number; + const HTTP_STATUS_PAYLOAD_TOO_LARGE: number; + const HTTP_STATUS_URI_TOO_LONG: number; + const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number; + const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number; + const HTTP_STATUS_EXPECTATION_FAILED: number; + const HTTP_STATUS_TEAPOT: number; + const HTTP_STATUS_MISDIRECTED_REQUEST: number; + const HTTP_STATUS_UNPROCESSABLE_ENTITY: number; + const HTTP_STATUS_LOCKED: number; + const HTTP_STATUS_FAILED_DEPENDENCY: number; + const HTTP_STATUS_UNORDERED_COLLECTION: number; + const HTTP_STATUS_UPGRADE_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_REQUIRED: number; + const HTTP_STATUS_TOO_MANY_REQUESTS: number; + const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number; + const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number; + const HTTP_STATUS_INTERNAL_SERVER_ERROR: number; + const HTTP_STATUS_NOT_IMPLEMENTED: number; + const HTTP_STATUS_BAD_GATEWAY: number; + const HTTP_STATUS_SERVICE_UNAVAILABLE: number; + const HTTP_STATUS_GATEWAY_TIMEOUT: number; + const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number; + const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number; + const HTTP_STATUS_INSUFFICIENT_STORAGE: number; + const HTTP_STATUS_LOOP_DETECTED: number; + const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number; + const HTTP_STATUS_NOT_EXTENDED: number; + const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number; + } + + /** + * This symbol can be set as a property on the HTTP/2 headers object with + * an array value in order to provide a list of headers considered sensitive. + */ + export const sensitiveHeaders: symbol; + + export function getDefaultSettings(): Settings; + export function getPackedSettings(settings: Settings): Buffer; + export function getUnpackedSettings(buf: Uint8Array): Settings; + + export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + + export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + + export function connect(authority: string | url.URL, listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session; + export function connect( + authority: string | url.URL, + options?: ClientSessionOptions | SecureClientSessionOptions, + listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void + ): ClientHttp2Session; +} diff --git a/justdanceonline-main/node_modules/@types/node/https.d.ts b/justdanceonline-main/node_modules/@types/node/https.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..23f95681934ccd3ec39e791940eb54bda7925318 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/https.d.ts @@ -0,0 +1,36 @@ +declare module 'https' { + import * as tls from 'tls'; + import * as http from 'http'; + import { URL } from 'url'; + + type ServerOptions = tls.SecureContextOptions & tls.TlsOptions & http.ServerOptions; + + type RequestOptions = http.RequestOptions & tls.SecureContextOptions & { + rejectUnauthorized?: boolean; // Defaults to true + servername?: string; // SNI TLS Extension + }; + + interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions { + rejectUnauthorized?: boolean; + maxCachedSessions?: number; + } + + class Agent extends http.Agent { + constructor(options?: AgentOptions); + options: AgentOptions; + } + + interface Server extends http.HttpBase {} + class Server extends tls.Server { + constructor(requestListener?: http.RequestListener); + constructor(options: ServerOptions, requestListener?: http.RequestListener); + } + + function createServer(requestListener?: http.RequestListener): Server; + function createServer(options: ServerOptions, requestListener?: http.RequestListener): Server; + function request(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + function request(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + function get(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + function get(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + let globalAgent: Agent; +} diff --git a/justdanceonline-main/node_modules/@types/node/index.d.ts b/justdanceonline-main/node_modules/@types/node/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..948c558760c0c0e3c20ac888353d556e704841fe --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/index.d.ts @@ -0,0 +1,58 @@ +// Type definitions for non-npm package Node.js 15.0 +// Project: http://nodejs.org/ +// Definitions by: Microsoft TypeScript +// DefinitelyTyped +// Alberto Schiabel +// Alvis HT Tang +// Andrew Makarov +// Benjamin Toueg +// Chigozirim C. +// David Junger +// Deividas Bakanas +// Eugene Y. Q. Shen +// Hannes Magnusson +// Hoàng Văn Khải +// Huw +// Kelvin Jin +// Klaus Meinhardt +// Lishude +// Mariusz Wiktorczyk +// Mohsen Azimi +// Nicolas Even +// Nikita Galkin +// Parambir Singh +// Sebastian Silbermann +// Simon Schick +// Thomas den Hollander +// Wilco Bakker +// wwwy3y3 +// Samuel Ainsworth +// Kyle Uehlein +// Thanik Bhongbhibhat +// Marcin Kopacz +// Trivikram Kamat +// Minh Son Nguyen +// Junxiao Shi +// Ilia Baryshnikov +// ExE Boss +// Surasak Chaisurin +// Piotr Błażejewicz +// Anna Henningsen +// Jason Kwok +// Victor Perin +// Yongsheng Zhang +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +// NOTE: These definitions support NodeJS and TypeScript 3.7. +// Typically type modifications should be made in base.d.ts instead of here + +/// + +// NOTE: TypeScript version-specific augmentations can be found in the following paths: +// - ~/base.d.ts - Shared definitions common to all TypeScript versions +// - ~/index.d.ts - Definitions specific to TypeScript 2.8 +// - ~/ts3.5/index.d.ts - Definitions specific to TypeScript 3.5 + +// NOTE: Augmentations for TypeScript 3.5 and later should use individual files for overrides +// within the respective ~/ts3.5 (or later) folder. However, this is disallowed for versions +// prior to TypeScript 3.5, so the older definitions will be found here. diff --git a/justdanceonline-main/node_modules/@types/node/inspector.d.ts b/justdanceonline-main/node_modules/@types/node/inspector.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7403c523075cd36e51f208642e4db2651615acbf --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/inspector.d.ts @@ -0,0 +1,3041 @@ +// tslint:disable-next-line:dt-header +// Type definitions for inspector + +// These definitions are auto-generated. +// Please see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/19330 +// for more information. + +// tslint:disable:max-line-length + +/** + * The inspector module provides an API for interacting with the V8 inspector. + */ +declare module 'inspector' { + import EventEmitter = require('events'); + + interface InspectorNotification { + method: string; + params: T; + } + + namespace Schema { + /** + * Description of the protocol domain. + */ + interface Domain { + /** + * Domain name. + */ + name: string; + /** + * Domain version. + */ + version: string; + } + + interface GetDomainsReturnType { + /** + * List of supported domains. + */ + domains: Domain[]; + } + } + + namespace Runtime { + /** + * Unique script identifier. + */ + type ScriptId = string; + + /** + * Unique object identifier. + */ + type RemoteObjectId = string; + + /** + * Primitive value which cannot be JSON-stringified. + */ + type UnserializableValue = string; + + /** + * Mirror object referencing original JavaScript object. + */ + interface RemoteObject { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string; + /** + * Object class (constructor) name. Specified for object type values only. + */ + className?: string; + /** + * Remote object value in case of primitive values or JSON values (if it was requested). + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified does not have value, but gets this property. + */ + unserializableValue?: UnserializableValue; + /** + * String representation of the object. + */ + description?: string; + /** + * Unique object identifier (for non-primitive values). + */ + objectId?: RemoteObjectId; + /** + * Preview containing abbreviated property values. Specified for object type values only. + * @experimental + */ + preview?: ObjectPreview; + /** + * @experimental + */ + customPreview?: CustomPreview; + } + + /** + * @experimental + */ + interface CustomPreview { + header: string; + hasBody: boolean; + formatterObjectId: RemoteObjectId; + bindRemoteObjectFunctionId: RemoteObjectId; + configObjectId?: RemoteObjectId; + } + + /** + * Object containing abbreviated remote object value. + * @experimental + */ + interface ObjectPreview { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string; + /** + * String representation of the object. + */ + description?: string; + /** + * True iff some of the properties or entries of the original object did not fit. + */ + overflow: boolean; + /** + * List of the properties. + */ + properties: PropertyPreview[]; + /** + * List of the entries. Specified for map and set subtype values only. + */ + entries?: EntryPreview[]; + } + + /** + * @experimental + */ + interface PropertyPreview { + /** + * Property name. + */ + name: string; + /** + * Object type. Accessor means that the property itself is an accessor property. + */ + type: string; + /** + * User-friendly property value string. + */ + value?: string; + /** + * Nested value preview. + */ + valuePreview?: ObjectPreview; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string; + } + + /** + * @experimental + */ + interface EntryPreview { + /** + * Preview of the key. Specified for map-like collection entries. + */ + key?: ObjectPreview; + /** + * Preview of the value. + */ + value: ObjectPreview; + } + + /** + * Object property descriptor. + */ + interface PropertyDescriptor { + /** + * Property name or symbol description. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject; + /** + * True if the value associated with the property may be changed (data descriptors only). + */ + writable?: boolean; + /** + * A function which serves as a getter for the property, or undefined if there is no getter (accessor descriptors only). + */ + get?: RemoteObject; + /** + * A function which serves as a setter for the property, or undefined if there is no setter (accessor descriptors only). + */ + set?: RemoteObject; + /** + * True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object. + */ + configurable: boolean; + /** + * True if this property shows up during enumeration of the properties on the corresponding object. + */ + enumerable: boolean; + /** + * True if the result was thrown during the evaluation. + */ + wasThrown?: boolean; + /** + * True if the property is owned for the object. + */ + isOwn?: boolean; + /** + * Property symbol object, if the property is of the symbol type. + */ + symbol?: RemoteObject; + } + + /** + * Object internal property descriptor. This property isn't normally visible in JavaScript code. + */ + interface InternalPropertyDescriptor { + /** + * Conventional property name. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject; + } + + /** + * Represents function call argument. Either remote object id objectId, primitive value, unserializable primitive value or neither of (for undefined) them should be specified. + */ + interface CallArgument { + /** + * Primitive value or serializable javascript object. + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified. + */ + unserializableValue?: UnserializableValue; + /** + * Remote object handle. + */ + objectId?: RemoteObjectId; + } + + /** + * Id of an execution context. + */ + type ExecutionContextId = number; + + /** + * Description of an isolated world. + */ + interface ExecutionContextDescription { + /** + * Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed. + */ + id: ExecutionContextId; + /** + * Execution context origin. + */ + origin: string; + /** + * Human readable name describing given context. + */ + name: string; + /** + * Embedder-specific auxiliary data. + */ + auxData?: {}; + } + + /** + * Detailed information about exception (or error) that was thrown during script compilation or execution. + */ + interface ExceptionDetails { + /** + * Exception id. + */ + exceptionId: number; + /** + * Exception text, which should be used together with exception object when available. + */ + text: string; + /** + * Line number of the exception location (0-based). + */ + lineNumber: number; + /** + * Column number of the exception location (0-based). + */ + columnNumber: number; + /** + * Script ID of the exception location. + */ + scriptId?: ScriptId; + /** + * URL of the exception location, to be used when the script was not reported. + */ + url?: string; + /** + * JavaScript stack trace if available. + */ + stackTrace?: StackTrace; + /** + * Exception object if available. + */ + exception?: RemoteObject; + /** + * Identifier of the context where exception happened. + */ + executionContextId?: ExecutionContextId; + } + + /** + * Number of milliseconds since epoch. + */ + type Timestamp = number; + + /** + * Stack entry for runtime errors and assertions. + */ + interface CallFrame { + /** + * JavaScript function name. + */ + functionName: string; + /** + * JavaScript script id. + */ + scriptId: ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * JavaScript script line number (0-based). + */ + lineNumber: number; + /** + * JavaScript script column number (0-based). + */ + columnNumber: number; + } + + /** + * Call frames for assertions or error messages. + */ + interface StackTrace { + /** + * String label of this stack trace. For async traces this may be a name of the function that initiated the async call. + */ + description?: string; + /** + * JavaScript function name. + */ + callFrames: CallFrame[]; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + */ + parent?: StackTrace; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + * @experimental + */ + parentId?: StackTraceId; + } + + /** + * Unique identifier of current debugger. + * @experimental + */ + type UniqueDebuggerId = string; + + /** + * If debuggerId is set stack trace comes from another debugger and can be resolved there. This allows to track cross-debugger calls. See Runtime.StackTrace and Debugger.paused for usages. + * @experimental + */ + interface StackTraceId { + id: string; + debuggerId?: UniqueDebuggerId; + } + + interface EvaluateParameterType { + /** + * Expression to evaluate. + */ + expression: string; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + contextId?: ExecutionContextId; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean; + } + + interface AwaitPromiseParameterType { + /** + * Identifier of the promise. + */ + promiseObjectId: RemoteObjectId; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean; + } + + interface CallFunctionOnParameterType { + /** + * Declaration of the function to call. + */ + functionDeclaration: string; + /** + * Identifier of the object to call function on. Either objectId or executionContextId should be specified. + */ + objectId?: RemoteObjectId; + /** + * Call arguments. All call arguments must belong to the same JavaScript world as the target object. + */ + arguments?: CallArgument[]; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean; + /** + * Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified. + */ + executionContextId?: ExecutionContextId; + /** + * Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object. + */ + objectGroup?: string; + } + + interface GetPropertiesParameterType { + /** + * Identifier of the object to return properties for. + */ + objectId: RemoteObjectId; + /** + * If true, returns properties belonging only to the element itself, not to its prototype chain. + */ + ownProperties?: boolean; + /** + * If true, returns accessor properties (with getter/setter) only; internal properties are not returned either. + * @experimental + */ + accessorPropertiesOnly?: boolean; + /** + * Whether preview should be generated for the results. + * @experimental + */ + generatePreview?: boolean; + } + + interface ReleaseObjectParameterType { + /** + * Identifier of the object to release. + */ + objectId: RemoteObjectId; + } + + interface ReleaseObjectGroupParameterType { + /** + * Symbolic object group name. + */ + objectGroup: string; + } + + interface SetCustomObjectFormatterEnabledParameterType { + enabled: boolean; + } + + interface CompileScriptParameterType { + /** + * Expression to compile. + */ + expression: string; + /** + * Source url to be set for the script. + */ + sourceURL: string; + /** + * Specifies whether the compiled script should be persisted. + */ + persistScript: boolean; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId; + } + + interface RunScriptParameterType { + /** + * Id of the script to run. + */ + scriptId: ScriptId; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean; + } + + interface QueryObjectsParameterType { + /** + * Identifier of the prototype to return objects for. + */ + prototypeObjectId: RemoteObjectId; + } + + interface GlobalLexicalScopeNamesParameterType { + /** + * Specifies in which execution context to lookup global scope variables. + */ + executionContextId?: ExecutionContextId; + } + + interface EvaluateReturnType { + /** + * Evaluation result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface AwaitPromiseReturnType { + /** + * Promise result. Will contain rejected value if promise was rejected. + */ + result: RemoteObject; + /** + * Exception details if stack strace is available. + */ + exceptionDetails?: ExceptionDetails; + } + + interface CallFunctionOnReturnType { + /** + * Call result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface GetPropertiesReturnType { + /** + * Object properties. + */ + result: PropertyDescriptor[]; + /** + * Internal object properties (only of the element itself). + */ + internalProperties?: InternalPropertyDescriptor[]; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface CompileScriptReturnType { + /** + * Id of the script. + */ + scriptId?: ScriptId; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface RunScriptReturnType { + /** + * Run result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface QueryObjectsReturnType { + /** + * Array with objects. + */ + objects: RemoteObject; + } + + interface GlobalLexicalScopeNamesReturnType { + names: string[]; + } + + interface ExecutionContextCreatedEventDataType { + /** + * A newly created execution context. + */ + context: ExecutionContextDescription; + } + + interface ExecutionContextDestroyedEventDataType { + /** + * Id of the destroyed context + */ + executionContextId: ExecutionContextId; + } + + interface ExceptionThrownEventDataType { + /** + * Timestamp of the exception. + */ + timestamp: Timestamp; + exceptionDetails: ExceptionDetails; + } + + interface ExceptionRevokedEventDataType { + /** + * Reason describing why exception was revoked. + */ + reason: string; + /** + * The id of revoked exception, as reported in exceptionThrown. + */ + exceptionId: number; + } + + interface ConsoleAPICalledEventDataType { + /** + * Type of the call. + */ + type: string; + /** + * Call arguments. + */ + args: RemoteObject[]; + /** + * Identifier of the context where the call was made. + */ + executionContextId: ExecutionContextId; + /** + * Call timestamp. + */ + timestamp: Timestamp; + /** + * Stack trace captured when the call was made. + */ + stackTrace?: StackTrace; + /** + * Console context descriptor for calls on non-default console context (not console.*): 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call on named context. + * @experimental + */ + context?: string; + } + + interface InspectRequestedEventDataType { + object: RemoteObject; + hints: {}; + } + } + + namespace Debugger { + /** + * Breakpoint identifier. + */ + type BreakpointId = string; + + /** + * Call frame identifier. + */ + type CallFrameId = string; + + /** + * Location in the source code. + */ + interface Location { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number; + } + + /** + * Location in the source code. + * @experimental + */ + interface ScriptPosition { + lineNumber: number; + columnNumber: number; + } + + /** + * JavaScript call frame. Array of call frames form the call stack. + */ + interface CallFrame { + /** + * Call frame identifier. This identifier is only valid while the virtual machine is paused. + */ + callFrameId: CallFrameId; + /** + * Name of the JavaScript function called on this call frame. + */ + functionName: string; + /** + * Location in the source code. + */ + functionLocation?: Location; + /** + * Location in the source code. + */ + location: Location; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Scope chain for this call frame. + */ + scopeChain: Scope[]; + /** + * this object for this call frame. + */ + this: Runtime.RemoteObject; + /** + * The value being returned, if the function is at return point. + */ + returnValue?: Runtime.RemoteObject; + } + + /** + * Scope description. + */ + interface Scope { + /** + * Scope type. + */ + type: string; + /** + * Object representing the scope. For global and with scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties. + */ + object: Runtime.RemoteObject; + name?: string; + /** + * Location in the source code where scope starts + */ + startLocation?: Location; + /** + * Location in the source code where scope ends + */ + endLocation?: Location; + } + + /** + * Search match for resource. + */ + interface SearchMatch { + /** + * Line number in resource content. + */ + lineNumber: number; + /** + * Line with match content. + */ + lineContent: string; + } + + interface BreakLocation { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number; + type?: string; + } + + interface SetBreakpointsActiveParameterType { + /** + * New value for breakpoints active state. + */ + active: boolean; + } + + interface SetSkipAllPausesParameterType { + /** + * New value for skip pauses state. + */ + skip: boolean; + } + + interface SetBreakpointByUrlParameterType { + /** + * Line number to set breakpoint at. + */ + lineNumber: number; + /** + * URL of the resources to set breakpoint on. + */ + url?: string; + /** + * Regex pattern for the URLs of the resources to set breakpoints on. Either url or urlRegex must be specified. + */ + urlRegex?: string; + /** + * Script hash of the resources to set breakpoint on. + */ + scriptHash?: string; + /** + * Offset in the line to set breakpoint at. + */ + columnNumber?: number; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string; + } + + interface SetBreakpointParameterType { + /** + * Location to set breakpoint in. + */ + location: Location; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string; + } + + interface RemoveBreakpointParameterType { + breakpointId: BreakpointId; + } + + interface GetPossibleBreakpointsParameterType { + /** + * Start of range to search possible breakpoint locations in. + */ + start: Location; + /** + * End of range to search possible breakpoint locations in (excluding). When not specified, end of scripts is used as end of range. + */ + end?: Location; + /** + * Only consider locations which are in the same (non-nested) function as start. + */ + restrictToFunction?: boolean; + } + + interface ContinueToLocationParameterType { + /** + * Location to continue to. + */ + location: Location; + targetCallFrames?: string; + } + + interface PauseOnAsyncCallParameterType { + /** + * Debugger will pause when async call with given stack trace is started. + */ + parentStackTraceId: Runtime.StackTraceId; + } + + interface StepIntoParameterType { + /** + * Debugger will issue additional Debugger.paused notification if any async task is scheduled before next pause. + * @experimental + */ + breakOnAsyncCall?: boolean; + } + + interface GetStackTraceParameterType { + stackTraceId: Runtime.StackTraceId; + } + + interface SearchInContentParameterType { + /** + * Id of the script to search in. + */ + scriptId: Runtime.ScriptId; + /** + * String to search for. + */ + query: string; + /** + * If true, search is case sensitive. + */ + caseSensitive?: boolean; + /** + * If true, treats string parameter as regex. + */ + isRegex?: boolean; + } + + interface SetScriptSourceParameterType { + /** + * Id of the script to edit. + */ + scriptId: Runtime.ScriptId; + /** + * New content of the script. + */ + scriptSource: string; + /** + * If true the change will not actually be applied. Dry run may be used to get result description without actually modifying the code. + */ + dryRun?: boolean; + } + + interface RestartFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + } + + interface GetScriptSourceParameterType { + /** + * Id of the script to get source for. + */ + scriptId: Runtime.ScriptId; + } + + interface SetPauseOnExceptionsParameterType { + /** + * Pause on exceptions mode. + */ + state: string; + } + + interface EvaluateOnCallFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + /** + * Expression to evaluate. + */ + expression: string; + /** + * String object group name to put result into (allows rapid releasing resulting object handles using releaseObjectGroup). + */ + objectGroup?: string; + /** + * Specifies whether command line API should be available to the evaluated expression, defaults to false. + */ + includeCommandLineAPI?: boolean; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean; + /** + * Whether to throw an exception if side effect cannot be ruled out during evaluation. + */ + throwOnSideEffect?: boolean; + } + + interface SetVariableValueParameterType { + /** + * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' scope types are allowed. Other scopes could be manipulated manually. + */ + scopeNumber: number; + /** + * Variable name. + */ + variableName: string; + /** + * New variable value. + */ + newValue: Runtime.CallArgument; + /** + * Id of callframe that holds variable. + */ + callFrameId: CallFrameId; + } + + interface SetReturnValueParameterType { + /** + * New return value. + */ + newValue: Runtime.CallArgument; + } + + interface SetAsyncCallStackDepthParameterType { + /** + * Maximum depth of async call stacks. Setting to 0 will effectively disable collecting async call stacks (default). + */ + maxDepth: number; + } + + interface SetBlackboxPatternsParameterType { + /** + * Array of regexps that will be used to check script url for blackbox state. + */ + patterns: string[]; + } + + interface SetBlackboxedRangesParameterType { + /** + * Id of the script. + */ + scriptId: Runtime.ScriptId; + positions: ScriptPosition[]; + } + + interface EnableReturnType { + /** + * Unique identifier of the debugger. + * @experimental + */ + debuggerId: Runtime.UniqueDebuggerId; + } + + interface SetBreakpointByUrlReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * List of the locations this breakpoint resolved into upon addition. + */ + locations: Location[]; + } + + interface SetBreakpointReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * Location this breakpoint resolved into. + */ + actualLocation: Location; + } + + interface GetPossibleBreakpointsReturnType { + /** + * List of the possible breakpoint locations. + */ + locations: BreakLocation[]; + } + + interface GetStackTraceReturnType { + stackTrace: Runtime.StackTrace; + } + + interface SearchInContentReturnType { + /** + * List of search matches. + */ + result: SearchMatch[]; + } + + interface SetScriptSourceReturnType { + /** + * New stack trace in case editing has happened while VM was stopped. + */ + callFrames?: CallFrame[]; + /** + * Whether current call stack was modified after applying the changes. + */ + stackChanged?: boolean; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId; + /** + * Exception details if any. + */ + exceptionDetails?: Runtime.ExceptionDetails; + } + + interface RestartFrameReturnType { + /** + * New stack trace. + */ + callFrames: CallFrame[]; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId; + } + + interface GetScriptSourceReturnType { + /** + * Script source. + */ + scriptSource: string; + } + + interface EvaluateOnCallFrameReturnType { + /** + * Object wrapper for the evaluation result. + */ + result: Runtime.RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: Runtime.ExceptionDetails; + } + + interface ScriptParsedEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {}; + /** + * True, if this script is generated as a result of the live edit operation. + * @experimental + */ + isLiveEdit?: boolean; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean; + /** + * This script length. + */ + length?: number; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace; + } + + interface ScriptFailedToParseEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {}; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean; + /** + * This script length. + */ + length?: number; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace; + } + + interface BreakpointResolvedEventDataType { + /** + * Breakpoint unique identifier. + */ + breakpointId: BreakpointId; + /** + * Actual breakpoint location. + */ + location: Location; + } + + interface PausedEventDataType { + /** + * Call stack the virtual machine stopped on. + */ + callFrames: CallFrame[]; + /** + * Pause reason. + */ + reason: string; + /** + * Object containing break-specific auxiliary properties. + */ + data?: {}; + /** + * Hit breakpoints IDs + */ + hitBreakpoints?: string[]; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId; + /** + * Just scheduled async call will have this stack trace as parent stack during async execution. This field is available only after Debugger.stepInto call with breakOnAsynCall flag. + * @experimental + */ + asyncCallStackTraceId?: Runtime.StackTraceId; + } + } + + namespace Console { + /** + * Console message. + */ + interface ConsoleMessage { + /** + * Message source. + */ + source: string; + /** + * Message severity. + */ + level: string; + /** + * Message text. + */ + text: string; + /** + * URL of the message origin. + */ + url?: string; + /** + * Line number in the resource that generated this message (1-based). + */ + line?: number; + /** + * Column number in the resource that generated this message (1-based). + */ + column?: number; + } + + interface MessageAddedEventDataType { + /** + * Console message that has been added. + */ + message: ConsoleMessage; + } + } + + namespace Profiler { + /** + * Profile node. Holds callsite information, execution statistics and child nodes. + */ + interface ProfileNode { + /** + * Unique id of the node. + */ + id: number; + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Number of samples where this node was on top of the call stack. + */ + hitCount?: number; + /** + * Child node ids. + */ + children?: number[]; + /** + * The reason of being not optimized. The function may be deoptimized or marked as don't optimize. + */ + deoptReason?: string; + /** + * An array of source position ticks. + */ + positionTicks?: PositionTickInfo[]; + } + + /** + * Profile. + */ + interface Profile { + /** + * The list of profile nodes. First item is the root node. + */ + nodes: ProfileNode[]; + /** + * Profiling start timestamp in microseconds. + */ + startTime: number; + /** + * Profiling end timestamp in microseconds. + */ + endTime: number; + /** + * Ids of samples top nodes. + */ + samples?: number[]; + /** + * Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime. + */ + timeDeltas?: number[]; + } + + /** + * Specifies a number of samples attributed to a certain source position. + */ + interface PositionTickInfo { + /** + * Source line number (1-based). + */ + line: number; + /** + * Number of samples attributed to the source line. + */ + ticks: number; + } + + /** + * Coverage data for a source range. + */ + interface CoverageRange { + /** + * JavaScript script source offset for the range start. + */ + startOffset: number; + /** + * JavaScript script source offset for the range end. + */ + endOffset: number; + /** + * Collected execution count of the source range. + */ + count: number; + } + + /** + * Coverage data for a JavaScript function. + */ + interface FunctionCoverage { + /** + * JavaScript function name. + */ + functionName: string; + /** + * Source ranges inside the function with coverage data. + */ + ranges: CoverageRange[]; + /** + * Whether coverage data for this function has block granularity. + */ + isBlockCoverage: boolean; + } + + /** + * Coverage data for a JavaScript script. + */ + interface ScriptCoverage { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Functions contained in the script that has coverage data. + */ + functions: FunctionCoverage[]; + } + + /** + * Describes a type collected during runtime. + * @experimental + */ + interface TypeObject { + /** + * Name of a type collected with type profiling. + */ + name: string; + } + + /** + * Source offset and types for a parameter or return value. + * @experimental + */ + interface TypeProfileEntry { + /** + * Source offset of the parameter or end of function for return values. + */ + offset: number; + /** + * The types for this parameter or return value. + */ + types: TypeObject[]; + } + + /** + * Type profile data collected during runtime for a JavaScript script. + * @experimental + */ + interface ScriptTypeProfile { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Type profile entries for parameters and return values of the functions in the script. + */ + entries: TypeProfileEntry[]; + } + + interface SetSamplingIntervalParameterType { + /** + * New sampling interval in microseconds. + */ + interval: number; + } + + interface StartPreciseCoverageParameterType { + /** + * Collect accurate call counts beyond simple 'covered' or 'not covered'. + */ + callCount?: boolean; + /** + * Collect block-based coverage. + */ + detailed?: boolean; + } + + interface StopReturnType { + /** + * Recorded profile. + */ + profile: Profile; + } + + interface TakePreciseCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + + interface GetBestEffortCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + + interface TakeTypeProfileReturnType { + /** + * Type profile for all scripts since startTypeProfile() was turned on. + */ + result: ScriptTypeProfile[]; + } + + interface ConsoleProfileStartedEventDataType { + id: string; + /** + * Location of console.profile(). + */ + location: Debugger.Location; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string; + } + + interface ConsoleProfileFinishedEventDataType { + id: string; + /** + * Location of console.profileEnd(). + */ + location: Debugger.Location; + profile: Profile; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string; + } + } + + namespace HeapProfiler { + /** + * Heap snapshot object id. + */ + type HeapSnapshotObjectId = string; + + /** + * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes. + */ + interface SamplingHeapProfileNode { + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Allocations size in bytes for the node excluding children. + */ + selfSize: number; + /** + * Child nodes. + */ + children: SamplingHeapProfileNode[]; + } + + /** + * Profile. + */ + interface SamplingHeapProfile { + head: SamplingHeapProfileNode; + } + + interface StartTrackingHeapObjectsParameterType { + trackAllocations?: boolean; + } + + interface StopTrackingHeapObjectsParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped. + */ + reportProgress?: boolean; + } + + interface TakeHeapSnapshotParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. + */ + reportProgress?: boolean; + } + + interface GetObjectByHeapObjectIdParameterType { + objectId: HeapSnapshotObjectId; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string; + } + + interface AddInspectedHeapObjectParameterType { + /** + * Heap snapshot object id to be accessible by means of $x command line API. + */ + heapObjectId: HeapSnapshotObjectId; + } + + interface GetHeapObjectIdParameterType { + /** + * Identifier of the object to get heap object id for. + */ + objectId: Runtime.RemoteObjectId; + } + + interface StartSamplingParameterType { + /** + * Average sample interval in bytes. Poisson distribution is used for the intervals. The default value is 32768 bytes. + */ + samplingInterval?: number; + } + + interface GetObjectByHeapObjectIdReturnType { + /** + * Evaluation result. + */ + result: Runtime.RemoteObject; + } + + interface GetHeapObjectIdReturnType { + /** + * Id of the heap snapshot object corresponding to the passed remote object id. + */ + heapSnapshotObjectId: HeapSnapshotObjectId; + } + + interface StopSamplingReturnType { + /** + * Recorded sampling heap profile. + */ + profile: SamplingHeapProfile; + } + + interface GetSamplingProfileReturnType { + /** + * Return the sampling profile being collected. + */ + profile: SamplingHeapProfile; + } + + interface AddHeapSnapshotChunkEventDataType { + chunk: string; + } + + interface ReportHeapSnapshotProgressEventDataType { + done: number; + total: number; + finished?: boolean; + } + + interface LastSeenObjectIdEventDataType { + lastSeenObjectId: number; + timestamp: number; + } + + interface HeapStatsUpdateEventDataType { + /** + * An array of triplets. Each triplet describes a fragment. The first integer is the fragment index, the second integer is a total count of objects for the fragment, the third integer is a total size of the objects for the fragment. + */ + statsUpdate: number[]; + } + } + + namespace NodeTracing { + interface TraceConfig { + /** + * Controls how the trace buffer stores data. + */ + recordMode?: string; + /** + * Included category filters. + */ + includedCategories: string[]; + } + + interface StartParameterType { + traceConfig: TraceConfig; + } + + interface GetCategoriesReturnType { + /** + * A list of supported tracing categories. + */ + categories: string[]; + } + + interface DataCollectedEventDataType { + value: Array<{}>; + } + } + + namespace NodeWorker { + type WorkerID = string; + + /** + * Unique identifier of attached debugging session. + */ + type SessionID = string; + + interface WorkerInfo { + workerId: WorkerID; + type: string; + title: string; + url: string; + } + + interface SendMessageToWorkerParameterType { + message: string; + /** + * Identifier of the session. + */ + sessionId: SessionID; + } + + interface EnableParameterType { + /** + * Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger` + * message to run them. + */ + waitForDebuggerOnStart: boolean; + } + + interface DetachParameterType { + sessionId: SessionID; + } + + interface AttachedToWorkerEventDataType { + /** + * Identifier assigned to the session used to send/receive messages. + */ + sessionId: SessionID; + workerInfo: WorkerInfo; + waitingForDebugger: boolean; + } + + interface DetachedFromWorkerEventDataType { + /** + * Detached session identifier. + */ + sessionId: SessionID; + } + + interface ReceivedMessageFromWorkerEventDataType { + /** + * Identifier of a session which sends a message. + */ + sessionId: SessionID; + message: string; + } + } + + namespace NodeRuntime { + interface NotifyWhenWaitingForDisconnectParameterType { + enabled: boolean; + } + } + + /** + * The inspector.Session is used for dispatching messages to the V8 inspector back-end and receiving message responses and notifications. + */ + class Session extends EventEmitter { + /** + * Create a new instance of the inspector.Session class. + * The inspector session needs to be connected through session.connect() before the messages can be dispatched to the inspector backend. + */ + constructor(); + + /** + * Connects a session to the inspector back-end. + * An exception will be thrown if there is already a connected session established either + * through the API or by a front-end connected to the Inspector WebSocket port. + */ + connect(): void; + + /** + * Immediately close the session. All pending message callbacks will be called with an error. + * session.connect() will need to be called to be able to send messages again. + * Reconnected session will lose all inspector state, such as enabled agents or configured breakpoints. + */ + disconnect(): void; + + /** + * Posts a message to the inspector back-end. callback will be notified when a response is received. + * callback is a function that accepts two optional arguments - error and message-specific result. + */ + post(method: string, params?: {}, callback?: (err: Error | null, params?: {}) => void): void; + post(method: string, callback?: (err: Error | null, params?: {}) => void): void; + + /** + * Returns supported domains. + */ + post(method: "Schema.getDomains", callback?: (err: Error | null, params: Schema.GetDomainsReturnType) => void): void; + + /** + * Evaluates expression on global object. + */ + post(method: "Runtime.evaluate", params?: Runtime.EvaluateParameterType, callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + post(method: "Runtime.evaluate", callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + + /** + * Add handler to promise with given promise object id. + */ + post(method: "Runtime.awaitPromise", params?: Runtime.AwaitPromiseParameterType, callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + post(method: "Runtime.awaitPromise", callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + + /** + * Calls function with given declaration on the given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.callFunctionOn", params?: Runtime.CallFunctionOnParameterType, callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + post(method: "Runtime.callFunctionOn", callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + + /** + * Returns properties of a given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.getProperties", params?: Runtime.GetPropertiesParameterType, callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + post(method: "Runtime.getProperties", callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + + /** + * Releases remote object with given id. + */ + post(method: "Runtime.releaseObject", params?: Runtime.ReleaseObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.releaseObject", callback?: (err: Error | null) => void): void; + + /** + * Releases all remote objects that belong to a given group. + */ + post(method: "Runtime.releaseObjectGroup", params?: Runtime.ReleaseObjectGroupParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.releaseObjectGroup", callback?: (err: Error | null) => void): void; + + /** + * Tells inspected instance to run if it was waiting for debugger to attach. + */ + post(method: "Runtime.runIfWaitingForDebugger", callback?: (err: Error | null) => void): void; + + /** + * Enables reporting of execution contexts creation by means of executionContextCreated event. When the reporting gets enabled the event will be sent immediately for each existing execution context. + */ + post(method: "Runtime.enable", callback?: (err: Error | null) => void): void; + + /** + * Disables reporting of execution contexts creation. + */ + post(method: "Runtime.disable", callback?: (err: Error | null) => void): void; + + /** + * Discards collected exceptions and console API calls. + */ + post(method: "Runtime.discardConsoleEntries", callback?: (err: Error | null) => void): void; + + /** + * @experimental + */ + post(method: "Runtime.setCustomObjectFormatterEnabled", params?: Runtime.SetCustomObjectFormatterEnabledParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.setCustomObjectFormatterEnabled", callback?: (err: Error | null) => void): void; + + /** + * Compiles expression. + */ + post(method: "Runtime.compileScript", params?: Runtime.CompileScriptParameterType, callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + post(method: "Runtime.compileScript", callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + + /** + * Runs script with given id in a given context. + */ + post(method: "Runtime.runScript", params?: Runtime.RunScriptParameterType, callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: "Runtime.runScript", callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + + post(method: "Runtime.queryObjects", params?: Runtime.QueryObjectsParameterType, callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + post(method: "Runtime.queryObjects", callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + + /** + * Returns all let, const and class variables from global scope. + */ + post( + method: "Runtime.globalLexicalScopeNames", + params?: Runtime.GlobalLexicalScopeNamesParameterType, + callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void + ): void; + post(method: "Runtime.globalLexicalScopeNames", callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void): void; + + /** + * Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received. + */ + post(method: "Debugger.enable", callback?: (err: Error | null, params: Debugger.EnableReturnType) => void): void; + + /** + * Disables debugger for given page. + */ + post(method: "Debugger.disable", callback?: (err: Error | null) => void): void; + + /** + * Activates / deactivates all breakpoints on the page. + */ + post(method: "Debugger.setBreakpointsActive", params?: Debugger.SetBreakpointsActiveParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBreakpointsActive", callback?: (err: Error | null) => void): void; + + /** + * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc). + */ + post(method: "Debugger.setSkipAllPauses", params?: Debugger.SetSkipAllPausesParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setSkipAllPauses", callback?: (err: Error | null) => void): void; + + /** + * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in locations property. Further matching script parsing will result in subsequent breakpointResolved events issued. This logical breakpoint will survive page reloads. + */ + post(method: "Debugger.setBreakpointByUrl", params?: Debugger.SetBreakpointByUrlParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + post(method: "Debugger.setBreakpointByUrl", callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + + /** + * Sets JavaScript breakpoint at a given location. + */ + post(method: "Debugger.setBreakpoint", params?: Debugger.SetBreakpointParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + post(method: "Debugger.setBreakpoint", callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + + /** + * Removes JavaScript breakpoint. + */ + post(method: "Debugger.removeBreakpoint", params?: Debugger.RemoveBreakpointParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.removeBreakpoint", callback?: (err: Error | null) => void): void; + + /** + * Returns possible locations for breakpoint. scriptId in start and end range locations should be the same. + */ + post( + method: "Debugger.getPossibleBreakpoints", + params?: Debugger.GetPossibleBreakpointsParameterType, + callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void + ): void; + post(method: "Debugger.getPossibleBreakpoints", callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void): void; + + /** + * Continues execution until specific location is reached. + */ + post(method: "Debugger.continueToLocation", params?: Debugger.ContinueToLocationParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.continueToLocation", callback?: (err: Error | null) => void): void; + + /** + * @experimental + */ + post(method: "Debugger.pauseOnAsyncCall", params?: Debugger.PauseOnAsyncCallParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.pauseOnAsyncCall", callback?: (err: Error | null) => void): void; + + /** + * Steps over the statement. + */ + post(method: "Debugger.stepOver", callback?: (err: Error | null) => void): void; + + /** + * Steps into the function call. + */ + post(method: "Debugger.stepInto", params?: Debugger.StepIntoParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.stepInto", callback?: (err: Error | null) => void): void; + + /** + * Steps out of the function call. + */ + post(method: "Debugger.stepOut", callback?: (err: Error | null) => void): void; + + /** + * Stops on the next JavaScript statement. + */ + post(method: "Debugger.pause", callback?: (err: Error | null) => void): void; + + /** + * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled before next pause. Returns success when async task is actually scheduled, returns error if no task were scheduled or another scheduleStepIntoAsync was called. + * @experimental + */ + post(method: "Debugger.scheduleStepIntoAsync", callback?: (err: Error | null) => void): void; + + /** + * Resumes JavaScript execution. + */ + post(method: "Debugger.resume", callback?: (err: Error | null) => void): void; + + /** + * Returns stack trace with given stackTraceId. + * @experimental + */ + post(method: "Debugger.getStackTrace", params?: Debugger.GetStackTraceParameterType, callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + post(method: "Debugger.getStackTrace", callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + + /** + * Searches for given string in script content. + */ + post(method: "Debugger.searchInContent", params?: Debugger.SearchInContentParameterType, callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + post(method: "Debugger.searchInContent", callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + + /** + * Edits JavaScript source live. + */ + post(method: "Debugger.setScriptSource", params?: Debugger.SetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + post(method: "Debugger.setScriptSource", callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + + /** + * Restarts particular call frame from the beginning. + */ + post(method: "Debugger.restartFrame", params?: Debugger.RestartFrameParameterType, callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + post(method: "Debugger.restartFrame", callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + + /** + * Returns source for the script with given id. + */ + post(method: "Debugger.getScriptSource", params?: Debugger.GetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + post(method: "Debugger.getScriptSource", callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + + /** + * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is none. + */ + post(method: "Debugger.setPauseOnExceptions", params?: Debugger.SetPauseOnExceptionsParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setPauseOnExceptions", callback?: (err: Error | null) => void): void; + + /** + * Evaluates expression on a given call frame. + */ + post(method: "Debugger.evaluateOnCallFrame", params?: Debugger.EvaluateOnCallFrameParameterType, callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + post(method: "Debugger.evaluateOnCallFrame", callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + + /** + * Changes value of variable in a callframe. Object-based scopes are not supported and must be mutated manually. + */ + post(method: "Debugger.setVariableValue", params?: Debugger.SetVariableValueParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setVariableValue", callback?: (err: Error | null) => void): void; + + /** + * Changes return value in top frame. Available only at return break position. + * @experimental + */ + post(method: "Debugger.setReturnValue", params?: Debugger.SetReturnValueParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setReturnValue", callback?: (err: Error | null) => void): void; + + /** + * Enables or disables async call stacks tracking. + */ + post(method: "Debugger.setAsyncCallStackDepth", params?: Debugger.SetAsyncCallStackDepthParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setAsyncCallStackDepth", callback?: (err: Error | null) => void): void; + + /** + * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in scripts with url matching one of the patterns. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. + * @experimental + */ + post(method: "Debugger.setBlackboxPatterns", params?: Debugger.SetBlackboxPatternsParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBlackboxPatterns", callback?: (err: Error | null) => void): void; + + /** + * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. Positions array contains positions where blackbox state is changed. First interval isn't blackboxed. Array should be sorted. + * @experimental + */ + post(method: "Debugger.setBlackboxedRanges", params?: Debugger.SetBlackboxedRangesParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBlackboxedRanges", callback?: (err: Error | null) => void): void; + + /** + * Enables console domain, sends the messages collected so far to the client by means of the messageAdded notification. + */ + post(method: "Console.enable", callback?: (err: Error | null) => void): void; + + /** + * Disables console domain, prevents further console messages from being reported to the client. + */ + post(method: "Console.disable", callback?: (err: Error | null) => void): void; + + /** + * Does nothing. + */ + post(method: "Console.clearMessages", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.enable", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.disable", callback?: (err: Error | null) => void): void; + + /** + * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started. + */ + post(method: "Profiler.setSamplingInterval", params?: Profiler.SetSamplingIntervalParameterType, callback?: (err: Error | null) => void): void; + post(method: "Profiler.setSamplingInterval", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.start", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.stop", callback?: (err: Error | null, params: Profiler.StopReturnType) => void): void; + + /** + * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters. + */ + post(method: "Profiler.startPreciseCoverage", params?: Profiler.StartPreciseCoverageParameterType, callback?: (err: Error | null) => void): void; + post(method: "Profiler.startPreciseCoverage", callback?: (err: Error | null) => void): void; + + /** + * Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code. + */ + post(method: "Profiler.stopPreciseCoverage", callback?: (err: Error | null) => void): void; + + /** + * Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started. + */ + post(method: "Profiler.takePreciseCoverage", callback?: (err: Error | null, params: Profiler.TakePreciseCoverageReturnType) => void): void; + + /** + * Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection. + */ + post(method: "Profiler.getBestEffortCoverage", callback?: (err: Error | null, params: Profiler.GetBestEffortCoverageReturnType) => void): void; + + /** + * Enable type profile. + * @experimental + */ + post(method: "Profiler.startTypeProfile", callback?: (err: Error | null) => void): void; + + /** + * Disable type profile. Disabling releases type profile data collected so far. + * @experimental + */ + post(method: "Profiler.stopTypeProfile", callback?: (err: Error | null) => void): void; + + /** + * Collect type profile. + * @experimental + */ + post(method: "Profiler.takeTypeProfile", callback?: (err: Error | null, params: Profiler.TakeTypeProfileReturnType) => void): void; + + post(method: "HeapProfiler.enable", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.disable", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.startTrackingHeapObjects", params?: HeapProfiler.StartTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.startTrackingHeapObjects", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.stopTrackingHeapObjects", params?: HeapProfiler.StopTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.stopTrackingHeapObjects", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.takeHeapSnapshot", params?: HeapProfiler.TakeHeapSnapshotParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.takeHeapSnapshot", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.collectGarbage", callback?: (err: Error | null) => void): void; + + post( + method: "HeapProfiler.getObjectByHeapObjectId", + params?: HeapProfiler.GetObjectByHeapObjectIdParameterType, + callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void + ): void; + post(method: "HeapProfiler.getObjectByHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void): void; + + /** + * Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions). + */ + post(method: "HeapProfiler.addInspectedHeapObject", params?: HeapProfiler.AddInspectedHeapObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.addInspectedHeapObject", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.getHeapObjectId", params?: HeapProfiler.GetHeapObjectIdParameterType, callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: "HeapProfiler.getHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + + post(method: "HeapProfiler.startSampling", params?: HeapProfiler.StartSamplingParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.startSampling", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.stopSampling", callback?: (err: Error | null, params: HeapProfiler.StopSamplingReturnType) => void): void; + + post(method: "HeapProfiler.getSamplingProfile", callback?: (err: Error | null, params: HeapProfiler.GetSamplingProfileReturnType) => void): void; + + /** + * Gets supported tracing categories. + */ + post(method: "NodeTracing.getCategories", callback?: (err: Error | null, params: NodeTracing.GetCategoriesReturnType) => void): void; + + /** + * Start trace events collection. + */ + post(method: "NodeTracing.start", params?: NodeTracing.StartParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeTracing.start", callback?: (err: Error | null) => void): void; + + /** + * Stop trace events collection. Remaining collected events will be sent as a sequence of + * dataCollected events followed by tracingComplete event. + */ + post(method: "NodeTracing.stop", callback?: (err: Error | null) => void): void; + + /** + * Sends protocol message over session with given id. + */ + post(method: "NodeWorker.sendMessageToWorker", params?: NodeWorker.SendMessageToWorkerParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.sendMessageToWorker", callback?: (err: Error | null) => void): void; + + /** + * Instructs the inspector to attach to running workers. Will also attach to new workers + * as they start + */ + post(method: "NodeWorker.enable", params?: NodeWorker.EnableParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.enable", callback?: (err: Error | null) => void): void; + + /** + * Detaches from all running workers and disables attaching to new workers as they are started. + */ + post(method: "NodeWorker.disable", callback?: (err: Error | null) => void): void; + + /** + * Detached from the worker with given sessionId. + */ + post(method: "NodeWorker.detach", params?: NodeWorker.DetachParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.detach", callback?: (err: Error | null) => void): void; + + /** + * Enable the `NodeRuntime.waitingForDisconnect`. + */ + post(method: "NodeRuntime.notifyWhenWaitingForDisconnect", params?: NodeRuntime.NotifyWhenWaitingForDisconnectParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeRuntime.notifyWhenWaitingForDisconnect", callback?: (err: Error | null) => void): void; + + // Events + + addListener(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + addListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + addListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + addListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + addListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + addListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + addListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + addListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + addListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + addListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + addListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + addListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + addListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + addListener(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + addListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + addListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + addListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + addListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + addListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + addListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + addListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + addListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + addListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + addListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + addListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + addListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "inspectorNotification", message: InspectorNotification<{}>): boolean; + emit(event: "Runtime.executionContextCreated", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextDestroyed", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextsCleared"): boolean; + emit(event: "Runtime.exceptionThrown", message: InspectorNotification): boolean; + emit(event: "Runtime.exceptionRevoked", message: InspectorNotification): boolean; + emit(event: "Runtime.consoleAPICalled", message: InspectorNotification): boolean; + emit(event: "Runtime.inspectRequested", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptParsed", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptFailedToParse", message: InspectorNotification): boolean; + emit(event: "Debugger.breakpointResolved", message: InspectorNotification): boolean; + emit(event: "Debugger.paused", message: InspectorNotification): boolean; + emit(event: "Debugger.resumed"): boolean; + emit(event: "Console.messageAdded", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileStarted", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileFinished", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.addHeapSnapshotChunk", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.resetProfiles"): boolean; + emit(event: "HeapProfiler.reportHeapSnapshotProgress", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.lastSeenObjectId", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.heapStatsUpdate", message: InspectorNotification): boolean; + emit(event: "NodeTracing.dataCollected", message: InspectorNotification): boolean; + emit(event: "NodeTracing.tracingComplete"): boolean; + emit(event: "NodeWorker.attachedToWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.detachedFromWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.receivedMessageFromWorker", message: InspectorNotification): boolean; + emit(event: "NodeRuntime.waitingForDisconnect"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + on(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + on(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + on(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + on(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + on(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + on(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + on(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + on(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + on(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + on(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + on(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + on(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + on(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + on(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + on(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + on(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.resetProfiles", listener: () => void): this; + on(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + on(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + on(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + on(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + on(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + on(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + on(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + on(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + on(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + once(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + once(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + once(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + once(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + once(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + once(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + once(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + once(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + once(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + once(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + once(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + once(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + once(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + once(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + once(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + once(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.resetProfiles", listener: () => void): this; + once(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + once(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + once(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + once(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + once(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + once(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + once(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + once(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + once(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + prependListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + prependListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + prependListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + prependListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + prependListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + prependListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + prependListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + prependListener(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + prependListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + prependListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + prependListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + prependListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + prependListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependOnceListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + prependOnceListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + prependOnceListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + prependOnceListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + prependOnceListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + prependOnceListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + prependOnceListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependOnceListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependOnceListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + prependOnceListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependOnceListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependOnceListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + prependOnceListener(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + prependOnceListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependOnceListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + prependOnceListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependOnceListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependOnceListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependOnceListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + prependOnceListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependOnceListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + prependOnceListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + prependOnceListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependOnceListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependOnceListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + } + + // Top Level API + + /** + * Activate inspector on host and port. Equivalent to node --inspect=[[host:]port], but can be done programatically after node has started. + * If wait is true, will block until a client has connected to the inspect port and flow control has been passed to the debugger client. + * @param port Port to listen on for inspector connections. Optional, defaults to what was specified on the CLI. + * @param host Host to listen on for inspector connections. Optional, defaults to what was specified on the CLI. + * @param wait Block until a client has connected. Optional, defaults to false. + */ + function open(port?: number, host?: string, wait?: boolean): void; + + /** + * Deactivate the inspector. Blocks until there are no active connections. + */ + function close(): void; + + /** + * Return the URL of the active inspector, or `undefined` if there is none. + */ + function url(): string | undefined; + + /** + * Blocks until a client (existing or connected later) has sent + * `Runtime.runIfWaitingForDebugger` command. + * An exception will be thrown if there is no active inspector. + */ + function waitForDebugger(): void; +} diff --git a/justdanceonline-main/node_modules/@types/node/module.d.ts b/justdanceonline-main/node_modules/@types/node/module.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..787955a562194d15c9711cbc5409cacebd7ff569 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/module.d.ts @@ -0,0 +1,52 @@ +declare module 'module' { + import { URL } from 'url'; + namespace Module { + /** + * Updates all the live bindings for builtin ES Modules to match the properties of the CommonJS exports. + * It does not add or remove exported names from the ES Modules. + */ + function syncBuiltinESMExports(): void; + + function findSourceMap(path: string, error?: Error): SourceMap; + interface SourceMapPayload { + file: string; + version: number; + sources: string[]; + sourcesContent: string[]; + names: string[]; + mappings: string; + sourceRoot: string; + } + + interface SourceMapping { + generatedLine: number; + generatedColumn: number; + originalSource: string; + originalLine: number; + originalColumn: number; + } + + class SourceMap { + readonly payload: SourceMapPayload; + constructor(payload: SourceMapPayload); + findEntry(line: number, column: number): SourceMapping; + } + } + interface Module extends NodeModule {} + class Module { + static runMain(): void; + static wrap(code: string): string; + + /** + * @deprecated Deprecated since: v12.2.0. Please use createRequire() instead. + */ + static createRequireFromPath(path: string): NodeRequire; + static createRequire(path: string | URL): NodeRequire; + static builtinModules: string[]; + + static Module: typeof Module; + + constructor(id: string, parent?: Module); + } + export = Module; +} diff --git a/justdanceonline-main/node_modules/@types/node/net.d.ts b/justdanceonline-main/node_modules/@types/node/net.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..5bcdddf623890073816b5a1309b1e9fbe2604480 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/net.d.ts @@ -0,0 +1,324 @@ +declare module 'net' { + import * as stream from 'stream'; + import EventEmitter = require('events'); + import * as dns from 'dns'; + + type LookupFunction = ( + hostname: string, + options: dns.LookupOneOptions, + callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void, + ) => void; + + interface AddressInfo { + address: string; + family: string; + port: number; + } + + interface SocketConstructorOpts { + fd?: number; + allowHalfOpen?: boolean; + readable?: boolean; + writable?: boolean; + } + + interface OnReadOpts { + buffer: Uint8Array | (() => Uint8Array); + /** + * This function is called for every chunk of incoming data. + * Two arguments are passed to it: the number of bytes written to buffer and a reference to buffer. + * Return false from this function to implicitly pause() the socket. + */ + callback(bytesWritten: number, buf: Uint8Array): boolean; + } + + interface ConnectOpts { + /** + * If specified, incoming data is stored in a single buffer and passed to the supplied callback when data arrives on the socket. + * Note: this will cause the streaming functionality to not provide any data, however events like 'error', 'end', and 'close' will + * still be emitted as normal and methods like pause() and resume() will also behave as expected. + */ + onread?: OnReadOpts; + } + + interface TcpSocketConnectOpts extends ConnectOpts { + port: number; + host?: string; + localAddress?: string; + localPort?: number; + hints?: number; + family?: number; + lookup?: LookupFunction; + } + + interface IpcSocketConnectOpts extends ConnectOpts { + path: string; + } + + type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts; + + class Socket extends stream.Duplex { + constructor(options?: SocketConstructorOpts); + + // Extended base methods + write(buffer: Uint8Array | string, cb?: (err?: Error) => void): boolean; + write(str: Uint8Array | string, encoding?: BufferEncoding, cb?: (err?: Error) => void): boolean; + + connect(options: SocketConnectOpts, connectionListener?: () => void): this; + connect(port: number, host: string, connectionListener?: () => void): this; + connect(port: number, connectionListener?: () => void): this; + connect(path: string, connectionListener?: () => void): this; + + setEncoding(encoding?: BufferEncoding): this; + pause(): this; + resume(): this; + setTimeout(timeout: number, callback?: () => void): this; + setNoDelay(noDelay?: boolean): this; + setKeepAlive(enable?: boolean, initialDelay?: number): this; + address(): AddressInfo | {}; + unref(): this; + ref(): this; + + /** @deprecated since v14.6.0 - Use `writableLength` instead. */ + readonly bufferSize: number; + readonly bytesRead: number; + readonly bytesWritten: number; + readonly connecting: boolean; + readonly destroyed: boolean; + readonly localAddress: string; + readonly localPort: number; + readonly remoteAddress?: string; + readonly remoteFamily?: string; + readonly remotePort?: number; + + // Extended base methods + end(cb?: () => void): void; + end(buffer: Uint8Array | string, cb?: () => void): void; + end(str: Uint8Array | string, encoding?: BufferEncoding, cb?: () => void): void; + + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. data + * 4. drain + * 5. end + * 6. error + * 7. lookup + * 8. timeout + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: (had_error: boolean) => void): this; + addListener(event: "connect", listener: () => void): this; + addListener(event: "data", listener: (data: Buffer) => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + addListener(event: "timeout", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close", had_error: boolean): boolean; + emit(event: "connect"): boolean; + emit(event: "data", data: Buffer): boolean; + emit(event: "drain"): boolean; + emit(event: "end"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "lookup", err: Error, address: string, family: string | number, host: string): boolean; + emit(event: "timeout"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: (had_error: boolean) => void): this; + on(event: "connect", listener: () => void): this; + on(event: "data", listener: (data: Buffer) => void): this; + on(event: "drain", listener: () => void): this; + on(event: "end", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + on(event: "timeout", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: (had_error: boolean) => void): this; + once(event: "connect", listener: () => void): this; + once(event: "data", listener: (data: Buffer) => void): this; + once(event: "drain", listener: () => void): this; + once(event: "end", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + once(event: "timeout", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: (had_error: boolean) => void): this; + prependListener(event: "connect", listener: () => void): this; + prependListener(event: "data", listener: (data: Buffer) => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependListener(event: "timeout", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: (had_error: boolean) => void): this; + prependOnceListener(event: "connect", listener: () => void): this; + prependOnceListener(event: "data", listener: (data: Buffer) => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + } + + interface ListenOptions { + port?: number; + host?: string; + backlog?: number; + path?: string; + exclusive?: boolean; + readableAll?: boolean; + writableAll?: boolean; + /** + * @default false + */ + ipv6Only?: boolean; + } + + interface ServerOpts { + /** + * Indicates whether half-opened TCP connections are allowed. __Default:__ `false`. + */ + allowHalfOpen?: boolean; + + /** + * Indicates whether the socket should be paused on incoming connections. __Default:__ `false`. + */ + pauseOnConnect?: boolean; + } + + // https://github.com/nodejs/node/blob/master/lib/net.js + class Server extends EventEmitter { + constructor(connectionListener?: (socket: Socket) => void); + constructor(options?: ServerOpts, connectionListener?: (socket: Socket) => void); + + listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, hostname?: string, listeningListener?: () => void): this; + listen(port?: number, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, listeningListener?: () => void): this; + listen(path: string, backlog?: number, listeningListener?: () => void): this; + listen(path: string, listeningListener?: () => void): this; + listen(options: ListenOptions, listeningListener?: () => void): this; + listen(handle: any, backlog?: number, listeningListener?: () => void): this; + listen(handle: any, listeningListener?: () => void): this; + close(callback?: (err?: Error) => void): this; + address(): AddressInfo | string | null; + getConnections(cb: (error: Error | null, count: number) => void): void; + ref(): this; + unref(): this; + maxConnections: number; + connections: number; + listening: boolean; + + /** + * events.EventEmitter + * 1. close + * 2. connection + * 3. error + * 4. listening + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "connection", listener: (socket: Socket) => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "listening", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "connection", socket: Socket): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "listening"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "connection", listener: (socket: Socket) => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "listening", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "connection", listener: (socket: Socket) => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "listening", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "connection", listener: (socket: Socket) => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "listening", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "connection", listener: (socket: Socket) => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "listening", listener: () => void): this; + } + + type IPVersion = 'ipv4' | 'ipv6'; + + class BlockList { + /** + * Adds a rule to block the given IP address. + * + * @param address An IPv4 or IPv6 address. + * @param type Either 'ipv4' or 'ipv6'. Default: 'ipv4'. + */ + addAddress(address: string, type?: IPVersion): void; + + /** + * Adds a rule to block a range of IP addresses from start (inclusive) to end (inclusive). + * + * @param start The starting IPv4 or IPv6 address in the range. + * @param end The ending IPv4 or IPv6 address in the range. + * @param type Either 'ipv4' or 'ipv6'. Default: 'ipv4'. + */ + addRange(start: string, end: string, type?: IPVersion): void; + + /** + * Adds a rule to block a range of IP addresses specified as a subnet mask. + * + * @param net The network IPv4 or IPv6 address. + * @param prefix The number of CIDR prefix bits. + * For IPv4, this must be a value between 0 and 32. For IPv6, this must be between 0 and 128. + * @param type Either 'ipv4' or 'ipv6'. Default: 'ipv4'. + */ + addSubnet(net: string, prefix: number, type?: IPVersion): void; + + /** + * Returns `true` if the given IP address matches any of the rules added to the `BlockList`. + * + * @param address The IP address to check + * @param type Either 'ipv4' or 'ipv6'. Default: 'ipv4'. + */ + check(address: string, type?: IPVersion): boolean; + } + + interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts { + timeout?: number; + } + + interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts { + timeout?: number; + } + + type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts; + + function createServer(connectionListener?: (socket: Socket) => void): Server; + function createServer(options?: ServerOpts, connectionListener?: (socket: Socket) => void): Server; + function connect(options: NetConnectOpts, connectionListener?: () => void): Socket; + function connect(port: number, host?: string, connectionListener?: () => void): Socket; + function connect(path: string, connectionListener?: () => void): Socket; + function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket; + function createConnection(port: number, host?: string, connectionListener?: () => void): Socket; + function createConnection(path: string, connectionListener?: () => void): Socket; + function isIP(input: string): number; + function isIPv4(input: string): boolean; + function isIPv6(input: string): boolean; +} diff --git a/justdanceonline-main/node_modules/@types/node/os.d.ts b/justdanceonline-main/node_modules/@types/node/os.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6c92907b72a0425c25639ffb02cc467ed4ce8fce --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/os.d.ts @@ -0,0 +1,239 @@ +declare module 'os' { + interface CpuInfo { + model: string; + speed: number; + times: { + user: number; + nice: number; + sys: number; + idle: number; + irq: number; + }; + } + + interface NetworkInterfaceBase { + address: string; + netmask: string; + mac: string; + internal: boolean; + cidr: string | null; + } + + interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { + family: "IPv4"; + } + + interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { + family: "IPv6"; + scopeid: number; + } + + interface UserInfo { + username: T; + uid: number; + gid: number; + shell: T; + homedir: T; + } + + type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; + + function hostname(): string; + function loadavg(): number[]; + function uptime(): number; + function freemem(): number; + function totalmem(): number; + function cpus(): CpuInfo[]; + function type(): string; + function release(): string; + function networkInterfaces(): NodeJS.Dict; + function homedir(): string; + function userInfo(options: { encoding: 'buffer' }): UserInfo; + function userInfo(options?: { encoding: BufferEncoding }): UserInfo; + + type SignalConstants = { + [key in NodeJS.Signals]: number; + }; + + namespace constants { + const UV_UDP_REUSEADDR: number; + namespace signals {} + const signals: SignalConstants; + namespace errno { + const E2BIG: number; + const EACCES: number; + const EADDRINUSE: number; + const EADDRNOTAVAIL: number; + const EAFNOSUPPORT: number; + const EAGAIN: number; + const EALREADY: number; + const EBADF: number; + const EBADMSG: number; + const EBUSY: number; + const ECANCELED: number; + const ECHILD: number; + const ECONNABORTED: number; + const ECONNREFUSED: number; + const ECONNRESET: number; + const EDEADLK: number; + const EDESTADDRREQ: number; + const EDOM: number; + const EDQUOT: number; + const EEXIST: number; + const EFAULT: number; + const EFBIG: number; + const EHOSTUNREACH: number; + const EIDRM: number; + const EILSEQ: number; + const EINPROGRESS: number; + const EINTR: number; + const EINVAL: number; + const EIO: number; + const EISCONN: number; + const EISDIR: number; + const ELOOP: number; + const EMFILE: number; + const EMLINK: number; + const EMSGSIZE: number; + const EMULTIHOP: number; + const ENAMETOOLONG: number; + const ENETDOWN: number; + const ENETRESET: number; + const ENETUNREACH: number; + const ENFILE: number; + const ENOBUFS: number; + const ENODATA: number; + const ENODEV: number; + const ENOENT: number; + const ENOEXEC: number; + const ENOLCK: number; + const ENOLINK: number; + const ENOMEM: number; + const ENOMSG: number; + const ENOPROTOOPT: number; + const ENOSPC: number; + const ENOSR: number; + const ENOSTR: number; + const ENOSYS: number; + const ENOTCONN: number; + const ENOTDIR: number; + const ENOTEMPTY: number; + const ENOTSOCK: number; + const ENOTSUP: number; + const ENOTTY: number; + const ENXIO: number; + const EOPNOTSUPP: number; + const EOVERFLOW: number; + const EPERM: number; + const EPIPE: number; + const EPROTO: number; + const EPROTONOSUPPORT: number; + const EPROTOTYPE: number; + const ERANGE: number; + const EROFS: number; + const ESPIPE: number; + const ESRCH: number; + const ESTALE: number; + const ETIME: number; + const ETIMEDOUT: number; + const ETXTBSY: number; + const EWOULDBLOCK: number; + const EXDEV: number; + const WSAEINTR: number; + const WSAEBADF: number; + const WSAEACCES: number; + const WSAEFAULT: number; + const WSAEINVAL: number; + const WSAEMFILE: number; + const WSAEWOULDBLOCK: number; + const WSAEINPROGRESS: number; + const WSAEALREADY: number; + const WSAENOTSOCK: number; + const WSAEDESTADDRREQ: number; + const WSAEMSGSIZE: number; + const WSAEPROTOTYPE: number; + const WSAENOPROTOOPT: number; + const WSAEPROTONOSUPPORT: number; + const WSAESOCKTNOSUPPORT: number; + const WSAEOPNOTSUPP: number; + const WSAEPFNOSUPPORT: number; + const WSAEAFNOSUPPORT: number; + const WSAEADDRINUSE: number; + const WSAEADDRNOTAVAIL: number; + const WSAENETDOWN: number; + const WSAENETUNREACH: number; + const WSAENETRESET: number; + const WSAECONNABORTED: number; + const WSAECONNRESET: number; + const WSAENOBUFS: number; + const WSAEISCONN: number; + const WSAENOTCONN: number; + const WSAESHUTDOWN: number; + const WSAETOOMANYREFS: number; + const WSAETIMEDOUT: number; + const WSAECONNREFUSED: number; + const WSAELOOP: number; + const WSAENAMETOOLONG: number; + const WSAEHOSTDOWN: number; + const WSAEHOSTUNREACH: number; + const WSAENOTEMPTY: number; + const WSAEPROCLIM: number; + const WSAEUSERS: number; + const WSAEDQUOT: number; + const WSAESTALE: number; + const WSAEREMOTE: number; + const WSASYSNOTREADY: number; + const WSAVERNOTSUPPORTED: number; + const WSANOTINITIALISED: number; + const WSAEDISCON: number; + const WSAENOMORE: number; + const WSAECANCELLED: number; + const WSAEINVALIDPROCTABLE: number; + const WSAEINVALIDPROVIDER: number; + const WSAEPROVIDERFAILEDINIT: number; + const WSASYSCALLFAILURE: number; + const WSASERVICE_NOT_FOUND: number; + const WSATYPE_NOT_FOUND: number; + const WSA_E_NO_MORE: number; + const WSA_E_CANCELLED: number; + const WSAEREFUSED: number; + } + namespace priority { + const PRIORITY_LOW: number; + const PRIORITY_BELOW_NORMAL: number; + const PRIORITY_NORMAL: number; + const PRIORITY_ABOVE_NORMAL: number; + const PRIORITY_HIGH: number; + const PRIORITY_HIGHEST: number; + } + } + + function arch(): string; + /** + * Returns a string identifying the kernel version. + * On POSIX systems, the operating system release is determined by calling + * [uname(3)][]. On Windows, `pRtlGetVersion` is used, and if it is not available, + * `GetVersionExW()` will be used. See + * https://en.wikipedia.org/wiki/Uname#Examples for more information. + */ + function version(): string; + function platform(): NodeJS.Platform; + function tmpdir(): string; + const EOL: string; + function endianness(): "BE" | "LE"; + /** + * Gets the priority of a process. + * Defaults to current process. + */ + function getPriority(pid?: number): number; + /** + * Sets the priority of the current process. + * @param priority Must be in range of -20 to 19 + */ + function setPriority(priority: number): void; + /** + * Sets the priority of the process specified process. + * @param priority Must be in range of -20 to 19 + */ + function setPriority(pid: number, priority: number): void; +} diff --git a/justdanceonline-main/node_modules/@types/node/package.json b/justdanceonline-main/node_modules/@types/node/package.json new file mode 100644 index 0000000000000000000000000000000000000000..a4d1aba0e6f7e0e2aa021a3576c770f32ff2a403 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/package.json @@ -0,0 +1,231 @@ +{ + "name": "@types/node", + "version": "15.0.2", + "description": "TypeScript definitions for Node.js", + "license": "MIT", + "contributors": [ + { + "name": "Microsoft TypeScript", + "url": "https://github.com/Microsoft", + "githubUsername": "Microsoft" + }, + { + "name": "DefinitelyTyped", + "url": "https://github.com/DefinitelyTyped", + "githubUsername": "DefinitelyTyped" + }, + { + "name": "Alberto Schiabel", + "url": "https://github.com/jkomyno", + "githubUsername": "jkomyno" + }, + { + "name": "Alvis HT Tang", + "url": "https://github.com/alvis", + "githubUsername": "alvis" + }, + { + "name": "Andrew Makarov", + "url": "https://github.com/r3nya", + "githubUsername": "r3nya" + }, + { + "name": "Benjamin Toueg", + "url": "https://github.com/btoueg", + "githubUsername": "btoueg" + }, + { + "name": "Chigozirim C.", + "url": "https://github.com/smac89", + "githubUsername": "smac89" + }, + { + "name": "David Junger", + "url": "https://github.com/touffy", + "githubUsername": "touffy" + }, + { + "name": "Deividas Bakanas", + "url": "https://github.com/DeividasBakanas", + "githubUsername": "DeividasBakanas" + }, + { + "name": "Eugene Y. Q. Shen", + "url": "https://github.com/eyqs", + "githubUsername": "eyqs" + }, + { + "name": "Hannes Magnusson", + "url": "https://github.com/Hannes-Magnusson-CK", + "githubUsername": "Hannes-Magnusson-CK" + }, + { + "name": "Hoàng Văn Khải", + "url": "https://github.com/KSXGitHub", + "githubUsername": "KSXGitHub" + }, + { + "name": "Huw", + "url": "https://github.com/hoo29", + "githubUsername": "hoo29" + }, + { + "name": "Kelvin Jin", + "url": "https://github.com/kjin", + "githubUsername": "kjin" + }, + { + "name": "Klaus Meinhardt", + "url": "https://github.com/ajafff", + "githubUsername": "ajafff" + }, + { + "name": "Lishude", + "url": "https://github.com/islishude", + "githubUsername": "islishude" + }, + { + "name": "Mariusz Wiktorczyk", + "url": "https://github.com/mwiktorczyk", + "githubUsername": "mwiktorczyk" + }, + { + "name": "Mohsen Azimi", + "url": "https://github.com/mohsen1", + "githubUsername": "mohsen1" + }, + { + "name": "Nicolas Even", + "url": "https://github.com/n-e", + "githubUsername": "n-e" + }, + { + "name": "Nikita Galkin", + "url": "https://github.com/galkin", + "githubUsername": "galkin" + }, + { + "name": "Parambir Singh", + "url": "https://github.com/parambirs", + "githubUsername": "parambirs" + }, + { + "name": "Sebastian Silbermann", + "url": "https://github.com/eps1lon", + "githubUsername": "eps1lon" + }, + { + "name": "Simon Schick", + "url": "https://github.com/SimonSchick", + "githubUsername": "SimonSchick" + }, + { + "name": "Thomas den Hollander", + "url": "https://github.com/ThomasdenH", + "githubUsername": "ThomasdenH" + }, + { + "name": "Wilco Bakker", + "url": "https://github.com/WilcoBakker", + "githubUsername": "WilcoBakker" + }, + { + "name": "wwwy3y3", + "url": "https://github.com/wwwy3y3", + "githubUsername": "wwwy3y3" + }, + { + "name": "Samuel Ainsworth", + "url": "https://github.com/samuela", + "githubUsername": "samuela" + }, + { + "name": "Kyle Uehlein", + "url": "https://github.com/kuehlein", + "githubUsername": "kuehlein" + }, + { + "name": "Thanik Bhongbhibhat", + "url": "https://github.com/bhongy", + "githubUsername": "bhongy" + }, + { + "name": "Marcin Kopacz", + "url": "https://github.com/chyzwar", + "githubUsername": "chyzwar" + }, + { + "name": "Trivikram Kamat", + "url": "https://github.com/trivikr", + "githubUsername": "trivikr" + }, + { + "name": "Minh Son Nguyen", + "url": "https://github.com/nguymin4", + "githubUsername": "nguymin4" + }, + { + "name": "Junxiao Shi", + "url": "https://github.com/yoursunny", + "githubUsername": "yoursunny" + }, + { + "name": "Ilia Baryshnikov", + "url": "https://github.com/qwelias", + "githubUsername": "qwelias" + }, + { + "name": "ExE Boss", + "url": "https://github.com/ExE-Boss", + "githubUsername": "ExE-Boss" + }, + { + "name": "Surasak Chaisurin", + "url": "https://github.com/Ryan-Willpower", + "githubUsername": "Ryan-Willpower" + }, + { + "name": "Piotr Błażejewicz", + "url": "https://github.com/peterblazejewicz", + "githubUsername": "peterblazejewicz" + }, + { + "name": "Anna Henningsen", + "url": "https://github.com/addaleax", + "githubUsername": "addaleax" + }, + { + "name": "Jason Kwok", + "url": "https://github.com/JasonHK", + "githubUsername": "JasonHK" + }, + { + "name": "Victor Perin", + "url": "https://github.com/victorperin", + "githubUsername": "victorperin" + }, + { + "name": "Yongsheng Zhang", + "url": "https://github.com/ZYSzys", + "githubUsername": "ZYSzys" + } + ], + "main": "", + "types": "index.d.ts", + "typesVersions": { + "<=3.6": { + "*": [ + "ts3.6/*" + ] + } + }, + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/node" + }, + "scripts": {}, + "dependencies": {}, + "typesPublisherContentHash": "b9f4badc74a3b8d0d3d6d7d094196c4851f8a80a2c34e8ba50f75d7de65c3c63", + "typeScriptVersion": "3.5" +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/@types/node/path.d.ts b/justdanceonline-main/node_modules/@types/node/path.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..943dec25b0f4fa40ad5d5b5036253834cf7abadb --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/path.d.ts @@ -0,0 +1,153 @@ +declare module 'path' { + namespace path { + /** + * A parsed path object generated by path.parse() or consumed by path.format(). + */ + interface ParsedPath { + /** + * The root of the path such as '/' or 'c:\' + */ + root: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base: string; + /** + * The file extension (if any) such as '.html' + */ + ext: string; + /** + * The file name without extension (if any) such as 'index' + */ + name: string; + } + + interface FormatInputPathObject { + /** + * The root of the path such as '/' or 'c:\' + */ + root?: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir?: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base?: string; + /** + * The file extension (if any) such as '.html' + */ + ext?: string; + /** + * The file name without extension (if any) such as 'index' + */ + name?: string; + } + + interface PlatformPath { + /** + * Normalize a string path, reducing '..' and '.' parts. + * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. + * + * @param p string path to normalize. + */ + normalize(p: string): string; + /** + * Join all arguments together and normalize the resulting path. + * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown. + * + * @param paths paths to join. + */ + join(...paths: string[]): string; + /** + * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. + * + * Starting from leftmost {from} parameter, resolves {to} to an absolute path. + * + * If {to} isn't already absolute, {from} arguments are prepended in right to left order, + * until an absolute path is found. If after using all {from} paths still no absolute path is found, + * the current working directory is used as well. The resulting path is normalized, + * and trailing slashes are removed unless the path gets resolved to the root directory. + * + * @param pathSegments string paths to join. Non-string arguments are ignored. + */ + resolve(...pathSegments: string[]): string; + /** + * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. + * + * @param path path to test. + */ + isAbsolute(p: string): boolean; + /** + * Solve the relative path from {from} to {to}. + * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. + */ + relative(from: string, to: string): string; + /** + * Return the directory name of a path. Similar to the Unix dirname command. + * + * @param p the path to evaluate. + */ + dirname(p: string): string; + /** + * Return the last portion of a path. Similar to the Unix basename command. + * Often used to extract the file name from a fully qualified path. + * + * @param p the path to evaluate. + * @param ext optionally, an extension to remove from the result. + */ + basename(p: string, ext?: string): string; + /** + * Return the extension of the path, from the last '.' to end of string in the last portion of the path. + * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string + * + * @param p the path to evaluate. + */ + extname(p: string): string; + /** + * The platform-specific file separator. '\\' or '/'. + */ + readonly sep: string; + /** + * The platform-specific file delimiter. ';' or ':'. + */ + readonly delimiter: string; + /** + * Returns an object from a path string - the opposite of format(). + * + * @param pathString path to evaluate. + */ + parse(p: string): ParsedPath; + /** + * Returns a path string from an object - the opposite of parse(). + * + * @param pathString path to evaluate. + */ + format(pP: FormatInputPathObject): string; + /** + * On Windows systems only, returns an equivalent namespace-prefixed path for the given path. + * If path is not a string, path will be returned without modifications. + * This method is meaningful only on Windows system. + * On POSIX systems, the method is non-operational and always returns path without modifications. + */ + toNamespacedPath(path: string): string; + /** + * Posix specific pathing. + * Same as parent object on posix. + */ + readonly posix: PlatformPath; + /** + * Windows specific pathing. + * Same as parent object on windows + */ + readonly win32: PlatformPath; + } + } + const path: path.PlatformPath; + export = path; +} diff --git a/justdanceonline-main/node_modules/@types/node/perf_hooks.d.ts b/justdanceonline-main/node_modules/@types/node/perf_hooks.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..bbea9387473d0c6cf8bd94e01b1618d64fbbae78 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/perf_hooks.d.ts @@ -0,0 +1,271 @@ +declare module 'perf_hooks' { + import { AsyncResource } from 'async_hooks'; + + type EntryType = 'node' | 'mark' | 'measure' | 'gc' | 'function' | 'http2' | 'http'; + + interface PerformanceEntry { + /** + * The total number of milliseconds elapsed for this entry. + * This value will not be meaningful for all Performance Entry types. + */ + readonly duration: number; + + /** + * The name of the performance entry. + */ + readonly name: string; + + /** + * The high resolution millisecond timestamp marking the starting time of the Performance Entry. + */ + readonly startTime: number; + + /** + * The type of the performance entry. + * Currently it may be one of: 'node', 'mark', 'measure', 'gc', or 'function'. + */ + readonly entryType: EntryType; + + /** + * When `performanceEntry.entryType` is equal to 'gc', `the performance.kind` property identifies + * the type of garbage collection operation that occurred. + * See perf_hooks.constants for valid values. + */ + readonly kind?: number; + + /** + * When `performanceEntry.entryType` is equal to 'gc', the `performance.flags` + * property contains additional information about garbage collection operation. + * See perf_hooks.constants for valid values. + */ + readonly flags?: number; + } + + interface PerformanceNodeTiming extends PerformanceEntry { + /** + * The high resolution millisecond timestamp at which the Node.js process completed bootstrap. + */ + readonly bootstrapComplete: number; + + /** + * The high resolution millisecond timestamp at which the Node.js process completed bootstrapping. + * If bootstrapping has not yet finished, the property has the value of -1. + */ + readonly environment: number; + + /** + * The high resolution millisecond timestamp at which the Node.js environment was initialized. + */ + readonly idleTime: number; + + /** + * The high resolution millisecond timestamp of the amount of time the event loop has been idle + * within the event loop's event provider (e.g. `epoll_wait`). This does not take CPU usage + * into consideration. If the event loop has not yet started (e.g., in the first tick of the main script), + * the property has the value of 0. + */ + readonly loopExit: number; + + /** + * The high resolution millisecond timestamp at which the Node.js event loop started. + * If the event loop has not yet started (e.g., in the first tick of the main script), the property has the value of -1. + */ + readonly loopStart: number; + + /** + * The high resolution millisecond timestamp at which the V8 platform was initialized. + */ + readonly v8Start: number; + } + + interface EventLoopUtilization { + idle: number; + active: number; + utilization: number; + } + + interface Performance { + /** + * If name is not provided, removes all PerformanceMark objects from the Performance Timeline. + * If name is provided, removes only the named mark. + * @param name + */ + clearMarks(name?: string): void; + + /** + * Creates a new PerformanceMark entry in the Performance Timeline. + * A PerformanceMark is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'mark', + * and whose performanceEntry.duration is always 0. + * Performance marks are used to mark specific significant moments in the Performance Timeline. + * @param name + */ + mark(name?: string): void; + + /** + * Creates a new PerformanceMeasure entry in the Performance Timeline. + * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure', + * and whose performanceEntry.duration measures the number of milliseconds elapsed since startMark and endMark. + * + * The startMark argument may identify any existing PerformanceMark in the the Performance Timeline, or may identify + * any of the timestamp properties provided by the PerformanceNodeTiming class. If the named startMark does not exist, + * then startMark is set to timeOrigin by default. + * + * The endMark argument must identify any existing PerformanceMark in the the Performance Timeline or any of the timestamp + * properties provided by the PerformanceNodeTiming class. If the named endMark does not exist, an error will be thrown. + * @param name + * @param startMark + * @param endMark + */ + measure(name: string, startMark: string, endMark: string): void; + + /** + * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones. + */ + readonly nodeTiming: PerformanceNodeTiming; + + /** + * @return the current high resolution millisecond timestamp + */ + now(): number; + + /** + * The timeOrigin specifies the high resolution millisecond timestamp from which all performance metric durations are measured. + */ + readonly timeOrigin: number; + + /** + * Wraps a function within a new function that measures the running time of the wrapped function. + * A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed. + * @param fn + */ + timerify any>(fn: T): T; + + /** + * eventLoopUtilization is similar to CPU utilization except that it is calculated using high precision wall-clock time. + * It represents the percentage of time the event loop has spent outside the event loop's event provider (e.g. epoll_wait). + * No other CPU idle time is taken into consideration. + * + * @param util1 The result of a previous call to eventLoopUtilization() + * @param util2 The result of a previous call to eventLoopUtilization() prior to util1 + */ + eventLoopUtilization(util1?: EventLoopUtilization, util2?: EventLoopUtilization): EventLoopUtilization; + } + + interface PerformanceObserverEntryList { + /** + * @return a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime. + */ + getEntries(): PerformanceEntry[]; + + /** + * @return a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime + * whose performanceEntry.name is equal to name, and optionally, whose performanceEntry.entryType is equal to type. + */ + getEntriesByName(name: string, type?: EntryType): PerformanceEntry[]; + + /** + * @return Returns a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime + * whose performanceEntry.entryType is equal to type. + */ + getEntriesByType(type: EntryType): PerformanceEntry[]; + } + + type PerformanceObserverCallback = (list: PerformanceObserverEntryList, observer: PerformanceObserver) => void; + + class PerformanceObserver extends AsyncResource { + constructor(callback: PerformanceObserverCallback); + + /** + * Disconnects the PerformanceObserver instance from all notifications. + */ + disconnect(): void; + + /** + * Subscribes the PerformanceObserver instance to notifications of new PerformanceEntry instances identified by options.entryTypes. + * When options.buffered is false, the callback will be invoked once for every PerformanceEntry instance. + * Property buffered defaults to false. + * @param options + */ + observe(options: { entryTypes: ReadonlyArray; buffered?: boolean }): void; + } + + namespace constants { + const NODE_PERFORMANCE_GC_MAJOR: number; + const NODE_PERFORMANCE_GC_MINOR: number; + const NODE_PERFORMANCE_GC_INCREMENTAL: number; + const NODE_PERFORMANCE_GC_WEAKCB: number; + + const NODE_PERFORMANCE_GC_FLAGS_NO: number; + const NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED: number; + const NODE_PERFORMANCE_GC_FLAGS_FORCED: number; + const NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY: number; + const NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE: number; + } + + const performance: Performance; + + interface EventLoopMonitorOptions { + /** + * The sampling rate in milliseconds. + * Must be greater than zero. + * @default 10 + */ + resolution?: number; + } + + interface EventLoopDelayMonitor { + /** + * Enables the event loop delay sample timer. Returns `true` if the timer was started, `false` if it was already started. + */ + enable(): boolean; + /** + * Disables the event loop delay sample timer. Returns `true` if the timer was stopped, `false` if it was already stopped. + */ + disable(): boolean; + + /** + * Resets the collected histogram data. + */ + reset(): void; + + /** + * Returns the value at the given percentile. + * @param percentile A percentile value between 1 and 100. + */ + percentile(percentile: number): number; + + /** + * A `Map` object detailing the accumulated percentile distribution. + */ + readonly percentiles: Map; + + /** + * The number of times the event loop delay exceeded the maximum 1 hour eventloop delay threshold. + */ + readonly exceeds: number; + + /** + * The minimum recorded event loop delay. + */ + readonly min: number; + + /** + * The maximum recorded event loop delay. + */ + readonly max: number; + + /** + * The mean of the recorded event loop delays. + */ + readonly mean: number; + + /** + * The standard deviation of the recorded event loop delays. + */ + readonly stddev: number; + } + + function monitorEventLoopDelay(options?: EventLoopMonitorOptions): EventLoopDelayMonitor; +} diff --git a/justdanceonline-main/node_modules/@types/node/process.d.ts b/justdanceonline-main/node_modules/@types/node/process.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1743c94ea871d5b2727507705b1184c93c7d0215 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/process.d.ts @@ -0,0 +1,449 @@ +declare module 'process' { + import * as tty from 'tty'; + + global { + var process: NodeJS.Process; + + namespace NodeJS { + // this namespace merge is here because these are specifically used + // as the type for process.stdin, process.stdout, and process.stderr. + // they can't live in tty.d.ts because we need to disambiguate the imported name. + interface ReadStream extends tty.ReadStream {} + interface WriteStream extends tty.WriteStream {} + + interface MemoryUsage { + rss: number; + heapTotal: number; + heapUsed: number; + external: number; + arrayBuffers: number; + } + + interface CpuUsage { + user: number; + system: number; + } + + interface ProcessRelease { + name: string; + sourceUrl?: string; + headersUrl?: string; + libUrl?: string; + lts?: string; + } + + interface ProcessVersions extends Dict { + http_parser: string; + node: string; + v8: string; + ares: string; + uv: string; + zlib: string; + modules: string; + openssl: string; + } + + type Platform = 'aix' + | 'android' + | 'darwin' + | 'freebsd' + | 'linux' + | 'openbsd' + | 'sunos' + | 'win32' + | 'cygwin' + | 'netbsd'; + + type Signals = + "SIGABRT" | "SIGALRM" | "SIGBUS" | "SIGCHLD" | "SIGCONT" | "SIGFPE" | "SIGHUP" | "SIGILL" | "SIGINT" | "SIGIO" | + "SIGIOT" | "SIGKILL" | "SIGPIPE" | "SIGPOLL" | "SIGPROF" | "SIGPWR" | "SIGQUIT" | "SIGSEGV" | "SIGSTKFLT" | + "SIGSTOP" | "SIGSYS" | "SIGTERM" | "SIGTRAP" | "SIGTSTP" | "SIGTTIN" | "SIGTTOU" | "SIGUNUSED" | "SIGURG" | + "SIGUSR1" | "SIGUSR2" | "SIGVTALRM" | "SIGWINCH" | "SIGXCPU" | "SIGXFSZ" | "SIGBREAK" | "SIGLOST" | "SIGINFO"; + + type MultipleResolveType = 'resolve' | 'reject'; + + type BeforeExitListener = (code: number) => void; + type DisconnectListener = () => void; + type ExitListener = (code: number) => void; + type RejectionHandledListener = (promise: Promise) => void; + type UncaughtExceptionListener = (error: Error) => void; + type UnhandledRejectionListener = (reason: {} | null | undefined, promise: Promise) => void; + type WarningListener = (warning: Error) => void; + type MessageListener = (message: any, sendHandle: any) => void; + type SignalsListener = (signal: Signals) => void; + type NewListenerListener = (type: string | symbol, listener: (...args: any[]) => void) => void; + type RemoveListenerListener = (type: string | symbol, listener: (...args: any[]) => void) => void; + type MultipleResolveListener = (type: MultipleResolveType, promise: Promise, value: any) => void; + + interface Socket extends ReadWriteStream { + isTTY?: true; + } + + // Alias for compatibility + interface ProcessEnv extends Dict {} + + interface HRTime { + (time?: [number, number]): [number, number]; + bigint(): bigint; + } + + interface ProcessReport { + /** + * Directory where the report is written. + * working directory of the Node.js process. + * @default '' indicating that reports are written to the current + */ + directory: string; + + /** + * Filename where the report is written. + * The default value is the empty string. + * @default '' the output filename will be comprised of a timestamp, + * PID, and sequence number. + */ + filename: string; + + /** + * Returns a JSON-formatted diagnostic report for the running process. + * The report's JavaScript stack trace is taken from err, if present. + */ + getReport(err?: Error): string; + + /** + * If true, a diagnostic report is generated on fatal errors, + * such as out of memory errors or failed C++ assertions. + * @default false + */ + reportOnFatalError: boolean; + + /** + * If true, a diagnostic report is generated when the process + * receives the signal specified by process.report.signal. + * @defaul false + */ + reportOnSignal: boolean; + + /** + * If true, a diagnostic report is generated on uncaught exception. + * @default false + */ + reportOnUncaughtException: boolean; + + /** + * The signal used to trigger the creation of a diagnostic report. + * @default 'SIGUSR2' + */ + signal: Signals; + + /** + * Writes a diagnostic report to a file. If filename is not provided, the default filename + * includes the date, time, PID, and a sequence number. + * The report's JavaScript stack trace is taken from err, if present. + * + * @param fileName Name of the file where the report is written. + * This should be a relative path, that will be appended to the directory specified in + * `process.report.directory`, or the current working directory of the Node.js process, + * if unspecified. + * @param error A custom error used for reporting the JavaScript stack. + * @return Filename of the generated report. + */ + writeReport(fileName?: string): string; + writeReport(error?: Error): string; + writeReport(fileName?: string, err?: Error): string; + } + + interface ResourceUsage { + fsRead: number; + fsWrite: number; + involuntaryContextSwitches: number; + ipcReceived: number; + ipcSent: number; + majorPageFault: number; + maxRSS: number; + minorPageFault: number; + sharedMemorySize: number; + signalsCount: number; + swappedOut: number; + systemCPUTime: number; + unsharedDataSize: number; + unsharedStackSize: number; + userCPUTime: number; + voluntaryContextSwitches: number; + } + + interface EmitWarningOptions { + /** + * When `warning` is a `string`, `type` is the name to use for the _type_ of warning being emitted. + * + * @default 'Warning' + */ + type?: string; + + /** + * A unique identifier for the warning instance being emitted. + */ + code?: string; + + /** + * When `warning` is a `string`, `ctor` is an optional function used to limit the generated stack trace. + * + * @default process.emitWarning + */ + ctor?: Function; + + /** + * Additional text to include with the error. + */ + detail?: string; + } + + interface Process extends EventEmitter { + /** + * Can also be a tty.WriteStream, not typed due to limitations. + */ + stdout: WriteStream & { + fd: 1; + }; + /** + * Can also be a tty.WriteStream, not typed due to limitations. + */ + stderr: WriteStream & { + fd: 2; + }; + stdin: ReadStream & { + fd: 0; + }; + openStdin(): Socket; + argv: string[]; + argv0: string; + execArgv: string[]; + execPath: string; + abort(): never; + chdir(directory: string): void; + cwd(): string; + debugPort: number; + + /** + * The `process.emitWarning()` method can be used to emit custom or application specific process warnings. + * + * These can be listened for by adding a handler to the `'warning'` event. + * + * @param warning The warning to emit. + * @param type When `warning` is a `string`, `type` is the name to use for the _type_ of warning being emitted. Default: `'Warning'`. + * @param code A unique identifier for the warning instance being emitted. + * @param ctor When `warning` is a `string`, `ctor` is an optional function used to limit the generated stack trace. Default: `process.emitWarning`. + */ + emitWarning(warning: string | Error, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, code?: string, ctor?: Function): void; + emitWarning(warning: string | Error, options?: EmitWarningOptions): void; + + env: ProcessEnv; + exit(code?: number): never; + exitCode?: number; + getgid(): number; + setgid(id: number | string): void; + getuid(): number; + setuid(id: number | string): void; + geteuid(): number; + seteuid(id: number | string): void; + getegid(): number; + setegid(id: number | string): void; + getgroups(): number[]; + setgroups(groups: ReadonlyArray): void; + setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void; + hasUncaughtExceptionCaptureCallback(): boolean; + version: string; + versions: ProcessVersions; + config: { + target_defaults: { + cflags: any[]; + default_configuration: string; + defines: string[]; + include_dirs: string[]; + libraries: string[]; + }; + variables: { + clang: number; + host_arch: string; + node_install_npm: boolean; + node_install_waf: boolean; + node_prefix: string; + node_shared_openssl: boolean; + node_shared_v8: boolean; + node_shared_zlib: boolean; + node_use_dtrace: boolean; + node_use_etw: boolean; + node_use_openssl: boolean; + target_arch: string; + v8_no_strict_aliasing: number; + v8_use_snapshot: boolean; + visibility: string; + }; + }; + kill(pid: number, signal?: string | number): true; + pid: number; + ppid: number; + title: string; + arch: string; + platform: Platform; + /** @deprecated since v14.0.0 - use `require.main` instead. */ + mainModule?: Module; + memoryUsage(): MemoryUsage; + cpuUsage(previousValue?: CpuUsage): CpuUsage; + nextTick(callback: Function, ...args: any[]): void; + release: ProcessRelease; + features: { + inspector: boolean; + debug: boolean; + uv: boolean; + ipv6: boolean; + tls_alpn: boolean; + tls_sni: boolean; + tls_ocsp: boolean; + tls: boolean; + }; + /** + * @deprecated since v14.0.0 - Calling process.umask() with no argument causes + * the process-wide umask to be written twice. This introduces a race condition between threads, + * and is a potential security vulnerability. There is no safe, cross-platform alternative API. + */ + umask(): number; + /** + * Can only be set if not in worker thread. + */ + umask(mask: string | number): number; + uptime(): number; + hrtime: HRTime; + domain: Domain; + + // Worker + send?(message: any, sendHandle?: any, options?: { swallowErrors?: boolean}, callback?: (error: Error | null) => void): boolean; + disconnect(): void; + connected: boolean; + + /** + * The `process.allowedNodeEnvironmentFlags` property is a special, + * read-only `Set` of flags allowable within the [`NODE_OPTIONS`][] + * environment variable. + */ + allowedNodeEnvironmentFlags: ReadonlySet; + + /** + * Only available with `--experimental-report` + */ + report?: ProcessReport; + + resourceUsage(): ResourceUsage; + + traceDeprecation: boolean; + + /* EventEmitter */ + addListener(event: "beforeExit", listener: BeforeExitListener): this; + addListener(event: "disconnect", listener: DisconnectListener): this; + addListener(event: "exit", listener: ExitListener): this; + addListener(event: "rejectionHandled", listener: RejectionHandledListener): this; + addListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; + addListener(event: "uncaughtExceptionMonitor", listener: UncaughtExceptionListener): this; + addListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + addListener(event: "warning", listener: WarningListener): this; + addListener(event: "message", listener: MessageListener): this; + addListener(event: Signals, listener: SignalsListener): this; + addListener(event: "newListener", listener: NewListenerListener): this; + addListener(event: "removeListener", listener: RemoveListenerListener): this; + addListener(event: "multipleResolves", listener: MultipleResolveListener): this; + + emit(event: "beforeExit", code: number): boolean; + emit(event: "disconnect"): boolean; + emit(event: "exit", code: number): boolean; + emit(event: "rejectionHandled", promise: Promise): boolean; + emit(event: "uncaughtException", error: Error): boolean; + emit(event: "uncaughtExceptionMonitor", error: Error): boolean; + emit(event: "unhandledRejection", reason: any, promise: Promise): boolean; + emit(event: "warning", warning: Error): boolean; + emit(event: "message", message: any, sendHandle: any): this; + emit(event: Signals, signal: Signals): boolean; + emit(event: "newListener", eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(event: "removeListener", eventName: string, listener: (...args: any[]) => void): this; + emit(event: "multipleResolves", listener: MultipleResolveListener): this; + + on(event: "beforeExit", listener: BeforeExitListener): this; + on(event: "disconnect", listener: DisconnectListener): this; + on(event: "exit", listener: ExitListener): this; + on(event: "rejectionHandled", listener: RejectionHandledListener): this; + on(event: "uncaughtException", listener: UncaughtExceptionListener): this; + on(event: "uncaughtExceptionMonitor", listener: UncaughtExceptionListener): this; + on(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + on(event: "warning", listener: WarningListener): this; + on(event: "message", listener: MessageListener): this; + on(event: Signals, listener: SignalsListener): this; + on(event: "newListener", listener: NewListenerListener): this; + on(event: "removeListener", listener: RemoveListenerListener): this; + on(event: "multipleResolves", listener: MultipleResolveListener): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "beforeExit", listener: BeforeExitListener): this; + once(event: "disconnect", listener: DisconnectListener): this; + once(event: "exit", listener: ExitListener): this; + once(event: "rejectionHandled", listener: RejectionHandledListener): this; + once(event: "uncaughtException", listener: UncaughtExceptionListener): this; + once(event: "uncaughtExceptionMonitor", listener: UncaughtExceptionListener): this; + once(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + once(event: "warning", listener: WarningListener): this; + once(event: "message", listener: MessageListener): this; + once(event: Signals, listener: SignalsListener): this; + once(event: "newListener", listener: NewListenerListener): this; + once(event: "removeListener", listener: RemoveListenerListener): this; + once(event: "multipleResolves", listener: MultipleResolveListener): this; + + prependListener(event: "beforeExit", listener: BeforeExitListener): this; + prependListener(event: "disconnect", listener: DisconnectListener): this; + prependListener(event: "exit", listener: ExitListener): this; + prependListener(event: "rejectionHandled", listener: RejectionHandledListener): this; + prependListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; + prependListener(event: "uncaughtExceptionMonitor", listener: UncaughtExceptionListener): this; + prependListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + prependListener(event: "warning", listener: WarningListener): this; + prependListener(event: "message", listener: MessageListener): this; + prependListener(event: Signals, listener: SignalsListener): this; + prependListener(event: "newListener", listener: NewListenerListener): this; + prependListener(event: "removeListener", listener: RemoveListenerListener): this; + prependListener(event: "multipleResolves", listener: MultipleResolveListener): this; + + prependOnceListener(event: "beforeExit", listener: BeforeExitListener): this; + prependOnceListener(event: "disconnect", listener: DisconnectListener): this; + prependOnceListener(event: "exit", listener: ExitListener): this; + prependOnceListener(event: "rejectionHandled", listener: RejectionHandledListener): this; + prependOnceListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; + prependOnceListener(event: "uncaughtExceptionMonitor", listener: UncaughtExceptionListener): this; + prependOnceListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + prependOnceListener(event: "warning", listener: WarningListener): this; + prependOnceListener(event: "message", listener: MessageListener): this; + prependOnceListener(event: Signals, listener: SignalsListener): this; + prependOnceListener(event: "newListener", listener: NewListenerListener): this; + prependOnceListener(event: "removeListener", listener: RemoveListenerListener): this; + prependOnceListener(event: "multipleResolves", listener: MultipleResolveListener): this; + + listeners(event: "beforeExit"): BeforeExitListener[]; + listeners(event: "disconnect"): DisconnectListener[]; + listeners(event: "exit"): ExitListener[]; + listeners(event: "rejectionHandled"): RejectionHandledListener[]; + listeners(event: "uncaughtException"): UncaughtExceptionListener[]; + listeners(event: "uncaughtExceptionMonitor"): UncaughtExceptionListener[]; + listeners(event: "unhandledRejection"): UnhandledRejectionListener[]; + listeners(event: "warning"): WarningListener[]; + listeners(event: "message"): MessageListener[]; + listeners(event: Signals): SignalsListener[]; + listeners(event: "newListener"): NewListenerListener[]; + listeners(event: "removeListener"): RemoveListenerListener[]; + listeners(event: "multipleResolves"): MultipleResolveListener[]; + } + + interface Global { + process: Process; + } + } + } + + export = process; +} diff --git a/justdanceonline-main/node_modules/@types/node/punycode.d.ts b/justdanceonline-main/node_modules/@types/node/punycode.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b21ee8ec0ce3fce164d2430ca73a3ad7418098c0 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/punycode.d.ts @@ -0,0 +1,75 @@ +/** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ +declare module 'punycode' { + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + function decode(string: string): string; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + function encode(string: string): string; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + function toUnicode(domain: string): string; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + function toASCII(domain: string): string; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const ucs2: ucs2; + interface ucs2 { + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + decode(string: string): number[]; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + encode(codePoints: ReadonlyArray): string; + } + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const version: string; +} diff --git a/justdanceonline-main/node_modules/@types/node/querystring.d.ts b/justdanceonline-main/node_modules/@types/node/querystring.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1065118988f2779bf3c852921ff4d0e286f42e14 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/querystring.d.ts @@ -0,0 +1,28 @@ +declare module 'querystring' { + interface StringifyOptions { + encodeURIComponent?: (str: string) => string; + } + + interface ParseOptions { + maxKeys?: number; + decodeURIComponent?: (str: string) => string; + } + + interface ParsedUrlQuery extends NodeJS.Dict { } + + interface ParsedUrlQueryInput extends NodeJS.Dict | ReadonlyArray | ReadonlyArray | null> { + } + + function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; + function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; + /** + * The querystring.encode() function is an alias for querystring.stringify(). + */ + const encode: typeof stringify; + /** + * The querystring.decode() function is an alias for querystring.parse(). + */ + const decode: typeof parse; + function escape(str: string): string; + function unescape(str: string): string; +} diff --git a/justdanceonline-main/node_modules/@types/node/readline.d.ts b/justdanceonline-main/node_modules/@types/node/readline.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b0a6ee3f288861c78b808114f355fe31f4e1e608 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/readline.d.ts @@ -0,0 +1,170 @@ +declare module 'readline' { + import EventEmitter = require('events'); + + interface Key { + sequence?: string; + name?: string; + ctrl?: boolean; + meta?: boolean; + shift?: boolean; + } + + class Interface extends EventEmitter { + readonly terminal: boolean; + + // Need direct access to line/cursor data, for use in external processes + // see: https://github.com/nodejs/node/issues/30347 + /** The current input data */ + readonly line: string; + /** The current cursor position in the input line */ + readonly cursor: number; + + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean); + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(options: ReadLineOptions); + + setPrompt(prompt: string): void; + prompt(preserveCursor?: boolean): void; + question(query: string, callback: (answer: string) => void): void; + pause(): this; + resume(): this; + close(): void; + write(data: string | Buffer, key?: Key): void; + + /** + * Returns the real position of the cursor in relation to the input + * prompt + string. Long input (wrapping) strings, as well as multiple + * line prompts are included in the calculations. + */ + getCursorPos(): CursorPos; + + /** + * events.EventEmitter + * 1. close + * 2. line + * 3. pause + * 4. resume + * 5. SIGCONT + * 6. SIGINT + * 7. SIGTSTP + */ + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "line", listener: (input: string) => void): this; + addListener(event: "pause", listener: () => void): this; + addListener(event: "resume", listener: () => void): this; + addListener(event: "SIGCONT", listener: () => void): this; + addListener(event: "SIGINT", listener: () => void): this; + addListener(event: "SIGTSTP", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "line", input: string): boolean; + emit(event: "pause"): boolean; + emit(event: "resume"): boolean; + emit(event: "SIGCONT"): boolean; + emit(event: "SIGINT"): boolean; + emit(event: "SIGTSTP"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "line", listener: (input: string) => void): this; + on(event: "pause", listener: () => void): this; + on(event: "resume", listener: () => void): this; + on(event: "SIGCONT", listener: () => void): this; + on(event: "SIGINT", listener: () => void): this; + on(event: "SIGTSTP", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "line", listener: (input: string) => void): this; + once(event: "pause", listener: () => void): this; + once(event: "resume", listener: () => void): this; + once(event: "SIGCONT", listener: () => void): this; + once(event: "SIGINT", listener: () => void): this; + once(event: "SIGTSTP", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "line", listener: (input: string) => void): this; + prependListener(event: "pause", listener: () => void): this; + prependListener(event: "resume", listener: () => void): this; + prependListener(event: "SIGCONT", listener: () => void): this; + prependListener(event: "SIGINT", listener: () => void): this; + prependListener(event: "SIGTSTP", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "line", listener: (input: string) => void): this; + prependOnceListener(event: "pause", listener: () => void): this; + prependOnceListener(event: "resume", listener: () => void): this; + prependOnceListener(event: "SIGCONT", listener: () => void): this; + prependOnceListener(event: "SIGINT", listener: () => void): this; + prependOnceListener(event: "SIGTSTP", listener: () => void): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + type ReadLine = Interface; // type forwarded for backwards compatibility + + type Completer = (line: string) => CompleterResult; + type AsyncCompleter = (line: string, callback: (err?: null | Error, result?: CompleterResult) => void) => any; + + type CompleterResult = [string[], string]; + + interface ReadLineOptions { + input: NodeJS.ReadableStream; + output?: NodeJS.WritableStream; + completer?: Completer | AsyncCompleter; + terminal?: boolean; + historySize?: number; + prompt?: string; + crlfDelay?: number; + removeHistoryDuplicates?: boolean; + escapeCodeTimeout?: number; + tabSize?: number; + } + + function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface; + function createInterface(options: ReadLineOptions): Interface; + function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void; + + type Direction = -1 | 0 | 1; + + interface CursorPos { + rows: number; + cols: number; + } + + /** + * Clears the current line of this WriteStream in a direction identified by `dir`. + */ + function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean; + /** + * Clears this `WriteStream` from the current cursor down. + */ + function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean; + /** + * Moves this WriteStream's cursor to the specified position. + */ + function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean; + /** + * Moves this WriteStream's cursor relative to its current position. + */ + function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean; +} diff --git a/justdanceonline-main/node_modules/@types/node/repl.d.ts b/justdanceonline-main/node_modules/@types/node/repl.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..aa2d927453aa5b14752589dce35e5f989d78c62b --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/repl.d.ts @@ -0,0 +1,395 @@ +declare module 'repl' { + import { Interface, Completer, AsyncCompleter } from 'readline'; + import { Context } from 'vm'; + import { InspectOptions } from 'util'; + + interface ReplOptions { + /** + * The input prompt to display. + * Default: `"> "` + */ + prompt?: string; + /** + * The `Readable` stream from which REPL input will be read. + * Default: `process.stdin` + */ + input?: NodeJS.ReadableStream; + /** + * The `Writable` stream to which REPL output will be written. + * Default: `process.stdout` + */ + output?: NodeJS.WritableStream; + /** + * If `true`, specifies that the output should be treated as a TTY terminal, and have + * ANSI/VT100 escape codes written to it. + * Default: checking the value of the `isTTY` property on the output stream upon + * instantiation. + */ + terminal?: boolean; + /** + * The function to be used when evaluating each given line of input. + * Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can + * error with `repl.Recoverable` to indicate the input was incomplete and prompt for + * additional lines. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_default_evaluation + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_custom_evaluation_functions + */ + eval?: REPLEval; + /** + * Defines if the repl prints output previews or not. + * @default `true` Always `false` in case `terminal` is falsy. + */ + preview?: boolean; + /** + * If `true`, specifies that the default `writer` function should include ANSI color + * styling to REPL output. If a custom `writer` function is provided then this has no + * effect. + * Default: the REPL instance's `terminal` value. + */ + useColors?: boolean; + /** + * If `true`, specifies that the default evaluation function will use the JavaScript + * `global` as the context as opposed to creating a new separate context for the REPL + * instance. The node CLI REPL sets this value to `true`. + * Default: `false`. + */ + useGlobal?: boolean; + /** + * If `true`, specifies that the default writer will not output the return value of a + * command if it evaluates to `undefined`. + * Default: `false`. + */ + ignoreUndefined?: boolean; + /** + * The function to invoke to format the output of each command before writing to `output`. + * Default: a wrapper for `util.inspect`. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_customizing_repl_output + */ + writer?: REPLWriter; + /** + * An optional function used for custom Tab auto completion. + * + * @see https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function + */ + completer?: Completer | AsyncCompleter; + /** + * A flag that specifies whether the default evaluator executes all JavaScript commands in + * strict mode or default (sloppy) mode. + * Accepted values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + replMode?: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; + /** + * Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is + * pressed. This cannot be used together with a custom `eval` function. + * Default: `false`. + */ + breakEvalOnSigint?: boolean; + } + + type REPLEval = (this: REPLServer, evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void; + type REPLWriter = (this: REPLServer, obj: any) => string; + + /** + * This is the default "writer" value, if none is passed in the REPL options, + * and it can be overridden by custom print functions. + */ + const writer: REPLWriter & { options: InspectOptions }; + + type REPLCommandAction = (this: REPLServer, text: string) => void; + + interface REPLCommand { + /** + * Help text to be displayed when `.help` is entered. + */ + help?: string; + /** + * The function to execute, optionally accepting a single string argument. + */ + action: REPLCommandAction; + } + + /** + * Provides a customizable Read-Eval-Print-Loop (REPL). + * + * Instances of `repl.REPLServer` will accept individual lines of user input, evaluate those + * according to a user-defined evaluation function, then output the result. Input and output + * may be from `stdin` and `stdout`, respectively, or may be connected to any Node.js `stream`. + * + * Instances of `repl.REPLServer` support automatic completion of inputs, simplistic Emacs-style + * line editing, multi-line inputs, ANSI-styled output, saving and restoring current REPL session + * state, error recovery, and customizable evaluation functions. + * + * Instances of `repl.REPLServer` are created using the `repl.start()` method and _should not_ + * be created directly using the JavaScript `new` keyword. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_repl + */ + class REPLServer extends Interface { + /** + * The `vm.Context` provided to the `eval` function to be used for JavaScript + * evaluation. + */ + readonly context: Context; + /** + * @deprecated since v14.3.0 - Use `input` instead. + */ + readonly inputStream: NodeJS.ReadableStream; + /** + * @deprecated since v14.3.0 - Use `output` instead. + */ + readonly outputStream: NodeJS.WritableStream; + /** + * The `Readable` stream from which REPL input will be read. + */ + readonly input: NodeJS.ReadableStream; + /** + * The `Writable` stream to which REPL output will be written. + */ + readonly output: NodeJS.WritableStream; + /** + * The commands registered via `replServer.defineCommand()`. + */ + readonly commands: NodeJS.ReadOnlyDict; + /** + * A value indicating whether the REPL is currently in "editor mode". + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_commands_and_special_keys + */ + readonly editorMode: boolean; + /** + * A value indicating whether the `_` variable has been assigned. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreAssigned: boolean; + /** + * The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL). + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly last: any; + /** + * A value indicating whether the `_error` variable has been assigned. + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreErrAssigned: boolean; + /** + * The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL). + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly lastError: any; + /** + * Specified in the REPL options, this is the function to be used when evaluating each + * given line of input. If not specified in the REPL options, this is an async wrapper + * for the JavaScript `eval()` function. + */ + readonly eval: REPLEval; + /** + * Specified in the REPL options, this is a value indicating whether the default + * `writer` function should include ANSI color styling to REPL output. + */ + readonly useColors: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `eval` + * function will use the JavaScript `global` as the context as opposed to creating a new + * separate context for the REPL instance. + */ + readonly useGlobal: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `writer` + * function should output the result of a command if it evaluates to `undefined`. + */ + readonly ignoreUndefined: boolean; + /** + * Specified in the REPL options, this is the function to invoke to format the output of + * each command before writing to `outputStream`. If not specified in the REPL options, + * this will be a wrapper for `util.inspect`. + */ + readonly writer: REPLWriter; + /** + * Specified in the REPL options, this is the function to use for custom Tab auto-completion. + */ + readonly completer: Completer | AsyncCompleter; + /** + * Specified in the REPL options, this is a flag that specifies whether the default `eval` + * function should execute all JavaScript commands in strict mode or default (sloppy) mode. + * Possible values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + readonly replMode: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; + + /** + * NOTE: According to the documentation: + * + * > Instances of `repl.REPLServer` are created using the `repl.start()` method and + * > _should not_ be created directly using the JavaScript `new` keyword. + * + * `REPLServer` cannot be subclassed due to implementation specifics in NodeJS. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_class_replserver + */ + private constructor(); + + /** + * Used to add new `.`-prefixed commands to the REPL instance. Such commands are invoked + * by typing a `.` followed by the `keyword`. + * + * @param keyword The command keyword (_without_ a leading `.` character). + * @param cmd The function to invoke when the command is processed. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_replserver_definecommand_keyword_cmd + */ + defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void; + /** + * Readies the REPL instance for input from the user, printing the configured `prompt` to a + * new line in the `output` and resuming the `input` to accept new input. + * + * When multi-line input is being entered, an ellipsis is printed rather than the 'prompt'. + * + * This method is primarily intended to be called from within the action function for + * commands registered using the `replServer.defineCommand()` method. + * + * @param preserveCursor When `true`, the cursor placement will not be reset to `0`. + */ + displayPrompt(preserveCursor?: boolean): void; + /** + * Clears any command that has been buffered but not yet executed. + * + * This method is primarily intended to be called from within the action function for + * commands registered using the `replServer.defineCommand()` method. + * + * @since v9.0.0 + */ + clearBufferedCommand(): void; + + /** + * Initializes a history log file for the REPL instance. When executing the + * Node.js binary and using the command line REPL, a history file is initialized + * by default. However, this is not the case when creating a REPL + * programmatically. Use this method to initialize a history log file when working + * with REPL instances programmatically. + * @param path The path to the history file + */ + setupHistory(path: string, cb: (err: Error | null, repl: this) => void): void; + + /** + * events.EventEmitter + * 1. close - inherited from `readline.Interface` + * 2. line - inherited from `readline.Interface` + * 3. pause - inherited from `readline.Interface` + * 4. resume - inherited from `readline.Interface` + * 5. SIGCONT - inherited from `readline.Interface` + * 6. SIGINT - inherited from `readline.Interface` + * 7. SIGTSTP - inherited from `readline.Interface` + * 8. exit + * 9. reset + */ + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "line", listener: (input: string) => void): this; + addListener(event: "pause", listener: () => void): this; + addListener(event: "resume", listener: () => void): this; + addListener(event: "SIGCONT", listener: () => void): this; + addListener(event: "SIGINT", listener: () => void): this; + addListener(event: "SIGTSTP", listener: () => void): this; + addListener(event: "exit", listener: () => void): this; + addListener(event: "reset", listener: (context: Context) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "line", input: string): boolean; + emit(event: "pause"): boolean; + emit(event: "resume"): boolean; + emit(event: "SIGCONT"): boolean; + emit(event: "SIGINT"): boolean; + emit(event: "SIGTSTP"): boolean; + emit(event: "exit"): boolean; + emit(event: "reset", context: Context): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "line", listener: (input: string) => void): this; + on(event: "pause", listener: () => void): this; + on(event: "resume", listener: () => void): this; + on(event: "SIGCONT", listener: () => void): this; + on(event: "SIGINT", listener: () => void): this; + on(event: "SIGTSTP", listener: () => void): this; + on(event: "exit", listener: () => void): this; + on(event: "reset", listener: (context: Context) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "line", listener: (input: string) => void): this; + once(event: "pause", listener: () => void): this; + once(event: "resume", listener: () => void): this; + once(event: "SIGCONT", listener: () => void): this; + once(event: "SIGINT", listener: () => void): this; + once(event: "SIGTSTP", listener: () => void): this; + once(event: "exit", listener: () => void): this; + once(event: "reset", listener: (context: Context) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "line", listener: (input: string) => void): this; + prependListener(event: "pause", listener: () => void): this; + prependListener(event: "resume", listener: () => void): this; + prependListener(event: "SIGCONT", listener: () => void): this; + prependListener(event: "SIGINT", listener: () => void): this; + prependListener(event: "SIGTSTP", listener: () => void): this; + prependListener(event: "exit", listener: () => void): this; + prependListener(event: "reset", listener: (context: Context) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "line", listener: (input: string) => void): this; + prependOnceListener(event: "pause", listener: () => void): this; + prependOnceListener(event: "resume", listener: () => void): this; + prependOnceListener(event: "SIGCONT", listener: () => void): this; + prependOnceListener(event: "SIGINT", listener: () => void): this; + prependOnceListener(event: "SIGTSTP", listener: () => void): this; + prependOnceListener(event: "exit", listener: () => void): this; + prependOnceListener(event: "reset", listener: (context: Context) => void): this; + } + + /** + * A flag passed in the REPL options. Evaluates expressions in sloppy mode. + */ + const REPL_MODE_SLOPPY: unique symbol; + + /** + * A flag passed in the REPL options. Evaluates expressions in strict mode. + * This is equivalent to prefacing every repl statement with `'use strict'`. + */ + const REPL_MODE_STRICT: unique symbol; + + /** + * Creates and starts a `repl.REPLServer` instance. + * + * @param options The options for the `REPLServer`. If `options` is a string, then it specifies + * the input prompt. + */ + function start(options?: string | ReplOptions): REPLServer; + + /** + * Indicates a recoverable error that a `REPLServer` can use to support multi-line input. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_recoverable_errors + */ + class Recoverable extends SyntaxError { + err: Error; + + constructor(err: Error); + } +} diff --git a/justdanceonline-main/node_modules/@types/node/stream.d.ts b/justdanceonline-main/node_modules/@types/node/stream.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..eabde0db86468065833d0569d8f83d755f915cbe --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/stream.d.ts @@ -0,0 +1,463 @@ +declare module 'stream' { + import EventEmitter = require('events'); + import * as streamPromises from "stream/promises"; + + class internal extends EventEmitter { + pipe(destination: T, options?: { end?: boolean; }): T; + } + + namespace internal { + class Stream extends internal { + constructor(opts?: ReadableOptions); + } + + interface ReadableOptions { + highWaterMark?: number; + encoding?: BufferEncoding; + objectMode?: boolean; + read?(this: Readable, size: number): void; + construct?(this: Readable, callback: (error?: Error | null) => void): void; + destroy?(this: Readable, error: Error | null, callback: (error: Error | null) => void): void; + autoDestroy?: boolean; + } + + class Readable extends Stream implements NodeJS.ReadableStream { + /** + * A utility method for creating Readable Streams out of iterators. + */ + static from(iterable: Iterable | AsyncIterable, options?: ReadableOptions): Readable; + + readable: boolean; + readonly readableEncoding: BufferEncoding | null; + readonly readableEnded: boolean; + readonly readableFlowing: boolean | null; + readonly readableHighWaterMark: number; + readonly readableLength: number; + readonly readableObjectMode: boolean; + destroyed: boolean; + constructor(opts?: ReadableOptions); + _construct?(callback: (error?: Error | null) => void): void; + _read(size: number): void; + read(size?: number): any; + setEncoding(encoding: BufferEncoding): this; + pause(): this; + resume(): this; + isPaused(): boolean; + unpipe(destination?: NodeJS.WritableStream): this; + unshift(chunk: any, encoding?: BufferEncoding): void; + wrap(oldStream: NodeJS.ReadableStream): this; + push(chunk: any, encoding?: BufferEncoding): boolean; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + destroy(error?: Error): void; + + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. data + * 3. end + * 4. error + * 5. pause + * 6. readable + * 7. resume + */ + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: any) => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "pause", listener: () => void): this; + addListener(event: "readable", listener: () => void): this; + addListener(event: "resume", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "data", chunk: any): boolean; + emit(event: "end"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "pause"): boolean; + emit(event: "readable"): boolean; + emit(event: "resume"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: any) => void): this; + on(event: "end", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "pause", listener: () => void): this; + on(event: "readable", listener: () => void): this; + on(event: "resume", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: any) => void): this; + once(event: "end", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "pause", listener: () => void): this; + once(event: "readable", listener: () => void): this; + once(event: "resume", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: any) => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "pause", listener: () => void): this; + prependListener(event: "readable", listener: () => void): this; + prependListener(event: "resume", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: any) => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "pause", listener: () => void): this; + prependOnceListener(event: "readable", listener: () => void): this; + prependOnceListener(event: "resume", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "data", listener: (chunk: any) => void): this; + removeListener(event: "end", listener: () => void): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "pause", listener: () => void): this; + removeListener(event: "readable", listener: () => void): this; + removeListener(event: "resume", listener: () => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + interface WritableOptions { + highWaterMark?: number; + decodeStrings?: boolean; + defaultEncoding?: BufferEncoding; + objectMode?: boolean; + emitClose?: boolean; + construct?(this: Writable, callback: (error?: Error | null) => void): void; + write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?(this: Writable, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + destroy?(this: Writable, error: Error | null, callback: (error: Error | null) => void): void; + final?(this: Writable, callback: (error?: Error | null) => void): void; + autoDestroy?: boolean; + } + + class Writable extends Stream implements NodeJS.WritableStream { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + readonly writableCorked: number; + destroyed: boolean; + constructor(opts?: WritableOptions); + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?(chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + _construct?(callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, encoding: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: BufferEncoding): this; + end(cb?: () => void): void; + end(chunk: any, cb?: () => void): void; + end(chunk: any, encoding: BufferEncoding, cb?: () => void): void; + cork(): void; + uncork(): void; + destroy(error?: Error): void; + + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. drain + * 3. error + * 4. finish + * 5. pipe + * 6. unpipe + */ + addListener(event: "close", listener: () => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "pipe", listener: (src: Readable) => void): this; + addListener(event: "unpipe", listener: (src: Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "drain"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "finish"): boolean; + emit(event: "pipe", src: Readable): boolean; + emit(event: "unpipe", src: Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "drain", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "pipe", listener: (src: Readable) => void): this; + on(event: "unpipe", listener: (src: Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "drain", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "pipe", listener: (src: Readable) => void): this; + once(event: "unpipe", listener: (src: Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "pipe", listener: (src: Readable) => void): this; + prependListener(event: "unpipe", listener: (src: Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "pipe", listener: (src: Readable) => void): this; + prependOnceListener(event: "unpipe", listener: (src: Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "drain", listener: () => void): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "finish", listener: () => void): this; + removeListener(event: "pipe", listener: (src: Readable) => void): this; + removeListener(event: "unpipe", listener: (src: Readable) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + interface DuplexOptions extends ReadableOptions, WritableOptions { + allowHalfOpen?: boolean; + readableObjectMode?: boolean; + writableObjectMode?: boolean; + readableHighWaterMark?: number; + writableHighWaterMark?: number; + writableCorked?: number; + construct?(this: Duplex, callback: (error?: Error | null) => void): void; + read?(this: Duplex, size: number): void; + write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?(this: Duplex, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + final?(this: Duplex, callback: (error?: Error | null) => void): void; + destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void; + } + + // Note: Duplex extends both Readable and Writable. + class Duplex extends Readable implements Writable { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + readonly writableCorked: number; + constructor(opts?: DuplexOptions); + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?(chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: BufferEncoding): this; + end(cb?: () => void): void; + end(chunk: any, cb?: () => void): void; + end(chunk: any, encoding?: BufferEncoding, cb?: () => void): void; + cork(): void; + uncork(): void; + } + + type TransformCallback = (error?: Error | null, data?: any) => void; + + interface TransformOptions extends DuplexOptions { + construct?(this: Transform, callback: (error?: Error | null) => void): void; + read?(this: Transform, size: number): void; + write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?(this: Transform, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + final?(this: Transform, callback: (error?: Error | null) => void): void; + destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void; + transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + flush?(this: Transform, callback: TransformCallback): void; + } + + class Transform extends Duplex { + constructor(opts?: TransformOptions); + _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + _flush(callback: TransformCallback): void; + } + + class PassThrough extends Transform { } + + interface FinishedOptions { + error?: boolean; + readable?: boolean; + writable?: boolean; + } + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; + namespace finished { + function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; + } + + type PipelineSourceFunction = () => Iterable | AsyncIterable; + type PipelineSource = Iterable | AsyncIterable | NodeJS.ReadableStream | PipelineSourceFunction; + type PipelineTransform, U> = + NodeJS.ReadWriteStream | + ((source: S extends (...args: any[]) => Iterable | AsyncIterable ? + AsyncIterable : S) => AsyncIterable); + type PipelineTransformSource = PipelineSource | PipelineTransform; + + type PipelineDestinationIterableFunction = (source: AsyncIterable) => AsyncIterable; + type PipelineDestinationPromiseFunction = (source: AsyncIterable) => Promise

; + + type PipelineDestination, P> = + S extends PipelineTransformSource ? + (NodeJS.WritableStream | PipelineDestinationIterableFunction | PipelineDestinationPromiseFunction) : never; + type PipelineCallback> = + S extends PipelineDestinationPromiseFunction ? (err: NodeJS.ErrnoException | null, value: P) => void : + (err: NodeJS.ErrnoException | null) => void; + type PipelinePromise> = + S extends PipelineDestinationPromiseFunction ? Promise

: Promise; + interface PipelineOptions { + signal: AbortSignal; + } + + function pipeline, + B extends PipelineDestination>( + source: A, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, + T1 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + transform4: T4, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline( + streams: ReadonlyArray, + callback?: (err: NodeJS.ErrnoException | null) => void, + ): NodeJS.WritableStream; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array void)>, + ): NodeJS.WritableStream; + namespace pipeline { + function __promisify__, + B extends PipelineDestination>( + source: A, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function __promisify__, + T1 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + options?: PipelineOptions, + ): PipelinePromise; + function __promisify__, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function __promisify__, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function __promisify__, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + transform4: T4, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + + function __promisify__( + streams: ReadonlyArray, + options?: PipelineOptions + ): Promise; + function __promisify__( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array, + ): Promise; + } + + interface Pipe { + close(): void; + hasRef(): boolean; + ref(): void; + unref(): void; + } + + const promises: typeof streamPromises; + } + + export = internal; +} diff --git a/justdanceonline-main/node_modules/@types/node/stream/promises.d.ts b/justdanceonline-main/node_modules/@types/node/stream/promises.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7c704232ffea0f6556d6226c7f5f9348f191f3cb --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/stream/promises.d.ts @@ -0,0 +1,67 @@ +declare module "stream/promises" { + import { FinishedOptions, PipelineSource, PipelineTransform, + PipelineDestination, PipelinePromise, PipelineOptions } from "stream"; + + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; + + function pipeline, + B extends PipelineDestination>( + source: A, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline, + T1 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + transform3: T3, + transform4: T4, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + + function pipeline( + streams: ReadonlyArray, + options?: PipelineOptions + ): Promise; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array, + ): Promise; +} diff --git a/justdanceonline-main/node_modules/@types/node/string_decoder.d.ts b/justdanceonline-main/node_modules/@types/node/string_decoder.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c7ace1c129cd9add11026cb1256661443f449583 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/string_decoder.d.ts @@ -0,0 +1,7 @@ +declare module 'string_decoder' { + class StringDecoder { + constructor(encoding?: BufferEncoding); + write(buffer: Buffer): string; + end(buffer?: Buffer): string; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/timers.d.ts b/justdanceonline-main/node_modules/@types/node/timers.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6c192404335e5e7b06da9460b9fdfe77cafcc0ba --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/timers.d.ts @@ -0,0 +1,30 @@ +declare module 'timers' { + interface TimerOptions { + /** + * Set to `false` to indicate that the scheduled `Timeout` + * should not require the Node.js event loop to remain active. + * @default true + */ + ref?: boolean; + + /** + * An optional `AbortSignal` that can be used to cancel the scheduled `Timeout`. + */ + signal?: AbortSignal; + } + + function setTimeout(callback: (...args: any[]) => void, ms?: number, ...args: any[]): NodeJS.Timeout; + namespace setTimeout { + function __promisify__(ms: number): Promise; + function __promisify__(ms: number, value: T, options?: TimerOptions): Promise; + } + function clearTimeout(timeoutId: NodeJS.Timeout): void; + function setInterval(callback: (...args: any[]) => void, ms?: number, ...args: any[]): NodeJS.Timeout; + function clearInterval(intervalId: NodeJS.Timeout): void; + function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; + namespace setImmediate { + function __promisify__(): Promise; + function __promisify__(value: T, options?: TimerOptions): Promise; + } + function clearImmediate(immediateId: NodeJS.Immediate): void; +} diff --git a/justdanceonline-main/node_modules/@types/node/timers/promises.d.ts b/justdanceonline-main/node_modules/@types/node/timers/promises.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1c04f50a38dc25e280982d06dc8541ac03889b2c --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/timers/promises.d.ts @@ -0,0 +1,13 @@ +declare module 'timers/promises' { + import { TimerOptions } from 'timers'; + + /** + * Returns a promise that resolves after the specified delay in milliseconds. + */ + function setTimeout(delay: number, value?: T, options?: TimerOptions): Promise; + + /** + * Returns a promise that resolves in the next tick. + */ + function setImmediate(value: T, options?: TimerOptions): Promise; +} diff --git a/justdanceonline-main/node_modules/@types/node/tls.d.ts b/justdanceonline-main/node_modules/@types/node/tls.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..13926b01ac9abd1c0b433553f1fee76b75ddd9ff --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/tls.d.ts @@ -0,0 +1,779 @@ +declare module 'tls' { + import * as net from 'net'; + + const CLIENT_RENEG_LIMIT: number; + const CLIENT_RENEG_WINDOW: number; + + interface Certificate { + /** + * Country code. + */ + C: string; + /** + * Street. + */ + ST: string; + /** + * Locality. + */ + L: string; + /** + * Organization. + */ + O: string; + /** + * Organizational unit. + */ + OU: string; + /** + * Common name. + */ + CN: string; + } + + interface PeerCertificate { + subject: Certificate; + issuer: Certificate; + subjectaltname: string; + infoAccess: NodeJS.Dict; + modulus: string; + exponent: string; + valid_from: string; + valid_to: string; + fingerprint: string; + fingerprint256: string; + ext_key_usage: string[]; + serialNumber: string; + raw: Buffer; + } + + interface DetailedPeerCertificate extends PeerCertificate { + issuerCertificate: DetailedPeerCertificate; + } + + interface CipherNameAndProtocol { + /** + * The cipher name. + */ + name: string; + /** + * SSL/TLS protocol version. + */ + version: string; + + /** + * IETF name for the cipher suite. + */ + standardName: string; + } + + interface EphemeralKeyInfo { + /** + * The supported types are 'DH' and 'ECDH'. + */ + type: string; + /** + * The name property is available only when type is 'ECDH'. + */ + name?: string; + /** + * The size of parameter of an ephemeral key exchange. + */ + size: number; + } + + interface KeyObject { + /** + * Private keys in PEM format. + */ + pem: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string; + } + + interface PxfObject { + /** + * PFX or PKCS12 encoded private key and certificate chain. + */ + buf: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string; + } + + interface TLSSocketOptions extends SecureContextOptions, CommonConnectionOptions { + /** + * If true the TLS socket will be instantiated in server-mode. + * Defaults to false. + */ + isServer?: boolean; + /** + * An optional net.Server instance. + */ + server?: net.Server; + + /** + * An optional Buffer instance containing a TLS session. + */ + session?: Buffer; + /** + * If true, specifies that the OCSP status request extension will be + * added to the client hello and an 'OCSPResponse' event will be + * emitted on the socket before establishing a secure communication + */ + requestOCSP?: boolean; + } + + class TLSSocket extends net.Socket { + /** + * Construct a new tls.TLSSocket object from an existing TCP socket. + */ + constructor(socket: net.Socket, options?: TLSSocketOptions); + + /** + * A boolean that is true if the peer certificate was signed by one of the specified CAs, otherwise false. + */ + authorized: boolean; + /** + * The reason why the peer's certificate has not been verified. + * This property becomes available only when tlsSocket.authorized === false. + */ + authorizationError: Error; + /** + * Static boolean value, always true. + * May be used to distinguish TLS sockets from regular ones. + */ + encrypted: boolean; + + /** + * String containing the selected ALPN protocol. + * When ALPN has no selected protocol, tlsSocket.alpnProtocol equals false. + */ + alpnProtocol?: string; + + /** + * Returns an object representing the local certificate. The returned + * object has some properties corresponding to the fields of the + * certificate. + * + * See tls.TLSSocket.getPeerCertificate() for an example of the + * certificate structure. + * + * If there is no local certificate, an empty object will be returned. + * If the socket has been destroyed, null will be returned. + */ + getCertificate(): PeerCertificate | object | null; + /** + * Returns an object representing the cipher name and the SSL/TLS protocol version of the current connection. + * @returns Returns an object representing the cipher name + * and the SSL/TLS protocol version of the current connection. + */ + getCipher(): CipherNameAndProtocol; + /** + * Returns an object representing the type, name, and size of parameter + * of an ephemeral key exchange in Perfect Forward Secrecy on a client + * connection. It returns an empty object when the key exchange is not + * ephemeral. As this is only supported on a client socket; null is + * returned if called on a server socket. The supported types are 'DH' + * and 'ECDH'. The name property is available only when type is 'ECDH'. + * + * For example: { type: 'ECDH', name: 'prime256v1', size: 256 }. + */ + getEphemeralKeyInfo(): EphemeralKeyInfo | object | null; + /** + * Returns the latest Finished message that has + * been sent to the socket as part of a SSL/TLS handshake, or undefined + * if no Finished message has been sent yet. + * + * As the Finished messages are message digests of the complete + * handshake (with a total of 192 bits for TLS 1.0 and more for SSL + * 3.0), they can be used for external authentication procedures when + * the authentication provided by SSL/TLS is not desired or is not + * enough. + * + * Corresponds to the SSL_get_finished routine in OpenSSL and may be + * used to implement the tls-unique channel binding from RFC 5929. + */ + getFinished(): Buffer | undefined; + /** + * Returns an object representing the peer's certificate. + * The returned object has some properties corresponding to the field of the certificate. + * If detailed argument is true the full chain with issuer property will be returned, + * if false only the top certificate without issuer property. + * If the peer does not provide a certificate, it returns null or an empty object. + * @param detailed - If true; the full chain with issuer property will be returned. + * @returns An object representing the peer's certificate. + */ + getPeerCertificate(detailed: true): DetailedPeerCertificate; + getPeerCertificate(detailed?: false): PeerCertificate; + getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; + /** + * Returns the latest Finished message that is expected or has actually + * been received from the socket as part of a SSL/TLS handshake, or + * undefined if there is no Finished message so far. + * + * As the Finished messages are message digests of the complete + * handshake (with a total of 192 bits for TLS 1.0 and more for SSL + * 3.0), they can be used for external authentication procedures when + * the authentication provided by SSL/TLS is not desired or is not + * enough. + * + * Corresponds to the SSL_get_peer_finished routine in OpenSSL and may + * be used to implement the tls-unique channel binding from RFC 5929. + */ + getPeerFinished(): Buffer | undefined; + /** + * Returns a string containing the negotiated SSL/TLS protocol version of the current connection. + * The value `'unknown'` will be returned for connected sockets that have not completed the handshaking process. + * The value `null` will be returned for server sockets or disconnected client sockets. + * See https://www.openssl.org/docs/man1.0.2/ssl/SSL_get_version.html for more information. + * @returns negotiated SSL/TLS protocol version of the current connection + */ + getProtocol(): string | null; + /** + * Could be used to speed up handshake establishment when reconnecting to the server. + * @returns ASN.1 encoded TLS session or undefined if none was negotiated. + */ + getSession(): Buffer | undefined; + /** + * Returns a list of signature algorithms shared between the server and + * the client in the order of decreasing preference. + */ + getSharedSigalgs(): string[]; + /** + * NOTE: Works only with client TLS sockets. + * Useful only for debugging, for session reuse provide session option to tls.connect(). + * @returns TLS session ticket or undefined if none was negotiated. + */ + getTLSTicket(): Buffer | undefined; + /** + * Returns true if the session was reused, false otherwise. + */ + isSessionReused(): boolean; + /** + * Initiate TLS renegotiation process. + * + * NOTE: Can be used to request peer's certificate after the secure connection has been established. + * ANOTHER NOTE: When running as the server, socket will be destroyed with an error after handshakeTimeout timeout. + * @param options - The options may contain the following fields: rejectUnauthorized, + * requestCert (See tls.createServer() for details). + * @param callback - callback(err) will be executed with null as err, once the renegotiation + * is successfully completed. + * @return `undefined` when socket is destroy, `false` if negotiaion can't be initiated. + */ + renegotiate(options: { rejectUnauthorized?: boolean, requestCert?: boolean }, callback: (err: Error | null) => void): undefined | boolean; + /** + * Set maximum TLS fragment size (default and maximum value is: 16384, minimum is: 512). + * Smaller fragment size decreases buffering latency on the client: large fragments are buffered by + * the TLS layer until the entire fragment is received and its integrity is verified; + * large fragments can span multiple roundtrips, and their processing can be delayed due to packet + * loss or reordering. However, smaller fragments add extra TLS framing bytes and CPU overhead, + * which may decrease overall server throughput. + * @param size - TLS fragment size (default and maximum value is: 16384, minimum is: 512). + * @returns Returns true on success, false otherwise. + */ + setMaxSendFragment(size: number): boolean; + + /** + * Disables TLS renegotiation for this TLSSocket instance. Once called, + * attempts to renegotiate will trigger an 'error' event on the + * TLSSocket. + */ + disableRenegotiation(): void; + + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * + * Note: The format of the output is identical to the output of `openssl s_client + * -trace` or `openssl s_server -trace`. While it is produced by OpenSSL's + * `SSL_trace()` function, the format is undocumented, can change without notice, + * and should not be relied on. + */ + enableTrace(): void; + + /** + * @param length number of bytes to retrieve from keying material + * @param label an application specific label, typically this will be a value from the + * [IANA Exporter Label Registry](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels). + * @param context optionally provide a context. + */ + exportKeyingMaterial(length: number, label: string, context: Buffer): Buffer; + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; + addListener(event: "secureConnect", listener: () => void): this; + addListener(event: "session", listener: (session: Buffer) => void): this; + addListener(event: "keylog", listener: (line: Buffer) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "OCSPResponse", response: Buffer): boolean; + emit(event: "secureConnect"): boolean; + emit(event: "session", session: Buffer): boolean; + emit(event: "keylog", line: Buffer): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "OCSPResponse", listener: (response: Buffer) => void): this; + on(event: "secureConnect", listener: () => void): this; + on(event: "session", listener: (session: Buffer) => void): this; + on(event: "keylog", listener: (line: Buffer) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "OCSPResponse", listener: (response: Buffer) => void): this; + once(event: "secureConnect", listener: () => void): this; + once(event: "session", listener: (session: Buffer) => void): this; + once(event: "keylog", listener: (line: Buffer) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; + prependListener(event: "secureConnect", listener: () => void): this; + prependListener(event: "session", listener: (session: Buffer) => void): this; + prependListener(event: "keylog", listener: (line: Buffer) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; + prependOnceListener(event: "secureConnect", listener: () => void): this; + prependOnceListener(event: "session", listener: (session: Buffer) => void): this; + prependOnceListener(event: "keylog", listener: (line: Buffer) => void): this; + } + + interface CommonConnectionOptions { + /** + * An optional TLS context object from tls.createSecureContext() + */ + secureContext?: SecureContext; + + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * @default false + */ + enableTrace?: boolean; + /** + * If true the server will request a certificate from clients that + * connect and attempt to verify that certificate. Defaults to + * false. + */ + requestCert?: boolean; + /** + * An array of strings or a Buffer naming possible ALPN protocols. + * (Protocols should be ordered by their priority.) + */ + ALPNProtocols?: string[] | Uint8Array[] | Uint8Array; + /** + * SNICallback(servername, cb) A function that will be + * called if the client supports SNI TLS extension. Two arguments + * will be passed when called: servername and cb. SNICallback should + * invoke cb(null, ctx), where ctx is a SecureContext instance. + * (tls.createSecureContext(...) can be used to get a proper + * SecureContext.) If SNICallback wasn't provided the default callback + * with high-level API will be used (see below). + */ + SNICallback?: (servername: string, cb: (err: Error | null, ctx: SecureContext) => void) => void; + /** + * If true the server will reject any connection which is not + * authorized with the list of supplied CAs. This option only has an + * effect if requestCert is true. + * @default true + */ + rejectUnauthorized?: boolean; + } + + interface TlsOptions extends SecureContextOptions, CommonConnectionOptions, net.ServerOpts { + /** + * Abort the connection if the SSL/TLS handshake does not finish in the + * specified number of milliseconds. A 'tlsClientError' is emitted on + * the tls.Server object whenever a handshake times out. Default: + * 120000 (120 seconds). + */ + handshakeTimeout?: number; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number; + /** + * 48-bytes of cryptographically strong pseudo-random data. + */ + ticketKeys?: Buffer; + + /** + * + * @param socket + * @param identity identity parameter sent from the client. + * @return pre-shared key that must either be + * a buffer or `null` to stop the negotiation process. Returned PSK must be + * compatible with the selected cipher's digest. + * + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with the identity provided by the client. + * If the return value is `null` the negotiation process will stop and an + * "unknown_psk_identity" alert message will be sent to the other party. + * If the server wishes to hide the fact that the PSK identity was not known, + * the callback must provide some random data as `psk` to make the connection + * fail with "decrypt_error" before negotiation is finished. + * PSK ciphers are disabled by default, and using TLS-PSK thus + * requires explicitly specifying a cipher suite with the `ciphers` option. + * More information can be found in the RFC 4279. + */ + + pskCallback?(socket: TLSSocket, identity: string): DataView | NodeJS.TypedArray | null; + /** + * hint to send to a client to help + * with selecting the identity during TLS-PSK negotiation. Will be ignored + * in TLS 1.3. Upon failing to set pskIdentityHint `tlsClientError` will be + * emitted with `ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED` code. + */ + pskIdentityHint?: string; + } + + interface PSKCallbackNegotation { + psk: DataView | NodeJS.TypedArray; + identity: string; + } + + interface ConnectionOptions extends SecureContextOptions, CommonConnectionOptions { + host?: string; + port?: number; + path?: string; // Creates unix socket connection to path. If this option is specified, `host` and `port` are ignored. + socket?: net.Socket; // Establish secure connection on a given socket rather than creating a new socket + checkServerIdentity?: typeof checkServerIdentity; + servername?: string; // SNI TLS Extension + session?: Buffer; + minDHSize?: number; + lookup?: net.LookupFunction; + timeout?: number; + /** + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with optional identity `hint` provided by the server or `null` + * in case of TLS 1.3 where `hint` was removed. + * It will be necessary to provide a custom `tls.checkServerIdentity()` + * for the connection as the default one will try to check hostname/IP + * of the server against the certificate but that's not applicable for PSK + * because there won't be a certificate present. + * More information can be found in the RFC 4279. + * + * @param hint message sent from the server to help client + * decide which identity to use during negotiation. + * Always `null` if TLS 1.3 is used. + * @returns Return `null` to stop the negotiation process. `psk` must be + * compatible with the selected cipher's digest. + * `identity` must use UTF-8 encoding. + */ + pskCallback?(hint: string | null): PSKCallbackNegotation | null; + } + + class Server extends net.Server { + constructor(secureConnectionListener?: (socket: TLSSocket) => void); + constructor(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void); + + /** + * The server.addContext() method adds a secure context that will be + * used if the client request's SNI name matches the supplied hostname + * (or wildcard). + */ + addContext(hostName: string, credentials: SecureContextOptions): void; + /** + * Returns the session ticket keys. + */ + getTicketKeys(): Buffer; + /** + * + * The server.setSecureContext() method replaces the + * secure context of an existing server. Existing connections to the + * server are not interrupted. + */ + setSecureContext(details: SecureContextOptions): void; + /** + * The server.setSecureContext() method replaces the secure context of + * an existing server. Existing connections to the server are not + * interrupted. + */ + setTicketKeys(keys: Buffer): void; + + /** + * events.EventEmitter + * 1. tlsClientError + * 2. newSession + * 3. OCSPRequest + * 4. resumeSession + * 5. secureConnection + * 6. keylog + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + addListener(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + addListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + addListener(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + addListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + addListener(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "tlsClientError", err: Error, tlsSocket: TLSSocket): boolean; + emit(event: "newSession", sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void): boolean; + emit(event: "OCSPRequest", certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void): boolean; + emit(event: "resumeSession", sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void): boolean; + emit(event: "secureConnection", tlsSocket: TLSSocket): boolean; + emit(event: "keylog", line: Buffer, tlsSocket: TLSSocket): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + on(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + on(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + on(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + on(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + on(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + once(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + once(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + once(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + once(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + once(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependListener(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + prependListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependListener(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + prependListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + prependListener(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + prependOnceListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependOnceListener(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + prependOnceListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + } + + interface SecurePair { + encrypted: TLSSocket; + cleartext: TLSSocket; + } + + type SecureVersion = 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1'; + + interface SecureContextOptions { + /** + * Optionally override the trusted CA certificates. Default is to trust + * the well-known CAs curated by Mozilla. Mozilla's CAs are completely + * replaced when CAs are explicitly specified using this option. + */ + ca?: string | Buffer | Array; + /** + * Cert chains in PEM format. One cert chain should be provided per + * private key. Each cert chain should consist of the PEM formatted + * certificate for a provided private key, followed by the PEM + * formatted intermediate certificates (if any), in order, and not + * including the root CA (the root CA must be pre-known to the peer, + * see ca). When providing multiple cert chains, they do not have to + * be in the same order as their private keys in key. If the + * intermediate certificates are not provided, the peer will not be + * able to validate the certificate, and the handshake will fail. + */ + cert?: string | Buffer | Array; + /** + * Colon-separated list of supported signature algorithms. The list + * can contain digest algorithms (SHA256, MD5 etc.), public key + * algorithms (RSA-PSS, ECDSA etc.), combination of both (e.g + * 'RSA+SHA384') or TLS v1.3 scheme names (e.g. rsa_pss_pss_sha512). + */ + sigalgs?: string; + /** + * Cipher suite specification, replacing the default. For more + * information, see modifying the default cipher suite. Permitted + * ciphers can be obtained via tls.getCiphers(). Cipher names must be + * uppercased in order for OpenSSL to accept them. + */ + ciphers?: string; + /** + * Name of an OpenSSL engine which can provide the client certificate. + */ + clientCertEngine?: string; + /** + * PEM formatted CRLs (Certificate Revocation Lists). + */ + crl?: string | Buffer | Array; + /** + * Diffie Hellman parameters, required for Perfect Forward Secrecy. Use + * openssl dhparam to create the parameters. The key length must be + * greater than or equal to 1024 bits or else an error will be thrown. + * Although 1024 bits is permissible, use 2048 bits or larger for + * stronger security. If omitted or invalid, the parameters are + * silently discarded and DHE ciphers will not be available. + */ + dhparam?: string | Buffer; + /** + * A string describing a named curve or a colon separated list of curve + * NIDs or names, for example P-521:P-384:P-256, to use for ECDH key + * agreement. Set to auto to select the curve automatically. Use + * crypto.getCurves() to obtain a list of available curve names. On + * recent releases, openssl ecparam -list_curves will also display the + * name and description of each available elliptic curve. Default: + * tls.DEFAULT_ECDH_CURVE. + */ + ecdhCurve?: string; + /** + * Attempt to use the server's cipher suite preferences instead of the + * client's. When true, causes SSL_OP_CIPHER_SERVER_PREFERENCE to be + * set in secureOptions + */ + honorCipherOrder?: boolean; + /** + * Private keys in PEM format. PEM allows the option of private keys + * being encrypted. Encrypted keys will be decrypted with + * options.passphrase. Multiple keys using different algorithms can be + * provided either as an array of unencrypted key strings or buffers, + * or an array of objects in the form {pem: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted keys will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + key?: string | Buffer | Array; + /** + * Name of an OpenSSL engine to get private key from. Should be used + * together with privateKeyIdentifier. + */ + privateKeyEngine?: string; + /** + * Identifier of a private key managed by an OpenSSL engine. Should be + * used together with privateKeyEngine. Should not be set together with + * key, because both options define a private key in different ways. + */ + privateKeyIdentifier?: string; + /** + * Optionally set the maximum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. + * **Default:** `'TLSv1.3'`, unless changed using CLI options. Using + * `--tls-max-v1.2` sets the default to `'TLSv1.2'`. Using `--tls-max-v1.3` sets the default to + * `'TLSv1.3'`. If multiple of the options are provided, the highest maximum is used. + */ + maxVersion?: SecureVersion; + /** + * Optionally set the minimum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. It is not recommended to use + * less than TLSv1.2, but it may be required for interoperability. + * **Default:** `'TLSv1.2'`, unless changed using CLI options. Using + * `--tls-v1.0` sets the default to `'TLSv1'`. Using `--tls-v1.1` sets the default to + * `'TLSv1.1'`. Using `--tls-min-v1.3` sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the lowest minimum is used. + */ + minVersion?: SecureVersion; + /** + * Shared passphrase used for a single private key and/or a PFX. + */ + passphrase?: string; + /** + * PFX or PKCS12 encoded private key and certificate chain. pfx is an + * alternative to providing key and cert individually. PFX is usually + * encrypted, if it is, passphrase will be used to decrypt it. Multiple + * PFX can be provided either as an array of unencrypted PFX buffers, + * or an array of objects in the form {buf: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted PFX will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + pfx?: string | Buffer | Array; + /** + * Optionally affect the OpenSSL protocol behavior, which is not + * usually necessary. This should be used carefully if at all! Value is + * a numeric bitmask of the SSL_OP_* options from OpenSSL Options + */ + secureOptions?: number; // Value is a numeric bitmask of the `SSL_OP_*` options + /** + * Legacy mechanism to select the TLS protocol version to use, it does + * not support independent control of the minimum and maximum version, + * and does not support limiting the protocol to TLSv1.3. Use + * minVersion and maxVersion instead. The possible values are listed as + * SSL_METHODS, use the function names as strings. For example, use + * 'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow + * any TLS protocol version up to TLSv1.3. It is not recommended to use + * TLS versions less than 1.2, but it may be required for + * interoperability. Default: none, see minVersion. + */ + secureProtocol?: string; + /** + * Opaque identifier used by servers to ensure session state is not + * shared between applications. Unused by clients. + */ + sessionIdContext?: string; + /** + * 48-bytes of cryptographically strong pseudo-random data. + * See Session Resumption for more information. + */ + ticketKeys?: Buffer; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number; + } + + interface SecureContext { + context: any; + } + + /* + * Verifies the certificate `cert` is issued to host `host`. + * @host The hostname to verify the certificate against + * @cert PeerCertificate representing the peer's certificate + * + * Returns Error object, populating it with the reason, host and cert on failure. On success, returns undefined. + */ + function checkServerIdentity(host: string, cert: PeerCertificate): Error | undefined; + function createServer(secureConnectionListener?: (socket: TLSSocket) => void): Server; + function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server; + function connect(options: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + /** + * @deprecated since v0.11.3 Use `tls.TLSSocket` instead. + */ + function createSecurePair(credentials?: SecureContext, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair; + function createSecureContext(options?: SecureContextOptions): SecureContext; + function getCiphers(): string[]; + + /** + * The default curve name to use for ECDH key agreement in a tls server. + * The default value is 'auto'. See tls.createSecureContext() for further + * information. + */ + let DEFAULT_ECDH_CURVE: string; + /** + * The default value of the maxVersion option of + * tls.createSecureContext(). It can be assigned any of the supported TLS + * protocol versions, 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: + * 'TLSv1.3', unless changed using CLI options. Using --tls-max-v1.2 sets + * the default to 'TLSv1.2'. Using --tls-max-v1.3 sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the highest maximum + * is used. + */ + let DEFAULT_MAX_VERSION: SecureVersion; + /** + * The default value of the minVersion option of tls.createSecureContext(). + * It can be assigned any of the supported TLS protocol versions, + * 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: 'TLSv1.2', unless + * changed using CLI options. Using --tls-min-v1.0 sets the default to + * 'TLSv1'. Using --tls-min-v1.1 sets the default to 'TLSv1.1'. Using + * --tls-min-v1.3 sets the default to 'TLSv1.3'. If multiple of the options + * are provided, the lowest minimum is used. + */ + let DEFAULT_MIN_VERSION: SecureVersion; + + /** + * An immutable array of strings representing the root certificates (in PEM + * format) used for verifying peer certificates. This is the default value + * of the ca option to tls.createSecureContext(). + */ + const rootCertificates: ReadonlyArray; +} diff --git a/justdanceonline-main/node_modules/@types/node/trace_events.d.ts b/justdanceonline-main/node_modules/@types/node/trace_events.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1bf65345819c8dab9e524987b48c6982f7ed4a03 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/trace_events.d.ts @@ -0,0 +1,61 @@ +declare module 'trace_events' { + /** + * The `Tracing` object is used to enable or disable tracing for sets of + * categories. Instances are created using the + * `trace_events.createTracing()` method. + * + * When created, the `Tracing` object is disabled. Calling the + * `tracing.enable()` method adds the categories to the set of enabled trace + * event categories. Calling `tracing.disable()` will remove the categories + * from the set of enabled trace event categories. + */ + interface Tracing { + /** + * A comma-separated list of the trace event categories covered by this + * `Tracing` object. + */ + readonly categories: string; + + /** + * Disables this `Tracing` object. + * + * Only trace event categories _not_ covered by other enabled `Tracing` + * objects and _not_ specified by the `--trace-event-categories` flag + * will be disabled. + */ + disable(): void; + + /** + * Enables this `Tracing` object for the set of categories covered by + * the `Tracing` object. + */ + enable(): void; + + /** + * `true` only if the `Tracing` object has been enabled. + */ + readonly enabled: boolean; + } + + interface CreateTracingOptions { + /** + * An array of trace category names. Values included in the array are + * coerced to a string when possible. An error will be thrown if the + * value cannot be coerced. + */ + categories: string[]; + } + + /** + * Creates and returns a Tracing object for the given set of categories. + */ + function createTracing(options: CreateTracingOptions): Tracing; + + /** + * Returns a comma-separated list of all currently-enabled trace event + * categories. The current set of enabled trace event categories is + * determined by the union of all currently-enabled `Tracing` objects and + * any categories enabled using the `--trace-event-categories` flag. + */ + function getEnabledCategories(): string | undefined; +} diff --git a/justdanceonline-main/node_modules/@types/node/ts3.6/assert.d.ts b/justdanceonline-main/node_modules/@types/node/ts3.6/assert.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..37e24f5c1df53e273a013765a61153de10fca491 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/ts3.6/assert.d.ts @@ -0,0 +1,98 @@ +declare module 'assert' { + /** An alias of `assert.ok()`. */ + function assert(value: any, message?: string | Error): void; + namespace assert { + class AssertionError extends Error { + actual: any; + expected: any; + operator: string; + generatedMessage: boolean; + code: 'ERR_ASSERTION'; + + constructor(options?: { + /** If provided, the error message is set to this value. */ + message?: string; + /** The `actual` property on the error instance. */ + actual?: any; + /** The `expected` property on the error instance. */ + expected?: any; + /** The `operator` property on the error instance. */ + operator?: string; + /** If provided, the generated stack trace omits frames before this function. */ + // tslint:disable-next-line:ban-types + stackStartFn?: Function; + }); + } + + class CallTracker { + calls(exact?: number): () => void; + calls any>(fn?: Func, exact?: number): Func; + report(): CallTrackerReportInformation[]; + verify(): void; + } + interface CallTrackerReportInformation { + message: string; + /** The actual number of times the function was called. */ + actual: number; + /** The number of times the function was expected to be called. */ + expected: number; + /** The name of the function that is wrapped. */ + operator: string; + /** A stack trace of the function. */ + stack: object; + } + + type AssertPredicate = RegExp | (new () => object) | ((thrown: any) => boolean) | object | Error; + + function fail(message?: string | Error): never; + /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ + function fail( + actual: any, + expected: any, + message?: string | Error, + operator?: string, + // tslint:disable-next-line:ban-types + stackStartFn?: Function, + ): never; + function ok(value: any, message?: string | Error): void; + /** @deprecated since v9.9.0 - use strictEqual() instead. */ + function equal(actual: any, expected: any, message?: string | Error): void; + /** @deprecated since v9.9.0 - use notStrictEqual() instead. */ + function notEqual(actual: any, expected: any, message?: string | Error): void; + /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */ + function deepEqual(actual: any, expected: any, message?: string | Error): void; + /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */ + function notDeepEqual(actual: any, expected: any, message?: string | Error): void; + function strictEqual(actual: any, expected: any, message?: string | Error): void; + function notStrictEqual(actual: any, expected: any, message?: string | Error): void; + function deepStrictEqual(actual: any, expected: any, message?: string | Error): void; + function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void; + + function throws(block: () => any, message?: string | Error): void; + function throws(block: () => any, error: AssertPredicate, message?: string | Error): void; + function doesNotThrow(block: () => any, message?: string | Error): void; + function doesNotThrow(block: () => any, error: AssertPredicate, message?: string | Error): void; + + function ifError(value: any): void; + + function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise; + function rejects( + block: (() => Promise) | Promise, + error: AssertPredicate, + message?: string | Error, + ): Promise; + function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise; + function doesNotReject( + block: (() => Promise) | Promise, + error: AssertPredicate, + message?: string | Error, + ): Promise; + + function match(value: string, regExp: RegExp, message?: string | Error): void; + function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void; + + const strict: typeof assert; + } + + export = assert; +} diff --git a/justdanceonline-main/node_modules/@types/node/ts3.6/base.d.ts b/justdanceonline-main/node_modules/@types/node/ts3.6/base.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..8f41e145e423b2a96057ba0b375fba35e0cfc6b0 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/ts3.6/base.d.ts @@ -0,0 +1,66 @@ +// NOTE: These definitions support NodeJS and TypeScript 3.6 and earlier. + +// NOTE: TypeScript version-specific augmentations can be found in the following paths: +// - ~/base.d.ts - Shared definitions common to all TypeScript versions +// - ~/index.d.ts - Definitions specific to TypeScript 3.7 and above +// - ~/ts3.5/base.d.ts - Definitions specific to TypeScript 3.6 and earlier +// - ~/ts3.5/index.d.ts - Definitions specific to TypeScript 3.6 and earlier with assert pulled in + +// Reference required types from the default lib: +/// +/// +/// +/// + +// Base definitions for all NodeJS modules that are not specific to any version of TypeScript: +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// + +// TypeScript 3.5-specific augmentations: +/// + +// TypeScript 3.5-specific augmentations: +/// diff --git a/justdanceonline-main/node_modules/@types/node/ts3.6/index.d.ts b/justdanceonline-main/node_modules/@types/node/ts3.6/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e34d7e5ed70c873238428666d58491882c7d3dd1 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/ts3.6/index.d.ts @@ -0,0 +1,7 @@ +// NOTE: These definitions support NodeJS and TypeScript 3.5 - 3.6. +// This is required to enable typing assert in ts3.7 without causing errors +// Typically type modifications should be made in base.d.ts instead of here + +/// + +/// diff --git a/justdanceonline-main/node_modules/@types/node/tty.d.ts b/justdanceonline-main/node_modules/@types/node/tty.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..093552413f3298c14d23ca58380f970fbb9ce620 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/tty.d.ts @@ -0,0 +1,66 @@ +declare module 'tty' { + import * as net from 'net'; + + function isatty(fd: number): boolean; + class ReadStream extends net.Socket { + constructor(fd: number, options?: net.SocketConstructorOpts); + isRaw: boolean; + setRawMode(mode: boolean): this; + isTTY: boolean; + } + /** + * -1 - to the left from cursor + * 0 - the entire line + * 1 - to the right from cursor + */ + type Direction = -1 | 0 | 1; + class WriteStream extends net.Socket { + constructor(fd: number); + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "resize", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "resize"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "resize", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "resize", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "resize", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "resize", listener: () => void): this; + + /** + * Clears the current line of this WriteStream in a direction identified by `dir`. + */ + clearLine(dir: Direction, callback?: () => void): boolean; + /** + * Clears this `WriteStream` from the current cursor down. + */ + clearScreenDown(callback?: () => void): boolean; + /** + * Moves this WriteStream's cursor to the specified position. + */ + cursorTo(x: number, y?: number, callback?: () => void): boolean; + cursorTo(x: number, callback: () => void): boolean; + /** + * Moves this WriteStream's cursor relative to its current position. + */ + moveCursor(dx: number, dy: number, callback?: () => void): boolean; + /** + * @default `process.env` + */ + getColorDepth(env?: {}): number; + hasColors(depth?: number): boolean; + hasColors(env?: {}): boolean; + hasColors(depth: number, env?: {}): boolean; + getWindowSize(): [number, number]; + columns: number; + rows: number; + isTTY: boolean; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/url.d.ts b/justdanceonline-main/node_modules/@types/node/url.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..f8da6e533a698d2ab30a275ac2d1634eef9385e4 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/url.d.ts @@ -0,0 +1,116 @@ +declare module 'url' { + import { ParsedUrlQuery, ParsedUrlQueryInput } from 'querystring'; + + // Input to `url.format` + interface UrlObject { + auth?: string | null; + hash?: string | null; + host?: string | null; + hostname?: string | null; + href?: string | null; + pathname?: string | null; + protocol?: string | null; + search?: string | null; + slashes?: boolean | null; + port?: string | number | null; + query?: string | null | ParsedUrlQueryInput; + } + + // Output of `url.parse` + interface Url { + auth: string | null; + hash: string | null; + host: string | null; + hostname: string | null; + href: string; + path: string | null; + pathname: string | null; + protocol: string | null; + search: string | null; + slashes: boolean | null; + port: string | null; + query: string | null | ParsedUrlQuery; + } + + interface UrlWithParsedQuery extends Url { + query: ParsedUrlQuery; + } + + interface UrlWithStringQuery extends Url { + query: string | null; + } + + /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ + function parse(urlStr: string): UrlWithStringQuery; + /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ + function parse(urlStr: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery; + /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ + function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery; + /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ + function parse(urlStr: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url; + + function format(URL: URL, options?: URLFormatOptions): string; + /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ + function format(urlObject: UrlObject | string): string; + /** @deprecated since v11.0.0 - Use the WHATWG URL API. */ + function resolve(from: string, to: string): string; + + function domainToASCII(domain: string): string; + function domainToUnicode(domain: string): string; + + /** + * This function ensures the correct decodings of percent-encoded characters as + * well as ensuring a cross-platform valid absolute path string. + * @param url The file URL string or URL object to convert to a path. + */ + function fileURLToPath(url: string | URL): string; + + /** + * This function ensures that path is resolved absolutely, and that the URL + * control characters are correctly encoded when converting into a File URL. + * @param url The path to convert to a File URL. + */ + function pathToFileURL(url: string): URL; + + interface URLFormatOptions { + auth?: boolean; + fragment?: boolean; + search?: boolean; + unicode?: boolean; + } + + class URL { + constructor(input: string, base?: string | URL); + hash: string; + host: string; + hostname: string; + href: string; + readonly origin: string; + password: string; + pathname: string; + port: string; + protocol: string; + search: string; + readonly searchParams: URLSearchParams; + username: string; + toString(): string; + toJSON(): string; + } + + class URLSearchParams implements Iterable<[string, string]> { + constructor(init?: URLSearchParams | string | NodeJS.Dict> | Iterable<[string, string]> | ReadonlyArray<[string, string]>); + append(name: string, value: string): void; + delete(name: string): void; + entries(): IterableIterator<[string, string]>; + forEach(callback: (value: string, name: string, searchParams: this) => void): void; + get(name: string): string | null; + getAll(name: string): string[]; + has(name: string): boolean; + keys(): IterableIterator; + set(name: string, value: string): void; + sort(): void; + toString(): string; + values(): IterableIterator; + [Symbol.iterator](): IterableIterator<[string, string]>; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/util.d.ts b/justdanceonline-main/node_modules/@types/node/util.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c7aa5afdca64c45bc68a172561771e5f5c4356e8 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/util.d.ts @@ -0,0 +1,207 @@ +declare module 'util' { + interface InspectOptions extends NodeJS.InspectOptions { } + type Style = 'special' | 'number' | 'bigint' | 'boolean' | 'undefined' | 'null' | 'string' | 'symbol' | 'date' | 'regexp' | 'module'; + type CustomInspectFunction = (depth: number, options: InspectOptionsStylized) => string; + interface InspectOptionsStylized extends InspectOptions { + stylize(text: string, styleType: Style): string; + } + function format(format?: any, ...param: any[]): string; + function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string; + /** @deprecated since v0.11.3 - use a third party module instead. */ + function log(string: string): void; + function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string; + function inspect(object: any, options: InspectOptions): string; + namespace inspect { + let colors: NodeJS.Dict<[number, number]>; + let styles: { + [K in Style]: string + }; + let defaultOptions: InspectOptions; + /** + * Allows changing inspect settings from the repl. + */ + let replDefaults: InspectOptions; + const custom: unique symbol; + } + /** @deprecated since v4.0.0 - use `Array.isArray()` instead. */ + function isArray(object: any): object is any[]; + /** @deprecated since v4.0.0 - use `util.types.isRegExp()` instead. */ + function isRegExp(object: any): object is RegExp; + /** @deprecated since v4.0.0 - use `util.types.isDate()` instead. */ + function isDate(object: any): object is Date; + /** @deprecated since v4.0.0 - use `util.types.isNativeError()` instead. */ + function isError(object: any): object is Error; + function inherits(constructor: any, superConstructor: any): void; + function debuglog(key: string): (msg: string, ...param: any[]) => void; + /** @deprecated since v4.0.0 - use `typeof value === 'boolean'` instead. */ + function isBoolean(object: any): object is boolean; + /** @deprecated since v4.0.0 - use `Buffer.isBuffer()` instead. */ + function isBuffer(object: any): object is Buffer; + /** @deprecated since v4.0.0 - use `typeof value === 'function'` instead. */ + function isFunction(object: any): boolean; + /** @deprecated since v4.0.0 - use `value === null` instead. */ + function isNull(object: any): object is null; + /** @deprecated since v4.0.0 - use `value === null || value === undefined` instead. */ + function isNullOrUndefined(object: any): object is null | undefined; + /** @deprecated since v4.0.0 - use `typeof value === 'number'` instead. */ + function isNumber(object: any): object is number; + /** @deprecated since v4.0.0 - use `value !== null && typeof value === 'object'` instead. */ + function isObject(object: any): boolean; + /** @deprecated since v4.0.0 - use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead. */ + function isPrimitive(object: any): boolean; + /** @deprecated since v4.0.0 - use `typeof value === 'string'` instead. */ + function isString(object: any): object is string; + /** @deprecated since v4.0.0 - use `typeof value === 'symbol'` instead. */ + function isSymbol(object: any): object is symbol; + /** @deprecated since v4.0.0 - use `value === undefined` instead. */ + function isUndefined(object: any): object is undefined; + function deprecate(fn: T, message: string, code?: string): T; + function isDeepStrictEqual(val1: any, val2: any): boolean; + + function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3) => Promise): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + + interface CustomPromisifyLegacy extends Function { + __promisify__: TCustom; + } + + interface CustomPromisifySymbol extends Function { + [promisify.custom]: TCustom; + } + + type CustomPromisify = CustomPromisifySymbol | CustomPromisifyLegacy; + + function promisify(fn: CustomPromisify): TCustom; + function promisify(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise; + function promisify(fn: (callback: (err?: any) => void) => void): () => Promise; + function promisify(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise; + function promisify(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void): + (arg1: T1, arg2: T2, arg3: T3) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise; + function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void): + (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + function promisify(fn: Function): Function; + namespace promisify { + const custom: unique symbol; + } + + namespace types { + function isAnyArrayBuffer(object: any): object is ArrayBufferLike; + function isArgumentsObject(object: any): object is IArguments; + function isArrayBuffer(object: any): object is ArrayBuffer; + function isArrayBufferView(object: any): object is NodeJS.ArrayBufferView; + function isAsyncFunction(object: any): boolean; + function isBigInt64Array(value: any): value is BigInt64Array; + function isBigUint64Array(value: any): value is BigUint64Array; + function isBooleanObject(object: any): object is Boolean; + function isBoxedPrimitive(object: any): object is String | Number | BigInt | Boolean | Symbol; + function isDataView(object: any): object is DataView; + function isDate(object: any): object is Date; + function isExternal(object: any): boolean; + function isFloat32Array(object: any): object is Float32Array; + function isFloat64Array(object: any): object is Float64Array; + function isGeneratorFunction(object: any): object is GeneratorFunction; + function isGeneratorObject(object: any): object is Generator; + function isInt8Array(object: any): object is Int8Array; + function isInt16Array(object: any): object is Int16Array; + function isInt32Array(object: any): object is Int32Array; + function isMap( + object: T | {}, + ): object is T extends ReadonlyMap + ? unknown extends T + ? never + : ReadonlyMap + : Map; + function isMapIterator(object: any): boolean; + function isModuleNamespaceObject(value: any): boolean; + function isNativeError(object: any): object is Error; + function isNumberObject(object: any): object is Number; + function isPromise(object: any): object is Promise; + function isProxy(object: any): boolean; + function isRegExp(object: any): object is RegExp; + function isSet( + object: T | {}, + ): object is T extends ReadonlySet + ? unknown extends T + ? never + : ReadonlySet + : Set; + function isSetIterator(object: any): boolean; + function isSharedArrayBuffer(object: any): object is SharedArrayBuffer; + function isStringObject(object: any): object is String; + function isSymbolObject(object: any): object is Symbol; + function isTypedArray(object: any): object is NodeJS.TypedArray; + function isUint8Array(object: any): object is Uint8Array; + function isUint8ClampedArray(object: any): object is Uint8ClampedArray; + function isUint16Array(object: any): object is Uint16Array; + function isUint32Array(object: any): object is Uint32Array; + function isWeakMap(object: any): object is WeakMap; + function isWeakSet(object: any): object is WeakSet; + } + + class TextDecoder { + readonly encoding: string; + readonly fatal: boolean; + readonly ignoreBOM: boolean; + constructor( + encoding?: string, + options?: { fatal?: boolean; ignoreBOM?: boolean } + ); + decode( + input?: NodeJS.ArrayBufferView | ArrayBuffer | null, + options?: { stream?: boolean } + ): string; + } + + interface EncodeIntoResult { + /** + * The read Unicode code units of input. + */ + + read: number; + /** + * The written UTF-8 bytes of output. + */ + written: number; + } + + class TextEncoder { + readonly encoding: string; + encode(input?: string): Uint8Array; + encodeInto(input: string, output: Uint8Array): EncodeIntoResult; + } +} diff --git a/justdanceonline-main/node_modules/@types/node/v8.d.ts b/justdanceonline-main/node_modules/@types/node/v8.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b497dcbf6d3d8adec6579df882a4e07d8c8bbd53 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/v8.d.ts @@ -0,0 +1,187 @@ +declare module 'v8' { + import { Readable } from 'stream'; + + interface HeapSpaceInfo { + space_name: string; + space_size: number; + space_used_size: number; + space_available_size: number; + physical_space_size: number; + } + + // ** Signifies if the --zap_code_space option is enabled or not. 1 == enabled, 0 == disabled. */ + type DoesZapCodeSpaceFlag = 0 | 1; + + interface HeapInfo { + total_heap_size: number; + total_heap_size_executable: number; + total_physical_size: number; + total_available_size: number; + used_heap_size: number; + heap_size_limit: number; + malloced_memory: number; + peak_malloced_memory: number; + does_zap_garbage: DoesZapCodeSpaceFlag; + number_of_native_contexts: number; + number_of_detached_contexts: number; + } + + interface HeapCodeStatistics { + code_and_metadata_size: number; + bytecode_and_metadata_size: number; + external_script_source_size: number; + } + + /** + * Returns an integer representing a "version tag" derived from the V8 version, command line flags and detected CPU features. + * This is useful for determining whether a vm.Script cachedData buffer is compatible with this instance of V8. + */ + function cachedDataVersionTag(): number; + + function getHeapStatistics(): HeapInfo; + function getHeapSpaceStatistics(): HeapSpaceInfo[]; + function setFlagsFromString(flags: string): void; + /** + * Generates a snapshot of the current V8 heap and returns a Readable + * Stream that may be used to read the JSON serialized representation. + * This conversation was marked as resolved by joyeecheung + * This JSON stream format is intended to be used with tools such as + * Chrome DevTools. The JSON schema is undocumented and specific to the + * V8 engine, and may change from one version of V8 to the next. + */ + function getHeapSnapshot(): Readable; + + /** + * + * @param fileName The file path where the V8 heap snapshot is to be + * saved. If not specified, a file name with the pattern + * `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be + * generated, where `{pid}` will be the PID of the Node.js process, + * `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from + * the main Node.js thread or the id of a worker thread. + */ + function writeHeapSnapshot(fileName?: string): string; + + function getHeapCodeStatistics(): HeapCodeStatistics; + + class Serializer { + /** + * Writes out a header, which includes the serialization format version. + */ + writeHeader(): void; + + /** + * Serializes a JavaScript value and adds the serialized representation to the internal buffer. + * This throws an error if value cannot be serialized. + */ + writeValue(val: any): boolean; + + /** + * Returns the stored internal buffer. + * This serializer should not be used once the buffer is released. + * Calling this method results in undefined behavior if a previous write has failed. + */ + releaseBuffer(): Buffer; + + /** + * Marks an ArrayBuffer as having its contents transferred out of band.\ + * Pass the corresponding ArrayBuffer in the deserializing context to deserializer.transferArrayBuffer(). + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + + /** + * Write a raw 32-bit unsigned integer. + */ + writeUint32(value: number): void; + + /** + * Write a raw 64-bit unsigned integer, split into high and low 32-bit parts. + */ + writeUint64(hi: number, lo: number): void; + + /** + * Write a JS number value. + */ + writeDouble(value: number): void; + + /** + * Write raw bytes into the serializer’s internal buffer. + * The deserializer will require a way to compute the length of the buffer. + */ + writeRawBytes(buffer: NodeJS.TypedArray): void; + } + + /** + * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, + * and only stores the part of their underlying `ArrayBuffers` that they are referring to. + */ + class DefaultSerializer extends Serializer { + } + + class Deserializer { + constructor(data: NodeJS.TypedArray); + /** + * Reads and validates a header (including the format version). + * May, for example, reject an invalid or unsupported wire format. + * In that case, an Error is thrown. + */ + readHeader(): boolean; + + /** + * Deserializes a JavaScript value from the buffer and returns it. + */ + readValue(): any; + + /** + * Marks an ArrayBuffer as having its contents transferred out of band. + * Pass the corresponding `ArrayBuffer` in the serializing context to serializer.transferArrayBuffer() + * (or return the id from serializer._getSharedArrayBufferId() in the case of SharedArrayBuffers). + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + + /** + * Reads the underlying wire format version. + * Likely mostly to be useful to legacy code reading old wire format versions. + * May not be called before .readHeader(). + */ + getWireFormatVersion(): number; + + /** + * Read a raw 32-bit unsigned integer and return it. + */ + readUint32(): number; + + /** + * Read a raw 64-bit unsigned integer and return it as an array [hi, lo] with two 32-bit unsigned integer entries. + */ + readUint64(): [number, number]; + + /** + * Read a JS number value. + */ + readDouble(): number; + + /** + * Read raw bytes from the deserializer’s internal buffer. + * The length parameter must correspond to the length of the buffer that was passed to serializer.writeRawBytes(). + */ + readRawBytes(length: number): Buffer; + } + + /** + * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, + * and only stores the part of their underlying `ArrayBuffers` that they are referring to. + */ + class DefaultDeserializer extends Deserializer { + } + + /** + * Uses a `DefaultSerializer` to serialize value into a buffer. + */ + function serialize(value: any): Buffer; + + /** + * Uses a `DefaultDeserializer` with default options to read a JS value from a buffer. + */ + function deserialize(data: NodeJS.TypedArray): any; +} diff --git a/justdanceonline-main/node_modules/@types/node/vm.d.ts b/justdanceonline-main/node_modules/@types/node/vm.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1d093cadc2cc0d6ca879fd7c2424df269c6c7e5f --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/vm.d.ts @@ -0,0 +1,152 @@ +declare module 'vm' { + interface Context extends NodeJS.Dict { } + interface BaseOptions { + /** + * Specifies the filename used in stack traces produced by this script. + * Default: `''`. + */ + filename?: string; + /** + * Specifies the line number offset that is displayed in stack traces produced by this script. + * Default: `0`. + */ + lineOffset?: number; + /** + * Specifies the column number offset that is displayed in stack traces produced by this script. + * Default: `0` + */ + columnOffset?: number; + } + interface ScriptOptions extends BaseOptions { + displayErrors?: boolean; + timeout?: number; + cachedData?: Buffer; + /** @deprecated in favor of `script.createCachedData()` */ + produceCachedData?: boolean; + } + interface RunningScriptOptions extends BaseOptions { + /** + * When `true`, if an `Error` occurs while compiling the `code`, the line of code causing the error is attached to the stack trace. + * Default: `true`. + */ + displayErrors?: boolean; + /** + * Specifies the number of milliseconds to execute code before terminating execution. + * If execution is terminated, an `Error` will be thrown. This value must be a strictly positive integer. + */ + timeout?: number; + /** + * If `true`, the execution will be terminated when `SIGINT` (Ctrl+C) is received. + * Existing handlers for the event that have been attached via `process.on('SIGINT')` will be disabled during script execution, but will continue to work after that. + * If execution is terminated, an `Error` will be thrown. + * Default: `false`. + */ + breakOnSigint?: boolean; + /** + * If set to `afterEvaluate`, microtasks will be run immediately after the script has run. + */ + microtaskMode?: 'afterEvaluate'; + } + interface CompileFunctionOptions extends BaseOptions { + /** + * Provides an optional data with V8's code cache data for the supplied source. + */ + cachedData?: Buffer; + /** + * Specifies whether to produce new cache data. + * Default: `false`, + */ + produceCachedData?: boolean; + /** + * The sandbox/context in which the said function should be compiled in. + */ + parsingContext?: Context; + + /** + * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling + */ + contextExtensions?: Object[]; + } + + interface CreateContextOptions { + /** + * Human-readable name of the newly created context. + * @default 'VM Context i' Where i is an ascending numerical index of the created context. + */ + name?: string; + /** + * Corresponds to the newly created context for display purposes. + * The origin should be formatted like a `URL`, but with only the scheme, host, and port (if necessary), + * like the value of the `url.origin` property of a URL object. + * Most notably, this string should omit the trailing slash, as that denotes a path. + * @default '' + */ + origin?: string; + codeGeneration?: { + /** + * If set to false any calls to eval or function constructors (Function, GeneratorFunction, etc) + * will throw an EvalError. + * @default true + */ + strings?: boolean; + /** + * If set to false any attempt to compile a WebAssembly module will throw a WebAssembly.CompileError. + * @default true + */ + wasm?: boolean; + }; + /** + * If set to `afterEvaluate`, microtasks will be run immediately after the script has run. + */ + microtaskMode?: 'afterEvaluate'; + } + + type MeasureMemoryMode = 'summary' | 'detailed'; + + interface MeasureMemoryOptions { + /** + * @default 'summary' + */ + mode?: MeasureMemoryMode; + context?: Context; + } + + interface MemoryMeasurement { + total: { + jsMemoryEstimate: number; + jsMemoryRange: [number, number]; + }; + } + + class Script { + constructor(code: string, options?: ScriptOptions); + runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any; + runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any; + runInThisContext(options?: RunningScriptOptions): any; + createCachedData(): Buffer; + cachedDataRejected?: boolean; + } + function createContext(sandbox?: Context, options?: CreateContextOptions): Context; + function isContext(sandbox: Context): boolean; + function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions | string): any; + function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions | string): any; + function runInThisContext(code: string, options?: RunningScriptOptions | string): any; + function compileFunction(code: string, params?: ReadonlyArray, options?: CompileFunctionOptions): Function; + + /** + * Measure the memory known to V8 and used by the current execution context or a specified context. + * + * The format of the object that the returned Promise may resolve with is + * specific to the V8 engine and may change from one version of V8 to the next. + * + * The returned result is different from the statistics returned by + * `v8.getHeapSpaceStatistics()` in that `vm.measureMemory()` measures + * the memory reachable by V8 from a specific context, while + * `v8.getHeapSpaceStatistics()` measures the memory used by an instance + * of V8 engine, which can switch among multiple contexts that reference + * objects in the heap of one engine. + * + * @experimental + */ + function measureMemory(options?: MeasureMemoryOptions): Promise; +} diff --git a/justdanceonline-main/node_modules/@types/node/wasi.d.ts b/justdanceonline-main/node_modules/@types/node/wasi.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..fe2b2aab8eb3ff31c8606b6a97e685f93cf4a4a8 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/wasi.d.ts @@ -0,0 +1,86 @@ +declare module 'wasi' { + interface WASIOptions { + /** + * An array of strings that the WebAssembly application will + * see as command line arguments. The first argument is the virtual path to the + * WASI command itself. + */ + args?: string[]; + + /** + * An object similar to `process.env` that the WebAssembly + * application will see as its environment. + */ + env?: object; + + /** + * This object represents the WebAssembly application's + * sandbox directory structure. The string keys of `preopens` are treated as + * directories within the sandbox. The corresponding values in `preopens` are + * the real paths to those directories on the host machine. + */ + preopens?: NodeJS.Dict; + + /** + * By default, WASI applications terminate the Node.js + * process via the `__wasi_proc_exit()` function. Setting this option to `true` + * causes `wasi.start()` to return the exit code rather than terminate the + * process. + * @default false + */ + returnOnExit?: boolean; + + /** + * The file descriptor used as standard input in the WebAssembly application. + * @default 0 + */ + stdin?: number; + + /** + * The file descriptor used as standard output in the WebAssembly application. + * @default 1 + */ + stdout?: number; + + /** + * The file descriptor used as standard error in the WebAssembly application. + * @default 2 + */ + stderr?: number; + } + + class WASI { + constructor(options?: WASIOptions); + /** + * + * Attempt to begin execution of `instance` by invoking its `_start()` export. + * If `instance` does not contain a `_start()` export, then `start()` attempts to + * invoke the `__wasi_unstable_reactor_start()` export. If neither of those exports + * is present on `instance`, then `start()` does nothing. + * + * `start()` requires that `instance` exports a [`WebAssembly.Memory`][] named + * `memory`. If `instance` does not have a `memory` export an exception is thrown. + * + * If `start()` is called more than once, an exception is thrown. + */ + start(instance: object): void; // TODO: avoid DOM dependency until WASM moved to own lib. + + /** + * Attempt to initialize `instance` as a WASI reactor by invoking its `_initialize()` export, if it is present. + * If `instance` contains a `_start()` export, then an exception is thrown. + * + * `start()` requires that `instance` exports a [`WebAssembly.Memory`][] named + * `memory`. If `instance` does not have a `memory` export an exception is thrown. + * + * If `initialize()` is called more than once, an exception is thrown. + */ + initialize(instance: object): void; // TODO: avoid DOM dependency until WASM moved to own lib. + + /** + * Is an object that implements the WASI system call API. This object + * should be passed as the `wasi_snapshot_preview1` import during the instantiation of a + * [`WebAssembly.Instance`][]. + */ + readonly wasiImport: NodeJS.Dict; // TODO: Narrow to DOM types + } +} diff --git a/justdanceonline-main/node_modules/@types/node/worker_threads.d.ts b/justdanceonline-main/node_modules/@types/node/worker_threads.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..fc9a772e5238adf642226e1417dc43448bf11cc9 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/worker_threads.d.ts @@ -0,0 +1,241 @@ +declare module 'worker_threads' { + import { Context } from 'vm'; + import EventEmitter = require('events'); + import { Readable, Writable } from 'stream'; + import { URL } from 'url'; + import { FileHandle } from 'fs/promises'; + + const isMainThread: boolean; + const parentPort: null | MessagePort; + const resourceLimits: ResourceLimits; + const SHARE_ENV: unique symbol; + const threadId: number; + const workerData: any; + + class MessageChannel { + readonly port1: MessagePort; + readonly port2: MessagePort; + } + + type TransferListItem = ArrayBuffer | MessagePort | FileHandle; + + class MessagePort extends EventEmitter { + close(): void; + postMessage(value: any, transferList?: ReadonlyArray): void; + ref(): void; + unref(): void; + start(): void; + + addListener(event: "close", listener: () => void): this; + addListener(event: "message", listener: (value: any) => void): this; + addListener(event: "messageerror", listener: (error: Error) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "message", value: any): boolean; + emit(event: "messageerror", error: Error): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "message", listener: (value: any) => void): this; + on(event: "messageerror", listener: (error: Error) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "message", listener: (value: any) => void): this; + once(event: "messageerror", listener: (error: Error) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "message", listener: (value: any) => void): this; + prependListener(event: "messageerror", listener: (error: Error) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "message", listener: (value: any) => void): this; + prependOnceListener(event: "messageerror", listener: (error: Error) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "message", listener: (value: any) => void): this; + removeListener(event: "messageerror", listener: (error: Error) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + + off(event: "close", listener: () => void): this; + off(event: "message", listener: (value: any) => void): this; + off(event: "messageerror", listener: (error: Error) => void): this; + off(event: string | symbol, listener: (...args: any[]) => void): this; + } + + interface WorkerOptions { + /** + * List of arguments which would be stringified and appended to + * `process.argv` in the worker. This is mostly similar to the `workerData` + * but the values will be available on the global `process.argv` as if they + * were passed as CLI options to the script. + */ + argv?: any[]; + env?: NodeJS.Dict | typeof SHARE_ENV; + eval?: boolean; + workerData?: any; + stdin?: boolean; + stdout?: boolean; + stderr?: boolean; + execArgv?: string[]; + resourceLimits?: ResourceLimits; + /** + * Additional data to send in the first worker message. + */ + transferList?: TransferListItem[]; + /** + * @default true + */ + trackUnmanagedFds?: boolean; + } + + interface ResourceLimits { + /** + * The maximum size of a heap space for recently created objects. + */ + maxYoungGenerationSizeMb?: number; + /** + * The maximum size of the main heap in MB. + */ + maxOldGenerationSizeMb?: number; + /** + * The size of a pre-allocated memory range used for generated code. + */ + codeRangeSizeMb?: number; + /** + * The default maximum stack size for the thread. Small values may lead to unusable Worker instances. + * @default 4 + */ + stackSizeMb?: number; + } + + class Worker extends EventEmitter { + readonly stdin: Writable | null; + readonly stdout: Readable; + readonly stderr: Readable; + readonly threadId: number; + readonly resourceLimits?: ResourceLimits; + + /** + * @param filename The path to the Worker’s main script or module. + * Must be either an absolute path or a relative path (i.e. relative to the current working directory) starting with ./ or ../, + * or a WHATWG URL object using file: protocol. If options.eval is true, this is a string containing JavaScript code rather than a path. + */ + constructor(filename: string | URL, options?: WorkerOptions); + + postMessage(value: any, transferList?: ReadonlyArray): void; + ref(): void; + unref(): void; + /** + * Stop all JavaScript execution in the worker thread as soon as possible. + * Returns a Promise for the exit code that is fulfilled when the `exit` event is emitted. + */ + terminate(): Promise; + + /** + * Returns a readable stream for a V8 snapshot of the current state of the Worker. + * See [`v8.getHeapSnapshot()`][] for more details. + * + * If the Worker thread is no longer running, which may occur before the + * [`'exit'` event][] is emitted, the returned `Promise` will be rejected + * immediately with an [`ERR_WORKER_NOT_RUNNING`][] error + */ + getHeapSnapshot(): Promise; + + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "exit", listener: (exitCode: number) => void): this; + addListener(event: "message", listener: (value: any) => void): this; + addListener(event: "messageerror", listener: (error: Error) => void): this; + addListener(event: "online", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "error", err: Error): boolean; + emit(event: "exit", exitCode: number): boolean; + emit(event: "message", value: any): boolean; + emit(event: "messageerror", error: Error): boolean; + emit(event: "online"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "error", listener: (err: Error) => void): this; + on(event: "exit", listener: (exitCode: number) => void): this; + on(event: "message", listener: (value: any) => void): this; + on(event: "messageerror", listener: (error: Error) => void): this; + on(event: "online", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "error", listener: (err: Error) => void): this; + once(event: "exit", listener: (exitCode: number) => void): this; + once(event: "message", listener: (value: any) => void): this; + once(event: "messageerror", listener: (error: Error) => void): this; + once(event: "online", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "exit", listener: (exitCode: number) => void): this; + prependListener(event: "message", listener: (value: any) => void): this; + prependListener(event: "messageerror", listener: (error: Error) => void): this; + prependListener(event: "online", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "exit", listener: (exitCode: number) => void): this; + prependOnceListener(event: "message", listener: (value: any) => void): this; + prependOnceListener(event: "messageerror", listener: (error: Error) => void): this; + prependOnceListener(event: "online", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "exit", listener: (exitCode: number) => void): this; + removeListener(event: "message", listener: (value: any) => void): this; + removeListener(event: "messageerror", listener: (error: Error) => void): this; + removeListener(event: "online", listener: () => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + + off(event: "error", listener: (err: Error) => void): this; + off(event: "exit", listener: (exitCode: number) => void): this; + off(event: "message", listener: (value: any) => void): this; + off(event: "messageerror", listener: (error: Error) => void): this; + off(event: "online", listener: () => void): this; + off(event: string | symbol, listener: (...args: any[]) => void): this; + } + + /** + * Mark an object as not transferable. + * If `object` occurs in the transfer list of a `port.postMessage()` call, it will be ignored. + * + * In particular, this makes sense for objects that can be cloned, rather than transferred, + * and which are used by other objects on the sending side. For example, Node.js marks + * the `ArrayBuffer`s it uses for its Buffer pool with this. + * + * This operation cannot be undone. + */ + function markAsUntransferable(object: object): void; + + /** + * Transfer a `MessagePort` to a different `vm` Context. The original `port` + * object will be rendered unusable, and the returned `MessagePort` instance will + * take its place. + * + * The returned `MessagePort` will be an object in the target context, and will + * inherit from its global `Object` class. Objects passed to the + * `port.onmessage()` listener will also be created in the target context + * and inherit from its global `Object` class. + * + * However, the created `MessagePort` will no longer inherit from + * `EventEmitter`, and only `port.onmessage()` can be used to receive + * events using it. + */ + function moveMessagePortToContext(port: MessagePort, context: Context): MessagePort; + + /** + * Receive a single message from a given `MessagePort`. If no message is available, + * `undefined` is returned, otherwise an object with a single `message` property + * that contains the message payload, corresponding to the oldest message in the + * `MessagePort`’s queue. + */ + function receiveMessageOnPort(port: MessagePort): { message: any } | undefined; +} diff --git a/justdanceonline-main/node_modules/@types/node/zlib.d.ts b/justdanceonline-main/node_modules/@types/node/zlib.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..eafc91b8f2f0ea31376f1cedb3d2db42e26b9870 --- /dev/null +++ b/justdanceonline-main/node_modules/@types/node/zlib.d.ts @@ -0,0 +1,361 @@ +declare module 'zlib' { + import * as stream from 'stream'; + + interface ZlibOptions { + /** + * @default constants.Z_NO_FLUSH + */ + flush?: number; + /** + * @default constants.Z_FINISH + */ + finishFlush?: number; + /** + * @default 16*1024 + */ + chunkSize?: number; + windowBits?: number; + level?: number; // compression only + memLevel?: number; // compression only + strategy?: number; // compression only + dictionary?: NodeJS.ArrayBufferView | ArrayBuffer; // deflate/inflate only, empty dictionary by default + info?: boolean; + maxOutputLength?: number; + } + + interface BrotliOptions { + /** + * @default constants.BROTLI_OPERATION_PROCESS + */ + flush?: number; + /** + * @default constants.BROTLI_OPERATION_FINISH + */ + finishFlush?: number; + /** + * @default 16*1024 + */ + chunkSize?: number; + params?: { + /** + * Each key is a `constants.BROTLI_*` constant. + */ + [key: number]: boolean | number; + }; + maxOutputLength?: number; + } + + interface Zlib { + /** @deprecated Use bytesWritten instead. */ + readonly bytesRead: number; + readonly bytesWritten: number; + shell?: boolean | string; + close(callback?: () => void): void; + flush(kind?: number, callback?: () => void): void; + flush(callback?: () => void): void; + } + + interface ZlibParams { + params(level: number, strategy: number, callback: () => void): void; + } + + interface ZlibReset { + reset(): void; + } + + interface BrotliCompress extends stream.Transform, Zlib { } + interface BrotliDecompress extends stream.Transform, Zlib { } + interface Gzip extends stream.Transform, Zlib { } + interface Gunzip extends stream.Transform, Zlib { } + interface Deflate extends stream.Transform, Zlib, ZlibReset, ZlibParams { } + interface Inflate extends stream.Transform, Zlib, ZlibReset { } + interface DeflateRaw extends stream.Transform, Zlib, ZlibReset, ZlibParams { } + interface InflateRaw extends stream.Transform, Zlib, ZlibReset { } + interface Unzip extends stream.Transform, Zlib { } + + function createBrotliCompress(options?: BrotliOptions): BrotliCompress; + function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress; + function createGzip(options?: ZlibOptions): Gzip; + function createGunzip(options?: ZlibOptions): Gunzip; + function createDeflate(options?: ZlibOptions): Deflate; + function createInflate(options?: ZlibOptions): Inflate; + function createDeflateRaw(options?: ZlibOptions): DeflateRaw; + function createInflateRaw(options?: ZlibOptions): InflateRaw; + function createUnzip(options?: ZlibOptions): Unzip; + + type InputType = string | ArrayBuffer | NodeJS.ArrayBufferView; + + type CompressCallback = (error: Error | null, result: Buffer) => void; + + function brotliCompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void; + function brotliCompress(buf: InputType, callback: CompressCallback): void; + namespace brotliCompress { + function __promisify__(buffer: InputType, options?: BrotliOptions): Promise; + } + + function brotliCompressSync(buf: InputType, options?: BrotliOptions): Buffer; + + function brotliDecompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void; + function brotliDecompress(buf: InputType, callback: CompressCallback): void; + namespace brotliDecompress { + function __promisify__(buffer: InputType, options?: BrotliOptions): Promise; + } + + function brotliDecompressSync(buf: InputType, options?: BrotliOptions): Buffer; + + function deflate(buf: InputType, callback: CompressCallback): void; + function deflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + namespace deflate { + function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; + } + + function deflateSync(buf: InputType, options?: ZlibOptions): Buffer; + + function deflateRaw(buf: InputType, callback: CompressCallback): void; + function deflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + namespace deflateRaw { + function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; + } + + function deflateRawSync(buf: InputType, options?: ZlibOptions): Buffer; + + function gzip(buf: InputType, callback: CompressCallback): void; + function gzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + namespace gzip { + function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; + } + + function gzipSync(buf: InputType, options?: ZlibOptions): Buffer; + + function gunzip(buf: InputType, callback: CompressCallback): void; + function gunzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + namespace gunzip { + function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; + } + + function gunzipSync(buf: InputType, options?: ZlibOptions): Buffer; + + function inflate(buf: InputType, callback: CompressCallback): void; + function inflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + namespace inflate { + function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; + } + + function inflateSync(buf: InputType, options?: ZlibOptions): Buffer; + + function inflateRaw(buf: InputType, callback: CompressCallback): void; + function inflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + namespace inflateRaw { + function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; + } + + function inflateRawSync(buf: InputType, options?: ZlibOptions): Buffer; + + function unzip(buf: InputType, callback: CompressCallback): void; + function unzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + namespace unzip { + function __promisify__(buffer: InputType, options?: ZlibOptions): Promise; + } + + function unzipSync(buf: InputType, options?: ZlibOptions): Buffer; + + namespace constants { + const BROTLI_DECODE: number; + const BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: number; + const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: number; + const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: number; + const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: number; + const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: number; + const BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: number; + const BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: number; + const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: number; + const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: number; + const BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: number; + const BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: number; + const BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: number; + const BROTLI_DECODER_ERROR_FORMAT_DISTANCE: number; + const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: number; + const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: number; + const BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: number; + const BROTLI_DECODER_ERROR_FORMAT_PADDING_1: number; + const BROTLI_DECODER_ERROR_FORMAT_PADDING_2: number; + const BROTLI_DECODER_ERROR_FORMAT_RESERVED: number; + const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: number; + const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: number; + const BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: number; + const BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: number; + const BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: number; + const BROTLI_DECODER_ERROR_UNREACHABLE: number; + const BROTLI_DECODER_NEEDS_MORE_INPUT: number; + const BROTLI_DECODER_NEEDS_MORE_OUTPUT: number; + const BROTLI_DECODER_NO_ERROR: number; + const BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: number; + const BROTLI_DECODER_PARAM_LARGE_WINDOW: number; + const BROTLI_DECODER_RESULT_ERROR: number; + const BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: number; + const BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: number; + const BROTLI_DECODER_RESULT_SUCCESS: number; + const BROTLI_DECODER_SUCCESS: number; + + const BROTLI_DEFAULT_MODE: number; + const BROTLI_DEFAULT_QUALITY: number; + const BROTLI_DEFAULT_WINDOW: number; + const BROTLI_ENCODE: number; + const BROTLI_LARGE_MAX_WINDOW_BITS: number; + const BROTLI_MAX_INPUT_BLOCK_BITS: number; + const BROTLI_MAX_QUALITY: number; + const BROTLI_MAX_WINDOW_BITS: number; + const BROTLI_MIN_INPUT_BLOCK_BITS: number; + const BROTLI_MIN_QUALITY: number; + const BROTLI_MIN_WINDOW_BITS: number; + + const BROTLI_MODE_FONT: number; + const BROTLI_MODE_GENERIC: number; + const BROTLI_MODE_TEXT: number; + + const BROTLI_OPERATION_EMIT_METADATA: number; + const BROTLI_OPERATION_FINISH: number; + const BROTLI_OPERATION_FLUSH: number; + const BROTLI_OPERATION_PROCESS: number; + + const BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: number; + const BROTLI_PARAM_LARGE_WINDOW: number; + const BROTLI_PARAM_LGBLOCK: number; + const BROTLI_PARAM_LGWIN: number; + const BROTLI_PARAM_MODE: number; + const BROTLI_PARAM_NDIRECT: number; + const BROTLI_PARAM_NPOSTFIX: number; + const BROTLI_PARAM_QUALITY: number; + const BROTLI_PARAM_SIZE_HINT: number; + + const DEFLATE: number; + const DEFLATERAW: number; + const GUNZIP: number; + const GZIP: number; + const INFLATE: number; + const INFLATERAW: number; + const UNZIP: number; + + // Allowed flush values. + const Z_NO_FLUSH: number; + const Z_PARTIAL_FLUSH: number; + const Z_SYNC_FLUSH: number; + const Z_FULL_FLUSH: number; + const Z_FINISH: number; + const Z_BLOCK: number; + const Z_TREES: number; + + // Return codes for the compression/decompression functions. + // Negative values are errors, positive values are used for special but normal events. + const Z_OK: number; + const Z_STREAM_END: number; + const Z_NEED_DICT: number; + const Z_ERRNO: number; + const Z_STREAM_ERROR: number; + const Z_DATA_ERROR: number; + const Z_MEM_ERROR: number; + const Z_BUF_ERROR: number; + const Z_VERSION_ERROR: number; + + // Compression levels. + const Z_NO_COMPRESSION: number; + const Z_BEST_SPEED: number; + const Z_BEST_COMPRESSION: number; + const Z_DEFAULT_COMPRESSION: number; + + // Compression strategy. + const Z_FILTERED: number; + const Z_HUFFMAN_ONLY: number; + const Z_RLE: number; + const Z_FIXED: number; + const Z_DEFAULT_STRATEGY: number; + + const Z_DEFAULT_WINDOWBITS: number; + const Z_MIN_WINDOWBITS: number; + const Z_MAX_WINDOWBITS: number; + + const Z_MIN_CHUNK: number; + const Z_MAX_CHUNK: number; + const Z_DEFAULT_CHUNK: number; + + const Z_MIN_MEMLEVEL: number; + const Z_MAX_MEMLEVEL: number; + const Z_DEFAULT_MEMLEVEL: number; + + const Z_MIN_LEVEL: number; + const Z_MAX_LEVEL: number; + const Z_DEFAULT_LEVEL: number; + + const ZLIB_VERNUM: number; + } + + // Allowed flush values. + /** @deprecated Use `constants.Z_NO_FLUSH` */ + const Z_NO_FLUSH: number; + /** @deprecated Use `constants.Z_PARTIAL_FLUSH` */ + const Z_PARTIAL_FLUSH: number; + /** @deprecated Use `constants.Z_SYNC_FLUSH` */ + const Z_SYNC_FLUSH: number; + /** @deprecated Use `constants.Z_FULL_FLUSH` */ + const Z_FULL_FLUSH: number; + /** @deprecated Use `constants.Z_FINISH` */ + const Z_FINISH: number; + /** @deprecated Use `constants.Z_BLOCK` */ + const Z_BLOCK: number; + /** @deprecated Use `constants.Z_TREES` */ + const Z_TREES: number; + + // Return codes for the compression/decompression functions. + // Negative values are errors, positive values are used for special but normal events. + /** @deprecated Use `constants.Z_OK` */ + const Z_OK: number; + /** @deprecated Use `constants.Z_STREAM_END` */ + const Z_STREAM_END: number; + /** @deprecated Use `constants.Z_NEED_DICT` */ + const Z_NEED_DICT: number; + /** @deprecated Use `constants.Z_ERRNO` */ + const Z_ERRNO: number; + /** @deprecated Use `constants.Z_STREAM_ERROR` */ + const Z_STREAM_ERROR: number; + /** @deprecated Use `constants.Z_DATA_ERROR` */ + const Z_DATA_ERROR: number; + /** @deprecated Use `constants.Z_MEM_ERROR` */ + const Z_MEM_ERROR: number; + /** @deprecated Use `constants.Z_BUF_ERROR` */ + const Z_BUF_ERROR: number; + /** @deprecated Use `constants.Z_VERSION_ERROR` */ + const Z_VERSION_ERROR: number; + + // Compression levels. + /** @deprecated Use `constants.Z_NO_COMPRESSION` */ + const Z_NO_COMPRESSION: number; + /** @deprecated Use `constants.Z_BEST_SPEED` */ + const Z_BEST_SPEED: number; + /** @deprecated Use `constants.Z_BEST_COMPRESSION` */ + const Z_BEST_COMPRESSION: number; + /** @deprecated Use `constants.Z_DEFAULT_COMPRESSION` */ + const Z_DEFAULT_COMPRESSION: number; + + // Compression strategy. + /** @deprecated Use `constants.Z_FILTERED` */ + const Z_FILTERED: number; + /** @deprecated Use `constants.Z_HUFFMAN_ONLY` */ + const Z_HUFFMAN_ONLY: number; + /** @deprecated Use `constants.Z_RLE` */ + const Z_RLE: number; + /** @deprecated Use `constants.Z_FIXED` */ + const Z_FIXED: number; + /** @deprecated Use `constants.Z_DEFAULT_STRATEGY` */ + const Z_DEFAULT_STRATEGY: number; + + /** @deprecated */ + const Z_BINARY: number; + /** @deprecated */ + const Z_TEXT: number; + /** @deprecated */ + const Z_ASCII: number; + /** @deprecated */ + const Z_UNKNOWN: number; + /** @deprecated */ + const Z_DEFLATED: number; +} diff --git a/justdanceonline-main/node_modules/accept-language-parser/.jshintrc b/justdanceonline-main/node_modules/accept-language-parser/.jshintrc new file mode 100644 index 0000000000000000000000000000000000000000..05c643f1bf168aeb7b1f4b0b9b6120f477b0648b --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/.jshintrc @@ -0,0 +1,17 @@ +{ + "curly": true, + "eqeqeq": true, + "immed": true, + "latedef": true, + "newcap": true, + "noarg": true, + "sub": true, + "undef": true, + "boss": true, + "eqnull": true, + "node": true, + "predef": [ + "describe", + "it" + ] +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/accept-language-parser/.npmignore b/justdanceonline-main/node_modules/accept-language-parser/.npmignore new file mode 100644 index 0000000000000000000000000000000000000000..82c7e5d6b36ad64829eb31af395d8688e25ee5c2 --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/.npmignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# Deployed apps should consider commenting this line out: +# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git +node_modules + +.idea diff --git a/justdanceonline-main/node_modules/accept-language-parser/.travis.yml b/justdanceonline-main/node_modules/accept-language-parser/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..8ea9c4a75da99cc9476488d88e42c5a583606337 --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/.travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - "4" + - "5" + - "6" + - "7" diff --git a/justdanceonline-main/node_modules/accept-language-parser/LICENSE b/justdanceonline-main/node_modules/accept-language-parser/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..08df733fc3c9b3a8781e179983790eb368d4abdb --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013-2017 Opentable + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/accept-language-parser/README.md b/justdanceonline-main/node_modules/accept-language-parser/README.md new file mode 100644 index 0000000000000000000000000000000000000000..269ab3e9ba1a9018f5291944b31d883c78638575 --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/README.md @@ -0,0 +1,86 @@ +accept-language-parser +====================== + +[![Build Status](https://travis-ci.org/opentable/accept-language-parser.png?branch=master)](https://travis-ci.org/opentable/accept-language-parser) [![NPM version](https://badge.fury.io/js/accept-language-parser.png)](http://badge.fury.io/js/accept-language-parser) ![Dependencies](https://david-dm.org/opentable/accept-language-parser.png) + +Parses the accept-language header from an HTTP request and produces an array of language objects sorted by quality. + + +### Installation: + +``` +npm install accept-language-parser +``` + +### API + +#### parser.parse(acceptLanguageHeader) + +``` +var parser = require('accept-language-parser'); + +var languages = parser.parse('en-GB,en;q=0.8'); + +console.log(languages); +``` + +Output will be: + +``` +[ + { + code: "en", + region: "GB", + quality: 1.0 + }, + { + code: "en", + region: undefined, + quality: 0.8 + } +]; +``` + +Output is always sorted in quality order from highest -> lowest. as per the http spec, omitting the quality value implies 1.0. + +#### parser.pick(supportedLangugagesArray, acceptLanguageHeader, options = {}) + +*Alias*: parser.pick(supportedLanguagesArray, parsedAcceptLanguageHeader) + +``` +var parser = require('accept-language-parser'); + +var language = parser.pick(['fr-CA', 'fr-FR', 'fr'], 'en-GB,en-US;q=0.9,fr-CA;q=0.7,en;q=0.8'); + +console.log(language); +``` + +Output will be: + +``` +"fr-CA" +``` + +The `options` currently supports only `loose` option that allows partial matching on supported languages. For example: + + +``` +parser.pick(['fr', 'en'], 'en-GB,en-US;q=0.9,fr-CA;q=0.7,en;q=0.8'); +``` + +Would return: + +``` +"fr" +``` + +In loose mode the order of `supportedLanguagesArray` matters, as it is the first partially matching language that is returned. It means that if you want to pick more specific langauge first, you should list it first as well, for example: `['fr-CA', 'fr']`. + +### Running test +``` +npm install +npm test +``` + +### License +MIT diff --git a/justdanceonline-main/node_modules/accept-language-parser/index.js b/justdanceonline-main/node_modules/accept-language-parser/index.js new file mode 100644 index 0000000000000000000000000000000000000000..5a9c186f19ffcbd0f76bdc6ce8d521a7d70742c3 --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/index.js @@ -0,0 +1,74 @@ +var regex = /((([a-zA-Z]+(-[a-zA-Z0-9]+){0,2})|\*)(;q=[0-1](\.[0-9]+)?)?)*/g; + +var isString = function(s){ + return typeof(s) === 'string'; +}; + +function parse(al){ + var strings = (al || "").match(regex); + return strings.map(function(m){ + if(!m){ + return; + } + + var bits = m.split(';'); + var ietf = bits[0].split('-'); + var hasScript = ietf.length === 3; + + return { + code: ietf[0], + script: hasScript ? ietf[1] : null, + region: hasScript ? ietf[2] : ietf[1], + quality: bits[1] ? parseFloat(bits[1].split('=')[1]) : 1.0 + }; + }).filter(function(r){ + return r; + }).sort(function(a, b){ + return b.quality - a.quality; + }); +} + +function pick(supportedLanguages, acceptLanguage, options){ + options = options || {}; + + if (!supportedLanguages || !supportedLanguages.length || !acceptLanguage) { + return null; + } + + if(isString(acceptLanguage)){ + acceptLanguage = parse(acceptLanguage); + } + + var supported = supportedLanguages.map(function(support){ + var bits = support.split('-'); + var hasScript = bits.length === 3; + + return { + code: bits[0], + script: hasScript ? bits[1] : null, + region: hasScript ? bits[2] : bits[1] + }; + }); + + for (var i = 0; i < acceptLanguage.length; i++) { + var lang = acceptLanguage[i]; + var langCode = lang.code.toLowerCase(); + var langRegion = lang.region ? lang.region.toLowerCase() : lang.region; + var langScript = lang.script ? lang.script.toLowerCase() : lang.script; + for (var j = 0; j < supported.length; j++) { + var supportedCode = supported[j].code.toLowerCase(); + var supportedScript = supported[j].script ? supported[j].script.toLowerCase() : supported[j].script; + var supportedRegion = supported[j].region ? supported[j].region.toLowerCase() : supported[j].region; + if (langCode === supportedCode && + (options.loose || !langScript || langScript === supportedScript) && + (options.loose || !langRegion || langRegion === supportedRegion)) { + return supportedLanguages[j]; + } + } + } + + return null; +} + +module.exports.parse = parse; +module.exports.pick = pick; diff --git a/justdanceonline-main/node_modules/accept-language-parser/package.json b/justdanceonline-main/node_modules/accept-language-parser/package.json new file mode 100644 index 0000000000000000000000000000000000000000..92a5fbeb7b45c80b5cb7303117fa77e164652154 --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/package.json @@ -0,0 +1,31 @@ +{ + "name": "accept-language-parser", + "version": "1.5.0", + "description": "Parse the accept-language header from a HTTP request", + "main": "index.js", + "scripts": { + "mocha": "mocha tests/", + "jshint": "jshint index.js tests/", + "test": "npm run jshint && npm run mocha" + }, + "repository": { + "type": "git", + "url": "git://github.com/opentable/accept-language-parser.git" + }, + "keywords": [ + "accept-language", + "i18n", + "parser" + ], + "author": "Andy Royle ", + "license": "MIT", + "bugs": { + "url": "https://github.com/opentable/accept-language-parser/issues" + }, + "homepage": "https://github.com/opentable/accept-language-parser", + "devDependencies": { + "jshint": "^2.9.4", + "mocha": "^3.4.0", + "should": "^11.0.0" + } +} diff --git a/justdanceonline-main/node_modules/accept-language-parser/tests/tests.js b/justdanceonline-main/node_modules/accept-language-parser/tests/tests.js new file mode 100644 index 0000000000000000000000000000000000000000..34c0f097584125a34fdf36157d989d1981be1af7 --- /dev/null +++ b/justdanceonline-main/node_modules/accept-language-parser/tests/tests.js @@ -0,0 +1,162 @@ +var parser = require("../index.js"); +var assert = require("assert"); +var should = require("should"); + +var assertResult = function(expected, actual){ + actual.code.should.eql(expected.code); + + if(actual.script || expected.script){ + actual.script.should.eql(expected.script); + } + + if(actual.region || expected.region){ + actual.region.should.eql(expected.region); + } + actual.quality.should.eql(expected.quality); +}; + +describe('accept-language#parse()', function(){ + it('should correctly parse the language with quality', function(){ + var result = parser.parse('en-GB;q=0.8'); + assertResult({ code: 'en', region: 'GB', quality: 0.8}, result[0]); + }); + + it('should correctly parse the language without quality (default 1)', function(){ + var result = parser.parse('en-GB'); + assertResult({ code: 'en', region: 'GB', quality: 1.0}, result[0]); + }); + + it('should correctly parse the language without region', function(){ + var result = parser.parse('en;q=0.8'); + assertResult({ code: 'en', quality: 0.8}, result[0]); + }); + + // This needs to be changed to preserve the full code. + it('should ignore extra characters in the region code', function(){ + var result = parser.parse('az-AZ'); + assertResult({ code: 'az', region: 'AZ', quality: 1.0}, result[0]); + }); + + it('should correctly parse a multi-language set', function(){ + var result = parser.parse('fr-CA,fr;q=0.8'); + assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); + assertResult({ code: 'fr', quality: 0.8}, result[1]); + }); + + it('should correctly parse a wildcard', function(){ + var result = parser.parse('fr-CA,*;q=0.8'); + assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); + assertResult({ code: '*', quality: 0.8}, result[1]); + }); + + it('should correctly parse a region with numbers', function(){ + var result = parser.parse('fr-150'); + assertResult({ code: 'fr', region: '150', quality: 1.0}, result[0]); + }); + + it('should correctly parse complex set', function(){ + var result = parser.parse('fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); + assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); + assertResult({ code: 'fr', quality: 0.8}, result[1]); + assertResult({ code: 'en', region: 'US', quality: 0.6}, result[2]); + assertResult({ code: 'en', quality: 0.4}, result[3]); + assertResult({ code: '*', quality: 0.1}, result[4]); + }); + + it('should cope with random whitespace', function(){ + var result = parser.parse('fr-CA, fr;q=0.8, en-US;q=0.6,en;q=0.4, *;q=0.1'); + assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); + assertResult({ code: 'fr', quality: 0.8}, result[1]); + assertResult({ code: 'en', region: 'US', quality: 0.6}, result[2]); + assertResult({ code: 'en', quality: 0.4}, result[3]); + assertResult({ code: '*', quality: 0.1}, result[4]); + }); + + it('should sort based on quality value', function(){ + var result = parser.parse('fr-CA,fr;q=0.2,en-US;q=0.6,en;q=0.4,*;q=0.5'); + assertResult({ code: 'fr', region: 'CA', quality: 1.0}, result[0]); + assertResult({ code: 'en', region: 'US', quality: 0.6}, result[1]); + assertResult({ code: '*', quality: 0.5}, result[2]); + assertResult({ code: 'en', quality: 0.4}, result[3]); + assertResult({ code: 'fr', quality: 0.2}, result[4]); + }); + + it('should correctly identify script', function(){ + var result = parser.parse('zh-Hant-cn'); + assertResult({ code: 'zh', script: 'Hant', region: 'cn', quality: 1.0}, result[0]); + }); + + it('should cope with script and a quality value', function(){ + var result = parser.parse('zh-Hant-cn;q=1, zh-cn;q=0.6, zh;q=0.4'); + assertResult({ code: 'zh', script: 'Hant', region: 'cn', quality: 1.0}, result[0]); + assertResult({ code: 'zh', region: 'cn', quality: 0.6}, result[1]); + assertResult({ code: 'zh', quality: 0.4}, result[2]); + }); +}); + +describe('accept-language#pick()', function(){ + it('should pick a specific regional language', function(){ + var result = parser.pick(['en-US', 'fr-CA'], 'fr-CA,fr;q=0.2,en-US;q=0.6,en;q=0.4,*;q=0.5'); + assert.equal(result, 'fr-CA'); + }); + + it('should pick a specific regional language when accept-language is parsed', function(){ + var result = parser.pick(['en-US', 'fr-CA'], parser.parse('fr-CA,fr;q=0.2,en-US;q=0.6,en;q=0.4,*;q=0.5')); + assert.equal(result, 'fr-CA'); + }); + + it('should pick a specific script (if specified)', function(){ + var result = parser.pick(['zh-Hant-cn', 'zh-cn'], 'zh-Hant-cn,zh-cn;q=0.6,zh;q=0.4'); + assert.equal(result, 'zh-Hant-cn'); + }); + + it('should pick proper language regardless of casing', function(){ + var result = parser.pick(['eN-Us', 'Fr-cA'], 'fR-Ca,fr;q=0.2,en-US;q=0.6,en;q=0.4,*;q=0.5'); + assert.equal(result.toLowerCase(), 'fr-ca'); + }); + + it('should pick a specific language', function(){ + var result = parser.pick(['en', 'fr-CA'], 'ja-JP,ja;1=0.5,en;q=0.2'); + assert.equal(result, 'en'); + }); + + it('should pick a language when culture is not specified', function() { + var result = parser.pick(['en-us', 'it-IT'], 'pl-PL,en'); + assert.equal(result, 'en-us'); + }); + + it('should return null if no matches are found', function(){ + var result = parser.pick(['ko-KR'], 'fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); + assert.equal(result, null); + }); + + it('should return null if support no languages', function(){ + var result = parser.pick([], 'fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); + assert.equal(result, null); + }); + + it('should return null if invalid support', function(){ + var result = parser.pick(undefined, 'fr-CA,fr;q=0.8,en-US;q=0.6,en;q=0.4,*;q=0.1'); + assert.equal(result, null); + }); + + it('should return null if invalid accept-language', function(){ + var result = parser.pick(['en']); + assert.equal(result, null); + }); + + it('by default should be strict when selecting language', function(){ + var result = parser.pick(['en', 'pl'], 'en-US;q=0.6'); + assert.equal(result, null); + }); + + it('can select language loosely with an option', function(){ + var result = parser.pick(['en', 'pl'], 'en-US;q=0.6', { loose: true }); + assert.equal(result, 'en'); + }); + + it('selects most matching language in loose mode', function(){ + var result = parser.pick(['en-US', 'en', 'pl'], 'en-US;q=0.6', { loose: true }); + assert.equal(result, 'en-US'); + }); +}); diff --git a/justdanceonline-main/node_modules/accepts/HISTORY.md b/justdanceonline-main/node_modules/accepts/HISTORY.md new file mode 100644 index 0000000000000000000000000000000000000000..0bf041781dc008048b9d2c794c81522163f19b43 --- /dev/null +++ b/justdanceonline-main/node_modules/accepts/HISTORY.md @@ -0,0 +1,236 @@ +1.3.7 / 2019-04-29 +================== + + * deps: negotiator@0.6.2 + - Fix sorting charset, encoding, and language with extra parameters + +1.3.6 / 2019-04-28 +================== + + * deps: mime-types@~2.1.24 + - deps: mime-db@~1.40.0 + +1.3.5 / 2018-02-28 +================== + + * deps: mime-types@~2.1.18 + - deps: mime-db@~1.33.0 + +1.3.4 / 2017-08-22 +================== + + * deps: mime-types@~2.1.16 + - deps: mime-db@~1.29.0 + +1.3.3 / 2016-05-02 +================== + + * deps: mime-types@~2.1.11 + - deps: mime-db@~1.23.0 + * deps: negotiator@0.6.1 + - perf: improve `Accept` parsing speed + - perf: improve `Accept-Charset` parsing speed + - perf: improve `Accept-Encoding` parsing speed + - perf: improve `Accept-Language` parsing speed + +1.3.2 / 2016-03-08 +================== + + * deps: mime-types@~2.1.10 + - Fix extension of `application/dash+xml` + - Update primary extension for `audio/mp4` + - deps: mime-db@~1.22.0 + +1.3.1 / 2016-01-19 +================== + + * deps: mime-types@~2.1.9 + - deps: mime-db@~1.21.0 + +1.3.0 / 2015-09-29 +================== + + * deps: mime-types@~2.1.7 + - deps: mime-db@~1.19.0 + * deps: negotiator@0.6.0 + - Fix including type extensions in parameters in `Accept` parsing + - Fix parsing `Accept` parameters with quoted equals + - Fix parsing `Accept` parameters with quoted semicolons + - Lazy-load modules from main entry point + - perf: delay type concatenation until needed + - perf: enable strict mode + - perf: hoist regular expressions + - perf: remove closures getting spec properties + - perf: remove a closure from media type parsing + - perf: remove property delete from media type parsing + +1.2.13 / 2015-09-06 +=================== + + * deps: mime-types@~2.1.6 + - deps: mime-db@~1.18.0 + +1.2.12 / 2015-07-30 +=================== + + * deps: mime-types@~2.1.4 + - deps: mime-db@~1.16.0 + +1.2.11 / 2015-07-16 +=================== + + * deps: mime-types@~2.1.3 + - deps: mime-db@~1.15.0 + +1.2.10 / 2015-07-01 +=================== + + * deps: mime-types@~2.1.2 + - deps: mime-db@~1.14.0 + +1.2.9 / 2015-06-08 +================== + + * deps: mime-types@~2.1.1 + - perf: fix deopt during mapping + +1.2.8 / 2015-06-07 +================== + + * deps: mime-types@~2.1.0 + - deps: mime-db@~1.13.0 + * perf: avoid argument reassignment & argument slice + * perf: avoid negotiator recursive construction + * perf: enable strict mode + * perf: remove unnecessary bitwise operator + +1.2.7 / 2015-05-10 +================== + + * deps: negotiator@0.5.3 + - Fix media type parameter matching to be case-insensitive + +1.2.6 / 2015-05-07 +================== + + * deps: mime-types@~2.0.11 + - deps: mime-db@~1.9.1 + * deps: negotiator@0.5.2 + - Fix comparing media types with quoted values + - Fix splitting media types with quoted commas + +1.2.5 / 2015-03-13 +================== + + * deps: mime-types@~2.0.10 + - deps: mime-db@~1.8.0 + +1.2.4 / 2015-02-14 +================== + + * Support Node.js 0.6 + * deps: mime-types@~2.0.9 + - deps: mime-db@~1.7.0 + * deps: negotiator@0.5.1 + - Fix preference sorting to be stable for long acceptable lists + +1.2.3 / 2015-01-31 +================== + + * deps: mime-types@~2.0.8 + - deps: mime-db@~1.6.0 + +1.2.2 / 2014-12-30 +================== + + * deps: mime-types@~2.0.7 + - deps: mime-db@~1.5.0 + +1.2.1 / 2014-12-30 +================== + + * deps: mime-types@~2.0.5 + - deps: mime-db@~1.3.1 + +1.2.0 / 2014-12-19 +================== + + * deps: negotiator@0.5.0 + - Fix list return order when large accepted list + - Fix missing identity encoding when q=0 exists + - Remove dynamic building of Negotiator class + +1.1.4 / 2014-12-10 +================== + + * deps: mime-types@~2.0.4 + - deps: mime-db@~1.3.0 + +1.1.3 / 2014-11-09 +================== + + * deps: mime-types@~2.0.3 + - deps: mime-db@~1.2.0 + +1.1.2 / 2014-10-14 +================== + + * deps: negotiator@0.4.9 + - Fix error when media type has invalid parameter + +1.1.1 / 2014-09-28 +================== + + * deps: mime-types@~2.0.2 + - deps: mime-db@~1.1.0 + * deps: negotiator@0.4.8 + - Fix all negotiations to be case-insensitive + - Stable sort preferences of same quality according to client order + +1.1.0 / 2014-09-02 +================== + + * update `mime-types` + +1.0.7 / 2014-07-04 +================== + + * Fix wrong type returned from `type` when match after unknown extension + +1.0.6 / 2014-06-24 +================== + + * deps: negotiator@0.4.7 + +1.0.5 / 2014-06-20 +================== + + * fix crash when unknown extension given + +1.0.4 / 2014-06-19 +================== + + * use `mime-types` + +1.0.3 / 2014-06-11 +================== + + * deps: negotiator@0.4.6 + - Order by specificity when quality is the same + +1.0.2 / 2014-05-29 +================== + + * Fix interpretation when header not in request + * deps: pin negotiator@0.4.5 + +1.0.1 / 2014-01-18 +================== + + * Identity encoding isn't always acceptable + * deps: negotiator@~0.4.0 + +1.0.0 / 2013-12-27 +================== + + * Genesis diff --git a/justdanceonline-main/node_modules/accepts/LICENSE b/justdanceonline-main/node_modules/accepts/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..06166077be4d1f620d89b9eb33c76d89e75857da --- /dev/null +++ b/justdanceonline-main/node_modules/accepts/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/accepts/README.md b/justdanceonline-main/node_modules/accepts/README.md new file mode 100644 index 0000000000000000000000000000000000000000..66a2f5400f808bfea11ce6f1e24c2b61e0426854 --- /dev/null +++ b/justdanceonline-main/node_modules/accepts/README.md @@ -0,0 +1,142 @@ +# accepts + +[![NPM Version][npm-version-image]][npm-url] +[![NPM Downloads][npm-downloads-image]][npm-url] +[![Node.js Version][node-version-image]][node-version-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). +Extracted from [koa](https://www.npmjs.com/package/koa) for general use. + +In addition to negotiator, it allows: + +- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` + as well as `('text/html', 'application/json')`. +- Allows type shorthands such as `json`. +- Returns `false` when no types match +- Treats non-existent headers as `*` + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```sh +$ npm install accepts +``` + +## API + + + +```js +var accepts = require('accepts') +``` + +### accepts(req) + +Create a new `Accepts` object for the given `req`. + +#### .charset(charsets) + +Return the first accepted charset. If nothing in `charsets` is accepted, +then `false` is returned. + +#### .charsets() + +Return the charsets that the request accepts, in the order of the client's +preference (most preferred first). + +#### .encoding(encodings) + +Return the first accepted encoding. If nothing in `encodings` is accepted, +then `false` is returned. + +#### .encodings() + +Return the encodings that the request accepts, in the order of the client's +preference (most preferred first). + +#### .language(languages) + +Return the first accepted language. If nothing in `languages` is accepted, +then `false` is returned. + +#### .languages() + +Return the languages that the request accepts, in the order of the client's +preference (most preferred first). + +#### .type(types) + +Return the first accepted type (and it is returned as the same text as what +appears in the `types` array). If nothing in `types` is accepted, then `false` +is returned. + +The `types` array can contain full MIME types or file extensions. Any value +that is not a full MIME types is passed to `require('mime-types').lookup`. + +#### .types() + +Return the types that the request accepts, in the order of the client's +preference (most preferred first). + +## Examples + +### Simple type negotiation + +This simple example shows how to use `accepts` to return a different typed +respond body based on what the client wants to accept. The server lists it's +preferences in order and will get back the best match between the client and +server. + +```js +var accepts = require('accepts') +var http = require('http') + +function app (req, res) { + var accept = accepts(req) + + // the order of this list is significant; should be server preferred order + switch (accept.type(['json', 'html'])) { + case 'json': + res.setHeader('Content-Type', 'application/json') + res.write('{"hello":"world!"}') + break + case 'html': + res.setHeader('Content-Type', 'text/html') + res.write('hello, world!') + break + default: + // the fallback is text/plain, so no need to specify it above + res.setHeader('Content-Type', 'text/plain') + res.write('hello, world!') + break + } + + res.end() +} + +http.createServer(app).listen(3000) +``` + +You can test this out with the cURL program: +```sh +curl -I -H'Accept: text/html' http://localhost:3000/ +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master +[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master +[node-version-image]: https://badgen.net/npm/node/accepts +[node-version-url]: https://nodejs.org/en/download +[npm-downloads-image]: https://badgen.net/npm/dm/accepts +[npm-url]: https://npmjs.org/package/accepts +[npm-version-image]: https://badgen.net/npm/v/accepts +[travis-image]: https://badgen.net/travis/jshttp/accepts/master +[travis-url]: https://travis-ci.org/jshttp/accepts diff --git a/justdanceonline-main/node_modules/accepts/index.js b/justdanceonline-main/node_modules/accepts/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e9b2f63fb16f8ecdeb16c8eced302612794ccf65 --- /dev/null +++ b/justdanceonline-main/node_modules/accepts/index.js @@ -0,0 +1,238 @@ +/*! + * accepts + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var Negotiator = require('negotiator') +var mime = require('mime-types') + +/** + * Module exports. + * @public + */ + +module.exports = Accepts + +/** + * Create a new Accepts object for the given req. + * + * @param {object} req + * @public + */ + +function Accepts (req) { + if (!(this instanceof Accepts)) { + return new Accepts(req) + } + + this.headers = req.headers + this.negotiator = new Negotiator(req) +} + +/** + * Check if the given `type(s)` is acceptable, returning + * the best match when true, otherwise `undefined`, in which + * case you should respond with 406 "Not Acceptable". + * + * The `type` value may be a single mime type string + * such as "application/json", the extension name + * such as "json" or an array `["json", "html", "text/plain"]`. When a list + * or array is given the _best_ match, if any is returned. + * + * Examples: + * + * // Accept: text/html + * this.types('html'); + * // => "html" + * + * // Accept: text/*, application/json + * this.types('html'); + * // => "html" + * this.types('text/html'); + * // => "text/html" + * this.types('json', 'text'); + * // => "json" + * this.types('application/json'); + * // => "application/json" + * + * // Accept: text/*, application/json + * this.types('image/png'); + * this.types('png'); + * // => undefined + * + * // Accept: text/*;q=.5, application/json + * this.types(['html', 'json']); + * this.types('html', 'json'); + * // => "json" + * + * @param {String|Array} types... + * @return {String|Array|Boolean} + * @public + */ + +Accepts.prototype.type = +Accepts.prototype.types = function (types_) { + var types = types_ + + // support flattened arguments + if (types && !Array.isArray(types)) { + types = new Array(arguments.length) + for (var i = 0; i < types.length; i++) { + types[i] = arguments[i] + } + } + + // no types, return all requested types + if (!types || types.length === 0) { + return this.negotiator.mediaTypes() + } + + // no accept header, return first given type + if (!this.headers.accept) { + return types[0] + } + + var mimes = types.map(extToMime) + var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) + var first = accepts[0] + + return first + ? types[mimes.indexOf(first)] + : false +} + +/** + * Return accepted encodings or best fit based on `encodings`. + * + * Given `Accept-Encoding: gzip, deflate` + * an array sorted by quality is returned: + * + * ['gzip', 'deflate'] + * + * @param {String|Array} encodings... + * @return {String|Array} + * @public + */ + +Accepts.prototype.encoding = +Accepts.prototype.encodings = function (encodings_) { + var encodings = encodings_ + + // support flattened arguments + if (encodings && !Array.isArray(encodings)) { + encodings = new Array(arguments.length) + for (var i = 0; i < encodings.length; i++) { + encodings[i] = arguments[i] + } + } + + // no encodings, return all requested encodings + if (!encodings || encodings.length === 0) { + return this.negotiator.encodings() + } + + return this.negotiator.encodings(encodings)[0] || false +} + +/** + * Return accepted charsets or best fit based on `charsets`. + * + * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` + * an array sorted by quality is returned: + * + * ['utf-8', 'utf-7', 'iso-8859-1'] + * + * @param {String|Array} charsets... + * @return {String|Array} + * @public + */ + +Accepts.prototype.charset = +Accepts.prototype.charsets = function (charsets_) { + var charsets = charsets_ + + // support flattened arguments + if (charsets && !Array.isArray(charsets)) { + charsets = new Array(arguments.length) + for (var i = 0; i < charsets.length; i++) { + charsets[i] = arguments[i] + } + } + + // no charsets, return all requested charsets + if (!charsets || charsets.length === 0) { + return this.negotiator.charsets() + } + + return this.negotiator.charsets(charsets)[0] || false +} + +/** + * Return accepted languages or best fit based on `langs`. + * + * Given `Accept-Language: en;q=0.8, es, pt` + * an array sorted by quality is returned: + * + * ['es', 'pt', 'en'] + * + * @param {String|Array} langs... + * @return {Array|String} + * @public + */ + +Accepts.prototype.lang = +Accepts.prototype.langs = +Accepts.prototype.language = +Accepts.prototype.languages = function (languages_) { + var languages = languages_ + + // support flattened arguments + if (languages && !Array.isArray(languages)) { + languages = new Array(arguments.length) + for (var i = 0; i < languages.length; i++) { + languages[i] = arguments[i] + } + } + + // no languages, return all requested languages + if (!languages || languages.length === 0) { + return this.negotiator.languages() + } + + return this.negotiator.languages(languages)[0] || false +} + +/** + * Convert extnames to mime. + * + * @param {String} type + * @return {String} + * @private + */ + +function extToMime (type) { + return type.indexOf('/') === -1 + ? mime.lookup(type) + : type +} + +/** + * Check if mime is valid. + * + * @param {String} type + * @return {String} + * @private + */ + +function validMime (type) { + return typeof type === 'string' +} diff --git a/justdanceonline-main/node_modules/accepts/package.json b/justdanceonline-main/node_modules/accepts/package.json new file mode 100644 index 0000000000000000000000000000000000000000..bc750cf80f9fd94789b2c9af5af5c63aeac25e49 --- /dev/null +++ b/justdanceonline-main/node_modules/accepts/package.json @@ -0,0 +1,47 @@ +{ + "name": "accepts", + "description": "Higher-level content negotiation", + "version": "1.3.7", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "jshttp/accepts", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "devDependencies": { + "deep-equal": "1.0.1", + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "mocha": "6.1.4", + "nyc": "14.0.0" + }, + "files": [ + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.6" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --reporter spec --check-leaks --bail test/", + "test-cov": "nyc --reporter=html --reporter=text npm test", + "test-travis": "nyc --reporter=text npm test" + }, + "keywords": [ + "content", + "negotiation", + "accept", + "accepts" + ] +} diff --git a/justdanceonline-main/node_modules/ansi-styles/index.d.ts b/justdanceonline-main/node_modules/ansi-styles/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..44a907e580f1055a36d44111fda9463ed1cd2d26 --- /dev/null +++ b/justdanceonline-main/node_modules/ansi-styles/index.d.ts @@ -0,0 +1,345 @@ +declare type CSSColor = + | 'aliceblue' + | 'antiquewhite' + | 'aqua' + | 'aquamarine' + | 'azure' + | 'beige' + | 'bisque' + | 'black' + | 'blanchedalmond' + | 'blue' + | 'blueviolet' + | 'brown' + | 'burlywood' + | 'cadetblue' + | 'chartreuse' + | 'chocolate' + | 'coral' + | 'cornflowerblue' + | 'cornsilk' + | 'crimson' + | 'cyan' + | 'darkblue' + | 'darkcyan' + | 'darkgoldenrod' + | 'darkgray' + | 'darkgreen' + | 'darkgrey' + | 'darkkhaki' + | 'darkmagenta' + | 'darkolivegreen' + | 'darkorange' + | 'darkorchid' + | 'darkred' + | 'darksalmon' + | 'darkseagreen' + | 'darkslateblue' + | 'darkslategray' + | 'darkslategrey' + | 'darkturquoise' + | 'darkviolet' + | 'deeppink' + | 'deepskyblue' + | 'dimgray' + | 'dimgrey' + | 'dodgerblue' + | 'firebrick' + | 'floralwhite' + | 'forestgreen' + | 'fuchsia' + | 'gainsboro' + | 'ghostwhite' + | 'gold' + | 'goldenrod' + | 'gray' + | 'green' + | 'greenyellow' + | 'grey' + | 'honeydew' + | 'hotpink' + | 'indianred' + | 'indigo' + | 'ivory' + | 'khaki' + | 'lavender' + | 'lavenderblush' + | 'lawngreen' + | 'lemonchiffon' + | 'lightblue' + | 'lightcoral' + | 'lightcyan' + | 'lightgoldenrodyellow' + | 'lightgray' + | 'lightgreen' + | 'lightgrey' + | 'lightpink' + | 'lightsalmon' + | 'lightseagreen' + | 'lightskyblue' + | 'lightslategray' + | 'lightslategrey' + | 'lightsteelblue' + | 'lightyellow' + | 'lime' + | 'limegreen' + | 'linen' + | 'magenta' + | 'maroon' + | 'mediumaquamarine' + | 'mediumblue' + | 'mediumorchid' + | 'mediumpurple' + | 'mediumseagreen' + | 'mediumslateblue' + | 'mediumspringgreen' + | 'mediumturquoise' + | 'mediumvioletred' + | 'midnightblue' + | 'mintcream' + | 'mistyrose' + | 'moccasin' + | 'navajowhite' + | 'navy' + | 'oldlace' + | 'olive' + | 'olivedrab' + | 'orange' + | 'orangered' + | 'orchid' + | 'palegoldenrod' + | 'palegreen' + | 'paleturquoise' + | 'palevioletred' + | 'papayawhip' + | 'peachpuff' + | 'peru' + | 'pink' + | 'plum' + | 'powderblue' + | 'purple' + | 'rebeccapurple' + | 'red' + | 'rosybrown' + | 'royalblue' + | 'saddlebrown' + | 'salmon' + | 'sandybrown' + | 'seagreen' + | 'seashell' + | 'sienna' + | 'silver' + | 'skyblue' + | 'slateblue' + | 'slategray' + | 'slategrey' + | 'snow' + | 'springgreen' + | 'steelblue' + | 'tan' + | 'teal' + | 'thistle' + | 'tomato' + | 'turquoise' + | 'violet' + | 'wheat' + | 'white' + | 'whitesmoke' + | 'yellow' + | 'yellowgreen'; + +declare namespace ansiStyles { + interface ColorConvert { + /** + The RGB color space. + + @param red - (`0`-`255`) + @param green - (`0`-`255`) + @param blue - (`0`-`255`) + */ + rgb(red: number, green: number, blue: number): string; + + /** + The RGB HEX color space. + + @param hex - A hexadecimal string containing RGB data. + */ + hex(hex: string): string; + + /** + @param keyword - A CSS color name. + */ + keyword(keyword: CSSColor): string; + + /** + The HSL color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param lightness - (`0`-`100`) + */ + hsl(hue: number, saturation: number, lightness: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param value - (`0`-`100`) + */ + hsv(hue: number, saturation: number, value: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param whiteness - (`0`-`100`) + @param blackness - (`0`-`100`) + */ + hwb(hue: number, whiteness: number, blackness: number): string; + + /** + Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color. + */ + ansi(ansi: number): string; + + /** + Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(ansi: number): string; + } + + interface CSPair { + /** + The ANSI terminal control sequence for starting this style. + */ + readonly open: string; + + /** + The ANSI terminal control sequence for ending this style. + */ + readonly close: string; + } + + interface ColorBase { + readonly ansi: ColorConvert; + readonly ansi256: ColorConvert; + readonly ansi16m: ColorConvert; + + /** + The ANSI terminal control sequence for ending this color. + */ + readonly close: string; + } + + interface Modifier { + /** + Resets the current color chain. + */ + readonly reset: CSPair; + + /** + Make text bold. + */ + readonly bold: CSPair; + + /** + Emitting only a small amount of light. + */ + readonly dim: CSPair; + + /** + Make text italic. (Not widely supported) + */ + readonly italic: CSPair; + + /** + Make text underline. (Not widely supported) + */ + readonly underline: CSPair; + + /** + Inverse background and foreground colors. + */ + readonly inverse: CSPair; + + /** + Prints the text, but makes it invisible. + */ + readonly hidden: CSPair; + + /** + Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: CSPair; + } + + interface ForegroundColor { + readonly black: CSPair; + readonly red: CSPair; + readonly green: CSPair; + readonly yellow: CSPair; + readonly blue: CSPair; + readonly cyan: CSPair; + readonly magenta: CSPair; + readonly white: CSPair; + + /** + Alias for `blackBright`. + */ + readonly gray: CSPair; + + /** + Alias for `blackBright`. + */ + readonly grey: CSPair; + + readonly blackBright: CSPair; + readonly redBright: CSPair; + readonly greenBright: CSPair; + readonly yellowBright: CSPair; + readonly blueBright: CSPair; + readonly cyanBright: CSPair; + readonly magentaBright: CSPair; + readonly whiteBright: CSPair; + } + + interface BackgroundColor { + readonly bgBlack: CSPair; + readonly bgRed: CSPair; + readonly bgGreen: CSPair; + readonly bgYellow: CSPair; + readonly bgBlue: CSPair; + readonly bgCyan: CSPair; + readonly bgMagenta: CSPair; + readonly bgWhite: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGray: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGrey: CSPair; + + readonly bgBlackBright: CSPair; + readonly bgRedBright: CSPair; + readonly bgGreenBright: CSPair; + readonly bgYellowBright: CSPair; + readonly bgBlueBright: CSPair; + readonly bgCyanBright: CSPair; + readonly bgMagentaBright: CSPair; + readonly bgWhiteBright: CSPair; + } +} + +declare const ansiStyles: { + readonly modifier: ansiStyles.Modifier; + readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase; + readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase; + readonly codes: ReadonlyMap; +} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier; + +export = ansiStyles; diff --git a/justdanceonline-main/node_modules/ansi-styles/index.js b/justdanceonline-main/node_modules/ansi-styles/index.js new file mode 100644 index 0000000000000000000000000000000000000000..5d82581a13f9900f9dc653b2df9f0027ee8bdda1 --- /dev/null +++ b/justdanceonline-main/node_modules/ansi-styles/index.js @@ -0,0 +1,163 @@ +'use strict'; + +const wrapAnsi16 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${code + offset}m`; +}; + +const wrapAnsi256 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${38 + offset};5;${code}m`; +}; + +const wrapAnsi16m = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; + +const ansi2ansi = n => n; +const rgb2rgb = (r, g, b) => [r, g, b]; + +const setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); + + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); + + return value; + }, + enumerable: true, + configurable: true + }); +}; + +/** @type {typeof import('color-convert')} */ +let colorConvert; +const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = require('color-convert'); + } + + const offset = isBackground ? 10 : 0; + const styles = {}; + + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + if (sourceSpace === targetSpace) { + styles[name] = wrap(identity, offset); + } else if (typeof suite === 'object') { + styles[name] = wrap(suite[targetSpace], offset); + } + } + + return styles; +}; + +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + + // Bright color + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + + // Alias bright black as gray (and grey) + styles.color.gray = styles.color.blackBright; + styles.bgColor.bgGray = styles.bgColor.bgBlackBright; + styles.color.grey = styles.color.blackBright; + styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; + + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + + group[styleName] = styles[styleName]; + + codes.set(style[0], style[1]); + } + + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } + + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + + setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); + setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); + + return styles; +} + +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); diff --git a/justdanceonline-main/node_modules/ansi-styles/license b/justdanceonline-main/node_modules/ansi-styles/license new file mode 100644 index 0000000000000000000000000000000000000000..e7af2f77107d73046421ef56c4684cbfdd3c1e89 --- /dev/null +++ b/justdanceonline-main/node_modules/ansi-styles/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/ansi-styles/package.json b/justdanceonline-main/node_modules/ansi-styles/package.json new file mode 100644 index 0000000000000000000000000000000000000000..75393284d7e474de2c7fb1ee7d09169a6790c7da --- /dev/null +++ b/justdanceonline-main/node_modules/ansi-styles/package.json @@ -0,0 +1,56 @@ +{ + "name": "ansi-styles", + "version": "4.3.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": "chalk/ansi-styles", + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "color-convert": "^2.0.1" + }, + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + } +} diff --git a/justdanceonline-main/node_modules/ansi-styles/readme.md b/justdanceonline-main/node_modules/ansi-styles/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..24883de808be6a7480542114a86034312c026dec --- /dev/null +++ b/justdanceonline-main/node_modules/ansi-styles/readme.md @@ -0,0 +1,152 @@ +# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) + +> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal + +You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. + + + +## Install + +``` +$ npm install ansi-styles +``` + +## Usage + +```js +const style = require('ansi-styles'); + +console.log(`${style.green.open}Hello world!${style.green.close}`); + + +// Color conversion between 16/256/truecolor +// NOTE: If conversion goes to 16 colors or 256 colors, the original color +// may be degraded to fit that color palette. This means terminals +// that do not support 16 million colors will best-match the +// original color. +console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); +console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); +console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); +``` + +## API + +Each style has an `open` and `close` property. + +## Styles + +### Modifiers + +- `reset` +- `bold` +- `dim` +- `italic` *(Not widely supported)* +- `underline` +- `inverse` +- `hidden` +- `strikethrough` *(Not widely supported)* + +### Colors + +- `black` +- `red` +- `green` +- `yellow` +- `blue` +- `magenta` +- `cyan` +- `white` +- `blackBright` (alias: `gray`, `grey`) +- `redBright` +- `greenBright` +- `yellowBright` +- `blueBright` +- `magentaBright` +- `cyanBright` +- `whiteBright` + +### Background colors + +- `bgBlack` +- `bgRed` +- `bgGreen` +- `bgYellow` +- `bgBlue` +- `bgMagenta` +- `bgCyan` +- `bgWhite` +- `bgBlackBright` (alias: `bgGray`, `bgGrey`) +- `bgRedBright` +- `bgGreenBright` +- `bgYellowBright` +- `bgBlueBright` +- `bgMagentaBright` +- `bgCyanBright` +- `bgWhiteBright` + +## Advanced usage + +By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. + +- `style.modifier` +- `style.color` +- `style.bgColor` + +###### Example + +```js +console.log(style.color.green.open); +``` + +Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. + +###### Example + +```js +console.log(style.codes.get(36)); +//=> 39 +``` + +## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) + +`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. + +The following color spaces from `color-convert` are supported: + +- `rgb` +- `hex` +- `keyword` +- `hsl` +- `hsv` +- `hwb` +- `ansi` +- `ansi256` + +To use these, call the associated conversion function with the intended output, for example: + +```js +style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code +style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code + +style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code +style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code + +style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code +style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code +``` + +## Related + +- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + +## For enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/justdanceonline-main/node_modules/array-flatten/LICENSE b/justdanceonline-main/node_modules/array-flatten/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..983fbe8aec3f4e2d4add592bb1083b00d7366f66 --- /dev/null +++ b/justdanceonline-main/node_modules/array-flatten/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/array-flatten/README.md b/justdanceonline-main/node_modules/array-flatten/README.md new file mode 100644 index 0000000000000000000000000000000000000000..91fa5b637ec2d2a492d6b5c4bf9ba2e76ff2f352 --- /dev/null +++ b/justdanceonline-main/node_modules/array-flatten/README.md @@ -0,0 +1,43 @@ +# Array Flatten + +[![NPM version][npm-image]][npm-url] +[![NPM downloads][downloads-image]][downloads-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] + +> Flatten an array of nested arrays into a single flat array. Accepts an optional depth. + +## Installation + +``` +npm install array-flatten --save +``` + +## Usage + +```javascript +var flatten = require('array-flatten') + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) +//=> [1, 2, 3, 4, 5, 6, 7, 8, 9] + +flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2) +//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] + +(function () { + flatten(arguments) //=> [1, 2, 3] +})(1, [2, 3]) +``` + +## License + +MIT + +[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat +[npm-url]: https://npmjs.org/package/array-flatten +[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat +[downloads-url]: https://npmjs.org/package/array-flatten +[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat +[travis-url]: https://travis-ci.org/blakeembrey/array-flatten +[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat +[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master diff --git a/justdanceonline-main/node_modules/array-flatten/array-flatten.js b/justdanceonline-main/node_modules/array-flatten/array-flatten.js new file mode 100644 index 0000000000000000000000000000000000000000..089117b322f5857b8bb6bccf7a659686aca067c0 --- /dev/null +++ b/justdanceonline-main/node_modules/array-flatten/array-flatten.js @@ -0,0 +1,64 @@ +'use strict' + +/** + * Expose `arrayFlatten`. + */ +module.exports = arrayFlatten + +/** + * Recursive flatten function with depth. + * + * @param {Array} array + * @param {Array} result + * @param {Number} depth + * @return {Array} + */ +function flattenWithDepth (array, result, depth) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (depth > 0 && Array.isArray(value)) { + flattenWithDepth(value, result, depth - 1) + } else { + result.push(value) + } + } + + return result +} + +/** + * Recursive flatten function. Omitting depth is slightly faster. + * + * @param {Array} array + * @param {Array} result + * @return {Array} + */ +function flattenForever (array, result) { + for (var i = 0; i < array.length; i++) { + var value = array[i] + + if (Array.isArray(value)) { + flattenForever(value, result) + } else { + result.push(value) + } + } + + return result +} + +/** + * Flatten an array, with the ability to define a depth. + * + * @param {Array} array + * @param {Number} depth + * @return {Array} + */ +function arrayFlatten (array, depth) { + if (depth == null) { + return flattenForever(array, []) + } + + return flattenWithDepth(array, [], depth) +} diff --git a/justdanceonline-main/node_modules/array-flatten/package.json b/justdanceonline-main/node_modules/array-flatten/package.json new file mode 100644 index 0000000000000000000000000000000000000000..1a24e2a1a1d3fbd694b77bf6673ab1e1c2fd5043 --- /dev/null +++ b/justdanceonline-main/node_modules/array-flatten/package.json @@ -0,0 +1,39 @@ +{ + "name": "array-flatten", + "version": "1.1.1", + "description": "Flatten an array of nested arrays into a single flat array", + "main": "array-flatten.js", + "files": [ + "array-flatten.js", + "LICENSE" + ], + "scripts": { + "test": "istanbul cover _mocha -- -R spec" + }, + "repository": { + "type": "git", + "url": "git://github.com/blakeembrey/array-flatten.git" + }, + "keywords": [ + "array", + "flatten", + "arguments", + "depth" + ], + "author": { + "name": "Blake Embrey", + "email": "hello@blakeembrey.com", + "url": "http://blakeembrey.me" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/blakeembrey/array-flatten/issues" + }, + "homepage": "https://github.com/blakeembrey/array-flatten", + "devDependencies": { + "istanbul": "^0.3.13", + "mocha": "^2.2.4", + "pre-commit": "^1.0.7", + "standard": "^3.7.3" + } +} diff --git a/justdanceonline-main/node_modules/async-each/README.md b/justdanceonline-main/node_modules/async-each/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6444d9542958ce3adfbd5647c706a087f6c28f53 --- /dev/null +++ b/justdanceonline-main/node_modules/async-each/README.md @@ -0,0 +1,52 @@ +# async-each + +No-bullshit, ultra-simple, 35-lines-of-code async parallel forEach function for JavaScript. + +We don't need junky 30K async libs. Really. + +For browsers and node.js. + +## Installation +* Just include async-each before your scripts. +* `npm install async-each` if you’re using node.js. + +## Usage + +* `each(array, iterator, callback);` — `Array`, `Function`, `(optional) Function` +* `iterator(item, next)` receives current item and a callback that will mark the item as done. `next` callback receives optional `error, transformedItem` arguments. +* `callback(error, transformedArray)` optionally receives first error and transformed result `Array`. + +```javascript +var each = require('async-each'); +each(['a.js', 'b.js', 'c.js'], fs.readFile, function(error, contents) { + if (error) console.error(error); + console.log('Contents for a, b and c:', contents); +}); + +// Alternatively in browser: +asyncEach(list, fn, callback); +``` + +## License + +The MIT License (MIT) + +Copyright (c) 2016 Paul Miller [(paulmillr.com)](http://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/async-each/index.js b/justdanceonline-main/node_modules/async-each/index.js new file mode 100644 index 0000000000000000000000000000000000000000..277217df3a4752d6ca655d98b850b2b5e2127c66 --- /dev/null +++ b/justdanceonline-main/node_modules/async-each/index.js @@ -0,0 +1,38 @@ +// async-each MIT license (by Paul Miller from https://paulmillr.com). +(function(globals) { + 'use strict'; + var each = function(items, next, callback) { + if (!Array.isArray(items)) throw new TypeError('each() expects array as first argument'); + if (typeof next !== 'function') throw new TypeError('each() expects function as second argument'); + if (typeof callback !== 'function') callback = Function.prototype; // no-op + + if (items.length === 0) return callback(undefined, items); + + var transformed = new Array(items.length); + var count = 0; + var returned = false; + + items.forEach(function(item, index) { + next(item, function(error, transformedItem) { + if (returned) return; + if (error) { + returned = true; + return callback(error); + } + transformed[index] = transformedItem; + count += 1; + if (count === items.length) return callback(undefined, transformed); + }); + }); + }; + + if (typeof define !== 'undefined' && define.amd) { + define([], function() { + return each; + }); // RequireJS + } else if (typeof module !== 'undefined' && module.exports) { + module.exports = each; // CommonJS + } else { + globals.asyncEach = each; // + +You can also build a custom browser SDK with your specified set of AWS services. +This can allow you to reduce the SDK's size, specify different API versions of +services, or use AWS services that don't currently support CORS if you are +working in an environment that does not enforce CORS. To get started: + +http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/building-sdk-for-browsers.html + +The AWS SDK is also compatible with [browserify](http://browserify.org). + +For browser-based web, mobile and hybrid apps, you can use [AWS Amplify Library](https://aws.github.io/aws-amplify/?utm_source=aws-js-sdk&utm_campaign=browser) which extends the AWS SDK and provides an easier and declarative interface. + +### In Node.js + +The preferred way to install the AWS SDK for Node.js is to use the +[npm](http://npmjs.org) package manager for Node.js. Simply type the following +into a terminal window: + +```sh +npm install aws-sdk +``` + +### In React Native +To use the SDK in a react native project, first install the SDK using npm: + +```sh +npm install aws-sdk +``` + +Then within your application, you can reference the react native compatible version of the SDK with the following: + +```javascript +var AWS = require('aws-sdk/dist/aws-sdk-react-native'); +``` + +Alternatively, you can use [AWS Amplify Library](https://aws.github.io/aws-amplify/media/react_native_guide?utm_source=aws-js-sdk&utm_campaign=react-native) which extends AWS SDK and provides React Native UI components and CLI support to work with AWS services. + +### Using Bower + +You can also use [Bower](http://bower.io) to install the SDK by typing the +following into a terminal window: + +```sh +bower install aws-sdk-js +``` + +## Usage with TypeScript +The AWS SDK for JavaScript bundles TypeScript definition files for use in TypeScript projects and to support tools that can read `.d.ts` files. +Our goal is to keep these TypeScript definition files updated with each release for any public api. + +### Pre-requisites +Before you can begin using these TypeScript definitions with your project, you need to make sure your project meets a few of these requirements: + + * Use TypeScript v2.x + * Includes the TypeScript definitions for node. You can use npm to install this by typing the following into a terminal window: + + ```sh + npm install --save-dev @types/node + ``` + + * If you are targeting at es5 or older ECMA standards, your `tsconfig.json` has to include `'es5'` and `'es2015.promise'` under `compilerOptions.lib`. + See [tsconfig.json](https://github.com/aws/aws-sdk-js/blob/master/ts/tsconfig.json) for an example. + +### In the Browser +To use the TypeScript definition files with the global `AWS` object in a front-end project, add the following line to the top of your JavaScript file: + +```javascript +/// +``` + +This will provide support for the global `AWS` object. + +### In Node.js +To use the TypeScript definition files within a Node.js project, simply import `aws-sdk` as you normally would. + +In a TypeScript file: + +```javascript +// import entire SDK +import AWS from 'aws-sdk'; +// import AWS object without services +import AWS from 'aws-sdk/global'; +// import individual service +import S3 from 'aws-sdk/clients/s3'; +``` + +**NOTE:** You need to add `"esModuleInterop": true` to compilerOptions of your `tsconfig.json`. If not possible, use like `import * as AWS from 'aws-sdk'`. + +In a JavaScript file: + +```javascript +// import entire SDK +var AWS = require('aws-sdk'); +// import AWS object without services +var AWS = require('aws-sdk/global'); +// import individual service +var S3 = require('aws-sdk/clients/s3'); +``` + +### With React + +To create React applications with AWS SDK, you can use [AWS Amplify Library](https://aws.github.io/aws-amplify/media/react_guide?utm_source=aws-js-sdk&utm_campaign=react) which provides React components and CLI support to work with AWS services. + +### With Angular +Due to the SDK's reliance on node.js typings, you may encounter compilation +[issues](https://github.com/aws/aws-sdk-js/issues/1271) when using the +typings provided by the SDK in an Angular project created using the Angular CLI. + +To resolve these issues, either add `"types": ["node"]` to the project's `tsconfig.app.json` +file, or remove the `"types"` field entirely. + +[AWS Amplify Library](https://aws.github.io/aws-amplify/media/angular_guide?utm_source=aws-js-sdk&utm_campaign=angular) provides Angular components and CLI support to work with AWS services. + +### Known Limitations +There are a few known limitations with the bundled TypeScript definitions at this time: + + * Service client typings reflect the latest `apiVersion`, regardless of which `apiVersion` is specified when creating a client. + * Service-bound parameters use the `any` type. + +# Getting Help + +The best way to interact with our team is through GitHub. +You can [open an issue](https://github.com/aws/aws-sdk-js/issues/new/choose) and choose from one of our templates for +[bug reports](https://github.com/aws/aws-sdk-js/issues/new?assignees=&labels=bug%2C+needs-triage&template=---bug-report.md&title=), +[feature requests](https://github.com/aws/aws-sdk-js/issues/new?assignees=&labels=feature-request&template=---feature-request.md&title=) +or [guidance](https://github.com/aws/aws-sdk-js/issues/new?assignees=&labels=guidance%2C+needs-triage&template=---questions---help.md&title=). +You may also find help on community resources such as [StackOverFlow](https://stackoverflow.com/questions/tagged/aws-sdk-js) with the tag #aws-sdk-js. +If you have a support plan with [AWS Support](https://aws.amazon.com/premiumsupport/), you can also create a new support case. + +Please make sure to check out our resources too before opening an issue: +* Our [Developer Guide](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/welcome.html) and [API reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) +* Our [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md) for recent changes. +* Our [code examples](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/sdk-code-samples.html). + +Please see [SERVICES.md](https://github.com/aws/aws-sdk-js/blob/master/SERVICES.md) for a list of supported services. + +# Maintenance and support for SDK major versions +For information about maintenance and support for SDK major versions and their underlying dependencies, see the following in the [AWS SDKs and Tools Shared Configuration and Credentials Reference Guide](https://docs.aws.amazon.com/credref/latest/refdocs/overview.html): +* [AWS SDKs and Tools Maintenance Policy](https://docs.aws.amazon.com/credref/latest/refdocs/maint-policy.html) +* [AWS SDKs and Tools Version Support Matrix](https://docs.aws.amazon.com/credref/latest/refdocs/version-support-matrix.html) + + + +# Contributing +We welcome community contributions and pull requests. See [CONTRIBUTING.md](https://github.com/aws/aws-sdk-js/blob/master/CONTRIBUTING.md) for information on how to set up a development environment and submit code. + +## License + +This SDK is distributed under the +[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0), +see LICENSE.txt and NOTICE.txt for more information. diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.min.json new file mode 100644 index 0000000000000000000000000000000000000000..26ef96bd38646c37f84d24a3d971cfa68f63ebf8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.min.json @@ -0,0 +1,503 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-05-31", + "endpointPrefix": "mgh", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Migration Hub", + "serviceId": "Migration Hub", + "signatureVersion": "v4", + "targetPrefix": "AWSMigrationHub", + "uid": "AWSMigrationHub-2017-05-31" + }, + "operations": { + "AssociateCreatedArtifact": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName", + "CreatedArtifact" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "CreatedArtifact": { + "shape": "S4" + }, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociateDiscoveredResource": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName", + "DiscoveredResource" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "DiscoveredResource": { + "shape": "Sa" + }, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateProgressUpdateStream": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStreamName" + ], + "members": { + "ProgressUpdateStreamName": {}, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteProgressUpdateStream": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStreamName" + ], + "members": { + "ProgressUpdateStreamName": {}, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeApplicationState": { + "input": { + "type": "structure", + "required": [ + "ApplicationId" + ], + "members": { + "ApplicationId": {} + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationStatus": {}, + "LastUpdatedTime": { + "type": "timestamp" + } + } + } + }, + "DescribeMigrationTask": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {} + } + }, + "output": { + "type": "structure", + "members": { + "MigrationTask": { + "type": "structure", + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "Task": { + "shape": "Sq" + }, + "UpdateDateTime": { + "type": "timestamp" + }, + "ResourceAttributeList": { + "type": "list", + "member": { + "shape": "Sv" + } + } + } + } + } + } + }, + "DisassociateCreatedArtifact": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName", + "CreatedArtifactName" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "CreatedArtifactName": {}, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateDiscoveredResource": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName", + "ConfigurationId" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "ConfigurationId": {}, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ImportMigrationTask": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ListApplicationStates": { + "input": { + "type": "structure", + "members": { + "ApplicationIds": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationStateList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ApplicationId": {}, + "ApplicationStatus": {}, + "LastUpdatedTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListCreatedArtifacts": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "CreatedArtifactList": { + "type": "list", + "member": { + "shape": "S4" + } + } + } + } + }, + "ListDiscoveredResources": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "DiscoveredResourceList": { + "type": "list", + "member": { + "shape": "Sa" + } + } + } + } + }, + "ListMigrationTasks": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "ResourceName": {} + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "MigrationTaskSummaryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "Status": {}, + "ProgressPercent": { + "type": "integer" + }, + "StatusDetail": {}, + "UpdateDateTime": { + "type": "timestamp" + } + } + } + } + } + } + }, + "ListProgressUpdateStreams": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ProgressUpdateStreamSummaryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ProgressUpdateStreamName": {} + } + } + }, + "NextToken": {} + } + } + }, + "NotifyApplicationState": { + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "Status" + ], + "members": { + "ApplicationId": {}, + "Status": {}, + "UpdateDateTime": { + "type": "timestamp" + }, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "NotifyMigrationTaskState": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName", + "Task", + "UpdateDateTime", + "NextUpdateSeconds" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "Task": { + "shape": "Sq" + }, + "UpdateDateTime": { + "type": "timestamp" + }, + "NextUpdateSeconds": { + "type": "integer" + }, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "PutResourceAttributes": { + "input": { + "type": "structure", + "required": [ + "ProgressUpdateStream", + "MigrationTaskName", + "ResourceAttributeList" + ], + "members": { + "ProgressUpdateStream": {}, + "MigrationTaskName": {}, + "ResourceAttributeList": { + "type": "list", + "member": { + "shape": "Sv" + } + }, + "DryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Description": {} + } + }, + "Sa": { + "type": "structure", + "required": [ + "ConfigurationId" + ], + "members": { + "ConfigurationId": {}, + "Description": {} + } + }, + "Sq": { + "type": "structure", + "required": [ + "Status" + ], + "members": { + "Status": {}, + "StatusDetail": {}, + "ProgressPercent": { + "type": "integer" + } + } + }, + "Sv": { + "type": "structure", + "required": [ + "Type", + "Value" + ], + "members": { + "Type": {}, + "Value": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..3f2d290acf4872680bdfe4cf0f8a85cba15214a5 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/AWSMigrationHub-2017-05-31.paginators.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListApplicationStates": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ApplicationStateList" + }, + "ListCreatedArtifacts": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "CreatedArtifactList" + }, + "ListDiscoveredResources": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "DiscoveredResourceList" + }, + "ListMigrationTasks": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "MigrationTaskSummaryList" + }, + "ListProgressUpdateStreams": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ProgressUpdateStreamSummaryList" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.min.json new file mode 100644 index 0000000000000000000000000000000000000000..2fa689cdb01b9e3cbe53db3f5c00067ea70e9149 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.min.json @@ -0,0 +1,1683 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2019-11-01", + "endpointPrefix": "access-analyzer", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "Access Analyzer", + "serviceId": "AccessAnalyzer", + "signatureVersion": "v4", + "signingName": "access-analyzer", + "uid": "accessanalyzer-2019-11-01" + }, + "operations": { + "ApplyArchiveRule": { + "http": { + "method": "PUT", + "requestUri": "/archive-rule", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn", + "ruleName" + ], + "members": { + "analyzerArn": {}, + "clientToken": { + "idempotencyToken": true + }, + "ruleName": {} + } + }, + "idempotent": true + }, + "CancelPolicyGeneration": { + "http": { + "method": "PUT", + "requestUri": "/policy/generation/{jobId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "jobId" + ], + "members": { + "jobId": { + "location": "uri", + "locationName": "jobId" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "CreateAccessPreview": { + "http": { + "method": "PUT", + "requestUri": "/access-preview", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn", + "configurations" + ], + "members": { + "analyzerArn": {}, + "clientToken": { + "idempotencyToken": true + }, + "configurations": { + "shape": "S9" + } + } + }, + "output": { + "type": "structure", + "required": [ + "id" + ], + "members": { + "id": {} + } + }, + "idempotent": true + }, + "CreateAnalyzer": { + "http": { + "method": "PUT", + "requestUri": "/analyzer", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName", + "type" + ], + "members": { + "analyzerName": {}, + "archiveRules": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "filter", + "ruleName" + ], + "members": { + "filter": { + "shape": "S1l" + }, + "ruleName": {} + } + } + }, + "clientToken": { + "idempotencyToken": true + }, + "tags": { + "shape": "S1o" + }, + "type": {} + } + }, + "output": { + "type": "structure", + "members": { + "arn": {} + } + }, + "idempotent": true + }, + "CreateArchiveRule": { + "http": { + "method": "PUT", + "requestUri": "/analyzer/{analyzerName}/archive-rule", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName", + "filter", + "ruleName" + ], + "members": { + "analyzerName": { + "location": "uri", + "locationName": "analyzerName" + }, + "clientToken": { + "idempotencyToken": true + }, + "filter": { + "shape": "S1l" + }, + "ruleName": {} + } + }, + "idempotent": true + }, + "DeleteAnalyzer": { + "http": { + "method": "DELETE", + "requestUri": "/analyzer/{analyzerName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName" + ], + "members": { + "analyzerName": { + "location": "uri", + "locationName": "analyzerName" + }, + "clientToken": { + "idempotencyToken": true, + "location": "querystring", + "locationName": "clientToken" + } + } + }, + "idempotent": true + }, + "DeleteArchiveRule": { + "http": { + "method": "DELETE", + "requestUri": "/analyzer/{analyzerName}/archive-rule/{ruleName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName", + "ruleName" + ], + "members": { + "analyzerName": { + "location": "uri", + "locationName": "analyzerName" + }, + "clientToken": { + "idempotencyToken": true, + "location": "querystring", + "locationName": "clientToken" + }, + "ruleName": { + "location": "uri", + "locationName": "ruleName" + } + } + }, + "idempotent": true + }, + "GetAccessPreview": { + "http": { + "method": "GET", + "requestUri": "/access-preview/{accessPreviewId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "accessPreviewId", + "analyzerArn" + ], + "members": { + "accessPreviewId": { + "location": "uri", + "locationName": "accessPreviewId" + }, + "analyzerArn": { + "location": "querystring", + "locationName": "analyzerArn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "accessPreview" + ], + "members": { + "accessPreview": { + "type": "structure", + "required": [ + "analyzerArn", + "configurations", + "createdAt", + "id", + "status" + ], + "members": { + "analyzerArn": {}, + "configurations": { + "shape": "S9" + }, + "createdAt": { + "shape": "S1x" + }, + "id": {}, + "status": {}, + "statusReason": { + "shape": "S1z" + } + } + } + } + } + }, + "GetAnalyzedResource": { + "http": { + "method": "GET", + "requestUri": "/analyzed-resource", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn", + "resourceArn" + ], + "members": { + "analyzerArn": { + "location": "querystring", + "locationName": "analyzerArn" + }, + "resourceArn": { + "location": "querystring", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "resource": { + "type": "structure", + "required": [ + "analyzedAt", + "createdAt", + "isPublic", + "resourceArn", + "resourceOwnerAccount", + "resourceType", + "updatedAt" + ], + "members": { + "actions": { + "shape": "S25" + }, + "analyzedAt": { + "shape": "S1x" + }, + "createdAt": { + "shape": "S1x" + }, + "error": {}, + "isPublic": { + "type": "boolean" + }, + "resourceArn": {}, + "resourceOwnerAccount": {}, + "resourceType": {}, + "sharedVia": { + "type": "list", + "member": {} + }, + "status": {}, + "updatedAt": { + "shape": "S1x" + } + } + } + } + } + }, + "GetAnalyzer": { + "http": { + "method": "GET", + "requestUri": "/analyzer/{analyzerName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName" + ], + "members": { + "analyzerName": { + "location": "uri", + "locationName": "analyzerName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "analyzer" + ], + "members": { + "analyzer": { + "shape": "S2b" + } + } + } + }, + "GetArchiveRule": { + "http": { + "method": "GET", + "requestUri": "/analyzer/{analyzerName}/archive-rule/{ruleName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName", + "ruleName" + ], + "members": { + "analyzerName": { + "location": "uri", + "locationName": "analyzerName" + }, + "ruleName": { + "location": "uri", + "locationName": "ruleName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "archiveRule" + ], + "members": { + "archiveRule": { + "shape": "S2h" + } + } + } + }, + "GetFinding": { + "http": { + "method": "GET", + "requestUri": "/finding/{id}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn", + "id" + ], + "members": { + "analyzerArn": { + "location": "querystring", + "locationName": "analyzerArn" + }, + "id": { + "location": "uri", + "locationName": "id" + } + } + }, + "output": { + "type": "structure", + "members": { + "finding": { + "type": "structure", + "required": [ + "analyzedAt", + "condition", + "createdAt", + "id", + "resourceOwnerAccount", + "resourceType", + "status", + "updatedAt" + ], + "members": { + "action": { + "shape": "S25" + }, + "analyzedAt": { + "shape": "S1x" + }, + "condition": { + "shape": "S2m" + }, + "createdAt": { + "shape": "S1x" + }, + "error": {}, + "id": {}, + "isPublic": { + "type": "boolean" + }, + "principal": { + "shape": "S2n" + }, + "resource": {}, + "resourceOwnerAccount": {}, + "resourceType": {}, + "sources": { + "shape": "S2o" + }, + "status": {}, + "updatedAt": { + "shape": "S1x" + } + } + } + } + } + }, + "GetGeneratedPolicy": { + "http": { + "method": "GET", + "requestUri": "/policy/generation/{jobId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "jobId" + ], + "members": { + "includeResourcePlaceholders": { + "location": "querystring", + "locationName": "includeResourcePlaceholders", + "type": "boolean" + }, + "includeServiceLevelTemplate": { + "location": "querystring", + "locationName": "includeServiceLevelTemplate", + "type": "boolean" + }, + "jobId": { + "location": "uri", + "locationName": "jobId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "generatedPolicyResult", + "jobDetails" + ], + "members": { + "generatedPolicyResult": { + "type": "structure", + "required": [ + "properties" + ], + "members": { + "generatedPolicies": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "policy" + ], + "members": { + "policy": {} + } + } + }, + "properties": { + "type": "structure", + "required": [ + "principalArn" + ], + "members": { + "cloudTrailProperties": { + "type": "structure", + "required": [ + "endTime", + "startTime", + "trailProperties" + ], + "members": { + "endTime": { + "shape": "S1x" + }, + "startTime": { + "shape": "S1x" + }, + "trailProperties": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "cloudTrailArn" + ], + "members": { + "allRegions": { + "type": "boolean" + }, + "cloudTrailArn": {}, + "regions": { + "shape": "S32" + } + } + } + } + } + }, + "isComplete": { + "type": "boolean" + }, + "principalArn": {} + } + } + } + }, + "jobDetails": { + "type": "structure", + "required": [ + "jobId", + "startedOn", + "status" + ], + "members": { + "completedOn": { + "shape": "S1x" + }, + "jobError": { + "type": "structure", + "required": [ + "code", + "message" + ], + "members": { + "code": {}, + "message": {} + } + }, + "jobId": {}, + "startedOn": { + "shape": "S1x" + }, + "status": {} + } + } + } + } + }, + "ListAccessPreviewFindings": { + "http": { + "requestUri": "/access-preview/{accessPreviewId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "accessPreviewId", + "analyzerArn" + ], + "members": { + "accessPreviewId": { + "location": "uri", + "locationName": "accessPreviewId" + }, + "analyzerArn": {}, + "filter": { + "shape": "S1l" + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "findings" + ], + "members": { + "findings": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "changeType", + "createdAt", + "id", + "resourceOwnerAccount", + "resourceType", + "status" + ], + "members": { + "action": { + "shape": "S25" + }, + "changeType": {}, + "condition": { + "shape": "S2m" + }, + "createdAt": { + "shape": "S1x" + }, + "error": {}, + "existingFindingId": {}, + "existingFindingStatus": {}, + "id": {}, + "isPublic": { + "type": "boolean" + }, + "principal": { + "shape": "S2n" + }, + "resource": {}, + "resourceOwnerAccount": {}, + "resourceType": {}, + "sources": { + "shape": "S2o" + }, + "status": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListAccessPreviews": { + "http": { + "method": "GET", + "requestUri": "/access-preview", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn" + ], + "members": { + "analyzerArn": { + "location": "querystring", + "locationName": "analyzerArn" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "accessPreviews" + ], + "members": { + "accessPreviews": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "analyzerArn", + "createdAt", + "id", + "status" + ], + "members": { + "analyzerArn": {}, + "createdAt": { + "shape": "S1x" + }, + "id": {}, + "status": {}, + "statusReason": { + "shape": "S1z" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListAnalyzedResources": { + "http": { + "requestUri": "/analyzed-resource", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn" + ], + "members": { + "analyzerArn": {}, + "maxResults": { + "type": "integer" + }, + "nextToken": {}, + "resourceType": {} + } + }, + "output": { + "type": "structure", + "required": [ + "analyzedResources" + ], + "members": { + "analyzedResources": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "resourceArn", + "resourceOwnerAccount", + "resourceType" + ], + "members": { + "resourceArn": {}, + "resourceOwnerAccount": {}, + "resourceType": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListAnalyzers": { + "http": { + "method": "GET", + "requestUri": "/analyzer", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "type": { + "location": "querystring", + "locationName": "type" + } + } + }, + "output": { + "type": "structure", + "required": [ + "analyzers" + ], + "members": { + "analyzers": { + "type": "list", + "member": { + "shape": "S2b" + } + }, + "nextToken": {} + } + } + }, + "ListArchiveRules": { + "http": { + "method": "GET", + "requestUri": "/analyzer/{analyzerName}/archive-rule", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName" + ], + "members": { + "analyzerName": { + "location": "uri", + "locationName": "analyzerName" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "archiveRules" + ], + "members": { + "archiveRules": { + "type": "list", + "member": { + "shape": "S2h" + } + }, + "nextToken": {} + } + } + }, + "ListFindings": { + "http": { + "requestUri": "/finding", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn" + ], + "members": { + "analyzerArn": {}, + "filter": { + "shape": "S1l" + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {}, + "sort": { + "type": "structure", + "members": { + "attributeName": {}, + "orderBy": {} + } + } + } + }, + "output": { + "type": "structure", + "required": [ + "findings" + ], + "members": { + "findings": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "analyzedAt", + "condition", + "createdAt", + "id", + "resourceOwnerAccount", + "resourceType", + "status", + "updatedAt" + ], + "members": { + "action": { + "shape": "S25" + }, + "analyzedAt": { + "shape": "S1x" + }, + "condition": { + "shape": "S2m" + }, + "createdAt": { + "shape": "S1x" + }, + "error": {}, + "id": {}, + "isPublic": { + "type": "boolean" + }, + "principal": { + "shape": "S2n" + }, + "resource": {}, + "resourceOwnerAccount": {}, + "resourceType": {}, + "sources": { + "shape": "S2o" + }, + "status": {}, + "updatedAt": { + "shape": "S1x" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListPolicyGenerations": { + "http": { + "method": "GET", + "requestUri": "/policy/generation", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "principalArn": { + "location": "querystring", + "locationName": "principalArn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "policyGenerations" + ], + "members": { + "nextToken": {}, + "policyGenerations": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "jobId", + "principalArn", + "startedOn", + "status" + ], + "members": { + "completedOn": { + "shape": "S1x" + }, + "jobId": {}, + "principalArn": {}, + "startedOn": { + "shape": "S1x" + }, + "status": {} + } + } + } + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "S1o" + } + } + } + }, + "StartPolicyGeneration": { + "http": { + "method": "PUT", + "requestUri": "/policy/generation", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "policyGenerationDetails" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "cloudTrailDetails": { + "type": "structure", + "required": [ + "accessRole", + "startTime", + "trails" + ], + "members": { + "accessRole": {}, + "endTime": { + "shape": "S1x" + }, + "startTime": { + "shape": "S1x" + }, + "trails": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "cloudTrailArn" + ], + "members": { + "allRegions": { + "type": "boolean" + }, + "cloudTrailArn": {}, + "regions": { + "shape": "S32" + } + } + } + } + } + }, + "policyGenerationDetails": { + "type": "structure", + "required": [ + "principalArn" + ], + "members": { + "principalArn": {} + } + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobId" + ], + "members": { + "jobId": {} + } + }, + "idempotent": true + }, + "StartResourceScan": { + "http": { + "requestUri": "/resource/scan", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn", + "resourceArn" + ], + "members": { + "analyzerArn": {}, + "resourceArn": {} + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "S1o" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "UpdateArchiveRule": { + "http": { + "method": "PUT", + "requestUri": "/analyzer/{analyzerName}/archive-rule/{ruleName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerName", + "filter", + "ruleName" + ], + "members": { + "analyzerName": { + "location": "uri", + "locationName": "analyzerName" + }, + "clientToken": { + "idempotencyToken": true + }, + "filter": { + "shape": "S1l" + }, + "ruleName": { + "location": "uri", + "locationName": "ruleName" + } + } + }, + "idempotent": true + }, + "UpdateFindings": { + "http": { + "method": "PUT", + "requestUri": "/finding", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "analyzerArn", + "status" + ], + "members": { + "analyzerArn": {}, + "clientToken": { + "idempotencyToken": true + }, + "ids": { + "type": "list", + "member": {} + }, + "resourceArn": {}, + "status": {} + } + }, + "idempotent": true + }, + "ValidatePolicy": { + "http": { + "requestUri": "/policy/validation", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "policyDocument", + "policyType" + ], + "members": { + "locale": {}, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "policyDocument": {}, + "policyType": {} + } + }, + "output": { + "type": "structure", + "required": [ + "findings" + ], + "members": { + "findings": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "findingDetails", + "findingType", + "issueCode", + "learnMoreLink", + "locations" + ], + "members": { + "findingDetails": {}, + "findingType": {}, + "issueCode": {}, + "learnMoreLink": {}, + "locations": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "path", + "span" + ], + "members": { + "path": { + "type": "list", + "member": { + "type": "structure", + "members": { + "index": { + "type": "integer" + }, + "key": {}, + "substring": { + "type": "structure", + "required": [ + "length", + "start" + ], + "members": { + "length": { + "type": "integer" + }, + "start": { + "type": "integer" + } + } + }, + "value": {} + }, + "union": true + } + }, + "span": { + "type": "structure", + "required": [ + "end", + "start" + ], + "members": { + "end": { + "shape": "S54" + }, + "start": { + "shape": "S54" + } + } + } + } + } + } + } + } + }, + "nextToken": {} + } + } + } + }, + "shapes": { + "S9": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "iamRole": { + "type": "structure", + "members": { + "trustPolicy": {} + } + }, + "kmsKey": { + "type": "structure", + "members": { + "grants": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "granteePrincipal", + "issuingAccount", + "operations" + ], + "members": { + "constraints": { + "type": "structure", + "members": { + "encryptionContextEquals": { + "shape": "Si" + }, + "encryptionContextSubset": { + "shape": "Si" + } + } + }, + "granteePrincipal": {}, + "issuingAccount": {}, + "operations": { + "type": "list", + "member": {} + }, + "retiringPrincipal": {} + } + } + }, + "keyPolicies": { + "type": "map", + "key": {}, + "value": {} + } + } + }, + "s3Bucket": { + "type": "structure", + "members": { + "accessPoints": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "accessPointPolicy": {}, + "networkOrigin": { + "type": "structure", + "members": { + "internetConfiguration": { + "type": "structure", + "members": {} + }, + "vpcConfiguration": { + "type": "structure", + "required": [ + "vpcId" + ], + "members": { + "vpcId": {} + } + } + }, + "union": true + }, + "publicAccessBlock": { + "shape": "S12" + } + } + } + }, + "bucketAclGrants": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "grantee", + "permission" + ], + "members": { + "grantee": { + "type": "structure", + "members": { + "id": {}, + "uri": {} + }, + "union": true + }, + "permission": {} + } + } + }, + "bucketPolicy": {}, + "bucketPublicAccessBlock": { + "shape": "S12" + } + } + }, + "secretsManagerSecret": { + "type": "structure", + "members": { + "kmsKeyId": {}, + "secretPolicy": {} + } + }, + "sqsQueue": { + "type": "structure", + "members": { + "queuePolicy": {} + } + } + }, + "union": true + } + }, + "Si": { + "type": "map", + "key": {}, + "value": {} + }, + "S12": { + "type": "structure", + "required": [ + "ignorePublicAcls", + "restrictPublicBuckets" + ], + "members": { + "ignorePublicAcls": { + "type": "boolean" + }, + "restrictPublicBuckets": { + "type": "boolean" + } + } + }, + "S1l": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "contains": { + "shape": "S1n" + }, + "eq": { + "shape": "S1n" + }, + "exists": { + "type": "boolean" + }, + "neq": { + "shape": "S1n" + } + } + } + }, + "S1n": { + "type": "list", + "member": {} + }, + "S1o": { + "type": "map", + "key": {}, + "value": {} + }, + "S1x": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "S1z": { + "type": "structure", + "required": [ + "code" + ], + "members": { + "code": {} + } + }, + "S25": { + "type": "list", + "member": {} + }, + "S2b": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "name", + "status", + "type" + ], + "members": { + "arn": {}, + "createdAt": { + "shape": "S1x" + }, + "lastResourceAnalyzed": {}, + "lastResourceAnalyzedAt": { + "shape": "S1x" + }, + "name": {}, + "status": {}, + "statusReason": { + "type": "structure", + "required": [ + "code" + ], + "members": { + "code": {} + } + }, + "tags": { + "shape": "S1o" + }, + "type": {} + } + }, + "S2h": { + "type": "structure", + "required": [ + "createdAt", + "filter", + "ruleName", + "updatedAt" + ], + "members": { + "createdAt": { + "shape": "S1x" + }, + "filter": { + "shape": "S1l" + }, + "ruleName": {}, + "updatedAt": { + "shape": "S1x" + } + } + }, + "S2m": { + "type": "map", + "key": {}, + "value": {} + }, + "S2n": { + "type": "map", + "key": {}, + "value": {} + }, + "S2o": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "type" + ], + "members": { + "detail": { + "type": "structure", + "members": { + "accessPointArn": {} + } + }, + "type": {} + } + } + }, + "S32": { + "type": "list", + "member": {} + }, + "S54": { + "type": "structure", + "required": [ + "column", + "line", + "offset" + ], + "members": { + "column": { + "type": "integer" + }, + "line": { + "type": "integer" + }, + "offset": { + "type": "integer" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..d36eef63384d983eb67f4b8256b052cb076a30a9 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.paginators.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "ListAccessPreviewFindings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findings" + }, + "ListAccessPreviews": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "accessPreviews" + }, + "ListAnalyzedResources": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "analyzedResources" + }, + "ListAnalyzers": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "analyzers" + }, + "ListArchiveRules": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "archiveRules" + }, + "ListFindings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findings" + }, + "ListPolicyGenerations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "policyGenerations" + }, + "ValidatePolicy": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "findings" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.min.json new file mode 100644 index 0000000000000000000000000000000000000000..de7e7ea11b9d530482dcecbbb08c2628c1c7783a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.min.json @@ -0,0 +1,476 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-12-08", + "endpointPrefix": "acm", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "ACM", + "serviceFullName": "AWS Certificate Manager", + "serviceId": "ACM", + "signatureVersion": "v4", + "targetPrefix": "CertificateManager", + "uid": "acm-2015-12-08" + }, + "operations": { + "AddTagsToCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Tags" + ], + "members": { + "CertificateArn": {}, + "Tags": { + "shape": "S3" + } + } + } + }, + "DeleteCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + } + }, + "DescribeCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": { + "type": "structure", + "members": { + "CertificateArn": {}, + "DomainName": {}, + "SubjectAlternativeNames": { + "shape": "Sc" + }, + "DomainValidationOptions": { + "shape": "Sd" + }, + "Serial": {}, + "Subject": {}, + "Issuer": {}, + "CreatedAt": { + "type": "timestamp" + }, + "IssuedAt": { + "type": "timestamp" + }, + "ImportedAt": { + "type": "timestamp" + }, + "Status": {}, + "RevokedAt": { + "type": "timestamp" + }, + "RevocationReason": {}, + "NotBefore": { + "type": "timestamp" + }, + "NotAfter": { + "type": "timestamp" + }, + "KeyAlgorithm": {}, + "SignatureAlgorithm": {}, + "InUseBy": { + "type": "list", + "member": {} + }, + "FailureReason": {}, + "Type": {}, + "RenewalSummary": { + "type": "structure", + "required": [ + "RenewalStatus", + "DomainValidationOptions", + "UpdatedAt" + ], + "members": { + "RenewalStatus": {}, + "DomainValidationOptions": { + "shape": "Sd" + }, + "RenewalStatusReason": {}, + "UpdatedAt": { + "type": "timestamp" + } + } + }, + "KeyUsages": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {} + } + } + }, + "ExtendedKeyUsages": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "OID": {} + } + } + }, + "CertificateAuthorityArn": {}, + "RenewalEligibility": {}, + "Options": { + "shape": "S11" + } + } + } + } + } + }, + "ExportCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Passphrase" + ], + "members": { + "CertificateArn": {}, + "Passphrase": { + "type": "blob", + "sensitive": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": {}, + "CertificateChain": {}, + "PrivateKey": { + "type": "string", + "sensitive": true + } + } + } + }, + "GetAccountConfiguration": { + "output": { + "type": "structure", + "members": { + "ExpiryEvents": { + "shape": "S1a" + } + } + } + }, + "GetCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": {}, + "CertificateChain": {} + } + } + }, + "ImportCertificate": { + "input": { + "type": "structure", + "required": [ + "Certificate", + "PrivateKey" + ], + "members": { + "CertificateArn": {}, + "Certificate": { + "type": "blob" + }, + "PrivateKey": { + "type": "blob", + "sensitive": true + }, + "CertificateChain": { + "type": "blob" + }, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "CertificateArn": {} + } + } + }, + "ListCertificates": { + "input": { + "type": "structure", + "members": { + "CertificateStatuses": { + "type": "list", + "member": {} + }, + "Includes": { + "type": "structure", + "members": { + "extendedKeyUsage": { + "type": "list", + "member": {} + }, + "keyUsage": { + "type": "list", + "member": {} + }, + "keyTypes": { + "type": "list", + "member": {} + } + } + }, + "NextToken": {}, + "MaxItems": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "CertificateSummaryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CertificateArn": {}, + "DomainName": {} + } + } + } + } + } + }, + "ListTagsForCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S3" + } + } + } + }, + "PutAccountConfiguration": { + "input": { + "type": "structure", + "required": [ + "IdempotencyToken" + ], + "members": { + "ExpiryEvents": { + "shape": "S1a" + }, + "IdempotencyToken": {} + } + } + }, + "RemoveTagsFromCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Tags" + ], + "members": { + "CertificateArn": {}, + "Tags": { + "shape": "S3" + } + } + } + }, + "RenewCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateArn" + ], + "members": { + "CertificateArn": {} + } + } + }, + "RequestCertificate": { + "input": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "ValidationMethod": {}, + "SubjectAlternativeNames": { + "shape": "Sc" + }, + "IdempotencyToken": {}, + "DomainValidationOptions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DomainName", + "ValidationDomain" + ], + "members": { + "DomainName": {}, + "ValidationDomain": {} + } + } + }, + "Options": { + "shape": "S11" + }, + "CertificateAuthorityArn": {}, + "Tags": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": { + "CertificateArn": {} + } + } + }, + "ResendValidationEmail": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Domain", + "ValidationDomain" + ], + "members": { + "CertificateArn": {}, + "Domain": {}, + "ValidationDomain": {} + } + } + }, + "UpdateCertificateOptions": { + "input": { + "type": "structure", + "required": [ + "CertificateArn", + "Options" + ], + "members": { + "CertificateArn": {}, + "Options": { + "shape": "S11" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sc": { + "type": "list", + "member": {} + }, + "Sd": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DomainName" + ], + "members": { + "DomainName": {}, + "ValidationEmails": { + "type": "list", + "member": {} + }, + "ValidationDomain": {}, + "ValidationStatus": {}, + "ResourceRecord": { + "type": "structure", + "required": [ + "Name", + "Type", + "Value" + ], + "members": { + "Name": {}, + "Type": {}, + "Value": {} + } + }, + "ValidationMethod": {} + } + } + }, + "S11": { + "type": "structure", + "members": { + "CertificateTransparencyLoggingPreference": {} + } + }, + "S1a": { + "type": "structure", + "members": { + "DaysBeforeExpiry": { + "type": "integer" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..611eb86d232d3677026d6e4f2ee0f672830f498b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.paginators.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListCertificates": { + "input_token": "NextToken", + "limit_key": "MaxItems", + "output_token": "NextToken", + "result_key": "CertificateSummaryList" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.waiters2.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.waiters2.json new file mode 100644 index 0000000000000000000000000000000000000000..1fba453d0c17be467dc2a16ad4f9c09fed017104 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-2015-12-08.waiters2.json @@ -0,0 +1,35 @@ +{ + "version": 2, + "waiters": { + "CertificateValidated": { + "delay": 60, + "maxAttempts": 40, + "operation": "DescribeCertificate", + "acceptors": [ + { + "matcher": "pathAll", + "expected": "SUCCESS", + "argument": "Certificate.DomainValidationOptions[].ValidationStatus", + "state": "success" + }, + { + "matcher": "pathAny", + "expected": "PENDING_VALIDATION", + "argument": "Certificate.DomainValidationOptions[].ValidationStatus", + "state": "retry" + }, + { + "matcher": "path", + "expected": "FAILED", + "argument": "Certificate.Status", + "state": "failure" + }, + { + "matcher": "error", + "expected": "ResourceNotFoundException", + "state": "failure" + } + ] + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.min.json new file mode 100644 index 0000000000000000000000000000000000000000..2826d7c73491aab28c61b124f016820489504025 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.min.json @@ -0,0 +1,747 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-08-22", + "endpointPrefix": "acm-pca", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "ACM-PCA", + "serviceFullName": "AWS Certificate Manager Private Certificate Authority", + "serviceId": "ACM PCA", + "signatureVersion": "v4", + "targetPrefix": "ACMPrivateCA", + "uid": "acm-pca-2017-08-22" + }, + "operations": { + "CreateCertificateAuthority": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityConfiguration", + "CertificateAuthorityType" + ], + "members": { + "CertificateAuthorityConfiguration": { + "shape": "S2" + }, + "RevocationConfiguration": { + "shape": "Ss" + }, + "CertificateAuthorityType": {}, + "IdempotencyToken": {}, + "KeyStorageSecurityStandard": {}, + "Tags": { + "shape": "S10" + } + } + }, + "output": { + "type": "structure", + "members": { + "CertificateAuthorityArn": {} + } + }, + "idempotent": true + }, + "CreateCertificateAuthorityAuditReport": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "S3BucketName", + "AuditReportResponseFormat" + ], + "members": { + "CertificateAuthorityArn": {}, + "S3BucketName": {}, + "AuditReportResponseFormat": {} + } + }, + "output": { + "type": "structure", + "members": { + "AuditReportId": {}, + "S3Key": {} + } + }, + "idempotent": true + }, + "CreatePermission": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "Principal", + "Actions" + ], + "members": { + "CertificateAuthorityArn": {}, + "Principal": {}, + "SourceAccount": {}, + "Actions": { + "shape": "S1f" + } + } + } + }, + "DeleteCertificateAuthority": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {}, + "PermanentDeletionTimeInDays": { + "type": "integer" + } + } + } + }, + "DeletePermission": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "Principal" + ], + "members": { + "CertificateAuthorityArn": {}, + "Principal": {}, + "SourceAccount": {} + } + } + }, + "DeletePolicy": { + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": {} + } + } + }, + "DescribeCertificateAuthority": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "CertificateAuthority": { + "shape": "S1n" + } + } + } + }, + "DescribeCertificateAuthorityAuditReport": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "AuditReportId" + ], + "members": { + "CertificateAuthorityArn": {}, + "AuditReportId": {} + } + }, + "output": { + "type": "structure", + "members": { + "AuditReportStatus": {}, + "S3BucketName": {}, + "S3Key": {}, + "CreatedAt": { + "type": "timestamp" + } + } + } + }, + "GetCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "CertificateArn" + ], + "members": { + "CertificateAuthorityArn": {}, + "CertificateArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": {}, + "CertificateChain": {} + } + } + }, + "GetCertificateAuthorityCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Certificate": {}, + "CertificateChain": {} + } + } + }, + "GetCertificateAuthorityCsr": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Csr": {} + } + } + }, + "GetPolicy": { + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Policy": {} + } + } + }, + "ImportCertificateAuthorityCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "Certificate" + ], + "members": { + "CertificateAuthorityArn": {}, + "Certificate": { + "type": "blob" + }, + "CertificateChain": { + "type": "blob" + } + } + } + }, + "IssueCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "Csr", + "SigningAlgorithm", + "Validity" + ], + "members": { + "ApiPassthrough": { + "type": "structure", + "members": { + "Extensions": { + "type": "structure", + "members": { + "CertificatePolicies": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "CertPolicyId" + ], + "members": { + "CertPolicyId": {}, + "PolicyQualifiers": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "PolicyQualifierId", + "Qualifier" + ], + "members": { + "PolicyQualifierId": {}, + "Qualifier": { + "type": "structure", + "required": [ + "CpsUri" + ], + "members": { + "CpsUri": {} + } + } + } + } + } + } + } + }, + "ExtendedKeyUsage": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ExtendedKeyUsageType": {}, + "ExtendedKeyUsageObjectIdentifier": {} + } + } + }, + "KeyUsage": { + "shape": "Sf" + }, + "SubjectAlternativeNames": { + "type": "list", + "member": { + "shape": "Sm" + } + } + } + }, + "Subject": { + "shape": "S5" + } + } + }, + "CertificateAuthorityArn": {}, + "Csr": { + "type": "blob" + }, + "SigningAlgorithm": {}, + "TemplateArn": {}, + "Validity": { + "shape": "S2o" + }, + "ValidityNotBefore": { + "shape": "S2o" + }, + "IdempotencyToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "CertificateArn": {} + } + }, + "idempotent": true + }, + "ListCertificateAuthorities": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "ResourceOwner": {} + } + }, + "output": { + "type": "structure", + "members": { + "CertificateAuthorities": { + "type": "list", + "member": { + "shape": "S1n" + } + }, + "NextToken": {} + } + } + }, + "ListPermissions": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Permissions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CertificateAuthorityArn": {}, + "CreatedAt": { + "type": "timestamp" + }, + "Principal": {}, + "SourceAccount": {}, + "Actions": { + "shape": "S1f" + }, + "Policy": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListTags": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S10" + }, + "NextToken": {} + } + } + }, + "PutPolicy": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "Policy" + ], + "members": { + "ResourceArn": {}, + "Policy": {} + } + } + }, + "RestoreCertificateAuthority": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {} + } + } + }, + "RevokeCertificate": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "CertificateSerial", + "RevocationReason" + ], + "members": { + "CertificateAuthorityArn": {}, + "CertificateSerial": {}, + "RevocationReason": {} + } + } + }, + "TagCertificateAuthority": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "Tags" + ], + "members": { + "CertificateAuthorityArn": {}, + "Tags": { + "shape": "S10" + } + } + } + }, + "UntagCertificateAuthority": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn", + "Tags" + ], + "members": { + "CertificateAuthorityArn": {}, + "Tags": { + "shape": "S10" + } + } + } + }, + "UpdateCertificateAuthority": { + "input": { + "type": "structure", + "required": [ + "CertificateAuthorityArn" + ], + "members": { + "CertificateAuthorityArn": {}, + "RevocationConfiguration": { + "shape": "Ss" + }, + "Status": {} + } + } + } + }, + "shapes": { + "S2": { + "type": "structure", + "required": [ + "KeyAlgorithm", + "SigningAlgorithm", + "Subject" + ], + "members": { + "KeyAlgorithm": {}, + "SigningAlgorithm": {}, + "Subject": { + "shape": "S5" + }, + "CsrExtensions": { + "type": "structure", + "members": { + "KeyUsage": { + "shape": "Sf" + }, + "SubjectInformationAccess": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AccessMethod", + "AccessLocation" + ], + "members": { + "AccessMethod": { + "type": "structure", + "members": { + "CustomObjectIdentifier": {}, + "AccessMethodType": {} + } + }, + "AccessLocation": { + "shape": "Sm" + } + } + } + } + } + } + } + }, + "S5": { + "type": "structure", + "members": { + "Country": {}, + "Organization": {}, + "OrganizationalUnit": {}, + "DistinguishedNameQualifier": {}, + "State": {}, + "CommonName": {}, + "SerialNumber": {}, + "Locality": {}, + "Title": {}, + "Surname": {}, + "GivenName": {}, + "Initials": {}, + "Pseudonym": {}, + "GenerationQualifier": {} + } + }, + "Sf": { + "type": "structure", + "members": { + "DigitalSignature": { + "type": "boolean" + }, + "NonRepudiation": { + "type": "boolean" + }, + "KeyEncipherment": { + "type": "boolean" + }, + "DataEncipherment": { + "type": "boolean" + }, + "KeyAgreement": { + "type": "boolean" + }, + "KeyCertSign": { + "type": "boolean" + }, + "CRLSign": { + "type": "boolean" + }, + "EncipherOnly": { + "type": "boolean" + }, + "DecipherOnly": { + "type": "boolean" + } + } + }, + "Sm": { + "type": "structure", + "members": { + "OtherName": { + "type": "structure", + "required": [ + "TypeId", + "Value" + ], + "members": { + "TypeId": {}, + "Value": {} + } + }, + "Rfc822Name": {}, + "DnsName": {}, + "DirectoryName": { + "shape": "S5" + }, + "EdiPartyName": { + "type": "structure", + "required": [ + "PartyName" + ], + "members": { + "PartyName": {}, + "NameAssigner": {} + } + }, + "UniformResourceIdentifier": {}, + "IpAddress": {}, + "RegisteredId": {} + } + }, + "Ss": { + "type": "structure", + "members": { + "CrlConfiguration": { + "type": "structure", + "required": [ + "Enabled" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "ExpirationInDays": { + "type": "integer" + }, + "CustomCname": {}, + "S3BucketName": {}, + "S3ObjectAcl": {} + } + } + } + }, + "S10": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S1f": { + "type": "list", + "member": {} + }, + "S1n": { + "type": "structure", + "members": { + "Arn": {}, + "OwnerAccount": {}, + "CreatedAt": { + "type": "timestamp" + }, + "LastStateChangeAt": { + "type": "timestamp" + }, + "Type": {}, + "Serial": {}, + "Status": {}, + "NotBefore": { + "type": "timestamp" + }, + "NotAfter": { + "type": "timestamp" + }, + "FailureReason": {}, + "CertificateAuthorityConfiguration": { + "shape": "S2" + }, + "RevocationConfiguration": { + "shape": "Ss" + }, + "RestorableUntil": { + "type": "timestamp" + }, + "KeyStorageSecurityStandard": {} + } + }, + "S2o": { + "type": "structure", + "required": [ + "Value", + "Type" + ], + "members": { + "Value": { + "type": "long" + }, + "Type": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..d60ea0df7fb9bbca015e588ad592508917e82b42 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.paginators.json @@ -0,0 +1,22 @@ +{ + "pagination": { + "ListCertificateAuthorities": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "CertificateAuthorities" + }, + "ListPermissions": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Permissions" + }, + "ListTags": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Tags" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.waiters2.json b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.waiters2.json new file mode 100644 index 0000000000000000000000000000000000000000..79bf399b9909895383da8646b05f943ba635ba39 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/acm-pca-2017-08-22.waiters2.json @@ -0,0 +1,61 @@ +{ + "version": 2, + "waiters": { + "CertificateAuthorityCSRCreated": { + "description": "Wait until a Certificate Authority CSR is created", + "operation": "GetCertificateAuthorityCsr", + "delay": 3, + "maxAttempts": 60, + "acceptors": [ + { + "state": "success", + "matcher": "status", + "expected": 200 + }, + { + "state": "retry", + "matcher": "error", + "expected": "RequestInProgressException" + } + ] + }, + "CertificateIssued": { + "description": "Wait until a certificate is issued", + "operation": "GetCertificate", + "delay": 3, + "maxAttempts": 60, + "acceptors": [ + { + "state": "success", + "matcher": "status", + "expected": 200 + }, + { + "state": "retry", + "matcher": "error", + "expected": "RequestInProgressException" + } + ] + }, + "AuditReportCreated": { + "description": "Wait until a Audit Report is created", + "operation": "DescribeCertificateAuthorityAuditReport", + "delay": 3, + "maxAttempts": 60, + "acceptors": [ + { + "state": "success", + "matcher": "path", + "argument": "AuditReportStatus", + "expected": "SUCCESS" + }, + { + "state": "failure", + "matcher": "path", + "argument": "AuditReportStatus", + "expected": "FAILED" + } + ] + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.min.json new file mode 100644 index 0000000000000000000000000000000000000000..16f2a2d0421e0f3082f5c1681a5668388357f318 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.min.json @@ -0,0 +1,2689 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-11-09", + "endpointPrefix": "a4b", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Alexa For Business", + "serviceId": "Alexa For Business", + "signatureVersion": "v4", + "targetPrefix": "AlexaForBusiness", + "uid": "alexaforbusiness-2017-11-09" + }, + "operations": { + "ApproveSkill": { + "input": { + "type": "structure", + "required": [ + "SkillId" + ], + "members": { + "SkillId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociateContactWithAddressBook": { + "input": { + "type": "structure", + "required": [ + "ContactArn", + "AddressBookArn" + ], + "members": { + "ContactArn": {}, + "AddressBookArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociateDeviceWithNetworkProfile": { + "input": { + "type": "structure", + "required": [ + "DeviceArn", + "NetworkProfileArn" + ], + "members": { + "DeviceArn": {}, + "NetworkProfileArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociateDeviceWithRoom": { + "input": { + "type": "structure", + "members": { + "DeviceArn": {}, + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociateSkillGroupWithRoom": { + "input": { + "type": "structure", + "members": { + "SkillGroupArn": {}, + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociateSkillWithSkillGroup": { + "input": { + "type": "structure", + "required": [ + "SkillId" + ], + "members": { + "SkillGroupArn": {}, + "SkillId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociateSkillWithUsers": { + "input": { + "type": "structure", + "required": [ + "SkillId" + ], + "members": { + "SkillId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateAddressBook": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Description": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "AddressBookArn": {} + } + } + }, + "CreateBusinessReportSchedule": { + "input": { + "type": "structure", + "required": [ + "Format", + "ContentRange" + ], + "members": { + "ScheduleName": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "Format": {}, + "ContentRange": { + "shape": "Sv" + }, + "Recurrence": { + "shape": "Sx" + }, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "ScheduleArn": {} + } + } + }, + "CreateConferenceProvider": { + "input": { + "type": "structure", + "required": [ + "ConferenceProviderName", + "ConferenceProviderType", + "MeetingSetting" + ], + "members": { + "ConferenceProviderName": {}, + "ConferenceProviderType": {}, + "IPDialIn": { + "shape": "S13" + }, + "PSTNDialIn": { + "shape": "S16" + }, + "MeetingSetting": { + "shape": "S1b" + }, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConferenceProviderArn": {} + } + } + }, + "CreateContact": { + "input": { + "type": "structure", + "required": [ + "FirstName" + ], + "members": { + "DisplayName": {}, + "FirstName": {}, + "LastName": {}, + "PhoneNumber": { + "shape": "S1g" + }, + "PhoneNumbers": { + "shape": "S1h" + }, + "SipAddresses": { + "shape": "S1k" + }, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "ContactArn": {} + } + } + }, + "CreateGatewayGroup": { + "input": { + "type": "structure", + "required": [ + "Name", + "ClientRequestToken" + ], + "members": { + "Name": {}, + "Description": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayGroupArn": {} + } + } + }, + "CreateNetworkProfile": { + "input": { + "type": "structure", + "required": [ + "NetworkProfileName", + "Ssid", + "SecurityType", + "ClientRequestToken" + ], + "members": { + "NetworkProfileName": {}, + "Description": {}, + "Ssid": {}, + "SecurityType": {}, + "EapMethod": {}, + "CurrentPassword": { + "shape": "S1z" + }, + "NextPassword": { + "shape": "S20" + }, + "CertificateAuthorityArn": {}, + "TrustAnchors": { + "shape": "S21" + }, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "NetworkProfileArn": {} + } + } + }, + "CreateProfile": { + "input": { + "type": "structure", + "required": [ + "ProfileName", + "Timezone", + "Address", + "DistanceUnit", + "TemperatureUnit", + "WakeWord" + ], + "members": { + "ProfileName": {}, + "Timezone": {}, + "Address": {}, + "DistanceUnit": {}, + "TemperatureUnit": {}, + "WakeWord": {}, + "Locale": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "SetupModeDisabled": { + "type": "boolean" + }, + "MaxVolumeLimit": { + "type": "integer" + }, + "PSTNEnabled": { + "type": "boolean" + }, + "DataRetentionOptIn": { + "type": "boolean" + }, + "MeetingRoomConfiguration": { + "type": "structure", + "members": { + "RoomUtilizationMetricsEnabled": { + "type": "boolean" + }, + "EndOfMeetingReminder": { + "type": "structure", + "required": [ + "ReminderAtMinutes", + "ReminderType", + "Enabled" + ], + "members": { + "ReminderAtMinutes": { + "shape": "S2g" + }, + "ReminderType": {}, + "Enabled": { + "type": "boolean" + } + } + }, + "InstantBooking": { + "type": "structure", + "required": [ + "DurationInMinutes", + "Enabled" + ], + "members": { + "DurationInMinutes": { + "type": "integer" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "RequireCheckIn": { + "type": "structure", + "required": [ + "ReleaseAfterMinutes", + "Enabled" + ], + "members": { + "ReleaseAfterMinutes": { + "type": "integer" + }, + "Enabled": { + "type": "boolean" + } + } + } + } + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "ProfileArn": {} + } + } + }, + "CreateRoom": { + "input": { + "type": "structure", + "required": [ + "RoomName" + ], + "members": { + "RoomName": {}, + "Description": {}, + "ProfileArn": {}, + "ProviderCalendarId": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "RoomArn": {} + } + } + }, + "CreateSkillGroup": { + "input": { + "type": "structure", + "required": [ + "SkillGroupName" + ], + "members": { + "SkillGroupName": {}, + "Description": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "SkillGroupArn": {} + } + } + }, + "CreateUser": { + "input": { + "type": "structure", + "required": [ + "UserId" + ], + "members": { + "UserId": {}, + "FirstName": {}, + "LastName": {}, + "Email": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserArn": {} + } + } + }, + "DeleteAddressBook": { + "input": { + "type": "structure", + "required": [ + "AddressBookArn" + ], + "members": { + "AddressBookArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteBusinessReportSchedule": { + "input": { + "type": "structure", + "required": [ + "ScheduleArn" + ], + "members": { + "ScheduleArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteConferenceProvider": { + "input": { + "type": "structure", + "required": [ + "ConferenceProviderArn" + ], + "members": { + "ConferenceProviderArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteContact": { + "input": { + "type": "structure", + "required": [ + "ContactArn" + ], + "members": { + "ContactArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteDevice": { + "input": { + "type": "structure", + "required": [ + "DeviceArn" + ], + "members": { + "DeviceArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteDeviceUsageData": { + "input": { + "type": "structure", + "required": [ + "DeviceArn", + "DeviceUsageType" + ], + "members": { + "DeviceArn": {}, + "DeviceUsageType": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteGatewayGroup": { + "input": { + "type": "structure", + "required": [ + "GatewayGroupArn" + ], + "members": { + "GatewayGroupArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteNetworkProfile": { + "input": { + "type": "structure", + "required": [ + "NetworkProfileArn" + ], + "members": { + "NetworkProfileArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteProfile": { + "input": { + "type": "structure", + "members": { + "ProfileArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteRoom": { + "input": { + "type": "structure", + "members": { + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteRoomSkillParameter": { + "input": { + "type": "structure", + "required": [ + "SkillId", + "ParameterKey" + ], + "members": { + "RoomArn": {}, + "SkillId": {}, + "ParameterKey": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteSkillAuthorization": { + "input": { + "type": "structure", + "required": [ + "SkillId" + ], + "members": { + "SkillId": {}, + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteSkillGroup": { + "input": { + "type": "structure", + "members": { + "SkillGroupArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteUser": { + "input": { + "type": "structure", + "required": [ + "EnrollmentId" + ], + "members": { + "UserArn": {}, + "EnrollmentId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateContactFromAddressBook": { + "input": { + "type": "structure", + "required": [ + "ContactArn", + "AddressBookArn" + ], + "members": { + "ContactArn": {}, + "AddressBookArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateDeviceFromRoom": { + "input": { + "type": "structure", + "members": { + "DeviceArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateSkillFromSkillGroup": { + "input": { + "type": "structure", + "required": [ + "SkillId" + ], + "members": { + "SkillGroupArn": {}, + "SkillId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateSkillFromUsers": { + "input": { + "type": "structure", + "required": [ + "SkillId" + ], + "members": { + "SkillId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateSkillGroupFromRoom": { + "input": { + "type": "structure", + "members": { + "SkillGroupArn": {}, + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ForgetSmartHomeAppliances": { + "input": { + "type": "structure", + "required": [ + "RoomArn" + ], + "members": { + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "GetAddressBook": { + "input": { + "type": "structure", + "required": [ + "AddressBookArn" + ], + "members": { + "AddressBookArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "AddressBook": { + "type": "structure", + "members": { + "AddressBookArn": {}, + "Name": {}, + "Description": {} + } + } + } + } + }, + "GetConferencePreference": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "Preference": { + "shape": "S4d" + } + } + } + }, + "GetConferenceProvider": { + "input": { + "type": "structure", + "required": [ + "ConferenceProviderArn" + ], + "members": { + "ConferenceProviderArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "ConferenceProvider": { + "shape": "S4g" + } + } + } + }, + "GetContact": { + "input": { + "type": "structure", + "required": [ + "ContactArn" + ], + "members": { + "ContactArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Contact": { + "type": "structure", + "members": { + "ContactArn": {}, + "DisplayName": {}, + "FirstName": {}, + "LastName": {}, + "PhoneNumber": { + "shape": "S1g" + }, + "PhoneNumbers": { + "shape": "S1h" + }, + "SipAddresses": { + "shape": "S1k" + } + } + } + } + } + }, + "GetDevice": { + "input": { + "type": "structure", + "members": { + "DeviceArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Device": { + "type": "structure", + "members": { + "DeviceArn": {}, + "DeviceSerialNumber": {}, + "DeviceType": {}, + "DeviceName": {}, + "SoftwareVersion": {}, + "MacAddress": {}, + "RoomArn": {}, + "DeviceStatus": {}, + "DeviceStatusInfo": { + "shape": "S4t" + }, + "NetworkProfileInfo": { + "type": "structure", + "members": { + "NetworkProfileArn": {}, + "CertificateArn": {}, + "CertificateExpirationTime": { + "type": "timestamp" + } + } + } + } + } + } + } + }, + "GetGateway": { + "input": { + "type": "structure", + "required": [ + "GatewayArn" + ], + "members": { + "GatewayArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Gateway": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {}, + "Description": {}, + "GatewayGroupArn": {}, + "SoftwareVersion": {} + } + } + } + } + }, + "GetGatewayGroup": { + "input": { + "type": "structure", + "required": [ + "GatewayGroupArn" + ], + "members": { + "GatewayGroupArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "GatewayGroup": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {}, + "Description": {} + } + } + } + } + }, + "GetInvitationConfiguration": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "OrganizationName": {}, + "ContactEmail": {}, + "PrivateSkillIds": { + "shape": "S5e" + } + } + } + }, + "GetNetworkProfile": { + "input": { + "type": "structure", + "required": [ + "NetworkProfileArn" + ], + "members": { + "NetworkProfileArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "NetworkProfile": { + "type": "structure", + "members": { + "NetworkProfileArn": {}, + "NetworkProfileName": {}, + "Description": {}, + "Ssid": {}, + "SecurityType": {}, + "EapMethod": {}, + "CurrentPassword": { + "shape": "S1z" + }, + "NextPassword": { + "shape": "S20" + }, + "CertificateAuthorityArn": {}, + "TrustAnchors": { + "shape": "S21" + } + } + } + } + } + }, + "GetProfile": { + "input": { + "type": "structure", + "members": { + "ProfileArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Profile": { + "type": "structure", + "members": { + "ProfileArn": {}, + "ProfileName": {}, + "IsDefault": { + "type": "boolean" + }, + "Address": {}, + "Timezone": {}, + "DistanceUnit": {}, + "TemperatureUnit": {}, + "WakeWord": {}, + "Locale": {}, + "SetupModeDisabled": { + "type": "boolean" + }, + "MaxVolumeLimit": { + "type": "integer" + }, + "PSTNEnabled": { + "type": "boolean" + }, + "DataRetentionOptIn": { + "type": "boolean" + }, + "AddressBookArn": {}, + "MeetingRoomConfiguration": { + "type": "structure", + "members": { + "RoomUtilizationMetricsEnabled": { + "type": "boolean" + }, + "EndOfMeetingReminder": { + "type": "structure", + "members": { + "ReminderAtMinutes": { + "shape": "S2g" + }, + "ReminderType": {}, + "Enabled": { + "type": "boolean" + } + } + }, + "InstantBooking": { + "type": "structure", + "members": { + "DurationInMinutes": { + "type": "integer" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "RequireCheckIn": { + "type": "structure", + "members": { + "ReleaseAfterMinutes": { + "type": "integer" + }, + "Enabled": { + "type": "boolean" + } + } + } + } + } + } + } + } + } + }, + "GetRoom": { + "input": { + "type": "structure", + "members": { + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Room": { + "type": "structure", + "members": { + "RoomArn": {}, + "RoomName": {}, + "Description": {}, + "ProviderCalendarId": {}, + "ProfileArn": {} + } + } + } + } + }, + "GetRoomSkillParameter": { + "input": { + "type": "structure", + "required": [ + "SkillId", + "ParameterKey" + ], + "members": { + "RoomArn": {}, + "SkillId": {}, + "ParameterKey": {} + } + }, + "output": { + "type": "structure", + "members": { + "RoomSkillParameter": { + "shape": "S5u" + } + } + } + }, + "GetSkillGroup": { + "input": { + "type": "structure", + "members": { + "SkillGroupArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "SkillGroup": { + "type": "structure", + "members": { + "SkillGroupArn": {}, + "SkillGroupName": {}, + "Description": {} + } + } + } + } + }, + "ListBusinessReportSchedules": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "BusinessReportSchedules": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ScheduleArn": {}, + "ScheduleName": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "Format": {}, + "ContentRange": { + "shape": "Sv" + }, + "Recurrence": { + "shape": "Sx" + }, + "LastBusinessReport": { + "type": "structure", + "members": { + "Status": {}, + "FailureCode": {}, + "S3Location": { + "type": "structure", + "members": { + "Path": {}, + "BucketName": {} + } + }, + "DeliveryTime": { + "type": "timestamp" + }, + "DownloadUrl": {} + } + } + } + } + }, + "NextToken": {} + } + } + }, + "ListConferenceProviders": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ConferenceProviders": { + "type": "list", + "member": { + "shape": "S4g" + } + }, + "NextToken": {} + } + } + }, + "ListDeviceEvents": { + "input": { + "type": "structure", + "required": [ + "DeviceArn" + ], + "members": { + "DeviceArn": {}, + "EventType": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "DeviceEvents": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Type": {}, + "Value": {}, + "Timestamp": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListGatewayGroups": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "GatewayGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {}, + "Description": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListGateways": { + "input": { + "type": "structure", + "members": { + "GatewayGroupArn": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Gateways": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {}, + "Description": {}, + "GatewayGroupArn": {}, + "SoftwareVersion": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListSkills": { + "input": { + "type": "structure", + "members": { + "SkillGroupArn": {}, + "EnablementType": {}, + "SkillType": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "SkillSummaries": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SkillId": {}, + "SkillName": {}, + "SupportsLinking": { + "type": "boolean" + }, + "EnablementType": {}, + "SkillType": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListSkillsStoreCategories": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "CategoryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CategoryId": { + "type": "long" + }, + "CategoryName": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListSkillsStoreSkillsByCategory": { + "input": { + "type": "structure", + "required": [ + "CategoryId" + ], + "members": { + "CategoryId": { + "type": "long" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "SkillsStoreSkills": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SkillId": {}, + "SkillName": {}, + "ShortDescription": {}, + "IconUrl": {}, + "SampleUtterances": { + "type": "list", + "member": {} + }, + "SkillDetails": { + "type": "structure", + "members": { + "ProductDescription": {}, + "InvocationPhrase": {}, + "ReleaseDate": {}, + "EndUserLicenseAgreement": {}, + "GenericKeywords": { + "type": "list", + "member": {} + }, + "BulletPoints": { + "type": "list", + "member": {} + }, + "NewInThisVersionBulletPoints": { + "type": "list", + "member": {} + }, + "SkillTypes": { + "type": "list", + "member": {} + }, + "Reviews": { + "type": "map", + "key": {}, + "value": {} + }, + "DeveloperInfo": { + "type": "structure", + "members": { + "DeveloperName": {}, + "PrivacyPolicy": {}, + "Email": {}, + "Url": {} + } + } + } + }, + "SupportsLinking": { + "type": "boolean" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListSmartHomeAppliances": { + "input": { + "type": "structure", + "required": [ + "RoomArn" + ], + "members": { + "RoomArn": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "SmartHomeAppliances": { + "type": "list", + "member": { + "type": "structure", + "members": { + "FriendlyName": {}, + "Description": {}, + "ManufacturerName": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListTags": { + "input": { + "type": "structure", + "required": [ + "Arn" + ], + "members": { + "Arn": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "Sl" + }, + "NextToken": {} + } + } + }, + "PutConferencePreference": { + "input": { + "type": "structure", + "required": [ + "ConferencePreference" + ], + "members": { + "ConferencePreference": { + "shape": "S4d" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "PutInvitationConfiguration": { + "input": { + "type": "structure", + "required": [ + "OrganizationName" + ], + "members": { + "OrganizationName": {}, + "ContactEmail": {}, + "PrivateSkillIds": { + "shape": "S5e" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "PutRoomSkillParameter": { + "input": { + "type": "structure", + "required": [ + "SkillId", + "RoomSkillParameter" + ], + "members": { + "RoomArn": {}, + "SkillId": {}, + "RoomSkillParameter": { + "shape": "S5u" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "PutSkillAuthorization": { + "input": { + "type": "structure", + "required": [ + "AuthorizationResult", + "SkillId" + ], + "members": { + "AuthorizationResult": { + "type": "map", + "key": {}, + "value": {}, + "sensitive": true + }, + "SkillId": {}, + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "RegisterAVSDevice": { + "input": { + "type": "structure", + "required": [ + "ClientId", + "UserCode", + "ProductId", + "AmazonId" + ], + "members": { + "ClientId": {}, + "UserCode": {}, + "ProductId": {}, + "DeviceSerialNumber": {}, + "AmazonId": {}, + "RoomArn": {}, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": { + "DeviceArn": {} + } + } + }, + "RejectSkill": { + "input": { + "type": "structure", + "required": [ + "SkillId" + ], + "members": { + "SkillId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ResolveRoom": { + "input": { + "type": "structure", + "required": [ + "UserId", + "SkillId" + ], + "members": { + "UserId": {}, + "SkillId": {} + } + }, + "output": { + "type": "structure", + "members": { + "RoomArn": {}, + "RoomName": {}, + "RoomSkillParameters": { + "type": "list", + "member": { + "shape": "S5u" + } + } + } + } + }, + "RevokeInvitation": { + "input": { + "type": "structure", + "members": { + "UserArn": {}, + "EnrollmentId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "SearchAddressBooks": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "AddressBooks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AddressBookArn": {}, + "Name": {}, + "Description": {} + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SearchContacts": { + "input": { + "type": "structure", + "members": { + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Contacts": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ContactArn": {}, + "DisplayName": {}, + "FirstName": {}, + "LastName": {}, + "PhoneNumber": { + "shape": "S1g" + }, + "PhoneNumbers": { + "shape": "S1h" + }, + "SipAddresses": { + "shape": "S1k" + } + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SearchDevices": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + } + } + }, + "output": { + "type": "structure", + "members": { + "Devices": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DeviceArn": {}, + "DeviceSerialNumber": {}, + "DeviceType": {}, + "DeviceName": {}, + "SoftwareVersion": {}, + "MacAddress": {}, + "DeviceStatus": {}, + "NetworkProfileArn": {}, + "NetworkProfileName": {}, + "RoomArn": {}, + "RoomName": {}, + "DeviceStatusInfo": { + "shape": "S4t" + }, + "CreatedTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SearchNetworkProfiles": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + } + } + }, + "output": { + "type": "structure", + "members": { + "NetworkProfiles": { + "type": "list", + "member": { + "type": "structure", + "members": { + "NetworkProfileArn": {}, + "NetworkProfileName": {}, + "Description": {}, + "Ssid": {}, + "SecurityType": {}, + "EapMethod": {}, + "CertificateAuthorityArn": {} + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SearchProfiles": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + } + } + }, + "output": { + "type": "structure", + "members": { + "Profiles": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ProfileArn": {}, + "ProfileName": {}, + "IsDefault": { + "type": "boolean" + }, + "Address": {}, + "Timezone": {}, + "DistanceUnit": {}, + "TemperatureUnit": {}, + "WakeWord": {}, + "Locale": {} + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SearchRooms": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + } + } + }, + "output": { + "type": "structure", + "members": { + "Rooms": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RoomArn": {}, + "RoomName": {}, + "Description": {}, + "ProviderCalendarId": {}, + "ProfileArn": {}, + "ProfileName": {} + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SearchSkillGroups": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + } + } + }, + "output": { + "type": "structure", + "members": { + "SkillGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SkillGroupArn": {}, + "SkillGroupName": {}, + "Description": {} + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SearchUsers": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "Filters": { + "shape": "S92" + }, + "SortCriteria": { + "shape": "S97" + } + } + }, + "output": { + "type": "structure", + "members": { + "Users": { + "type": "list", + "member": { + "type": "structure", + "members": { + "UserArn": {}, + "FirstName": {}, + "LastName": {}, + "Email": {}, + "EnrollmentStatus": {}, + "EnrollmentId": {} + } + } + }, + "NextToken": {}, + "TotalCount": { + "type": "integer" + } + } + } + }, + "SendAnnouncement": { + "input": { + "type": "structure", + "required": [ + "RoomFilters", + "Content", + "ClientRequestToken" + ], + "members": { + "RoomFilters": { + "shape": "S92" + }, + "Content": { + "type": "structure", + "members": { + "TextList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Locale", + "Value" + ], + "members": { + "Locale": {}, + "Value": {} + } + } + }, + "SsmlList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Locale", + "Value" + ], + "members": { + "Locale": {}, + "Value": {} + } + } + }, + "AudioList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Locale", + "Location" + ], + "members": { + "Locale": {}, + "Location": {} + } + } + } + } + }, + "TimeToLiveInSeconds": { + "type": "integer" + }, + "ClientRequestToken": { + "idempotencyToken": true + } + } + }, + "output": { + "type": "structure", + "members": { + "AnnouncementArn": {} + } + } + }, + "SendInvitation": { + "input": { + "type": "structure", + "members": { + "UserArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "StartDeviceSync": { + "input": { + "type": "structure", + "required": [ + "Features" + ], + "members": { + "RoomArn": {}, + "DeviceArn": {}, + "Features": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "StartSmartHomeApplianceDiscovery": { + "input": { + "type": "structure", + "required": [ + "RoomArn" + ], + "members": { + "RoomArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "TagResource": { + "input": { + "type": "structure", + "required": [ + "Arn", + "Tags" + ], + "members": { + "Arn": {}, + "Tags": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "input": { + "type": "structure", + "required": [ + "Arn", + "TagKeys" + ], + "members": { + "Arn": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateAddressBook": { + "input": { + "type": "structure", + "required": [ + "AddressBookArn" + ], + "members": { + "AddressBookArn": {}, + "Name": {}, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateBusinessReportSchedule": { + "input": { + "type": "structure", + "required": [ + "ScheduleArn" + ], + "members": { + "ScheduleArn": {}, + "S3BucketName": {}, + "S3KeyPrefix": {}, + "Format": {}, + "ScheduleName": {}, + "Recurrence": { + "shape": "Sx" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateConferenceProvider": { + "input": { + "type": "structure", + "required": [ + "ConferenceProviderArn", + "ConferenceProviderType", + "MeetingSetting" + ], + "members": { + "ConferenceProviderArn": {}, + "ConferenceProviderType": {}, + "IPDialIn": { + "shape": "S13" + }, + "PSTNDialIn": { + "shape": "S16" + }, + "MeetingSetting": { + "shape": "S1b" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateContact": { + "input": { + "type": "structure", + "required": [ + "ContactArn" + ], + "members": { + "ContactArn": {}, + "DisplayName": {}, + "FirstName": {}, + "LastName": {}, + "PhoneNumber": { + "shape": "S1g" + }, + "PhoneNumbers": { + "shape": "S1h" + }, + "SipAddresses": { + "shape": "S1k" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateDevice": { + "input": { + "type": "structure", + "members": { + "DeviceArn": {}, + "DeviceName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateGateway": { + "input": { + "type": "structure", + "required": [ + "GatewayArn" + ], + "members": { + "GatewayArn": {}, + "Name": {}, + "Description": {}, + "SoftwareVersion": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateGatewayGroup": { + "input": { + "type": "structure", + "required": [ + "GatewayGroupArn" + ], + "members": { + "GatewayGroupArn": {}, + "Name": {}, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateNetworkProfile": { + "input": { + "type": "structure", + "required": [ + "NetworkProfileArn" + ], + "members": { + "NetworkProfileArn": {}, + "NetworkProfileName": {}, + "Description": {}, + "CurrentPassword": { + "shape": "S1z" + }, + "NextPassword": { + "shape": "S20" + }, + "CertificateAuthorityArn": {}, + "TrustAnchors": { + "shape": "S21" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateProfile": { + "input": { + "type": "structure", + "members": { + "ProfileArn": {}, + "ProfileName": {}, + "IsDefault": { + "type": "boolean" + }, + "Timezone": {}, + "Address": {}, + "DistanceUnit": {}, + "TemperatureUnit": {}, + "WakeWord": {}, + "Locale": {}, + "SetupModeDisabled": { + "type": "boolean" + }, + "MaxVolumeLimit": { + "type": "integer" + }, + "PSTNEnabled": { + "type": "boolean" + }, + "DataRetentionOptIn": { + "type": "boolean" + }, + "MeetingRoomConfiguration": { + "type": "structure", + "members": { + "RoomUtilizationMetricsEnabled": { + "type": "boolean" + }, + "EndOfMeetingReminder": { + "type": "structure", + "members": { + "ReminderAtMinutes": { + "shape": "S2g" + }, + "ReminderType": {}, + "Enabled": { + "type": "boolean" + } + } + }, + "InstantBooking": { + "type": "structure", + "members": { + "DurationInMinutes": { + "type": "integer" + }, + "Enabled": { + "type": "boolean" + } + } + }, + "RequireCheckIn": { + "type": "structure", + "members": { + "ReleaseAfterMinutes": { + "type": "integer" + }, + "Enabled": { + "type": "boolean" + } + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateRoom": { + "input": { + "type": "structure", + "members": { + "RoomArn": {}, + "RoomName": {}, + "Description": {}, + "ProviderCalendarId": {}, + "ProfileArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateSkillGroup": { + "input": { + "type": "structure", + "members": { + "SkillGroupArn": {}, + "SkillGroupName": {}, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "Sl": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sv": { + "type": "structure", + "required": [ + "Interval" + ], + "members": { + "Interval": {} + } + }, + "Sx": { + "type": "structure", + "members": { + "StartDate": {} + } + }, + "S13": { + "type": "structure", + "required": [ + "Endpoint", + "CommsProtocol" + ], + "members": { + "Endpoint": {}, + "CommsProtocol": {} + } + }, + "S16": { + "type": "structure", + "required": [ + "CountryCode", + "PhoneNumber", + "OneClickIdDelay", + "OneClickPinDelay" + ], + "members": { + "CountryCode": {}, + "PhoneNumber": {}, + "OneClickIdDelay": {}, + "OneClickPinDelay": {} + } + }, + "S1b": { + "type": "structure", + "required": [ + "RequirePin" + ], + "members": { + "RequirePin": {} + } + }, + "S1g": { + "type": "string", + "sensitive": true + }, + "S1h": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Number", + "Type" + ], + "members": { + "Number": { + "shape": "S1g" + }, + "Type": { + "type": "string", + "sensitive": true + } + } + } + }, + "S1k": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Uri", + "Type" + ], + "members": { + "Uri": { + "type": "string", + "sensitive": true + }, + "Type": { + "type": "string", + "sensitive": true + } + } + } + }, + "S1z": { + "type": "string", + "sensitive": true + }, + "S20": { + "type": "string", + "sensitive": true + }, + "S21": { + "type": "list", + "member": {} + }, + "S2g": { + "type": "list", + "member": { + "type": "integer" + } + }, + "S4d": { + "type": "structure", + "members": { + "DefaultConferenceProviderArn": {} + } + }, + "S4g": { + "type": "structure", + "members": { + "Arn": {}, + "Name": {}, + "Type": {}, + "IPDialIn": { + "shape": "S13" + }, + "PSTNDialIn": { + "shape": "S16" + }, + "MeetingSetting": { + "shape": "S1b" + } + } + }, + "S4t": { + "type": "structure", + "members": { + "DeviceStatusDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Feature": {}, + "Code": {} + } + } + }, + "ConnectionStatus": {}, + "ConnectionStatusUpdatedTime": { + "type": "timestamp" + } + } + }, + "S5e": { + "type": "list", + "member": {} + }, + "S5u": { + "type": "structure", + "required": [ + "ParameterKey", + "ParameterValue" + ], + "members": { + "ParameterKey": {}, + "ParameterValue": {} + } + }, + "S92": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Values" + ], + "members": { + "Key": {}, + "Values": { + "type": "list", + "member": {} + } + } + } + }, + "S97": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..36eafe0ac1aaaf5b474150c88005987b4ec1eecc --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/alexaforbusiness-2017-11-09.paginators.json @@ -0,0 +1,94 @@ +{ + "pagination": { + "ListBusinessReportSchedules": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListConferenceProviders": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListDeviceEvents": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListGatewayGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListGateways": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSkills": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSkillsStoreCategories": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSkillsStoreSkillsByCategory": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSmartHomeAppliances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchAddressBooks": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchContacts": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchDevices": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchNetworkProfiles": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchProfiles": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchRooms": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchSkillGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchUsers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.min.json new file mode 100644 index 0000000000000000000000000000000000000000..d63f87ce9d31808e9256cd8e069268c4670ff82d --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.min.json @@ -0,0 +1,211 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2020-08-01", + "endpointPrefix": "aps", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "Amazon Prometheus Service", + "serviceId": "amp", + "signatureVersion": "v4", + "signingName": "aps", + "uid": "amp-2020-08-01" + }, + "operations": { + "CreateWorkspace": { + "http": { + "requestUri": "/workspaces", + "responseCode": 202 + }, + "input": { + "type": "structure", + "members": { + "alias": {}, + "clientToken": { + "idempotencyToken": true + } + } + }, + "output": { + "type": "structure", + "required": [ + "arn", + "status", + "workspaceId" + ], + "members": { + "arn": {}, + "status": { + "shape": "S6" + }, + "workspaceId": {} + } + }, + "idempotent": true + }, + "DeleteWorkspace": { + "http": { + "method": "DELETE", + "requestUri": "/workspaces/{workspaceId}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "workspaceId" + ], + "members": { + "clientToken": { + "idempotencyToken": true, + "location": "querystring", + "locationName": "clientToken" + }, + "workspaceId": { + "location": "uri", + "locationName": "workspaceId" + } + } + }, + "idempotent": true + }, + "DescribeWorkspace": { + "http": { + "method": "GET", + "requestUri": "/workspaces/{workspaceId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "workspaceId" + ], + "members": { + "workspaceId": { + "location": "uri", + "locationName": "workspaceId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "workspace" + ], + "members": { + "workspace": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "status", + "workspaceId" + ], + "members": { + "alias": {}, + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "prometheusEndpoint": {}, + "status": { + "shape": "S6" + }, + "workspaceId": {} + } + } + } + } + }, + "ListWorkspaces": { + "http": { + "method": "GET", + "requestUri": "/workspaces", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "alias": { + "location": "querystring", + "locationName": "alias" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "workspaces" + ], + "members": { + "nextToken": {}, + "workspaces": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "status", + "workspaceId" + ], + "members": { + "alias": {}, + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "status": { + "shape": "S6" + }, + "workspaceId": {} + } + } + } + } + } + }, + "UpdateWorkspaceAlias": { + "http": { + "requestUri": "/workspaces/{workspaceId}/alias", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "workspaceId" + ], + "members": { + "alias": {}, + "clientToken": { + "idempotencyToken": true + }, + "workspaceId": { + "location": "uri", + "locationName": "workspaceId" + } + } + }, + "idempotent": true + } + }, + "shapes": { + "S6": { + "type": "structure", + "required": [ + "statusCode" + ], + "members": { + "statusCode": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..8a0ae8e2bf1154392178d683ed85398533a1c7ca --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amp-2020-08-01.paginators.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListWorkspaces": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "workspaces" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.min.json new file mode 100644 index 0000000000000000000000000000000000000000..adbb51d25cc00bfdf1d6f83005f3849f50704aee --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.min.json @@ -0,0 +1,1873 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-07-25", + "endpointPrefix": "amplify", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceAbbreviation": "Amplify", + "serviceFullName": "AWS Amplify", + "serviceId": "Amplify", + "signatureVersion": "v4", + "signingName": "amplify", + "uid": "amplify-2017-07-25" + }, + "operations": { + "CreateApp": { + "http": { + "requestUri": "/apps" + }, + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "description": {}, + "repository": {}, + "platform": {}, + "iamServiceRoleArn": {}, + "oauthToken": { + "shape": "S7" + }, + "accessToken": { + "shape": "S8" + }, + "environmentVariables": { + "shape": "S9" + }, + "enableBranchAutoBuild": { + "type": "boolean" + }, + "enableBranchAutoDeletion": { + "type": "boolean" + }, + "enableBasicAuth": { + "type": "boolean" + }, + "basicAuthCredentials": { + "shape": "Sf" + }, + "customRules": { + "shape": "Sg" + }, + "tags": { + "shape": "Sm" + }, + "buildSpec": {}, + "customHeaders": {}, + "enableAutoBranchCreation": { + "type": "boolean" + }, + "autoBranchCreationPatterns": { + "shape": "Ss" + }, + "autoBranchCreationConfig": { + "shape": "Su" + } + } + }, + "output": { + "type": "structure", + "required": [ + "app" + ], + "members": { + "app": { + "shape": "S12" + } + } + } + }, + "CreateBackendEnvironment": { + "http": { + "requestUri": "/apps/{appId}/backendenvironments" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "environmentName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "environmentName": {}, + "stackName": {}, + "deploymentArtifacts": {} + } + }, + "output": { + "type": "structure", + "required": [ + "backendEnvironment" + ], + "members": { + "backendEnvironment": { + "shape": "S1h" + } + } + } + }, + "CreateBranch": { + "http": { + "requestUri": "/apps/{appId}/branches" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": {}, + "description": {}, + "stage": {}, + "framework": {}, + "enableNotification": { + "type": "boolean" + }, + "enableAutoBuild": { + "type": "boolean" + }, + "environmentVariables": { + "shape": "S9" + }, + "basicAuthCredentials": { + "shape": "Sf" + }, + "enableBasicAuth": { + "type": "boolean" + }, + "enablePerformanceMode": { + "type": "boolean" + }, + "tags": { + "shape": "Sm" + }, + "buildSpec": {}, + "ttl": {}, + "displayName": {}, + "enablePullRequestPreview": { + "type": "boolean" + }, + "pullRequestEnvironmentName": {}, + "backendEnvironmentArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "branch" + ], + "members": { + "branch": { + "shape": "S1o" + } + } + } + }, + "CreateDeployment": { + "http": { + "requestUri": "/apps/{appId}/branches/{branchName}/deployments" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "fileMap": { + "type": "map", + "key": {}, + "value": {} + } + } + }, + "output": { + "type": "structure", + "required": [ + "fileUploadUrls", + "zipUploadUrl" + ], + "members": { + "jobId": {}, + "fileUploadUrls": { + "type": "map", + "key": {}, + "value": {} + }, + "zipUploadUrl": {} + } + } + }, + "CreateDomainAssociation": { + "http": { + "requestUri": "/apps/{appId}/domains" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "domainName", + "subDomainSettings" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "domainName": {}, + "enableAutoSubDomain": { + "type": "boolean" + }, + "subDomainSettings": { + "shape": "S27" + }, + "autoSubDomainCreationPatterns": { + "shape": "S2a" + }, + "autoSubDomainIAMRole": {} + } + }, + "output": { + "type": "structure", + "required": [ + "domainAssociation" + ], + "members": { + "domainAssociation": { + "shape": "S2e" + } + } + } + }, + "CreateWebhook": { + "http": { + "requestUri": "/apps/{appId}/webhooks" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": {}, + "description": {} + } + }, + "output": { + "type": "structure", + "required": [ + "webhook" + ], + "members": { + "webhook": { + "shape": "S2p" + } + } + } + }, + "DeleteApp": { + "http": { + "method": "DELETE", + "requestUri": "/apps/{appId}" + }, + "input": { + "type": "structure", + "required": [ + "appId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "app" + ], + "members": { + "app": { + "shape": "S12" + } + } + } + }, + "DeleteBackendEnvironment": { + "http": { + "method": "DELETE", + "requestUri": "/apps/{appId}/backendenvironments/{environmentName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "environmentName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "environmentName": { + "location": "uri", + "locationName": "environmentName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "backendEnvironment" + ], + "members": { + "backendEnvironment": { + "shape": "S1h" + } + } + } + }, + "DeleteBranch": { + "http": { + "method": "DELETE", + "requestUri": "/apps/{appId}/branches/{branchName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "branch" + ], + "members": { + "branch": { + "shape": "S1o" + } + } + } + }, + "DeleteDomainAssociation": { + "http": { + "method": "DELETE", + "requestUri": "/apps/{appId}/domains/{domainName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "domainName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "domainName": { + "location": "uri", + "locationName": "domainName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "domainAssociation" + ], + "members": { + "domainAssociation": { + "shape": "S2e" + } + } + } + }, + "DeleteJob": { + "http": { + "method": "DELETE", + "requestUri": "/apps/{appId}/branches/{branchName}/jobs/{jobId}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName", + "jobId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "jobId": { + "location": "uri", + "locationName": "jobId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobSummary" + ], + "members": { + "jobSummary": { + "shape": "S33" + } + } + } + }, + "DeleteWebhook": { + "http": { + "method": "DELETE", + "requestUri": "/webhooks/{webhookId}" + }, + "input": { + "type": "structure", + "required": [ + "webhookId" + ], + "members": { + "webhookId": { + "location": "uri", + "locationName": "webhookId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "webhook" + ], + "members": { + "webhook": { + "shape": "S2p" + } + } + } + }, + "GenerateAccessLogs": { + "http": { + "requestUri": "/apps/{appId}/accesslogs" + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "appId" + ], + "members": { + "startTime": { + "type": "timestamp" + }, + "endTime": { + "type": "timestamp" + }, + "domainName": {}, + "appId": { + "location": "uri", + "locationName": "appId" + } + } + }, + "output": { + "type": "structure", + "members": { + "logUrl": {} + } + } + }, + "GetApp": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}" + }, + "input": { + "type": "structure", + "required": [ + "appId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "app" + ], + "members": { + "app": { + "shape": "S12" + } + } + } + }, + "GetArtifactUrl": { + "http": { + "method": "GET", + "requestUri": "/artifacts/{artifactId}" + }, + "input": { + "type": "structure", + "required": [ + "artifactId" + ], + "members": { + "artifactId": { + "location": "uri", + "locationName": "artifactId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "artifactId", + "artifactUrl" + ], + "members": { + "artifactId": {}, + "artifactUrl": {} + } + } + }, + "GetBackendEnvironment": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/backendenvironments/{environmentName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "environmentName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "environmentName": { + "location": "uri", + "locationName": "environmentName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "backendEnvironment" + ], + "members": { + "backendEnvironment": { + "shape": "S1h" + } + } + } + }, + "GetBranch": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/branches/{branchName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "branch" + ], + "members": { + "branch": { + "shape": "S1o" + } + } + } + }, + "GetDomainAssociation": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/domains/{domainName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "domainName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "domainName": { + "location": "uri", + "locationName": "domainName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "domainAssociation" + ], + "members": { + "domainAssociation": { + "shape": "S2e" + } + } + } + }, + "GetJob": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/branches/{branchName}/jobs/{jobId}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName", + "jobId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "jobId": { + "location": "uri", + "locationName": "jobId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "job" + ], + "members": { + "job": { + "type": "structure", + "required": [ + "summary", + "steps" + ], + "members": { + "summary": { + "shape": "S33" + }, + "steps": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "stepName", + "startTime", + "status", + "endTime" + ], + "members": { + "stepName": {}, + "startTime": { + "type": "timestamp" + }, + "status": {}, + "endTime": { + "type": "timestamp" + }, + "logUrl": {}, + "artifactsUrl": {}, + "testArtifactsUrl": {}, + "testConfigUrl": {}, + "screenshots": { + "type": "map", + "key": {}, + "value": {} + }, + "statusReason": {}, + "context": {} + } + } + } + } + } + } + } + }, + "GetWebhook": { + "http": { + "method": "GET", + "requestUri": "/webhooks/{webhookId}" + }, + "input": { + "type": "structure", + "required": [ + "webhookId" + ], + "members": { + "webhookId": { + "location": "uri", + "locationName": "webhookId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "webhook" + ], + "members": { + "webhook": { + "shape": "S2p" + } + } + } + }, + "ListApps": { + "http": { + "method": "GET", + "requestUri": "/apps" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "apps" + ], + "members": { + "apps": { + "type": "list", + "member": { + "shape": "S12" + } + }, + "nextToken": {} + } + } + }, + "ListArtifacts": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/branches/{branchName}/jobs/{jobId}/artifacts" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName", + "jobId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "jobId": { + "location": "uri", + "locationName": "jobId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "artifacts" + ], + "members": { + "artifacts": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "artifactFileName", + "artifactId" + ], + "members": { + "artifactFileName": {}, + "artifactId": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListBackendEnvironments": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/backendenvironments" + }, + "input": { + "type": "structure", + "required": [ + "appId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "environmentName": { + "location": "querystring", + "locationName": "environmentName" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "backendEnvironments" + ], + "members": { + "backendEnvironments": { + "type": "list", + "member": { + "shape": "S1h" + } + }, + "nextToken": {} + } + } + }, + "ListBranches": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/branches" + }, + "input": { + "type": "structure", + "required": [ + "appId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "branches" + ], + "members": { + "branches": { + "type": "list", + "member": { + "shape": "S1o" + } + }, + "nextToken": {} + } + } + }, + "ListDomainAssociations": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/domains" + }, + "input": { + "type": "structure", + "required": [ + "appId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "domainAssociations" + ], + "members": { + "domainAssociations": { + "type": "list", + "member": { + "shape": "S2e" + } + }, + "nextToken": {} + } + } + }, + "ListJobs": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/branches/{branchName}/jobs" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobSummaries" + ], + "members": { + "jobSummaries": { + "type": "list", + "member": { + "shape": "S33" + } + }, + "nextToken": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "Sm" + } + } + } + }, + "ListWebhooks": { + "http": { + "method": "GET", + "requestUri": "/apps/{appId}/webhooks" + }, + "input": { + "type": "structure", + "required": [ + "appId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "webhooks" + ], + "members": { + "webhooks": { + "type": "list", + "member": { + "shape": "S2p" + } + }, + "nextToken": {} + } + } + }, + "StartDeployment": { + "http": { + "requestUri": "/apps/{appId}/branches/{branchName}/deployments/start" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "jobId": {}, + "sourceUrl": {} + } + }, + "output": { + "type": "structure", + "required": [ + "jobSummary" + ], + "members": { + "jobSummary": { + "shape": "S33" + } + } + } + }, + "StartJob": { + "http": { + "requestUri": "/apps/{appId}/branches/{branchName}/jobs" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName", + "jobType" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "jobId": {}, + "jobType": {}, + "jobReason": {}, + "commitId": {}, + "commitMessage": {}, + "commitTime": { + "type": "timestamp" + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobSummary" + ], + "members": { + "jobSummary": { + "shape": "S33" + } + } + } + }, + "StopJob": { + "http": { + "method": "DELETE", + "requestUri": "/apps/{appId}/branches/{branchName}/jobs/{jobId}/stop" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName", + "jobId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "jobId": { + "location": "uri", + "locationName": "jobId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobSummary" + ], + "members": { + "jobSummary": { + "shape": "S33" + } + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "Sm" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateApp": { + "http": { + "requestUri": "/apps/{appId}" + }, + "input": { + "type": "structure", + "required": [ + "appId" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "name": {}, + "description": {}, + "platform": {}, + "iamServiceRoleArn": {}, + "environmentVariables": { + "shape": "S9" + }, + "enableBranchAutoBuild": { + "type": "boolean" + }, + "enableBranchAutoDeletion": { + "type": "boolean" + }, + "enableBasicAuth": { + "type": "boolean" + }, + "basicAuthCredentials": { + "shape": "Sf" + }, + "customRules": { + "shape": "Sg" + }, + "buildSpec": {}, + "customHeaders": {}, + "enableAutoBranchCreation": { + "type": "boolean" + }, + "autoBranchCreationPatterns": { + "shape": "Ss" + }, + "autoBranchCreationConfig": { + "shape": "Su" + }, + "repository": {}, + "oauthToken": { + "shape": "S7" + }, + "accessToken": { + "shape": "S8" + } + } + }, + "output": { + "type": "structure", + "required": [ + "app" + ], + "members": { + "app": { + "shape": "S12" + } + } + } + }, + "UpdateBranch": { + "http": { + "requestUri": "/apps/{appId}/branches/{branchName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "branchName" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "branchName": { + "location": "uri", + "locationName": "branchName" + }, + "description": {}, + "framework": {}, + "stage": {}, + "enableNotification": { + "type": "boolean" + }, + "enableAutoBuild": { + "type": "boolean" + }, + "environmentVariables": { + "shape": "S9" + }, + "basicAuthCredentials": { + "shape": "Sf" + }, + "enableBasicAuth": { + "type": "boolean" + }, + "enablePerformanceMode": { + "type": "boolean" + }, + "buildSpec": {}, + "ttl": {}, + "displayName": {}, + "enablePullRequestPreview": { + "type": "boolean" + }, + "pullRequestEnvironmentName": {}, + "backendEnvironmentArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "branch" + ], + "members": { + "branch": { + "shape": "S1o" + } + } + } + }, + "UpdateDomainAssociation": { + "http": { + "requestUri": "/apps/{appId}/domains/{domainName}" + }, + "input": { + "type": "structure", + "required": [ + "appId", + "domainName", + "subDomainSettings" + ], + "members": { + "appId": { + "location": "uri", + "locationName": "appId" + }, + "domainName": { + "location": "uri", + "locationName": "domainName" + }, + "enableAutoSubDomain": { + "type": "boolean" + }, + "subDomainSettings": { + "shape": "S27" + }, + "autoSubDomainCreationPatterns": { + "shape": "S2a" + }, + "autoSubDomainIAMRole": {} + } + }, + "output": { + "type": "structure", + "required": [ + "domainAssociation" + ], + "members": { + "domainAssociation": { + "shape": "S2e" + } + } + } + }, + "UpdateWebhook": { + "http": { + "requestUri": "/webhooks/{webhookId}" + }, + "input": { + "type": "structure", + "required": [ + "webhookId" + ], + "members": { + "webhookId": { + "location": "uri", + "locationName": "webhookId" + }, + "branchName": {}, + "description": {} + } + }, + "output": { + "type": "structure", + "required": [ + "webhook" + ], + "members": { + "webhook": { + "shape": "S2p" + } + } + } + } + }, + "shapes": { + "S7": { + "type": "string", + "sensitive": true + }, + "S8": { + "type": "string", + "sensitive": true + }, + "S9": { + "type": "map", + "key": {}, + "value": {} + }, + "Sf": { + "type": "string", + "sensitive": true + }, + "Sg": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "source", + "target" + ], + "members": { + "source": {}, + "target": {}, + "status": {}, + "condition": {} + } + } + }, + "Sm": { + "type": "map", + "key": {}, + "value": {} + }, + "Ss": { + "type": "list", + "member": {} + }, + "Su": { + "type": "structure", + "members": { + "stage": {}, + "framework": {}, + "enableAutoBuild": { + "type": "boolean" + }, + "environmentVariables": { + "shape": "S9" + }, + "basicAuthCredentials": { + "shape": "Sf" + }, + "enableBasicAuth": { + "type": "boolean" + }, + "enablePerformanceMode": { + "type": "boolean" + }, + "buildSpec": {}, + "enablePullRequestPreview": { + "type": "boolean" + }, + "pullRequestEnvironmentName": {} + } + }, + "S12": { + "type": "structure", + "required": [ + "appId", + "appArn", + "name", + "description", + "repository", + "platform", + "createTime", + "updateTime", + "environmentVariables", + "defaultDomain", + "enableBranchAutoBuild", + "enableBasicAuth" + ], + "members": { + "appId": {}, + "appArn": {}, + "name": {}, + "tags": { + "shape": "Sm" + }, + "description": {}, + "repository": {}, + "platform": {}, + "createTime": { + "type": "timestamp" + }, + "updateTime": { + "type": "timestamp" + }, + "iamServiceRoleArn": {}, + "environmentVariables": { + "shape": "S9" + }, + "defaultDomain": {}, + "enableBranchAutoBuild": { + "type": "boolean" + }, + "enableBranchAutoDeletion": { + "type": "boolean" + }, + "enableBasicAuth": { + "type": "boolean" + }, + "basicAuthCredentials": { + "shape": "Sf" + }, + "customRules": { + "shape": "Sg" + }, + "productionBranch": { + "type": "structure", + "members": { + "lastDeployTime": { + "type": "timestamp" + }, + "status": {}, + "thumbnailUrl": {}, + "branchName": {} + } + }, + "buildSpec": {}, + "customHeaders": {}, + "enableAutoBranchCreation": { + "type": "boolean" + }, + "autoBranchCreationPatterns": { + "shape": "Ss" + }, + "autoBranchCreationConfig": { + "shape": "Su" + } + } + }, + "S1h": { + "type": "structure", + "required": [ + "backendEnvironmentArn", + "environmentName", + "createTime", + "updateTime" + ], + "members": { + "backendEnvironmentArn": {}, + "environmentName": {}, + "stackName": {}, + "deploymentArtifacts": {}, + "createTime": { + "type": "timestamp" + }, + "updateTime": { + "type": "timestamp" + } + } + }, + "S1o": { + "type": "structure", + "required": [ + "branchArn", + "branchName", + "description", + "stage", + "displayName", + "enableNotification", + "createTime", + "updateTime", + "environmentVariables", + "enableAutoBuild", + "customDomains", + "framework", + "activeJobId", + "totalNumberOfJobs", + "enableBasicAuth", + "ttl", + "enablePullRequestPreview" + ], + "members": { + "branchArn": {}, + "branchName": {}, + "description": {}, + "tags": { + "shape": "Sm" + }, + "stage": {}, + "displayName": {}, + "enableNotification": { + "type": "boolean" + }, + "createTime": { + "type": "timestamp" + }, + "updateTime": { + "type": "timestamp" + }, + "environmentVariables": { + "shape": "S9" + }, + "enableAutoBuild": { + "type": "boolean" + }, + "customDomains": { + "type": "list", + "member": {} + }, + "framework": {}, + "activeJobId": {}, + "totalNumberOfJobs": {}, + "enableBasicAuth": { + "type": "boolean" + }, + "enablePerformanceMode": { + "type": "boolean" + }, + "thumbnailUrl": {}, + "basicAuthCredentials": { + "shape": "Sf" + }, + "buildSpec": {}, + "ttl": {}, + "associatedResources": { + "type": "list", + "member": {} + }, + "enablePullRequestPreview": { + "type": "boolean" + }, + "pullRequestEnvironmentName": {}, + "destinationBranch": {}, + "sourceBranch": {}, + "backendEnvironmentArn": {} + } + }, + "S27": { + "type": "list", + "member": { + "shape": "S28" + } + }, + "S28": { + "type": "structure", + "required": [ + "prefix", + "branchName" + ], + "members": { + "prefix": {}, + "branchName": {} + } + }, + "S2a": { + "type": "list", + "member": {} + }, + "S2e": { + "type": "structure", + "required": [ + "domainAssociationArn", + "domainName", + "enableAutoSubDomain", + "domainStatus", + "statusReason", + "subDomains" + ], + "members": { + "domainAssociationArn": {}, + "domainName": {}, + "enableAutoSubDomain": { + "type": "boolean" + }, + "autoSubDomainCreationPatterns": { + "shape": "S2a" + }, + "autoSubDomainIAMRole": {}, + "domainStatus": {}, + "statusReason": {}, + "certificateVerificationDNSRecord": {}, + "subDomains": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "subDomainSetting", + "verified", + "dnsRecord" + ], + "members": { + "subDomainSetting": { + "shape": "S28" + }, + "verified": { + "type": "boolean" + }, + "dnsRecord": {} + } + } + } + } + }, + "S2p": { + "type": "structure", + "required": [ + "webhookArn", + "webhookId", + "webhookUrl", + "branchName", + "description", + "createTime", + "updateTime" + ], + "members": { + "webhookArn": {}, + "webhookId": {}, + "webhookUrl": {}, + "branchName": {}, + "description": {}, + "createTime": { + "type": "timestamp" + }, + "updateTime": { + "type": "timestamp" + } + } + }, + "S33": { + "type": "structure", + "required": [ + "jobArn", + "jobId", + "commitId", + "commitMessage", + "commitTime", + "startTime", + "status", + "jobType" + ], + "members": { + "jobArn": {}, + "jobId": {}, + "commitId": {}, + "commitMessage": {}, + "commitTime": { + "type": "timestamp" + }, + "startTime": { + "type": "timestamp" + }, + "status": {}, + "endTime": { + "type": "timestamp" + }, + "jobType": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..5677bd8e4a2d9309fc734f7ee5ce968405a5144f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amplify-2017-07-25.paginators.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amplifybackend-2020-08-11.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/amplifybackend-2020-08-11.min.json new file mode 100644 index 0000000000000000000000000000000000000000..60a42ae949b950c6f9eb96162d399730849b8216 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amplifybackend-2020-08-11.min.json @@ -0,0 +1,1580 @@ +{ + "metadata": { + "apiVersion": "2020-08-11", + "endpointPrefix": "amplifybackend", + "signingName": "amplifybackend", + "serviceFullName": "AmplifyBackend", + "serviceId": "AmplifyBackend", + "protocol": "rest-json", + "jsonVersion": "1.1", + "uid": "amplifybackend-2020-08-11", + "signatureVersion": "v4" + }, + "operations": { + "CloneBackend": { + "http": { + "requestUri": "/backend/{appId}/environments/{backendEnvironmentName}/clone", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "TargetEnvironmentName": { + "locationName": "targetEnvironmentName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "TargetEnvironmentName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "CreateBackend": { + "http": { + "requestUri": "/backend", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "AppName": { + "locationName": "appName" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "ResourceConfig": { + "locationName": "resourceConfig", + "type": "structure", + "members": {} + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "AppName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "CreateBackendAPI": { + "http": { + "requestUri": "/backend/{appId}/api", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "ResourceConfig": { + "shape": "S8", + "locationName": "resourceConfig" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "ResourceName", + "BackendEnvironmentName", + "ResourceConfig" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "CreateBackendAuth": { + "http": { + "requestUri": "/backend/{appId}/auth", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "ResourceConfig": { + "shape": "Si", + "locationName": "resourceConfig" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "ResourceName", + "BackendEnvironmentName", + "ResourceConfig" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "CreateBackendConfig": { + "http": { + "requestUri": "/backend/{appId}/config", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendManagerAppId": { + "locationName": "backendManagerAppId" + } + }, + "required": [ + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "JobId": { + "locationName": "jobId" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "CreateToken": { + "http": { + "requestUri": "/backend/{appId}/challenge", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + } + }, + "required": [ + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "ChallengeCode": { + "locationName": "challengeCode" + }, + "SessionId": { + "locationName": "sessionId" + }, + "Ttl": { + "locationName": "ttl" + } + } + } + }, + "DeleteBackend": { + "http": { + "requestUri": "/backend/{appId}/environments/{backendEnvironmentName}/remove", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "DeleteBackendAPI": { + "http": { + "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/remove", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceConfig": { + "shape": "S8", + "locationName": "resourceConfig" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "DeleteBackendAuth": { + "http": { + "requestUri": "/backend/{appId}/auth/{backendEnvironmentName}/remove", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "DeleteToken": { + "http": { + "requestUri": "/backend/{appId}/challenge/{sessionId}/remove", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "SessionId": { + "location": "uri", + "locationName": "sessionId" + } + }, + "required": [ + "SessionId", + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "IsSuccess": { + "locationName": "isSuccess", + "type": "boolean" + } + } + } + }, + "GenerateBackendAPIModels": { + "http": { + "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/generateModels", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "GetBackend": { + "http": { + "requestUri": "/backend/{appId}/details", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + } + }, + "required": [ + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "AmplifyMetaConfig": { + "locationName": "amplifyMetaConfig" + }, + "AppId": { + "locationName": "appId" + }, + "AppName": { + "locationName": "appName" + }, + "BackendEnvironmentList": { + "shape": "S11", + "locationName": "backendEnvironmentList" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + } + } + } + }, + "GetBackendAPI": { + "http": { + "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/details", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceConfig": { + "shape": "S8", + "locationName": "resourceConfig" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "ResourceConfig": { + "shape": "S8", + "locationName": "resourceConfig" + }, + "ResourceName": { + "locationName": "resourceName" + } + } + } + }, + "GetBackendAPIModels": { + "http": { + "requestUri": "/backend/{appId}/api/{backendEnvironmentName}/getModels", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName" + ] + }, + "output": { + "type": "structure", + "members": { + "Models": { + "locationName": "models" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "GetBackendAuth": { + "http": { + "requestUri": "/backend/{appId}/auth/{backendEnvironmentName}/details", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "ResourceConfig": { + "shape": "Si", + "locationName": "resourceConfig" + }, + "ResourceName": { + "locationName": "resourceName" + } + } + } + }, + "GetBackendJob": { + "http": { + "method": "GET", + "requestUri": "/backend/{appId}/job/{backendEnvironmentName}/{jobId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "JobId": { + "location": "uri", + "locationName": "jobId" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "JobId" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "CreateTime": { + "locationName": "createTime" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + }, + "UpdateTime": { + "locationName": "updateTime" + } + } + } + }, + "GetToken": { + "http": { + "method": "GET", + "requestUri": "/backend/{appId}/challenge/{sessionId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "SessionId": { + "location": "uri", + "locationName": "sessionId" + } + }, + "required": [ + "SessionId", + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "ChallengeCode": { + "locationName": "challengeCode" + }, + "SessionId": { + "locationName": "sessionId" + }, + "Ttl": { + "locationName": "ttl" + } + } + } + }, + "ListBackendJobs": { + "http": { + "requestUri": "/backend/{appId}/job/{backendEnvironmentName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "JobId": { + "locationName": "jobId" + }, + "MaxResults": { + "locationName": "maxResults", + "type": "integer" + }, + "NextToken": { + "locationName": "nextToken" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName" + ] + }, + "output": { + "type": "structure", + "members": { + "Jobs": { + "locationName": "jobs", + "type": "list", + "member": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "CreateTime": { + "locationName": "createTime" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + }, + "UpdateTime": { + "locationName": "updateTime" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "RemoveAllBackends": { + "http": { + "requestUri": "/backend/{appId}/remove", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "CleanAmplifyApp": { + "locationName": "cleanAmplifyApp", + "type": "boolean" + } + }, + "required": [ + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "RemoveBackendConfig": { + "http": { + "requestUri": "/backend/{appId}/config/remove", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + } + }, + "required": [ + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "Error": { + "locationName": "error" + } + } + } + }, + "UpdateBackendAPI": { + "http": { + "requestUri": "/backend/{appId}/api/{backendEnvironmentName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceConfig": { + "shape": "S8", + "locationName": "resourceConfig" + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "UpdateBackendAuth": { + "http": { + "requestUri": "/backend/{appId}/auth/{backendEnvironmentName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "ResourceConfig": { + "locationName": "resourceConfig", + "type": "structure", + "members": { + "AuthResources": { + "locationName": "authResources" + }, + "IdentityPoolConfigs": { + "locationName": "identityPoolConfigs", + "type": "structure", + "members": { + "UnauthenticatedLogin": { + "locationName": "unauthenticatedLogin", + "type": "boolean" + } + } + }, + "Service": { + "locationName": "service" + }, + "UserPoolConfigs": { + "locationName": "userPoolConfigs", + "type": "structure", + "members": { + "ForgotPassword": { + "locationName": "forgotPassword", + "type": "structure", + "members": { + "DeliveryMethod": { + "locationName": "deliveryMethod" + }, + "EmailSettings": { + "shape": "Sq", + "locationName": "emailSettings" + }, + "SmsSettings": { + "shape": "Sr", + "locationName": "smsSettings" + } + } + }, + "Mfa": { + "locationName": "mfa", + "type": "structure", + "members": { + "MFAMode": {}, + "Settings": { + "shape": "Su", + "locationName": "settings" + } + } + }, + "OAuth": { + "locationName": "oAuth", + "type": "structure", + "members": { + "DomainPrefix": { + "locationName": "domainPrefix" + }, + "OAuthGrantType": { + "locationName": "oAuthGrantType" + }, + "OAuthScopes": { + "shape": "Sz", + "locationName": "oAuthScopes" + }, + "RedirectSignInURIs": { + "shape": "S11", + "locationName": "redirectSignInURIs" + }, + "RedirectSignOutURIs": { + "shape": "S11", + "locationName": "redirectSignOutURIs" + }, + "SocialProviderSettings": { + "shape": "S12", + "locationName": "socialProviderSettings" + } + } + }, + "PasswordPolicy": { + "locationName": "passwordPolicy", + "type": "structure", + "members": { + "AdditionalConstraints": { + "shape": "S15", + "locationName": "additionalConstraints" + }, + "MinimumLength": { + "locationName": "minimumLength", + "type": "double" + } + } + } + } + } + }, + "required": [ + "AuthResources", + "UserPoolConfigs", + "Service" + ] + }, + "ResourceName": { + "locationName": "resourceName" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "ResourceName", + "ResourceConfig" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + } + } + }, + "UpdateBackendConfig": { + "http": { + "requestUri": "/backend/{appId}/config/update", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "LoginAuthConfig": { + "shape": "S2n", + "locationName": "loginAuthConfig" + } + }, + "required": [ + "AppId" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendManagerAppId": { + "locationName": "backendManagerAppId" + }, + "Error": { + "locationName": "error" + }, + "LoginAuthConfig": { + "shape": "S2n", + "locationName": "loginAuthConfig" + } + } + } + }, + "UpdateBackendJob": { + "http": { + "requestUri": "/backend/{appId}/job/{backendEnvironmentName}/{jobId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppId": { + "location": "uri", + "locationName": "appId" + }, + "BackendEnvironmentName": { + "location": "uri", + "locationName": "backendEnvironmentName" + }, + "JobId": { + "location": "uri", + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + } + }, + "required": [ + "AppId", + "BackendEnvironmentName", + "JobId" + ] + }, + "output": { + "type": "structure", + "members": { + "AppId": { + "locationName": "appId" + }, + "BackendEnvironmentName": { + "locationName": "backendEnvironmentName" + }, + "CreateTime": { + "locationName": "createTime" + }, + "Error": { + "locationName": "error" + }, + "JobId": { + "locationName": "jobId" + }, + "Operation": { + "locationName": "operation" + }, + "Status": { + "locationName": "status" + }, + "UpdateTime": { + "locationName": "updateTime" + } + } + } + } + }, + "shapes": { + "S8": { + "type": "structure", + "members": { + "AdditionalAuthTypes": { + "locationName": "additionalAuthTypes", + "type": "list", + "member": { + "shape": "Sa" + } + }, + "ApiName": { + "locationName": "apiName" + }, + "ConflictResolution": { + "locationName": "conflictResolution", + "type": "structure", + "members": { + "ResolutionStrategy": { + "locationName": "resolutionStrategy" + } + } + }, + "DefaultAuthType": { + "shape": "Sa", + "locationName": "defaultAuthType" + }, + "Service": { + "locationName": "service" + }, + "TransformSchema": { + "locationName": "transformSchema" + } + } + }, + "Sa": { + "type": "structure", + "members": { + "Mode": { + "locationName": "mode" + }, + "Settings": { + "locationName": "settings", + "type": "structure", + "members": { + "CognitoUserPoolId": { + "locationName": "cognitoUserPoolId" + }, + "Description": { + "locationName": "description" + }, + "ExpirationTime": { + "locationName": "expirationTime", + "type": "double" + }, + "OpenIDAuthTTL": { + "locationName": "openIDAuthTTL" + }, + "OpenIDClientId": { + "locationName": "openIDClientId" + }, + "OpenIDIatTTL": { + "locationName": "openIDIatTTL" + }, + "OpenIDIssueURL": { + "locationName": "openIDIssueURL" + }, + "OpenIDProviderName": { + "locationName": "openIDProviderName" + } + } + } + } + }, + "Si": { + "type": "structure", + "members": { + "AuthResources": { + "locationName": "authResources" + }, + "IdentityPoolConfigs": { + "locationName": "identityPoolConfigs", + "type": "structure", + "members": { + "IdentityPoolName": { + "locationName": "identityPoolName" + }, + "UnauthenticatedLogin": { + "locationName": "unauthenticatedLogin", + "type": "boolean" + } + }, + "required": [ + "UnauthenticatedLogin", + "IdentityPoolName" + ] + }, + "Service": { + "locationName": "service" + }, + "UserPoolConfigs": { + "locationName": "userPoolConfigs", + "type": "structure", + "members": { + "ForgotPassword": { + "locationName": "forgotPassword", + "type": "structure", + "members": { + "DeliveryMethod": { + "locationName": "deliveryMethod" + }, + "EmailSettings": { + "shape": "Sq", + "locationName": "emailSettings" + }, + "SmsSettings": { + "shape": "Sr", + "locationName": "smsSettings" + } + }, + "required": [ + "DeliveryMethod" + ] + }, + "Mfa": { + "locationName": "mfa", + "type": "structure", + "members": { + "MFAMode": {}, + "Settings": { + "shape": "Su", + "locationName": "settings" + } + }, + "required": [ + "MFAMode" + ] + }, + "OAuth": { + "locationName": "oAuth", + "type": "structure", + "members": { + "DomainPrefix": { + "locationName": "domainPrefix" + }, + "OAuthGrantType": { + "locationName": "oAuthGrantType" + }, + "OAuthScopes": { + "shape": "Sz", + "locationName": "oAuthScopes" + }, + "RedirectSignInURIs": { + "shape": "S11", + "locationName": "redirectSignInURIs" + }, + "RedirectSignOutURIs": { + "shape": "S11", + "locationName": "redirectSignOutURIs" + }, + "SocialProviderSettings": { + "shape": "S12", + "locationName": "socialProviderSettings" + } + }, + "required": [ + "RedirectSignOutURIs", + "RedirectSignInURIs", + "OAuthGrantType", + "OAuthScopes" + ] + }, + "PasswordPolicy": { + "locationName": "passwordPolicy", + "type": "structure", + "members": { + "AdditionalConstraints": { + "shape": "S15", + "locationName": "additionalConstraints" + }, + "MinimumLength": { + "locationName": "minimumLength", + "type": "double" + } + }, + "required": [ + "MinimumLength" + ] + }, + "RequiredSignUpAttributes": { + "locationName": "requiredSignUpAttributes", + "type": "list", + "member": {} + }, + "SignInMethod": { + "locationName": "signInMethod" + }, + "UserPoolName": { + "locationName": "userPoolName" + } + }, + "required": [ + "RequiredSignUpAttributes", + "SignInMethod", + "UserPoolName" + ] + } + }, + "required": [ + "AuthResources", + "UserPoolConfigs", + "Service" + ] + }, + "Sq": { + "type": "structure", + "members": { + "EmailMessage": { + "locationName": "emailMessage" + }, + "EmailSubject": { + "locationName": "emailSubject" + } + } + }, + "Sr": { + "type": "structure", + "members": { + "SmsMessage": { + "locationName": "smsMessage" + } + } + }, + "Su": { + "type": "structure", + "members": { + "MfaTypes": { + "locationName": "mfaTypes", + "type": "list", + "member": {} + }, + "SmsMessage": { + "locationName": "smsMessage" + } + } + }, + "Sz": { + "type": "list", + "member": {} + }, + "S11": { + "type": "list", + "member": {} + }, + "S12": { + "type": "structure", + "members": { + "Facebook": { + "shape": "S13" + }, + "Google": { + "shape": "S13" + }, + "LoginWithAmazon": { + "shape": "S13" + } + } + }, + "S13": { + "type": "structure", + "members": { + "ClientId": { + "locationName": "client_id" + }, + "ClientSecret": { + "locationName": "client_secret" + } + } + }, + "S15": { + "type": "list", + "member": {} + }, + "S2n": { + "type": "structure", + "members": { + "AwsCognitoIdentityPoolId": { + "locationName": "aws_cognito_identity_pool_id" + }, + "AwsCognitoRegion": { + "locationName": "aws_cognito_region" + }, + "AwsUserPoolsId": { + "locationName": "aws_user_pools_id" + }, + "AwsUserPoolsWebClientId": { + "locationName": "aws_user_pools_web_client_id" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/amplifybackend-2020-08-11.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/amplifybackend-2020-08-11.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..40304c7d438fddadc6e6ae26f20d803d8cd29757 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/amplifybackend-2020-08-11.paginators.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListBackendJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Jobs" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json new file mode 100644 index 0000000000000000000000000000000000000000..a1d340f5748c5425dc210f0489f54443cce28627 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.min.json @@ -0,0 +1,4402 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2015-07-09", + "endpointPrefix": "apigateway", + "protocol": "rest-json", + "serviceFullName": "Amazon API Gateway", + "serviceId": "API Gateway", + "signatureVersion": "v4", + "uid": "apigateway-2015-07-09" + }, + "operations": { + "CreateApiKey": { + "http": { + "requestUri": "/apikeys", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "name": {}, + "description": {}, + "enabled": { + "type": "boolean" + }, + "generateDistinctId": { + "type": "boolean" + }, + "value": {}, + "stageKeys": { + "type": "list", + "member": { + "type": "structure", + "members": { + "restApiId": {}, + "stageName": {} + } + } + }, + "customerId": {}, + "tags": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S7" + } + }, + "CreateAuthorizer": { + "http": { + "requestUri": "/restapis/{restapi_id}/authorizers", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "name", + "type" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "name": {}, + "type": {}, + "providerARNs": { + "shape": "Sc" + }, + "authType": {}, + "authorizerUri": {}, + "authorizerCredentials": {}, + "identitySource": {}, + "identityValidationExpression": {}, + "authorizerResultTtlInSeconds": { + "type": "integer" + } + } + }, + "output": { + "shape": "Sf" + } + }, + "CreateBasePathMapping": { + "http": { + "requestUri": "/domainnames/{domain_name}/basepathmappings", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "restApiId" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": {}, + "restApiId": {}, + "stage": {} + } + }, + "output": { + "shape": "Sh" + } + }, + "CreateDeployment": { + "http": { + "requestUri": "/restapis/{restapi_id}/deployments", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": {}, + "stageDescription": {}, + "description": {}, + "cacheClusterEnabled": { + "type": "boolean" + }, + "cacheClusterSize": {}, + "variables": { + "shape": "S6" + }, + "canarySettings": { + "type": "structure", + "members": { + "percentTraffic": { + "type": "double" + }, + "stageVariableOverrides": { + "shape": "S6" + }, + "useStageCache": { + "type": "boolean" + } + } + }, + "tracingEnabled": { + "type": "boolean" + } + } + }, + "output": { + "shape": "Sn" + } + }, + "CreateDocumentationPart": { + "http": { + "requestUri": "/restapis/{restapi_id}/documentation/parts", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "location", + "properties" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "location": { + "shape": "Ss" + }, + "properties": {} + } + }, + "output": { + "shape": "Sv" + } + }, + "CreateDocumentationVersion": { + "http": { + "requestUri": "/restapis/{restapi_id}/documentation/versions", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "documentationVersion" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "documentationVersion": {}, + "stageName": {}, + "description": {} + } + }, + "output": { + "shape": "Sx" + } + }, + "CreateDomainName": { + "http": { + "requestUri": "/domainnames", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": {}, + "certificateName": {}, + "certificateBody": {}, + "certificatePrivateKey": {}, + "certificateChain": {}, + "certificateArn": {}, + "regionalCertificateName": {}, + "regionalCertificateArn": {}, + "endpointConfiguration": { + "shape": "Sz" + }, + "tags": { + "shape": "S6" + }, + "securityPolicy": {}, + "mutualTlsAuthentication": { + "type": "structure", + "members": { + "truststoreUri": {}, + "truststoreVersion": {} + } + } + } + }, + "output": { + "shape": "S14" + } + }, + "CreateModel": { + "http": { + "requestUri": "/restapis/{restapi_id}/models", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "name", + "contentType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "name": {}, + "description": {}, + "schema": {}, + "contentType": {} + } + }, + "output": { + "shape": "S18" + } + }, + "CreateRequestValidator": { + "http": { + "requestUri": "/restapis/{restapi_id}/requestvalidators", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "name": {}, + "validateRequestBody": { + "type": "boolean" + }, + "validateRequestParameters": { + "type": "boolean" + } + } + }, + "output": { + "shape": "S1a" + } + }, + "CreateResource": { + "http": { + "requestUri": "/restapis/{restapi_id}/resources/{parent_id}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "parentId", + "pathPart" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "parentId": { + "location": "uri", + "locationName": "parent_id" + }, + "pathPart": {} + } + }, + "output": { + "shape": "S1c" + } + }, + "CreateRestApi": { + "http": { + "requestUri": "/restapis", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "description": {}, + "version": {}, + "cloneFrom": {}, + "binaryMediaTypes": { + "shape": "S9" + }, + "minimumCompressionSize": { + "type": "integer" + }, + "apiKeySource": {}, + "endpointConfiguration": { + "shape": "Sz" + }, + "policy": {}, + "tags": { + "shape": "S6" + }, + "disableExecuteApiEndpoint": { + "type": "boolean" + } + } + }, + "output": { + "shape": "S1t" + } + }, + "CreateStage": { + "http": { + "requestUri": "/restapis/{restapi_id}/stages", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": {}, + "deploymentId": {}, + "description": {}, + "cacheClusterEnabled": { + "type": "boolean" + }, + "cacheClusterSize": {}, + "variables": { + "shape": "S6" + }, + "documentationVersion": {}, + "canarySettings": { + "shape": "S1v" + }, + "tracingEnabled": { + "type": "boolean" + }, + "tags": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S1w" + } + }, + "CreateUsagePlan": { + "http": { + "requestUri": "/usageplans", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "description": {}, + "apiStages": { + "shape": "S23" + }, + "throttle": { + "shape": "S26" + }, + "quota": { + "shape": "S27" + }, + "tags": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S29" + } + }, + "CreateUsagePlanKey": { + "http": { + "requestUri": "/usageplans/{usageplanId}/keys", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId", + "keyId", + "keyType" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + }, + "keyId": {}, + "keyType": {} + } + }, + "output": { + "shape": "S2b" + } + }, + "CreateVpcLink": { + "http": { + "requestUri": "/vpclinks", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "name", + "targetArns" + ], + "members": { + "name": {}, + "description": {}, + "targetArns": { + "shape": "S9" + }, + "tags": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S2d" + } + }, + "DeleteApiKey": { + "http": { + "method": "DELETE", + "requestUri": "/apikeys/{api_Key}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "apiKey" + ], + "members": { + "apiKey": { + "location": "uri", + "locationName": "api_Key" + } + } + } + }, + "DeleteAuthorizer": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + } + } + } + }, + "DeleteBasePathMapping": { + "http": { + "method": "DELETE", + "requestUri": "/domainnames/{domain_name}/basepathmappings/{base_path}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "basePath" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": { + "location": "uri", + "locationName": "base_path" + } + } + } + }, + "DeleteClientCertificate": { + "http": { + "method": "DELETE", + "requestUri": "/clientcertificates/{clientcertificate_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "clientCertificateId" + ], + "members": { + "clientCertificateId": { + "location": "uri", + "locationName": "clientcertificate_id" + } + } + } + }, + "DeleteDeployment": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/deployments/{deployment_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "uri", + "locationName": "deployment_id" + } + } + } + }, + "DeleteDocumentationPart": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/documentation/parts/{part_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "documentationPartId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "documentationPartId": { + "location": "uri", + "locationName": "part_id" + } + } + } + }, + "DeleteDocumentationVersion": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/documentation/versions/{doc_version}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "documentationVersion" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "documentationVersion": { + "location": "uri", + "locationName": "doc_version" + } + } + } + }, + "DeleteDomainName": { + "http": { + "method": "DELETE", + "requestUri": "/domainnames/{domain_name}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + } + } + } + }, + "DeleteGatewayResponse": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/gatewayresponses/{response_type}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "responseType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "responseType": { + "location": "uri", + "locationName": "response_type" + } + } + } + }, + "DeleteIntegration": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + } + }, + "DeleteIntegrationResponse": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + } + }, + "DeleteMethod": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + } + }, + "DeleteMethodResponse": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + } + }, + "DeleteModel": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/models/{model_name}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + } + } + } + }, + "DeleteRequestValidator": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "requestValidatorId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "requestValidatorId": { + "location": "uri", + "locationName": "requestvalidator_id" + } + } + } + }, + "DeleteResource": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + } + } + } + }, + "DeleteRestApi": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + } + } + } + }, + "DeleteStage": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + } + }, + "DeleteUsagePlan": { + "http": { + "method": "DELETE", + "requestUri": "/usageplans/{usageplanId}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + } + } + } + }, + "DeleteUsagePlanKey": { + "http": { + "method": "DELETE", + "requestUri": "/usageplans/{usageplanId}/keys/{keyId}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId", + "keyId" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + }, + "keyId": { + "location": "uri", + "locationName": "keyId" + } + } + } + }, + "DeleteVpcLink": { + "http": { + "method": "DELETE", + "requestUri": "/vpclinks/{vpclink_id}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "vpcLinkId" + ], + "members": { + "vpcLinkId": { + "location": "uri", + "locationName": "vpclink_id" + } + } + } + }, + "FlushStageAuthorizersCache": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/cache/authorizers", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + } + }, + "FlushStageCache": { + "http": { + "method": "DELETE", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/cache/data", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + } + }, + "GenerateClientCertificate": { + "http": { + "requestUri": "/clientcertificates", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "description": {}, + "tags": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S34" + } + }, + "GetAccount": { + "http": { + "method": "GET", + "requestUri": "/account" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "shape": "S36" + } + }, + "GetApiKey": { + "http": { + "method": "GET", + "requestUri": "/apikeys/{api_Key}" + }, + "input": { + "type": "structure", + "required": [ + "apiKey" + ], + "members": { + "apiKey": { + "location": "uri", + "locationName": "api_Key" + }, + "includeValue": { + "location": "querystring", + "locationName": "includeValue", + "type": "boolean" + } + } + }, + "output": { + "shape": "S7" + } + }, + "GetApiKeys": { + "http": { + "method": "GET", + "requestUri": "/apikeys" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "nameQuery": { + "location": "querystring", + "locationName": "name" + }, + "customerId": { + "location": "querystring", + "locationName": "customerId" + }, + "includeValues": { + "location": "querystring", + "locationName": "includeValues", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "warnings": { + "shape": "S9" + }, + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S7" + } + } + } + } + }, + "GetAuthorizer": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + } + } + }, + "output": { + "shape": "Sf" + } + }, + "GetAuthorizers": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/authorizers" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sf" + } + } + } + } + }, + "GetBasePathMapping": { + "http": { + "method": "GET", + "requestUri": "/domainnames/{domain_name}/basepathmappings/{base_path}" + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "basePath" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": { + "location": "uri", + "locationName": "base_path" + } + } + }, + "output": { + "shape": "Sh" + } + }, + "GetBasePathMappings": { + "http": { + "method": "GET", + "requestUri": "/domainnames/{domain_name}/basepathmappings" + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sh" + } + } + } + } + }, + "GetClientCertificate": { + "http": { + "method": "GET", + "requestUri": "/clientcertificates/{clientcertificate_id}" + }, + "input": { + "type": "structure", + "required": [ + "clientCertificateId" + ], + "members": { + "clientCertificateId": { + "location": "uri", + "locationName": "clientcertificate_id" + } + } + }, + "output": { + "shape": "S34" + } + }, + "GetClientCertificates": { + "http": { + "method": "GET", + "requestUri": "/clientcertificates" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S34" + } + } + } + } + }, + "GetDeployment": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/deployments/{deployment_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "uri", + "locationName": "deployment_id" + }, + "embed": { + "shape": "S9", + "location": "querystring", + "locationName": "embed" + } + } + }, + "output": { + "shape": "Sn" + } + }, + "GetDeployments": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/deployments" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sn" + } + } + } + } + }, + "GetDocumentationPart": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/documentation/parts/{part_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "documentationPartId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "documentationPartId": { + "location": "uri", + "locationName": "part_id" + } + } + }, + "output": { + "shape": "Sv" + } + }, + "GetDocumentationParts": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/documentation/parts" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "type": { + "location": "querystring", + "locationName": "type" + }, + "nameQuery": { + "location": "querystring", + "locationName": "name" + }, + "path": { + "location": "querystring", + "locationName": "path" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "locationStatus": { + "location": "querystring", + "locationName": "locationStatus" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sv" + } + } + } + } + }, + "GetDocumentationVersion": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/documentation/versions/{doc_version}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "documentationVersion" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "documentationVersion": { + "location": "uri", + "locationName": "doc_version" + } + } + }, + "output": { + "shape": "Sx" + } + }, + "GetDocumentationVersions": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/documentation/versions" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "Sx" + } + } + } + } + }, + "GetDomainName": { + "http": { + "method": "GET", + "requestUri": "/domainnames/{domain_name}" + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + } + } + }, + "output": { + "shape": "S14" + } + }, + "GetDomainNames": { + "http": { + "method": "GET", + "requestUri": "/domainnames" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S14" + } + } + } + } + }, + "GetExport": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName", + "exportType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + }, + "exportType": { + "location": "uri", + "locationName": "export_type" + }, + "parameters": { + "shape": "S6", + "location": "querystring" + }, + "accepts": { + "location": "header", + "locationName": "Accept" + } + } + }, + "output": { + "type": "structure", + "members": { + "contentType": { + "location": "header", + "locationName": "Content-Type" + }, + "contentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + } + }, + "GetGatewayResponse": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/gatewayresponses/{response_type}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "responseType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "responseType": { + "location": "uri", + "locationName": "response_type" + } + } + }, + "output": { + "shape": "S48" + } + }, + "GetGatewayResponses": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/gatewayresponses" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S48" + } + } + } + } + }, + "GetIntegration": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + }, + "output": { + "shape": "S1j" + } + }, + "GetIntegrationResponse": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + }, + "output": { + "shape": "S1p" + } + }, + "GetMethod": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + } + } + }, + "output": { + "shape": "S1e" + } + }, + "GetMethodResponse": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + } + } + }, + "output": { + "shape": "S1h" + } + }, + "GetModel": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/models/{model_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + }, + "flatten": { + "location": "querystring", + "locationName": "flatten", + "type": "boolean" + } + } + }, + "output": { + "shape": "S18" + } + }, + "GetModelTemplate": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/models/{model_name}/default_template" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + } + } + }, + "output": { + "type": "structure", + "members": { + "value": {} + } + } + }, + "GetModels": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/models" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S18" + } + } + } + } + }, + "GetRequestValidator": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "requestValidatorId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "requestValidatorId": { + "location": "uri", + "locationName": "requestvalidator_id" + } + } + }, + "output": { + "shape": "S1a" + } + }, + "GetRequestValidators": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/requestvalidators" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S1a" + } + } + } + } + }, + "GetResource": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "embed": { + "shape": "S9", + "location": "querystring", + "locationName": "embed" + } + } + }, + "output": { + "shape": "S1c" + } + }, + "GetResources": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/resources" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "embed": { + "shape": "S9", + "location": "querystring", + "locationName": "embed" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S1c" + } + } + } + } + }, + "GetRestApi": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + } + } + }, + "output": { + "shape": "S1t" + } + }, + "GetRestApis": { + "http": { + "method": "GET", + "requestUri": "/restapis" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S1t" + } + } + } + } + }, + "GetSdk": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName", + "sdkType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + }, + "sdkType": { + "location": "uri", + "locationName": "sdk_type" + }, + "parameters": { + "shape": "S6", + "location": "querystring" + } + } + }, + "output": { + "type": "structure", + "members": { + "contentType": { + "location": "header", + "locationName": "Content-Type" + }, + "contentDisposition": { + "location": "header", + "locationName": "Content-Disposition" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + } + }, + "GetSdkType": { + "http": { + "method": "GET", + "requestUri": "/sdktypes/{sdktype_id}" + }, + "input": { + "type": "structure", + "required": [ + "id" + ], + "members": { + "id": { + "location": "uri", + "locationName": "sdktype_id" + } + } + }, + "output": { + "shape": "S51" + } + }, + "GetSdkTypes": { + "http": { + "method": "GET", + "requestUri": "/sdktypes" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S51" + } + } + } + } + }, + "GetStage": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + } + } + }, + "output": { + "shape": "S1w" + } + }, + "GetStages": { + "http": { + "method": "GET", + "requestUri": "/restapis/{restapi_id}/stages" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "querystring", + "locationName": "deploymentId" + } + } + }, + "output": { + "type": "structure", + "members": { + "item": { + "type": "list", + "member": { + "shape": "S1w" + } + } + } + } + }, + "GetTags": { + "http": { + "method": "GET", + "requestUri": "/tags/{resource_arn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resource_arn" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "S6" + } + } + } + }, + "GetUsage": { + "http": { + "method": "GET", + "requestUri": "/usageplans/{usageplanId}/usage" + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId", + "startDate", + "endDate" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + }, + "keyId": { + "location": "querystring", + "locationName": "keyId" + }, + "startDate": { + "location": "querystring", + "locationName": "startDate" + }, + "endDate": { + "location": "querystring", + "locationName": "endDate" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "shape": "S5e" + } + }, + "GetUsagePlan": { + "http": { + "method": "GET", + "requestUri": "/usageplans/{usageplanId}" + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + } + } + }, + "output": { + "shape": "S29" + } + }, + "GetUsagePlanKey": { + "http": { + "method": "GET", + "requestUri": "/usageplans/{usageplanId}/keys/{keyId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId", + "keyId" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + }, + "keyId": { + "location": "uri", + "locationName": "keyId" + } + } + }, + "output": { + "shape": "S2b" + } + }, + "GetUsagePlanKeys": { + "http": { + "method": "GET", + "requestUri": "/usageplans/{usageplanId}/keys" + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + }, + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "nameQuery": { + "location": "querystring", + "locationName": "name" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S2b" + } + } + } + } + }, + "GetUsagePlans": { + "http": { + "method": "GET", + "requestUri": "/usageplans" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "keyId": { + "location": "querystring", + "locationName": "keyId" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S29" + } + } + } + } + }, + "GetVpcLink": { + "http": { + "method": "GET", + "requestUri": "/vpclinks/{vpclink_id}" + }, + "input": { + "type": "structure", + "required": [ + "vpcLinkId" + ], + "members": { + "vpcLinkId": { + "location": "uri", + "locationName": "vpclink_id" + } + } + }, + "output": { + "shape": "S2d" + } + }, + "GetVpcLinks": { + "http": { + "method": "GET", + "requestUri": "/vpclinks" + }, + "input": { + "type": "structure", + "members": { + "position": { + "location": "querystring", + "locationName": "position" + }, + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "position": {}, + "items": { + "locationName": "item", + "type": "list", + "member": { + "shape": "S2d" + } + } + } + } + }, + "ImportApiKeys": { + "http": { + "requestUri": "/apikeys?mode=import", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "body", + "format" + ], + "members": { + "body": { + "type": "blob" + }, + "format": { + "location": "querystring", + "locationName": "format" + }, + "failOnWarnings": { + "location": "querystring", + "locationName": "failonwarnings", + "type": "boolean" + } + }, + "payload": "body" + }, + "output": { + "type": "structure", + "members": { + "ids": { + "shape": "S9" + }, + "warnings": { + "shape": "S9" + } + } + } + }, + "ImportDocumentationParts": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/documentation/parts" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "body" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "mode": { + "location": "querystring", + "locationName": "mode" + }, + "failOnWarnings": { + "location": "querystring", + "locationName": "failonwarnings", + "type": "boolean" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + }, + "output": { + "type": "structure", + "members": { + "ids": { + "shape": "S9" + }, + "warnings": { + "shape": "S9" + } + } + } + }, + "ImportRestApi": { + "http": { + "requestUri": "/restapis?mode=import", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "body" + ], + "members": { + "failOnWarnings": { + "location": "querystring", + "locationName": "failonwarnings", + "type": "boolean" + }, + "parameters": { + "shape": "S6", + "location": "querystring" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + }, + "output": { + "shape": "S1t" + } + }, + "PutGatewayResponse": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/gatewayresponses/{response_type}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "responseType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "responseType": { + "location": "uri", + "locationName": "response_type" + }, + "statusCode": {}, + "responseParameters": { + "shape": "S6" + }, + "responseTemplates": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S48" + } + }, + "PutIntegration": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "type" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "type": {}, + "integrationHttpMethod": { + "locationName": "httpMethod" + }, + "uri": {}, + "connectionType": {}, + "connectionId": {}, + "credentials": {}, + "requestParameters": { + "shape": "S6" + }, + "requestTemplates": { + "shape": "S6" + }, + "passthroughBehavior": {}, + "cacheNamespace": {}, + "cacheKeyParameters": { + "shape": "S9" + }, + "contentHandling": {}, + "timeoutInMillis": { + "type": "integer" + }, + "tlsConfig": { + "shape": "S1q" + } + } + }, + "output": { + "shape": "S1j" + } + }, + "PutIntegrationResponse": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "selectionPattern": {}, + "responseParameters": { + "shape": "S6" + }, + "responseTemplates": { + "shape": "S6" + }, + "contentHandling": {} + } + }, + "output": { + "shape": "S1p" + } + }, + "PutMethod": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "authorizationType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "authorizationType": {}, + "authorizerId": {}, + "apiKeyRequired": { + "type": "boolean" + }, + "operationName": {}, + "requestParameters": { + "shape": "S1f" + }, + "requestModels": { + "shape": "S6" + }, + "requestValidatorId": {}, + "authorizationScopes": { + "shape": "S9" + } + } + }, + "output": { + "shape": "S1e" + } + }, + "PutMethodResponse": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "responseParameters": { + "shape": "S1f" + }, + "responseModels": { + "shape": "S6" + } + } + }, + "output": { + "shape": "S1h" + } + }, + "PutRestApi": { + "http": { + "method": "PUT", + "requestUri": "/restapis/{restapi_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "body" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "mode": { + "location": "querystring", + "locationName": "mode" + }, + "failOnWarnings": { + "location": "querystring", + "locationName": "failonwarnings", + "type": "boolean" + }, + "parameters": { + "shape": "S6", + "location": "querystring" + }, + "body": { + "type": "blob" + } + }, + "payload": "body" + }, + "output": { + "shape": "S1t" + } + }, + "TagResource": { + "http": { + "method": "PUT", + "requestUri": "/tags/{resource_arn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resource_arn" + }, + "tags": { + "shape": "S6" + } + } + } + }, + "TestInvokeAuthorizer": { + "http": { + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + }, + "headers": { + "shape": "S6" + }, + "multiValueHeaders": { + "shape": "S6a" + }, + "pathWithQueryString": {}, + "body": {}, + "stageVariables": { + "shape": "S6" + }, + "additionalContext": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "clientStatus": { + "type": "integer" + }, + "log": {}, + "latency": { + "type": "long" + }, + "principalId": {}, + "policy": {}, + "authorization": { + "shape": "S6a" + }, + "claims": { + "shape": "S6" + } + } + } + }, + "TestInvokeMethod": { + "http": { + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "pathWithQueryString": {}, + "body": {}, + "headers": { + "shape": "S6" + }, + "multiValueHeaders": { + "shape": "S6a" + }, + "clientCertificateId": {}, + "stageVariables": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "status": { + "type": "integer" + }, + "body": {}, + "headers": { + "shape": "S6" + }, + "multiValueHeaders": { + "shape": "S6a" + }, + "log": {}, + "latency": { + "type": "long" + } + } + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{resource_arn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resource_arn" + }, + "tagKeys": { + "shape": "S9", + "location": "querystring", + "locationName": "tagKeys" + } + } + } + }, + "UpdateAccount": { + "http": { + "method": "PATCH", + "requestUri": "/account" + }, + "input": { + "type": "structure", + "members": { + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S36" + } + }, + "UpdateApiKey": { + "http": { + "method": "PATCH", + "requestUri": "/apikeys/{api_Key}" + }, + "input": { + "type": "structure", + "required": [ + "apiKey" + ], + "members": { + "apiKey": { + "location": "uri", + "locationName": "api_Key" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S7" + } + }, + "UpdateAuthorizer": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/authorizers/{authorizer_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "authorizerId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "authorizerId": { + "location": "uri", + "locationName": "authorizer_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "Sf" + } + }, + "UpdateBasePathMapping": { + "http": { + "method": "PATCH", + "requestUri": "/domainnames/{domain_name}/basepathmappings/{base_path}" + }, + "input": { + "type": "structure", + "required": [ + "domainName", + "basePath" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "basePath": { + "location": "uri", + "locationName": "base_path" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "Sh" + } + }, + "UpdateClientCertificate": { + "http": { + "method": "PATCH", + "requestUri": "/clientcertificates/{clientcertificate_id}" + }, + "input": { + "type": "structure", + "required": [ + "clientCertificateId" + ], + "members": { + "clientCertificateId": { + "location": "uri", + "locationName": "clientcertificate_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S34" + } + }, + "UpdateDeployment": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/deployments/{deployment_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "deploymentId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "deploymentId": { + "location": "uri", + "locationName": "deployment_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "Sn" + } + }, + "UpdateDocumentationPart": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/documentation/parts/{part_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "documentationPartId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "documentationPartId": { + "location": "uri", + "locationName": "part_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "Sv" + } + }, + "UpdateDocumentationVersion": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/documentation/versions/{doc_version}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "documentationVersion" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "documentationVersion": { + "location": "uri", + "locationName": "doc_version" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "Sx" + } + }, + "UpdateDomainName": { + "http": { + "method": "PATCH", + "requestUri": "/domainnames/{domain_name}" + }, + "input": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": { + "location": "uri", + "locationName": "domain_name" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S14" + } + }, + "UpdateGatewayResponse": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/gatewayresponses/{response_type}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "responseType" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "responseType": { + "location": "uri", + "locationName": "response_type" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S48" + } + }, + "UpdateIntegration": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1j" + } + }, + "UpdateIntegrationResponse": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1p" + } + }, + "UpdateMethod": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1e" + } + }, + "UpdateMethodResponse": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId", + "httpMethod", + "statusCode" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "httpMethod": { + "location": "uri", + "locationName": "http_method" + }, + "statusCode": { + "location": "uri", + "locationName": "status_code" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1h" + } + }, + "UpdateModel": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/models/{model_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "modelName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "modelName": { + "location": "uri", + "locationName": "model_name" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S18" + } + }, + "UpdateRequestValidator": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/requestvalidators/{requestvalidator_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "requestValidatorId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "requestValidatorId": { + "location": "uri", + "locationName": "requestvalidator_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1a" + } + }, + "UpdateResource": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/resources/{resource_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "resourceId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "resourceId": { + "location": "uri", + "locationName": "resource_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1c" + } + }, + "UpdateRestApi": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1t" + } + }, + "UpdateStage": { + "http": { + "method": "PATCH", + "requestUri": "/restapis/{restapi_id}/stages/{stage_name}" + }, + "input": { + "type": "structure", + "required": [ + "restApiId", + "stageName" + ], + "members": { + "restApiId": { + "location": "uri", + "locationName": "restapi_id" + }, + "stageName": { + "location": "uri", + "locationName": "stage_name" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S1w" + } + }, + "UpdateUsage": { + "http": { + "method": "PATCH", + "requestUri": "/usageplans/{usageplanId}/keys/{keyId}/usage" + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId", + "keyId" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + }, + "keyId": { + "location": "uri", + "locationName": "keyId" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S5e" + } + }, + "UpdateUsagePlan": { + "http": { + "method": "PATCH", + "requestUri": "/usageplans/{usageplanId}" + }, + "input": { + "type": "structure", + "required": [ + "usagePlanId" + ], + "members": { + "usagePlanId": { + "location": "uri", + "locationName": "usageplanId" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S29" + } + }, + "UpdateVpcLink": { + "http": { + "method": "PATCH", + "requestUri": "/vpclinks/{vpclink_id}" + }, + "input": { + "type": "structure", + "required": [ + "vpcLinkId" + ], + "members": { + "vpcLinkId": { + "location": "uri", + "locationName": "vpclink_id" + }, + "patchOperations": { + "shape": "S6g" + } + } + }, + "output": { + "shape": "S2d" + } + } + }, + "shapes": { + "S6": { + "type": "map", + "key": {}, + "value": {} + }, + "S7": { + "type": "structure", + "members": { + "id": {}, + "value": {}, + "name": {}, + "customerId": {}, + "description": {}, + "enabled": { + "type": "boolean" + }, + "createdDate": { + "type": "timestamp" + }, + "lastUpdatedDate": { + "type": "timestamp" + }, + "stageKeys": { + "shape": "S9" + }, + "tags": { + "shape": "S6" + } + } + }, + "S9": { + "type": "list", + "member": {} + }, + "Sc": { + "type": "list", + "member": {} + }, + "Sf": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "type": {}, + "providerARNs": { + "shape": "Sc" + }, + "authType": {}, + "authorizerUri": {}, + "authorizerCredentials": {}, + "identitySource": {}, + "identityValidationExpression": {}, + "authorizerResultTtlInSeconds": { + "type": "integer" + } + } + }, + "Sh": { + "type": "structure", + "members": { + "basePath": {}, + "restApiId": {}, + "stage": {} + } + }, + "Sn": { + "type": "structure", + "members": { + "id": {}, + "description": {}, + "createdDate": { + "type": "timestamp" + }, + "apiSummary": { + "type": "map", + "key": {}, + "value": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "authorizationType": {}, + "apiKeyRequired": { + "type": "boolean" + } + } + } + } + } + } + }, + "Ss": { + "type": "structure", + "required": [ + "type" + ], + "members": { + "type": {}, + "path": {}, + "method": {}, + "statusCode": {}, + "name": {} + } + }, + "Sv": { + "type": "structure", + "members": { + "id": {}, + "location": { + "shape": "Ss" + }, + "properties": {} + } + }, + "Sx": { + "type": "structure", + "members": { + "version": {}, + "createdDate": { + "type": "timestamp" + }, + "description": {} + } + }, + "Sz": { + "type": "structure", + "members": { + "types": { + "type": "list", + "member": {} + }, + "vpcEndpointIds": { + "shape": "S9" + } + } + }, + "S14": { + "type": "structure", + "members": { + "domainName": {}, + "certificateName": {}, + "certificateArn": {}, + "certificateUploadDate": { + "type": "timestamp" + }, + "regionalDomainName": {}, + "regionalHostedZoneId": {}, + "regionalCertificateName": {}, + "regionalCertificateArn": {}, + "distributionDomainName": {}, + "distributionHostedZoneId": {}, + "endpointConfiguration": { + "shape": "Sz" + }, + "domainNameStatus": {}, + "domainNameStatusMessage": {}, + "securityPolicy": {}, + "tags": { + "shape": "S6" + }, + "mutualTlsAuthentication": { + "type": "structure", + "members": { + "truststoreUri": {}, + "truststoreVersion": {}, + "truststoreWarnings": { + "shape": "S9" + } + } + } + } + }, + "S18": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "schema": {}, + "contentType": {} + } + }, + "S1a": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "validateRequestBody": { + "type": "boolean" + }, + "validateRequestParameters": { + "type": "boolean" + } + } + }, + "S1c": { + "type": "structure", + "members": { + "id": {}, + "parentId": {}, + "pathPart": {}, + "path": {}, + "resourceMethods": { + "type": "map", + "key": {}, + "value": { + "shape": "S1e" + } + } + } + }, + "S1e": { + "type": "structure", + "members": { + "httpMethod": {}, + "authorizationType": {}, + "authorizerId": {}, + "apiKeyRequired": { + "type": "boolean" + }, + "requestValidatorId": {}, + "operationName": {}, + "requestParameters": { + "shape": "S1f" + }, + "requestModels": { + "shape": "S6" + }, + "methodResponses": { + "type": "map", + "key": {}, + "value": { + "shape": "S1h" + } + }, + "methodIntegration": { + "shape": "S1j" + }, + "authorizationScopes": { + "shape": "S9" + } + } + }, + "S1f": { + "type": "map", + "key": {}, + "value": { + "type": "boolean" + } + }, + "S1h": { + "type": "structure", + "members": { + "statusCode": {}, + "responseParameters": { + "shape": "S1f" + }, + "responseModels": { + "shape": "S6" + } + } + }, + "S1j": { + "type": "structure", + "members": { + "type": {}, + "httpMethod": {}, + "uri": {}, + "connectionType": {}, + "connectionId": {}, + "credentials": {}, + "requestParameters": { + "shape": "S6" + }, + "requestTemplates": { + "shape": "S6" + }, + "passthroughBehavior": {}, + "contentHandling": {}, + "timeoutInMillis": { + "type": "integer" + }, + "cacheNamespace": {}, + "cacheKeyParameters": { + "shape": "S9" + }, + "integrationResponses": { + "type": "map", + "key": {}, + "value": { + "shape": "S1p" + } + }, + "tlsConfig": { + "shape": "S1q" + } + } + }, + "S1p": { + "type": "structure", + "members": { + "statusCode": {}, + "selectionPattern": {}, + "responseParameters": { + "shape": "S6" + }, + "responseTemplates": { + "shape": "S6" + }, + "contentHandling": {} + } + }, + "S1q": { + "type": "structure", + "members": { + "insecureSkipVerification": { + "type": "boolean" + } + } + }, + "S1t": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "createdDate": { + "type": "timestamp" + }, + "version": {}, + "warnings": { + "shape": "S9" + }, + "binaryMediaTypes": { + "shape": "S9" + }, + "minimumCompressionSize": { + "type": "integer" + }, + "apiKeySource": {}, + "endpointConfiguration": { + "shape": "Sz" + }, + "policy": {}, + "tags": { + "shape": "S6" + }, + "disableExecuteApiEndpoint": { + "type": "boolean" + } + } + }, + "S1v": { + "type": "structure", + "members": { + "percentTraffic": { + "type": "double" + }, + "deploymentId": {}, + "stageVariableOverrides": { + "shape": "S6" + }, + "useStageCache": { + "type": "boolean" + } + } + }, + "S1w": { + "type": "structure", + "members": { + "deploymentId": {}, + "clientCertificateId": {}, + "stageName": {}, + "description": {}, + "cacheClusterEnabled": { + "type": "boolean" + }, + "cacheClusterSize": {}, + "cacheClusterStatus": {}, + "methodSettings": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "metricsEnabled": { + "type": "boolean" + }, + "loggingLevel": {}, + "dataTraceEnabled": { + "type": "boolean" + }, + "throttlingBurstLimit": { + "type": "integer" + }, + "throttlingRateLimit": { + "type": "double" + }, + "cachingEnabled": { + "type": "boolean" + }, + "cacheTtlInSeconds": { + "type": "integer" + }, + "cacheDataEncrypted": { + "type": "boolean" + }, + "requireAuthorizationForCacheControl": { + "type": "boolean" + }, + "unauthorizedCacheControlHeaderStrategy": {} + } + } + }, + "variables": { + "shape": "S6" + }, + "documentationVersion": {}, + "accessLogSettings": { + "type": "structure", + "members": { + "format": {}, + "destinationArn": {} + } + }, + "canarySettings": { + "shape": "S1v" + }, + "tracingEnabled": { + "type": "boolean" + }, + "webAclArn": {}, + "tags": { + "shape": "S6" + }, + "createdDate": { + "type": "timestamp" + }, + "lastUpdatedDate": { + "type": "timestamp" + } + } + }, + "S23": { + "type": "list", + "member": { + "type": "structure", + "members": { + "apiId": {}, + "stage": {}, + "throttle": { + "type": "map", + "key": {}, + "value": { + "shape": "S26" + } + } + } + } + }, + "S26": { + "type": "structure", + "members": { + "burstLimit": { + "type": "integer" + }, + "rateLimit": { + "type": "double" + } + } + }, + "S27": { + "type": "structure", + "members": { + "limit": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "period": {} + } + }, + "S29": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "apiStages": { + "shape": "S23" + }, + "throttle": { + "shape": "S26" + }, + "quota": { + "shape": "S27" + }, + "productCode": {}, + "tags": { + "shape": "S6" + } + } + }, + "S2b": { + "type": "structure", + "members": { + "id": {}, + "type": {}, + "value": {}, + "name": {} + } + }, + "S2d": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "targetArns": { + "shape": "S9" + }, + "status": {}, + "statusMessage": {}, + "tags": { + "shape": "S6" + } + } + }, + "S34": { + "type": "structure", + "members": { + "clientCertificateId": {}, + "description": {}, + "pemEncodedCertificate": {}, + "createdDate": { + "type": "timestamp" + }, + "expirationDate": { + "type": "timestamp" + }, + "tags": { + "shape": "S6" + } + } + }, + "S36": { + "type": "structure", + "members": { + "cloudwatchRoleArn": {}, + "throttleSettings": { + "shape": "S26" + }, + "features": { + "shape": "S9" + }, + "apiKeyVersion": {} + } + }, + "S48": { + "type": "structure", + "members": { + "responseType": {}, + "statusCode": {}, + "responseParameters": { + "shape": "S6" + }, + "responseTemplates": { + "shape": "S6" + }, + "defaultResponse": { + "type": "boolean" + } + } + }, + "S51": { + "type": "structure", + "members": { + "id": {}, + "friendlyName": {}, + "description": {}, + "configurationProperties": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "friendlyName": {}, + "description": {}, + "required": { + "type": "boolean" + }, + "defaultValue": {} + } + } + } + } + }, + "S5e": { + "type": "structure", + "members": { + "usagePlanId": {}, + "startDate": {}, + "endDate": {}, + "position": {}, + "items": { + "locationName": "values", + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": { + "type": "list", + "member": { + "type": "long" + } + } + } + } + } + }, + "S6a": { + "type": "map", + "key": {}, + "value": { + "shape": "S9" + } + }, + "S6g": { + "type": "list", + "member": { + "type": "structure", + "members": { + "op": {}, + "path": {}, + "value": {}, + "from": {} + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..a095aef737d210d2e7ffc24869dd3bc434866a42 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apigateway-2015-07-09.paginators.json @@ -0,0 +1,76 @@ +{ + "pagination": { + "GetApiKeys": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetBasePathMappings": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetClientCertificates": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetDeployments": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetDomainNames": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetModels": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetResources": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetRestApis": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetUsage": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetUsagePlanKeys": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetUsagePlans": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + }, + "GetVpcLinks": { + "input_token": "position", + "limit_key": "limit", + "output_token": "position", + "result_key": "items" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apigatewaymanagementapi-2018-11-29.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewaymanagementapi-2018-11-29.min.json new file mode 100644 index 0000000000000000000000000000000000000000..c40091cfeec24235809dca8a65303a638c6171f9 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewaymanagementapi-2018-11-29.min.json @@ -0,0 +1,111 @@ +{ + "metadata": { + "apiVersion": "2018-11-29", + "endpointPrefix": "execute-api", + "signingName": "execute-api", + "serviceFullName": "AmazonApiGatewayManagementApi", + "serviceId": "ApiGatewayManagementApi", + "protocol": "rest-json", + "jsonVersion": "1.1", + "uid": "apigatewaymanagementapi-2018-11-29", + "signatureVersion": "v4" + }, + "operations": { + "DeleteConnection": { + "http": { + "method": "DELETE", + "requestUri": "/@connections/{connectionId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ConnectionId": { + "location": "uri", + "locationName": "connectionId" + } + }, + "required": [ + "ConnectionId" + ] + } + }, + "GetConnection": { + "http": { + "method": "GET", + "requestUri": "/@connections/{connectionId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ConnectionId": { + "location": "uri", + "locationName": "connectionId" + } + }, + "required": [ + "ConnectionId" + ] + }, + "output": { + "type": "structure", + "members": { + "ConnectedAt": { + "shape": "S5", + "locationName": "connectedAt" + }, + "Identity": { + "locationName": "identity", + "type": "structure", + "members": { + "SourceIp": { + "locationName": "sourceIp" + }, + "UserAgent": { + "locationName": "userAgent" + } + }, + "required": [ + "SourceIp", + "UserAgent" + ] + }, + "LastActiveAt": { + "shape": "S5", + "locationName": "lastActiveAt" + } + } + } + }, + "PostToConnection": { + "http": { + "requestUri": "/@connections/{connectionId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "Data": { + "type": "blob" + }, + "ConnectionId": { + "location": "uri", + "locationName": "connectionId" + } + }, + "required": [ + "ConnectionId", + "Data" + ], + "payload": "Data" + } + } + }, + "shapes": { + "S5": { + "type": "timestamp", + "timestampFormat": "iso8601" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apigatewaymanagementapi-2018-11-29.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewaymanagementapi-2018-11-29.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..f3b7195d8e13c15b92d2e600ba2cd335ceeb297a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewaymanagementapi-2018-11-29.paginators.json @@ -0,0 +1,3 @@ +{ + "pagination" : { } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apigatewayv2-2018-11-29.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewayv2-2018-11-29.min.json new file mode 100644 index 0000000000000000000000000000000000000000..849ae7afb0dabcabb1ca24997cb63540bbfe610f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewayv2-2018-11-29.min.json @@ -0,0 +1,4636 @@ +{ + "metadata": { + "apiVersion": "2018-11-29", + "endpointPrefix": "apigateway", + "signingName": "apigateway", + "serviceFullName": "AmazonApiGatewayV2", + "serviceId": "ApiGatewayV2", + "protocol": "rest-json", + "jsonVersion": "1.1", + "uid": "apigatewayv2-2018-11-29", + "signatureVersion": "v4" + }, + "operations": { + "CreateApi": { + "http": { + "requestUri": "/v2/apis", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "Name": { + "locationName": "name" + }, + "ProtocolType": { + "locationName": "protocolType" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "Target": { + "locationName": "target" + }, + "Version": { + "locationName": "version" + } + }, + "required": [ + "ProtocolType", + "Name" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiEndpoint": { + "locationName": "apiEndpoint" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiId": { + "locationName": "apiId" + }, + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "ImportInfo": { + "shape": "Sm", + "locationName": "importInfo" + }, + "Name": { + "locationName": "name" + }, + "ProtocolType": { + "locationName": "protocolType" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "Version": { + "locationName": "version" + }, + "Warnings": { + "shape": "Sm", + "locationName": "warnings" + } + } + } + }, + "CreateApiMapping": { + "http": { + "requestUri": "/v2/domainnames/{domainName}/apimappings", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "locationName": "apiId" + }, + "ApiMappingKey": { + "locationName": "apiMappingKey" + }, + "DomainName": { + "location": "uri", + "locationName": "domainName" + }, + "Stage": { + "locationName": "stage" + } + }, + "required": [ + "DomainName", + "Stage", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiId": { + "locationName": "apiId" + }, + "ApiMappingId": { + "locationName": "apiMappingId" + }, + "ApiMappingKey": { + "locationName": "apiMappingKey" + }, + "Stage": { + "locationName": "stage" + } + } + } + }, + "CreateAuthorizer": { + "http": { + "requestUri": "/v2/apis/{apiId}/authorizers", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "AuthorizerCredentialsArn": { + "locationName": "authorizerCredentialsArn" + }, + "AuthorizerPayloadFormatVersion": { + "locationName": "authorizerPayloadFormatVersion" + }, + "AuthorizerResultTtlInSeconds": { + "locationName": "authorizerResultTtlInSeconds", + "type": "integer" + }, + "AuthorizerType": { + "locationName": "authorizerType" + }, + "AuthorizerUri": { + "locationName": "authorizerUri" + }, + "EnableSimpleResponses": { + "locationName": "enableSimpleResponses", + "type": "boolean" + }, + "IdentitySource": { + "shape": "Ss", + "locationName": "identitySource" + }, + "IdentityValidationExpression": { + "locationName": "identityValidationExpression" + }, + "JwtConfiguration": { + "shape": "St", + "locationName": "jwtConfiguration" + }, + "Name": { + "locationName": "name" + } + }, + "required": [ + "ApiId", + "AuthorizerType", + "IdentitySource", + "Name" + ] + }, + "output": { + "type": "structure", + "members": { + "AuthorizerCredentialsArn": { + "locationName": "authorizerCredentialsArn" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "AuthorizerPayloadFormatVersion": { + "locationName": "authorizerPayloadFormatVersion" + }, + "AuthorizerResultTtlInSeconds": { + "locationName": "authorizerResultTtlInSeconds", + "type": "integer" + }, + "AuthorizerType": { + "locationName": "authorizerType" + }, + "AuthorizerUri": { + "locationName": "authorizerUri" + }, + "EnableSimpleResponses": { + "locationName": "enableSimpleResponses", + "type": "boolean" + }, + "IdentitySource": { + "shape": "Ss", + "locationName": "identitySource" + }, + "IdentityValidationExpression": { + "locationName": "identityValidationExpression" + }, + "JwtConfiguration": { + "shape": "St", + "locationName": "jwtConfiguration" + }, + "Name": { + "locationName": "name" + } + } + } + }, + "CreateDeployment": { + "http": { + "requestUri": "/v2/apis/{apiId}/deployments", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "Description": { + "locationName": "description" + }, + "StageName": { + "locationName": "stageName" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "AutoDeployed": { + "locationName": "autoDeployed", + "type": "boolean" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "DeploymentStatus": { + "locationName": "deploymentStatus" + }, + "DeploymentStatusMessage": { + "locationName": "deploymentStatusMessage" + }, + "Description": { + "locationName": "description" + } + } + } + }, + "CreateDomainName": { + "http": { + "requestUri": "/v2/domainnames", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "DomainName": { + "locationName": "domainName" + }, + "DomainNameConfigurations": { + "shape": "S10", + "locationName": "domainNameConfigurations" + }, + "MutualTlsAuthentication": { + "shape": "S15", + "locationName": "mutualTlsAuthentication" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + }, + "required": [ + "DomainName" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiMappingSelectionExpression": { + "locationName": "apiMappingSelectionExpression" + }, + "DomainName": { + "locationName": "domainName" + }, + "DomainNameConfigurations": { + "shape": "S10", + "locationName": "domainNameConfigurations" + }, + "MutualTlsAuthentication": { + "shape": "S17", + "locationName": "mutualTlsAuthentication" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + } + } + }, + "CreateIntegration": { + "http": { + "requestUri": "/v2/apis/{apiId}/integrations", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ConnectionId": { + "locationName": "connectionId" + }, + "ConnectionType": { + "locationName": "connectionType" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "IntegrationMethod": { + "locationName": "integrationMethod" + }, + "IntegrationSubtype": { + "locationName": "integrationSubtype" + }, + "IntegrationType": { + "locationName": "integrationType" + }, + "IntegrationUri": { + "locationName": "integrationUri" + }, + "PassthroughBehavior": { + "locationName": "passthroughBehavior" + }, + "PayloadFormatVersion": { + "locationName": "payloadFormatVersion" + }, + "RequestParameters": { + "shape": "S1e", + "locationName": "requestParameters" + }, + "RequestTemplates": { + "shape": "S1f", + "locationName": "requestTemplates" + }, + "ResponseParameters": { + "shape": "S1h", + "locationName": "responseParameters" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + }, + "TimeoutInMillis": { + "locationName": "timeoutInMillis", + "type": "integer" + }, + "TlsConfig": { + "shape": "S1j", + "locationName": "tlsConfig" + } + }, + "required": [ + "ApiId", + "IntegrationType" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ConnectionId": { + "locationName": "connectionId" + }, + "ConnectionType": { + "locationName": "connectionType" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "IntegrationId": { + "locationName": "integrationId" + }, + "IntegrationMethod": { + "locationName": "integrationMethod" + }, + "IntegrationResponseSelectionExpression": { + "locationName": "integrationResponseSelectionExpression" + }, + "IntegrationSubtype": { + "locationName": "integrationSubtype" + }, + "IntegrationType": { + "locationName": "integrationType" + }, + "IntegrationUri": { + "locationName": "integrationUri" + }, + "PassthroughBehavior": { + "locationName": "passthroughBehavior" + }, + "PayloadFormatVersion": { + "locationName": "payloadFormatVersion" + }, + "RequestParameters": { + "shape": "S1e", + "locationName": "requestParameters" + }, + "RequestTemplates": { + "shape": "S1f", + "locationName": "requestTemplates" + }, + "ResponseParameters": { + "shape": "S1h", + "locationName": "responseParameters" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + }, + "TimeoutInMillis": { + "locationName": "timeoutInMillis", + "type": "integer" + }, + "TlsConfig": { + "shape": "S1l", + "locationName": "tlsConfig" + } + } + } + }, + "CreateIntegrationResponse": { + "http": { + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + }, + "IntegrationResponseKey": { + "locationName": "integrationResponseKey" + }, + "ResponseParameters": { + "shape": "S1e", + "locationName": "responseParameters" + }, + "ResponseTemplates": { + "shape": "S1f", + "locationName": "responseTemplates" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + } + }, + "required": [ + "ApiId", + "IntegrationId", + "IntegrationResponseKey" + ] + }, + "output": { + "type": "structure", + "members": { + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "IntegrationResponseId": { + "locationName": "integrationResponseId" + }, + "IntegrationResponseKey": { + "locationName": "integrationResponseKey" + }, + "ResponseParameters": { + "shape": "S1e", + "locationName": "responseParameters" + }, + "ResponseTemplates": { + "shape": "S1f", + "locationName": "responseTemplates" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + } + } + } + }, + "CreateModel": { + "http": { + "requestUri": "/v2/apis/{apiId}/models", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ContentType": { + "locationName": "contentType" + }, + "Description": { + "locationName": "description" + }, + "Name": { + "locationName": "name" + }, + "Schema": { + "locationName": "schema" + } + }, + "required": [ + "ApiId", + "Schema", + "Name" + ] + }, + "output": { + "type": "structure", + "members": { + "ContentType": { + "locationName": "contentType" + }, + "Description": { + "locationName": "description" + }, + "ModelId": { + "locationName": "modelId" + }, + "Name": { + "locationName": "name" + }, + "Schema": { + "locationName": "schema" + } + } + } + }, + "CreateRoute": { + "http": { + "requestUri": "/v2/apis/{apiId}/routes", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ApiKeyRequired": { + "locationName": "apiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "shape": "S1s", + "locationName": "authorizationScopes" + }, + "AuthorizationType": { + "locationName": "authorizationType" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "OperationName": { + "locationName": "operationName" + }, + "RequestModels": { + "shape": "S1u", + "locationName": "requestModels" + }, + "RequestParameters": { + "shape": "S1v", + "locationName": "requestParameters" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteResponseSelectionExpression": { + "locationName": "routeResponseSelectionExpression" + }, + "Target": { + "locationName": "target" + } + }, + "required": [ + "ApiId", + "RouteKey" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiKeyRequired": { + "locationName": "apiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "shape": "S1s", + "locationName": "authorizationScopes" + }, + "AuthorizationType": { + "locationName": "authorizationType" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "OperationName": { + "locationName": "operationName" + }, + "RequestModels": { + "shape": "S1u", + "locationName": "requestModels" + }, + "RequestParameters": { + "shape": "S1v", + "locationName": "requestParameters" + }, + "RouteId": { + "locationName": "routeId" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteResponseSelectionExpression": { + "locationName": "routeResponseSelectionExpression" + }, + "Target": { + "locationName": "target" + } + } + } + }, + "CreateRouteResponse": { + "http": { + "requestUri": "/v2/apis/{apiId}/routes/{routeId}/routeresponses", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "ResponseModels": { + "shape": "S1u", + "locationName": "responseModels" + }, + "ResponseParameters": { + "shape": "S1v", + "locationName": "responseParameters" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + }, + "RouteResponseKey": { + "locationName": "routeResponseKey" + } + }, + "required": [ + "ApiId", + "RouteId", + "RouteResponseKey" + ] + }, + "output": { + "type": "structure", + "members": { + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "ResponseModels": { + "shape": "S1u", + "locationName": "responseModels" + }, + "ResponseParameters": { + "shape": "S1v", + "locationName": "responseParameters" + }, + "RouteResponseId": { + "locationName": "routeResponseId" + }, + "RouteResponseKey": { + "locationName": "routeResponseKey" + } + } + } + }, + "CreateStage": { + "http": { + "requestUri": "/v2/apis/{apiId}/stages", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "AccessLogSettings": { + "shape": "S21", + "locationName": "accessLogSettings" + }, + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "AutoDeploy": { + "locationName": "autoDeploy", + "type": "boolean" + }, + "ClientCertificateId": { + "locationName": "clientCertificateId" + }, + "DefaultRouteSettings": { + "shape": "S22", + "locationName": "defaultRouteSettings" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "Description": { + "locationName": "description" + }, + "RouteSettings": { + "shape": "S26", + "locationName": "routeSettings" + }, + "StageName": { + "locationName": "stageName" + }, + "StageVariables": { + "shape": "S27", + "locationName": "stageVariables" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + }, + "required": [ + "ApiId", + "StageName" + ] + }, + "output": { + "type": "structure", + "members": { + "AccessLogSettings": { + "shape": "S21", + "locationName": "accessLogSettings" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "AutoDeploy": { + "locationName": "autoDeploy", + "type": "boolean" + }, + "ClientCertificateId": { + "locationName": "clientCertificateId" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DefaultRouteSettings": { + "shape": "S22", + "locationName": "defaultRouteSettings" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "Description": { + "locationName": "description" + }, + "LastDeploymentStatusMessage": { + "locationName": "lastDeploymentStatusMessage" + }, + "LastUpdatedDate": { + "shape": "Sl", + "locationName": "lastUpdatedDate" + }, + "RouteSettings": { + "shape": "S26", + "locationName": "routeSettings" + }, + "StageName": { + "locationName": "stageName" + }, + "StageVariables": { + "shape": "S27", + "locationName": "stageVariables" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + } + } + }, + "CreateVpcLink": { + "http": { + "requestUri": "/v2/vpclinks", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "Name": { + "locationName": "name" + }, + "SecurityGroupIds": { + "shape": "S2b", + "locationName": "securityGroupIds" + }, + "SubnetIds": { + "shape": "S2c", + "locationName": "subnetIds" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + }, + "required": [ + "SubnetIds", + "Name" + ] + }, + "output": { + "type": "structure", + "members": { + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Name": { + "locationName": "name" + }, + "SecurityGroupIds": { + "shape": "S2b", + "locationName": "securityGroupIds" + }, + "SubnetIds": { + "shape": "S2c", + "locationName": "subnetIds" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "VpcLinkId": { + "locationName": "vpcLinkId" + }, + "VpcLinkStatus": { + "locationName": "vpcLinkStatus" + }, + "VpcLinkStatusMessage": { + "locationName": "vpcLinkStatusMessage" + }, + "VpcLinkVersion": { + "locationName": "vpcLinkVersion" + } + } + } + }, + "DeleteAccessLogSettings": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/stages/{stageName}/accesslogsettings", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "StageName": { + "location": "uri", + "locationName": "stageName" + } + }, + "required": [ + "StageName", + "ApiId" + ] + } + }, + "DeleteApi": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + } + }, + "required": [ + "ApiId" + ] + } + }, + "DeleteApiMapping": { + "http": { + "method": "DELETE", + "requestUri": "/v2/domainnames/{domainName}/apimappings/{apiMappingId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiMappingId": { + "location": "uri", + "locationName": "apiMappingId" + }, + "DomainName": { + "location": "uri", + "locationName": "domainName" + } + }, + "required": [ + "ApiMappingId", + "DomainName" + ] + } + }, + "DeleteAuthorizer": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/authorizers/{authorizerId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "AuthorizerId": { + "location": "uri", + "locationName": "authorizerId" + } + }, + "required": [ + "AuthorizerId", + "ApiId" + ] + } + }, + "DeleteCorsConfiguration": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/cors", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + } + }, + "required": [ + "ApiId" + ] + } + }, + "DeleteDeployment": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/deployments/{deploymentId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "DeploymentId": { + "location": "uri", + "locationName": "deploymentId" + } + }, + "required": [ + "ApiId", + "DeploymentId" + ] + } + }, + "DeleteDomainName": { + "http": { + "method": "DELETE", + "requestUri": "/v2/domainnames/{domainName}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "DomainName": { + "location": "uri", + "locationName": "domainName" + } + }, + "required": [ + "DomainName" + ] + } + }, + "DeleteIntegration": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + } + }, + "required": [ + "ApiId", + "IntegrationId" + ] + } + }, + "DeleteIntegrationResponse": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses/{integrationResponseId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + }, + "IntegrationResponseId": { + "location": "uri", + "locationName": "integrationResponseId" + } + }, + "required": [ + "ApiId", + "IntegrationResponseId", + "IntegrationId" + ] + } + }, + "DeleteModel": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/models/{modelId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ModelId": { + "location": "uri", + "locationName": "modelId" + } + }, + "required": [ + "ModelId", + "ApiId" + ] + } + }, + "DeleteRoute": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + } + }, + "required": [ + "ApiId", + "RouteId" + ] + } + }, + "DeleteRouteRequestParameter": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}/requestparameters/{requestParameterKey}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "RequestParameterKey": { + "location": "uri", + "locationName": "requestParameterKey" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + } + }, + "required": [ + "RequestParameterKey", + "ApiId", + "RouteId" + ] + } + }, + "DeleteRouteResponse": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}/routeresponses/{routeResponseId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + }, + "RouteResponseId": { + "location": "uri", + "locationName": "routeResponseId" + } + }, + "required": [ + "RouteResponseId", + "ApiId", + "RouteId" + ] + } + }, + "DeleteRouteSettings": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/stages/{stageName}/routesettings/{routeKey}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "RouteKey": { + "location": "uri", + "locationName": "routeKey" + }, + "StageName": { + "location": "uri", + "locationName": "stageName" + } + }, + "required": [ + "StageName", + "RouteKey", + "ApiId" + ] + } + }, + "DeleteStage": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/stages/{stageName}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "StageName": { + "location": "uri", + "locationName": "stageName" + } + }, + "required": [ + "StageName", + "ApiId" + ] + } + }, + "DeleteVpcLink": { + "http": { + "method": "DELETE", + "requestUri": "/v2/vpclinks/{vpcLinkId}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "members": { + "VpcLinkId": { + "location": "uri", + "locationName": "vpcLinkId" + } + }, + "required": [ + "VpcLinkId" + ] + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ExportApi": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/exports/{specification}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ExportVersion": { + "location": "querystring", + "locationName": "exportVersion" + }, + "IncludeExtensions": { + "location": "querystring", + "locationName": "includeExtensions", + "type": "boolean" + }, + "OutputType": { + "location": "querystring", + "locationName": "outputType" + }, + "Specification": { + "location": "uri", + "locationName": "specification" + }, + "StageName": { + "location": "querystring", + "locationName": "stageName" + } + }, + "required": [ + "Specification", + "OutputType", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "body": { + "type": "blob" + } + }, + "payload": "body" + } + }, + "ResetAuthorizersCache": { + "http": { + "method": "DELETE", + "requestUri": "/v2/apis/{apiId}/stages/{stageName}/cache/authorizers", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "StageName": { + "location": "uri", + "locationName": "stageName" + } + }, + "required": [ + "StageName", + "ApiId" + ] + } + }, + "GetApi": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiEndpoint": { + "locationName": "apiEndpoint" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiId": { + "locationName": "apiId" + }, + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "ImportInfo": { + "shape": "Sm", + "locationName": "importInfo" + }, + "Name": { + "locationName": "name" + }, + "ProtocolType": { + "locationName": "protocolType" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "Version": { + "locationName": "version" + }, + "Warnings": { + "shape": "Sm", + "locationName": "warnings" + } + } + } + }, + "GetApiMapping": { + "http": { + "method": "GET", + "requestUri": "/v2/domainnames/{domainName}/apimappings/{apiMappingId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiMappingId": { + "location": "uri", + "locationName": "apiMappingId" + }, + "DomainName": { + "location": "uri", + "locationName": "domainName" + } + }, + "required": [ + "ApiMappingId", + "DomainName" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiId": { + "locationName": "apiId" + }, + "ApiMappingId": { + "locationName": "apiMappingId" + }, + "ApiMappingKey": { + "locationName": "apiMappingKey" + }, + "Stage": { + "locationName": "stage" + } + } + } + }, + "GetApiMappings": { + "http": { + "method": "GET", + "requestUri": "/v2/domainnames/{domainName}/apimappings", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "DomainName": { + "location": "uri", + "locationName": "domainName" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "DomainName" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ApiId": { + "locationName": "apiId" + }, + "ApiMappingId": { + "locationName": "apiMappingId" + }, + "ApiMappingKey": { + "locationName": "apiMappingKey" + }, + "Stage": { + "locationName": "stage" + } + }, + "required": [ + "Stage", + "ApiId" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetApis": { + "http": { + "method": "GET", + "requestUri": "/v2/apis", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ApiEndpoint": { + "locationName": "apiEndpoint" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiId": { + "locationName": "apiId" + }, + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "ImportInfo": { + "shape": "Sm", + "locationName": "importInfo" + }, + "Name": { + "locationName": "name" + }, + "ProtocolType": { + "locationName": "protocolType" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "Version": { + "locationName": "version" + }, + "Warnings": { + "shape": "Sm", + "locationName": "warnings" + } + }, + "required": [ + "RouteSelectionExpression", + "Name", + "ProtocolType" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetAuthorizer": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/authorizers/{authorizerId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "AuthorizerId": { + "location": "uri", + "locationName": "authorizerId" + } + }, + "required": [ + "AuthorizerId", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "AuthorizerCredentialsArn": { + "locationName": "authorizerCredentialsArn" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "AuthorizerPayloadFormatVersion": { + "locationName": "authorizerPayloadFormatVersion" + }, + "AuthorizerResultTtlInSeconds": { + "locationName": "authorizerResultTtlInSeconds", + "type": "integer" + }, + "AuthorizerType": { + "locationName": "authorizerType" + }, + "AuthorizerUri": { + "locationName": "authorizerUri" + }, + "EnableSimpleResponses": { + "locationName": "enableSimpleResponses", + "type": "boolean" + }, + "IdentitySource": { + "shape": "Ss", + "locationName": "identitySource" + }, + "IdentityValidationExpression": { + "locationName": "identityValidationExpression" + }, + "JwtConfiguration": { + "shape": "St", + "locationName": "jwtConfiguration" + }, + "Name": { + "locationName": "name" + } + } + } + }, + "GetAuthorizers": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/authorizers", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "AuthorizerCredentialsArn": { + "locationName": "authorizerCredentialsArn" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "AuthorizerPayloadFormatVersion": { + "locationName": "authorizerPayloadFormatVersion" + }, + "AuthorizerResultTtlInSeconds": { + "locationName": "authorizerResultTtlInSeconds", + "type": "integer" + }, + "AuthorizerType": { + "locationName": "authorizerType" + }, + "AuthorizerUri": { + "locationName": "authorizerUri" + }, + "EnableSimpleResponses": { + "locationName": "enableSimpleResponses", + "type": "boolean" + }, + "IdentitySource": { + "shape": "Ss", + "locationName": "identitySource" + }, + "IdentityValidationExpression": { + "locationName": "identityValidationExpression" + }, + "JwtConfiguration": { + "shape": "St", + "locationName": "jwtConfiguration" + }, + "Name": { + "locationName": "name" + } + }, + "required": [ + "Name" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetDeployment": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/deployments/{deploymentId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "DeploymentId": { + "location": "uri", + "locationName": "deploymentId" + } + }, + "required": [ + "ApiId", + "DeploymentId" + ] + }, + "output": { + "type": "structure", + "members": { + "AutoDeployed": { + "locationName": "autoDeployed", + "type": "boolean" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "DeploymentStatus": { + "locationName": "deploymentStatus" + }, + "DeploymentStatusMessage": { + "locationName": "deploymentStatusMessage" + }, + "Description": { + "locationName": "description" + } + } + } + }, + "GetDeployments": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/deployments", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "AutoDeployed": { + "locationName": "autoDeployed", + "type": "boolean" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "DeploymentStatus": { + "locationName": "deploymentStatus" + }, + "DeploymentStatusMessage": { + "locationName": "deploymentStatusMessage" + }, + "Description": { + "locationName": "description" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetDomainName": { + "http": { + "method": "GET", + "requestUri": "/v2/domainnames/{domainName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "DomainName": { + "location": "uri", + "locationName": "domainName" + } + }, + "required": [ + "DomainName" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiMappingSelectionExpression": { + "locationName": "apiMappingSelectionExpression" + }, + "DomainName": { + "locationName": "domainName" + }, + "DomainNameConfigurations": { + "shape": "S10", + "locationName": "domainNameConfigurations" + }, + "MutualTlsAuthentication": { + "shape": "S17", + "locationName": "mutualTlsAuthentication" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + } + } + }, + "GetDomainNames": { + "http": { + "method": "GET", + "requestUri": "/v2/domainnames", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ApiMappingSelectionExpression": { + "locationName": "apiMappingSelectionExpression" + }, + "DomainName": { + "locationName": "domainName" + }, + "DomainNameConfigurations": { + "shape": "S10", + "locationName": "domainNameConfigurations" + }, + "MutualTlsAuthentication": { + "shape": "S17", + "locationName": "mutualTlsAuthentication" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + }, + "required": [ + "DomainName" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetIntegration": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + } + }, + "required": [ + "ApiId", + "IntegrationId" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ConnectionId": { + "locationName": "connectionId" + }, + "ConnectionType": { + "locationName": "connectionType" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "IntegrationId": { + "locationName": "integrationId" + }, + "IntegrationMethod": { + "locationName": "integrationMethod" + }, + "IntegrationResponseSelectionExpression": { + "locationName": "integrationResponseSelectionExpression" + }, + "IntegrationSubtype": { + "locationName": "integrationSubtype" + }, + "IntegrationType": { + "locationName": "integrationType" + }, + "IntegrationUri": { + "locationName": "integrationUri" + }, + "PassthroughBehavior": { + "locationName": "passthroughBehavior" + }, + "PayloadFormatVersion": { + "locationName": "payloadFormatVersion" + }, + "RequestParameters": { + "shape": "S1e", + "locationName": "requestParameters" + }, + "RequestTemplates": { + "shape": "S1f", + "locationName": "requestTemplates" + }, + "ResponseParameters": { + "shape": "S1h", + "locationName": "responseParameters" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + }, + "TimeoutInMillis": { + "locationName": "timeoutInMillis", + "type": "integer" + }, + "TlsConfig": { + "shape": "S1l", + "locationName": "tlsConfig" + } + } + } + }, + "GetIntegrationResponse": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses/{integrationResponseId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + }, + "IntegrationResponseId": { + "location": "uri", + "locationName": "integrationResponseId" + } + }, + "required": [ + "ApiId", + "IntegrationResponseId", + "IntegrationId" + ] + }, + "output": { + "type": "structure", + "members": { + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "IntegrationResponseId": { + "locationName": "integrationResponseId" + }, + "IntegrationResponseKey": { + "locationName": "integrationResponseKey" + }, + "ResponseParameters": { + "shape": "S1e", + "locationName": "responseParameters" + }, + "ResponseTemplates": { + "shape": "S1f", + "locationName": "responseTemplates" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + } + } + } + }, + "GetIntegrationResponses": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "IntegrationId", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "IntegrationResponseId": { + "locationName": "integrationResponseId" + }, + "IntegrationResponseKey": { + "locationName": "integrationResponseKey" + }, + "ResponseParameters": { + "shape": "S1e", + "locationName": "responseParameters" + }, + "ResponseTemplates": { + "shape": "S1f", + "locationName": "responseTemplates" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + } + }, + "required": [ + "IntegrationResponseKey" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetIntegrations": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/integrations", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ConnectionId": { + "locationName": "connectionId" + }, + "ConnectionType": { + "locationName": "connectionType" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "IntegrationId": { + "locationName": "integrationId" + }, + "IntegrationMethod": { + "locationName": "integrationMethod" + }, + "IntegrationResponseSelectionExpression": { + "locationName": "integrationResponseSelectionExpression" + }, + "IntegrationSubtype": { + "locationName": "integrationSubtype" + }, + "IntegrationType": { + "locationName": "integrationType" + }, + "IntegrationUri": { + "locationName": "integrationUri" + }, + "PassthroughBehavior": { + "locationName": "passthroughBehavior" + }, + "PayloadFormatVersion": { + "locationName": "payloadFormatVersion" + }, + "RequestParameters": { + "shape": "S1e", + "locationName": "requestParameters" + }, + "RequestTemplates": { + "shape": "S1f", + "locationName": "requestTemplates" + }, + "ResponseParameters": { + "shape": "S1h", + "locationName": "responseParameters" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + }, + "TimeoutInMillis": { + "locationName": "timeoutInMillis", + "type": "integer" + }, + "TlsConfig": { + "shape": "S1l", + "locationName": "tlsConfig" + } + } + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetModel": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/models/{modelId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ModelId": { + "location": "uri", + "locationName": "modelId" + } + }, + "required": [ + "ModelId", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "ContentType": { + "locationName": "contentType" + }, + "Description": { + "locationName": "description" + }, + "ModelId": { + "locationName": "modelId" + }, + "Name": { + "locationName": "name" + }, + "Schema": { + "locationName": "schema" + } + } + } + }, + "GetModelTemplate": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/models/{modelId}/template", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ModelId": { + "location": "uri", + "locationName": "modelId" + } + }, + "required": [ + "ModelId", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Value": { + "locationName": "value" + } + } + } + }, + "GetModels": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/models", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ContentType": { + "locationName": "contentType" + }, + "Description": { + "locationName": "description" + }, + "ModelId": { + "locationName": "modelId" + }, + "Name": { + "locationName": "name" + }, + "Schema": { + "locationName": "schema" + } + }, + "required": [ + "Name" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetRoute": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + } + }, + "required": [ + "ApiId", + "RouteId" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiKeyRequired": { + "locationName": "apiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "shape": "S1s", + "locationName": "authorizationScopes" + }, + "AuthorizationType": { + "locationName": "authorizationType" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "OperationName": { + "locationName": "operationName" + }, + "RequestModels": { + "shape": "S1u", + "locationName": "requestModels" + }, + "RequestParameters": { + "shape": "S1v", + "locationName": "requestParameters" + }, + "RouteId": { + "locationName": "routeId" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteResponseSelectionExpression": { + "locationName": "routeResponseSelectionExpression" + }, + "Target": { + "locationName": "target" + } + } + } + }, + "GetRouteResponse": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}/routeresponses/{routeResponseId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + }, + "RouteResponseId": { + "location": "uri", + "locationName": "routeResponseId" + } + }, + "required": [ + "RouteResponseId", + "ApiId", + "RouteId" + ] + }, + "output": { + "type": "structure", + "members": { + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "ResponseModels": { + "shape": "S1u", + "locationName": "responseModels" + }, + "ResponseParameters": { + "shape": "S1v", + "locationName": "responseParameters" + }, + "RouteResponseId": { + "locationName": "routeResponseId" + }, + "RouteResponseKey": { + "locationName": "routeResponseKey" + } + } + } + }, + "GetRouteResponses": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}/routeresponses", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + } + }, + "required": [ + "RouteId", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "ResponseModels": { + "shape": "S1u", + "locationName": "responseModels" + }, + "ResponseParameters": { + "shape": "S1v", + "locationName": "responseParameters" + }, + "RouteResponseId": { + "locationName": "routeResponseId" + }, + "RouteResponseKey": { + "locationName": "routeResponseKey" + } + }, + "required": [ + "RouteResponseKey" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetRoutes": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/routes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiKeyRequired": { + "locationName": "apiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "shape": "S1s", + "locationName": "authorizationScopes" + }, + "AuthorizationType": { + "locationName": "authorizationType" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "OperationName": { + "locationName": "operationName" + }, + "RequestModels": { + "shape": "S1u", + "locationName": "requestModels" + }, + "RequestParameters": { + "shape": "S1v", + "locationName": "requestParameters" + }, + "RouteId": { + "locationName": "routeId" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteResponseSelectionExpression": { + "locationName": "routeResponseSelectionExpression" + }, + "Target": { + "locationName": "target" + } + }, + "required": [ + "RouteKey" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetStage": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/stages/{stageName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "StageName": { + "location": "uri", + "locationName": "stageName" + } + }, + "required": [ + "StageName", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "AccessLogSettings": { + "shape": "S21", + "locationName": "accessLogSettings" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "AutoDeploy": { + "locationName": "autoDeploy", + "type": "boolean" + }, + "ClientCertificateId": { + "locationName": "clientCertificateId" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DefaultRouteSettings": { + "shape": "S22", + "locationName": "defaultRouteSettings" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "Description": { + "locationName": "description" + }, + "LastDeploymentStatusMessage": { + "locationName": "lastDeploymentStatusMessage" + }, + "LastUpdatedDate": { + "shape": "Sl", + "locationName": "lastUpdatedDate" + }, + "RouteSettings": { + "shape": "S26", + "locationName": "routeSettings" + }, + "StageName": { + "locationName": "stageName" + }, + "StageVariables": { + "shape": "S27", + "locationName": "stageVariables" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + } + } + }, + "GetStages": { + "http": { + "method": "GET", + "requestUri": "/v2/apis/{apiId}/stages", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "AccessLogSettings": { + "shape": "S21", + "locationName": "accessLogSettings" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "AutoDeploy": { + "locationName": "autoDeploy", + "type": "boolean" + }, + "ClientCertificateId": { + "locationName": "clientCertificateId" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DefaultRouteSettings": { + "shape": "S22", + "locationName": "defaultRouteSettings" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "Description": { + "locationName": "description" + }, + "LastDeploymentStatusMessage": { + "locationName": "lastDeploymentStatusMessage" + }, + "LastUpdatedDate": { + "shape": "Sl", + "locationName": "lastUpdatedDate" + }, + "RouteSettings": { + "shape": "S26", + "locationName": "routeSettings" + }, + "StageName": { + "locationName": "stageName" + }, + "StageVariables": { + "shape": "S27", + "locationName": "stageVariables" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + }, + "required": [ + "StageName" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "GetTags": { + "http": { + "method": "GET", + "requestUri": "/v2/tags/{resource-arn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resource-arn" + } + }, + "required": [ + "ResourceArn" + ] + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + } + } + }, + "GetVpcLink": { + "http": { + "method": "GET", + "requestUri": "/v2/vpclinks/{vpcLinkId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "VpcLinkId": { + "location": "uri", + "locationName": "vpcLinkId" + } + }, + "required": [ + "VpcLinkId" + ] + }, + "output": { + "type": "structure", + "members": { + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Name": { + "locationName": "name" + }, + "SecurityGroupIds": { + "shape": "S2b", + "locationName": "securityGroupIds" + }, + "SubnetIds": { + "shape": "S2c", + "locationName": "subnetIds" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "VpcLinkId": { + "locationName": "vpcLinkId" + }, + "VpcLinkStatus": { + "locationName": "vpcLinkStatus" + }, + "VpcLinkStatusMessage": { + "locationName": "vpcLinkStatusMessage" + }, + "VpcLinkVersion": { + "locationName": "vpcLinkVersion" + } + } + } + }, + "GetVpcLinks": { + "http": { + "method": "GET", + "requestUri": "/v2/vpclinks", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "locationName": "items", + "type": "list", + "member": { + "type": "structure", + "members": { + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Name": { + "locationName": "name" + }, + "SecurityGroupIds": { + "shape": "S2b", + "locationName": "securityGroupIds" + }, + "SubnetIds": { + "shape": "S2c", + "locationName": "subnetIds" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "VpcLinkId": { + "locationName": "vpcLinkId" + }, + "VpcLinkStatus": { + "locationName": "vpcLinkStatus" + }, + "VpcLinkStatusMessage": { + "locationName": "vpcLinkStatusMessage" + }, + "VpcLinkVersion": { + "locationName": "vpcLinkVersion" + } + }, + "required": [ + "VpcLinkId", + "SecurityGroupIds", + "SubnetIds", + "Name" + ] + } + }, + "NextToken": { + "locationName": "nextToken" + } + } + } + }, + "ImportApi": { + "http": { + "method": "PUT", + "requestUri": "/v2/apis", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "Basepath": { + "location": "querystring", + "locationName": "basepath" + }, + "Body": { + "locationName": "body" + }, + "FailOnWarnings": { + "location": "querystring", + "locationName": "failOnWarnings", + "type": "boolean" + } + }, + "required": [ + "Body" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiEndpoint": { + "locationName": "apiEndpoint" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiId": { + "locationName": "apiId" + }, + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "ImportInfo": { + "shape": "Sm", + "locationName": "importInfo" + }, + "Name": { + "locationName": "name" + }, + "ProtocolType": { + "locationName": "protocolType" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "Version": { + "locationName": "version" + }, + "Warnings": { + "shape": "Sm", + "locationName": "warnings" + } + } + } + }, + "ReimportApi": { + "http": { + "method": "PUT", + "requestUri": "/v2/apis/{apiId}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "Basepath": { + "location": "querystring", + "locationName": "basepath" + }, + "Body": { + "locationName": "body" + }, + "FailOnWarnings": { + "location": "querystring", + "locationName": "failOnWarnings", + "type": "boolean" + } + }, + "required": [ + "ApiId", + "Body" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiEndpoint": { + "locationName": "apiEndpoint" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiId": { + "locationName": "apiId" + }, + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "ImportInfo": { + "shape": "Sm", + "locationName": "importInfo" + }, + "Name": { + "locationName": "name" + }, + "ProtocolType": { + "locationName": "protocolType" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "Version": { + "locationName": "version" + }, + "Warnings": { + "shape": "Sm", + "locationName": "warnings" + } + } + } + }, + "TagResource": { + "http": { + "requestUri": "/v2/tags/{resource-arn}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resource-arn" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + }, + "required": [ + "ResourceArn" + ] + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/v2/tags/{resource-arn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resource-arn" + }, + "TagKeys": { + "shape": "Sm", + "location": "querystring", + "locationName": "tagKeys" + } + }, + "required": [ + "ResourceArn", + "TagKeys" + ] + } + }, + "UpdateApi": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "Name": { + "locationName": "name" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Target": { + "locationName": "target" + }, + "Version": { + "locationName": "version" + } + }, + "required": [ + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiEndpoint": { + "locationName": "apiEndpoint" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiId": { + "locationName": "apiId" + }, + "ApiKeySelectionExpression": { + "locationName": "apiKeySelectionExpression" + }, + "CorsConfiguration": { + "shape": "S3", + "locationName": "corsConfiguration" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Description": { + "locationName": "description" + }, + "DisableSchemaValidation": { + "locationName": "disableSchemaValidation", + "type": "boolean" + }, + "DisableExecuteApiEndpoint": { + "locationName": "disableExecuteApiEndpoint", + "type": "boolean" + }, + "ImportInfo": { + "shape": "Sm", + "locationName": "importInfo" + }, + "Name": { + "locationName": "name" + }, + "ProtocolType": { + "locationName": "protocolType" + }, + "RouteSelectionExpression": { + "locationName": "routeSelectionExpression" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "Version": { + "locationName": "version" + }, + "Warnings": { + "shape": "Sm", + "locationName": "warnings" + } + } + } + }, + "UpdateApiMapping": { + "http": { + "method": "PATCH", + "requestUri": "/v2/domainnames/{domainName}/apimappings/{apiMappingId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "locationName": "apiId" + }, + "ApiMappingId": { + "location": "uri", + "locationName": "apiMappingId" + }, + "ApiMappingKey": { + "locationName": "apiMappingKey" + }, + "DomainName": { + "location": "uri", + "locationName": "domainName" + }, + "Stage": { + "locationName": "stage" + } + }, + "required": [ + "ApiMappingId", + "ApiId", + "DomainName" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiId": { + "locationName": "apiId" + }, + "ApiMappingId": { + "locationName": "apiMappingId" + }, + "ApiMappingKey": { + "locationName": "apiMappingKey" + }, + "Stage": { + "locationName": "stage" + } + } + } + }, + "UpdateAuthorizer": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/authorizers/{authorizerId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "AuthorizerCredentialsArn": { + "locationName": "authorizerCredentialsArn" + }, + "AuthorizerId": { + "location": "uri", + "locationName": "authorizerId" + }, + "AuthorizerPayloadFormatVersion": { + "locationName": "authorizerPayloadFormatVersion" + }, + "AuthorizerResultTtlInSeconds": { + "locationName": "authorizerResultTtlInSeconds", + "type": "integer" + }, + "AuthorizerType": { + "locationName": "authorizerType" + }, + "AuthorizerUri": { + "locationName": "authorizerUri" + }, + "EnableSimpleResponses": { + "locationName": "enableSimpleResponses", + "type": "boolean" + }, + "IdentitySource": { + "shape": "Ss", + "locationName": "identitySource" + }, + "IdentityValidationExpression": { + "locationName": "identityValidationExpression" + }, + "JwtConfiguration": { + "shape": "St", + "locationName": "jwtConfiguration" + }, + "Name": { + "locationName": "name" + } + }, + "required": [ + "AuthorizerId", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "AuthorizerCredentialsArn": { + "locationName": "authorizerCredentialsArn" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "AuthorizerPayloadFormatVersion": { + "locationName": "authorizerPayloadFormatVersion" + }, + "AuthorizerResultTtlInSeconds": { + "locationName": "authorizerResultTtlInSeconds", + "type": "integer" + }, + "AuthorizerType": { + "locationName": "authorizerType" + }, + "AuthorizerUri": { + "locationName": "authorizerUri" + }, + "EnableSimpleResponses": { + "locationName": "enableSimpleResponses", + "type": "boolean" + }, + "IdentitySource": { + "shape": "Ss", + "locationName": "identitySource" + }, + "IdentityValidationExpression": { + "locationName": "identityValidationExpression" + }, + "JwtConfiguration": { + "shape": "St", + "locationName": "jwtConfiguration" + }, + "Name": { + "locationName": "name" + } + } + } + }, + "UpdateDeployment": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/deployments/{deploymentId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "DeploymentId": { + "location": "uri", + "locationName": "deploymentId" + }, + "Description": { + "locationName": "description" + } + }, + "required": [ + "ApiId", + "DeploymentId" + ] + }, + "output": { + "type": "structure", + "members": { + "AutoDeployed": { + "locationName": "autoDeployed", + "type": "boolean" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "DeploymentStatus": { + "locationName": "deploymentStatus" + }, + "DeploymentStatusMessage": { + "locationName": "deploymentStatusMessage" + }, + "Description": { + "locationName": "description" + } + } + } + }, + "UpdateDomainName": { + "http": { + "method": "PATCH", + "requestUri": "/v2/domainnames/{domainName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "DomainName": { + "location": "uri", + "locationName": "domainName" + }, + "DomainNameConfigurations": { + "shape": "S10", + "locationName": "domainNameConfigurations" + }, + "MutualTlsAuthentication": { + "shape": "S15", + "locationName": "mutualTlsAuthentication" + } + }, + "required": [ + "DomainName" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiMappingSelectionExpression": { + "locationName": "apiMappingSelectionExpression" + }, + "DomainName": { + "locationName": "domainName" + }, + "DomainNameConfigurations": { + "shape": "S10", + "locationName": "domainNameConfigurations" + }, + "MutualTlsAuthentication": { + "shape": "S17", + "locationName": "mutualTlsAuthentication" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + } + } + }, + "UpdateIntegration": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ConnectionId": { + "locationName": "connectionId" + }, + "ConnectionType": { + "locationName": "connectionType" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + }, + "IntegrationMethod": { + "locationName": "integrationMethod" + }, + "IntegrationSubtype": { + "locationName": "integrationSubtype" + }, + "IntegrationType": { + "locationName": "integrationType" + }, + "IntegrationUri": { + "locationName": "integrationUri" + }, + "PassthroughBehavior": { + "locationName": "passthroughBehavior" + }, + "PayloadFormatVersion": { + "locationName": "payloadFormatVersion" + }, + "RequestParameters": { + "shape": "S1e", + "locationName": "requestParameters" + }, + "RequestTemplates": { + "shape": "S1f", + "locationName": "requestTemplates" + }, + "ResponseParameters": { + "shape": "S1h", + "locationName": "responseParameters" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + }, + "TimeoutInMillis": { + "locationName": "timeoutInMillis", + "type": "integer" + }, + "TlsConfig": { + "shape": "S1j", + "locationName": "tlsConfig" + } + }, + "required": [ + "ApiId", + "IntegrationId" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ConnectionId": { + "locationName": "connectionId" + }, + "ConnectionType": { + "locationName": "connectionType" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "CredentialsArn": { + "locationName": "credentialsArn" + }, + "Description": { + "locationName": "description" + }, + "IntegrationId": { + "locationName": "integrationId" + }, + "IntegrationMethod": { + "locationName": "integrationMethod" + }, + "IntegrationResponseSelectionExpression": { + "locationName": "integrationResponseSelectionExpression" + }, + "IntegrationSubtype": { + "locationName": "integrationSubtype" + }, + "IntegrationType": { + "locationName": "integrationType" + }, + "IntegrationUri": { + "locationName": "integrationUri" + }, + "PassthroughBehavior": { + "locationName": "passthroughBehavior" + }, + "PayloadFormatVersion": { + "locationName": "payloadFormatVersion" + }, + "RequestParameters": { + "shape": "S1e", + "locationName": "requestParameters" + }, + "RequestTemplates": { + "shape": "S1f", + "locationName": "requestTemplates" + }, + "ResponseParameters": { + "shape": "S1h", + "locationName": "responseParameters" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + }, + "TimeoutInMillis": { + "locationName": "timeoutInMillis", + "type": "integer" + }, + "TlsConfig": { + "shape": "S1l", + "locationName": "tlsConfig" + } + } + } + }, + "UpdateIntegrationResponse": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/integrations/{integrationId}/integrationresponses/{integrationResponseId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "IntegrationId": { + "location": "uri", + "locationName": "integrationId" + }, + "IntegrationResponseId": { + "location": "uri", + "locationName": "integrationResponseId" + }, + "IntegrationResponseKey": { + "locationName": "integrationResponseKey" + }, + "ResponseParameters": { + "shape": "S1e", + "locationName": "responseParameters" + }, + "ResponseTemplates": { + "shape": "S1f", + "locationName": "responseTemplates" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + } + }, + "required": [ + "ApiId", + "IntegrationResponseId", + "IntegrationId" + ] + }, + "output": { + "type": "structure", + "members": { + "ContentHandlingStrategy": { + "locationName": "contentHandlingStrategy" + }, + "IntegrationResponseId": { + "locationName": "integrationResponseId" + }, + "IntegrationResponseKey": { + "locationName": "integrationResponseKey" + }, + "ResponseParameters": { + "shape": "S1e", + "locationName": "responseParameters" + }, + "ResponseTemplates": { + "shape": "S1f", + "locationName": "responseTemplates" + }, + "TemplateSelectionExpression": { + "locationName": "templateSelectionExpression" + } + } + } + }, + "UpdateModel": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/models/{modelId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ContentType": { + "locationName": "contentType" + }, + "Description": { + "locationName": "description" + }, + "ModelId": { + "location": "uri", + "locationName": "modelId" + }, + "Name": { + "locationName": "name" + }, + "Schema": { + "locationName": "schema" + } + }, + "required": [ + "ModelId", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "ContentType": { + "locationName": "contentType" + }, + "Description": { + "locationName": "description" + }, + "ModelId": { + "locationName": "modelId" + }, + "Name": { + "locationName": "name" + }, + "Schema": { + "locationName": "schema" + } + } + } + }, + "UpdateRoute": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ApiKeyRequired": { + "locationName": "apiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "shape": "S1s", + "locationName": "authorizationScopes" + }, + "AuthorizationType": { + "locationName": "authorizationType" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "OperationName": { + "locationName": "operationName" + }, + "RequestModels": { + "shape": "S1u", + "locationName": "requestModels" + }, + "RequestParameters": { + "shape": "S1v", + "locationName": "requestParameters" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteResponseSelectionExpression": { + "locationName": "routeResponseSelectionExpression" + }, + "Target": { + "locationName": "target" + } + }, + "required": [ + "ApiId", + "RouteId" + ] + }, + "output": { + "type": "structure", + "members": { + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "ApiKeyRequired": { + "locationName": "apiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "shape": "S1s", + "locationName": "authorizationScopes" + }, + "AuthorizationType": { + "locationName": "authorizationType" + }, + "AuthorizerId": { + "locationName": "authorizerId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "OperationName": { + "locationName": "operationName" + }, + "RequestModels": { + "shape": "S1u", + "locationName": "requestModels" + }, + "RequestParameters": { + "shape": "S1v", + "locationName": "requestParameters" + }, + "RouteId": { + "locationName": "routeId" + }, + "RouteKey": { + "locationName": "routeKey" + }, + "RouteResponseSelectionExpression": { + "locationName": "routeResponseSelectionExpression" + }, + "Target": { + "locationName": "target" + } + } + } + }, + "UpdateRouteResponse": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/routes/{routeId}/routeresponses/{routeResponseId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "ResponseModels": { + "shape": "S1u", + "locationName": "responseModels" + }, + "ResponseParameters": { + "shape": "S1v", + "locationName": "responseParameters" + }, + "RouteId": { + "location": "uri", + "locationName": "routeId" + }, + "RouteResponseId": { + "location": "uri", + "locationName": "routeResponseId" + }, + "RouteResponseKey": { + "locationName": "routeResponseKey" + } + }, + "required": [ + "RouteResponseId", + "ApiId", + "RouteId" + ] + }, + "output": { + "type": "structure", + "members": { + "ModelSelectionExpression": { + "locationName": "modelSelectionExpression" + }, + "ResponseModels": { + "shape": "S1u", + "locationName": "responseModels" + }, + "ResponseParameters": { + "shape": "S1v", + "locationName": "responseParameters" + }, + "RouteResponseId": { + "locationName": "routeResponseId" + }, + "RouteResponseKey": { + "locationName": "routeResponseKey" + } + } + } + }, + "UpdateStage": { + "http": { + "method": "PATCH", + "requestUri": "/v2/apis/{apiId}/stages/{stageName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AccessLogSettings": { + "shape": "S21", + "locationName": "accessLogSettings" + }, + "ApiId": { + "location": "uri", + "locationName": "apiId" + }, + "AutoDeploy": { + "locationName": "autoDeploy", + "type": "boolean" + }, + "ClientCertificateId": { + "locationName": "clientCertificateId" + }, + "DefaultRouteSettings": { + "shape": "S22", + "locationName": "defaultRouteSettings" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "Description": { + "locationName": "description" + }, + "RouteSettings": { + "shape": "S26", + "locationName": "routeSettings" + }, + "StageName": { + "location": "uri", + "locationName": "stageName" + }, + "StageVariables": { + "shape": "S27", + "locationName": "stageVariables" + } + }, + "required": [ + "StageName", + "ApiId" + ] + }, + "output": { + "type": "structure", + "members": { + "AccessLogSettings": { + "shape": "S21", + "locationName": "accessLogSettings" + }, + "ApiGatewayManaged": { + "locationName": "apiGatewayManaged", + "type": "boolean" + }, + "AutoDeploy": { + "locationName": "autoDeploy", + "type": "boolean" + }, + "ClientCertificateId": { + "locationName": "clientCertificateId" + }, + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "DefaultRouteSettings": { + "shape": "S22", + "locationName": "defaultRouteSettings" + }, + "DeploymentId": { + "locationName": "deploymentId" + }, + "Description": { + "locationName": "description" + }, + "LastDeploymentStatusMessage": { + "locationName": "lastDeploymentStatusMessage" + }, + "LastUpdatedDate": { + "shape": "Sl", + "locationName": "lastUpdatedDate" + }, + "RouteSettings": { + "shape": "S26", + "locationName": "routeSettings" + }, + "StageName": { + "locationName": "stageName" + }, + "StageVariables": { + "shape": "S27", + "locationName": "stageVariables" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + } + } + } + }, + "UpdateVpcLink": { + "http": { + "method": "PATCH", + "requestUri": "/v2/vpclinks/{vpcLinkId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "Name": { + "locationName": "name" + }, + "VpcLinkId": { + "location": "uri", + "locationName": "vpcLinkId" + } + }, + "required": [ + "VpcLinkId" + ] + }, + "output": { + "type": "structure", + "members": { + "CreatedDate": { + "shape": "Sl", + "locationName": "createdDate" + }, + "Name": { + "locationName": "name" + }, + "SecurityGroupIds": { + "shape": "S2b", + "locationName": "securityGroupIds" + }, + "SubnetIds": { + "shape": "S2c", + "locationName": "subnetIds" + }, + "Tags": { + "shape": "Sg", + "locationName": "tags" + }, + "VpcLinkId": { + "locationName": "vpcLinkId" + }, + "VpcLinkStatus": { + "locationName": "vpcLinkStatus" + }, + "VpcLinkStatusMessage": { + "locationName": "vpcLinkStatusMessage" + }, + "VpcLinkVersion": { + "locationName": "vpcLinkVersion" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "members": { + "AllowCredentials": { + "locationName": "allowCredentials", + "type": "boolean" + }, + "AllowHeaders": { + "shape": "S5", + "locationName": "allowHeaders" + }, + "AllowMethods": { + "locationName": "allowMethods", + "type": "list", + "member": {} + }, + "AllowOrigins": { + "locationName": "allowOrigins", + "type": "list", + "member": {} + }, + "ExposeHeaders": { + "shape": "S5", + "locationName": "exposeHeaders" + }, + "MaxAge": { + "locationName": "maxAge", + "type": "integer" + } + } + }, + "S5": { + "type": "list", + "member": {} + }, + "Sg": { + "type": "map", + "key": {}, + "value": {} + }, + "Sl": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "Sm": { + "type": "list", + "member": {} + }, + "Ss": { + "type": "list", + "member": {} + }, + "St": { + "type": "structure", + "members": { + "Audience": { + "shape": "Sm", + "locationName": "audience" + }, + "Issuer": { + "locationName": "issuer" + } + } + }, + "S10": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ApiGatewayDomainName": { + "locationName": "apiGatewayDomainName" + }, + "CertificateArn": { + "locationName": "certificateArn" + }, + "CertificateName": { + "locationName": "certificateName" + }, + "CertificateUploadDate": { + "shape": "Sl", + "locationName": "certificateUploadDate" + }, + "DomainNameStatus": { + "locationName": "domainNameStatus" + }, + "DomainNameStatusMessage": { + "locationName": "domainNameStatusMessage" + }, + "EndpointType": { + "locationName": "endpointType" + }, + "HostedZoneId": { + "locationName": "hostedZoneId" + }, + "SecurityPolicy": { + "locationName": "securityPolicy" + } + } + } + }, + "S15": { + "type": "structure", + "members": { + "TruststoreUri": { + "locationName": "truststoreUri" + }, + "TruststoreVersion": { + "locationName": "truststoreVersion" + } + } + }, + "S17": { + "type": "structure", + "members": { + "TruststoreUri": { + "locationName": "truststoreUri" + }, + "TruststoreVersion": { + "locationName": "truststoreVersion" + }, + "TruststoreWarnings": { + "shape": "Sm", + "locationName": "truststoreWarnings" + } + } + }, + "S1e": { + "type": "map", + "key": {}, + "value": {} + }, + "S1f": { + "type": "map", + "key": {}, + "value": {} + }, + "S1h": { + "type": "map", + "key": {}, + "value": { + "shape": "S1e" + } + }, + "S1j": { + "type": "structure", + "members": { + "ServerNameToVerify": { + "locationName": "serverNameToVerify" + } + } + }, + "S1l": { + "type": "structure", + "members": { + "ServerNameToVerify": { + "locationName": "serverNameToVerify" + } + } + }, + "S1s": { + "type": "list", + "member": {} + }, + "S1u": { + "type": "map", + "key": {}, + "value": {} + }, + "S1v": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "Required": { + "locationName": "required", + "type": "boolean" + } + } + } + }, + "S21": { + "type": "structure", + "members": { + "DestinationArn": { + "locationName": "destinationArn" + }, + "Format": { + "locationName": "format" + } + } + }, + "S22": { + "type": "structure", + "members": { + "DataTraceEnabled": { + "locationName": "dataTraceEnabled", + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "locationName": "detailedMetricsEnabled", + "type": "boolean" + }, + "LoggingLevel": { + "locationName": "loggingLevel" + }, + "ThrottlingBurstLimit": { + "locationName": "throttlingBurstLimit", + "type": "integer" + }, + "ThrottlingRateLimit": { + "locationName": "throttlingRateLimit", + "type": "double" + } + } + }, + "S26": { + "type": "map", + "key": {}, + "value": { + "shape": "S22" + } + }, + "S27": { + "type": "map", + "key": {}, + "value": {} + }, + "S2b": { + "type": "list", + "member": {} + }, + "S2c": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apigatewayv2-2018-11-29.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewayv2-2018-11-29.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..f3b7195d8e13c15b92d2e600ba2cd335ceeb297a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apigatewayv2-2018-11-29.paginators.json @@ -0,0 +1,3 @@ +{ + "pagination" : { } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.min.json new file mode 100644 index 0000000000000000000000000000000000000000..3175e311b5d438afd18877c2f1ebb4fa3f3a7c6b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.min.json @@ -0,0 +1,1270 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2019-10-09", + "endpointPrefix": "appconfig", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceAbbreviation": "AppConfig", + "serviceFullName": "Amazon AppConfig", + "serviceId": "AppConfig", + "signatureVersion": "v4", + "signingName": "appconfig", + "uid": "appconfig-2019-10-09" + }, + "operations": { + "CreateApplication": { + "http": { + "requestUri": "/applications", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Description": {}, + "Tags": { + "shape": "S4" + } + } + }, + "output": { + "shape": "S7" + } + }, + "CreateConfigurationProfile": { + "http": { + "requestUri": "/applications/{ApplicationId}/configurationprofiles", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "Name", + "LocationUri" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "Name": {}, + "Description": {}, + "LocationUri": {}, + "RetrievalRoleArn": {}, + "Validators": { + "shape": "Sc" + }, + "Tags": { + "shape": "S4" + } + } + }, + "output": { + "shape": "Sg" + } + }, + "CreateDeploymentStrategy": { + "http": { + "requestUri": "/deploymentstrategies", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name", + "DeploymentDurationInMinutes", + "GrowthFactor", + "ReplicateTo" + ], + "members": { + "Name": {}, + "Description": {}, + "DeploymentDurationInMinutes": { + "type": "integer" + }, + "FinalBakeTimeInMinutes": { + "type": "integer" + }, + "GrowthFactor": { + "type": "float" + }, + "GrowthType": {}, + "ReplicateTo": {}, + "Tags": { + "shape": "S4" + } + } + }, + "output": { + "shape": "Sm" + } + }, + "CreateEnvironment": { + "http": { + "requestUri": "/applications/{ApplicationId}/environments", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "Name" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "Name": {}, + "Description": {}, + "Monitors": { + "shape": "Sp" + }, + "Tags": { + "shape": "S4" + } + } + }, + "output": { + "shape": "Ss" + } + }, + "CreateHostedConfigurationVersion": { + "http": { + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "Content", + "ContentType" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + }, + "Description": { + "location": "header", + "locationName": "Description" + }, + "Content": { + "shape": "Sv" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + }, + "LatestVersionNumber": { + "location": "header", + "locationName": "Latest-Version-Number", + "type": "integer" + } + }, + "payload": "Content" + }, + "output": { + "shape": "Sy" + } + }, + "DeleteApplication": { + "http": { + "method": "DELETE", + "requestUri": "/applications/{ApplicationId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + } + } + } + }, + "DeleteConfigurationProfile": { + "http": { + "method": "DELETE", + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + } + } + } + }, + "DeleteDeploymentStrategy": { + "http": { + "method": "DELETE", + "requestUri": "/deployementstrategies/{DeploymentStrategyId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "DeploymentStrategyId" + ], + "members": { + "DeploymentStrategyId": { + "location": "uri", + "locationName": "DeploymentStrategyId" + } + } + } + }, + "DeleteEnvironment": { + "http": { + "method": "DELETE", + "requestUri": "/applications/{ApplicationId}/environments/{EnvironmentId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "EnvironmentId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "EnvironmentId": { + "location": "uri", + "locationName": "EnvironmentId" + } + } + } + }, + "DeleteHostedConfigurationVersion": { + "http": { + "method": "DELETE", + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "VersionNumber" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + }, + "VersionNumber": { + "location": "uri", + "locationName": "VersionNumber", + "type": "integer" + } + } + } + }, + "GetApplication": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + } + } + }, + "output": { + "shape": "S7" + } + }, + "GetConfiguration": { + "http": { + "method": "GET", + "requestUri": "/applications/{Application}/environments/{Environment}/configurations/{Configuration}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "Application", + "Environment", + "Configuration", + "ClientId" + ], + "members": { + "Application": { + "location": "uri", + "locationName": "Application" + }, + "Environment": { + "location": "uri", + "locationName": "Environment" + }, + "Configuration": { + "location": "uri", + "locationName": "Configuration" + }, + "ClientId": { + "location": "querystring", + "locationName": "client_id" + }, + "ClientConfigurationVersion": { + "location": "querystring", + "locationName": "client_configuration_version" + } + } + }, + "output": { + "type": "structure", + "members": { + "Content": { + "shape": "Sv" + }, + "ConfigurationVersion": { + "location": "header", + "locationName": "Configuration-Version" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + } + }, + "payload": "Content" + } + }, + "GetConfigurationProfile": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + } + } + }, + "output": { + "shape": "Sg" + } + }, + "GetDeployment": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "EnvironmentId", + "DeploymentNumber" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "EnvironmentId": { + "location": "uri", + "locationName": "EnvironmentId" + }, + "DeploymentNumber": { + "location": "uri", + "locationName": "DeploymentNumber", + "type": "integer" + } + } + }, + "output": { + "shape": "S1d" + } + }, + "GetDeploymentStrategy": { + "http": { + "method": "GET", + "requestUri": "/deploymentstrategies/{DeploymentStrategyId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "DeploymentStrategyId" + ], + "members": { + "DeploymentStrategyId": { + "location": "uri", + "locationName": "DeploymentStrategyId" + } + } + }, + "output": { + "shape": "Sm" + } + }, + "GetEnvironment": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/environments/{EnvironmentId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "EnvironmentId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "EnvironmentId": { + "location": "uri", + "locationName": "EnvironmentId" + } + } + }, + "output": { + "shape": "Ss" + } + }, + "GetHostedConfigurationVersion": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions/{VersionNumber}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "VersionNumber" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + }, + "VersionNumber": { + "location": "uri", + "locationName": "VersionNumber", + "type": "integer" + } + } + }, + "output": { + "shape": "Sy" + } + }, + "ListApplications": { + "http": { + "method": "GET", + "requestUri": "/applications", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "max_results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next_token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "member": { + "shape": "S7" + } + }, + "NextToken": {} + } + } + }, + "ListConfigurationProfiles": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/configurationprofiles", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max_results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next_token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ApplicationId": {}, + "Id": {}, + "Name": {}, + "LocationUri": {}, + "ValidatorTypes": { + "type": "list", + "member": {} + } + } + } + }, + "NextToken": {} + } + } + }, + "ListDeploymentStrategies": { + "http": { + "method": "GET", + "requestUri": "/deploymentstrategies", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "max_results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next_token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "member": { + "shape": "Sm" + } + }, + "NextToken": {} + } + } + }, + "ListDeployments": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "EnvironmentId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "EnvironmentId": { + "location": "uri", + "locationName": "EnvironmentId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max_results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next_token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "member": { + "type": "structure", + "members": { + "DeploymentNumber": { + "type": "integer" + }, + "ConfigurationName": {}, + "ConfigurationVersion": {}, + "DeploymentDurationInMinutes": { + "type": "integer" + }, + "GrowthType": {}, + "GrowthFactor": { + "type": "float" + }, + "FinalBakeTimeInMinutes": { + "type": "integer" + }, + "State": {}, + "PercentageComplete": { + "type": "float" + }, + "StartedAt": { + "shape": "S1j" + }, + "CompletedAt": { + "shape": "S1j" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListEnvironments": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/environments", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max_results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next_token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "member": { + "shape": "Ss" + } + }, + "NextToken": {} + } + } + }, + "ListHostedConfigurationVersions": { + "http": { + "method": "GET", + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/hostedconfigurationversions", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max_results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next_token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Items": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ApplicationId": {}, + "ConfigurationProfileId": {}, + "VersionNumber": { + "type": "integer" + }, + "Description": {}, + "ContentType": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags/{ResourceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "ResourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S4" + } + } + } + }, + "StartDeployment": { + "http": { + "requestUri": "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "EnvironmentId", + "DeploymentStrategyId", + "ConfigurationProfileId", + "ConfigurationVersion" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "EnvironmentId": { + "location": "uri", + "locationName": "EnvironmentId" + }, + "DeploymentStrategyId": {}, + "ConfigurationProfileId": {}, + "ConfigurationVersion": {}, + "Description": {}, + "Tags": { + "shape": "S4" + } + } + }, + "output": { + "shape": "S1d" + } + }, + "StopDeployment": { + "http": { + "method": "DELETE", + "requestUri": "/applications/{ApplicationId}/environments/{EnvironmentId}/deployments/{DeploymentNumber}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "EnvironmentId", + "DeploymentNumber" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "EnvironmentId": { + "location": "uri", + "locationName": "EnvironmentId" + }, + "DeploymentNumber": { + "location": "uri", + "locationName": "DeploymentNumber", + "type": "integer" + } + } + }, + "output": { + "shape": "S1d" + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{ResourceArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "Tags" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "ResourceArn" + }, + "Tags": { + "shape": "S4" + } + } + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{ResourceArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "TagKeys" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "ResourceArn" + }, + "TagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + } + }, + "UpdateApplication": { + "http": { + "method": "PATCH", + "requestUri": "/applications/{ApplicationId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "Name": {}, + "Description": {} + } + }, + "output": { + "shape": "S7" + } + }, + "UpdateConfigurationProfile": { + "http": { + "method": "PATCH", + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + }, + "Name": {}, + "Description": {}, + "RetrievalRoleArn": {}, + "Validators": { + "shape": "Sc" + } + } + }, + "output": { + "shape": "Sg" + } + }, + "UpdateDeploymentStrategy": { + "http": { + "method": "PATCH", + "requestUri": "/deploymentstrategies/{DeploymentStrategyId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "DeploymentStrategyId" + ], + "members": { + "DeploymentStrategyId": { + "location": "uri", + "locationName": "DeploymentStrategyId" + }, + "Description": {}, + "DeploymentDurationInMinutes": { + "type": "integer" + }, + "FinalBakeTimeInMinutes": { + "type": "integer" + }, + "GrowthFactor": { + "type": "float" + }, + "GrowthType": {} + } + }, + "output": { + "shape": "Sm" + } + }, + "UpdateEnvironment": { + "http": { + "method": "PATCH", + "requestUri": "/applications/{ApplicationId}/environments/{EnvironmentId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "EnvironmentId" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "EnvironmentId": { + "location": "uri", + "locationName": "EnvironmentId" + }, + "Name": {}, + "Description": {}, + "Monitors": { + "shape": "Sp" + } + } + }, + "output": { + "shape": "Ss" + } + }, + "ValidateConfiguration": { + "http": { + "requestUri": "/applications/{ApplicationId}/configurationprofiles/{ConfigurationProfileId}/validators", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "ConfigurationVersion" + ], + "members": { + "ApplicationId": { + "location": "uri", + "locationName": "ApplicationId" + }, + "ConfigurationProfileId": { + "location": "uri", + "locationName": "ConfigurationProfileId" + }, + "ConfigurationVersion": { + "location": "querystring", + "locationName": "configuration_version" + } + } + } + } + }, + "shapes": { + "S4": { + "type": "map", + "key": {}, + "value": {} + }, + "S7": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Description": {} + } + }, + "Sc": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Type", + "Content" + ], + "members": { + "Type": {}, + "Content": { + "type": "string", + "sensitive": true + } + } + } + }, + "Sg": { + "type": "structure", + "members": { + "ApplicationId": {}, + "Id": {}, + "Name": {}, + "Description": {}, + "LocationUri": {}, + "RetrievalRoleArn": {}, + "Validators": { + "shape": "Sc" + } + } + }, + "Sm": { + "type": "structure", + "members": { + "Id": {}, + "Name": {}, + "Description": {}, + "DeploymentDurationInMinutes": { + "type": "integer" + }, + "GrowthType": {}, + "GrowthFactor": { + "type": "float" + }, + "FinalBakeTimeInMinutes": { + "type": "integer" + }, + "ReplicateTo": {} + } + }, + "Sp": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AlarmArn": {}, + "AlarmRoleArn": {} + } + } + }, + "Ss": { + "type": "structure", + "members": { + "ApplicationId": {}, + "Id": {}, + "Name": {}, + "Description": {}, + "State": {}, + "Monitors": { + "shape": "Sp" + } + } + }, + "Sv": { + "type": "blob", + "sensitive": true + }, + "Sy": { + "type": "structure", + "members": { + "ApplicationId": { + "location": "header", + "locationName": "Application-Id" + }, + "ConfigurationProfileId": { + "location": "header", + "locationName": "Configuration-Profile-Id" + }, + "VersionNumber": { + "location": "header", + "locationName": "Version-Number", + "type": "integer" + }, + "Description": { + "location": "header", + "locationName": "Description" + }, + "Content": { + "shape": "Sv" + }, + "ContentType": { + "location": "header", + "locationName": "Content-Type" + } + }, + "payload": "Content" + }, + "S1d": { + "type": "structure", + "members": { + "ApplicationId": {}, + "EnvironmentId": {}, + "DeploymentStrategyId": {}, + "ConfigurationProfileId": {}, + "DeploymentNumber": { + "type": "integer" + }, + "ConfigurationName": {}, + "ConfigurationLocationUri": {}, + "ConfigurationVersion": {}, + "Description": {}, + "DeploymentDurationInMinutes": { + "type": "integer" + }, + "GrowthType": {}, + "GrowthFactor": { + "type": "float" + }, + "FinalBakeTimeInMinutes": { + "type": "integer" + }, + "State": {}, + "EventLog": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventType": {}, + "TriggeredBy": {}, + "Description": {}, + "OccurredAt": { + "shape": "S1j" + } + } + } + }, + "PercentageComplete": { + "type": "float" + }, + "StartedAt": { + "shape": "S1j" + }, + "CompletedAt": { + "shape": "S1j" + } + } + }, + "S1j": { + "type": "timestamp", + "timestampFormat": "iso8601" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..c76cf37f2ccb8b7be4797e4b696d440c2c290177 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appconfig-2019-10-09.paginators.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListApplications": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListConfigurationProfiles": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListDeploymentStrategies": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListDeployments": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListEnvironments": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListHostedConfigurationVersions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.min.json new file mode 100644 index 0000000000000000000000000000000000000000..c7adb3306d2f6e581e910040bcf6f6ef6d4f80c8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.min.json @@ -0,0 +1,1685 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2020-08-23", + "endpointPrefix": "appflow", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "Amazon Appflow", + "serviceId": "Appflow", + "signatureVersion": "v4", + "signingName": "appflow", + "uid": "appflow-2020-08-23" + }, + "operations": { + "CreateConnectorProfile": { + "http": { + "requestUri": "/create-connector-profile" + }, + "input": { + "type": "structure", + "required": [ + "connectorProfileName", + "connectorType", + "connectionMode", + "connectorProfileConfig" + ], + "members": { + "connectorProfileName": {}, + "kmsArn": {}, + "connectorType": {}, + "connectionMode": {}, + "connectorProfileConfig": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "connectorProfileArn": {} + } + } + }, + "CreateFlow": { + "http": { + "requestUri": "/create-flow" + }, + "input": { + "type": "structure", + "required": [ + "flowName", + "triggerConfig", + "sourceFlowConfig", + "destinationFlowConfigList", + "tasks" + ], + "members": { + "flowName": {}, + "description": {}, + "kmsArn": {}, + "triggerConfig": { + "shape": "S22" + }, + "sourceFlowConfig": { + "shape": "S2b" + }, + "destinationFlowConfigList": { + "shape": "S2u" + }, + "tasks": { + "shape": "S3m" + }, + "tags": { + "shape": "S4a" + } + } + }, + "output": { + "type": "structure", + "members": { + "flowArn": {}, + "flowStatus": {} + } + } + }, + "DeleteConnectorProfile": { + "http": { + "requestUri": "/delete-connector-profile" + }, + "input": { + "type": "structure", + "required": [ + "connectorProfileName" + ], + "members": { + "connectorProfileName": {}, + "forceDelete": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteFlow": { + "http": { + "requestUri": "/delete-flow" + }, + "input": { + "type": "structure", + "required": [ + "flowName" + ], + "members": { + "flowName": {}, + "forceDelete": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeConnectorEntity": { + "http": { + "requestUri": "/describe-connector-entity" + }, + "input": { + "type": "structure", + "required": [ + "connectorEntityName" + ], + "members": { + "connectorEntityName": {}, + "connectorType": {}, + "connectorProfileName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "connectorEntityFields" + ], + "members": { + "connectorEntityFields": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "identifier" + ], + "members": { + "identifier": {}, + "label": {}, + "supportedFieldTypeDetails": { + "type": "structure", + "required": [ + "v1" + ], + "members": { + "v1": { + "type": "structure", + "required": [ + "fieldType", + "filterOperators" + ], + "members": { + "fieldType": {}, + "filterOperators": { + "type": "list", + "member": {} + }, + "supportedValues": { + "type": "list", + "member": {} + } + } + } + } + }, + "description": {}, + "sourceProperties": { + "type": "structure", + "members": { + "isRetrievable": { + "type": "boolean" + }, + "isQueryable": { + "type": "boolean" + } + } + }, + "destinationProperties": { + "type": "structure", + "members": { + "isCreatable": { + "type": "boolean" + }, + "isNullable": { + "type": "boolean" + }, + "isUpsertable": { + "type": "boolean" + }, + "isUpdatable": { + "type": "boolean" + }, + "supportedWriteOperations": { + "type": "list", + "member": {} + } + } + } + } + } + } + } + } + }, + "DescribeConnectorProfiles": { + "http": { + "requestUri": "/describe-connector-profiles" + }, + "input": { + "type": "structure", + "members": { + "connectorProfileNames": { + "type": "list", + "member": {} + }, + "connectorType": {}, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "connectorProfileDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "connectorProfileArn": {}, + "connectorProfileName": {}, + "connectorType": {}, + "connectionMode": {}, + "credentialsArn": {}, + "connectorProfileProperties": { + "shape": "S7" + }, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeConnectors": { + "http": { + "requestUri": "/describe-connectors" + }, + "input": { + "type": "structure", + "members": { + "connectorTypes": { + "shape": "S5a" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "connectorConfigurations": { + "type": "map", + "key": {}, + "value": { + "type": "structure", + "members": { + "canUseAsSource": { + "type": "boolean" + }, + "canUseAsDestination": { + "type": "boolean" + }, + "supportedDestinationConnectors": { + "shape": "S5a" + }, + "supportedSchedulingFrequencies": { + "type": "list", + "member": {} + }, + "isPrivateLinkEnabled": { + "type": "boolean" + }, + "isPrivateLinkEndpointUrlRequired": { + "type": "boolean" + }, + "supportedTriggerTypes": { + "type": "list", + "member": {} + }, + "connectorMetadata": { + "type": "structure", + "members": { + "Amplitude": { + "type": "structure", + "members": {} + }, + "Datadog": { + "type": "structure", + "members": {} + }, + "Dynatrace": { + "type": "structure", + "members": {} + }, + "GoogleAnalytics": { + "type": "structure", + "members": { + "oAuthScopes": { + "shape": "S5m" + } + } + }, + "InforNexus": { + "type": "structure", + "members": {} + }, + "Marketo": { + "type": "structure", + "members": {} + }, + "Redshift": { + "type": "structure", + "members": {} + }, + "S3": { + "type": "structure", + "members": {} + }, + "Salesforce": { + "type": "structure", + "members": { + "oAuthScopes": { + "shape": "S5m" + } + } + }, + "ServiceNow": { + "type": "structure", + "members": {} + }, + "Singular": { + "type": "structure", + "members": {} + }, + "Slack": { + "type": "structure", + "members": { + "oAuthScopes": { + "shape": "S5m" + } + } + }, + "Snowflake": { + "type": "structure", + "members": { + "supportedRegions": { + "type": "list", + "member": {} + } + } + }, + "Trendmicro": { + "type": "structure", + "members": {} + }, + "Veeva": { + "type": "structure", + "members": {} + }, + "Zendesk": { + "type": "structure", + "members": { + "oAuthScopes": { + "shape": "S5m" + } + } + }, + "EventBridge": { + "type": "structure", + "members": {} + }, + "Upsolver": { + "type": "structure", + "members": {} + }, + "CustomerProfiles": { + "type": "structure", + "members": {} + }, + "Honeycode": { + "type": "structure", + "members": { + "oAuthScopes": { + "shape": "S5m" + } + } + } + } + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeFlow": { + "http": { + "requestUri": "/describe-flow" + }, + "input": { + "type": "structure", + "required": [ + "flowName" + ], + "members": { + "flowName": {} + } + }, + "output": { + "type": "structure", + "members": { + "flowArn": {}, + "description": {}, + "flowName": {}, + "kmsArn": {}, + "flowStatus": {}, + "flowStatusMessage": {}, + "sourceFlowConfig": { + "shape": "S2b" + }, + "destinationFlowConfigList": { + "shape": "S2u" + }, + "lastRunExecutionDetails": { + "shape": "S68" + }, + "triggerConfig": { + "shape": "S22" + }, + "tasks": { + "shape": "S3m" + }, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "createdBy": {}, + "lastUpdatedBy": {}, + "tags": { + "shape": "S4a" + } + } + } + }, + "DescribeFlowExecutionRecords": { + "http": { + "requestUri": "/describe-flow-execution-records" + }, + "input": { + "type": "structure", + "required": [ + "flowName" + ], + "members": { + "flowName": {}, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "flowExecutions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "executionId": {}, + "executionStatus": {}, + "executionResult": { + "type": "structure", + "members": { + "errorInfo": { + "type": "structure", + "members": { + "putFailuresCount": { + "type": "long" + }, + "executionMessage": {} + } + }, + "bytesProcessed": { + "type": "long" + }, + "bytesWritten": { + "type": "long" + }, + "recordsProcessed": { + "type": "long" + } + } + }, + "startedAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "dataPullStartTime": { + "type": "timestamp" + }, + "dataPullEndTime": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListConnectorEntities": { + "http": { + "requestUri": "/list-connector-entities" + }, + "input": { + "type": "structure", + "members": { + "connectorProfileName": {}, + "connectorType": {}, + "entitiesPath": {} + } + }, + "output": { + "type": "structure", + "required": [ + "connectorEntityMap" + ], + "members": { + "connectorEntityMap": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "label": {}, + "hasNestedEntities": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "ListFlows": { + "http": { + "requestUri": "/list-flows" + }, + "input": { + "type": "structure", + "members": { + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "flows": { + "type": "list", + "member": { + "type": "structure", + "members": { + "flowArn": {}, + "description": {}, + "flowName": {}, + "flowStatus": {}, + "sourceConnectorType": {}, + "destinationConnectorType": {}, + "triggerType": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "createdBy": {}, + "lastUpdatedBy": {}, + "tags": { + "shape": "S4a" + }, + "lastRunExecutionDetails": { + "shape": "S68" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "S4a" + } + } + } + }, + "StartFlow": { + "http": { + "requestUri": "/start-flow" + }, + "input": { + "type": "structure", + "required": [ + "flowName" + ], + "members": { + "flowName": {} + } + }, + "output": { + "type": "structure", + "members": { + "flowArn": {}, + "flowStatus": {}, + "executionId": {} + } + } + }, + "StopFlow": { + "http": { + "requestUri": "/stop-flow" + }, + "input": { + "type": "structure", + "required": [ + "flowName" + ], + "members": { + "flowName": {} + } + }, + "output": { + "type": "structure", + "members": { + "flowArn": {}, + "flowStatus": {} + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "S4a" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateConnectorProfile": { + "http": { + "requestUri": "/update-connector-profile" + }, + "input": { + "type": "structure", + "required": [ + "connectorProfileName", + "connectionMode", + "connectorProfileConfig" + ], + "members": { + "connectorProfileName": {}, + "connectionMode": {}, + "connectorProfileConfig": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "connectorProfileArn": {} + } + } + }, + "UpdateFlow": { + "http": { + "requestUri": "/update-flow" + }, + "input": { + "type": "structure", + "required": [ + "flowName", + "triggerConfig", + "destinationFlowConfigList", + "tasks" + ], + "members": { + "flowName": {}, + "description": {}, + "triggerConfig": { + "shape": "S22" + }, + "sourceFlowConfig": { + "shape": "S2b" + }, + "destinationFlowConfigList": { + "shape": "S2u" + }, + "tasks": { + "shape": "S3m" + } + } + }, + "output": { + "type": "structure", + "members": { + "flowStatus": {} + } + } + } + }, + "shapes": { + "S6": { + "type": "structure", + "required": [ + "connectorProfileProperties", + "connectorProfileCredentials" + ], + "members": { + "connectorProfileProperties": { + "shape": "S7" + }, + "connectorProfileCredentials": { + "type": "structure", + "members": { + "Amplitude": { + "type": "structure", + "required": [ + "apiKey", + "secretKey" + ], + "members": { + "apiKey": {}, + "secretKey": { + "type": "string", + "sensitive": true + } + } + }, + "Datadog": { + "type": "structure", + "required": [ + "apiKey", + "applicationKey" + ], + "members": { + "apiKey": {}, + "applicationKey": {} + } + }, + "Dynatrace": { + "type": "structure", + "required": [ + "apiToken" + ], + "members": { + "apiToken": {} + } + }, + "GoogleAnalytics": { + "type": "structure", + "required": [ + "clientId", + "clientSecret" + ], + "members": { + "clientId": {}, + "clientSecret": { + "shape": "S19" + }, + "accessToken": { + "shape": "S1a" + }, + "refreshToken": {}, + "oAuthRequest": { + "shape": "S1c" + } + } + }, + "Honeycode": { + "type": "structure", + "members": { + "accessToken": { + "shape": "S1a" + }, + "refreshToken": {}, + "oAuthRequest": { + "shape": "S1c" + } + } + }, + "InforNexus": { + "type": "structure", + "required": [ + "accessKeyId", + "userId", + "secretAccessKey", + "datakey" + ], + "members": { + "accessKeyId": { + "type": "string", + "sensitive": true + }, + "userId": {}, + "secretAccessKey": {}, + "datakey": {} + } + }, + "Marketo": { + "type": "structure", + "required": [ + "clientId", + "clientSecret" + ], + "members": { + "clientId": {}, + "clientSecret": { + "shape": "S19" + }, + "accessToken": { + "shape": "S1a" + }, + "oAuthRequest": { + "shape": "S1c" + } + } + }, + "Redshift": { + "type": "structure", + "required": [ + "username", + "password" + ], + "members": { + "username": {}, + "password": { + "shape": "S1m" + } + } + }, + "Salesforce": { + "type": "structure", + "members": { + "accessToken": { + "shape": "S1a" + }, + "refreshToken": {}, + "oAuthRequest": { + "shape": "S1c" + }, + "clientCredentialsArn": { + "type": "string", + "sensitive": true + } + } + }, + "ServiceNow": { + "type": "structure", + "required": [ + "username", + "password" + ], + "members": { + "username": {}, + "password": { + "shape": "S1m" + } + } + }, + "Singular": { + "type": "structure", + "required": [ + "apiKey" + ], + "members": { + "apiKey": {} + } + }, + "Slack": { + "type": "structure", + "required": [ + "clientId", + "clientSecret" + ], + "members": { + "clientId": {}, + "clientSecret": { + "shape": "S19" + }, + "accessToken": { + "shape": "S1a" + }, + "oAuthRequest": { + "shape": "S1c" + } + } + }, + "Snowflake": { + "type": "structure", + "required": [ + "username", + "password" + ], + "members": { + "username": {}, + "password": { + "shape": "S1m" + } + } + }, + "Trendmicro": { + "type": "structure", + "required": [ + "apiSecretKey" + ], + "members": { + "apiSecretKey": { + "type": "string", + "sensitive": true + } + } + }, + "Veeva": { + "type": "structure", + "required": [ + "username", + "password" + ], + "members": { + "username": {}, + "password": { + "shape": "S1m" + } + } + }, + "Zendesk": { + "type": "structure", + "required": [ + "clientId", + "clientSecret" + ], + "members": { + "clientId": {}, + "clientSecret": { + "shape": "S19" + }, + "accessToken": { + "shape": "S1a" + }, + "oAuthRequest": { + "shape": "S1c" + } + } + } + } + } + } + }, + "S7": { + "type": "structure", + "members": { + "Amplitude": { + "type": "structure", + "members": {} + }, + "Datadog": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + }, + "Dynatrace": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + }, + "GoogleAnalytics": { + "type": "structure", + "members": {} + }, + "Honeycode": { + "type": "structure", + "members": {} + }, + "InforNexus": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + }, + "Marketo": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + }, + "Redshift": { + "type": "structure", + "required": [ + "databaseUrl", + "bucketName", + "roleArn" + ], + "members": { + "databaseUrl": {}, + "bucketName": {}, + "bucketPrefix": {}, + "roleArn": {} + } + }, + "Salesforce": { + "type": "structure", + "members": { + "instanceUrl": {}, + "isSandboxEnvironment": { + "type": "boolean" + } + } + }, + "ServiceNow": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + }, + "Singular": { + "type": "structure", + "members": {} + }, + "Slack": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + }, + "Snowflake": { + "type": "structure", + "required": [ + "warehouse", + "stage", + "bucketName" + ], + "members": { + "warehouse": {}, + "stage": {}, + "bucketName": {}, + "bucketPrefix": {}, + "privateLinkServiceName": {}, + "accountName": {}, + "region": {} + } + }, + "Trendmicro": { + "type": "structure", + "members": {} + }, + "Veeva": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + }, + "Zendesk": { + "type": "structure", + "required": [ + "instanceUrl" + ], + "members": { + "instanceUrl": {} + } + } + } + }, + "S19": { + "type": "string", + "sensitive": true + }, + "S1a": { + "type": "string", + "sensitive": true + }, + "S1c": { + "type": "structure", + "members": { + "authCode": {}, + "redirectUri": {} + } + }, + "S1m": { + "type": "string", + "sensitive": true + }, + "S22": { + "type": "structure", + "required": [ + "triggerType" + ], + "members": { + "triggerType": {}, + "triggerProperties": { + "type": "structure", + "members": { + "Scheduled": { + "type": "structure", + "required": [ + "scheduleExpression" + ], + "members": { + "scheduleExpression": {}, + "dataPullMode": {}, + "scheduleStartTime": { + "type": "timestamp" + }, + "scheduleEndTime": { + "type": "timestamp" + }, + "timezone": {}, + "scheduleOffset": { + "type": "long" + }, + "firstExecutionFrom": { + "type": "timestamp" + } + } + } + } + } + } + }, + "S2b": { + "type": "structure", + "required": [ + "connectorType", + "sourceConnectorProperties" + ], + "members": { + "connectorType": {}, + "connectorProfileName": {}, + "sourceConnectorProperties": { + "type": "structure", + "members": { + "Amplitude": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Datadog": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Dynatrace": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "GoogleAnalytics": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "InforNexus": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Marketo": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "S3": { + "type": "structure", + "required": [ + "bucketName" + ], + "members": { + "bucketName": {}, + "bucketPrefix": {} + } + }, + "Salesforce": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {}, + "enableDynamicFieldUpdate": { + "type": "boolean" + }, + "includeDeletedRecords": { + "type": "boolean" + } + } + }, + "ServiceNow": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Singular": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Slack": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Trendmicro": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Veeva": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + }, + "Zendesk": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {} + } + } + } + }, + "incrementalPullConfig": { + "type": "structure", + "members": { + "datetimeTypeFieldName": {} + } + } + } + }, + "S2u": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "connectorType", + "destinationConnectorProperties" + ], + "members": { + "connectorType": {}, + "connectorProfileName": {}, + "destinationConnectorProperties": { + "type": "structure", + "members": { + "Redshift": { + "type": "structure", + "required": [ + "object", + "intermediateBucketName" + ], + "members": { + "object": {}, + "intermediateBucketName": {}, + "bucketPrefix": {}, + "errorHandlingConfig": { + "shape": "S2y" + } + } + }, + "S3": { + "type": "structure", + "required": [ + "bucketName" + ], + "members": { + "bucketName": {}, + "bucketPrefix": {}, + "s3OutputFormatConfig": { + "type": "structure", + "members": { + "fileType": {}, + "prefixConfig": { + "shape": "S32" + }, + "aggregationConfig": { + "shape": "S35" + } + } + } + } + }, + "Salesforce": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {}, + "idFieldNames": { + "shape": "S38" + }, + "errorHandlingConfig": { + "shape": "S2y" + }, + "writeOperationType": {} + } + }, + "Snowflake": { + "type": "structure", + "required": [ + "object", + "intermediateBucketName" + ], + "members": { + "object": {}, + "intermediateBucketName": {}, + "bucketPrefix": {}, + "errorHandlingConfig": { + "shape": "S2y" + } + } + }, + "EventBridge": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {}, + "errorHandlingConfig": { + "shape": "S2y" + } + } + }, + "LookoutMetrics": { + "type": "structure", + "members": {} + }, + "Upsolver": { + "type": "structure", + "required": [ + "bucketName", + "s3OutputFormatConfig" + ], + "members": { + "bucketName": {}, + "bucketPrefix": {}, + "s3OutputFormatConfig": { + "type": "structure", + "required": [ + "prefixConfig" + ], + "members": { + "fileType": {}, + "prefixConfig": { + "shape": "S32" + }, + "aggregationConfig": { + "shape": "S35" + } + } + } + } + }, + "Honeycode": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {}, + "errorHandlingConfig": { + "shape": "S2y" + } + } + }, + "CustomerProfiles": { + "type": "structure", + "required": [ + "domainName" + ], + "members": { + "domainName": {}, + "objectTypeName": {} + } + }, + "Zendesk": { + "type": "structure", + "required": [ + "object" + ], + "members": { + "object": {}, + "idFieldNames": { + "shape": "S38" + }, + "errorHandlingConfig": { + "shape": "S2y" + }, + "writeOperationType": {} + } + } + } + } + } + } + }, + "S2y": { + "type": "structure", + "members": { + "failOnFirstDestinationError": { + "type": "boolean" + }, + "bucketPrefix": {}, + "bucketName": {} + } + }, + "S32": { + "type": "structure", + "members": { + "prefixType": {}, + "prefixFormat": {} + } + }, + "S35": { + "type": "structure", + "members": { + "aggregationType": {} + } + }, + "S38": { + "type": "list", + "member": {} + }, + "S3m": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "sourceFields", + "taskType" + ], + "members": { + "sourceFields": { + "type": "list", + "member": {} + }, + "connectorOperator": { + "type": "structure", + "members": { + "Amplitude": {}, + "Datadog": {}, + "Dynatrace": {}, + "GoogleAnalytics": {}, + "InforNexus": {}, + "Marketo": {}, + "S3": {}, + "Salesforce": {}, + "ServiceNow": {}, + "Singular": {}, + "Slack": {}, + "Trendmicro": {}, + "Veeva": {}, + "Zendesk": {} + } + }, + "destinationField": {}, + "taskType": {}, + "taskProperties": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "S4a": { + "type": "map", + "key": {}, + "value": {} + }, + "S5a": { + "type": "list", + "member": {} + }, + "S5m": { + "type": "list", + "member": {} + }, + "S68": { + "type": "structure", + "members": { + "mostRecentExecutionMessage": {}, + "mostRecentExecutionTime": { + "type": "timestamp" + }, + "mostRecentExecutionStatus": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..deabfa47b562ee8d9cfdafa2c180383c9e2fff16 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appflow-2020-08-23.paginators.json @@ -0,0 +1,23 @@ +{ + "pagination": { + "DescribeConnectorProfiles": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "DescribeConnectors": { + "input_token": "nextToken", + "output_token": "nextToken" + }, + "DescribeFlowExecutionRecords": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListFlows": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.min.json new file mode 100644 index 0000000000000000000000000000000000000000..de24480de10f112a6b8dbee28bb0895b4dbbaf54 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.min.json @@ -0,0 +1,318 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2020-07-29", + "endpointPrefix": "app-integrations", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "Amazon AppIntegrations Service", + "serviceId": "AppIntegrations", + "signatureVersion": "v4", + "signingName": "app-integrations", + "uid": "appintegrations-2020-07-29" + }, + "operations": { + "CreateEventIntegration": { + "http": { + "requestUri": "/eventIntegrations" + }, + "input": { + "type": "structure", + "required": [ + "Name", + "EventFilter", + "EventBridgeBus" + ], + "members": { + "Name": {}, + "Description": {}, + "EventFilter": { + "shape": "S4" + }, + "EventBridgeBus": {}, + "ClientToken": { + "idempotencyToken": true + }, + "Tags": { + "shape": "S8" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventIntegrationArn": {} + } + } + }, + "DeleteEventIntegration": { + "http": { + "method": "DELETE", + "requestUri": "/eventIntegrations/{Name}" + }, + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": { + "location": "uri", + "locationName": "Name" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "GetEventIntegration": { + "http": { + "method": "GET", + "requestUri": "/eventIntegrations/{Name}" + }, + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": { + "location": "uri", + "locationName": "Name" + } + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "Description": {}, + "EventIntegrationArn": {}, + "EventBridgeBus": {}, + "EventFilter": { + "shape": "S4" + }, + "Tags": { + "shape": "S8" + } + } + } + }, + "ListEventIntegrationAssociations": { + "http": { + "method": "GET", + "requestUri": "/eventIntegrations/{Name}/associations" + }, + "input": { + "type": "structure", + "required": [ + "EventIntegrationName" + ], + "members": { + "EventIntegrationName": { + "location": "uri", + "locationName": "Name" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventIntegrationAssociations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventIntegrationAssociationArn": {}, + "EventIntegrationAssociationId": {}, + "EventIntegrationName": {}, + "ClientId": {}, + "EventBridgeRuleName": {}, + "ClientAssociationMetadata": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "NextToken": {} + } + } + }, + "ListEventIntegrations": { + "http": { + "method": "GET", + "requestUri": "/eventIntegrations" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventIntegrations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EventIntegrationArn": {}, + "Name": {}, + "Description": {}, + "EventFilter": { + "shape": "S4" + }, + "EventBridgeBus": {}, + "Tags": { + "shape": "S8" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "S8" + } + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "S8" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateEventIntegration": { + "http": { + "method": "PATCH", + "requestUri": "/eventIntegrations/{Name}" + }, + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": { + "location": "uri", + "locationName": "Name" + }, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S4": { + "type": "structure", + "required": [ + "Source" + ], + "members": { + "Source": {} + } + }, + "S8": { + "type": "map", + "key": {}, + "value": {} + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..5677bd8e4a2d9309fc734f7ee5ce968405a5144f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appintegrations-2020-07-29.paginators.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..5abcd5544a003f63bab2d3094caa1123d444e82f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.examples.json @@ -0,0 +1,221 @@ +{ + "version": "1.0", + "examples": { + "DeleteScalingPolicy": [ + { + "input": { + "PolicyName": "web-app-cpu-lt-25", + "ResourceId": "service/default/web-app", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes a scaling policy for the Amazon ECS service called web-app, which is running in the default cluster.", + "id": "to-delete-a-scaling-policy-1470863892689", + "title": "To delete a scaling policy" + } + ], + "DeregisterScalableTarget": [ + { + "input": { + "ResourceId": "service/default/web-app", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deregisters a scalable target for an Amazon ECS service called web-app that is running in the default cluster.", + "id": "to-deregister-a-scalable-target-1470864164895", + "title": "To deregister a scalable target" + } + ], + "DescribeScalableTargets": [ + { + "input": { + "ServiceNamespace": "ecs" + }, + "output": { + "ScalableTargets": [ + { + "CreationTime": "2019-05-06T11:21:46.199Z", + "MaxCapacity": 10, + "MinCapacity": 1, + "ResourceId": "service/default/web-app", + "RoleARN": "arn:aws:iam::012345678910:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs", + "SuspendedState": { + "DynamicScalingInSuspended": false, + "DynamicScalingOutSuspended": false, + "ScheduledScalingSuspended": false + } + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the scalable targets for the ECS service namespace.", + "id": "to-describe-scalable-targets-1470864286961", + "title": "To describe scalable targets" + } + ], + "DescribeScalingActivities": [ + { + "input": { + "ResourceId": "service/default/web-app", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs" + }, + "output": { + "ScalingActivities": [ + { + "ActivityId": "e6c5f7d1-dbbb-4a3f-89b2-51f33e766399", + "Cause": "monitor alarm web-app-cpu-lt-25 in state ALARM triggered policy web-app-cpu-lt-25", + "Description": "Setting desired count to 1.", + "EndTime": "2019-05-06T16:04:32.111Z", + "ResourceId": "service/default/web-app", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs", + "StartTime": "2019-05-06T16:03:58.171Z", + "StatusCode": "Successful", + "StatusMessage": "Successfully set desired count to 1. Change successfully fulfilled by ecs." + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the scaling activities for an Amazon ECS service called web-app that is running in the default cluster.", + "id": "to-describe-scaling-activities-for-a-scalable-target-1470864398629", + "title": "To describe scaling activities for a scalable target" + } + ], + "DescribeScalingPolicies": [ + { + "input": { + "ServiceNamespace": "ecs" + }, + "output": { + "NextToken": "", + "ScalingPolicies": [ + { + "Alarms": [ + { + "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:web-app-cpu-gt-75", + "AlarmName": "web-app-cpu-gt-75" + } + ], + "CreationTime": "2019-05-06T12:11:39.230Z", + "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/web-app-cpu-gt-75", + "PolicyName": "web-app-cpu-gt-75", + "PolicyType": "StepScaling", + "ResourceId": "service/default/web-app", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs", + "StepScalingPolicyConfiguration": { + "AdjustmentType": "PercentChangeInCapacity", + "Cooldown": 60, + "StepAdjustments": [ + { + "MetricIntervalLowerBound": 0, + "ScalingAdjustment": 200 + } + ] + } + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the scaling policies for the ECS service namespace.", + "id": "to-describe-scaling-policies-1470864609734", + "title": "To describe scaling policies" + } + ], + "PutScalingPolicy": [ + { + "input": { + "PolicyName": "cpu75-target-tracking-scaling-policy", + "PolicyType": "TargetTrackingScaling", + "ResourceId": "service/default/web-app", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs", + "TargetTrackingScalingPolicyConfiguration": { + "PredefinedMetricSpecification": { + "PredefinedMetricType": "ECSServiceAverageCPUUtilization" + }, + "ScaleInCooldown": 60, + "ScaleOutCooldown": 60, + "TargetValue": 75 + } + }, + "output": { + "Alarms": [ + { + "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", + "AlarmName": "TargetTracking-service/default/web-app-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" + }, + { + "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", + "AlarmName": "TargetTracking-service/default/web-app-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" + } + ], + "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/ecs/service/default/web-app:policyName/cpu75-target-tracking-scaling-policy" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example applies a target tracking scaling policy with a predefined metric specification to an Amazon ECS service called web-app in the default cluster. The policy keeps the average CPU utilization of the service at 75 percent, with scale-out and scale-in cooldown periods of 60 seconds.", + "id": "to-apply-a-target-tracking-scaling-policy-with-a-predefined-metric-specification-1569364247984", + "title": "To apply a target tracking scaling policy with a predefined metric specification" + } + ], + "RegisterScalableTarget": [ + { + "input": { + "MaxCapacity": 10, + "MinCapacity": 1, + "ResourceId": "service/default/web-app", + "ScalableDimension": "ecs:service:DesiredCount", + "ServiceNamespace": "ecs" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example registers a scalable target from an Amazon ECS service called web-app that is running on the default cluster, with a minimum desired count of 1 task and a maximum desired count of 10 tasks.", + "id": "to-register-a-new-scalable-target-1470864910380", + "title": "To register an ECS service as a scalable target" + } + ] + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json new file mode 100644 index 0000000000000000000000000000000000000000..d3c06f4b511f7189112470efdf928c89047e31d8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.min.json @@ -0,0 +1,547 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-02-06", + "endpointPrefix": "application-autoscaling", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Application Auto Scaling", + "serviceId": "Application Auto Scaling", + "signatureVersion": "v4", + "signingName": "application-autoscaling", + "targetPrefix": "AnyScaleFrontendService", + "uid": "application-autoscaling-2016-02-06" + }, + "operations": { + "DeleteScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName", + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "PolicyName": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteScheduledAction": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ScheduledActionName", + "ResourceId", + "ScalableDimension" + ], + "members": { + "ServiceNamespace": {}, + "ScheduledActionName": {}, + "ResourceId": {}, + "ScalableDimension": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeregisterScalableTarget": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeScalableTargets": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace" + ], + "members": { + "ServiceNamespace": {}, + "ResourceIds": { + "shape": "Sb" + }, + "ScalableDimension": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalableTargets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "MinCapacity", + "MaxCapacity", + "RoleARN", + "CreationTime" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MinCapacity": { + "type": "integer" + }, + "MaxCapacity": { + "type": "integer" + }, + "RoleARN": {}, + "CreationTime": { + "type": "timestamp" + }, + "SuspendedState": { + "shape": "Sj" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingActivities": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingActivities": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ActivityId", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "Description", + "Cause", + "StartTime", + "StatusCode" + ], + "members": { + "ActivityId": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "Description": {}, + "Cause": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "StatusCode": {}, + "StatusMessage": {}, + "Details": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingPolicies": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace" + ], + "members": { + "PolicyNames": { + "shape": "Sb" + }, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPolicies": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "PolicyARN", + "PolicyName", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "PolicyType", + "CreationTime" + ], + "members": { + "PolicyARN": {}, + "PolicyName": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "PolicyType": {}, + "StepScalingPolicyConfiguration": { + "shape": "Sx" + }, + "TargetTrackingScalingPolicyConfiguration": { + "shape": "S16" + }, + "Alarms": { + "shape": "S1k" + }, + "CreationTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScheduledActions": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace" + ], + "members": { + "ScheduledActionNames": { + "shape": "Sb" + }, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScheduledActions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScheduledActionName", + "ScheduledActionARN", + "ServiceNamespace", + "Schedule", + "ResourceId", + "CreationTime" + ], + "members": { + "ScheduledActionName": {}, + "ScheduledActionARN": {}, + "ServiceNamespace": {}, + "Schedule": {}, + "Timezone": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "ScalableTargetAction": { + "shape": "S1r" + }, + "CreationTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "PutScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName", + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "PolicyName": {}, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "PolicyType": {}, + "StepScalingPolicyConfiguration": { + "shape": "Sx" + }, + "TargetTrackingScalingPolicyConfiguration": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "required": [ + "PolicyARN" + ], + "members": { + "PolicyARN": {}, + "Alarms": { + "shape": "S1k" + } + } + } + }, + "PutScheduledAction": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ScheduledActionName", + "ResourceId", + "ScalableDimension" + ], + "members": { + "ServiceNamespace": {}, + "Schedule": {}, + "Timezone": {}, + "ScheduledActionName": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "ScalableTargetAction": { + "shape": "S1r" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "RegisterScalableTarget": { + "input": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MinCapacity": { + "type": "integer" + }, + "MaxCapacity": { + "type": "integer" + }, + "RoleARN": {}, + "SuspendedState": { + "shape": "Sj" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "Sb": { + "type": "list", + "member": {} + }, + "Sj": { + "type": "structure", + "members": { + "DynamicScalingInSuspended": { + "type": "boolean" + }, + "DynamicScalingOutSuspended": { + "type": "boolean" + }, + "ScheduledScalingSuspended": { + "type": "boolean" + } + } + }, + "Sx": { + "type": "structure", + "members": { + "AdjustmentType": {}, + "StepAdjustments": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingAdjustment" + ], + "members": { + "MetricIntervalLowerBound": { + "type": "double" + }, + "MetricIntervalUpperBound": { + "type": "double" + }, + "ScalingAdjustment": { + "type": "integer" + } + } + } + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "Cooldown": { + "type": "integer" + }, + "MetricAggregationType": {} + } + }, + "S16": { + "type": "structure", + "required": [ + "TargetValue" + ], + "members": { + "TargetValue": { + "type": "double" + }, + "PredefinedMetricSpecification": { + "type": "structure", + "required": [ + "PredefinedMetricType" + ], + "members": { + "PredefinedMetricType": {}, + "ResourceLabel": {} + } + }, + "CustomizedMetricSpecification": { + "type": "structure", + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "members": { + "MetricName": {}, + "Namespace": {}, + "Dimensions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + } + } + }, + "Statistic": {}, + "Unit": {} + } + }, + "ScaleOutCooldown": { + "type": "integer" + }, + "ScaleInCooldown": { + "type": "integer" + }, + "DisableScaleIn": { + "type": "boolean" + } + } + }, + "S1k": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AlarmName", + "AlarmARN" + ], + "members": { + "AlarmName": {}, + "AlarmARN": {} + } + } + }, + "S1r": { + "type": "structure", + "members": { + "MinCapacity": { + "type": "integer" + }, + "MaxCapacity": { + "type": "integer" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..eca7406160d7153981439df5ac9578c502a8f32c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/application-autoscaling-2016-02-06.paginators.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "DescribeScalableTargets": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ScalableTargets" + }, + "DescribeScalingActivities": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ScalingActivities" + }, + "DescribeScalingPolicies": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ScalingPolicies" + }, + "DescribeScheduledActions": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ScheduledActions" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.min.json new file mode 100644 index 0000000000000000000000000000000000000000..88acbd5fa3e8c8ac5f7551c86ea7665fc485b56a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.min.json @@ -0,0 +1,818 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-11-25", + "endpointPrefix": "applicationinsights", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "Application Insights", + "serviceFullName": "Amazon CloudWatch Application Insights", + "serviceId": "Application Insights", + "signatureVersion": "v4", + "signingName": "applicationinsights", + "targetPrefix": "EC2WindowsBarleyService", + "uid": "application-insights-2018-11-25" + }, + "operations": { + "CreateApplication": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName" + ], + "members": { + "ResourceGroupName": {}, + "OpsCenterEnabled": { + "type": "boolean" + }, + "CWEMonitorEnabled": { + "type": "boolean" + }, + "OpsItemSNSTopicArn": {}, + "Tags": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationInfo": { + "shape": "Sb" + } + } + } + }, + "CreateComponent": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "ComponentName", + "ResourceList" + ], + "members": { + "ResourceGroupName": {}, + "ComponentName": {}, + "ResourceList": { + "shape": "Sg" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateLogPattern": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "PatternSetName", + "PatternName", + "Pattern", + "Rank" + ], + "members": { + "ResourceGroupName": {}, + "PatternSetName": {}, + "PatternName": {}, + "Pattern": {}, + "Rank": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "LogPattern": { + "shape": "Sp" + }, + "ResourceGroupName": {} + } + } + }, + "DeleteApplication": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName" + ], + "members": { + "ResourceGroupName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteComponent": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "ComponentName" + ], + "members": { + "ResourceGroupName": {}, + "ComponentName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteLogPattern": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "PatternSetName", + "PatternName" + ], + "members": { + "ResourceGroupName": {}, + "PatternSetName": {}, + "PatternName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeApplication": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName" + ], + "members": { + "ResourceGroupName": {} + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationInfo": { + "shape": "Sb" + } + } + } + }, + "DescribeComponent": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "ComponentName" + ], + "members": { + "ResourceGroupName": {}, + "ComponentName": {} + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationComponent": { + "shape": "S11" + }, + "ResourceList": { + "shape": "Sg" + } + } + } + }, + "DescribeComponentConfiguration": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "ComponentName" + ], + "members": { + "ResourceGroupName": {}, + "ComponentName": {} + } + }, + "output": { + "type": "structure", + "members": { + "Monitor": { + "type": "boolean" + }, + "Tier": {}, + "ComponentConfiguration": {} + } + } + }, + "DescribeComponentConfigurationRecommendation": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "ComponentName", + "Tier" + ], + "members": { + "ResourceGroupName": {}, + "ComponentName": {}, + "Tier": {} + } + }, + "output": { + "type": "structure", + "members": { + "ComponentConfiguration": {} + } + } + }, + "DescribeLogPattern": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "PatternSetName", + "PatternName" + ], + "members": { + "ResourceGroupName": {}, + "PatternSetName": {}, + "PatternName": {} + } + }, + "output": { + "type": "structure", + "members": { + "ResourceGroupName": {}, + "LogPattern": { + "shape": "Sp" + } + } + } + }, + "DescribeObservation": { + "input": { + "type": "structure", + "required": [ + "ObservationId" + ], + "members": { + "ObservationId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Observation": { + "shape": "S1k" + } + } + } + }, + "DescribeProblem": { + "input": { + "type": "structure", + "required": [ + "ProblemId" + ], + "members": { + "ProblemId": {} + } + }, + "output": { + "type": "structure", + "members": { + "Problem": { + "shape": "S2w" + } + } + } + }, + "DescribeProblemObservations": { + "input": { + "type": "structure", + "required": [ + "ProblemId" + ], + "members": { + "ProblemId": {} + } + }, + "output": { + "type": "structure", + "members": { + "RelatedObservations": { + "type": "structure", + "members": { + "ObservationList": { + "type": "list", + "member": { + "shape": "S1k" + } + } + } + } + } + } + }, + "ListApplications": { + "input": { + "type": "structure", + "members": { + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationInfoList": { + "type": "list", + "member": { + "shape": "Sb" + } + }, + "NextToken": {} + } + } + }, + "ListComponents": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName" + ], + "members": { + "ResourceGroupName": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationComponentList": { + "type": "list", + "member": { + "shape": "S11" + } + }, + "NextToken": {} + } + } + }, + "ListConfigurationHistory": { + "input": { + "type": "structure", + "members": { + "ResourceGroupName": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "EventStatus": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "EventList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "MonitoredResourceARN": {}, + "EventStatus": {}, + "EventResourceType": {}, + "EventTime": { + "type": "timestamp" + }, + "EventDetail": {}, + "EventResourceName": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListLogPatternSets": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName" + ], + "members": { + "ResourceGroupName": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ResourceGroupName": {}, + "LogPatternSets": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + } + }, + "ListLogPatterns": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName" + ], + "members": { + "ResourceGroupName": {}, + "PatternSetName": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ResourceGroupName": {}, + "LogPatterns": { + "type": "list", + "member": { + "shape": "Sp" + } + }, + "NextToken": {} + } + } + }, + "ListProblems": { + "input": { + "type": "structure", + "members": { + "ResourceGroupName": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ProblemList": { + "type": "list", + "member": { + "shape": "S2w" + } + }, + "NextToken": {} + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN" + ], + "members": { + "ResourceARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S6" + } + } + } + }, + "TagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "Tags" + ], + "members": { + "ResourceARN": {}, + "Tags": { + "shape": "S6" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "TagKeys" + ], + "members": { + "ResourceARN": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateApplication": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName" + ], + "members": { + "ResourceGroupName": {}, + "OpsCenterEnabled": { + "type": "boolean" + }, + "CWEMonitorEnabled": { + "type": "boolean" + }, + "OpsItemSNSTopicArn": {}, + "RemoveSNSTopic": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "ApplicationInfo": { + "shape": "Sb" + } + } + } + }, + "UpdateComponent": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "ComponentName" + ], + "members": { + "ResourceGroupName": {}, + "ComponentName": {}, + "NewComponentName": {}, + "ResourceList": { + "shape": "Sg" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateComponentConfiguration": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "ComponentName" + ], + "members": { + "ResourceGroupName": {}, + "ComponentName": {}, + "Monitor": { + "type": "boolean" + }, + "Tier": {}, + "ComponentConfiguration": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateLogPattern": { + "input": { + "type": "structure", + "required": [ + "ResourceGroupName", + "PatternSetName", + "PatternName" + ], + "members": { + "ResourceGroupName": {}, + "PatternSetName": {}, + "PatternName": {}, + "Pattern": {}, + "Rank": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ResourceGroupName": {}, + "LogPattern": { + "shape": "Sp" + } + } + } + } + }, + "shapes": { + "S6": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sb": { + "type": "structure", + "members": { + "ResourceGroupName": {}, + "LifeCycle": {}, + "OpsItemSNSTopicArn": {}, + "OpsCenterEnabled": { + "type": "boolean" + }, + "CWEMonitorEnabled": { + "type": "boolean" + }, + "Remarks": {} + } + }, + "Sg": { + "type": "list", + "member": {} + }, + "Sp": { + "type": "structure", + "members": { + "PatternSetName": {}, + "PatternName": {}, + "Pattern": {}, + "Rank": { + "type": "integer" + } + } + }, + "S11": { + "type": "structure", + "members": { + "ComponentName": {}, + "ComponentRemarks": {}, + "ResourceType": {}, + "OsType": {}, + "Tier": {}, + "Monitor": { + "type": "boolean" + }, + "DetectedWorkload": { + "type": "map", + "key": {}, + "value": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "S1k": { + "type": "structure", + "members": { + "Id": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "SourceType": {}, + "SourceARN": {}, + "LogGroup": {}, + "LineTime": { + "type": "timestamp" + }, + "LogText": {}, + "LogFilter": {}, + "MetricNamespace": {}, + "MetricName": {}, + "Unit": {}, + "Value": { + "type": "double" + }, + "CloudWatchEventId": {}, + "CloudWatchEventSource": {}, + "CloudWatchEventDetailType": {}, + "HealthEventArn": {}, + "HealthService": {}, + "HealthEventTypeCode": {}, + "HealthEventTypeCategory": {}, + "HealthEventDescription": {}, + "CodeDeployDeploymentId": {}, + "CodeDeployDeploymentGroup": {}, + "CodeDeployState": {}, + "CodeDeployApplication": {}, + "CodeDeployInstanceGroupId": {}, + "Ec2State": {}, + "RdsEventCategories": {}, + "RdsEventMessage": {}, + "S3EventName": {}, + "StatesExecutionArn": {}, + "StatesArn": {}, + "StatesStatus": {}, + "StatesInput": {}, + "EbsEvent": {}, + "EbsResult": {}, + "EbsCause": {}, + "EbsRequestId": {}, + "XRayFaultPercent": { + "type": "integer" + }, + "XRayThrottlePercent": { + "type": "integer" + }, + "XRayErrorPercent": { + "type": "integer" + }, + "XRayRequestCount": { + "type": "integer" + }, + "XRayRequestAverageLatency": { + "type": "long" + }, + "XRayNodeName": {}, + "XRayNodeType": {} + } + }, + "S2w": { + "type": "structure", + "members": { + "Id": {}, + "Title": {}, + "Insights": {}, + "Status": {}, + "AffectedResource": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "SeverityLevel": {}, + "ResourceGroupName": {}, + "Feedback": { + "type": "map", + "key": {}, + "value": {} + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..2f237e4c9580cd9b41fbef499ec718e79db686b5 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/application-insights-2018-11-25.paginators.json @@ -0,0 +1,34 @@ +{ + "pagination": { + "ListApplications": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListComponents": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListConfigurationHistory": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListLogPatternSets": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListLogPatterns": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListProblems": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.min.json new file mode 100644 index 0000000000000000000000000000000000000000..52d49f90b6fe6b7556e1b309c4bfb470c3570c82 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.min.json @@ -0,0 +1,243 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2020-09-10", + "endpointPrefix": "application-cost-profiler", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "AWS Application Cost Profiler", + "serviceId": "ApplicationCostProfiler", + "signatureVersion": "v4", + "signingName": "application-cost-profiler", + "uid": "AWSApplicationCostProfiler-2020-09-10" + }, + "operations": { + "DeleteReportDefinition": { + "http": { + "method": "DELETE", + "requestUri": "/reportDefinition/{reportId}" + }, + "input": { + "type": "structure", + "required": [ + "reportId" + ], + "members": { + "reportId": { + "location": "uri", + "locationName": "reportId" + } + } + }, + "output": { + "type": "structure", + "members": { + "reportId": {} + } + } + }, + "GetReportDefinition": { + "http": { + "method": "GET", + "requestUri": "/reportDefinition/{reportId}" + }, + "input": { + "type": "structure", + "required": [ + "reportId" + ], + "members": { + "reportId": { + "location": "uri", + "locationName": "reportId" + } + } + }, + "output": { + "type": "structure", + "required": [ + "reportId", + "reportDescription", + "reportFrequency", + "format", + "destinationS3Location", + "createdAt", + "lastUpdated" + ], + "members": { + "reportId": {}, + "reportDescription": {}, + "reportFrequency": {}, + "format": {}, + "destinationS3Location": { + "shape": "S9" + }, + "createdAt": { + "type": "timestamp" + }, + "lastUpdated": { + "type": "timestamp" + } + } + } + }, + "ImportApplicationUsage": { + "http": { + "requestUri": "/importApplicationUsage" + }, + "input": { + "type": "structure", + "required": [ + "sourceS3Location" + ], + "members": { + "sourceS3Location": { + "type": "structure", + "required": [ + "bucket", + "key" + ], + "members": { + "bucket": {}, + "key": {}, + "region": {} + } + } + } + }, + "output": { + "type": "structure", + "required": [ + "importId" + ], + "members": { + "importId": {} + } + } + }, + "ListReportDefinitions": { + "http": { + "method": "GET", + "requestUri": "/reportDefinition" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "reportDefinitions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "reportId": {}, + "reportDescription": {}, + "reportFrequency": {}, + "format": {}, + "destinationS3Location": { + "shape": "S9" + }, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "PutReportDefinition": { + "http": { + "requestUri": "/reportDefinition" + }, + "input": { + "type": "structure", + "required": [ + "reportId", + "reportDescription", + "reportFrequency", + "format", + "destinationS3Location" + ], + "members": { + "reportId": {}, + "reportDescription": {}, + "reportFrequency": {}, + "format": {}, + "destinationS3Location": { + "shape": "S9" + } + } + }, + "output": { + "type": "structure", + "members": { + "reportId": {} + } + } + }, + "UpdateReportDefinition": { + "http": { + "method": "PUT", + "requestUri": "/reportDefinition/{reportId}" + }, + "input": { + "type": "structure", + "required": [ + "reportId", + "reportDescription", + "reportFrequency", + "format", + "destinationS3Location" + ], + "members": { + "reportId": { + "location": "uri", + "locationName": "reportId" + }, + "reportDescription": {}, + "reportFrequency": {}, + "format": {}, + "destinationS3Location": { + "shape": "S9" + } + } + }, + "output": { + "type": "structure", + "members": { + "reportId": {} + } + } + } + }, + "shapes": { + "S9": { + "type": "structure", + "required": [ + "bucket", + "prefix" + ], + "members": { + "bucket": {}, + "prefix": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..adffd06f188037f2a6843ae5bc467e977bfc5510 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/applicationcostprofiler-2020-09-10.paginators.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListReportDefinitions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "reportDefinitions" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..752e89e032ee0f8e1efd4e7098313703bf934dbe --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.examples.json @@ -0,0 +1,4 @@ +{ + "version": "1.0", + "examples": { } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.min.json new file mode 100644 index 0000000000000000000000000000000000000000..df503ab92179b9ec4a30b353a34885a774fae2b3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.min.json @@ -0,0 +1,966 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-10-01", + "endpointPrefix": "appmesh", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "AWS App Mesh", + "serviceId": "App Mesh", + "signatureVersion": "v4", + "signingName": "appmesh", + "uid": "appmesh-2018-10-01" + }, + "operations": { + "CreateMesh": { + "http": { + "method": "PUT", + "requestUri": "/meshes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": {} + } + }, + "output": { + "type": "structure", + "members": { + "mesh": { + "shape": "S5" + } + }, + "payload": "mesh" + }, + "idempotent": true + }, + "CreateRoute": { + "http": { + "method": "PUT", + "requestUri": "/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "routeName": {}, + "spec": { + "shape": "Sd" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "members": { + "route": { + "shape": "Sl" + } + }, + "payload": "route" + }, + "idempotent": true + }, + "CreateVirtualNode": { + "http": { + "method": "PUT", + "requestUri": "/meshes/{meshName}/virtualNodes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualNodeName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "spec": { + "shape": "Sp" + }, + "virtualNodeName": {} + } + }, + "output": { + "type": "structure", + "members": { + "virtualNode": { + "shape": "S14" + } + }, + "payload": "virtualNode" + }, + "idempotent": true + }, + "CreateVirtualRouter": { + "http": { + "method": "PUT", + "requestUri": "/meshes/{meshName}/virtualRouters", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "spec": { + "shape": "S18" + }, + "virtualRouterName": {} + } + }, + "output": { + "type": "structure", + "members": { + "virtualRouter": { + "shape": "S1b" + } + }, + "payload": "virtualRouter" + }, + "idempotent": true + }, + "DeleteMesh": { + "http": { + "method": "DELETE", + "requestUri": "/meshes/{meshName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + } + } + }, + "output": { + "type": "structure", + "members": { + "mesh": { + "shape": "S5" + } + }, + "payload": "mesh" + }, + "idempotent": true + }, + "DeleteRoute": { + "http": { + "method": "DELETE", + "requestUri": "/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "routeName": { + "location": "uri", + "locationName": "routeName" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "members": { + "route": { + "shape": "Sl" + } + }, + "payload": "route" + }, + "idempotent": true + }, + "DeleteVirtualNode": { + "http": { + "method": "DELETE", + "requestUri": "/meshes/{meshName}/virtualNodes/{virtualNodeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualNodeName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "virtualNodeName": { + "location": "uri", + "locationName": "virtualNodeName" + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualNode": { + "shape": "S14" + } + }, + "payload": "virtualNode" + }, + "idempotent": true + }, + "DeleteVirtualRouter": { + "http": { + "method": "DELETE", + "requestUri": "/meshes/{meshName}/virtualRouters/{virtualRouterName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualRouter": { + "shape": "S1b" + } + }, + "payload": "virtualRouter" + }, + "idempotent": true + }, + "DescribeMesh": { + "http": { + "method": "GET", + "requestUri": "/meshes/{meshName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + } + } + }, + "output": { + "type": "structure", + "members": { + "mesh": { + "shape": "S5" + } + }, + "payload": "mesh" + } + }, + "DescribeRoute": { + "http": { + "method": "GET", + "requestUri": "/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "routeName": { + "location": "uri", + "locationName": "routeName" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "members": { + "route": { + "shape": "Sl" + } + }, + "payload": "route" + } + }, + "DescribeVirtualNode": { + "http": { + "method": "GET", + "requestUri": "/meshes/{meshName}/virtualNodes/{virtualNodeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualNodeName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "virtualNodeName": { + "location": "uri", + "locationName": "virtualNodeName" + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualNode": { + "shape": "S14" + } + }, + "payload": "virtualNode" + } + }, + "DescribeVirtualRouter": { + "http": { + "method": "GET", + "requestUri": "/meshes/{meshName}/virtualRouters/{virtualRouterName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualRouter": { + "shape": "S1b" + } + }, + "payload": "virtualRouter" + } + }, + "ListMeshes": { + "http": { + "method": "GET", + "requestUri": "/meshes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "meshes" + ], + "members": { + "meshes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "meshName": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListRoutes": { + "http": { + "method": "GET", + "requestUri": "/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "routes" + ], + "members": { + "nextToken": {}, + "routes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "meshName": {}, + "routeName": {}, + "virtualRouterName": {} + } + } + } + } + } + }, + "ListVirtualNodes": { + "http": { + "method": "GET", + "requestUri": "/meshes/{meshName}/virtualNodes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualNodes" + ], + "members": { + "nextToken": {}, + "virtualNodes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "meshName": {}, + "virtualNodeName": {} + } + } + } + } + } + }, + "ListVirtualRouters": { + "http": { + "method": "GET", + "requestUri": "/meshes/{meshName}/virtualRouters", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualRouters" + ], + "members": { + "nextToken": {}, + "virtualRouters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "meshName": {}, + "virtualRouterName": {} + } + } + } + } + } + }, + "UpdateRoute": { + "http": { + "method": "PUT", + "requestUri": "/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "routeName": { + "location": "uri", + "locationName": "routeName" + }, + "spec": { + "shape": "Sd" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "members": { + "route": { + "shape": "Sl" + } + }, + "payload": "route" + }, + "idempotent": true + }, + "UpdateVirtualNode": { + "http": { + "method": "PUT", + "requestUri": "/meshes/{meshName}/virtualNodes/{virtualNodeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualNodeName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "spec": { + "shape": "Sp" + }, + "virtualNodeName": { + "location": "uri", + "locationName": "virtualNodeName" + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualNode": { + "shape": "S14" + } + }, + "payload": "virtualNode" + }, + "idempotent": true + }, + "UpdateVirtualRouter": { + "http": { + "method": "PUT", + "requestUri": "/meshes/{meshName}/virtualRouters/{virtualRouterName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "spec": { + "shape": "S18" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "members": { + "virtualRouter": { + "shape": "S1b" + } + }, + "payload": "virtualRouter" + }, + "idempotent": true + } + }, + "shapes": { + "S5": { + "type": "structure", + "required": [ + "meshName", + "metadata" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S6" + }, + "status": { + "type": "structure", + "members": { + "status": {} + } + } + } + }, + "S6": { + "type": "structure", + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "uid": {}, + "version": { + "type": "long" + } + } + }, + "Sd": { + "type": "structure", + "members": { + "httpRoute": { + "type": "structure", + "members": { + "action": { + "type": "structure", + "members": { + "weightedTargets": { + "type": "list", + "member": { + "type": "structure", + "members": { + "virtualNode": {}, + "weight": { + "type": "integer" + } + } + } + } + } + }, + "match": { + "type": "structure", + "members": { + "prefix": {} + } + } + } + } + } + }, + "Sl": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "virtualRouterName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S6" + }, + "routeName": {}, + "spec": { + "shape": "Sd" + }, + "status": { + "type": "structure", + "members": { + "status": {} + } + }, + "virtualRouterName": {} + } + }, + "Sp": { + "type": "structure", + "members": { + "backends": { + "type": "list", + "member": {} + }, + "listeners": { + "type": "list", + "member": { + "type": "structure", + "members": { + "healthCheck": { + "type": "structure", + "required": [ + "healthyThreshold", + "intervalMillis", + "protocol", + "timeoutMillis", + "unhealthyThreshold" + ], + "members": { + "healthyThreshold": { + "type": "integer" + }, + "intervalMillis": { + "type": "long" + }, + "path": {}, + "port": { + "type": "integer" + }, + "protocol": {}, + "timeoutMillis": { + "type": "long" + }, + "unhealthyThreshold": { + "type": "integer" + } + } + }, + "portMapping": { + "type": "structure", + "members": { + "port": { + "type": "integer" + }, + "protocol": {} + } + } + } + } + }, + "serviceDiscovery": { + "type": "structure", + "members": { + "dns": { + "type": "structure", + "members": { + "serviceName": {} + } + } + } + } + } + }, + "S14": { + "type": "structure", + "required": [ + "meshName", + "virtualNodeName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S6" + }, + "spec": { + "shape": "Sp" + }, + "status": { + "type": "structure", + "members": { + "status": {} + } + }, + "virtualNodeName": {} + } + }, + "S18": { + "type": "structure", + "members": { + "serviceNames": { + "type": "list", + "member": {} + } + } + }, + "S1b": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S6" + }, + "spec": { + "shape": "S18" + }, + "status": { + "type": "structure", + "members": { + "status": {} + } + }, + "virtualRouterName": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..83c19c83ce75778946ddf155e0d54f08308b4812 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2018-10-01.paginators.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "ListMeshes": { + "input_token": "nextToken", + "limit_key": "limit", + "output_token": "nextToken", + "result_key": "meshes" + }, + "ListRoutes": { + "input_token": "nextToken", + "limit_key": "limit", + "output_token": "nextToken", + "result_key": "routes" + }, + "ListVirtualNodes": { + "input_token": "nextToken", + "limit_key": "limit", + "output_token": "nextToken", + "result_key": "virtualNodes" + }, + "ListVirtualRouters": { + "input_token": "nextToken", + "limit_key": "limit", + "output_token": "nextToken", + "result_key": "virtualRouters" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.min.json new file mode 100644 index 0000000000000000000000000000000000000000..fd23a1c7c67eaf2da824ef418cfd329cc238484e --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.min.json @@ -0,0 +1,3387 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2019-01-25", + "endpointPrefix": "appmesh", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "AWS App Mesh", + "serviceId": "App Mesh", + "signatureVersion": "v4", + "signingName": "appmesh", + "uid": "appmesh-2019-01-25" + }, + "operations": { + "CreateGatewayRoute": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "gatewayRouteName", + "meshName", + "spec", + "virtualGatewayName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "gatewayRouteName": {}, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S5" + }, + "tags": { + "shape": "S19" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "gatewayRoute" + ], + "members": { + "gatewayRoute": { + "shape": "S1e" + } + }, + "payload": "gatewayRoute" + }, + "idempotent": true + }, + "CreateMesh": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": {}, + "spec": { + "shape": "S1l" + }, + "tags": { + "shape": "S19" + } + } + }, + "output": { + "type": "structure", + "required": [ + "mesh" + ], + "members": { + "mesh": { + "shape": "S1p" + } + }, + "payload": "mesh" + }, + "idempotent": true + }, + "CreateRoute": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "routeName": {}, + "spec": { + "shape": "S1t" + }, + "tags": { + "shape": "S19" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "route" + ], + "members": { + "route": { + "shape": "S2t" + } + }, + "payload": "route" + }, + "idempotent": true + }, + "CreateVirtualGateway": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateways", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualGatewayName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S2x" + }, + "tags": { + "shape": "S19" + }, + "virtualGatewayName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "virtualGateway" + ], + "members": { + "virtualGateway": { + "shape": "S47" + } + }, + "payload": "virtualGateway" + }, + "idempotent": true + }, + "CreateVirtualNode": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualNodes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualNodeName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S4b" + }, + "tags": { + "shape": "S19" + }, + "virtualNodeName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "virtualNode" + ], + "members": { + "virtualNode": { + "shape": "S5t" + } + }, + "payload": "virtualNode" + }, + "idempotent": true + }, + "CreateVirtualRouter": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouters", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S5x" + }, + "tags": { + "shape": "S19" + }, + "virtualRouterName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "virtualRouter" + ], + "members": { + "virtualRouter": { + "shape": "S61" + } + }, + "payload": "virtualRouter" + }, + "idempotent": true + }, + "CreateVirtualService": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualServices", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualServiceName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S65" + }, + "tags": { + "shape": "S19" + }, + "virtualServiceName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "virtualService" + ], + "members": { + "virtualService": { + "shape": "S6a" + } + }, + "payload": "virtualService" + }, + "idempotent": true + }, + "DeleteGatewayRoute": { + "http": { + "method": "DELETE", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "gatewayRouteName", + "meshName", + "virtualGatewayName" + ], + "members": { + "gatewayRouteName": { + "location": "uri", + "locationName": "gatewayRouteName" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "gatewayRoute" + ], + "members": { + "gatewayRoute": { + "shape": "S1e" + } + }, + "payload": "gatewayRoute" + }, + "idempotent": true + }, + "DeleteMesh": { + "http": { + "method": "DELETE", + "requestUri": "/v20190125/meshes/{meshName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "mesh" + ], + "members": { + "mesh": { + "shape": "S1p" + } + }, + "payload": "mesh" + }, + "idempotent": true + }, + "DeleteRoute": { + "http": { + "method": "DELETE", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "routeName": { + "location": "uri", + "locationName": "routeName" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "route" + ], + "members": { + "route": { + "shape": "S2t" + } + }, + "payload": "route" + }, + "idempotent": true + }, + "DeleteVirtualGateway": { + "http": { + "method": "DELETE", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualGatewayName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualGateway" + ], + "members": { + "virtualGateway": { + "shape": "S47" + } + }, + "payload": "virtualGateway" + }, + "idempotent": true + }, + "DeleteVirtualNode": { + "http": { + "method": "DELETE", + "requestUri": "/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualNodeName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualNodeName": { + "location": "uri", + "locationName": "virtualNodeName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualNode" + ], + "members": { + "virtualNode": { + "shape": "S5t" + } + }, + "payload": "virtualNode" + }, + "idempotent": true + }, + "DeleteVirtualRouter": { + "http": { + "method": "DELETE", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualRouter" + ], + "members": { + "virtualRouter": { + "shape": "S61" + } + }, + "payload": "virtualRouter" + }, + "idempotent": true + }, + "DeleteVirtualService": { + "http": { + "method": "DELETE", + "requestUri": "/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualServiceName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualServiceName": { + "location": "uri", + "locationName": "virtualServiceName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualService" + ], + "members": { + "virtualService": { + "shape": "S6a" + } + }, + "payload": "virtualService" + }, + "idempotent": true + }, + "DescribeGatewayRoute": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "gatewayRouteName", + "meshName", + "virtualGatewayName" + ], + "members": { + "gatewayRouteName": { + "location": "uri", + "locationName": "gatewayRouteName" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "gatewayRoute" + ], + "members": { + "gatewayRoute": { + "shape": "S1e" + } + }, + "payload": "gatewayRoute" + } + }, + "DescribeMesh": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + } + } + }, + "output": { + "type": "structure", + "required": [ + "mesh" + ], + "members": { + "mesh": { + "shape": "S1p" + } + }, + "payload": "mesh" + } + }, + "DescribeRoute": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "routeName": { + "location": "uri", + "locationName": "routeName" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "route" + ], + "members": { + "route": { + "shape": "S2t" + } + }, + "payload": "route" + } + }, + "DescribeVirtualGateway": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualGatewayName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualGateway" + ], + "members": { + "virtualGateway": { + "shape": "S47" + } + }, + "payload": "virtualGateway" + } + }, + "DescribeVirtualNode": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualNodeName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualNodeName": { + "location": "uri", + "locationName": "virtualNodeName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualNode" + ], + "members": { + "virtualNode": { + "shape": "S5t" + } + }, + "payload": "virtualNode" + } + }, + "DescribeVirtualRouter": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualRouter" + ], + "members": { + "virtualRouter": { + "shape": "S61" + } + }, + "payload": "virtualRouter" + } + }, + "DescribeVirtualService": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualServiceName" + ], + "members": { + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "virtualServiceName": { + "location": "uri", + "locationName": "virtualServiceName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualService" + ], + "members": { + "virtualService": { + "shape": "S6a" + } + }, + "payload": "virtualService" + } + }, + "ListGatewayRoutes": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualGatewayName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "gatewayRoutes" + ], + "members": { + "gatewayRoutes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "gatewayRouteName", + "lastUpdatedAt", + "meshName", + "meshOwner", + "resourceOwner", + "version", + "virtualGatewayName" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "gatewayRouteName": {}, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshName": {}, + "meshOwner": {}, + "resourceOwner": {}, + "version": { + "type": "long" + }, + "virtualGatewayName": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListMeshes": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "meshes" + ], + "members": { + "meshes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "lastUpdatedAt", + "meshName", + "meshOwner", + "resourceOwner", + "version" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshName": {}, + "meshOwner": {}, + "resourceOwner": {}, + "version": { + "type": "long" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListRoutes": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "virtualRouterName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "routes" + ], + "members": { + "nextToken": {}, + "routes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "lastUpdatedAt", + "meshName", + "meshOwner", + "resourceOwner", + "routeName", + "version", + "virtualRouterName" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshName": {}, + "meshOwner": {}, + "resourceOwner": {}, + "routeName": {}, + "version": { + "type": "long" + }, + "virtualRouterName": {} + } + } + } + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/v20190125/tags", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "resourceArn": { + "location": "querystring", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "tags" + ], + "members": { + "nextToken": {}, + "tags": { + "shape": "S19" + } + } + } + }, + "ListVirtualGateways": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateways", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualGateways" + ], + "members": { + "nextToken": {}, + "virtualGateways": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "lastUpdatedAt", + "meshName", + "meshOwner", + "resourceOwner", + "version", + "virtualGatewayName" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshName": {}, + "meshOwner": {}, + "resourceOwner": {}, + "version": { + "type": "long" + }, + "virtualGatewayName": {} + } + } + } + } + } + }, + "ListVirtualNodes": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualNodes", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualNodes" + ], + "members": { + "nextToken": {}, + "virtualNodes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "lastUpdatedAt", + "meshName", + "meshOwner", + "resourceOwner", + "version", + "virtualNodeName" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshName": {}, + "meshOwner": {}, + "resourceOwner": {}, + "version": { + "type": "long" + }, + "virtualNodeName": {} + } + } + } + } + } + }, + "ListVirtualRouters": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouters", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualRouters" + ], + "members": { + "nextToken": {}, + "virtualRouters": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "lastUpdatedAt", + "meshName", + "meshOwner", + "resourceOwner", + "version", + "virtualRouterName" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshName": {}, + "meshOwner": {}, + "resourceOwner": {}, + "version": { + "type": "long" + }, + "virtualRouterName": {} + } + } + } + } + } + }, + "ListVirtualServices": { + "http": { + "method": "GET", + "requestUri": "/v20190125/meshes/{meshName}/virtualServices", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "limit": { + "location": "querystring", + "locationName": "limit", + "type": "integer" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualServices" + ], + "members": { + "nextToken": {}, + "virtualServices": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "lastUpdatedAt", + "meshName", + "meshOwner", + "resourceOwner", + "version", + "virtualServiceName" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshName": {}, + "meshOwner": {}, + "resourceOwner": {}, + "version": { + "type": "long" + }, + "virtualServiceName": {} + } + } + } + } + } + }, + "TagResource": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/tag", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "querystring", + "locationName": "resourceArn" + }, + "tags": { + "shape": "S19" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "UntagResource": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/untag", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "querystring", + "locationName": "resourceArn" + }, + "tagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "UpdateGatewayRoute": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateway/{virtualGatewayName}/gatewayRoutes/{gatewayRouteName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "gatewayRouteName", + "meshName", + "spec", + "virtualGatewayName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "gatewayRouteName": { + "location": "uri", + "locationName": "gatewayRouteName" + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S5" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "gatewayRoute" + ], + "members": { + "gatewayRoute": { + "shape": "S1e" + } + }, + "payload": "gatewayRoute" + }, + "idempotent": true + }, + "UpdateMesh": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "spec": { + "shape": "S1l" + } + } + }, + "output": { + "type": "structure", + "required": [ + "mesh" + ], + "members": { + "mesh": { + "shape": "S1p" + } + }, + "payload": "mesh" + }, + "idempotent": true + }, + "UpdateRoute": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouter/{virtualRouterName}/routes/{routeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "routeName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "routeName": { + "location": "uri", + "locationName": "routeName" + }, + "spec": { + "shape": "S1t" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "route" + ], + "members": { + "route": { + "shape": "S2t" + } + }, + "payload": "route" + }, + "idempotent": true + }, + "UpdateVirtualGateway": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualGateways/{virtualGatewayName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualGatewayName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S2x" + }, + "virtualGatewayName": { + "location": "uri", + "locationName": "virtualGatewayName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualGateway" + ], + "members": { + "virtualGateway": { + "shape": "S47" + } + }, + "payload": "virtualGateway" + }, + "idempotent": true + }, + "UpdateVirtualNode": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualNodes/{virtualNodeName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualNodeName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S4b" + }, + "virtualNodeName": { + "location": "uri", + "locationName": "virtualNodeName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualNode" + ], + "members": { + "virtualNode": { + "shape": "S5t" + } + }, + "payload": "virtualNode" + }, + "idempotent": true + }, + "UpdateVirtualRouter": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualRouterName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S5x" + }, + "virtualRouterName": { + "location": "uri", + "locationName": "virtualRouterName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualRouter" + ], + "members": { + "virtualRouter": { + "shape": "S61" + } + }, + "payload": "virtualRouter" + }, + "idempotent": true + }, + "UpdateVirtualService": { + "http": { + "method": "PUT", + "requestUri": "/v20190125/meshes/{meshName}/virtualServices/{virtualServiceName}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "meshName", + "spec", + "virtualServiceName" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "meshName": { + "location": "uri", + "locationName": "meshName" + }, + "meshOwner": { + "location": "querystring", + "locationName": "meshOwner" + }, + "spec": { + "shape": "S65" + }, + "virtualServiceName": { + "location": "uri", + "locationName": "virtualServiceName" + } + } + }, + "output": { + "type": "structure", + "required": [ + "virtualService" + ], + "members": { + "virtualService": { + "shape": "S6a" + } + }, + "payload": "virtualService" + }, + "idempotent": true + } + }, + "shapes": { + "S5": { + "type": "structure", + "members": { + "grpcRoute": { + "type": "structure", + "required": [ + "action", + "match" + ], + "members": { + "action": { + "type": "structure", + "required": [ + "target" + ], + "members": { + "rewrite": { + "type": "structure", + "members": { + "hostname": { + "shape": "S9" + } + } + }, + "target": { + "shape": "Sb" + } + } + }, + "match": { + "type": "structure", + "members": { + "hostname": { + "shape": "Se" + }, + "metadata": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "invert": { + "type": "boolean" + }, + "match": { + "type": "structure", + "members": { + "exact": {}, + "prefix": {}, + "range": { + "shape": "Sm" + }, + "regex": {}, + "suffix": {} + }, + "union": true + }, + "name": {} + } + } + }, + "serviceName": {} + } + } + } + }, + "http2Route": { + "shape": "Sq" + }, + "httpRoute": { + "shape": "Sq" + }, + "priority": { + "type": "integer" + } + } + }, + "S9": { + "type": "structure", + "members": { + "defaultTargetHostname": {} + } + }, + "Sb": { + "type": "structure", + "required": [ + "virtualService" + ], + "members": { + "virtualService": { + "type": "structure", + "required": [ + "virtualServiceName" + ], + "members": { + "virtualServiceName": {} + } + } + } + }, + "Se": { + "type": "structure", + "members": { + "exact": {}, + "suffix": {} + } + }, + "Sm": { + "type": "structure", + "required": [ + "end", + "start" + ], + "members": { + "end": { + "type": "long" + }, + "start": { + "type": "long" + } + } + }, + "Sq": { + "type": "structure", + "required": [ + "action", + "match" + ], + "members": { + "action": { + "type": "structure", + "required": [ + "target" + ], + "members": { + "rewrite": { + "type": "structure", + "members": { + "hostname": { + "shape": "S9" + }, + "path": { + "type": "structure", + "members": { + "exact": {} + } + }, + "prefix": { + "type": "structure", + "members": { + "defaultPrefix": {}, + "value": {} + } + } + } + }, + "target": { + "shape": "Sb" + } + } + }, + "match": { + "type": "structure", + "members": { + "headers": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "invert": { + "type": "boolean" + }, + "match": { + "shape": "S10" + }, + "name": {} + } + } + }, + "hostname": { + "shape": "Se" + }, + "method": {}, + "path": { + "shape": "S12" + }, + "prefix": {}, + "queryParameters": { + "shape": "S14" + } + } + } + } + }, + "S10": { + "type": "structure", + "members": { + "exact": {}, + "prefix": {}, + "range": { + "shape": "Sm" + }, + "regex": {}, + "suffix": {} + }, + "union": true + }, + "S12": { + "type": "structure", + "members": { + "exact": {}, + "regex": {} + } + }, + "S14": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "match": { + "type": "structure", + "members": { + "exact": {} + } + }, + "name": {} + } + } + }, + "S19": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "S1e": { + "type": "structure", + "required": [ + "gatewayRouteName", + "meshName", + "metadata", + "spec", + "status", + "virtualGatewayName" + ], + "members": { + "gatewayRouteName": {}, + "meshName": {}, + "metadata": { + "shape": "S1f" + }, + "spec": { + "shape": "S5" + }, + "status": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": {} + } + }, + "virtualGatewayName": {} + } + }, + "S1f": { + "type": "structure", + "required": [ + "arn", + "createdAt", + "lastUpdatedAt", + "meshOwner", + "resourceOwner", + "uid", + "version" + ], + "members": { + "arn": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "meshOwner": {}, + "resourceOwner": {}, + "uid": {}, + "version": { + "type": "long" + } + } + }, + "S1l": { + "type": "structure", + "members": { + "egressFilter": { + "type": "structure", + "required": [ + "type" + ], + "members": { + "type": {} + } + } + } + }, + "S1p": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "spec", + "status" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S1f" + }, + "spec": { + "shape": "S1l" + }, + "status": { + "type": "structure", + "members": { + "status": {} + } + } + } + }, + "S1t": { + "type": "structure", + "members": { + "grpcRoute": { + "type": "structure", + "required": [ + "action", + "match" + ], + "members": { + "action": { + "type": "structure", + "required": [ + "weightedTargets" + ], + "members": { + "weightedTargets": { + "shape": "S1w" + } + } + }, + "match": { + "type": "structure", + "members": { + "metadata": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "invert": { + "type": "boolean" + }, + "match": { + "type": "structure", + "members": { + "exact": {}, + "prefix": {}, + "range": { + "shape": "Sm" + }, + "regex": {}, + "suffix": {} + }, + "union": true + }, + "name": {} + } + } + }, + "methodName": {}, + "serviceName": {} + } + }, + "retryPolicy": { + "type": "structure", + "required": [ + "maxRetries", + "perRetryTimeout" + ], + "members": { + "grpcRetryEvents": { + "type": "list", + "member": {} + }, + "httpRetryEvents": { + "shape": "S27" + }, + "maxRetries": { + "type": "long" + }, + "perRetryTimeout": { + "shape": "S2a" + }, + "tcpRetryEvents": { + "shape": "S2d" + } + } + }, + "timeout": { + "shape": "S2f" + } + } + }, + "http2Route": { + "shape": "S2g" + }, + "httpRoute": { + "shape": "S2g" + }, + "priority": { + "type": "integer" + }, + "tcpRoute": { + "type": "structure", + "required": [ + "action" + ], + "members": { + "action": { + "type": "structure", + "required": [ + "weightedTargets" + ], + "members": { + "weightedTargets": { + "shape": "S1w" + } + } + }, + "timeout": { + "shape": "S2r" + } + } + } + } + }, + "S1w": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "virtualNode", + "weight" + ], + "members": { + "virtualNode": {}, + "weight": { + "type": "integer" + } + } + } + }, + "S27": { + "type": "list", + "member": {} + }, + "S2a": { + "type": "structure", + "members": { + "unit": {}, + "value": { + "type": "long" + } + } + }, + "S2d": { + "type": "list", + "member": {} + }, + "S2f": { + "type": "structure", + "members": { + "idle": { + "shape": "S2a" + }, + "perRequest": { + "shape": "S2a" + } + } + }, + "S2g": { + "type": "structure", + "required": [ + "action", + "match" + ], + "members": { + "action": { + "type": "structure", + "required": [ + "weightedTargets" + ], + "members": { + "weightedTargets": { + "shape": "S1w" + } + } + }, + "match": { + "type": "structure", + "members": { + "headers": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "invert": { + "type": "boolean" + }, + "match": { + "shape": "S10" + }, + "name": {} + } + } + }, + "method": {}, + "path": { + "shape": "S12" + }, + "prefix": {}, + "queryParameters": { + "shape": "S14" + }, + "scheme": {} + } + }, + "retryPolicy": { + "type": "structure", + "required": [ + "maxRetries", + "perRetryTimeout" + ], + "members": { + "httpRetryEvents": { + "shape": "S27" + }, + "maxRetries": { + "type": "long" + }, + "perRetryTimeout": { + "shape": "S2a" + }, + "tcpRetryEvents": { + "shape": "S2d" + } + } + }, + "timeout": { + "shape": "S2n" + } + } + }, + "S2n": { + "type": "structure", + "members": { + "idle": { + "shape": "S2a" + }, + "perRequest": { + "shape": "S2a" + } + } + }, + "S2r": { + "type": "structure", + "members": { + "idle": { + "shape": "S2a" + } + } + }, + "S2t": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "routeName", + "spec", + "status", + "virtualRouterName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S1f" + }, + "routeName": {}, + "spec": { + "shape": "S1t" + }, + "status": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": {} + } + }, + "virtualRouterName": {} + } + }, + "S2x": { + "type": "structure", + "required": [ + "listeners" + ], + "members": { + "backendDefaults": { + "type": "structure", + "members": { + "clientPolicy": { + "type": "structure", + "members": { + "tls": { + "type": "structure", + "required": [ + "validation" + ], + "members": { + "certificate": { + "type": "structure", + "members": { + "file": { + "shape": "S32" + }, + "sds": { + "shape": "S34" + } + }, + "union": true + }, + "enforce": { + "type": "boolean" + }, + "ports": { + "shape": "S36" + }, + "validation": { + "type": "structure", + "required": [ + "trust" + ], + "members": { + "subjectAlternativeNames": { + "shape": "S39" + }, + "trust": { + "type": "structure", + "members": { + "acm": { + "type": "structure", + "required": [ + "certificateAuthorityArns" + ], + "members": { + "certificateAuthorityArns": { + "type": "list", + "member": {} + } + } + }, + "file": { + "shape": "S3g" + }, + "sds": { + "shape": "S3h" + } + }, + "union": true + } + } + } + } + } + } + } + } + }, + "listeners": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "portMapping" + ], + "members": { + "connectionPool": { + "type": "structure", + "members": { + "grpc": { + "type": "structure", + "required": [ + "maxRequests" + ], + "members": { + "maxRequests": { + "type": "integer" + } + } + }, + "http": { + "type": "structure", + "required": [ + "maxConnections" + ], + "members": { + "maxConnections": { + "type": "integer" + }, + "maxPendingRequests": { + "type": "integer" + } + } + }, + "http2": { + "type": "structure", + "required": [ + "maxRequests" + ], + "members": { + "maxRequests": { + "type": "integer" + } + } + } + }, + "union": true + }, + "healthCheck": { + "type": "structure", + "required": [ + "healthyThreshold", + "intervalMillis", + "protocol", + "timeoutMillis", + "unhealthyThreshold" + ], + "members": { + "healthyThreshold": { + "type": "integer" + }, + "intervalMillis": { + "type": "long" + }, + "path": {}, + "port": { + "type": "integer" + }, + "protocol": {}, + "timeoutMillis": { + "type": "long" + }, + "unhealthyThreshold": { + "type": "integer" + } + } + }, + "portMapping": { + "type": "structure", + "required": [ + "port", + "protocol" + ], + "members": { + "port": { + "type": "integer" + }, + "protocol": {} + } + }, + "tls": { + "type": "structure", + "required": [ + "certificate", + "mode" + ], + "members": { + "certificate": { + "type": "structure", + "members": { + "acm": { + "type": "structure", + "required": [ + "certificateArn" + ], + "members": { + "certificateArn": {} + } + }, + "file": { + "shape": "S32" + }, + "sds": { + "shape": "S34" + } + }, + "union": true + }, + "mode": {}, + "validation": { + "type": "structure", + "required": [ + "trust" + ], + "members": { + "subjectAlternativeNames": { + "shape": "S39" + }, + "trust": { + "type": "structure", + "members": { + "file": { + "shape": "S3g" + }, + "sds": { + "shape": "S3h" + } + }, + "union": true + } + } + } + } + } + } + } + }, + "logging": { + "type": "structure", + "members": { + "accessLog": { + "type": "structure", + "members": { + "file": { + "type": "structure", + "required": [ + "path" + ], + "members": { + "path": {} + } + } + }, + "union": true + } + } + } + } + }, + "S32": { + "type": "structure", + "required": [ + "certificateChain", + "privateKey" + ], + "members": { + "certificateChain": {}, + "privateKey": {} + } + }, + "S34": { + "type": "structure", + "required": [ + "secretName" + ], + "members": { + "secretName": {} + } + }, + "S36": { + "type": "list", + "member": { + "type": "integer" + } + }, + "S39": { + "type": "structure", + "required": [ + "match" + ], + "members": { + "match": { + "type": "structure", + "required": [ + "exact" + ], + "members": { + "exact": { + "type": "list", + "member": {} + } + } + } + } + }, + "S3g": { + "type": "structure", + "required": [ + "certificateChain" + ], + "members": { + "certificateChain": {} + } + }, + "S3h": { + "type": "structure", + "required": [ + "secretName" + ], + "members": { + "secretName": {} + } + }, + "S47": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "spec", + "status", + "virtualGatewayName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S1f" + }, + "spec": { + "shape": "S2x" + }, + "status": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": {} + } + }, + "virtualGatewayName": {} + } + }, + "S4b": { + "type": "structure", + "members": { + "backendDefaults": { + "type": "structure", + "members": { + "clientPolicy": { + "shape": "S4d" + } + } + }, + "backends": { + "type": "list", + "member": { + "type": "structure", + "members": { + "virtualService": { + "type": "structure", + "required": [ + "virtualServiceName" + ], + "members": { + "clientPolicy": { + "shape": "S4d" + }, + "virtualServiceName": {} + } + } + }, + "union": true + } + }, + "listeners": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "portMapping" + ], + "members": { + "connectionPool": { + "type": "structure", + "members": { + "grpc": { + "type": "structure", + "required": [ + "maxRequests" + ], + "members": { + "maxRequests": { + "type": "integer" + } + } + }, + "http": { + "type": "structure", + "required": [ + "maxConnections" + ], + "members": { + "maxConnections": { + "type": "integer" + }, + "maxPendingRequests": { + "type": "integer" + } + } + }, + "http2": { + "type": "structure", + "required": [ + "maxRequests" + ], + "members": { + "maxRequests": { + "type": "integer" + } + } + }, + "tcp": { + "type": "structure", + "required": [ + "maxConnections" + ], + "members": { + "maxConnections": { + "type": "integer" + } + } + } + }, + "union": true + }, + "healthCheck": { + "type": "structure", + "required": [ + "healthyThreshold", + "intervalMillis", + "protocol", + "timeoutMillis", + "unhealthyThreshold" + ], + "members": { + "healthyThreshold": { + "type": "integer" + }, + "intervalMillis": { + "type": "long" + }, + "path": {}, + "port": { + "type": "integer" + }, + "protocol": {}, + "timeoutMillis": { + "type": "long" + }, + "unhealthyThreshold": { + "type": "integer" + } + } + }, + "outlierDetection": { + "type": "structure", + "required": [ + "baseEjectionDuration", + "interval", + "maxEjectionPercent", + "maxServerErrors" + ], + "members": { + "baseEjectionDuration": { + "shape": "S2a" + }, + "interval": { + "shape": "S2a" + }, + "maxEjectionPercent": { + "type": "integer" + }, + "maxServerErrors": { + "type": "long" + } + } + }, + "portMapping": { + "shape": "S57" + }, + "timeout": { + "type": "structure", + "members": { + "grpc": { + "shape": "S2f" + }, + "http": { + "shape": "S2n" + }, + "http2": { + "shape": "S2n" + }, + "tcp": { + "shape": "S2r" + } + }, + "union": true + }, + "tls": { + "type": "structure", + "required": [ + "certificate", + "mode" + ], + "members": { + "certificate": { + "type": "structure", + "members": { + "acm": { + "type": "structure", + "required": [ + "certificateArn" + ], + "members": { + "certificateArn": {} + } + }, + "file": { + "shape": "S4g" + }, + "sds": { + "shape": "S4h" + } + }, + "union": true + }, + "mode": {}, + "validation": { + "type": "structure", + "required": [ + "trust" + ], + "members": { + "subjectAlternativeNames": { + "shape": "S39" + }, + "trust": { + "type": "structure", + "members": { + "file": { + "shape": "S4n" + }, + "sds": { + "shape": "S4o" + } + }, + "union": true + } + } + } + } + } + } + } + }, + "logging": { + "type": "structure", + "members": { + "accessLog": { + "type": "structure", + "members": { + "file": { + "type": "structure", + "required": [ + "path" + ], + "members": { + "path": {} + } + } + }, + "union": true + } + } + }, + "serviceDiscovery": { + "type": "structure", + "members": { + "awsCloudMap": { + "type": "structure", + "required": [ + "namespaceName", + "serviceName" + ], + "members": { + "attributes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "key", + "value" + ], + "members": { + "key": {}, + "value": {} + } + } + }, + "namespaceName": {}, + "serviceName": {} + } + }, + "dns": { + "type": "structure", + "required": [ + "hostname" + ], + "members": { + "hostname": {}, + "responseType": {} + } + } + }, + "union": true + } + } + }, + "S4d": { + "type": "structure", + "members": { + "tls": { + "type": "structure", + "required": [ + "validation" + ], + "members": { + "certificate": { + "type": "structure", + "members": { + "file": { + "shape": "S4g" + }, + "sds": { + "shape": "S4h" + } + }, + "union": true + }, + "enforce": { + "type": "boolean" + }, + "ports": { + "shape": "S36" + }, + "validation": { + "type": "structure", + "required": [ + "trust" + ], + "members": { + "subjectAlternativeNames": { + "shape": "S39" + }, + "trust": { + "type": "structure", + "members": { + "acm": { + "type": "structure", + "required": [ + "certificateAuthorityArns" + ], + "members": { + "certificateAuthorityArns": { + "type": "list", + "member": {} + } + } + }, + "file": { + "shape": "S4n" + }, + "sds": { + "shape": "S4o" + } + }, + "union": true + } + } + } + } + } + } + }, + "S4g": { + "type": "structure", + "required": [ + "certificateChain", + "privateKey" + ], + "members": { + "certificateChain": {}, + "privateKey": {} + } + }, + "S4h": { + "type": "structure", + "required": [ + "secretName" + ], + "members": { + "secretName": {} + } + }, + "S4n": { + "type": "structure", + "required": [ + "certificateChain" + ], + "members": { + "certificateChain": {} + } + }, + "S4o": { + "type": "structure", + "required": [ + "secretName" + ], + "members": { + "secretName": {} + } + }, + "S57": { + "type": "structure", + "required": [ + "port", + "protocol" + ], + "members": { + "port": { + "type": "integer" + }, + "protocol": {} + } + }, + "S5t": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "spec", + "status", + "virtualNodeName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S1f" + }, + "spec": { + "shape": "S4b" + }, + "status": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": {} + } + }, + "virtualNodeName": {} + } + }, + "S5x": { + "type": "structure", + "members": { + "listeners": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "portMapping" + ], + "members": { + "portMapping": { + "shape": "S57" + } + } + } + } + } + }, + "S61": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "spec", + "status", + "virtualRouterName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S1f" + }, + "spec": { + "shape": "S5x" + }, + "status": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": {} + } + }, + "virtualRouterName": {} + } + }, + "S65": { + "type": "structure", + "members": { + "provider": { + "type": "structure", + "members": { + "virtualNode": { + "type": "structure", + "required": [ + "virtualNodeName" + ], + "members": { + "virtualNodeName": {} + } + }, + "virtualRouter": { + "type": "structure", + "required": [ + "virtualRouterName" + ], + "members": { + "virtualRouterName": {} + } + } + }, + "union": true + } + } + }, + "S6a": { + "type": "structure", + "required": [ + "meshName", + "metadata", + "spec", + "status", + "virtualServiceName" + ], + "members": { + "meshName": {}, + "metadata": { + "shape": "S1f" + }, + "spec": { + "shape": "S65" + }, + "status": { + "type": "structure", + "required": [ + "status" + ], + "members": { + "status": {} + } + }, + "virtualServiceName": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..03f248425e21ae05bb0c43720821b3482537e5de --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appmesh-2019-01-25.paginators.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "ListGatewayRoutes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "gatewayRoutes" + }, + "ListMeshes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "meshes" + }, + "ListRoutes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "routes" + }, + "ListTagsForResource": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "tags" + }, + "ListVirtualGateways": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "virtualGateways" + }, + "ListVirtualNodes": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "virtualNodes" + }, + "ListVirtualRouters": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "virtualRouters" + }, + "ListVirtualServices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "limit", + "result_key": "virtualServices" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.min.json new file mode 100644 index 0000000000000000000000000000000000000000..2809b9acc82c00116d319b47440f2a16d7930cc3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.min.json @@ -0,0 +1,896 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2020-05-15", + "endpointPrefix": "apprunner", + "jsonVersion": "1.0", + "protocol": "json", + "serviceFullName": "AWS App Runner", + "serviceId": "AppRunner", + "signatureVersion": "v4", + "signingName": "apprunner", + "targetPrefix": "AppRunner", + "uid": "apprunner-2020-05-15" + }, + "operations": { + "AssociateCustomDomain": { + "input": { + "type": "structure", + "required": [ + "ServiceArn", + "DomainName" + ], + "members": { + "ServiceArn": {}, + "DomainName": {}, + "EnableWWWSubdomain": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "required": [ + "DNSTarget", + "ServiceArn", + "CustomDomain" + ], + "members": { + "DNSTarget": {}, + "ServiceArn": {}, + "CustomDomain": { + "shape": "S7" + } + } + } + }, + "CreateAutoScalingConfiguration": { + "input": { + "type": "structure", + "required": [ + "AutoScalingConfigurationName" + ], + "members": { + "AutoScalingConfigurationName": {}, + "MaxConcurrency": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "Tags": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "required": [ + "AutoScalingConfiguration" + ], + "members": { + "AutoScalingConfiguration": { + "shape": "Sm" + } + } + } + }, + "CreateConnection": { + "input": { + "type": "structure", + "required": [ + "ConnectionName", + "ProviderType" + ], + "members": { + "ConnectionName": {}, + "ProviderType": {}, + "Tags": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Connection" + ], + "members": { + "Connection": { + "shape": "Sv" + } + } + } + }, + "CreateService": { + "input": { + "type": "structure", + "required": [ + "ServiceName", + "SourceConfiguration" + ], + "members": { + "ServiceName": {}, + "SourceConfiguration": { + "shape": "Sz" + }, + "InstanceConfiguration": { + "shape": "S1i" + }, + "Tags": { + "shape": "Sh" + }, + "EncryptionConfiguration": { + "shape": "S1l" + }, + "HealthCheckConfiguration": { + "shape": "S1n" + }, + "AutoScalingConfigurationArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Service", + "OperationId" + ], + "members": { + "Service": { + "shape": "S1u" + }, + "OperationId": {} + } + } + }, + "DeleteAutoScalingConfiguration": { + "input": { + "type": "structure", + "required": [ + "AutoScalingConfigurationArn" + ], + "members": { + "AutoScalingConfigurationArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AutoScalingConfiguration" + ], + "members": { + "AutoScalingConfiguration": { + "shape": "Sm" + } + } + } + }, + "DeleteConnection": { + "input": { + "type": "structure", + "required": [ + "ConnectionArn" + ], + "members": { + "ConnectionArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Connection": { + "shape": "Sv" + } + } + } + }, + "DeleteService": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Service", + "OperationId" + ], + "members": { + "Service": { + "shape": "S1u" + }, + "OperationId": {} + } + } + }, + "DescribeAutoScalingConfiguration": { + "input": { + "type": "structure", + "required": [ + "AutoScalingConfigurationArn" + ], + "members": { + "AutoScalingConfigurationArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AutoScalingConfiguration" + ], + "members": { + "AutoScalingConfiguration": { + "shape": "Sm" + } + } + } + }, + "DescribeCustomDomains": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "DNSTarget", + "ServiceArn", + "CustomDomains" + ], + "members": { + "DNSTarget": {}, + "ServiceArn": {}, + "CustomDomains": { + "type": "list", + "member": { + "shape": "S7" + } + }, + "NextToken": {} + } + } + }, + "DescribeService": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Service" + ], + "members": { + "Service": { + "shape": "S1u" + } + } + } + }, + "DisassociateCustomDomain": { + "input": { + "type": "structure", + "required": [ + "ServiceArn", + "DomainName" + ], + "members": { + "ServiceArn": {}, + "DomainName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "DNSTarget", + "ServiceArn", + "CustomDomain" + ], + "members": { + "DNSTarget": {}, + "ServiceArn": {}, + "CustomDomain": { + "shape": "S7" + } + } + } + }, + "ListAutoScalingConfigurations": { + "input": { + "type": "structure", + "members": { + "AutoScalingConfigurationName": {}, + "LatestOnly": { + "type": "boolean" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AutoScalingConfigurationSummaryList" + ], + "members": { + "AutoScalingConfigurationSummaryList": { + "type": "list", + "member": { + "shape": "S1x" + } + }, + "NextToken": {} + } + } + }, + "ListConnections": { + "input": { + "type": "structure", + "members": { + "ConnectionName": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "ConnectionSummaryList" + ], + "members": { + "ConnectionSummaryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ConnectionName": {}, + "ConnectionArn": {}, + "ProviderType": {}, + "Status": {}, + "CreatedAt": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListOperations": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "OperationSummaryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Id": {}, + "Type": {}, + "Status": {}, + "TargetArn": {}, + "StartedAt": { + "type": "timestamp" + }, + "EndedAt": { + "type": "timestamp" + }, + "UpdatedAt": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListServices": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "ServiceSummaryList" + ], + "members": { + "ServiceSummaryList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ServiceName": {}, + "ServiceId": {}, + "ServiceArn": {}, + "ServiceUrl": {}, + "CreatedAt": { + "type": "timestamp" + }, + "UpdatedAt": { + "type": "timestamp" + }, + "Status": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "Sh" + } + } + } + }, + "PauseService": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Service" + ], + "members": { + "Service": { + "shape": "S1u" + }, + "OperationId": {} + } + } + }, + "ResumeService": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Service" + ], + "members": { + "Service": { + "shape": "S1u" + }, + "OperationId": {} + } + } + }, + "StartDeployment": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {} + } + }, + "output": { + "type": "structure", + "required": [ + "OperationId" + ], + "members": { + "OperationId": {} + } + } + }, + "TagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "Tags" + ], + "members": { + "ResourceArn": {}, + "Tags": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "TagKeys" + ], + "members": { + "ResourceArn": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateService": { + "input": { + "type": "structure", + "required": [ + "ServiceArn" + ], + "members": { + "ServiceArn": {}, + "SourceConfiguration": { + "shape": "Sz" + }, + "InstanceConfiguration": { + "shape": "S1i" + }, + "AutoScalingConfigurationArn": {}, + "HealthCheckConfiguration": { + "shape": "S1n" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Service", + "OperationId" + ], + "members": { + "Service": { + "shape": "S1u" + }, + "OperationId": {} + } + } + } + }, + "shapes": { + "S7": { + "type": "structure", + "required": [ + "DomainName", + "EnableWWWSubdomain", + "Status" + ], + "members": { + "DomainName": {}, + "EnableWWWSubdomain": { + "type": "boolean" + }, + "CertificateValidationRecords": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Type": {}, + "Value": {}, + "Status": {} + } + } + }, + "Status": {} + } + }, + "Sh": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "Sm": { + "type": "structure", + "members": { + "AutoScalingConfigurationArn": {}, + "AutoScalingConfigurationName": {}, + "AutoScalingConfigurationRevision": { + "type": "integer" + }, + "Latest": { + "type": "boolean" + }, + "Status": {}, + "MaxConcurrency": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "CreatedAt": { + "type": "timestamp" + }, + "DeletedAt": { + "type": "timestamp" + } + } + }, + "Sv": { + "type": "structure", + "members": { + "ConnectionName": {}, + "ConnectionArn": {}, + "ProviderType": {}, + "Status": {}, + "CreatedAt": { + "type": "timestamp" + } + } + }, + "Sz": { + "type": "structure", + "members": { + "CodeRepository": { + "type": "structure", + "required": [ + "RepositoryUrl", + "SourceCodeVersion" + ], + "members": { + "RepositoryUrl": {}, + "SourceCodeVersion": { + "type": "structure", + "required": [ + "Type", + "Value" + ], + "members": { + "Type": {}, + "Value": {} + } + }, + "CodeConfiguration": { + "type": "structure", + "required": [ + "ConfigurationSource" + ], + "members": { + "ConfigurationSource": {}, + "CodeConfigurationValues": { + "type": "structure", + "required": [ + "Runtime" + ], + "members": { + "Runtime": {}, + "BuildCommand": { + "type": "string", + "sensitive": true + }, + "StartCommand": { + "type": "string", + "sensitive": true + }, + "Port": {}, + "RuntimeEnvironmentVariables": { + "shape": "S19" + } + } + } + } + } + } + }, + "ImageRepository": { + "type": "structure", + "required": [ + "ImageIdentifier", + "ImageRepositoryType" + ], + "members": { + "ImageIdentifier": {}, + "ImageConfiguration": { + "type": "structure", + "members": { + "RuntimeEnvironmentVariables": { + "shape": "S19" + }, + "StartCommand": {}, + "Port": {} + } + }, + "ImageRepositoryType": {} + } + }, + "AutoDeploymentsEnabled": { + "type": "boolean" + }, + "AuthenticationConfiguration": { + "type": "structure", + "members": { + "ConnectionArn": {}, + "AccessRoleArn": {} + } + } + } + }, + "S19": { + "type": "map", + "key": { + "type": "string", + "sensitive": true + }, + "value": { + "type": "string", + "sensitive": true + } + }, + "S1i": { + "type": "structure", + "members": { + "Cpu": {}, + "Memory": {}, + "InstanceRoleArn": {} + } + }, + "S1l": { + "type": "structure", + "required": [ + "KmsKey" + ], + "members": { + "KmsKey": {} + } + }, + "S1n": { + "type": "structure", + "members": { + "Protocol": {}, + "Path": {}, + "Interval": { + "type": "integer" + }, + "Timeout": { + "type": "integer" + }, + "HealthyThreshold": { + "type": "integer" + }, + "UnhealthyThreshold": { + "type": "integer" + } + } + }, + "S1u": { + "type": "structure", + "required": [ + "ServiceName", + "ServiceId", + "ServiceArn", + "ServiceUrl", + "CreatedAt", + "UpdatedAt", + "Status", + "SourceConfiguration", + "InstanceConfiguration", + "AutoScalingConfigurationSummary" + ], + "members": { + "ServiceName": {}, + "ServiceId": {}, + "ServiceArn": {}, + "ServiceUrl": {}, + "CreatedAt": { + "type": "timestamp" + }, + "UpdatedAt": { + "type": "timestamp" + }, + "DeletedAt": { + "type": "timestamp" + }, + "Status": {}, + "SourceConfiguration": { + "shape": "Sz" + }, + "InstanceConfiguration": { + "shape": "S1i" + }, + "EncryptionConfiguration": { + "shape": "S1l" + }, + "HealthCheckConfiguration": { + "shape": "S1n" + }, + "AutoScalingConfigurationSummary": { + "shape": "S1x" + } + } + }, + "S1x": { + "type": "structure", + "members": { + "AutoScalingConfigurationArn": {}, + "AutoScalingConfigurationName": {}, + "AutoScalingConfigurationRevision": { + "type": "integer" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..698ccc695c0d488cd7471877fb921dabd1c32883 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/apprunner-2020-05-15.paginators.json @@ -0,0 +1,29 @@ +{ + "pagination": { + "DescribeCustomDomains": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListAutoScalingConfigurations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListConnections": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListOperations": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListServices": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.min.json new file mode 100644 index 0000000000000000000000000000000000000000..6df6c19109e7a41943b8e1ce9cf5564fb24ef530 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.min.json @@ -0,0 +1,1685 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-12-01", + "endpointPrefix": "appstream2", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon AppStream", + "serviceId": "AppStream", + "signatureVersion": "v4", + "signingName": "appstream", + "targetPrefix": "PhotonAdminProxyService", + "uid": "appstream-2016-12-01" + }, + "operations": { + "AssociateFleet": { + "input": { + "type": "structure", + "required": [ + "FleetName", + "StackName" + ], + "members": { + "FleetName": {}, + "StackName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "BatchAssociateUserStack": { + "input": { + "type": "structure", + "required": [ + "UserStackAssociations" + ], + "members": { + "UserStackAssociations": { + "shape": "S5" + } + } + }, + "output": { + "type": "structure", + "members": { + "errors": { + "shape": "Sb" + } + } + } + }, + "BatchDisassociateUserStack": { + "input": { + "type": "structure", + "required": [ + "UserStackAssociations" + ], + "members": { + "UserStackAssociations": { + "shape": "S5" + } + } + }, + "output": { + "type": "structure", + "members": { + "errors": { + "shape": "Sb" + } + } + } + }, + "CopyImage": { + "input": { + "type": "structure", + "required": [ + "SourceImageName", + "DestinationImageName", + "DestinationRegion" + ], + "members": { + "SourceImageName": {}, + "DestinationImageName": {}, + "DestinationRegion": {}, + "DestinationImageDescription": {} + } + }, + "output": { + "type": "structure", + "members": { + "DestinationImageName": {} + } + } + }, + "CreateDirectoryConfig": { + "input": { + "type": "structure", + "required": [ + "DirectoryName", + "OrganizationalUnitDistinguishedNames" + ], + "members": { + "DirectoryName": {}, + "OrganizationalUnitDistinguishedNames": { + "shape": "Sn" + }, + "ServiceAccountCredentials": { + "shape": "Sp" + } + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryConfig": { + "shape": "St" + } + } + } + }, + "CreateFleet": { + "input": { + "type": "structure", + "required": [ + "Name", + "InstanceType", + "ComputeCapacity" + ], + "members": { + "Name": {}, + "ImageName": {}, + "ImageArn": {}, + "InstanceType": {}, + "FleetType": {}, + "ComputeCapacity": { + "shape": "Sy" + }, + "VpcConfig": { + "shape": "S10" + }, + "MaxUserDurationInSeconds": { + "type": "integer" + }, + "DisconnectTimeoutInSeconds": { + "type": "integer" + }, + "Description": {}, + "DisplayName": {}, + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "DomainJoinInfo": { + "shape": "S15" + }, + "Tags": { + "shape": "S16" + }, + "IdleDisconnectTimeoutInSeconds": { + "type": "integer" + }, + "IamRoleArn": {}, + "StreamView": {} + } + }, + "output": { + "type": "structure", + "members": { + "Fleet": { + "shape": "S1b" + } + } + } + }, + "CreateImageBuilder": { + "input": { + "type": "structure", + "required": [ + "Name", + "InstanceType" + ], + "members": { + "Name": {}, + "ImageName": {}, + "ImageArn": {}, + "InstanceType": {}, + "Description": {}, + "DisplayName": {}, + "VpcConfig": { + "shape": "S10" + }, + "IamRoleArn": {}, + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "DomainJoinInfo": { + "shape": "S15" + }, + "AppstreamAgentVersion": {}, + "Tags": { + "shape": "S16" + }, + "AccessEndpoints": { + "shape": "S1j" + } + } + }, + "output": { + "type": "structure", + "members": { + "ImageBuilder": { + "shape": "S1n" + } + } + } + }, + "CreateImageBuilderStreamingURL": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Validity": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": { + "StreamingURL": {}, + "Expires": { + "type": "timestamp" + } + } + } + }, + "CreateStack": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Description": {}, + "DisplayName": {}, + "StorageConnectors": { + "shape": "S1z" + }, + "RedirectURL": {}, + "FeedbackURL": {}, + "UserSettings": { + "shape": "S27" + }, + "ApplicationSettings": { + "shape": "S2b" + }, + "Tags": { + "shape": "S16" + }, + "AccessEndpoints": { + "shape": "S1j" + }, + "EmbedHostDomains": { + "shape": "S2d" + } + } + }, + "output": { + "type": "structure", + "members": { + "Stack": { + "shape": "S2g" + } + } + } + }, + "CreateStreamingURL": { + "input": { + "type": "structure", + "required": [ + "StackName", + "FleetName", + "UserId" + ], + "members": { + "StackName": {}, + "FleetName": {}, + "UserId": {}, + "ApplicationId": {}, + "Validity": { + "type": "long" + }, + "SessionContext": {} + } + }, + "output": { + "type": "structure", + "members": { + "StreamingURL": {}, + "Expires": { + "type": "timestamp" + } + } + } + }, + "CreateUpdatedImage": { + "input": { + "type": "structure", + "required": [ + "existingImageName", + "newImageName" + ], + "members": { + "existingImageName": {}, + "newImageName": {}, + "newImageDescription": {}, + "newImageDisplayName": {}, + "newImageTags": { + "shape": "S16" + }, + "dryRun": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "image": { + "shape": "S2q" + }, + "canUpdateImage": { + "type": "boolean" + } + } + } + }, + "CreateUsageReportSubscription": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "S3BucketName": {}, + "Schedule": {} + } + } + }, + "CreateUser": { + "input": { + "type": "structure", + "required": [ + "UserName", + "AuthenticationType" + ], + "members": { + "UserName": { + "shape": "S7" + }, + "MessageAction": {}, + "FirstName": { + "shape": "S34" + }, + "LastName": { + "shape": "S34" + }, + "AuthenticationType": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteDirectoryConfig": { + "input": { + "type": "structure", + "required": [ + "DirectoryName" + ], + "members": { + "DirectoryName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteFleet": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteImage": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "Image": { + "shape": "S2q" + } + } + } + }, + "DeleteImageBuilder": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImageBuilder": { + "shape": "S1n" + } + } + } + }, + "DeleteImagePermissions": { + "input": { + "type": "structure", + "required": [ + "Name", + "SharedAccountId" + ], + "members": { + "Name": {}, + "SharedAccountId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteStack": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteUsageReportSubscription": { + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteUser": { + "input": { + "type": "structure", + "required": [ + "UserName", + "AuthenticationType" + ], + "members": { + "UserName": { + "shape": "S7" + }, + "AuthenticationType": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeDirectoryConfigs": { + "input": { + "type": "structure", + "members": { + "DirectoryNames": { + "type": "list", + "member": {} + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryConfigs": { + "type": "list", + "member": { + "shape": "St" + } + }, + "NextToken": {} + } + } + }, + "DescribeFleets": { + "input": { + "type": "structure", + "members": { + "Names": { + "shape": "S3s" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Fleets": { + "type": "list", + "member": { + "shape": "S1b" + } + }, + "NextToken": {} + } + } + }, + "DescribeImageBuilders": { + "input": { + "type": "structure", + "members": { + "Names": { + "shape": "S3s" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImageBuilders": { + "type": "list", + "member": { + "shape": "S1n" + } + }, + "NextToken": {} + } + } + }, + "DescribeImagePermissions": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "MaxResults": { + "type": "integer" + }, + "SharedAwsAccountIds": { + "type": "list", + "member": {} + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Name": {}, + "SharedImagePermissionsList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "sharedAccountId", + "imagePermissions" + ], + "members": { + "sharedAccountId": {}, + "imagePermissions": { + "shape": "S2y" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeImages": { + "input": { + "type": "structure", + "members": { + "Names": { + "shape": "S3s" + }, + "Arns": { + "type": "list", + "member": {} + }, + "Type": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Images": { + "type": "list", + "member": { + "shape": "S2q" + } + }, + "NextToken": {} + } + } + }, + "DescribeSessions": { + "input": { + "type": "structure", + "required": [ + "StackName", + "FleetName" + ], + "members": { + "StackName": {}, + "FleetName": {}, + "UserId": {}, + "NextToken": {}, + "Limit": { + "type": "integer" + }, + "AuthenticationType": {} + } + }, + "output": { + "type": "structure", + "members": { + "Sessions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Id", + "UserId", + "StackName", + "FleetName", + "State" + ], + "members": { + "Id": {}, + "UserId": {}, + "StackName": {}, + "FleetName": {}, + "State": {}, + "ConnectionState": {}, + "StartTime": { + "type": "timestamp" + }, + "MaxExpirationTime": { + "type": "timestamp" + }, + "AuthenticationType": {}, + "NetworkAccessConfiguration": { + "shape": "S1s" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeStacks": { + "input": { + "type": "structure", + "members": { + "Names": { + "shape": "S3s" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Stacks": { + "type": "list", + "member": { + "shape": "S2g" + } + }, + "NextToken": {} + } + } + }, + "DescribeUsageReportSubscriptions": { + "input": { + "type": "structure", + "members": { + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "UsageReportSubscriptions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "S3BucketName": {}, + "Schedule": {}, + "LastGeneratedReportDate": { + "type": "timestamp" + }, + "SubscriptionErrors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeUserStackAssociations": { + "input": { + "type": "structure", + "members": { + "StackName": {}, + "UserName": { + "shape": "S7" + }, + "AuthenticationType": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "UserStackAssociations": { + "shape": "S5" + }, + "NextToken": {} + } + } + }, + "DescribeUsers": { + "input": { + "type": "structure", + "required": [ + "AuthenticationType" + ], + "members": { + "AuthenticationType": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Users": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AuthenticationType" + ], + "members": { + "Arn": {}, + "UserName": { + "shape": "S7" + }, + "Enabled": { + "type": "boolean" + }, + "Status": {}, + "FirstName": { + "shape": "S34" + }, + "LastName": { + "shape": "S34" + }, + "CreatedTime": { + "type": "timestamp" + }, + "AuthenticationType": {} + } + } + }, + "NextToken": {} + } + } + }, + "DisableUser": { + "input": { + "type": "structure", + "required": [ + "UserName", + "AuthenticationType" + ], + "members": { + "UserName": { + "shape": "S7" + }, + "AuthenticationType": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateFleet": { + "input": { + "type": "structure", + "required": [ + "FleetName", + "StackName" + ], + "members": { + "FleetName": {}, + "StackName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "EnableUser": { + "input": { + "type": "structure", + "required": [ + "UserName", + "AuthenticationType" + ], + "members": { + "UserName": { + "shape": "S7" + }, + "AuthenticationType": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ExpireSession": { + "input": { + "type": "structure", + "required": [ + "SessionId" + ], + "members": { + "SessionId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "ListAssociatedFleets": { + "input": { + "type": "structure", + "required": [ + "StackName" + ], + "members": { + "StackName": {}, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Names": { + "shape": "S3s" + }, + "NextToken": {} + } + } + }, + "ListAssociatedStacks": { + "input": { + "type": "structure", + "required": [ + "FleetName" + ], + "members": { + "FleetName": {}, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Names": { + "shape": "S3s" + }, + "NextToken": {} + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S16" + } + } + } + }, + "StartFleet": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "StartImageBuilder": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "AppstreamAgentVersion": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImageBuilder": { + "shape": "S1n" + } + } + } + }, + "StopFleet": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "StopImageBuilder": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "ImageBuilder": { + "shape": "S1n" + } + } + } + }, + "TagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "Tags" + ], + "members": { + "ResourceArn": {}, + "Tags": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "TagKeys" + ], + "members": { + "ResourceArn": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateDirectoryConfig": { + "input": { + "type": "structure", + "required": [ + "DirectoryName" + ], + "members": { + "DirectoryName": {}, + "OrganizationalUnitDistinguishedNames": { + "shape": "Sn" + }, + "ServiceAccountCredentials": { + "shape": "Sp" + } + } + }, + "output": { + "type": "structure", + "members": { + "DirectoryConfig": { + "shape": "St" + } + } + } + }, + "UpdateFleet": { + "input": { + "type": "structure", + "members": { + "ImageName": {}, + "ImageArn": {}, + "Name": {}, + "InstanceType": {}, + "ComputeCapacity": { + "shape": "Sy" + }, + "VpcConfig": { + "shape": "S10" + }, + "MaxUserDurationInSeconds": { + "type": "integer" + }, + "DisconnectTimeoutInSeconds": { + "type": "integer" + }, + "DeleteVpcConfig": { + "deprecated": true, + "type": "boolean" + }, + "Description": {}, + "DisplayName": {}, + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "DomainJoinInfo": { + "shape": "S15" + }, + "IdleDisconnectTimeoutInSeconds": { + "type": "integer" + }, + "AttributesToDelete": { + "type": "list", + "member": {} + }, + "IamRoleArn": {}, + "StreamView": {} + } + }, + "output": { + "type": "structure", + "members": { + "Fleet": { + "shape": "S1b" + } + } + } + }, + "UpdateImagePermissions": { + "input": { + "type": "structure", + "required": [ + "Name", + "SharedAccountId", + "ImagePermissions" + ], + "members": { + "Name": {}, + "SharedAccountId": {}, + "ImagePermissions": { + "shape": "S2y" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateStack": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "DisplayName": {}, + "Description": {}, + "Name": {}, + "StorageConnectors": { + "shape": "S1z" + }, + "DeleteStorageConnectors": { + "deprecated": true, + "type": "boolean" + }, + "RedirectURL": {}, + "FeedbackURL": {}, + "AttributesToDelete": { + "type": "list", + "member": {} + }, + "UserSettings": { + "shape": "S27" + }, + "ApplicationSettings": { + "shape": "S2b" + }, + "AccessEndpoints": { + "shape": "S1j" + }, + "EmbedHostDomains": { + "shape": "S2d" + } + } + }, + "output": { + "type": "structure", + "members": { + "Stack": { + "shape": "S2g" + } + } + } + } + }, + "shapes": { + "S5": { + "type": "list", + "member": { + "shape": "S6" + } + }, + "S6": { + "type": "structure", + "required": [ + "StackName", + "UserName", + "AuthenticationType" + ], + "members": { + "StackName": {}, + "UserName": { + "shape": "S7" + }, + "AuthenticationType": {}, + "SendEmailNotification": { + "type": "boolean" + } + } + }, + "S7": { + "type": "string", + "sensitive": true + }, + "Sb": { + "type": "list", + "member": { + "type": "structure", + "members": { + "UserStackAssociation": { + "shape": "S6" + }, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "Sn": { + "type": "list", + "member": {} + }, + "Sp": { + "type": "structure", + "required": [ + "AccountName", + "AccountPassword" + ], + "members": { + "AccountName": { + "type": "string", + "sensitive": true + }, + "AccountPassword": { + "type": "string", + "sensitive": true + } + } + }, + "St": { + "type": "structure", + "required": [ + "DirectoryName" + ], + "members": { + "DirectoryName": {}, + "OrganizationalUnitDistinguishedNames": { + "shape": "Sn" + }, + "ServiceAccountCredentials": { + "shape": "Sp" + }, + "CreatedTime": { + "type": "timestamp" + } + } + }, + "Sy": { + "type": "structure", + "required": [ + "DesiredInstances" + ], + "members": { + "DesiredInstances": { + "type": "integer" + } + } + }, + "S10": { + "type": "structure", + "members": { + "SubnetIds": { + "type": "list", + "member": {} + }, + "SecurityGroupIds": { + "type": "list", + "member": {} + } + } + }, + "S15": { + "type": "structure", + "members": { + "DirectoryName": {}, + "OrganizationalUnitDistinguishedName": {} + } + }, + "S16": { + "type": "map", + "key": {}, + "value": {} + }, + "S1b": { + "type": "structure", + "required": [ + "Arn", + "Name", + "InstanceType", + "ComputeCapacityStatus", + "State" + ], + "members": { + "Arn": {}, + "Name": {}, + "DisplayName": {}, + "Description": {}, + "ImageName": {}, + "ImageArn": {}, + "InstanceType": {}, + "FleetType": {}, + "ComputeCapacityStatus": { + "type": "structure", + "required": [ + "Desired" + ], + "members": { + "Desired": { + "type": "integer" + }, + "Running": { + "type": "integer" + }, + "InUse": { + "type": "integer" + }, + "Available": { + "type": "integer" + } + } + }, + "MaxUserDurationInSeconds": { + "type": "integer" + }, + "DisconnectTimeoutInSeconds": { + "type": "integer" + }, + "State": {}, + "VpcConfig": { + "shape": "S10" + }, + "CreatedTime": { + "type": "timestamp" + }, + "FleetErrors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "DomainJoinInfo": { + "shape": "S15" + }, + "IdleDisconnectTimeoutInSeconds": { + "type": "integer" + }, + "IamRoleArn": {}, + "StreamView": {} + } + }, + "S1j": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "EndpointType" + ], + "members": { + "EndpointType": {}, + "VpceId": {} + } + } + }, + "S1n": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Arn": {}, + "ImageArn": {}, + "Description": {}, + "DisplayName": {}, + "VpcConfig": { + "shape": "S10" + }, + "InstanceType": {}, + "Platform": {}, + "IamRoleArn": {}, + "State": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "CreatedTime": { + "type": "timestamp" + }, + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "DomainJoinInfo": { + "shape": "S15" + }, + "NetworkAccessConfiguration": { + "shape": "S1s" + }, + "ImageBuilderErrors": { + "shape": "S1t" + }, + "AppstreamAgentVersion": {}, + "AccessEndpoints": { + "shape": "S1j" + } + } + }, + "S1s": { + "type": "structure", + "members": { + "EniPrivateIpAddress": {}, + "EniId": {} + } + }, + "S1t": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ErrorCode": {}, + "ErrorMessage": {}, + "ErrorTimestamp": { + "type": "timestamp" + } + } + } + }, + "S1z": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ConnectorType" + ], + "members": { + "ConnectorType": {}, + "ResourceIdentifier": {}, + "Domains": { + "type": "list", + "member": {} + } + } + } + }, + "S27": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Action", + "Permission" + ], + "members": { + "Action": {}, + "Permission": {} + } + } + }, + "S2b": { + "type": "structure", + "required": [ + "Enabled" + ], + "members": { + "Enabled": { + "type": "boolean" + }, + "SettingsGroup": {} + } + }, + "S2d": { + "type": "list", + "member": {} + }, + "S2g": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Arn": {}, + "Name": {}, + "Description": {}, + "DisplayName": {}, + "CreatedTime": { + "type": "timestamp" + }, + "StorageConnectors": { + "shape": "S1z" + }, + "RedirectURL": {}, + "FeedbackURL": {}, + "StackErrors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "UserSettings": { + "shape": "S27" + }, + "ApplicationSettings": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + }, + "SettingsGroup": {}, + "S3BucketName": {} + } + }, + "AccessEndpoints": { + "shape": "S1j" + }, + "EmbedHostDomains": { + "shape": "S2d" + } + } + }, + "S2q": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Arn": {}, + "BaseImageArn": {}, + "DisplayName": {}, + "State": {}, + "Visibility": {}, + "ImageBuilderSupported": { + "type": "boolean" + }, + "ImageBuilderName": {}, + "Platform": {}, + "Description": {}, + "StateChangeReason": { + "type": "structure", + "members": { + "Code": {}, + "Message": {} + } + }, + "Applications": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "DisplayName": {}, + "IconURL": {}, + "LaunchPath": {}, + "LaunchParameters": {}, + "Enabled": { + "type": "boolean" + }, + "Metadata": { + "type": "map", + "key": {}, + "value": {} + } + } + } + }, + "CreatedTime": { + "type": "timestamp" + }, + "PublicBaseImageReleasedDate": { + "type": "timestamp" + }, + "AppstreamAgentVersion": {}, + "ImagePermissions": { + "shape": "S2y" + }, + "ImageErrors": { + "shape": "S1t" + } + } + }, + "S2y": { + "type": "structure", + "members": { + "allowFleet": { + "type": "boolean" + }, + "allowImageBuilder": { + "type": "boolean" + } + } + }, + "S34": { + "type": "string", + "sensitive": true + }, + "S3s": { + "type": "list", + "member": {} + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..b39f18a8078ad51c7609207149d859c6bc2d133a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.paginators.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "DescribeImagePermissions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "DescribeImages": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.waiters2.json b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.waiters2.json new file mode 100644 index 0000000000000000000000000000000000000000..f53f609cb7c3d9090887b58e93fe73e9724f606b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appstream-2016-12-01.waiters2.json @@ -0,0 +1,55 @@ +{ + "version": 2, + "waiters": { + "FleetStarted": { + "delay": 30, + "maxAttempts": 40, + "operation": "DescribeFleets", + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Fleets[].State", + "expected": "ACTIVE" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Fleets[].State", + "expected": "PENDING_DEACTIVATE" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Fleets[].State", + "expected": "INACTIVE" + } + ] + }, + "FleetStopped": { + "delay": 30, + "maxAttempts": 40, + "operation": "DescribeFleets", + "acceptors": [ + { + "state": "success", + "matcher": "pathAll", + "argument": "Fleets[].State", + "expected": "INACTIVE" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Fleets[].State", + "expected": "PENDING_ACTIVATE" + }, + { + "state": "failure", + "matcher": "pathAny", + "argument": "Fleets[].State", + "expected": "ACTIVE" + } + ] + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.min.json new file mode 100644 index 0000000000000000000000000000000000000000..096527f760985929569340e6a3cb57b1dcf026f4 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.min.json @@ -0,0 +1,1739 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-07-25", + "endpointPrefix": "appsync", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceAbbreviation": "AWSAppSync", + "serviceFullName": "AWS AppSync", + "serviceId": "AppSync", + "signatureVersion": "v4", + "signingName": "appsync", + "uid": "appsync-2017-07-25" + }, + "operations": { + "CreateApiCache": { + "http": { + "requestUri": "/v1/apis/{apiId}/ApiCaches" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "ttl", + "apiCachingBehavior", + "type" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "ttl": { + "type": "long" + }, + "transitEncryptionEnabled": { + "type": "boolean" + }, + "atRestEncryptionEnabled": { + "type": "boolean" + }, + "apiCachingBehavior": {}, + "type": {} + } + }, + "output": { + "type": "structure", + "members": { + "apiCache": { + "shape": "S8" + } + } + } + }, + "CreateApiKey": { + "http": { + "requestUri": "/v1/apis/{apiId}/apikeys" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "description": {}, + "expires": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": { + "apiKey": { + "shape": "Sc" + } + } + } + }, + "CreateDataSource": { + "http": { + "requestUri": "/v1/apis/{apiId}/datasources" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "name", + "type" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "name": {}, + "description": {}, + "type": {}, + "serviceRoleArn": {}, + "dynamodbConfig": { + "shape": "Sg" + }, + "lambdaConfig": { + "shape": "Si" + }, + "elasticsearchConfig": { + "shape": "Sj" + }, + "httpConfig": { + "shape": "Sk" + }, + "relationalDatabaseConfig": { + "shape": "So" + } + } + }, + "output": { + "type": "structure", + "members": { + "dataSource": { + "shape": "Ss" + } + } + } + }, + "CreateFunction": { + "http": { + "requestUri": "/v1/apis/{apiId}/functions" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "name", + "dataSourceName", + "functionVersion" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "name": {}, + "description": {}, + "dataSourceName": {}, + "requestMappingTemplate": {}, + "responseMappingTemplate": {}, + "functionVersion": {}, + "syncConfig": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "functionConfiguration": { + "shape": "S10" + } + } + } + }, + "CreateGraphqlApi": { + "http": { + "requestUri": "/v1/apis" + }, + "input": { + "type": "structure", + "required": [ + "name", + "authenticationType" + ], + "members": { + "name": {}, + "logConfig": { + "shape": "S12" + }, + "authenticationType": {}, + "userPoolConfig": { + "shape": "S15" + }, + "openIDConnectConfig": { + "shape": "S17" + }, + "tags": { + "shape": "S18" + }, + "additionalAuthenticationProviders": { + "shape": "S1b" + }, + "xrayEnabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "graphqlApi": { + "shape": "S1f" + } + } + } + }, + "CreateResolver": { + "http": { + "requestUri": "/v1/apis/{apiId}/types/{typeName}/resolvers" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName", + "fieldName" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + }, + "fieldName": {}, + "dataSourceName": {}, + "requestMappingTemplate": {}, + "responseMappingTemplate": {}, + "kind": {}, + "pipelineConfig": { + "shape": "S1j" + }, + "syncConfig": { + "shape": "Sv" + }, + "cachingConfig": { + "shape": "S1l" + } + } + }, + "output": { + "type": "structure", + "members": { + "resolver": { + "shape": "S1o" + } + } + } + }, + "CreateType": { + "http": { + "requestUri": "/v1/apis/{apiId}/types" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "definition", + "format" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "definition": {}, + "format": {} + } + }, + "output": { + "type": "structure", + "members": { + "type": { + "shape": "S1s" + } + } + } + }, + "DeleteApiCache": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}/ApiCaches" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteApiKey": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}/apikeys/{id}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "id" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "id": { + "location": "uri", + "locationName": "id" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteDataSource": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}/datasources/{name}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "name" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "name": { + "location": "uri", + "locationName": "name" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteFunction": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}/functions/{functionId}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "functionId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "functionId": { + "location": "uri", + "locationName": "functionId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteGraphqlApi": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteResolver": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName", + "fieldName" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + }, + "fieldName": { + "location": "uri", + "locationName": "fieldName" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteType": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}/types/{typeName}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "FlushApiCache": { + "http": { + "method": "DELETE", + "requestUri": "/v1/apis/{apiId}/FlushCache" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "GetApiCache": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/ApiCaches" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + } + } + }, + "output": { + "type": "structure", + "members": { + "apiCache": { + "shape": "S8" + } + } + } + }, + "GetDataSource": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/datasources/{name}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "name" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "name": { + "location": "uri", + "locationName": "name" + } + } + }, + "output": { + "type": "structure", + "members": { + "dataSource": { + "shape": "Ss" + } + } + } + }, + "GetFunction": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/functions/{functionId}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "functionId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "functionId": { + "location": "uri", + "locationName": "functionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "functionConfiguration": { + "shape": "S10" + } + } + } + }, + "GetGraphqlApi": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + } + } + }, + "output": { + "type": "structure", + "members": { + "graphqlApi": { + "shape": "S1f" + } + } + } + }, + "GetIntrospectionSchema": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/schema" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "format" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "format": { + "location": "querystring", + "locationName": "format" + }, + "includeDirectives": { + "location": "querystring", + "locationName": "includeDirectives", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "schema": { + "type": "blob" + } + }, + "payload": "schema" + } + }, + "GetResolver": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName", + "fieldName" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + }, + "fieldName": { + "location": "uri", + "locationName": "fieldName" + } + } + }, + "output": { + "type": "structure", + "members": { + "resolver": { + "shape": "S1o" + } + } + } + }, + "GetSchemaCreationStatus": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/schemacreation" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + } + } + }, + "output": { + "type": "structure", + "members": { + "status": {}, + "details": {} + } + } + }, + "GetType": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/types/{typeName}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName", + "format" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + }, + "format": { + "location": "querystring", + "locationName": "format" + } + } + }, + "output": { + "type": "structure", + "members": { + "type": { + "shape": "S1s" + } + } + } + }, + "ListApiKeys": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/apikeys" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "apiKeys": { + "type": "list", + "member": { + "shape": "Sc" + } + }, + "nextToken": {} + } + } + }, + "ListDataSources": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/datasources" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "dataSources": { + "type": "list", + "member": { + "shape": "Ss" + } + }, + "nextToken": {} + } + } + }, + "ListFunctions": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/functions" + }, + "input": { + "type": "structure", + "required": [ + "apiId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "functions": { + "type": "list", + "member": { + "shape": "S10" + } + }, + "nextToken": {} + } + } + }, + "ListGraphqlApis": { + "http": { + "method": "GET", + "requestUri": "/v1/apis" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "graphqlApis": { + "type": "list", + "member": { + "shape": "S1f" + } + }, + "nextToken": {} + } + } + }, + "ListResolvers": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/types/{typeName}/resolvers" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "resolvers": { + "shape": "S39" + }, + "nextToken": {} + } + } + }, + "ListResolversByFunction": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/functions/{functionId}/resolvers" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "functionId" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "functionId": { + "location": "uri", + "locationName": "functionId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "resolvers": { + "shape": "S39" + }, + "nextToken": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/v1/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "S18" + } + } + } + }, + "ListTypes": { + "http": { + "method": "GET", + "requestUri": "/v1/apis/{apiId}/types" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "format" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "format": { + "location": "querystring", + "locationName": "format" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "types": { + "type": "list", + "member": { + "shape": "S1s" + } + }, + "nextToken": {} + } + } + }, + "StartSchemaCreation": { + "http": { + "requestUri": "/v1/apis/{apiId}/schemacreation" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "definition" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "definition": { + "type": "blob" + } + } + }, + "output": { + "type": "structure", + "members": { + "status": {} + } + } + }, + "TagResource": { + "http": { + "requestUri": "/v1/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "S18" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/v1/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateApiCache": { + "http": { + "requestUri": "/v1/apis/{apiId}/ApiCaches/update" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "ttl", + "apiCachingBehavior", + "type" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "ttl": { + "type": "long" + }, + "apiCachingBehavior": {}, + "type": {} + } + }, + "output": { + "type": "structure", + "members": { + "apiCache": { + "shape": "S8" + } + } + } + }, + "UpdateApiKey": { + "http": { + "requestUri": "/v1/apis/{apiId}/apikeys/{id}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "id" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "id": { + "location": "uri", + "locationName": "id" + }, + "description": {}, + "expires": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": { + "apiKey": { + "shape": "Sc" + } + } + } + }, + "UpdateDataSource": { + "http": { + "requestUri": "/v1/apis/{apiId}/datasources/{name}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "name", + "type" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "name": { + "location": "uri", + "locationName": "name" + }, + "description": {}, + "type": {}, + "serviceRoleArn": {}, + "dynamodbConfig": { + "shape": "Sg" + }, + "lambdaConfig": { + "shape": "Si" + }, + "elasticsearchConfig": { + "shape": "Sj" + }, + "httpConfig": { + "shape": "Sk" + }, + "relationalDatabaseConfig": { + "shape": "So" + } + } + }, + "output": { + "type": "structure", + "members": { + "dataSource": { + "shape": "Ss" + } + } + } + }, + "UpdateFunction": { + "http": { + "requestUri": "/v1/apis/{apiId}/functions/{functionId}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "name", + "functionId", + "dataSourceName", + "functionVersion" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "name": {}, + "description": {}, + "functionId": { + "location": "uri", + "locationName": "functionId" + }, + "dataSourceName": {}, + "requestMappingTemplate": {}, + "responseMappingTemplate": {}, + "functionVersion": {}, + "syncConfig": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "functionConfiguration": { + "shape": "S10" + } + } + } + }, + "UpdateGraphqlApi": { + "http": { + "requestUri": "/v1/apis/{apiId}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "name" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "name": {}, + "logConfig": { + "shape": "S12" + }, + "authenticationType": {}, + "userPoolConfig": { + "shape": "S15" + }, + "openIDConnectConfig": { + "shape": "S17" + }, + "additionalAuthenticationProviders": { + "shape": "S1b" + }, + "xrayEnabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "graphqlApi": { + "shape": "S1f" + } + } + } + }, + "UpdateResolver": { + "http": { + "requestUri": "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName", + "fieldName" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + }, + "fieldName": { + "location": "uri", + "locationName": "fieldName" + }, + "dataSourceName": {}, + "requestMappingTemplate": {}, + "responseMappingTemplate": {}, + "kind": {}, + "pipelineConfig": { + "shape": "S1j" + }, + "syncConfig": { + "shape": "Sv" + }, + "cachingConfig": { + "shape": "S1l" + } + } + }, + "output": { + "type": "structure", + "members": { + "resolver": { + "shape": "S1o" + } + } + } + }, + "UpdateType": { + "http": { + "requestUri": "/v1/apis/{apiId}/types/{typeName}" + }, + "input": { + "type": "structure", + "required": [ + "apiId", + "typeName", + "format" + ], + "members": { + "apiId": { + "location": "uri", + "locationName": "apiId" + }, + "typeName": { + "location": "uri", + "locationName": "typeName" + }, + "definition": {}, + "format": {} + } + }, + "output": { + "type": "structure", + "members": { + "type": { + "shape": "S1s" + } + } + } + } + }, + "shapes": { + "S8": { + "type": "structure", + "members": { + "ttl": { + "type": "long" + }, + "apiCachingBehavior": {}, + "transitEncryptionEnabled": { + "type": "boolean" + }, + "atRestEncryptionEnabled": { + "type": "boolean" + }, + "type": {}, + "status": {} + } + }, + "Sc": { + "type": "structure", + "members": { + "id": {}, + "description": {}, + "expires": { + "type": "long" + }, + "deletes": { + "type": "long" + } + } + }, + "Sg": { + "type": "structure", + "required": [ + "tableName", + "awsRegion" + ], + "members": { + "tableName": {}, + "awsRegion": {}, + "useCallerCredentials": { + "type": "boolean" + }, + "deltaSyncConfig": { + "type": "structure", + "members": { + "baseTableTTL": { + "type": "long" + }, + "deltaSyncTableName": {}, + "deltaSyncTableTTL": { + "type": "long" + } + } + }, + "versioned": { + "type": "boolean" + } + } + }, + "Si": { + "type": "structure", + "required": [ + "lambdaFunctionArn" + ], + "members": { + "lambdaFunctionArn": {} + } + }, + "Sj": { + "type": "structure", + "required": [ + "endpoint", + "awsRegion" + ], + "members": { + "endpoint": {}, + "awsRegion": {} + } + }, + "Sk": { + "type": "structure", + "members": { + "endpoint": {}, + "authorizationConfig": { + "type": "structure", + "required": [ + "authorizationType" + ], + "members": { + "authorizationType": {}, + "awsIamConfig": { + "type": "structure", + "members": { + "signingRegion": {}, + "signingServiceName": {} + } + } + } + } + } + }, + "So": { + "type": "structure", + "members": { + "relationalDatabaseSourceType": {}, + "rdsHttpEndpointConfig": { + "type": "structure", + "members": { + "awsRegion": {}, + "dbClusterIdentifier": {}, + "databaseName": {}, + "schema": {}, + "awsSecretStoreArn": {} + } + } + } + }, + "Ss": { + "type": "structure", + "members": { + "dataSourceArn": {}, + "name": {}, + "description": {}, + "type": {}, + "serviceRoleArn": {}, + "dynamodbConfig": { + "shape": "Sg" + }, + "lambdaConfig": { + "shape": "Si" + }, + "elasticsearchConfig": { + "shape": "Sj" + }, + "httpConfig": { + "shape": "Sk" + }, + "relationalDatabaseConfig": { + "shape": "So" + } + } + }, + "Sv": { + "type": "structure", + "members": { + "conflictHandler": {}, + "conflictDetection": {}, + "lambdaConflictHandlerConfig": { + "type": "structure", + "members": { + "lambdaConflictHandlerArn": {} + } + } + } + }, + "S10": { + "type": "structure", + "members": { + "functionId": {}, + "functionArn": {}, + "name": {}, + "description": {}, + "dataSourceName": {}, + "requestMappingTemplate": {}, + "responseMappingTemplate": {}, + "functionVersion": {}, + "syncConfig": { + "shape": "Sv" + } + } + }, + "S12": { + "type": "structure", + "required": [ + "fieldLogLevel", + "cloudWatchLogsRoleArn" + ], + "members": { + "fieldLogLevel": {}, + "cloudWatchLogsRoleArn": {}, + "excludeVerboseContent": { + "type": "boolean" + } + } + }, + "S15": { + "type": "structure", + "required": [ + "userPoolId", + "awsRegion", + "defaultAction" + ], + "members": { + "userPoolId": {}, + "awsRegion": {}, + "defaultAction": {}, + "appIdClientRegex": {} + } + }, + "S17": { + "type": "structure", + "required": [ + "issuer" + ], + "members": { + "issuer": {}, + "clientId": {}, + "iatTTL": { + "type": "long" + }, + "authTTL": { + "type": "long" + } + } + }, + "S18": { + "type": "map", + "key": {}, + "value": {} + }, + "S1b": { + "type": "list", + "member": { + "type": "structure", + "members": { + "authenticationType": {}, + "openIDConnectConfig": { + "shape": "S17" + }, + "userPoolConfig": { + "type": "structure", + "required": [ + "userPoolId", + "awsRegion" + ], + "members": { + "userPoolId": {}, + "awsRegion": {}, + "appIdClientRegex": {} + } + } + } + } + }, + "S1f": { + "type": "structure", + "members": { + "name": {}, + "apiId": {}, + "authenticationType": {}, + "logConfig": { + "shape": "S12" + }, + "userPoolConfig": { + "shape": "S15" + }, + "openIDConnectConfig": { + "shape": "S17" + }, + "arn": {}, + "uris": { + "type": "map", + "key": {}, + "value": {} + }, + "tags": { + "shape": "S18" + }, + "additionalAuthenticationProviders": { + "shape": "S1b" + }, + "xrayEnabled": { + "type": "boolean" + }, + "wafWebAclArn": {} + } + }, + "S1j": { + "type": "structure", + "members": { + "functions": { + "type": "list", + "member": {} + } + } + }, + "S1l": { + "type": "structure", + "members": { + "ttl": { + "type": "long" + }, + "cachingKeys": { + "type": "list", + "member": {} + } + } + }, + "S1o": { + "type": "structure", + "members": { + "typeName": {}, + "fieldName": {}, + "dataSourceName": {}, + "resolverArn": {}, + "requestMappingTemplate": {}, + "responseMappingTemplate": {}, + "kind": {}, + "pipelineConfig": { + "shape": "S1j" + }, + "syncConfig": { + "shape": "Sv" + }, + "cachingConfig": { + "shape": "S1l" + } + } + }, + "S1s": { + "type": "structure", + "members": { + "name": {}, + "description": {}, + "arn": {}, + "definition": {}, + "format": {} + } + }, + "S39": { + "type": "list", + "member": { + "shape": "S1o" + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..5677bd8e4a2d9309fc734f7ee5ce968405a5144f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/appsync-2017-07-25.paginators.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.min.json new file mode 100644 index 0000000000000000000000000000000000000000..f72de3e908cfc2d4e6f568dce8a27a3ee4d479d4 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.min.json @@ -0,0 +1,1128 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-05-18", + "endpointPrefix": "athena", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "Amazon Athena", + "serviceId": "Athena", + "signatureVersion": "v4", + "targetPrefix": "AmazonAthena", + "uid": "athena-2017-05-18" + }, + "operations": { + "BatchGetNamedQuery": { + "input": { + "type": "structure", + "required": [ + "NamedQueryIds" + ], + "members": { + "NamedQueryIds": { + "shape": "S2" + } + } + }, + "output": { + "type": "structure", + "members": { + "NamedQueries": { + "type": "list", + "member": { + "shape": "S6" + } + }, + "UnprocessedNamedQueryIds": { + "type": "list", + "member": { + "type": "structure", + "members": { + "NamedQueryId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "BatchGetQueryExecution": { + "input": { + "type": "structure", + "required": [ + "QueryExecutionIds" + ], + "members": { + "QueryExecutionIds": { + "shape": "Sh" + } + } + }, + "output": { + "type": "structure", + "members": { + "QueryExecutions": { + "type": "list", + "member": { + "shape": "Sl" + } + }, + "UnprocessedQueryExecutionIds": { + "type": "list", + "member": { + "type": "structure", + "members": { + "QueryExecutionId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "CreateDataCatalog": { + "input": { + "type": "structure", + "required": [ + "Name", + "Type" + ], + "members": { + "Name": {}, + "Type": {}, + "Description": {}, + "Parameters": { + "shape": "S13" + }, + "Tags": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateNamedQuery": { + "input": { + "type": "structure", + "required": [ + "Name", + "Database", + "QueryString" + ], + "members": { + "Name": {}, + "Description": {}, + "Database": {}, + "QueryString": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "WorkGroup": {} + } + }, + "output": { + "type": "structure", + "members": { + "NamedQueryId": {} + } + }, + "idempotent": true + }, + "CreatePreparedStatement": { + "input": { + "type": "structure", + "required": [ + "StatementName", + "WorkGroup", + "QueryStatement" + ], + "members": { + "StatementName": {}, + "WorkGroup": {}, + "QueryStatement": {}, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateWorkGroup": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Configuration": { + "shape": "S1i" + }, + "Description": {}, + "Tags": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteDataCatalog": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteNamedQuery": { + "input": { + "type": "structure", + "required": [ + "NamedQueryId" + ], + "members": { + "NamedQueryId": { + "idempotencyToken": true + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "DeletePreparedStatement": { + "input": { + "type": "structure", + "required": [ + "StatementName", + "WorkGroup" + ], + "members": { + "StatementName": {}, + "WorkGroup": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteWorkGroup": { + "input": { + "type": "structure", + "required": [ + "WorkGroup" + ], + "members": { + "WorkGroup": {}, + "RecursiveDeleteOption": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "GetDataCatalog": { + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "DataCatalog": { + "type": "structure", + "required": [ + "Name", + "Type" + ], + "members": { + "Name": {}, + "Description": {}, + "Type": {}, + "Parameters": { + "shape": "S13" + } + } + } + } + } + }, + "GetDatabase": { + "input": { + "type": "structure", + "required": [ + "CatalogName", + "DatabaseName" + ], + "members": { + "CatalogName": {}, + "DatabaseName": {} + } + }, + "output": { + "type": "structure", + "members": { + "Database": { + "shape": "S20" + } + } + } + }, + "GetNamedQuery": { + "input": { + "type": "structure", + "required": [ + "NamedQueryId" + ], + "members": { + "NamedQueryId": {} + } + }, + "output": { + "type": "structure", + "members": { + "NamedQuery": { + "shape": "S6" + } + } + } + }, + "GetPreparedStatement": { + "input": { + "type": "structure", + "required": [ + "StatementName", + "WorkGroup" + ], + "members": { + "StatementName": {}, + "WorkGroup": {} + } + }, + "output": { + "type": "structure", + "members": { + "PreparedStatement": { + "type": "structure", + "members": { + "StatementName": {}, + "QueryStatement": {}, + "WorkGroupName": {}, + "Description": {}, + "LastModifiedTime": { + "type": "timestamp" + } + } + } + } + } + }, + "GetQueryExecution": { + "input": { + "type": "structure", + "required": [ + "QueryExecutionId" + ], + "members": { + "QueryExecutionId": {} + } + }, + "output": { + "type": "structure", + "members": { + "QueryExecution": { + "shape": "Sl" + } + } + } + }, + "GetQueryResults": { + "input": { + "type": "structure", + "required": [ + "QueryExecutionId" + ], + "members": { + "QueryExecutionId": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "UpdateCount": { + "type": "long" + }, + "ResultSet": { + "type": "structure", + "members": { + "Rows": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Data": { + "type": "list", + "member": { + "type": "structure", + "members": { + "VarCharValue": {} + } + } + } + } + } + }, + "ResultSetMetadata": { + "type": "structure", + "members": { + "ColumnInfo": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Type" + ], + "members": { + "CatalogName": {}, + "SchemaName": {}, + "TableName": {}, + "Name": {}, + "Label": {}, + "Type": {}, + "Precision": { + "type": "integer" + }, + "Scale": { + "type": "integer" + }, + "Nullable": {}, + "CaseSensitive": { + "type": "boolean" + } + } + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "GetTableMetadata": { + "input": { + "type": "structure", + "required": [ + "CatalogName", + "DatabaseName", + "TableName" + ], + "members": { + "CatalogName": {}, + "DatabaseName": {}, + "TableName": {} + } + }, + "output": { + "type": "structure", + "members": { + "TableMetadata": { + "shape": "S2q" + } + } + } + }, + "GetWorkGroup": { + "input": { + "type": "structure", + "required": [ + "WorkGroup" + ], + "members": { + "WorkGroup": {} + } + }, + "output": { + "type": "structure", + "members": { + "WorkGroup": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "State": {}, + "Configuration": { + "shape": "S1i" + }, + "Description": {}, + "CreationTime": { + "type": "timestamp" + } + } + } + } + } + }, + "ListDataCatalogs": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "DataCatalogsSummary": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CatalogName": {}, + "Type": {} + } + } + }, + "NextToken": {} + } + } + }, + "ListDatabases": { + "input": { + "type": "structure", + "required": [ + "CatalogName" + ], + "members": { + "CatalogName": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "DatabaseList": { + "type": "list", + "member": { + "shape": "S20" + } + }, + "NextToken": {} + } + } + }, + "ListEngineVersions": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "EngineVersions": { + "type": "list", + "member": { + "shape": "Sy" + } + }, + "NextToken": {} + } + } + }, + "ListNamedQueries": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "WorkGroup": {} + } + }, + "output": { + "type": "structure", + "members": { + "NamedQueryIds": { + "shape": "S2" + }, + "NextToken": {} + } + } + }, + "ListPreparedStatements": { + "input": { + "type": "structure", + "required": [ + "WorkGroup" + ], + "members": { + "WorkGroup": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "PreparedStatements": { + "type": "list", + "member": { + "type": "structure", + "members": { + "StatementName": {}, + "LastModifiedTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "ListQueryExecutions": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "WorkGroup": {} + } + }, + "output": { + "type": "structure", + "members": { + "QueryExecutionIds": { + "shape": "Sh" + }, + "NextToken": {} + } + } + }, + "ListTableMetadata": { + "input": { + "type": "structure", + "required": [ + "CatalogName", + "DatabaseName" + ], + "members": { + "CatalogName": {}, + "DatabaseName": {}, + "Expression": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "TableMetadataList": { + "type": "list", + "member": { + "shape": "S2q" + } + }, + "NextToken": {} + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN" + ], + "members": { + "ResourceARN": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S16" + }, + "NextToken": {} + } + } + }, + "ListWorkGroups": { + "input": { + "type": "structure", + "members": { + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "WorkGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "State": {}, + "Description": {}, + "CreationTime": { + "type": "timestamp" + }, + "EngineVersion": { + "shape": "Sy" + } + } + } + }, + "NextToken": {} + } + } + }, + "StartQueryExecution": { + "input": { + "type": "structure", + "required": [ + "QueryString" + ], + "members": { + "QueryString": {}, + "ClientRequestToken": { + "idempotencyToken": true + }, + "QueryExecutionContext": { + "shape": "Sr" + }, + "ResultConfiguration": { + "shape": "Sn" + }, + "WorkGroup": {} + } + }, + "output": { + "type": "structure", + "members": { + "QueryExecutionId": {} + } + }, + "idempotent": true + }, + "StopQueryExecution": { + "input": { + "type": "structure", + "required": [ + "QueryExecutionId" + ], + "members": { + "QueryExecutionId": { + "idempotencyToken": true + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "TagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "Tags" + ], + "members": { + "ResourceARN": {}, + "Tags": { + "shape": "S16" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "TagKeys" + ], + "members": { + "ResourceARN": {}, + "TagKeys": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateDataCatalog": { + "input": { + "type": "structure", + "required": [ + "Name", + "Type" + ], + "members": { + "Name": {}, + "Type": {}, + "Description": {}, + "Parameters": { + "shape": "S13" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdatePreparedStatement": { + "input": { + "type": "structure", + "required": [ + "StatementName", + "WorkGroup", + "QueryStatement" + ], + "members": { + "StatementName": {}, + "WorkGroup": {}, + "QueryStatement": {}, + "Description": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateWorkGroup": { + "input": { + "type": "structure", + "required": [ + "WorkGroup" + ], + "members": { + "WorkGroup": {}, + "Description": {}, + "ConfigurationUpdates": { + "type": "structure", + "members": { + "EnforceWorkGroupConfiguration": { + "type": "boolean" + }, + "ResultConfigurationUpdates": { + "type": "structure", + "members": { + "OutputLocation": {}, + "RemoveOutputLocation": { + "type": "boolean" + }, + "EncryptionConfiguration": { + "shape": "Sp" + }, + "RemoveEncryptionConfiguration": { + "type": "boolean" + } + } + }, + "PublishCloudWatchMetricsEnabled": { + "type": "boolean" + }, + "BytesScannedCutoffPerQuery": { + "type": "long" + }, + "RemoveBytesScannedCutoffPerQuery": { + "type": "boolean" + }, + "RequesterPaysEnabled": { + "type": "boolean" + }, + "EngineVersion": { + "shape": "Sy" + } + } + }, + "State": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": {} + }, + "S6": { + "type": "structure", + "required": [ + "Name", + "Database", + "QueryString" + ], + "members": { + "Name": {}, + "Description": {}, + "Database": {}, + "QueryString": {}, + "NamedQueryId": {}, + "WorkGroup": {} + } + }, + "Sh": { + "type": "list", + "member": {} + }, + "Sl": { + "type": "structure", + "members": { + "QueryExecutionId": {}, + "Query": {}, + "StatementType": {}, + "ResultConfiguration": { + "shape": "Sn" + }, + "QueryExecutionContext": { + "shape": "Sr" + }, + "Status": { + "type": "structure", + "members": { + "State": {}, + "StateChangeReason": {}, + "SubmissionDateTime": { + "type": "timestamp" + }, + "CompletionDateTime": { + "type": "timestamp" + } + } + }, + "Statistics": { + "type": "structure", + "members": { + "EngineExecutionTimeInMillis": { + "type": "long" + }, + "DataScannedInBytes": { + "type": "long" + }, + "DataManifestLocation": {}, + "TotalExecutionTimeInMillis": { + "type": "long" + }, + "QueryQueueTimeInMillis": { + "type": "long" + }, + "QueryPlanningTimeInMillis": { + "type": "long" + }, + "ServiceProcessingTimeInMillis": { + "type": "long" + } + } + }, + "WorkGroup": {}, + "EngineVersion": { + "shape": "Sy" + } + } + }, + "Sn": { + "type": "structure", + "members": { + "OutputLocation": {}, + "EncryptionConfiguration": { + "shape": "Sp" + } + } + }, + "Sp": { + "type": "structure", + "required": [ + "EncryptionOption" + ], + "members": { + "EncryptionOption": {}, + "KmsKey": {} + } + }, + "Sr": { + "type": "structure", + "members": { + "Database": {}, + "Catalog": {} + } + }, + "Sy": { + "type": "structure", + "members": { + "SelectedEngineVersion": {}, + "EffectiveEngineVersion": {} + } + }, + "S13": { + "type": "map", + "key": {}, + "value": {} + }, + "S16": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {} + } + } + }, + "S1i": { + "type": "structure", + "members": { + "ResultConfiguration": { + "shape": "Sn" + }, + "EnforceWorkGroupConfiguration": { + "type": "boolean" + }, + "PublishCloudWatchMetricsEnabled": { + "type": "boolean" + }, + "BytesScannedCutoffPerQuery": { + "type": "long" + }, + "RequesterPaysEnabled": { + "type": "boolean" + }, + "EngineVersion": { + "shape": "Sy" + } + } + }, + "S20": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Description": {}, + "Parameters": { + "shape": "S13" + } + } + }, + "S2q": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "CreateTime": { + "type": "timestamp" + }, + "LastAccessTime": { + "type": "timestamp" + }, + "TableType": {}, + "Columns": { + "shape": "S2t" + }, + "PartitionKeys": { + "shape": "S2t" + }, + "Parameters": { + "shape": "S13" + } + } + }, + "S2t": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "Type": {}, + "Comment": {} + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..d813cda77ae16fcab7c9fde58dc45d9830b10dd8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/athena-2017-05-18.paginators.json @@ -0,0 +1,53 @@ +{ + "pagination": { + "GetQueryResults": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "ListDataCatalogs": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "DataCatalogsSummary" + }, + "ListDatabases": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "DatabaseList" + }, + "ListNamedQueries": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "ListPreparedStatements": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "ListQueryExecutions": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "ListTableMetadata": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "TableMetadataList" + }, + "ListTagsForResource": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Tags" + }, + "ListWorkGroups": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.min.json new file mode 100644 index 0000000000000000000000000000000000000000..06eeb6f923bd60d4443008ab0f28b71306ed5d1f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.min.json @@ -0,0 +1,2187 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-07-25", + "endpointPrefix": "auditmanager", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "AWS Audit Manager", + "serviceId": "AuditManager", + "signatureVersion": "v4", + "signingName": "auditmanager", + "uid": "auditmanager-2017-07-25" + }, + "operations": { + "AssociateAssessmentReportEvidenceFolder": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/associateToAssessmentReport" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "evidenceFolderId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "evidenceFolderId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "BatchAssociateAssessmentReportEvidence": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/batchAssociateToAssessmentReport" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "evidenceFolderId", + "evidenceIds" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "evidenceFolderId": {}, + "evidenceIds": { + "shape": "S5" + } + } + }, + "output": { + "type": "structure", + "members": { + "evidenceIds": { + "shape": "S5" + }, + "errors": { + "shape": "S7" + } + } + } + }, + "BatchCreateDelegationByAssessment": { + "http": { + "requestUri": "/assessments/{assessmentId}/delegations" + }, + "input": { + "type": "structure", + "required": [ + "createDelegationRequests", + "assessmentId" + ], + "members": { + "createDelegationRequests": { + "type": "list", + "member": { + "shape": "Sd" + } + }, + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + } + } + }, + "output": { + "type": "structure", + "members": { + "delegations": { + "shape": "Sj" + }, + "errors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "createDelegationRequest": { + "shape": "Sd" + }, + "errorCode": {}, + "errorMessage": {} + } + } + } + } + } + }, + "BatchDeleteDelegationByAssessment": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/delegations" + }, + "input": { + "type": "structure", + "required": [ + "delegationIds", + "assessmentId" + ], + "members": { + "delegationIds": { + "type": "list", + "member": {} + }, + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + } + } + }, + "output": { + "type": "structure", + "members": { + "errors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "delegationId": {}, + "errorCode": {}, + "errorMessage": {} + } + } + } + } + } + }, + "BatchDisassociateAssessmentReportEvidence": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/batchDisassociateFromAssessmentReport" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "evidenceFolderId", + "evidenceIds" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "evidenceFolderId": {}, + "evidenceIds": { + "shape": "S5" + } + } + }, + "output": { + "type": "structure", + "members": { + "evidenceIds": { + "shape": "S5" + }, + "errors": { + "shape": "S7" + } + } + } + }, + "BatchImportEvidenceToAssessmentControl": { + "http": { + "requestUri": "/assessments/{assessmentId}/controlSets/{controlSetId}/controls/{controlId}/evidence" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "controlSetId", + "controlId", + "manualEvidence" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "uri", + "locationName": "controlSetId" + }, + "controlId": { + "location": "uri", + "locationName": "controlId" + }, + "manualEvidence": { + "type": "list", + "member": { + "shape": "S10" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "errors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "manualEvidence": { + "shape": "S10" + }, + "errorCode": {}, + "errorMessage": {} + } + } + } + } + } + }, + "CreateAssessment": { + "http": { + "requestUri": "/assessments" + }, + "input": { + "type": "structure", + "required": [ + "name", + "assessmentReportsDestination", + "scope", + "roles", + "frameworkId" + ], + "members": { + "name": {}, + "description": {}, + "assessmentReportsDestination": { + "shape": "S17" + }, + "scope": { + "shape": "S19" + }, + "roles": { + "shape": "S1i" + }, + "frameworkId": {}, + "tags": { + "shape": "S1k" + } + } + }, + "output": { + "type": "structure", + "members": { + "assessment": { + "shape": "S1o" + } + } + } + }, + "CreateAssessmentFramework": { + "http": { + "requestUri": "/assessmentFrameworks" + }, + "input": { + "type": "structure", + "required": [ + "name", + "controlSets" + ], + "members": { + "name": {}, + "description": {}, + "complianceType": {}, + "controlSets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "name": {}, + "controls": { + "shape": "S2j" + } + } + } + }, + "tags": { + "shape": "S1k" + } + } + }, + "output": { + "type": "structure", + "members": { + "framework": { + "shape": "S2m" + } + } + } + }, + "CreateAssessmentReport": { + "http": { + "requestUri": "/assessments/{assessmentId}/reports" + }, + "input": { + "type": "structure", + "required": [ + "name", + "assessmentId" + ], + "members": { + "name": {}, + "description": {}, + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + } + } + }, + "output": { + "type": "structure", + "members": { + "assessmentReport": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "awsAccountId": {}, + "assessmentId": {}, + "assessmentName": {}, + "author": {}, + "status": {}, + "creationTime": { + "type": "timestamp" + } + } + } + } + } + }, + "CreateControl": { + "http": { + "requestUri": "/controls" + }, + "input": { + "type": "structure", + "required": [ + "name", + "controlMappingSources" + ], + "members": { + "name": {}, + "description": {}, + "testingInformation": {}, + "actionPlanTitle": {}, + "actionPlanInstructions": {}, + "controlMappingSources": { + "type": "list", + "member": { + "type": "structure", + "members": { + "sourceName": {}, + "sourceDescription": {}, + "sourceSetUpOption": {}, + "sourceType": {}, + "sourceKeyword": { + "shape": "S33" + }, + "sourceFrequency": {}, + "troubleshootingText": {} + } + } + }, + "tags": { + "shape": "S1k" + } + } + }, + "output": { + "type": "structure", + "members": { + "control": { + "shape": "S2s" + } + } + } + }, + "DeleteAssessment": { + "http": { + "method": "DELETE", + "requestUri": "/assessments/{assessmentId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteAssessmentFramework": { + "http": { + "method": "DELETE", + "requestUri": "/assessmentFrameworks/{frameworkId}" + }, + "input": { + "type": "structure", + "required": [ + "frameworkId" + ], + "members": { + "frameworkId": { + "location": "uri", + "locationName": "frameworkId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteAssessmentReport": { + "http": { + "method": "DELETE", + "requestUri": "/assessments/{assessmentId}/reports/{assessmentReportId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "assessmentReportId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "assessmentReportId": { + "location": "uri", + "locationName": "assessmentReportId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteControl": { + "http": { + "method": "DELETE", + "requestUri": "/controls/{controlId}" + }, + "input": { + "type": "structure", + "required": [ + "controlId" + ], + "members": { + "controlId": { + "location": "uri", + "locationName": "controlId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeregisterAccount": { + "http": { + "requestUri": "/account/deregisterAccount" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "status": {} + } + } + }, + "DeregisterOrganizationAdminAccount": { + "http": { + "requestUri": "/account/deregisterOrganizationAdminAccount" + }, + "input": { + "type": "structure", + "members": { + "adminAccountId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociateAssessmentReportEvidenceFolder": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/disassociateFromAssessmentReport" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "evidenceFolderId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "evidenceFolderId": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "GetAccountStatus": { + "http": { + "method": "GET", + "requestUri": "/account/status" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "status": {} + } + } + }, + "GetAssessment": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + } + } + }, + "output": { + "type": "structure", + "members": { + "assessment": { + "shape": "S1o" + }, + "userRole": { + "shape": "S1j" + } + } + } + }, + "GetAssessmentFramework": { + "http": { + "method": "GET", + "requestUri": "/assessmentFrameworks/{frameworkId}" + }, + "input": { + "type": "structure", + "required": [ + "frameworkId" + ], + "members": { + "frameworkId": { + "location": "uri", + "locationName": "frameworkId" + } + } + }, + "output": { + "type": "structure", + "members": { + "framework": { + "shape": "S2m" + } + } + } + }, + "GetAssessmentReportUrl": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}/reports/{assessmentReportId}/url" + }, + "input": { + "type": "structure", + "required": [ + "assessmentReportId", + "assessmentId" + ], + "members": { + "assessmentReportId": { + "location": "uri", + "locationName": "assessmentReportId" + }, + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + } + } + }, + "output": { + "type": "structure", + "members": { + "preSignedUrl": { + "type": "structure", + "members": { + "hyperlinkName": {}, + "link": {} + } + } + } + } + }, + "GetChangeLogs": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}/changelogs" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "querystring", + "locationName": "controlSetId" + }, + "controlId": { + "location": "querystring", + "locationName": "controlId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "changeLogs": { + "type": "list", + "member": { + "type": "structure", + "members": { + "objectType": {}, + "objectName": {}, + "action": {}, + "createdAt": { + "type": "timestamp" + }, + "createdBy": {} + } + } + }, + "nextToken": {} + } + } + }, + "GetControl": { + "http": { + "method": "GET", + "requestUri": "/controls/{controlId}" + }, + "input": { + "type": "structure", + "required": [ + "controlId" + ], + "members": { + "controlId": { + "location": "uri", + "locationName": "controlId" + } + } + }, + "output": { + "type": "structure", + "members": { + "control": { + "shape": "S2s" + } + } + } + }, + "GetDelegations": { + "http": { + "method": "GET", + "requestUri": "/delegations" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "delegations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "assessmentName": {}, + "assessmentId": {}, + "status": {}, + "roleArn": {}, + "creationTime": { + "type": "timestamp" + }, + "controlSetName": {} + } + } + }, + "nextToken": {} + } + } + }, + "GetEvidence": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}/evidence/{evidenceId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "controlSetId", + "evidenceFolderId", + "evidenceId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "uri", + "locationName": "controlSetId" + }, + "evidenceFolderId": { + "location": "uri", + "locationName": "evidenceFolderId" + }, + "evidenceId": { + "location": "uri", + "locationName": "evidenceId" + } + } + }, + "output": { + "type": "structure", + "members": { + "evidence": { + "shape": "S4p" + } + } + } + }, + "GetEvidenceByEvidenceFolder": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}/evidence" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "controlSetId", + "evidenceFolderId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "uri", + "locationName": "controlSetId" + }, + "evidenceFolderId": { + "location": "uri", + "locationName": "evidenceFolderId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "evidence": { + "type": "list", + "member": { + "shape": "S4p" + } + }, + "nextToken": {} + } + } + }, + "GetEvidenceFolder": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}/controlSets/{controlSetId}/evidenceFolders/{evidenceFolderId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "controlSetId", + "evidenceFolderId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "uri", + "locationName": "controlSetId" + }, + "evidenceFolderId": { + "location": "uri", + "locationName": "evidenceFolderId" + } + } + }, + "output": { + "type": "structure", + "members": { + "evidenceFolder": { + "shape": "S53" + } + } + } + }, + "GetEvidenceFoldersByAssessment": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}/evidenceFolders" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "evidenceFolders": { + "shape": "S57" + }, + "nextToken": {} + } + } + }, + "GetEvidenceFoldersByAssessmentControl": { + "http": { + "method": "GET", + "requestUri": "/assessments/{assessmentId}/evidenceFolders-by-assessment-control/{controlSetId}/{controlId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "controlSetId", + "controlId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "uri", + "locationName": "controlSetId" + }, + "controlId": { + "location": "uri", + "locationName": "controlId" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "evidenceFolders": { + "shape": "S57" + }, + "nextToken": {} + } + } + }, + "GetOrganizationAdminAccount": { + "http": { + "method": "GET", + "requestUri": "/account/organizationAdminAccount" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "adminAccountId": {}, + "organizationId": {} + } + } + }, + "GetServicesInScope": { + "http": { + "method": "GET", + "requestUri": "/services" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "serviceMetadata": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "displayName": {}, + "description": {}, + "category": {} + } + } + } + } + } + }, + "GetSettings": { + "http": { + "method": "GET", + "requestUri": "/settings/{attribute}" + }, + "input": { + "type": "structure", + "required": [ + "attribute" + ], + "members": { + "attribute": { + "location": "uri", + "locationName": "attribute" + } + } + }, + "output": { + "type": "structure", + "members": { + "settings": { + "shape": "S5k" + } + } + } + }, + "ListAssessmentFrameworks": { + "http": { + "method": "GET", + "requestUri": "/assessmentFrameworks" + }, + "input": { + "type": "structure", + "required": [ + "frameworkType" + ], + "members": { + "frameworkType": { + "location": "querystring", + "locationName": "frameworkType" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "frameworkMetadataList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "id": {}, + "type": {}, + "name": {}, + "description": {}, + "logo": {}, + "complianceType": {}, + "controlsCount": { + "type": "integer" + }, + "controlSetsCount": { + "type": "integer" + }, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListAssessmentReports": { + "http": { + "method": "GET", + "requestUri": "/assessmentReports" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "assessmentReports": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "assessmentId": {}, + "assessmentName": {}, + "author": {}, + "status": {}, + "creationTime": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListAssessments": { + "http": { + "method": "GET", + "requestUri": "/assessments" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "assessmentMetadata": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "id": {}, + "complianceType": {}, + "status": {}, + "roles": { + "shape": "S1i" + }, + "delegations": { + "shape": "Sj" + }, + "creationTime": { + "type": "timestamp" + }, + "lastUpdated": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListControls": { + "http": { + "method": "GET", + "requestUri": "/controls" + }, + "input": { + "type": "structure", + "required": [ + "controlType" + ], + "members": { + "controlType": { + "location": "querystring", + "locationName": "controlType" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "controlMetadataList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "id": {}, + "name": {}, + "controlSources": {}, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + } + } + } + }, + "nextToken": {} + } + } + }, + "ListKeywordsForDataSource": { + "http": { + "method": "GET", + "requestUri": "/dataSourceKeywords" + }, + "input": { + "type": "structure", + "required": [ + "source" + ], + "members": { + "source": { + "location": "querystring", + "locationName": "source" + }, + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "keywords": { + "type": "list", + "member": {} + }, + "nextToken": {} + } + } + }, + "ListNotifications": { + "http": { + "method": "GET", + "requestUri": "/notifications" + }, + "input": { + "type": "structure", + "members": { + "nextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "maxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "notifications": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "assessmentId": {}, + "assessmentName": {}, + "controlSetId": {}, + "controlSetName": {}, + "description": {}, + "eventTime": { + "type": "timestamp" + }, + "source": {} + } + } + }, + "nextToken": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "S1k" + } + } + } + }, + "RegisterAccount": { + "http": { + "requestUri": "/account/registerAccount" + }, + "input": { + "type": "structure", + "members": { + "kmsKey": {}, + "delegatedAdminAccount": {} + } + }, + "output": { + "type": "structure", + "members": { + "status": {} + } + } + }, + "RegisterOrganizationAdminAccount": { + "http": { + "requestUri": "/account/registerOrganizationAdminAccount" + }, + "input": { + "type": "structure", + "required": [ + "adminAccountId" + ], + "members": { + "adminAccountId": {} + } + }, + "output": { + "type": "structure", + "members": { + "adminAccountId": {}, + "organizationId": {} + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "S1k" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateAssessment": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "scope" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "assessmentName": {}, + "assessmentDescription": {}, + "scope": { + "shape": "S19" + }, + "assessmentReportsDestination": { + "shape": "S17" + }, + "roles": { + "shape": "S1i" + } + } + }, + "output": { + "type": "structure", + "members": { + "assessment": { + "shape": "S1o" + } + } + } + }, + "UpdateAssessmentControl": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/controlSets/{controlSetId}/controls/{controlId}" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "controlSetId", + "controlId" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "uri", + "locationName": "controlSetId" + }, + "controlId": { + "location": "uri", + "locationName": "controlId" + }, + "controlStatus": {}, + "commentBody": {} + } + }, + "output": { + "type": "structure", + "members": { + "control": { + "shape": "S22" + } + } + } + }, + "UpdateAssessmentControlSetStatus": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/controlSets/{controlSetId}/status" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "controlSetId", + "status", + "comment" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "controlSetId": { + "location": "uri", + "locationName": "controlSetId" + }, + "status": {}, + "comment": {} + } + }, + "output": { + "type": "structure", + "members": { + "controlSet": { + "shape": "S1y" + } + } + } + }, + "UpdateAssessmentFramework": { + "http": { + "method": "PUT", + "requestUri": "/assessmentFrameworks/{frameworkId}" + }, + "input": { + "type": "structure", + "required": [ + "frameworkId", + "name", + "controlSets" + ], + "members": { + "frameworkId": { + "location": "uri", + "locationName": "frameworkId" + }, + "name": {}, + "description": {}, + "complianceType": {}, + "controlSets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name" + ], + "members": { + "id": {}, + "name": {}, + "controls": { + "shape": "S2j" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "framework": { + "shape": "S2m" + } + } + } + }, + "UpdateAssessmentStatus": { + "http": { + "method": "PUT", + "requestUri": "/assessments/{assessmentId}/status" + }, + "input": { + "type": "structure", + "required": [ + "assessmentId", + "status" + ], + "members": { + "assessmentId": { + "location": "uri", + "locationName": "assessmentId" + }, + "status": {} + } + }, + "output": { + "type": "structure", + "members": { + "assessment": { + "shape": "S1o" + } + } + } + }, + "UpdateControl": { + "http": { + "method": "PUT", + "requestUri": "/controls/{controlId}" + }, + "input": { + "type": "structure", + "required": [ + "controlId", + "name", + "controlMappingSources" + ], + "members": { + "controlId": { + "location": "uri", + "locationName": "controlId" + }, + "name": {}, + "description": {}, + "testingInformation": {}, + "actionPlanTitle": {}, + "actionPlanInstructions": {}, + "controlMappingSources": { + "shape": "S2x" + } + } + }, + "output": { + "type": "structure", + "members": { + "control": { + "shape": "S2s" + } + } + } + }, + "UpdateSettings": { + "http": { + "method": "PUT", + "requestUri": "/settings" + }, + "input": { + "type": "structure", + "members": { + "snsTopic": {}, + "defaultAssessmentReportsDestination": { + "shape": "S17" + }, + "defaultProcessOwners": { + "shape": "S1i" + }, + "kmsKey": {} + } + }, + "output": { + "type": "structure", + "members": { + "settings": { + "shape": "S5k" + } + } + } + }, + "ValidateAssessmentReportIntegrity": { + "http": { + "requestUri": "/assessmentReports/integrity" + }, + "input": { + "type": "structure", + "required": [ + "s3RelativePath" + ], + "members": { + "s3RelativePath": {} + } + }, + "output": { + "type": "structure", + "members": { + "signatureValid": { + "type": "boolean" + }, + "signatureAlgorithm": {}, + "signatureDateTime": {}, + "signatureKeyId": {}, + "validationErrors": { + "type": "list", + "member": {} + } + } + } + } + }, + "shapes": { + "S5": { + "type": "list", + "member": {} + }, + "S7": { + "type": "list", + "member": { + "type": "structure", + "members": { + "evidenceId": {}, + "errorCode": {}, + "errorMessage": {} + } + } + }, + "Sd": { + "type": "structure", + "members": { + "comment": {}, + "controlSetId": {}, + "roleArn": {}, + "roleType": {} + } + }, + "Sj": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "assessmentName": {}, + "assessmentId": {}, + "status": {}, + "roleArn": {}, + "roleType": {}, + "creationTime": { + "type": "timestamp" + }, + "lastUpdated": { + "type": "timestamp" + }, + "controlSetId": {}, + "comment": {}, + "createdBy": {} + } + } + }, + "S10": { + "type": "structure", + "members": { + "s3ResourcePath": {} + } + }, + "S17": { + "type": "structure", + "members": { + "destinationType": {}, + "destination": {} + } + }, + "S19": { + "type": "structure", + "members": { + "awsAccounts": { + "type": "list", + "member": { + "shape": "S1b" + } + }, + "awsServices": { + "type": "list", + "member": { + "type": "structure", + "members": { + "serviceName": {} + } + } + } + } + }, + "S1b": { + "type": "structure", + "members": { + "id": {}, + "emailAddress": {}, + "name": {} + } + }, + "S1i": { + "type": "list", + "member": { + "shape": "S1j" + } + }, + "S1j": { + "type": "structure", + "members": { + "roleType": {}, + "roleArn": {} + } + }, + "S1k": { + "type": "map", + "key": {}, + "value": {} + }, + "S1o": { + "type": "structure", + "members": { + "arn": {}, + "awsAccount": { + "shape": "S1b" + }, + "metadata": { + "type": "structure", + "members": { + "name": {}, + "id": {}, + "description": {}, + "complianceType": {}, + "status": {}, + "assessmentReportsDestination": { + "shape": "S17" + }, + "scope": { + "shape": "S19" + }, + "roles": { + "shape": "S1i" + }, + "delegations": { + "shape": "Sj" + }, + "creationTime": { + "type": "timestamp" + }, + "lastUpdated": { + "type": "timestamp" + } + } + }, + "framework": { + "type": "structure", + "members": { + "id": {}, + "arn": {}, + "metadata": { + "type": "structure", + "members": { + "name": {}, + "description": {}, + "logo": {}, + "complianceType": {} + } + }, + "controlSets": { + "type": "list", + "member": { + "shape": "S1y" + } + } + } + }, + "tags": { + "shape": "S1k" + } + } + }, + "S1y": { + "type": "structure", + "members": { + "id": {}, + "description": {}, + "status": {}, + "roles": { + "shape": "S1i" + }, + "controls": { + "type": "list", + "member": { + "shape": "S22" + } + }, + "delegations": { + "shape": "Sj" + }, + "systemEvidenceCount": { + "type": "integer" + }, + "manualEvidenceCount": { + "type": "integer" + } + } + }, + "S22": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "description": {}, + "status": {}, + "response": {}, + "comments": { + "type": "list", + "member": { + "type": "structure", + "members": { + "authorName": {}, + "commentBody": {}, + "postedDate": { + "type": "timestamp" + } + } + } + }, + "evidenceSources": { + "type": "list", + "member": {} + }, + "evidenceCount": { + "type": "integer" + }, + "assessmentReportEvidenceCount": { + "type": "integer" + } + } + }, + "S2j": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {} + } + } + }, + "S2m": { + "type": "structure", + "members": { + "arn": {}, + "id": {}, + "name": {}, + "type": {}, + "complianceType": {}, + "description": {}, + "logo": {}, + "controlSources": {}, + "controlSets": { + "type": "list", + "member": { + "type": "structure", + "members": { + "id": {}, + "name": {}, + "controls": { + "type": "list", + "member": { + "shape": "S2s" + } + } + } + } + }, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "createdBy": {}, + "lastUpdatedBy": {}, + "tags": { + "shape": "S1k" + } + } + }, + "S2s": { + "type": "structure", + "members": { + "arn": {}, + "id": {}, + "type": {}, + "name": {}, + "description": {}, + "testingInformation": {}, + "actionPlanTitle": {}, + "actionPlanInstructions": {}, + "controlSources": {}, + "controlMappingSources": { + "shape": "S2x" + }, + "createdAt": { + "type": "timestamp" + }, + "lastUpdatedAt": { + "type": "timestamp" + }, + "createdBy": {}, + "lastUpdatedBy": {}, + "tags": { + "shape": "S1k" + } + } + }, + "S2x": { + "type": "list", + "member": { + "type": "structure", + "members": { + "sourceId": {}, + "sourceName": {}, + "sourceDescription": {}, + "sourceSetUpOption": {}, + "sourceType": {}, + "sourceKeyword": { + "shape": "S33" + }, + "sourceFrequency": {}, + "troubleshootingText": {} + } + } + }, + "S33": { + "type": "structure", + "members": { + "keywordInputType": {}, + "keywordValue": {} + } + }, + "S4p": { + "type": "structure", + "members": { + "dataSource": {}, + "evidenceAwsAccountId": {}, + "time": { + "type": "timestamp" + }, + "eventSource": {}, + "eventName": {}, + "evidenceByType": {}, + "resourcesIncluded": { + "type": "list", + "member": { + "type": "structure", + "members": { + "arn": {}, + "value": {} + } + } + }, + "attributes": { + "type": "map", + "key": {}, + "value": {} + }, + "iamId": {}, + "complianceCheck": {}, + "awsOrganization": {}, + "awsAccountId": {}, + "evidenceFolderId": {}, + "id": {}, + "assessmentReportSelection": {} + } + }, + "S53": { + "type": "structure", + "members": { + "name": {}, + "date": { + "type": "timestamp" + }, + "assessmentId": {}, + "controlSetId": {}, + "controlId": {}, + "id": {}, + "dataSource": {}, + "author": {}, + "totalEvidence": { + "type": "integer" + }, + "assessmentReportSelectionCount": { + "type": "integer" + }, + "controlName": {}, + "evidenceResourcesIncludedCount": { + "type": "integer" + }, + "evidenceByTypeConfigurationDataCount": { + "type": "integer" + }, + "evidenceByTypeManualCount": { + "type": "integer" + }, + "evidenceByTypeComplianceCheckCount": { + "type": "integer" + }, + "evidenceByTypeComplianceCheckIssuesCount": { + "type": "integer" + }, + "evidenceByTypeUserActivityCount": { + "type": "integer" + }, + "evidenceAwsServiceSourceCount": { + "type": "integer" + } + } + }, + "S57": { + "type": "list", + "member": { + "shape": "S53" + } + }, + "S5k": { + "type": "structure", + "members": { + "isAwsOrgEnabled": { + "type": "boolean" + }, + "snsTopic": {}, + "defaultAssessmentReportsDestination": { + "shape": "S17" + }, + "defaultProcessOwners": { + "shape": "S1i" + }, + "kmsKey": {} + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..33fc6b66d9543688e4644ce360f9b664dd778a3c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/auditmanager-2017-07-25.paginators.json @@ -0,0 +1,59 @@ +{ + "pagination": { + "GetChangeLogs": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetDelegations": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetEvidenceByEvidenceFolder": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetEvidenceFoldersByAssessment": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "GetEvidenceFoldersByAssessmentControl": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAssessmentFrameworks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAssessmentReports": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListAssessments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListControls": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListKeywordsForDataSource": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListNotifications": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..199d887f29f25b75047cb3975f3f80f8282d8c99 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.examples.json @@ -0,0 +1,1538 @@ +{ + "version": "1.0", + "examples": { + "AttachInstances": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceIds": [ + "i-93633f9b" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example attaches the specified instance to the specified Auto Scaling group.", + "id": "autoscaling-attach-instances-1", + "title": "To attach an instance to an Auto Scaling group" + } + ], + "AttachLoadBalancerTargetGroups": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "TargetGroupARNs": [ + "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example attaches the specified target group to the specified Auto Scaling group.", + "id": "autoscaling-attach-load-balancer-target-groups-1", + "title": "To attach a target group to an Auto Scaling group" + } + ], + "AttachLoadBalancers": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LoadBalancerNames": [ + "my-load-balancer" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example attaches the specified load balancer to the specified Auto Scaling group.", + "id": "autoscaling-attach-load-balancers-1", + "title": "To attach a load balancer to an Auto Scaling group" + } + ], + "CancelInstanceRefresh": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example cancels an instance refresh operation in progress.", + "id": "to-cancel-an-instance-refresh-1592960979817", + "title": "To cancel an instance refresh" + } + ], + "CompleteLifecycleAction": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LifecycleActionResult": "CONTINUE", + "LifecycleActionToken": "bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635", + "LifecycleHookName": "my-lifecycle-hook" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example notifies Auto Scaling that the specified lifecycle action is complete so that it can finish launching or terminating the instance.", + "id": "autoscaling-complete-lifecycle-action-1", + "title": "To complete the lifecycle action" + } + ], + "CreateAutoScalingGroup": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LaunchTemplate": { + "LaunchTemplateId": "lt-0a20c965061f64abc", + "Version": "$Latest" + }, + "MaxInstanceLifetime": 2592000, + "MaxSize": 3, + "MinSize": 1, + "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates an Auto Scaling group.", + "id": "autoscaling-create-auto-scaling-group-1", + "title": "To create an Auto Scaling group" + }, + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "HealthCheckGracePeriod": 300, + "HealthCheckType": "ELB", + "LaunchTemplate": { + "LaunchTemplateId": "lt-0a20c965061f64abc", + "Version": "$Default" + }, + "MaxSize": 3, + "MinSize": 1, + "TargetGroupARNs": [ + "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" + ], + "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates an Auto Scaling group and attaches the specified target group.", + "id": "autoscaling-create-auto-scaling-group-2", + "title": "To create an Auto Scaling group with an attached target group" + }, + { + "input": { + "AutoScalingGroupName": "my-asg", + "DesiredCapacity": 3, + "MaxSize": 5, + "MinSize": 1, + "MixedInstancesPolicy": { + "InstancesDistribution": { + "OnDemandBaseCapacity": 1, + "OnDemandPercentageAboveBaseCapacity": 50, + "SpotAllocationStrategy": "capacity-optimized" + }, + "LaunchTemplate": { + "LaunchTemplateSpecification": { + "LaunchTemplateName": "my-launch-template-for-x86", + "Version": "$Latest" + }, + "Overrides": [ + { + "InstanceType": "c6g.large", + "LaunchTemplateSpecification": { + "LaunchTemplateName": "my-launch-template-for-arm", + "Version": "$Latest" + } + }, + { + "InstanceType": "c5.large" + }, + { + "InstanceType": "c5a.large" + } + ] + } + }, + "VPCZoneIdentifier": "subnet-057fa0918fEXAMPLE, subnet-610acd08EXAMPLE" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates an Auto Scaling group with a mixed instances policy. It specifies the c5.large, c5a.large, and c6g.large instance types and defines a different launch template for the c6g.large instance type.", + "id": "to-create-an-auto-scaling-group-with-a-mixed-instances-policy-1617815269039", + "title": "To create an Auto Scaling group with a mixed instances policy" + } + ], + "CreateLaunchConfiguration": [ + { + "input": { + "IamInstanceProfile": "my-iam-role", + "ImageId": "ami-12345678", + "InstanceType": "m3.medium", + "LaunchConfigurationName": "my-launch-config", + "SecurityGroups": [ + "sg-eb2af88e" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates a launch configuration.", + "id": "autoscaling-create-launch-configuration-1", + "title": "To create a launch configuration" + } + ], + "CreateOrUpdateTags": [ + { + "input": { + "Tags": [ + { + "Key": "Role", + "PropagateAtLaunch": true, + "ResourceId": "my-auto-scaling-group", + "ResourceType": "auto-scaling-group", + "Value": "WebServer" + }, + { + "Key": "Dept", + "PropagateAtLaunch": true, + "ResourceId": "my-auto-scaling-group", + "ResourceType": "auto-scaling-group", + "Value": "Research" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example adds two tags to the specified Auto Scaling group.", + "id": "autoscaling-create-or-update-tags-1", + "title": "To create or update tags for an Auto Scaling group" + } + ], + "DeleteAutoScalingGroup": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified Auto Scaling group.", + "id": "autoscaling-delete-auto-scaling-group-1", + "title": "To delete an Auto Scaling group" + }, + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "ForceDelete": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified Auto Scaling group and all its instances.", + "id": "autoscaling-delete-auto-scaling-group-2", + "title": "To delete an Auto Scaling group and all its instances" + } + ], + "DeleteLaunchConfiguration": [ + { + "input": { + "LaunchConfigurationName": "my-launch-config" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified launch configuration.", + "id": "autoscaling-delete-launch-configuration-1", + "title": "To delete a launch configuration" + } + ], + "DeleteLifecycleHook": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LifecycleHookName": "my-lifecycle-hook" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified lifecycle hook.", + "id": "autoscaling-delete-lifecycle-hook-1", + "title": "To delete a lifecycle hook" + } + ], + "DeleteNotificationConfiguration": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified notification from the specified Auto Scaling group.", + "id": "autoscaling-delete-notification-configuration-1", + "title": "To delete an Auto Scaling notification" + } + ], + "DeletePolicy": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "PolicyName": "my-step-scale-out-policy" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified Auto Scaling policy.", + "id": "autoscaling-delete-policy-1", + "title": "To delete an Auto Scaling policy" + } + ], + "DeleteScheduledAction": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "ScheduledActionName": "my-scheduled-action" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified scheduled action from the specified Auto Scaling group.", + "id": "autoscaling-delete-scheduled-action-1", + "title": "To delete a scheduled action from an Auto Scaling group" + } + ], + "DeleteTags": [ + { + "input": { + "Tags": [ + { + "Key": "Dept", + "ResourceId": "my-auto-scaling-group", + "ResourceType": "auto-scaling-group", + "Value": "Research" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the specified tag from the specified Auto Scaling group.", + "id": "autoscaling-delete-tags-1", + "title": "To delete a tag from an Auto Scaling group" + } + ], + "DescribeAccountLimits": [ + { + "output": { + "MaxNumberOfAutoScalingGroups": 20, + "MaxNumberOfLaunchConfigurations": 100, + "NumberOfAutoScalingGroups": 3, + "NumberOfLaunchConfigurations": 5 + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the Amazon EC2 Auto Scaling service quotas for your account.", + "id": "autoscaling-describe-account-limits-1", + "title": "To describe your Auto Scaling account limits" + } + ], + "DescribeAdjustmentTypes": [ + { + "output": { + "AdjustmentTypes": [ + { + "AdjustmentType": "ChangeInCapacity" + }, + { + "AdjustmentType": "ExactCapcity" + }, + { + "AdjustmentType": "PercentChangeInCapacity" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the available adjustment types.", + "id": "autoscaling-describe-adjustment-types-1", + "title": "To describe the Amazon EC2 Auto Scaling adjustment types" + } + ], + "DescribeAutoScalingGroups": [ + { + "input": { + "AutoScalingGroupNames": [ + "my-auto-scaling-group" + ] + }, + "output": { + "AutoScalingGroups": [ + { + "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:930d940e-891e-4781-a11a-7b0acd480f03:autoScalingGroupName/my-auto-scaling-group", + "AutoScalingGroupName": "my-auto-scaling-group", + "AvailabilityZones": [ + "us-west-2c" + ], + "CreatedTime": "2013-08-19T20:53:25.584Z", + "DefaultCooldown": 300, + "DesiredCapacity": 1, + "EnabledMetrics": [ + + ], + "HealthCheckGracePeriod": 300, + "HealthCheckType": "EC2", + "Instances": [ + { + "AvailabilityZone": "us-west-2c", + "HealthStatus": "Healthy", + "InstanceId": "i-4ba0837f", + "LaunchConfigurationName": "my-launch-config", + "LifecycleState": "InService", + "ProtectedFromScaleIn": false + } + ], + "LaunchConfigurationName": "my-launch-config", + "LoadBalancerNames": [ + + ], + "MaxSize": 1, + "MinSize": 0, + "NewInstancesProtectedFromScaleIn": false, + "SuspendedProcesses": [ + + ], + "Tags": [ + + ], + "TerminationPolicies": [ + "Default" + ], + "VPCZoneIdentifier": "subnet-12345678" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the specified Auto Scaling group.", + "id": "autoscaling-describe-auto-scaling-groups-1", + "title": "To describe an Auto Scaling group" + } + ], + "DescribeAutoScalingInstances": [ + { + "input": { + "InstanceIds": [ + "i-4ba0837f" + ] + }, + "output": { + "AutoScalingInstances": [ + { + "AutoScalingGroupName": "my-auto-scaling-group", + "AvailabilityZone": "us-west-2c", + "HealthStatus": "HEALTHY", + "InstanceId": "i-4ba0837f", + "LaunchConfigurationName": "my-launch-config", + "LifecycleState": "InService", + "ProtectedFromScaleIn": false + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the specified Auto Scaling instance.", + "id": "autoscaling-describe-auto-scaling-instances-1", + "title": "To describe one or more Auto Scaling instances" + } + ], + "DescribeAutoScalingNotificationTypes": [ + { + "output": { + "AutoScalingNotificationTypes": [ + "autoscaling:EC2_INSTANCE_LAUNCH", + "autoscaling:EC2_INSTANCE_LAUNCH_ERROR", + "autoscaling:EC2_INSTANCE_TERMINATE", + "autoscaling:EC2_INSTANCE_TERMINATE_ERROR", + "autoscaling:TEST_NOTIFICATION" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the available notification types.", + "id": "autoscaling-describe-auto-scaling-notification-types-1", + "title": "To describe the Auto Scaling notification types" + } + ], + "DescribeInstanceRefreshes": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "InstanceRefreshes": [ + { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b", + "InstancesToUpdate": 5, + "PercentageComplete": 0, + "StartTime": "2020-06-02T18:11:27Z", + "Status": "InProgress" + }, + { + "AutoScalingGroupName": "my-auto-scaling-group", + "EndTime": "2020-06-02T16:53:37Z", + "InstanceRefreshId": "dd7728d0-5bc4-4575-96a3-1b2c52bf8bb1", + "InstancesToUpdate": 0, + "PercentageComplete": 100, + "StartTime": "2020-06-02T16:43:19Z", + "Status": "Successful" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the instance refreshes for the specified Auto Scaling group.", + "id": "to-list-instance-refreshes-1592959593746", + "title": "To list instance refreshes" + } + ], + "DescribeLaunchConfigurations": [ + { + "input": { + "LaunchConfigurationNames": [ + "my-launch-config" + ] + }, + "output": { + "LaunchConfigurations": [ + { + "AssociatePublicIpAddress": true, + "BlockDeviceMappings": [ + + ], + "CreatedTime": "2014-05-07T17:39:28.599Z", + "EbsOptimized": false, + "ImageId": "ami-043a5034", + "InstanceMonitoring": { + "Enabled": true + }, + "InstanceType": "t1.micro", + "LaunchConfigurationARN": "arn:aws:autoscaling:us-west-2:123456789012:launchConfiguration:98d3b196-4cf9-4e88-8ca1-8547c24ced8b:launchConfigurationName/my-launch-config", + "LaunchConfigurationName": "my-launch-config", + "SecurityGroups": [ + "sg-67ef0308" + ] + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the specified launch configuration.", + "id": "autoscaling-describe-launch-configurations-1", + "title": "To describe Auto Scaling launch configurations" + } + ], + "DescribeLifecycleHookTypes": [ + { + "output": { + "LifecycleHookTypes": [ + "autoscaling:EC2_INSTANCE_LAUNCHING", + "autoscaling:EC2_INSTANCE_TERMINATING" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the available lifecycle hook types.", + "id": "autoscaling-describe-lifecycle-hook-types-1", + "title": "To describe the available types of lifecycle hooks" + } + ], + "DescribeLifecycleHooks": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "LifecycleHooks": [ + { + "AutoScalingGroupName": "my-auto-scaling-group", + "DefaultResult": "ABANDON", + "GlobalTimeout": 172800, + "HeartbeatTimeout": 3600, + "LifecycleHookName": "my-lifecycle-hook", + "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", + "NotificationTargetARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic", + "RoleARN": "arn:aws:iam::123456789012:role/my-auto-scaling-role" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the lifecycle hooks for the specified Auto Scaling group.", + "id": "autoscaling-describe-lifecycle-hooks-1", + "title": "To describe your lifecycle hooks" + } + ], + "DescribeLoadBalancerTargetGroups": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "LoadBalancerTargetGroups": [ + { + "LoadBalancerTargetGroupARN": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067", + "State": "Added" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the target groups attached to the specified Auto Scaling group.", + "id": "autoscaling-describe-load-balancer-target-groups-1", + "title": "To describe the target groups for an Auto Scaling group" + } + ], + "DescribeLoadBalancers": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "LoadBalancers": [ + { + "LoadBalancerName": "my-load-balancer", + "State": "Added" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the load balancers attached to the specified Auto Scaling group.", + "id": "autoscaling-describe-load-balancers-1", + "title": "To describe the load balancers for an Auto Scaling group" + } + ], + "DescribeMetricCollectionTypes": [ + { + "output": { + "Granularities": [ + { + "Granularity": "1Minute" + } + ], + "Metrics": [ + { + "Metric": "GroupMinSize" + }, + { + "Metric": "GroupMaxSize" + }, + { + "Metric": "GroupDesiredCapacity" + }, + { + "Metric": "GroupInServiceInstances" + }, + { + "Metric": "GroupPendingInstances" + }, + { + "Metric": "GroupTerminatingInstances" + }, + { + "Metric": "GroupStandbyInstances" + }, + { + "Metric": "GroupTotalInstances" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the available metric collection types.", + "id": "autoscaling-describe-metric-collection-types-1", + "title": "To describe the Auto Scaling metric collection types" + } + ], + "DescribeNotificationConfigurations": [ + { + "input": { + "AutoScalingGroupNames": [ + "my-auto-scaling-group" + ] + }, + "output": { + "NotificationConfigurations": [ + { + "AutoScalingGroupName": "my-auto-scaling-group", + "NotificationType": "autoscaling:TEST_NOTIFICATION", + "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic-2" + }, + { + "AutoScalingGroupName": "my-auto-scaling-group", + "NotificationType": "autoscaling:TEST_NOTIFICATION", + "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the notification configurations for the specified Auto Scaling group.", + "id": "autoscaling-describe-notification-configurations-1", + "title": "To describe Auto Scaling notification configurations" + } + ], + "DescribePolicies": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "ScalingPolicies": [ + { + "AdjustmentType": "ChangeInCapacity", + "Alarms": [ + + ], + "AutoScalingGroupName": "my-auto-scaling-group", + "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:2233f3d7-6290-403b-b632-93c553560106:autoScalingGroupName/my-auto-scaling-group:policyName/ScaleIn", + "PolicyName": "ScaleIn", + "ScalingAdjustment": -1 + }, + { + "AdjustmentType": "PercentChangeInCapacity", + "Alarms": [ + + ], + "AutoScalingGroupName": "my-auto-scaling-group", + "Cooldown": 60, + "MinAdjustmentStep": 2, + "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:2b435159-cf77-4e89-8c0e-d63b497baad7:autoScalingGroupName/my-auto-scaling-group:policyName/ScalePercentChange", + "PolicyName": "ScalePercentChange", + "ScalingAdjustment": 25 + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the policies for the specified Auto Scaling group.", + "id": "autoscaling-describe-policies-1", + "title": "To describe scaling policies" + } + ], + "DescribeScalingActivities": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "Activities": [ + { + "ActivityId": "f9f2d65b-f1f2-43e7-b46d-d86756459699", + "AutoScalingGroupName": "my-auto-scaling-group", + "Cause": "At 2013-08-19T20:53:25Z a user request created an AutoScalingGroup changing the desired capacity from 0 to 1. At 2013-08-19T20:53:29Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1.", + "Description": "Launching a new EC2 instance: i-4ba0837f", + "Details": "details", + "EndTime": "2013-08-19T20:54:02Z", + "Progress": 100, + "StartTime": "2013-08-19T20:53:29.930Z", + "StatusCode": "Successful" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the scaling activities for the specified Auto Scaling group.", + "id": "autoscaling-describe-scaling-activities-1", + "title": "To describe the scaling activities for an Auto Scaling group" + } + ], + "DescribeScalingProcessTypes": [ + { + "output": { + "Processes": [ + { + "ProcessName": "AZRebalance" + }, + { + "ProcessName": "AddToLoadBalancer" + }, + { + "ProcessName": "AlarmNotification" + }, + { + "ProcessName": "HealthCheck" + }, + { + "ProcessName": "Launch" + }, + { + "ProcessName": "ReplaceUnhealthy" + }, + { + "ProcessName": "ScheduledActions" + }, + { + "ProcessName": "Terminate" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the Auto Scaling process types.", + "id": "autoscaling-describe-scaling-process-types-1", + "title": "To describe the Auto Scaling process types" + } + ], + "DescribeScheduledActions": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group" + }, + "output": { + "ScheduledUpdateGroupActions": [ + { + "AutoScalingGroupName": "my-auto-scaling-group", + "DesiredCapacity": 4, + "MaxSize": 6, + "MinSize": 2, + "Recurrence": "30 0 1 12 0", + "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledUpdateGroupAction:8e86b655-b2e6-4410-8f29-b4f094d6871c:autoScalingGroupName/my-auto-scaling-group:scheduledActionName/my-scheduled-action", + "ScheduledActionName": "my-scheduled-action", + "StartTime": "2016-12-01T00:30:00Z", + "Time": "2016-12-01T00:30:00Z" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the scheduled actions for the specified Auto Scaling group.", + "id": "autoscaling-describe-scheduled-actions-1", + "title": "To describe scheduled actions" + } + ], + "DescribeTags": [ + { + "input": { + "Filters": [ + { + "Name": "auto-scaling-group", + "Values": [ + "my-auto-scaling-group" + ] + } + ] + }, + "output": { + "Tags": [ + { + "Key": "Dept", + "PropagateAtLaunch": true, + "ResourceId": "my-auto-scaling-group", + "ResourceType": "auto-scaling-group", + "Value": "Research" + }, + { + "Key": "Role", + "PropagateAtLaunch": true, + "ResourceId": "my-auto-scaling-group", + "ResourceType": "auto-scaling-group", + "Value": "WebServer" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the tags for the specified Auto Scaling group.", + "id": "autoscaling-describe-tags-1", + "title": "To describe tags" + } + ], + "DescribeTerminationPolicyTypes": [ + { + "output": { + "TerminationPolicyTypes": [ + "ClosestToNextInstanceHour", + "Default", + "NewestInstance", + "OldestInstance", + "OldestLaunchConfiguration" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the available termination policy types.", + "id": "autoscaling-describe-termination-policy-types-1", + "title": "To describe termination policy types" + } + ], + "DetachInstances": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceIds": [ + "i-93633f9b" + ], + "ShouldDecrementDesiredCapacity": true + }, + "output": { + "Activities": [ + { + "ActivityId": "5091cb52-547a-47ce-a236-c9ccbc2cb2c9", + "AutoScalingGroupName": "my-auto-scaling-group", + "Cause": "At 2015-04-12T15:02:16Z instance i-93633f9b was detached in response to a user request, shrinking the capacity from 2 to 1.", + "Description": "Detaching EC2 instance: i-93633f9b", + "Details": "details", + "Progress": 50, + "StartTime": "2015-04-12T15:02:16.179Z", + "StatusCode": "InProgress" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example detaches the specified instance from the specified Auto Scaling group.", + "id": "autoscaling-detach-instances-1", + "title": "To detach an instance from an Auto Scaling group" + } + ], + "DetachLoadBalancerTargetGroups": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "TargetGroupARNs": [ + "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example detaches the specified target group from the specified Auto Scaling group", + "id": "autoscaling-detach-load-balancer-target-groups-1", + "title": "To detach a target group from an Auto Scaling group" + } + ], + "DetachLoadBalancers": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LoadBalancerNames": [ + "my-load-balancer" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example detaches the specified load balancer from the specified Auto Scaling group.", + "id": "autoscaling-detach-load-balancers-1", + "title": "To detach a load balancer from an Auto Scaling group" + } + ], + "DisableMetricsCollection": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "Metrics": [ + "GroupDesiredCapacity" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example disables collecting data for the GroupDesiredCapacity metric for the specified Auto Scaling group.", + "id": "autoscaling-disable-metrics-collection-1", + "title": "To disable metrics collection for an Auto Scaling group" + } + ], + "EnableMetricsCollection": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "Granularity": "1Minute" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example enables data collection for the specified Auto Scaling group.", + "id": "autoscaling-enable-metrics-collection-1", + "title": "To enable metrics collection for an Auto Scaling group" + } + ], + "EnterStandby": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceIds": [ + "i-93633f9b" + ], + "ShouldDecrementDesiredCapacity": true + }, + "output": { + "Activities": [ + { + "ActivityId": "ffa056b4-6ed3-41ba-ae7c-249dfae6eba1", + "AutoScalingGroupName": "my-auto-scaling-group", + "Cause": "At 2015-04-12T15:10:23Z instance i-93633f9b was moved to standby in response to a user request, shrinking the capacity from 2 to 1.", + "Description": "Moving EC2 instance to Standby: i-93633f9b", + "Details": "details", + "Progress": 50, + "StartTime": "2015-04-12T15:10:23.640Z", + "StatusCode": "InProgress" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example puts the specified instance into standby mode.", + "id": "autoscaling-enter-standby-1", + "title": "To move instances into standby mode" + } + ], + "ExecutePolicy": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "BreachThreshold": 50.0, + "MetricValue": 59.0, + "PolicyName": "my-step-scale-out-policy" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example executes the specified policy.", + "id": "autoscaling-execute-policy-1", + "title": "To execute a scaling policy" + } + ], + "ExitStandby": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceIds": [ + "i-93633f9b" + ] + }, + "output": { + "Activities": [ + { + "ActivityId": "142928e1-a2dc-453a-9b24-b85ad6735928", + "AutoScalingGroupName": "my-auto-scaling-group", + "Cause": "At 2015-04-12T15:14:29Z instance i-93633f9b was moved out of standby in response to a user request, increasing the capacity from 1 to 2.", + "Description": "Moving EC2 instance out of Standby: i-93633f9b", + "Details": "details", + "Progress": 30, + "StartTime": "2015-04-12T15:14:29.886Z", + "StatusCode": "PreInService" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example moves the specified instance out of standby mode.", + "id": "autoscaling-exit-standby-1", + "title": "To move instances out of standby mode" + } + ], + "PutLifecycleHook": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LifecycleHookName": "my-lifecycle-hook", + "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", + "NotificationTargetARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic --role-arn", + "RoleARN": "arn:aws:iam::123456789012:role/my-auto-scaling-role" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates a lifecycle hook.", + "id": "autoscaling-put-lifecycle-hook-1", + "title": "To create a lifecycle hook" + } + ], + "PutNotificationConfiguration": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "NotificationTypes": [ + "autoscaling:TEST_NOTIFICATION" + ], + "TopicARN": "arn:aws:sns:us-west-2:123456789012:my-sns-topic" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example adds the specified notification to the specified Auto Scaling group.", + "id": "autoscaling-put-notification-configuration-1", + "title": "To add an Auto Scaling notification" + } + ], + "PutScalingPolicy": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "PolicyName": "alb1000-target-tracking-scaling-policy", + "PolicyType": "TargetTrackingScaling", + "TargetTrackingConfiguration": { + "PredefinedMetricSpecification": { + "PredefinedMetricType": "ALBRequestCountPerTarget", + "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff" + }, + "TargetValue": 1000.0 + } + }, + "output": { + "Alarms": [ + { + "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e", + "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e" + }, + { + "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2", + "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2" + } + ], + "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-auto-scaling-group:policyName/alb1000-target-tracking-scaling-policy" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example adds the specified policy to the specified Auto Scaling group.", + "id": "autoscaling-put-scaling-policy-1", + "title": "To add a scaling policy to an Auto Scaling group" + } + ], + "PutScheduledUpdateGroupAction": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "DesiredCapacity": 4, + "EndTime": "2014-05-12T08:00:00Z", + "MaxSize": 6, + "MinSize": 2, + "ScheduledActionName": "my-scheduled-action", + "StartTime": "2014-05-12T08:00:00Z" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example adds the specified scheduled action to the specified Auto Scaling group.", + "id": "autoscaling-put-scheduled-update-group-action-1", + "title": "To add a scheduled action to an Auto Scaling group" + } + ], + "PutWarmPool": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "MinSize": 30, + "PoolState": "Stopped" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example adds a warm pool to the specified Auto Scaling group.", + "id": "to-add-a-warm-pool-to-an-auto-scaling-group-1617818810383", + "title": "To add a warm pool to an Auto Scaling group" + } + ], + "RecordLifecycleActionHeartbeat": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LifecycleActionToken": "bcd2f1b8-9a78-44d3-8a7a-4dd07d7cf635", + "LifecycleHookName": "my-lifecycle-hook" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example records a lifecycle action heartbeat to keep the instance in a pending state.", + "id": "autoscaling-record-lifecycle-action-heartbeat-1", + "title": "To record a lifecycle action heartbeat" + } + ], + "ResumeProcesses": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "ScalingProcesses": [ + "AlarmNotification" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example resumes the specified suspended scaling process for the specified Auto Scaling group.", + "id": "autoscaling-resume-processes-1", + "title": "To resume Auto Scaling processes" + } + ], + "SetDesiredCapacity": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "DesiredCapacity": 2, + "HonorCooldown": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example sets the desired capacity for the specified Auto Scaling group.", + "id": "autoscaling-set-desired-capacity-1", + "title": "To set the desired capacity for an Auto Scaling group" + } + ], + "SetInstanceHealth": [ + { + "input": { + "HealthStatus": "Unhealthy", + "InstanceId": "i-93633f9b" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example sets the health status of the specified instance to Unhealthy.", + "id": "autoscaling-set-instance-health-1", + "title": "To set the health status of an instance" + } + ], + "SetInstanceProtection": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceIds": [ + "i-93633f9b" + ], + "ProtectedFromScaleIn": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example enables instance protection for the specified instance.", + "id": "autoscaling-set-instance-protection-1", + "title": "To enable instance protection for an instance" + }, + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "InstanceIds": [ + "i-93633f9b" + ], + "ProtectedFromScaleIn": false + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example disables instance protection for the specified instance.", + "id": "autoscaling-set-instance-protection-2", + "title": "To disable instance protection for an instance" + } + ], + "StartInstanceRefresh": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "Preferences": { + "InstanceWarmup": 400, + "MinHealthyPercentage": 50 + } + }, + "output": { + "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example starts an instance refresh for the specified Auto Scaling group.", + "id": "to-start-an-instance-refresh-1592957271522", + "title": "To start an instance refresh" + } + ], + "SuspendProcesses": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "ScalingProcesses": [ + "AlarmNotification" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example suspends the specified scaling process for the specified Auto Scaling group.", + "id": "autoscaling-suspend-processes-1", + "title": "To suspend Auto Scaling processes" + } + ], + "TerminateInstanceInAutoScalingGroup": [ + { + "input": { + "InstanceId": "i-93633f9b", + "ShouldDecrementDesiredCapacity": false + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example terminates the specified instance from the specified Auto Scaling group without updating the size of the group. Auto Scaling launches a replacement instance after the specified instance terminates.", + "id": "autoscaling-terminate-instance-in-auto-scaling-group-1", + "title": "To terminate an instance in an Auto Scaling group" + } + ], + "UpdateAutoScalingGroup": [ + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "LaunchConfigurationName": "new-launch-config" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example updates the launch configuration of the specified Auto Scaling group.", + "id": "autoscaling-update-auto-scaling-group-1", + "title": "To update the launch configuration" + }, + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "MaxSize": 3, + "MinSize": 1 + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example updates the minimum size and maximum size of the specified Auto Scaling group.", + "id": "autoscaling-update-auto-scaling-group-2", + "title": "To update the minimum and maximum size" + }, + { + "input": { + "AutoScalingGroupName": "my-auto-scaling-group", + "NewInstancesProtectedFromScaleIn": true + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example enables instance protection for the specified Auto Scaling group.", + "id": "autoscaling-update-auto-scaling-group-3", + "title": "To enable instance protection" + } + ] + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json new file mode 100644 index 0000000000000000000000000000000000000000..7e00f5400a3cc2a5cd6b3acd9c0e799c86a25407 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.min.json @@ -0,0 +1,2297 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2011-01-01", + "endpointPrefix": "autoscaling", + "protocol": "query", + "serviceFullName": "Auto Scaling", + "serviceId": "Auto Scaling", + "signatureVersion": "v4", + "uid": "autoscaling-2011-01-01", + "xmlNamespace": "http://autoscaling.amazonaws.com/doc/2011-01-01/" + }, + "operations": { + "AttachInstances": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {} + } + } + }, + "AttachLoadBalancerTargetGroups": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "TargetGroupARNs" + ], + "members": { + "AutoScalingGroupName": {}, + "TargetGroupARNs": { + "shape": "S6" + } + } + }, + "output": { + "resultWrapper": "AttachLoadBalancerTargetGroupsResult", + "type": "structure", + "members": {} + } + }, + "AttachLoadBalancers": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "LoadBalancerNames" + ], + "members": { + "AutoScalingGroupName": {}, + "LoadBalancerNames": { + "shape": "Sa" + } + } + }, + "output": { + "resultWrapper": "AttachLoadBalancersResult", + "type": "structure", + "members": {} + } + }, + "BatchDeleteScheduledAction": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ScheduledActionNames" + ], + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionNames": { + "shape": "Sd" + } + } + }, + "output": { + "resultWrapper": "BatchDeleteScheduledActionResult", + "type": "structure", + "members": { + "FailedScheduledActions": { + "shape": "Sf" + } + } + } + }, + "BatchPutScheduledUpdateGroupAction": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ScheduledUpdateGroupActions" + ], + "members": { + "AutoScalingGroupName": {}, + "ScheduledUpdateGroupActions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScheduledActionName" + ], + "members": { + "ScheduledActionName": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Recurrence": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "TimeZone": {} + } + } + } + } + }, + "output": { + "resultWrapper": "BatchPutScheduledUpdateGroupActionResult", + "type": "structure", + "members": { + "FailedScheduledUpdateGroupActions": { + "shape": "Sf" + } + } + } + }, + "CancelInstanceRefresh": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {} + } + }, + "output": { + "resultWrapper": "CancelInstanceRefreshResult", + "type": "structure", + "members": { + "InstanceRefreshId": {} + } + } + }, + "CompleteLifecycleAction": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName", + "LifecycleActionResult" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleActionToken": {}, + "LifecycleActionResult": {}, + "InstanceId": {} + } + }, + "output": { + "resultWrapper": "CompleteLifecycleActionResult", + "type": "structure", + "members": {} + } + }, + "CreateAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "MinSize", + "MaxSize" + ], + "members": { + "AutoScalingGroupName": {}, + "LaunchConfigurationName": {}, + "LaunchTemplate": { + "shape": "S10" + }, + "MixedInstancesPolicy": { + "shape": "S12" + }, + "InstanceId": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "shape": "S1d" + }, + "LoadBalancerNames": { + "shape": "Sa" + }, + "TargetGroupARNs": { + "shape": "S6" + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "TerminationPolicies": { + "shape": "S1g" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + }, + "CapacityRebalance": { + "type": "boolean" + }, + "LifecycleHookSpecificationList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "LifecycleHookName", + "LifecycleTransition" + ], + "members": { + "LifecycleHookName": {}, + "LifecycleTransition": {}, + "NotificationMetadata": {}, + "HeartbeatTimeout": { + "type": "integer" + }, + "DefaultResult": {}, + "NotificationTargetARN": {}, + "RoleARN": {} + } + } + }, + "Tags": { + "shape": "S1q" + }, + "ServiceLinkedRoleARN": {}, + "MaxInstanceLifetime": { + "type": "integer" + } + } + } + }, + "CreateLaunchConfiguration": { + "input": { + "type": "structure", + "required": [ + "LaunchConfigurationName" + ], + "members": { + "LaunchConfigurationName": {}, + "ImageId": {}, + "KeyName": {}, + "SecurityGroups": { + "shape": "S1x" + }, + "ClassicLinkVPCId": {}, + "ClassicLinkVPCSecurityGroups": { + "shape": "S1y" + }, + "UserData": {}, + "InstanceId": {}, + "InstanceType": {}, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "shape": "S20" + }, + "InstanceMonitoring": { + "shape": "S2a" + }, + "SpotPrice": {}, + "IamInstanceProfile": {}, + "EbsOptimized": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "PlacementTenancy": {}, + "MetadataOptions": { + "shape": "S2f" + } + } + } + }, + "CreateOrUpdateTags": { + "input": { + "type": "structure", + "required": [ + "Tags" + ], + "members": { + "Tags": { + "shape": "S1q" + } + } + } + }, + "DeleteAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "ForceDelete": { + "type": "boolean" + } + } + } + }, + "DeleteLaunchConfiguration": { + "input": { + "type": "structure", + "required": [ + "LaunchConfigurationName" + ], + "members": { + "LaunchConfigurationName": {} + } + } + }, + "DeleteLifecycleHook": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {} + } + }, + "output": { + "resultWrapper": "DeleteLifecycleHookResult", + "type": "structure", + "members": {} + } + }, + "DeleteNotificationConfiguration": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "TopicARN" + ], + "members": { + "AutoScalingGroupName": {}, + "TopicARN": {} + } + } + }, + "DeletePolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName" + ], + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {} + } + } + }, + "DeleteScheduledAction": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ScheduledActionName" + ], + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionName": {} + } + } + }, + "DeleteTags": { + "input": { + "type": "structure", + "required": [ + "Tags" + ], + "members": { + "Tags": { + "shape": "S1q" + } + } + } + }, + "DeleteWarmPool": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "ForceDelete": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DeleteWarmPoolResult", + "type": "structure", + "members": {} + } + }, + "DescribeAccountLimits": { + "output": { + "resultWrapper": "DescribeAccountLimitsResult", + "type": "structure", + "members": { + "MaxNumberOfAutoScalingGroups": { + "type": "integer" + }, + "MaxNumberOfLaunchConfigurations": { + "type": "integer" + }, + "NumberOfAutoScalingGroups": { + "type": "integer" + }, + "NumberOfLaunchConfigurations": { + "type": "integer" + } + } + } + }, + "DescribeAdjustmentTypes": { + "output": { + "resultWrapper": "DescribeAdjustmentTypesResult", + "type": "structure", + "members": { + "AdjustmentTypes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AdjustmentType": {} + } + } + } + } + } + }, + "DescribeAutoScalingGroups": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupNames": { + "shape": "S34" + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeAutoScalingGroupsResult", + "type": "structure", + "required": [ + "AutoScalingGroups" + ], + "members": { + "AutoScalingGroups": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "MinSize", + "MaxSize", + "DesiredCapacity", + "DefaultCooldown", + "AvailabilityZones", + "HealthCheckType", + "CreatedTime" + ], + "members": { + "AutoScalingGroupName": {}, + "AutoScalingGroupARN": {}, + "LaunchConfigurationName": {}, + "LaunchTemplate": { + "shape": "S10" + }, + "MixedInstancesPolicy": { + "shape": "S12" + }, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "PredictedCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "shape": "S1d" + }, + "LoadBalancerNames": { + "shape": "Sa" + }, + "TargetGroupARNs": { + "shape": "S6" + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "Instances": { + "shape": "S3a" + }, + "CreatedTime": { + "type": "timestamp" + }, + "SuspendedProcesses": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ProcessName": {}, + "SuspensionReason": {} + } + } + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "EnabledMetrics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Metric": {}, + "Granularity": {} + } + } + }, + "Status": {}, + "Tags": { + "shape": "S3h" + }, + "TerminationPolicies": { + "shape": "S1g" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + }, + "ServiceLinkedRoleARN": {}, + "MaxInstanceLifetime": { + "type": "integer" + }, + "CapacityRebalance": { + "type": "boolean" + }, + "WarmPoolConfiguration": { + "shape": "S3j" + }, + "WarmPoolSize": { + "type": "integer" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeAutoScalingInstances": { + "input": { + "type": "structure", + "members": { + "InstanceIds": { + "shape": "S2" + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeAutoScalingInstancesResult", + "type": "structure", + "members": { + "AutoScalingInstances": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "InstanceId", + "AutoScalingGroupName", + "AvailabilityZone", + "LifecycleState", + "HealthStatus", + "ProtectedFromScaleIn" + ], + "members": { + "InstanceId": {}, + "InstanceType": {}, + "AutoScalingGroupName": {}, + "AvailabilityZone": {}, + "LifecycleState": {}, + "HealthStatus": {}, + "LaunchConfigurationName": {}, + "LaunchTemplate": { + "shape": "S10" + }, + "ProtectedFromScaleIn": { + "type": "boolean" + }, + "WeightedCapacity": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeAutoScalingNotificationTypes": { + "output": { + "resultWrapper": "DescribeAutoScalingNotificationTypesResult", + "type": "structure", + "members": { + "AutoScalingNotificationTypes": { + "shape": "S3u" + } + } + } + }, + "DescribeInstanceRefreshes": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "InstanceRefreshIds": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeInstanceRefreshesResult", + "type": "structure", + "members": { + "InstanceRefreshes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InstanceRefreshId": {}, + "AutoScalingGroupName": {}, + "Status": {}, + "StatusReason": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "PercentageComplete": { + "type": "integer" + }, + "InstancesToUpdate": { + "type": "integer" + }, + "ProgressDetails": { + "type": "structure", + "members": { + "LivePoolProgress": { + "type": "structure", + "members": { + "PercentageComplete": { + "type": "integer" + }, + "InstancesToUpdate": { + "type": "integer" + } + } + }, + "WarmPoolProgress": { + "type": "structure", + "members": { + "PercentageComplete": { + "type": "integer" + }, + "InstancesToUpdate": { + "type": "integer" + } + } + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeLaunchConfigurations": { + "input": { + "type": "structure", + "members": { + "LaunchConfigurationNames": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeLaunchConfigurationsResult", + "type": "structure", + "required": [ + "LaunchConfigurations" + ], + "members": { + "LaunchConfigurations": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "LaunchConfigurationName", + "ImageId", + "InstanceType", + "CreatedTime" + ], + "members": { + "LaunchConfigurationName": {}, + "LaunchConfigurationARN": {}, + "ImageId": {}, + "KeyName": {}, + "SecurityGroups": { + "shape": "S1x" + }, + "ClassicLinkVPCId": {}, + "ClassicLinkVPCSecurityGroups": { + "shape": "S1y" + }, + "UserData": {}, + "InstanceType": {}, + "KernelId": {}, + "RamdiskId": {}, + "BlockDeviceMappings": { + "shape": "S20" + }, + "InstanceMonitoring": { + "shape": "S2a" + }, + "SpotPrice": {}, + "IamInstanceProfile": {}, + "CreatedTime": { + "type": "timestamp" + }, + "EbsOptimized": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "PlacementTenancy": {}, + "MetadataOptions": { + "shape": "S2f" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeLifecycleHookTypes": { + "output": { + "resultWrapper": "DescribeLifecycleHookTypesResult", + "type": "structure", + "members": { + "LifecycleHookTypes": { + "shape": "S3u" + } + } + } + }, + "DescribeLifecycleHooks": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "LifecycleHookNames": { + "type": "list", + "member": {} + } + } + }, + "output": { + "resultWrapper": "DescribeLifecycleHooksResult", + "type": "structure", + "members": { + "LifecycleHooks": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleTransition": {}, + "NotificationTargetARN": {}, + "RoleARN": {}, + "NotificationMetadata": {}, + "HeartbeatTimeout": { + "type": "integer" + }, + "GlobalTimeout": { + "type": "integer" + }, + "DefaultResult": {} + } + } + } + } + } + }, + "DescribeLoadBalancerTargetGroups": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeLoadBalancerTargetGroupsResult", + "type": "structure", + "members": { + "LoadBalancerTargetGroups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LoadBalancerTargetGroupARN": {}, + "State": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeLoadBalancers": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeLoadBalancersResult", + "type": "structure", + "members": { + "LoadBalancers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LoadBalancerName": {}, + "State": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeMetricCollectionTypes": { + "output": { + "resultWrapper": "DescribeMetricCollectionTypesResult", + "type": "structure", + "members": { + "Metrics": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Metric": {} + } + } + }, + "Granularities": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Granularity": {} + } + } + } + } + } + }, + "DescribeNotificationConfigurations": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupNames": { + "shape": "S34" + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeNotificationConfigurationsResult", + "type": "structure", + "required": [ + "NotificationConfigurations" + ], + "members": { + "NotificationConfigurations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "TopicARN": {}, + "NotificationType": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribePolicies": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyNames": { + "type": "list", + "member": {} + }, + "PolicyTypes": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribePoliciesResult", + "type": "structure", + "members": { + "ScalingPolicies": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "PolicyARN": {}, + "PolicyType": {}, + "AdjustmentType": {}, + "MinAdjustmentStep": { + "shape": "S55" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + }, + "Cooldown": { + "type": "integer" + }, + "StepAdjustments": { + "shape": "S58" + }, + "MetricAggregationType": {}, + "EstimatedInstanceWarmup": { + "type": "integer" + }, + "Alarms": { + "shape": "S5c" + }, + "TargetTrackingConfiguration": { + "shape": "S5e" + }, + "Enabled": { + "type": "boolean" + }, + "PredictiveScalingConfiguration": { + "shape": "S5s" + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingActivities": { + "input": { + "type": "structure", + "members": { + "ActivityIds": { + "type": "list", + "member": {} + }, + "AutoScalingGroupName": {}, + "IncludeDeletedGroups": { + "type": "boolean" + }, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeScalingActivitiesResult", + "type": "structure", + "required": [ + "Activities" + ], + "members": { + "Activities": { + "shape": "S69" + }, + "NextToken": {} + } + } + }, + "DescribeScalingProcessTypes": { + "output": { + "resultWrapper": "DescribeScalingProcessTypesResult", + "type": "structure", + "members": { + "Processes": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ProcessName" + ], + "members": { + "ProcessName": {} + } + } + } + } + } + }, + "DescribeScheduledActions": { + "input": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionNames": { + "shape": "Sd" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeScheduledActionsResult", + "type": "structure", + "members": { + "ScheduledUpdateGroupActions": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionName": {}, + "ScheduledActionARN": {}, + "Time": { + "type": "timestamp" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Recurrence": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "TimeZone": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeTags": { + "input": { + "type": "structure", + "members": { + "Filters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Name": {}, + "Values": { + "type": "list", + "member": {} + } + } + } + }, + "NextToken": {}, + "MaxRecords": { + "type": "integer" + } + } + }, + "output": { + "resultWrapper": "DescribeTagsResult", + "type": "structure", + "members": { + "Tags": { + "shape": "S3h" + }, + "NextToken": {} + } + } + }, + "DescribeTerminationPolicyTypes": { + "output": { + "resultWrapper": "DescribeTerminationPolicyTypesResult", + "type": "structure", + "members": { + "TerminationPolicyTypes": { + "shape": "S1g" + } + } + } + }, + "DescribeWarmPool": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "MaxRecords": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "resultWrapper": "DescribeWarmPoolResult", + "type": "structure", + "members": { + "WarmPoolConfiguration": { + "shape": "S3j" + }, + "Instances": { + "shape": "S3a" + }, + "NextToken": {} + } + } + }, + "DetachInstances": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ShouldDecrementDesiredCapacity" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {}, + "ShouldDecrementDesiredCapacity": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "DetachInstancesResult", + "type": "structure", + "members": { + "Activities": { + "shape": "S69" + } + } + } + }, + "DetachLoadBalancerTargetGroups": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "TargetGroupARNs" + ], + "members": { + "AutoScalingGroupName": {}, + "TargetGroupARNs": { + "shape": "S6" + } + } + }, + "output": { + "resultWrapper": "DetachLoadBalancerTargetGroupsResult", + "type": "structure", + "members": {} + } + }, + "DetachLoadBalancers": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "LoadBalancerNames" + ], + "members": { + "AutoScalingGroupName": {}, + "LoadBalancerNames": { + "shape": "Sa" + } + } + }, + "output": { + "resultWrapper": "DetachLoadBalancersResult", + "type": "structure", + "members": {} + } + }, + "DisableMetricsCollection": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "Metrics": { + "shape": "S71" + } + } + } + }, + "EnableMetricsCollection": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "Granularity" + ], + "members": { + "AutoScalingGroupName": {}, + "Metrics": { + "shape": "S71" + }, + "Granularity": {} + } + } + }, + "EnterStandby": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ShouldDecrementDesiredCapacity" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {}, + "ShouldDecrementDesiredCapacity": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "EnterStandbyResult", + "type": "structure", + "members": { + "Activities": { + "shape": "S69" + } + } + } + }, + "ExecutePolicy": { + "input": { + "type": "structure", + "required": [ + "PolicyName" + ], + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "HonorCooldown": { + "type": "boolean" + }, + "MetricValue": { + "type": "double" + }, + "BreachThreshold": { + "type": "double" + } + } + } + }, + "ExitStandby": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {} + } + }, + "output": { + "resultWrapper": "ExitStandbyResult", + "type": "structure", + "members": { + "Activities": { + "shape": "S69" + } + } + } + }, + "GetPredictiveScalingForecast": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "PolicyName", + "StartTime", + "EndTime" + ], + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + } + } + }, + "output": { + "resultWrapper": "GetPredictiveScalingForecastResult", + "type": "structure", + "required": [ + "LoadForecast", + "CapacityForecast", + "UpdateTime" + ], + "members": { + "LoadForecast": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Timestamps", + "Values", + "MetricSpecification" + ], + "members": { + "Timestamps": { + "shape": "S7d" + }, + "Values": { + "shape": "S7e" + }, + "MetricSpecification": { + "shape": "S5u" + } + } + } + }, + "CapacityForecast": { + "type": "structure", + "required": [ + "Timestamps", + "Values" + ], + "members": { + "Timestamps": { + "shape": "S7d" + }, + "Values": { + "shape": "S7e" + } + } + }, + "UpdateTime": { + "type": "timestamp" + } + } + } + }, + "PutLifecycleHook": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleTransition": {}, + "RoleARN": {}, + "NotificationTargetARN": {}, + "NotificationMetadata": {}, + "HeartbeatTimeout": { + "type": "integer" + }, + "DefaultResult": {} + } + }, + "output": { + "resultWrapper": "PutLifecycleHookResult", + "type": "structure", + "members": {} + } + }, + "PutNotificationConfiguration": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "TopicARN", + "NotificationTypes" + ], + "members": { + "AutoScalingGroupName": {}, + "TopicARN": {}, + "NotificationTypes": { + "shape": "S3u" + } + } + } + }, + "PutScalingPolicy": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "PolicyName" + ], + "members": { + "AutoScalingGroupName": {}, + "PolicyName": {}, + "PolicyType": {}, + "AdjustmentType": {}, + "MinAdjustmentStep": { + "shape": "S55" + }, + "MinAdjustmentMagnitude": { + "type": "integer" + }, + "ScalingAdjustment": { + "type": "integer" + }, + "Cooldown": { + "type": "integer" + }, + "MetricAggregationType": {}, + "StepAdjustments": { + "shape": "S58" + }, + "EstimatedInstanceWarmup": { + "type": "integer" + }, + "TargetTrackingConfiguration": { + "shape": "S5e" + }, + "Enabled": { + "type": "boolean" + }, + "PredictiveScalingConfiguration": { + "shape": "S5s" + } + } + }, + "output": { + "resultWrapper": "PutScalingPolicyResult", + "type": "structure", + "members": { + "PolicyARN": {}, + "Alarms": { + "shape": "S5c" + } + } + } + }, + "PutScheduledUpdateGroupAction": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "ScheduledActionName" + ], + "members": { + "AutoScalingGroupName": {}, + "ScheduledActionName": {}, + "Time": { + "type": "timestamp" + }, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "Recurrence": {}, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "TimeZone": {} + } + } + }, + "PutWarmPool": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "MaxGroupPreparedCapacity": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "PoolState": {} + } + }, + "output": { + "resultWrapper": "PutWarmPoolResult", + "type": "structure", + "members": {} + } + }, + "RecordLifecycleActionHeartbeat": { + "input": { + "type": "structure", + "required": [ + "LifecycleHookName", + "AutoScalingGroupName" + ], + "members": { + "LifecycleHookName": {}, + "AutoScalingGroupName": {}, + "LifecycleActionToken": {}, + "InstanceId": {} + } + }, + "output": { + "resultWrapper": "RecordLifecycleActionHeartbeatResult", + "type": "structure", + "members": {} + } + }, + "ResumeProcesses": { + "input": { + "shape": "S7q" + } + }, + "SetDesiredCapacity": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName", + "DesiredCapacity" + ], + "members": { + "AutoScalingGroupName": {}, + "DesiredCapacity": { + "type": "integer" + }, + "HonorCooldown": { + "type": "boolean" + } + } + } + }, + "SetInstanceHealth": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "HealthStatus" + ], + "members": { + "InstanceId": {}, + "HealthStatus": {}, + "ShouldRespectGracePeriod": { + "type": "boolean" + } + } + } + }, + "SetInstanceProtection": { + "input": { + "type": "structure", + "required": [ + "InstanceIds", + "AutoScalingGroupName", + "ProtectedFromScaleIn" + ], + "members": { + "InstanceIds": { + "shape": "S2" + }, + "AutoScalingGroupName": {}, + "ProtectedFromScaleIn": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "SetInstanceProtectionResult", + "type": "structure", + "members": {} + } + }, + "StartInstanceRefresh": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "Strategy": {}, + "Preferences": { + "type": "structure", + "members": { + "MinHealthyPercentage": { + "type": "integer" + }, + "InstanceWarmup": { + "type": "integer" + }, + "CheckpointPercentages": { + "type": "list", + "member": { + "type": "integer" + } + }, + "CheckpointDelay": { + "type": "integer" + } + } + } + } + }, + "output": { + "resultWrapper": "StartInstanceRefreshResult", + "type": "structure", + "members": { + "InstanceRefreshId": {} + } + } + }, + "SuspendProcesses": { + "input": { + "shape": "S7q" + } + }, + "TerminateInstanceInAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "InstanceId", + "ShouldDecrementDesiredCapacity" + ], + "members": { + "InstanceId": {}, + "ShouldDecrementDesiredCapacity": { + "type": "boolean" + } + } + }, + "output": { + "resultWrapper": "TerminateInstanceInAutoScalingGroupResult", + "type": "structure", + "members": { + "Activity": { + "shape": "S6a" + } + } + } + }, + "UpdateAutoScalingGroup": { + "input": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "LaunchConfigurationName": {}, + "LaunchTemplate": { + "shape": "S10" + }, + "MixedInstancesPolicy": { + "shape": "S12" + }, + "MinSize": { + "type": "integer" + }, + "MaxSize": { + "type": "integer" + }, + "DesiredCapacity": { + "type": "integer" + }, + "DefaultCooldown": { + "type": "integer" + }, + "AvailabilityZones": { + "shape": "S1d" + }, + "HealthCheckType": {}, + "HealthCheckGracePeriod": { + "type": "integer" + }, + "PlacementGroup": {}, + "VPCZoneIdentifier": {}, + "TerminationPolicies": { + "shape": "S1g" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + }, + "ServiceLinkedRoleARN": {}, + "MaxInstanceLifetime": { + "type": "integer" + }, + "CapacityRebalance": { + "type": "boolean" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "list", + "member": {} + }, + "S6": { + "type": "list", + "member": {} + }, + "Sa": { + "type": "list", + "member": {} + }, + "Sd": { + "type": "list", + "member": {} + }, + "Sf": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScheduledActionName" + ], + "members": { + "ScheduledActionName": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "S10": { + "type": "structure", + "members": { + "LaunchTemplateId": {}, + "LaunchTemplateName": {}, + "Version": {} + } + }, + "S12": { + "type": "structure", + "members": { + "LaunchTemplate": { + "type": "structure", + "members": { + "LaunchTemplateSpecification": { + "shape": "S10" + }, + "Overrides": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InstanceType": {}, + "WeightedCapacity": {}, + "LaunchTemplateSpecification": { + "shape": "S10" + } + } + } + } + } + }, + "InstancesDistribution": { + "type": "structure", + "members": { + "OnDemandAllocationStrategy": {}, + "OnDemandBaseCapacity": { + "type": "integer" + }, + "OnDemandPercentageAboveBaseCapacity": { + "type": "integer" + }, + "SpotAllocationStrategy": {}, + "SpotInstancePools": { + "type": "integer" + }, + "SpotMaxPrice": {} + } + } + } + }, + "S1d": { + "type": "list", + "member": {} + }, + "S1g": { + "type": "list", + "member": {} + }, + "S1q": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": {}, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + } + }, + "S1x": { + "type": "list", + "member": {} + }, + "S1y": { + "type": "list", + "member": {} + }, + "S20": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DeviceName" + ], + "members": { + "VirtualName": {}, + "DeviceName": {}, + "Ebs": { + "type": "structure", + "members": { + "SnapshotId": {}, + "VolumeSize": { + "type": "integer" + }, + "VolumeType": {}, + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "integer" + }, + "Encrypted": { + "type": "boolean" + }, + "Throughput": { + "type": "integer" + } + } + }, + "NoDevice": { + "type": "boolean" + } + } + } + }, + "S2a": { + "type": "structure", + "members": { + "Enabled": { + "type": "boolean" + } + } + }, + "S2f": { + "type": "structure", + "members": { + "HttpTokens": {}, + "HttpPutResponseHopLimit": { + "type": "integer" + }, + "HttpEndpoint": {} + } + }, + "S34": { + "type": "list", + "member": {} + }, + "S3a": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "InstanceId", + "AvailabilityZone", + "LifecycleState", + "HealthStatus", + "ProtectedFromScaleIn" + ], + "members": { + "InstanceId": {}, + "InstanceType": {}, + "AvailabilityZone": {}, + "LifecycleState": {}, + "HealthStatus": {}, + "LaunchConfigurationName": {}, + "LaunchTemplate": { + "shape": "S10" + }, + "ProtectedFromScaleIn": { + "type": "boolean" + }, + "WeightedCapacity": {} + } + } + }, + "S3h": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceId": {}, + "ResourceType": {}, + "Key": {}, + "Value": {}, + "PropagateAtLaunch": { + "type": "boolean" + } + } + } + }, + "S3j": { + "type": "structure", + "members": { + "MaxGroupPreparedCapacity": { + "type": "integer" + }, + "MinSize": { + "type": "integer" + }, + "PoolState": {}, + "Status": {} + } + }, + "S3u": { + "type": "list", + "member": {} + }, + "S55": { + "type": "integer", + "deprecated": true + }, + "S58": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingAdjustment" + ], + "members": { + "MetricIntervalLowerBound": { + "type": "double" + }, + "MetricIntervalUpperBound": { + "type": "double" + }, + "ScalingAdjustment": { + "type": "integer" + } + } + } + }, + "S5c": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AlarmName": {}, + "AlarmARN": {} + } + } + }, + "S5e": { + "type": "structure", + "required": [ + "TargetValue" + ], + "members": { + "PredefinedMetricSpecification": { + "type": "structure", + "required": [ + "PredefinedMetricType" + ], + "members": { + "PredefinedMetricType": {}, + "ResourceLabel": {} + } + }, + "CustomizedMetricSpecification": { + "type": "structure", + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "members": { + "MetricName": {}, + "Namespace": {}, + "Dimensions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + } + } + }, + "Statistic": {}, + "Unit": {} + } + }, + "TargetValue": { + "type": "double" + }, + "DisableScaleIn": { + "type": "boolean" + } + } + }, + "S5s": { + "type": "structure", + "required": [ + "MetricSpecifications" + ], + "members": { + "MetricSpecifications": { + "type": "list", + "member": { + "shape": "S5u" + } + }, + "Mode": {}, + "SchedulingBufferTime": { + "type": "integer" + }, + "MaxCapacityBreachBehavior": {}, + "MaxCapacityBuffer": { + "type": "integer" + } + } + }, + "S5u": { + "type": "structure", + "required": [ + "TargetValue" + ], + "members": { + "TargetValue": { + "type": "double" + }, + "PredefinedMetricPairSpecification": { + "type": "structure", + "required": [ + "PredefinedMetricType" + ], + "members": { + "PredefinedMetricType": {}, + "ResourceLabel": {} + } + }, + "PredefinedScalingMetricSpecification": { + "type": "structure", + "required": [ + "PredefinedMetricType" + ], + "members": { + "PredefinedMetricType": {}, + "ResourceLabel": {} + } + }, + "PredefinedLoadMetricSpecification": { + "type": "structure", + "required": [ + "PredefinedMetricType" + ], + "members": { + "PredefinedMetricType": {}, + "ResourceLabel": {} + } + } + } + }, + "S69": { + "type": "list", + "member": { + "shape": "S6a" + } + }, + "S6a": { + "type": "structure", + "required": [ + "ActivityId", + "AutoScalingGroupName", + "Cause", + "StartTime", + "StatusCode" + ], + "members": { + "ActivityId": {}, + "AutoScalingGroupName": {}, + "Description": {}, + "Cause": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + }, + "StatusCode": {}, + "StatusMessage": {}, + "Progress": { + "type": "integer" + }, + "Details": {}, + "AutoScalingGroupState": {}, + "AutoScalingGroupARN": {} + } + }, + "S71": { + "type": "list", + "member": {} + }, + "S7d": { + "type": "list", + "member": { + "type": "timestamp" + } + }, + "S7e": { + "type": "list", + "member": { + "type": "double" + } + }, + "S7q": { + "type": "structure", + "required": [ + "AutoScalingGroupName" + ], + "members": { + "AutoScalingGroupName": {}, + "ScalingProcesses": { + "type": "list", + "member": {} + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..1b83859752d8fcdb830817d5d6f4af335018edb1 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json @@ -0,0 +1,52 @@ +{ + "pagination": { + "DescribeAutoScalingGroups": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "AutoScalingGroups" + }, + "DescribeAutoScalingInstances": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "AutoScalingInstances" + }, + "DescribeLaunchConfigurations": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "LaunchConfigurations" + }, + "DescribeNotificationConfigurations": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "NotificationConfigurations" + }, + "DescribePolicies": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "ScalingPolicies" + }, + "DescribeScalingActivities": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "Activities" + }, + "DescribeScheduledActions": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "ScheduledUpdateGroupActions" + }, + "DescribeTags": { + "input_token": "NextToken", + "limit_key": "MaxRecords", + "output_token": "NextToken", + "result_key": "Tags" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.min.json new file mode 100644 index 0000000000000000000000000000000000000000..a99860d406a4900fc44484f8b866ce9dd0bb6374 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.min.json @@ -0,0 +1,429 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-01-06", + "endpointPrefix": "autoscaling-plans", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Auto Scaling Plans", + "serviceId": "Auto Scaling Plans", + "signatureVersion": "v4", + "signingName": "autoscaling-plans", + "targetPrefix": "AnyScaleScalingPlannerFrontendService", + "uid": "autoscaling-plans-2018-01-06" + }, + "operations": { + "CreateScalingPlan": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ApplicationSource", + "ScalingInstructions" + ], + "members": { + "ScalingPlanName": {}, + "ApplicationSource": { + "shape": "S3" + }, + "ScalingInstructions": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "required": [ + "ScalingPlanVersion" + ], + "members": { + "ScalingPlanVersion": { + "type": "long" + } + } + } + }, + "DeleteScalingPlan": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeScalingPlanResources": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPlanResources": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "ScalingStatusCode" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "ScalingPolicies": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "PolicyName", + "PolicyType" + ], + "members": { + "PolicyName": {}, + "PolicyType": {}, + "TargetTrackingConfiguration": { + "shape": "Sh" + } + } + } + }, + "ScalingStatusCode": {}, + "ScalingStatusMessage": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingPlans": { + "input": { + "type": "structure", + "members": { + "ScalingPlanNames": { + "type": "list", + "member": {} + }, + "ScalingPlanVersion": { + "type": "long" + }, + "ApplicationSources": { + "type": "list", + "member": { + "shape": "S3" + } + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPlans": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion", + "ApplicationSource", + "ScalingInstructions", + "StatusCode" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "ApplicationSource": { + "shape": "S3" + }, + "ScalingInstructions": { + "shape": "Sa" + }, + "StatusCode": {}, + "StatusMessage": {}, + "StatusStartTime": { + "type": "timestamp" + }, + "CreationTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + }, + "GetScalingPlanResourceForecastData": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "ForecastDataType", + "StartTime", + "EndTime" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "ForecastDataType": {}, + "StartTime": { + "type": "timestamp" + }, + "EndTime": { + "type": "timestamp" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Datapoints" + ], + "members": { + "Datapoints": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Timestamp": { + "type": "timestamp" + }, + "Value": { + "type": "double" + } + } + } + } + } + } + }, + "UpdateScalingPlan": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "ApplicationSource": { + "shape": "S3" + }, + "ScalingInstructions": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "members": { + "CloudFormationStackARN": {}, + "TagFilters": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Values": { + "type": "list", + "member": {} + } + } + } + } + } + }, + "Sa": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "MinCapacity", + "MaxCapacity", + "TargetTrackingConfigurations" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MinCapacity": { + "type": "integer" + }, + "MaxCapacity": { + "type": "integer" + }, + "TargetTrackingConfigurations": { + "type": "list", + "member": { + "shape": "Sh" + } + }, + "PredefinedLoadMetricSpecification": { + "type": "structure", + "required": [ + "PredefinedLoadMetricType" + ], + "members": { + "PredefinedLoadMetricType": {}, + "ResourceLabel": {} + } + }, + "CustomizedLoadMetricSpecification": { + "type": "structure", + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "members": { + "MetricName": {}, + "Namespace": {}, + "Dimensions": { + "shape": "So" + }, + "Statistic": {}, + "Unit": {} + } + }, + "ScheduledActionBufferTime": { + "type": "integer" + }, + "PredictiveScalingMaxCapacityBehavior": {}, + "PredictiveScalingMaxCapacityBuffer": { + "type": "integer" + }, + "PredictiveScalingMode": {}, + "ScalingPolicyUpdateBehavior": {}, + "DisableDynamicScaling": { + "type": "boolean" + } + } + } + }, + "Sh": { + "type": "structure", + "required": [ + "TargetValue" + ], + "members": { + "PredefinedScalingMetricSpecification": { + "type": "structure", + "required": [ + "PredefinedScalingMetricType" + ], + "members": { + "PredefinedScalingMetricType": {}, + "ResourceLabel": {} + } + }, + "CustomizedScalingMetricSpecification": { + "type": "structure", + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "members": { + "MetricName": {}, + "Namespace": {}, + "Dimensions": { + "shape": "So" + }, + "Statistic": {}, + "Unit": {} + } + }, + "TargetValue": { + "type": "double" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleOutCooldown": { + "type": "integer" + }, + "ScaleInCooldown": { + "type": "integer" + }, + "EstimatedInstanceWarmup": { + "type": "integer" + } + } + }, + "So": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..5677bd8e4a2d9309fc734f7ee5ce968405a5144f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/autoscaling-plans-2018-01-06.paginators.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.min.json new file mode 100644 index 0000000000000000000000000000000000000000..62368674323246f31fe0f03722dff50462829db5 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.min.json @@ -0,0 +1,2094 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-11-15", + "endpointPrefix": "backup", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "AWS Backup", + "serviceId": "Backup", + "signatureVersion": "v4", + "uid": "backup-2018-11-15" + }, + "operations": { + "CreateBackupPlan": { + "http": { + "method": "PUT", + "requestUri": "/backup/plans/" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlan" + ], + "members": { + "BackupPlan": { + "shape": "S2" + }, + "BackupPlanTags": { + "shape": "Sc" + }, + "CreatorRequestId": {} + } + }, + "output": { + "type": "structure", + "members": { + "BackupPlanId": {}, + "BackupPlanArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "VersionId": {}, + "AdvancedBackupSettings": { + "shape": "Sj" + } + } + }, + "idempotent": true + }, + "CreateBackupSelection": { + "http": { + "method": "PUT", + "requestUri": "/backup/plans/{backupPlanId}/selections/" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId", + "BackupSelection" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + }, + "BackupSelection": { + "shape": "St" + }, + "CreatorRequestId": {} + } + }, + "output": { + "type": "structure", + "members": { + "SelectionId": {}, + "BackupPlanId": {}, + "CreationDate": { + "type": "timestamp" + } + } + }, + "idempotent": true + }, + "CreateBackupVault": { + "http": { + "method": "PUT", + "requestUri": "/backup-vaults/{backupVaultName}" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "BackupVaultTags": { + "shape": "Sc" + }, + "EncryptionKeyArn": {}, + "CreatorRequestId": {} + } + }, + "output": { + "type": "structure", + "members": { + "BackupVaultName": {}, + "BackupVaultArn": {}, + "CreationDate": { + "type": "timestamp" + } + } + }, + "idempotent": true + }, + "DeleteBackupPlan": { + "http": { + "method": "DELETE", + "requestUri": "/backup/plans/{backupPlanId}" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupPlanId": {}, + "BackupPlanArn": {}, + "DeletionDate": { + "type": "timestamp" + }, + "VersionId": {} + } + } + }, + "DeleteBackupSelection": { + "http": { + "method": "DELETE", + "requestUri": "/backup/plans/{backupPlanId}/selections/{selectionId}" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId", + "SelectionId" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + }, + "SelectionId": { + "location": "uri", + "locationName": "selectionId" + } + } + } + }, + "DeleteBackupVault": { + "http": { + "method": "DELETE", + "requestUri": "/backup-vaults/{backupVaultName}" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + } + } + } + }, + "DeleteBackupVaultAccessPolicy": { + "http": { + "method": "DELETE", + "requestUri": "/backup-vaults/{backupVaultName}/access-policy" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + } + } + }, + "idempotent": true + }, + "DeleteBackupVaultNotifications": { + "http": { + "method": "DELETE", + "requestUri": "/backup-vaults/{backupVaultName}/notification-configuration" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + } + } + }, + "idempotent": true + }, + "DeleteRecoveryPoint": { + "http": { + "method": "DELETE", + "requestUri": "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName", + "RecoveryPointArn" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "RecoveryPointArn": { + "location": "uri", + "locationName": "recoveryPointArn" + } + } + }, + "idempotent": true + }, + "DescribeBackupJob": { + "http": { + "method": "GET", + "requestUri": "/backup-jobs/{backupJobId}" + }, + "input": { + "type": "structure", + "required": [ + "BackupJobId" + ], + "members": { + "BackupJobId": { + "location": "uri", + "locationName": "backupJobId" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccountId": {}, + "BackupJobId": {}, + "BackupVaultName": {}, + "BackupVaultArn": {}, + "RecoveryPointArn": {}, + "ResourceArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "CompletionDate": { + "type": "timestamp" + }, + "State": {}, + "StatusMessage": {}, + "PercentDone": {}, + "BackupSizeInBytes": { + "type": "long" + }, + "IamRoleArn": {}, + "CreatedBy": { + "shape": "S1g" + }, + "ResourceType": {}, + "BytesTransferred": { + "type": "long" + }, + "ExpectedCompletionDate": { + "type": "timestamp" + }, + "StartBy": { + "type": "timestamp" + }, + "BackupOptions": { + "shape": "Sm" + }, + "BackupType": {} + } + }, + "idempotent": true + }, + "DescribeBackupVault": { + "http": { + "method": "GET", + "requestUri": "/backup-vaults/{backupVaultName}" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupVaultName": {}, + "BackupVaultArn": {}, + "EncryptionKeyArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "CreatorRequestId": {}, + "NumberOfRecoveryPoints": { + "type": "long" + } + } + }, + "idempotent": true + }, + "DescribeCopyJob": { + "http": { + "method": "GET", + "requestUri": "/copy-jobs/{copyJobId}" + }, + "input": { + "type": "structure", + "required": [ + "CopyJobId" + ], + "members": { + "CopyJobId": { + "location": "uri", + "locationName": "copyJobId" + } + } + }, + "output": { + "type": "structure", + "members": { + "CopyJob": { + "shape": "S1m" + } + } + }, + "idempotent": true + }, + "DescribeGlobalSettings": { + "http": { + "method": "GET", + "requestUri": "/global-settings" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "GlobalSettings": { + "shape": "S1q" + }, + "LastUpdateTime": { + "type": "timestamp" + } + } + } + }, + "DescribeProtectedResource": { + "http": { + "method": "GET", + "requestUri": "/resources/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "ResourceArn": {}, + "ResourceType": {}, + "LastBackupTime": { + "type": "timestamp" + } + } + }, + "idempotent": true + }, + "DescribeRecoveryPoint": { + "http": { + "method": "GET", + "requestUri": "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName", + "RecoveryPointArn" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "RecoveryPointArn": { + "location": "uri", + "locationName": "recoveryPointArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "RecoveryPointArn": {}, + "BackupVaultName": {}, + "BackupVaultArn": {}, + "SourceBackupVaultArn": {}, + "ResourceArn": {}, + "ResourceType": {}, + "CreatedBy": { + "shape": "S1g" + }, + "IamRoleArn": {}, + "Status": {}, + "CreationDate": { + "type": "timestamp" + }, + "CompletionDate": { + "type": "timestamp" + }, + "BackupSizeInBytes": { + "type": "long" + }, + "CalculatedLifecycle": { + "shape": "S1y" + }, + "Lifecycle": { + "shape": "Sa" + }, + "EncryptionKeyArn": {}, + "IsEncrypted": { + "type": "boolean" + }, + "StorageClass": {}, + "LastRestoreTime": { + "type": "timestamp" + } + } + }, + "idempotent": true + }, + "DescribeRegionSettings": { + "http": { + "method": "GET", + "requestUri": "/account-settings" + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "ResourceTypeOptInPreference": { + "shape": "S23" + } + } + } + }, + "DescribeRestoreJob": { + "http": { + "method": "GET", + "requestUri": "/restore-jobs/{restoreJobId}" + }, + "input": { + "type": "structure", + "required": [ + "RestoreJobId" + ], + "members": { + "RestoreJobId": { + "location": "uri", + "locationName": "restoreJobId" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccountId": {}, + "RestoreJobId": {}, + "RecoveryPointArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "CompletionDate": { + "type": "timestamp" + }, + "Status": {}, + "StatusMessage": {}, + "PercentDone": {}, + "BackupSizeInBytes": { + "type": "long" + }, + "IamRoleArn": {}, + "ExpectedCompletionTimeMinutes": { + "type": "long" + }, + "CreatedResourceArn": {}, + "ResourceType": {} + } + }, + "idempotent": true + }, + "DisassociateRecoveryPoint": { + "http": { + "requestUri": "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}/disassociate" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName", + "RecoveryPointArn" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "RecoveryPointArn": { + "location": "uri", + "locationName": "recoveryPointArn" + } + } + } + }, + "ExportBackupPlanTemplate": { + "http": { + "method": "GET", + "requestUri": "/backup/plans/{backupPlanId}/toTemplate/" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupPlanTemplateJson": {} + } + } + }, + "GetBackupPlan": { + "http": { + "method": "GET", + "requestUri": "/backup/plans/{backupPlanId}/" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + }, + "VersionId": { + "location": "querystring", + "locationName": "versionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupPlan": { + "shape": "S2e" + }, + "BackupPlanId": {}, + "BackupPlanArn": {}, + "VersionId": {}, + "CreatorRequestId": {}, + "CreationDate": { + "type": "timestamp" + }, + "DeletionDate": { + "type": "timestamp" + }, + "LastExecutionDate": { + "type": "timestamp" + }, + "AdvancedBackupSettings": { + "shape": "Sj" + } + } + }, + "idempotent": true + }, + "GetBackupPlanFromJSON": { + "http": { + "requestUri": "/backup/template/json/toPlan" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanTemplateJson" + ], + "members": { + "BackupPlanTemplateJson": {} + } + }, + "output": { + "type": "structure", + "members": { + "BackupPlan": { + "shape": "S2e" + } + } + } + }, + "GetBackupPlanFromTemplate": { + "http": { + "method": "GET", + "requestUri": "/backup/template/plans/{templateId}/toPlan" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanTemplateId" + ], + "members": { + "BackupPlanTemplateId": { + "location": "uri", + "locationName": "templateId" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupPlanDocument": { + "shape": "S2e" + } + } + } + }, + "GetBackupSelection": { + "http": { + "method": "GET", + "requestUri": "/backup/plans/{backupPlanId}/selections/{selectionId}" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId", + "SelectionId" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + }, + "SelectionId": { + "location": "uri", + "locationName": "selectionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupSelection": { + "shape": "St" + }, + "SelectionId": {}, + "BackupPlanId": {}, + "CreationDate": { + "type": "timestamp" + }, + "CreatorRequestId": {} + } + }, + "idempotent": true + }, + "GetBackupVaultAccessPolicy": { + "http": { + "method": "GET", + "requestUri": "/backup-vaults/{backupVaultName}/access-policy" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupVaultName": {}, + "BackupVaultArn": {}, + "Policy": {} + } + }, + "idempotent": true + }, + "GetBackupVaultNotifications": { + "http": { + "method": "GET", + "requestUri": "/backup-vaults/{backupVaultName}/notification-configuration" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupVaultName": {}, + "BackupVaultArn": {}, + "SNSTopicArn": {}, + "BackupVaultEvents": { + "shape": "S2s" + } + } + }, + "idempotent": true + }, + "GetRecoveryPointRestoreMetadata": { + "http": { + "method": "GET", + "requestUri": "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}/restore-metadata" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName", + "RecoveryPointArn" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "RecoveryPointArn": { + "location": "uri", + "locationName": "recoveryPointArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupVaultArn": {}, + "RecoveryPointArn": {}, + "RestoreMetadata": { + "shape": "S2w" + } + } + }, + "idempotent": true + }, + "GetSupportedResourceTypes": { + "http": { + "method": "GET", + "requestUri": "/supported-resource-types" + }, + "output": { + "type": "structure", + "members": { + "ResourceTypes": { + "type": "list", + "member": {} + } + } + } + }, + "ListBackupJobs": { + "http": { + "method": "GET", + "requestUri": "/backup-jobs/" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "ByResourceArn": { + "location": "querystring", + "locationName": "resourceArn" + }, + "ByState": { + "location": "querystring", + "locationName": "state" + }, + "ByBackupVaultName": { + "location": "querystring", + "locationName": "backupVaultName" + }, + "ByCreatedBefore": { + "location": "querystring", + "locationName": "createdBefore", + "type": "timestamp" + }, + "ByCreatedAfter": { + "location": "querystring", + "locationName": "createdAfter", + "type": "timestamp" + }, + "ByResourceType": { + "location": "querystring", + "locationName": "resourceType" + }, + "ByAccountId": { + "location": "querystring", + "locationName": "accountId" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupJobs": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AccountId": {}, + "BackupJobId": {}, + "BackupVaultName": {}, + "BackupVaultArn": {}, + "RecoveryPointArn": {}, + "ResourceArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "CompletionDate": { + "type": "timestamp" + }, + "State": {}, + "StatusMessage": {}, + "PercentDone": {}, + "BackupSizeInBytes": { + "type": "long" + }, + "IamRoleArn": {}, + "CreatedBy": { + "shape": "S1g" + }, + "ExpectedCompletionDate": { + "type": "timestamp" + }, + "StartBy": { + "type": "timestamp" + }, + "ResourceType": {}, + "BytesTransferred": { + "type": "long" + }, + "BackupOptions": { + "shape": "Sm" + }, + "BackupType": {} + } + } + }, + "NextToken": {} + } + }, + "idempotent": true + }, + "ListBackupPlanTemplates": { + "http": { + "method": "GET", + "requestUri": "/backup/template/plans" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "BackupPlanTemplatesList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "BackupPlanTemplateId": {}, + "BackupPlanTemplateName": {} + } + } + } + } + } + }, + "ListBackupPlanVersions": { + "http": { + "method": "GET", + "requestUri": "/backup/plans/{backupPlanId}/versions/" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "BackupPlanVersionsList": { + "type": "list", + "member": { + "shape": "S3d" + } + } + } + }, + "idempotent": true + }, + "ListBackupPlans": { + "http": { + "method": "GET", + "requestUri": "/backup/plans/" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "IncludeDeleted": { + "location": "querystring", + "locationName": "includeDeleted", + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "BackupPlansList": { + "type": "list", + "member": { + "shape": "S3d" + } + } + } + }, + "idempotent": true + }, + "ListBackupSelections": { + "http": { + "method": "GET", + "requestUri": "/backup/plans/{backupPlanId}/selections/" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "BackupSelectionsList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SelectionId": {}, + "SelectionName": {}, + "BackupPlanId": {}, + "CreationDate": { + "type": "timestamp" + }, + "CreatorRequestId": {}, + "IamRoleArn": {} + } + } + } + } + }, + "idempotent": true + }, + "ListBackupVaults": { + "http": { + "method": "GET", + "requestUri": "/backup-vaults/" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupVaultList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "BackupVaultName": {}, + "BackupVaultArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "EncryptionKeyArn": {}, + "CreatorRequestId": {}, + "NumberOfRecoveryPoints": { + "type": "long" + } + } + } + }, + "NextToken": {} + } + }, + "idempotent": true + }, + "ListCopyJobs": { + "http": { + "method": "GET", + "requestUri": "/copy-jobs/" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "ByResourceArn": { + "location": "querystring", + "locationName": "resourceArn" + }, + "ByState": { + "location": "querystring", + "locationName": "state" + }, + "ByCreatedBefore": { + "location": "querystring", + "locationName": "createdBefore", + "type": "timestamp" + }, + "ByCreatedAfter": { + "location": "querystring", + "locationName": "createdAfter", + "type": "timestamp" + }, + "ByResourceType": { + "location": "querystring", + "locationName": "resourceType" + }, + "ByDestinationVaultArn": { + "location": "querystring", + "locationName": "destinationVaultArn" + }, + "ByAccountId": { + "location": "querystring", + "locationName": "accountId" + } + } + }, + "output": { + "type": "structure", + "members": { + "CopyJobs": { + "type": "list", + "member": { + "shape": "S1m" + } + }, + "NextToken": {} + } + } + }, + "ListProtectedResources": { + "http": { + "method": "GET", + "requestUri": "/resources/" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Results": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceArn": {}, + "ResourceType": {}, + "LastBackupTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + }, + "idempotent": true + }, + "ListRecoveryPointsByBackupVault": { + "http": { + "method": "GET", + "requestUri": "/backup-vaults/{backupVaultName}/recovery-points/" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "ByResourceArn": { + "location": "querystring", + "locationName": "resourceArn" + }, + "ByResourceType": { + "location": "querystring", + "locationName": "resourceType" + }, + "ByBackupPlanId": { + "location": "querystring", + "locationName": "backupPlanId" + }, + "ByCreatedBefore": { + "location": "querystring", + "locationName": "createdBefore", + "type": "timestamp" + }, + "ByCreatedAfter": { + "location": "querystring", + "locationName": "createdAfter", + "type": "timestamp" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "RecoveryPoints": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RecoveryPointArn": {}, + "BackupVaultName": {}, + "BackupVaultArn": {}, + "SourceBackupVaultArn": {}, + "ResourceArn": {}, + "ResourceType": {}, + "CreatedBy": { + "shape": "S1g" + }, + "IamRoleArn": {}, + "Status": {}, + "CreationDate": { + "type": "timestamp" + }, + "CompletionDate": { + "type": "timestamp" + }, + "BackupSizeInBytes": { + "type": "long" + }, + "CalculatedLifecycle": { + "shape": "S1y" + }, + "Lifecycle": { + "shape": "Sa" + }, + "EncryptionKeyArn": {}, + "IsEncrypted": { + "type": "boolean" + }, + "LastRestoreTime": { + "type": "timestamp" + } + } + } + } + } + }, + "idempotent": true + }, + "ListRecoveryPointsByResource": { + "http": { + "method": "GET", + "requestUri": "/resources/{resourceArn}/recovery-points/" + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "RecoveryPoints": { + "type": "list", + "member": { + "type": "structure", + "members": { + "RecoveryPointArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "Status": {}, + "EncryptionKeyArn": {}, + "BackupSizeBytes": { + "type": "long" + }, + "BackupVaultName": {} + } + } + } + } + }, + "idempotent": true + }, + "ListRestoreJobs": { + "http": { + "method": "GET", + "requestUri": "/restore-jobs/" + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + }, + "ByAccountId": { + "location": "querystring", + "locationName": "accountId" + }, + "ByCreatedBefore": { + "location": "querystring", + "locationName": "createdBefore", + "type": "timestamp" + }, + "ByCreatedAfter": { + "location": "querystring", + "locationName": "createdAfter", + "type": "timestamp" + }, + "ByStatus": { + "location": "querystring", + "locationName": "status" + } + } + }, + "output": { + "type": "structure", + "members": { + "RestoreJobs": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AccountId": {}, + "RestoreJobId": {}, + "RecoveryPointArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "CompletionDate": { + "type": "timestamp" + }, + "Status": {}, + "StatusMessage": {}, + "PercentDone": {}, + "BackupSizeInBytes": { + "type": "long" + }, + "IamRoleArn": {}, + "ExpectedCompletionTimeMinutes": { + "type": "long" + }, + "CreatedResourceArn": {}, + "ResourceType": {} + } + } + }, + "NextToken": {} + } + }, + "idempotent": true + }, + "ListTags": { + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}/" + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "NextToken": { + "location": "querystring", + "locationName": "nextToken" + }, + "MaxResults": { + "location": "querystring", + "locationName": "maxResults", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "NextToken": {}, + "Tags": { + "shape": "Sc" + } + } + }, + "idempotent": true + }, + "PutBackupVaultAccessPolicy": { + "http": { + "method": "PUT", + "requestUri": "/backup-vaults/{backupVaultName}/access-policy" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "Policy": {} + } + }, + "idempotent": true + }, + "PutBackupVaultNotifications": { + "http": { + "method": "PUT", + "requestUri": "/backup-vaults/{backupVaultName}/notification-configuration" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName", + "SNSTopicArn", + "BackupVaultEvents" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "SNSTopicArn": {}, + "BackupVaultEvents": { + "shape": "S2s" + } + } + }, + "idempotent": true + }, + "StartBackupJob": { + "http": { + "method": "PUT", + "requestUri": "/backup-jobs" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName", + "ResourceArn", + "IamRoleArn" + ], + "members": { + "BackupVaultName": {}, + "ResourceArn": {}, + "IamRoleArn": {}, + "IdempotencyToken": {}, + "StartWindowMinutes": { + "type": "long" + }, + "CompleteWindowMinutes": { + "type": "long" + }, + "Lifecycle": { + "shape": "Sa" + }, + "RecoveryPointTags": { + "shape": "Sc" + }, + "BackupOptions": { + "shape": "Sm" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupJobId": {}, + "RecoveryPointArn": {}, + "CreationDate": { + "type": "timestamp" + } + } + }, + "idempotent": true + }, + "StartCopyJob": { + "http": { + "method": "PUT", + "requestUri": "/copy-jobs" + }, + "input": { + "type": "structure", + "required": [ + "RecoveryPointArn", + "SourceBackupVaultName", + "DestinationBackupVaultArn", + "IamRoleArn" + ], + "members": { + "RecoveryPointArn": {}, + "SourceBackupVaultName": {}, + "DestinationBackupVaultArn": {}, + "IamRoleArn": {}, + "IdempotencyToken": {}, + "Lifecycle": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": { + "CopyJobId": {}, + "CreationDate": { + "type": "timestamp" + } + } + }, + "idempotent": true + }, + "StartRestoreJob": { + "http": { + "method": "PUT", + "requestUri": "/restore-jobs" + }, + "input": { + "type": "structure", + "required": [ + "RecoveryPointArn", + "Metadata", + "IamRoleArn" + ], + "members": { + "RecoveryPointArn": {}, + "Metadata": { + "shape": "S2w" + }, + "IamRoleArn": {}, + "IdempotencyToken": {}, + "ResourceType": {} + } + }, + "output": { + "type": "structure", + "members": { + "RestoreJobId": {} + } + }, + "idempotent": true + }, + "StopBackupJob": { + "http": { + "requestUri": "/backup-jobs/{backupJobId}" + }, + "input": { + "type": "structure", + "required": [ + "BackupJobId" + ], + "members": { + "BackupJobId": { + "location": "uri", + "locationName": "backupJobId" + } + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "Tags" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "Tags": { + "shape": "Sc" + } + } + }, + "idempotent": true + }, + "UntagResource": { + "http": { + "requestUri": "/untag/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "ResourceArn", + "TagKeyList" + ], + "members": { + "ResourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "TagKeyList": { + "type": "list", + "member": {}, + "sensitive": true + } + } + }, + "idempotent": true + }, + "UpdateBackupPlan": { + "http": { + "requestUri": "/backup/plans/{backupPlanId}" + }, + "input": { + "type": "structure", + "required": [ + "BackupPlanId", + "BackupPlan" + ], + "members": { + "BackupPlanId": { + "location": "uri", + "locationName": "backupPlanId" + }, + "BackupPlan": { + "shape": "S2" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupPlanId": {}, + "BackupPlanArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "VersionId": {}, + "AdvancedBackupSettings": { + "shape": "Sj" + } + } + }, + "idempotent": true + }, + "UpdateGlobalSettings": { + "http": { + "method": "PUT", + "requestUri": "/global-settings" + }, + "input": { + "type": "structure", + "members": { + "GlobalSettings": { + "shape": "S1q" + } + } + } + }, + "UpdateRecoveryPointLifecycle": { + "http": { + "requestUri": "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}" + }, + "input": { + "type": "structure", + "required": [ + "BackupVaultName", + "RecoveryPointArn" + ], + "members": { + "BackupVaultName": { + "location": "uri", + "locationName": "backupVaultName" + }, + "RecoveryPointArn": { + "location": "uri", + "locationName": "recoveryPointArn" + }, + "Lifecycle": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": { + "BackupVaultArn": {}, + "RecoveryPointArn": {}, + "Lifecycle": { + "shape": "Sa" + }, + "CalculatedLifecycle": { + "shape": "S1y" + } + } + }, + "idempotent": true + }, + "UpdateRegionSettings": { + "http": { + "method": "PUT", + "requestUri": "/account-settings" + }, + "input": { + "type": "structure", + "members": { + "ResourceTypeOptInPreference": { + "shape": "S23" + } + } + } + } + }, + "shapes": { + "S2": { + "type": "structure", + "required": [ + "BackupPlanName", + "Rules" + ], + "members": { + "BackupPlanName": {}, + "Rules": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "RuleName", + "TargetBackupVaultName" + ], + "members": { + "RuleName": {}, + "TargetBackupVaultName": {}, + "ScheduleExpression": {}, + "StartWindowMinutes": { + "type": "long" + }, + "CompletionWindowMinutes": { + "type": "long" + }, + "Lifecycle": { + "shape": "Sa" + }, + "RecoveryPointTags": { + "shape": "Sc" + }, + "CopyActions": { + "shape": "Sf" + }, + "EnableContinuousBackup": { + "type": "boolean" + } + } + } + }, + "AdvancedBackupSettings": { + "shape": "Sj" + } + } + }, + "Sa": { + "type": "structure", + "members": { + "MoveToColdStorageAfterDays": { + "type": "long" + }, + "DeleteAfterDays": { + "type": "long" + } + } + }, + "Sc": { + "type": "map", + "key": {}, + "value": {}, + "sensitive": true + }, + "Sf": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "DestinationBackupVaultArn" + ], + "members": { + "Lifecycle": { + "shape": "Sa" + }, + "DestinationBackupVaultArn": {} + } + } + }, + "Sj": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ResourceType": {}, + "BackupOptions": { + "shape": "Sm" + } + } + } + }, + "Sm": { + "type": "map", + "key": {}, + "value": {} + }, + "St": { + "type": "structure", + "required": [ + "SelectionName", + "IamRoleArn" + ], + "members": { + "SelectionName": {}, + "IamRoleArn": {}, + "Resources": { + "type": "list", + "member": {} + }, + "ListOfTags": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ConditionType", + "ConditionKey", + "ConditionValue" + ], + "members": { + "ConditionType": {}, + "ConditionKey": {}, + "ConditionValue": {} + } + } + } + } + }, + "S1g": { + "type": "structure", + "members": { + "BackupPlanId": {}, + "BackupPlanArn": {}, + "BackupPlanVersion": {}, + "BackupRuleId": {} + } + }, + "S1m": { + "type": "structure", + "members": { + "AccountId": {}, + "CopyJobId": {}, + "SourceBackupVaultArn": {}, + "SourceRecoveryPointArn": {}, + "DestinationBackupVaultArn": {}, + "DestinationRecoveryPointArn": {}, + "ResourceArn": {}, + "CreationDate": { + "type": "timestamp" + }, + "CompletionDate": { + "type": "timestamp" + }, + "State": {}, + "StatusMessage": {}, + "BackupSizeInBytes": { + "type": "long" + }, + "IamRoleArn": {}, + "CreatedBy": { + "shape": "S1g" + }, + "ResourceType": {} + } + }, + "S1q": { + "type": "map", + "key": {}, + "value": {} + }, + "S1y": { + "type": "structure", + "members": { + "MoveToColdStorageAt": { + "type": "timestamp" + }, + "DeleteAt": { + "type": "timestamp" + } + } + }, + "S23": { + "type": "map", + "key": {}, + "value": { + "type": "boolean" + } + }, + "S2e": { + "type": "structure", + "required": [ + "BackupPlanName", + "Rules" + ], + "members": { + "BackupPlanName": {}, + "Rules": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "RuleName", + "TargetBackupVaultName" + ], + "members": { + "RuleName": {}, + "TargetBackupVaultName": {}, + "ScheduleExpression": {}, + "StartWindowMinutes": { + "type": "long" + }, + "CompletionWindowMinutes": { + "type": "long" + }, + "Lifecycle": { + "shape": "Sa" + }, + "RecoveryPointTags": { + "shape": "Sc" + }, + "RuleId": {}, + "CopyActions": { + "shape": "Sf" + }, + "EnableContinuousBackup": { + "type": "boolean" + } + } + } + }, + "AdvancedBackupSettings": { + "shape": "Sj" + } + } + }, + "S2s": { + "type": "list", + "member": {} + }, + "S2w": { + "type": "map", + "key": {}, + "value": {}, + "sensitive": true + }, + "S3d": { + "type": "structure", + "members": { + "BackupPlanArn": {}, + "BackupPlanId": {}, + "CreationDate": { + "type": "timestamp" + }, + "DeletionDate": { + "type": "timestamp" + }, + "VersionId": {}, + "BackupPlanName": {}, + "CreatorRequestId": {}, + "LastExecutionDate": { + "type": "timestamp" + }, + "AdvancedBackupSettings": { + "shape": "Sj" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..6996abbd1b721078267ede3c31523d3f4840ccfa --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/backup-2018-11-15.paginators.json @@ -0,0 +1,64 @@ +{ + "pagination": { + "ListBackupJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListBackupPlanTemplates": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListBackupPlanVersions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListBackupPlans": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListBackupSelections": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListBackupVaults": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListCopyJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListProtectedResources": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListRecoveryPointsByBackupVault": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListRecoveryPointsByResource": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListRestoreJobs": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListTags": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..87bc683b6fa19d6213c26afdb2de04a9bddf36ca --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.examples.json @@ -0,0 +1,687 @@ +{ + "version": "1.0", + "examples": { + "CancelJob": [ + { + "input": { + "jobId": "1d828f65-7a4d-42e8-996d-3b900ed59dc4", + "reason": "Cancelling job." + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example cancels a job with the specified job ID.", + "id": "to-cancel-a-job-1481152314733", + "title": "To cancel a job" + } + ], + "CreateComputeEnvironment": [ + { + "input": { + "type": "MANAGED", + "computeEnvironmentName": "C4OnDemand", + "computeResources": { + "type": "EC2", + "desiredvCpus": 48, + "ec2KeyPair": "id_rsa", + "instanceRole": "ecsInstanceRole", + "instanceTypes": [ + "c4.large", + "c4.xlarge", + "c4.2xlarge", + "c4.4xlarge", + "c4.8xlarge" + ], + "maxvCpus": 128, + "minvCpus": 0, + "securityGroupIds": [ + "sg-cf5093b2" + ], + "subnets": [ + "subnet-220c0e0a", + "subnet-1a95556d", + "subnet-978f6dce" + ], + "tags": { + "Name": "Batch Instance - C4OnDemand" + } + }, + "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole", + "state": "ENABLED" + }, + "output": { + "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand", + "computeEnvironmentName": "C4OnDemand" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates a managed compute environment with specific C4 instance types that are launched on demand. The compute environment is called C4OnDemand.", + "id": "to-create-a-managed-ec2-compute-environment-1481152600017", + "title": "To create a managed EC2 compute environment" + }, + { + "input": { + "type": "MANAGED", + "computeEnvironmentName": "M4Spot", + "computeResources": { + "type": "SPOT", + "bidPercentage": 20, + "desiredvCpus": 4, + "ec2KeyPair": "id_rsa", + "instanceRole": "ecsInstanceRole", + "instanceTypes": [ + "m4" + ], + "maxvCpus": 128, + "minvCpus": 0, + "securityGroupIds": [ + "sg-cf5093b2" + ], + "spotIamFleetRole": "arn:aws:iam::012345678910:role/aws-ec2-spot-fleet-role", + "subnets": [ + "subnet-220c0e0a", + "subnet-1a95556d", + "subnet-978f6dce" + ], + "tags": { + "Name": "Batch Instance - M4Spot" + } + }, + "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole", + "state": "ENABLED" + }, + "output": { + "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/M4Spot", + "computeEnvironmentName": "M4Spot" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates a managed compute environment with the M4 instance type that is launched when the Spot bid price is at or below 20% of the On-Demand price for the instance type. The compute environment is called M4Spot.", + "id": "to-create-a-managed-ec2-spot-compute-environment-1481152844190", + "title": "To create a managed EC2 Spot compute environment" + } + ], + "CreateJobQueue": [ + { + "input": { + "computeEnvironmentOrder": [ + { + "computeEnvironment": "M4Spot", + "order": 1 + } + ], + "jobQueueName": "LowPriority", + "priority": 1, + "state": "ENABLED" + }, + "output": { + "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/LowPriority", + "jobQueueName": "LowPriority" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates a job queue called LowPriority that uses the M4Spot compute environment.", + "id": "to-create-a-job-queue-with-a-single-compute-environment-1481152967946", + "title": "To create a job queue with a single compute environment" + }, + { + "input": { + "computeEnvironmentOrder": [ + { + "computeEnvironment": "C4OnDemand", + "order": 1 + }, + { + "computeEnvironment": "M4Spot", + "order": 2 + } + ], + "jobQueueName": "HighPriority", + "priority": 10, + "state": "ENABLED" + }, + "output": { + "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", + "jobQueueName": "HighPriority" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example creates a job queue called HighPriority that uses the C4OnDemand compute environment with an order of 1 and the M4Spot compute environment with an order of 2.", + "id": "to-create-a-job-queue-with-multiple-compute-environments-1481153027051", + "title": "To create a job queue with multiple compute environments" + } + ], + "DeleteComputeEnvironment": [ + { + "input": { + "computeEnvironment": "P2OnDemand" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the P2OnDemand compute environment.", + "id": "to-delete-a-compute-environment-1481153105644", + "title": "To delete a compute environment" + } + ], + "DeleteJobQueue": [ + { + "input": { + "jobQueue": "GPGPU" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deletes the GPGPU job queue.", + "id": "to-delete-a-job-queue-1481153508134", + "title": "To delete a job queue" + } + ], + "DeregisterJobDefinition": [ + { + "input": { + "jobDefinition": "sleep10" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example deregisters a job definition called sleep10.", + "id": "to-deregister-a-job-definition-1481153579565", + "title": "To deregister a job definition" + } + ], + "DescribeComputeEnvironments": [ + { + "input": { + "computeEnvironments": [ + "P2OnDemand" + ] + }, + "output": { + "computeEnvironments": [ + { + "type": "MANAGED", + "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand", + "computeEnvironmentName": "P2OnDemand", + "computeResources": { + "type": "EC2", + "desiredvCpus": 48, + "ec2KeyPair": "id_rsa", + "instanceRole": "ecsInstanceRole", + "instanceTypes": [ + "p2" + ], + "maxvCpus": 128, + "minvCpus": 0, + "securityGroupIds": [ + "sg-cf5093b2" + ], + "subnets": [ + "subnet-220c0e0a", + "subnet-1a95556d", + "subnet-978f6dce" + ], + "tags": { + "Name": "Batch Instance - P2OnDemand" + } + }, + "ecsClusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/P2OnDemand_Batch_2c06f29d-d1fe-3a49-879d-42394c86effc", + "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole", + "state": "ENABLED", + "status": "VALID", + "statusReason": "ComputeEnvironment Healthy" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the P2OnDemand compute environment.", + "id": "to-describe-a-compute-environment-1481153713334", + "title": "To describe a compute environment" + } + ], + "DescribeJobDefinitions": [ + { + "input": { + "status": "ACTIVE" + }, + "output": { + "jobDefinitions": [ + { + "type": "container", + "containerProperties": { + "command": [ + "sleep", + "60" + ], + "environment": [ + + ], + "image": "busybox", + "memory": 128, + "mountPoints": [ + + ], + "ulimits": [ + + ], + "vcpus": 1, + "volumes": [ + + ] + }, + "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1", + "jobDefinitionName": "sleep60", + "revision": 1, + "status": "ACTIVE" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes all of your active job definitions.", + "id": "to-describe-active-job-definitions-1481153895831", + "title": "To describe active job definitions" + } + ], + "DescribeJobQueues": [ + { + "input": { + "jobQueues": [ + "HighPriority" + ] + }, + "output": { + "jobQueues": [ + { + "computeEnvironmentOrder": [ + { + "computeEnvironment": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand", + "order": 1 + } + ], + "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", + "jobQueueName": "HighPriority", + "priority": 1, + "state": "ENABLED", + "status": "VALID", + "statusReason": "JobQueue Healthy" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes the HighPriority job queue.", + "id": "to-describe-a-job-queue-1481153995804", + "title": "To describe a job queue" + } + ], + "DescribeJobs": [ + { + "input": { + "jobs": [ + "24fa2d7a-64c4-49d2-8b47-f8da4fbde8e9" + ] + }, + "output": { + "jobs": [ + { + "container": { + "command": [ + "sleep", + "60" + ], + "containerInstanceArn": "arn:aws:ecs:us-east-1:012345678910:container-instance/5406d7cd-58bd-4b8f-9936-48d7c6b1526c", + "environment": [ + + ], + "exitCode": 0, + "image": "busybox", + "memory": 128, + "mountPoints": [ + + ], + "ulimits": [ + + ], + "vcpus": 1, + "volumes": [ + + ] + }, + "createdAt": 1480460782010, + "dependsOn": [ + + ], + "jobDefinition": "sleep60", + "jobId": "24fa2d7a-64c4-49d2-8b47-f8da4fbde8e9", + "jobName": "example", + "jobQueue": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", + "parameters": { + }, + "startedAt": 1480460816500, + "status": "SUCCEEDED", + "stoppedAt": 1480460880699 + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example describes a job with the specified job ID.", + "id": "to-describe-a-specific-job-1481154090490", + "title": "To describe a specific job" + } + ], + "ListJobs": [ + { + "input": { + "jobQueue": "HighPriority" + }, + "output": { + "jobSummaryList": [ + { + "jobId": "e66ff5fd-a1ff-4640-b1a2-0b0a142f49bb", + "jobName": "example" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example lists the running jobs in the HighPriority job queue.", + "id": "to-list-running-jobs-1481154202164", + "title": "To list running jobs" + }, + { + "input": { + "jobQueue": "HighPriority", + "jobStatus": "SUBMITTED" + }, + "output": { + "jobSummaryList": [ + { + "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786", + "jobName": "example" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example lists jobs in the HighPriority job queue that are in the SUBMITTED job status.", + "id": "to-list-submitted-jobs-1481154251623", + "title": "To list submitted jobs" + } + ], + "ListTagsForResource": [ + { + "input": { + "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1" + }, + "output": { + "tags": { + "Department": "Engineering", + "Stage": "Alpha", + "User": "JaneDoe" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the ListTagsForResource action.", + "id": "listtagsforresource-example-1591293003710", + "title": "ListTagsForResource Example" + } + ], + "RegisterJobDefinition": [ + { + "input": { + "type": "container", + "containerProperties": { + "command": [ + "sleep", + "10" + ], + "image": "busybox", + "memory": 128, + "vcpus": 1 + }, + "jobDefinitionName": "sleep10" + }, + "output": { + "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep10:1", + "jobDefinitionName": "sleep10", + "revision": 1 + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example registers a job definition for a simple container job.", + "id": "to-register-a-job-definition-1481154325325", + "title": "To register a job definition" + }, + { + "input": { + "type": "container", + "containerProperties": { + "command": [ + "sleep", + "30" + ], + "image": "busybox", + "memory": 128, + "vcpus": 1 + }, + "jobDefinitionName": "sleep30", + "tags": { + "Department": "Engineering", + "User": "JaneDoe" + } + }, + "output": { + "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1", + "jobDefinitionName": "sleep30", + "revision": 1 + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the RegisterJobDefinition action, including tags.", + "id": "registerjobdefinition-with-tags-1591290509028", + "title": "RegisterJobDefinition with tags" + } + ], + "SubmitJob": [ + { + "input": { + "jobDefinition": "sleep60", + "jobName": "example", + "jobQueue": "HighPriority" + }, + "output": { + "jobId": "876da822-4198-45f2-a252-6cea32512ea8", + "jobName": "example" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example submits a simple container job called example to the HighPriority job queue.", + "id": "to-submit-a-job-to-a-queue-1481154481673", + "title": "To submit a job to a queue" + } + ], + "TagResource": [ + { + "input": { + "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1", + "tags": { + "Stage": "Alpha" + } + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the TagResource action.", + "id": "tagresource-example-1591291959952", + "title": "TagResource Example" + } + ], + "TerminateJob": [ + { + "input": { + "jobId": "61e743ed-35e4-48da-b2de-5c8333821c84", + "reason": "Terminating job." + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example terminates a job with the specified job ID.", + "id": "to-terminate-a-job-1481154558276", + "title": "To terminate a job" + } + ], + "UntagResource": [ + { + "input": { + "resourceArn": "arn:aws:batch:us-east-1:123456789012:job-definition/sleep30:1", + "tagKeys": [ + "Stage" + ] + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This demonstrates calling the UntagResource action.", + "id": "untagresource-example-1591292811042", + "title": "UntagResource Example" + } + ], + "UpdateComputeEnvironment": [ + { + "input": { + "computeEnvironment": "P2OnDemand", + "state": "DISABLED" + }, + "output": { + "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand", + "computeEnvironmentName": "P2OnDemand" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example disables the P2OnDemand compute environment so it can be deleted.", + "id": "to-update-a-compute-environment-1481154702731", + "title": "To update a compute environment" + } + ], + "UpdateJobQueue": [ + { + "input": { + "jobQueue": "GPGPU", + "state": "DISABLED" + }, + "output": { + "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/GPGPU", + "jobQueueName": "GPGPU" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "This example disables a job queue so that it can be deleted.", + "id": "to-update-a-job-queue-1481154806981", + "title": "To update a job queue" + } + ] + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.min.json new file mode 100644 index 0000000000000000000000000000000000000000..3c7861d8ae21e407209cac4a0f5a0f5f3eec936f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.min.json @@ -0,0 +1,1385 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-08-10", + "endpointPrefix": "batch", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceAbbreviation": "AWS Batch", + "serviceFullName": "AWS Batch", + "serviceId": "Batch", + "signatureVersion": "v4", + "uid": "batch-2016-08-10" + }, + "operations": { + "CancelJob": { + "http": { + "requestUri": "/v1/canceljob" + }, + "input": { + "type": "structure", + "required": [ + "jobId", + "reason" + ], + "members": { + "jobId": {}, + "reason": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateComputeEnvironment": { + "http": { + "requestUri": "/v1/createcomputeenvironment" + }, + "input": { + "type": "structure", + "required": [ + "computeEnvironmentName", + "type" + ], + "members": { + "computeEnvironmentName": {}, + "type": {}, + "state": {}, + "computeResources": { + "shape": "S7" + }, + "serviceRole": {}, + "tags": { + "shape": "Si" + } + } + }, + "output": { + "type": "structure", + "members": { + "computeEnvironmentName": {}, + "computeEnvironmentArn": {} + } + } + }, + "CreateJobQueue": { + "http": { + "requestUri": "/v1/createjobqueue" + }, + "input": { + "type": "structure", + "required": [ + "jobQueueName", + "priority", + "computeEnvironmentOrder" + ], + "members": { + "jobQueueName": {}, + "state": {}, + "priority": { + "type": "integer" + }, + "computeEnvironmentOrder": { + "shape": "So" + }, + "tags": { + "shape": "Si" + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobQueueName", + "jobQueueArn" + ], + "members": { + "jobQueueName": {}, + "jobQueueArn": {} + } + } + }, + "DeleteComputeEnvironment": { + "http": { + "requestUri": "/v1/deletecomputeenvironment" + }, + "input": { + "type": "structure", + "required": [ + "computeEnvironment" + ], + "members": { + "computeEnvironment": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteJobQueue": { + "http": { + "requestUri": "/v1/deletejobqueue" + }, + "input": { + "type": "structure", + "required": [ + "jobQueue" + ], + "members": { + "jobQueue": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeregisterJobDefinition": { + "http": { + "requestUri": "/v1/deregisterjobdefinition" + }, + "input": { + "type": "structure", + "required": [ + "jobDefinition" + ], + "members": { + "jobDefinition": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeComputeEnvironments": { + "http": { + "requestUri": "/v1/describecomputeenvironments" + }, + "input": { + "type": "structure", + "members": { + "computeEnvironments": { + "shape": "Sb" + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "computeEnvironments": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "computeEnvironmentName", + "computeEnvironmentArn", + "ecsClusterArn" + ], + "members": { + "computeEnvironmentName": {}, + "computeEnvironmentArn": {}, + "ecsClusterArn": {}, + "tags": { + "shape": "Si" + }, + "type": {}, + "state": {}, + "status": {}, + "statusReason": {}, + "computeResources": { + "shape": "S7" + }, + "serviceRole": {} + } + } + }, + "nextToken": {} + } + } + }, + "DescribeJobDefinitions": { + "http": { + "requestUri": "/v1/describejobdefinitions" + }, + "input": { + "type": "structure", + "members": { + "jobDefinitions": { + "shape": "Sb" + }, + "maxResults": { + "type": "integer" + }, + "jobDefinitionName": {}, + "status": {}, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "jobDefinitions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "jobDefinitionName", + "jobDefinitionArn", + "revision", + "type" + ], + "members": { + "jobDefinitionName": {}, + "jobDefinitionArn": {}, + "revision": { + "type": "integer" + }, + "status": {}, + "type": {}, + "parameters": { + "shape": "S16" + }, + "retryStrategy": { + "shape": "S17" + }, + "containerProperties": { + "shape": "S1b" + }, + "timeout": { + "shape": "S28" + }, + "nodeProperties": { + "shape": "S29" + }, + "tags": { + "shape": "Si" + }, + "propagateTags": { + "type": "boolean" + }, + "platformCapabilities": { + "shape": "S2c" + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeJobQueues": { + "http": { + "requestUri": "/v1/describejobqueues" + }, + "input": { + "type": "structure", + "members": { + "jobQueues": { + "shape": "Sb" + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "jobQueues": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "jobQueueName", + "jobQueueArn", + "state", + "priority", + "computeEnvironmentOrder" + ], + "members": { + "jobQueueName": {}, + "jobQueueArn": {}, + "state": {}, + "status": {}, + "statusReason": {}, + "priority": { + "type": "integer" + }, + "computeEnvironmentOrder": { + "shape": "So" + }, + "tags": { + "shape": "Si" + } + } + } + }, + "nextToken": {} + } + } + }, + "DescribeJobs": { + "http": { + "requestUri": "/v1/describejobs" + }, + "input": { + "type": "structure", + "required": [ + "jobs" + ], + "members": { + "jobs": { + "shape": "Sb" + } + } + }, + "output": { + "type": "structure", + "members": { + "jobs": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "jobName", + "jobId", + "jobQueue", + "status", + "startedAt", + "jobDefinition" + ], + "members": { + "jobArn": {}, + "jobName": {}, + "jobId": {}, + "jobQueue": {}, + "status": {}, + "attempts": { + "type": "list", + "member": { + "type": "structure", + "members": { + "container": { + "type": "structure", + "members": { + "containerInstanceArn": {}, + "taskArn": {}, + "exitCode": { + "type": "integer" + }, + "reason": {}, + "logStreamName": {}, + "networkInterfaces": { + "shape": "S2r" + } + } + }, + "startedAt": { + "type": "long" + }, + "stoppedAt": { + "type": "long" + }, + "statusReason": {} + } + } + }, + "statusReason": {}, + "createdAt": { + "type": "long" + }, + "retryStrategy": { + "shape": "S17" + }, + "startedAt": { + "type": "long" + }, + "stoppedAt": { + "type": "long" + }, + "dependsOn": { + "shape": "S2u" + }, + "jobDefinition": {}, + "parameters": { + "shape": "S16" + }, + "container": { + "type": "structure", + "members": { + "image": {}, + "vcpus": { + "type": "integer" + }, + "memory": { + "type": "integer" + }, + "command": { + "shape": "Sb" + }, + "jobRoleArn": {}, + "executionRoleArn": {}, + "volumes": { + "shape": "S1c" + }, + "environment": { + "shape": "S1j" + }, + "mountPoints": { + "shape": "S1l" + }, + "readonlyRootFilesystem": { + "type": "boolean" + }, + "ulimits": { + "shape": "S1o" + }, + "privileged": { + "type": "boolean" + }, + "user": {}, + "exitCode": { + "type": "integer" + }, + "reason": {}, + "containerInstanceArn": {}, + "taskArn": {}, + "logStreamName": {}, + "instanceType": {}, + "networkInterfaces": { + "shape": "S2r" + }, + "resourceRequirements": { + "shape": "S1q" + }, + "linuxParameters": { + "shape": "S1t" + }, + "logConfiguration": { + "shape": "S20" + }, + "secrets": { + "shape": "S23" + }, + "networkConfiguration": { + "shape": "S25" + }, + "fargatePlatformConfiguration": { + "shape": "S27" + } + } + }, + "nodeDetails": { + "type": "structure", + "members": { + "nodeIndex": { + "type": "integer" + }, + "isMainNode": { + "type": "boolean" + } + } + }, + "nodeProperties": { + "shape": "S29" + }, + "arrayProperties": { + "type": "structure", + "members": { + "statusSummary": { + "type": "map", + "key": {}, + "value": { + "type": "integer" + } + }, + "size": { + "type": "integer" + }, + "index": { + "type": "integer" + } + } + }, + "timeout": { + "shape": "S28" + }, + "tags": { + "shape": "Si" + }, + "propagateTags": { + "type": "boolean" + }, + "platformCapabilities": { + "shape": "S2c" + } + } + } + } + } + } + }, + "ListJobs": { + "http": { + "requestUri": "/v1/listjobs" + }, + "input": { + "type": "structure", + "members": { + "jobQueue": {}, + "arrayJobId": {}, + "multiNodeJobId": {}, + "jobStatus": {}, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "jobSummaryList" + ], + "members": { + "jobSummaryList": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "jobId", + "jobName" + ], + "members": { + "jobArn": {}, + "jobId": {}, + "jobName": {}, + "createdAt": { + "type": "long" + }, + "status": {}, + "statusReason": {}, + "startedAt": { + "type": "long" + }, + "stoppedAt": { + "type": "long" + }, + "container": { + "type": "structure", + "members": { + "exitCode": { + "type": "integer" + }, + "reason": {} + } + }, + "arrayProperties": { + "type": "structure", + "members": { + "size": { + "type": "integer" + }, + "index": { + "type": "integer" + } + } + }, + "nodeProperties": { + "type": "structure", + "members": { + "isMainNode": { + "type": "boolean" + }, + "numNodes": { + "type": "integer" + }, + "nodeIndex": { + "type": "integer" + } + } + } + } + } + }, + "nextToken": {} + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/v1/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "Si" + } + } + } + }, + "RegisterJobDefinition": { + "http": { + "requestUri": "/v1/registerjobdefinition" + }, + "input": { + "type": "structure", + "required": [ + "jobDefinitionName", + "type" + ], + "members": { + "jobDefinitionName": {}, + "type": {}, + "parameters": { + "shape": "S16" + }, + "containerProperties": { + "shape": "S1b" + }, + "nodeProperties": { + "shape": "S29" + }, + "retryStrategy": { + "shape": "S17" + }, + "propagateTags": { + "type": "boolean" + }, + "timeout": { + "shape": "S28" + }, + "tags": { + "shape": "Si" + }, + "platformCapabilities": { + "shape": "S2c" + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobDefinitionName", + "jobDefinitionArn", + "revision" + ], + "members": { + "jobDefinitionName": {}, + "jobDefinitionArn": {}, + "revision": { + "type": "integer" + } + } + } + }, + "SubmitJob": { + "http": { + "requestUri": "/v1/submitjob" + }, + "input": { + "type": "structure", + "required": [ + "jobName", + "jobQueue", + "jobDefinition" + ], + "members": { + "jobName": {}, + "jobQueue": {}, + "arrayProperties": { + "type": "structure", + "members": { + "size": { + "type": "integer" + } + } + }, + "dependsOn": { + "shape": "S2u" + }, + "jobDefinition": {}, + "parameters": { + "shape": "S16" + }, + "containerOverrides": { + "shape": "S3f" + }, + "nodeOverrides": { + "type": "structure", + "members": { + "numNodes": { + "type": "integer" + }, + "nodePropertyOverrides": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "targetNodes" + ], + "members": { + "targetNodes": {}, + "containerOverrides": { + "shape": "S3f" + } + } + } + } + } + }, + "retryStrategy": { + "shape": "S17" + }, + "propagateTags": { + "type": "boolean" + }, + "timeout": { + "shape": "S28" + }, + "tags": { + "shape": "Si" + } + } + }, + "output": { + "type": "structure", + "required": [ + "jobName", + "jobId" + ], + "members": { + "jobArn": {}, + "jobName": {}, + "jobId": {} + } + } + }, + "TagResource": { + "http": { + "requestUri": "/v1/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "Si" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "TerminateJob": { + "http": { + "requestUri": "/v1/terminatejob" + }, + "input": { + "type": "structure", + "required": [ + "jobId", + "reason" + ], + "members": { + "jobId": {}, + "reason": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/v1/tags/{resourceArn}" + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateComputeEnvironment": { + "http": { + "requestUri": "/v1/updatecomputeenvironment" + }, + "input": { + "type": "structure", + "required": [ + "computeEnvironment" + ], + "members": { + "computeEnvironment": {}, + "state": {}, + "computeResources": { + "type": "structure", + "members": { + "minvCpus": { + "type": "integer" + }, + "maxvCpus": { + "type": "integer" + }, + "desiredvCpus": { + "type": "integer" + }, + "subnets": { + "shape": "Sb" + }, + "securityGroupIds": { + "shape": "Sb" + } + } + }, + "serviceRole": {} + } + }, + "output": { + "type": "structure", + "members": { + "computeEnvironmentName": {}, + "computeEnvironmentArn": {} + } + } + }, + "UpdateJobQueue": { + "http": { + "requestUri": "/v1/updatejobqueue" + }, + "input": { + "type": "structure", + "required": [ + "jobQueue" + ], + "members": { + "jobQueue": {}, + "state": {}, + "priority": { + "type": "integer" + }, + "computeEnvironmentOrder": { + "shape": "So" + } + } + }, + "output": { + "type": "structure", + "members": { + "jobQueueName": {}, + "jobQueueArn": {} + } + } + } + }, + "shapes": { + "S7": { + "type": "structure", + "required": [ + "type", + "maxvCpus", + "subnets" + ], + "members": { + "type": {}, + "allocationStrategy": {}, + "minvCpus": { + "type": "integer" + }, + "maxvCpus": { + "type": "integer" + }, + "desiredvCpus": { + "type": "integer" + }, + "instanceTypes": { + "shape": "Sb" + }, + "imageId": { + "deprecated": true, + "deprecatedMessage": "This field is deprecated, use ec2Configuration[].imageIdOverride instead." + }, + "subnets": { + "shape": "Sb" + }, + "securityGroupIds": { + "shape": "Sb" + }, + "ec2KeyPair": {}, + "instanceRole": {}, + "tags": { + "type": "map", + "key": {}, + "value": {} + }, + "placementGroup": {}, + "bidPercentage": { + "type": "integer" + }, + "spotIamFleetRole": {}, + "launchTemplate": { + "type": "structure", + "members": { + "launchTemplateId": {}, + "launchTemplateName": {}, + "version": {} + } + }, + "ec2Configuration": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "imageType" + ], + "members": { + "imageType": {}, + "imageIdOverride": {} + } + } + } + } + }, + "Sb": { + "type": "list", + "member": {} + }, + "Si": { + "type": "map", + "key": {}, + "value": {} + }, + "So": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "order", + "computeEnvironment" + ], + "members": { + "order": { + "type": "integer" + }, + "computeEnvironment": {} + } + } + }, + "S16": { + "type": "map", + "key": {}, + "value": {} + }, + "S17": { + "type": "structure", + "members": { + "attempts": { + "type": "integer" + }, + "evaluateOnExit": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "action" + ], + "members": { + "onStatusReason": {}, + "onReason": {}, + "onExitCode": {}, + "action": {} + } + } + } + } + }, + "S1b": { + "type": "structure", + "members": { + "image": {}, + "vcpus": { + "deprecated": true, + "deprecatedMessage": "This field is deprecated, use resourceRequirements instead.", + "type": "integer" + }, + "memory": { + "deprecated": true, + "deprecatedMessage": "This field is deprecated, use resourceRequirements instead.", + "type": "integer" + }, + "command": { + "shape": "Sb" + }, + "jobRoleArn": {}, + "executionRoleArn": {}, + "volumes": { + "shape": "S1c" + }, + "environment": { + "shape": "S1j" + }, + "mountPoints": { + "shape": "S1l" + }, + "readonlyRootFilesystem": { + "type": "boolean" + }, + "privileged": { + "type": "boolean" + }, + "ulimits": { + "shape": "S1o" + }, + "user": {}, + "instanceType": {}, + "resourceRequirements": { + "shape": "S1q" + }, + "linuxParameters": { + "shape": "S1t" + }, + "logConfiguration": { + "shape": "S20" + }, + "secrets": { + "shape": "S23" + }, + "networkConfiguration": { + "shape": "S25" + }, + "fargatePlatformConfiguration": { + "shape": "S27" + } + } + }, + "S1c": { + "type": "list", + "member": { + "type": "structure", + "members": { + "host": { + "type": "structure", + "members": { + "sourcePath": {} + } + }, + "name": {}, + "efsVolumeConfiguration": { + "type": "structure", + "required": [ + "fileSystemId" + ], + "members": { + "fileSystemId": {}, + "rootDirectory": {}, + "transitEncryption": {}, + "transitEncryptionPort": { + "type": "integer" + }, + "authorizationConfig": { + "type": "structure", + "members": { + "accessPointId": {}, + "iam": {} + } + } + } + } + } + } + }, + "S1j": { + "type": "list", + "member": { + "type": "structure", + "members": { + "name": {}, + "value": {} + } + } + }, + "S1l": { + "type": "list", + "member": { + "type": "structure", + "members": { + "containerPath": {}, + "readOnly": { + "type": "boolean" + }, + "sourceVolume": {} + } + } + }, + "S1o": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "hardLimit", + "name", + "softLimit" + ], + "members": { + "hardLimit": { + "type": "integer" + }, + "name": {}, + "softLimit": { + "type": "integer" + } + } + } + }, + "S1q": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "value", + "type" + ], + "members": { + "value": {}, + "type": {} + } + } + }, + "S1t": { + "type": "structure", + "members": { + "devices": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "hostPath" + ], + "members": { + "hostPath": {}, + "containerPath": {}, + "permissions": { + "type": "list", + "member": {} + } + } + } + }, + "initProcessEnabled": { + "type": "boolean" + }, + "sharedMemorySize": { + "type": "integer" + }, + "tmpfs": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "containerPath", + "size" + ], + "members": { + "containerPath": {}, + "size": { + "type": "integer" + }, + "mountOptions": { + "shape": "Sb" + } + } + } + }, + "maxSwap": { + "type": "integer" + }, + "swappiness": { + "type": "integer" + } + } + }, + "S20": { + "type": "structure", + "required": [ + "logDriver" + ], + "members": { + "logDriver": {}, + "options": { + "type": "map", + "key": {}, + "value": {} + }, + "secretOptions": { + "shape": "S23" + } + } + }, + "S23": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "valueFrom" + ], + "members": { + "name": {}, + "valueFrom": {} + } + } + }, + "S25": { + "type": "structure", + "members": { + "assignPublicIp": {} + } + }, + "S27": { + "type": "structure", + "members": { + "platformVersion": {} + } + }, + "S28": { + "type": "structure", + "members": { + "attemptDurationSeconds": { + "type": "integer" + } + } + }, + "S29": { + "type": "structure", + "required": [ + "numNodes", + "mainNode", + "nodeRangeProperties" + ], + "members": { + "numNodes": { + "type": "integer" + }, + "mainNode": { + "type": "integer" + }, + "nodeRangeProperties": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "targetNodes" + ], + "members": { + "targetNodes": {}, + "container": { + "shape": "S1b" + } + } + } + } + } + }, + "S2c": { + "type": "list", + "member": {} + }, + "S2r": { + "type": "list", + "member": { + "type": "structure", + "members": { + "attachmentId": {}, + "ipv6Address": {}, + "privateIpv4Address": {} + } + } + }, + "S2u": { + "type": "list", + "member": { + "type": "structure", + "members": { + "jobId": {}, + "type": {} + } + } + }, + "S3f": { + "type": "structure", + "members": { + "vcpus": { + "deprecated": true, + "deprecatedMessage": "This field is deprecated, use resourceRequirements instead.", + "type": "integer" + }, + "memory": { + "deprecated": true, + "deprecatedMessage": "This field is deprecated, use resourceRequirements instead.", + "type": "integer" + }, + "command": { + "shape": "Sb" + }, + "instanceType": {}, + "environment": { + "shape": "S1j" + }, + "resourceRequirements": { + "shape": "S1q" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..e17851bd75d8462d94c400b4072d666f74966b53 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/batch-2016-08-10.paginators.json @@ -0,0 +1,28 @@ +{ + "pagination": { + "DescribeComputeEnvironments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "computeEnvironments" + }, + "DescribeJobDefinitions": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "jobDefinitions" + }, + "DescribeJobQueues": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "jobQueues" + }, + "ListJobs": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "jobSummaryList" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.min.json new file mode 100644 index 0000000000000000000000000000000000000000..003846d0a7f1457b93b76ea896b25fe4baeb95d8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.min.json @@ -0,0 +1,431 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2019-09-01", + "endpointPrefix": "braket", + "jsonVersion": "1.1", + "protocol": "rest-json", + "serviceFullName": "Braket", + "serviceId": "Braket", + "signatureVersion": "v4", + "signingName": "braket", + "uid": "braket-2019-09-01" + }, + "operations": { + "CancelQuantumTask": { + "http": { + "method": "PUT", + "requestUri": "/quantum-task/{quantumTaskArn}/cancel", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "clientToken", + "quantumTaskArn" + ], + "members": { + "clientToken": { + "idempotencyToken": true + }, + "quantumTaskArn": { + "location": "uri", + "locationName": "quantumTaskArn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "cancellationStatus", + "quantumTaskArn" + ], + "members": { + "cancellationStatus": {}, + "quantumTaskArn": {} + } + }, + "idempotent": true + }, + "CreateQuantumTask": { + "http": { + "requestUri": "/quantum-task", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "action", + "clientToken", + "deviceArn", + "outputS3Bucket", + "outputS3KeyPrefix", + "shots" + ], + "members": { + "action": { + "jsonvalue": true + }, + "clientToken": { + "idempotencyToken": true + }, + "deviceArn": {}, + "deviceParameters": { + "jsonvalue": true + }, + "outputS3Bucket": {}, + "outputS3KeyPrefix": {}, + "shots": { + "type": "long" + }, + "tags": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "required": [ + "quantumTaskArn" + ], + "members": { + "quantumTaskArn": {} + } + } + }, + "GetDevice": { + "http": { + "method": "GET", + "requestUri": "/device/{deviceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "deviceArn" + ], + "members": { + "deviceArn": { + "location": "uri", + "locationName": "deviceArn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "deviceArn", + "deviceCapabilities", + "deviceName", + "deviceStatus", + "deviceType", + "providerName" + ], + "members": { + "deviceArn": {}, + "deviceCapabilities": { + "jsonvalue": true + }, + "deviceName": {}, + "deviceStatus": {}, + "deviceType": {}, + "providerName": {} + } + } + }, + "GetQuantumTask": { + "http": { + "method": "GET", + "requestUri": "/quantum-task/{quantumTaskArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "quantumTaskArn" + ], + "members": { + "quantumTaskArn": { + "location": "uri", + "locationName": "quantumTaskArn" + } + } + }, + "output": { + "type": "structure", + "required": [ + "createdAt", + "deviceArn", + "deviceParameters", + "outputS3Bucket", + "outputS3Directory", + "quantumTaskArn", + "shots", + "status" + ], + "members": { + "createdAt": { + "shape": "Sm" + }, + "deviceArn": {}, + "deviceParameters": { + "jsonvalue": true + }, + "endedAt": { + "shape": "Sm" + }, + "failureReason": {}, + "outputS3Bucket": {}, + "outputS3Directory": {}, + "quantumTaskArn": {}, + "shots": { + "type": "long" + }, + "status": {}, + "tags": { + "shape": "Sd" + } + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "tags": { + "shape": "Sd" + } + } + } + }, + "SearchDevices": { + "http": { + "requestUri": "/devices", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "filters" + ], + "members": { + "filters": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "values" + ], + "members": { + "name": {}, + "values": { + "type": "list", + "member": {} + } + } + } + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "devices" + ], + "members": { + "devices": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "deviceArn", + "deviceName", + "deviceStatus", + "deviceType", + "providerName" + ], + "members": { + "deviceArn": {}, + "deviceName": {}, + "deviceStatus": {}, + "deviceType": {}, + "providerName": {} + } + } + }, + "nextToken": {} + } + } + }, + "SearchQuantumTasks": { + "http": { + "requestUri": "/quantum-tasks", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "filters" + ], + "members": { + "filters": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "name", + "operator", + "values" + ], + "members": { + "name": {}, + "operator": {}, + "values": { + "type": "list", + "member": {} + } + } + } + }, + "maxResults": { + "type": "integer" + }, + "nextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "quantumTasks" + ], + "members": { + "nextToken": {}, + "quantumTasks": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "createdAt", + "deviceArn", + "outputS3Bucket", + "outputS3Directory", + "quantumTaskArn", + "shots", + "status" + ], + "members": { + "createdAt": { + "shape": "Sm" + }, + "deviceArn": {}, + "endedAt": { + "shape": "Sm" + }, + "outputS3Bucket": {}, + "outputS3Directory": {}, + "quantumTaskArn": {}, + "shots": { + "type": "long" + }, + "status": {}, + "tags": { + "shape": "Sd" + } + } + } + } + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tags" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tags": { + "shape": "Sd" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "http": { + "method": "DELETE", + "requestUri": "/tags/{resourceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "resourceArn", + "tagKeys" + ], + "members": { + "resourceArn": { + "location": "uri", + "locationName": "resourceArn" + }, + "tagKeys": { + "location": "querystring", + "locationName": "tagKeys", + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + } + }, + "shapes": { + "Sd": { + "type": "map", + "key": {}, + "value": {} + }, + "Sm": { + "type": "timestamp", + "timestampFormat": "iso8601" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..f4dd4a1ee67455bd21b260fcfd0ae344ff043a99 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/braket-2019-09-01.paginators.json @@ -0,0 +1,16 @@ +{ + "pagination": { + "SearchDevices": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "devices" + }, + "SearchQuantumTasks": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults", + "result_key": "quantumTasks" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.min.json new file mode 100644 index 0000000000000000000000000000000000000000..63e614c97d08108825979fd3f80f39da37bd0fba --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.min.json @@ -0,0 +1,971 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2016-10-20", + "endpointPrefix": "budgets", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "AWSBudgets", + "serviceFullName": "AWS Budgets", + "serviceId": "Budgets", + "signatureVersion": "v4", + "targetPrefix": "AWSBudgetServiceGateway", + "uid": "budgets-2016-10-20" + }, + "operations": { + "CreateBudget": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "Budget" + ], + "members": { + "AccountId": {}, + "Budget": { + "shape": "S3" + }, + "NotificationsWithSubscribers": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Notification", + "Subscribers" + ], + "members": { + "Notification": { + "shape": "Sl" + }, + "Subscribers": { + "shape": "Sr" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateBudgetAction": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "NotificationType", + "ActionType", + "ActionThreshold", + "Definition", + "ExecutionRoleArn", + "ApprovalModel", + "Subscribers" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "NotificationType": {}, + "ActionType": {}, + "ActionThreshold": { + "shape": "Sy" + }, + "Definition": { + "shape": "Sz" + }, + "ExecutionRoleArn": {}, + "ApprovalModel": {}, + "Subscribers": { + "shape": "Sr" + } + } + }, + "output": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "ActionId" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "ActionId": {} + } + } + }, + "CreateNotification": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Notification", + "Subscribers" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Notification": { + "shape": "Sl" + }, + "Subscribers": { + "shape": "Sr" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "CreateSubscriber": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Notification", + "Subscriber" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Notification": { + "shape": "Sl" + }, + "Subscriber": { + "shape": "Ss" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteBudget": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName" + ], + "members": { + "AccountId": {}, + "BudgetName": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteBudgetAction": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "ActionId" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "ActionId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Action" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Action": { + "shape": "S1t" + } + } + } + }, + "DeleteNotification": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Notification" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Notification": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteSubscriber": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Notification", + "Subscriber" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Notification": { + "shape": "Sl" + }, + "Subscriber": { + "shape": "Ss" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeBudget": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName" + ], + "members": { + "AccountId": {}, + "BudgetName": {} + } + }, + "output": { + "type": "structure", + "members": { + "Budget": { + "shape": "S3" + } + } + } + }, + "DescribeBudgetAction": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "ActionId" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "ActionId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Action" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Action": { + "shape": "S1t" + } + } + } + }, + "DescribeBudgetActionHistories": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "ActionId" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "ActionId": {}, + "TimePeriod": { + "shape": "Sf" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "ActionHistories" + ], + "members": { + "ActionHistories": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Timestamp", + "Status", + "EventType", + "ActionHistoryDetails" + ], + "members": { + "Timestamp": { + "type": "timestamp" + }, + "Status": {}, + "EventType": {}, + "ActionHistoryDetails": { + "type": "structure", + "required": [ + "Message", + "Action" + ], + "members": { + "Message": {}, + "Action": { + "shape": "S1t" + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeBudgetActionsForAccount": { + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Actions" + ], + "members": { + "Actions": { + "shape": "S2c" + }, + "NextToken": {} + } + } + }, + "DescribeBudgetActionsForBudget": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Actions" + ], + "members": { + "Actions": { + "shape": "S2c" + }, + "NextToken": {} + } + } + }, + "DescribeBudgetPerformanceHistory": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "TimePeriod": { + "shape": "Sf" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "BudgetPerformanceHistory": { + "type": "structure", + "members": { + "BudgetName": {}, + "BudgetType": {}, + "CostFilters": { + "shape": "Sa" + }, + "CostTypes": { + "shape": "Sc" + }, + "TimeUnit": {}, + "BudgetedAndActualAmountsList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "BudgetedAmount": { + "shape": "S5" + }, + "ActualAmount": { + "shape": "S5" + }, + "TimePeriod": { + "shape": "Sf" + } + } + } + } + } + }, + "NextToken": {} + } + } + }, + "DescribeBudgets": { + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Budgets": { + "type": "list", + "member": { + "shape": "S3" + } + }, + "NextToken": {} + } + } + }, + "DescribeNotificationsForBudget": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Notifications": { + "type": "list", + "member": { + "shape": "Sl" + } + }, + "NextToken": {} + } + } + }, + "DescribeSubscribersForNotification": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Notification" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Notification": { + "shape": "Sl" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Subscribers": { + "shape": "Sr" + }, + "NextToken": {} + } + } + }, + "ExecuteBudgetAction": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "ActionId", + "ExecutionType" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "ActionId": {}, + "ExecutionType": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "ActionId", + "ExecutionType" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "ActionId": {}, + "ExecutionType": {} + } + } + }, + "UpdateBudget": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "NewBudget" + ], + "members": { + "AccountId": {}, + "NewBudget": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateBudgetAction": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "ActionId" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "ActionId": {}, + "NotificationType": {}, + "ActionThreshold": { + "shape": "Sy" + }, + "Definition": { + "shape": "Sz" + }, + "ExecutionRoleArn": {}, + "ApprovalModel": {}, + "Subscribers": { + "shape": "Sr" + } + } + }, + "output": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "OldAction", + "NewAction" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "OldAction": { + "shape": "S1t" + }, + "NewAction": { + "shape": "S1t" + } + } + } + }, + "UpdateNotification": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "OldNotification", + "NewNotification" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "OldNotification": { + "shape": "Sl" + }, + "NewNotification": { + "shape": "Sl" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateSubscriber": { + "input": { + "type": "structure", + "required": [ + "AccountId", + "BudgetName", + "Notification", + "OldSubscriber", + "NewSubscriber" + ], + "members": { + "AccountId": {}, + "BudgetName": {}, + "Notification": { + "shape": "Sl" + }, + "OldSubscriber": { + "shape": "Ss" + }, + "NewSubscriber": { + "shape": "Ss" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "required": [ + "BudgetName", + "TimeUnit", + "BudgetType" + ], + "members": { + "BudgetName": {}, + "BudgetLimit": { + "shape": "S5" + }, + "PlannedBudgetLimits": { + "type": "map", + "key": {}, + "value": { + "shape": "S5" + } + }, + "CostFilters": { + "shape": "Sa" + }, + "CostTypes": { + "shape": "Sc" + }, + "TimeUnit": {}, + "TimePeriod": { + "shape": "Sf" + }, + "CalculatedSpend": { + "type": "structure", + "required": [ + "ActualSpend" + ], + "members": { + "ActualSpend": { + "shape": "S5" + }, + "ForecastedSpend": { + "shape": "S5" + } + } + }, + "BudgetType": {}, + "LastUpdatedTime": { + "type": "timestamp" + } + } + }, + "S5": { + "type": "structure", + "required": [ + "Amount", + "Unit" + ], + "members": { + "Amount": {}, + "Unit": {} + } + }, + "Sa": { + "type": "map", + "key": {}, + "value": { + "type": "list", + "member": {} + } + }, + "Sc": { + "type": "structure", + "members": { + "IncludeTax": { + "type": "boolean" + }, + "IncludeSubscription": { + "type": "boolean" + }, + "UseBlended": { + "type": "boolean" + }, + "IncludeRefund": { + "type": "boolean" + }, + "IncludeCredit": { + "type": "boolean" + }, + "IncludeUpfront": { + "type": "boolean" + }, + "IncludeRecurring": { + "type": "boolean" + }, + "IncludeOtherSubscription": { + "type": "boolean" + }, + "IncludeSupport": { + "type": "boolean" + }, + "IncludeDiscount": { + "type": "boolean" + }, + "UseAmortized": { + "type": "boolean" + } + } + }, + "Sf": { + "type": "structure", + "members": { + "Start": { + "type": "timestamp" + }, + "End": { + "type": "timestamp" + } + } + }, + "Sl": { + "type": "structure", + "required": [ + "NotificationType", + "ComparisonOperator", + "Threshold" + ], + "members": { + "NotificationType": {}, + "ComparisonOperator": {}, + "Threshold": { + "type": "double" + }, + "ThresholdType": {}, + "NotificationState": {} + } + }, + "Sr": { + "type": "list", + "member": { + "shape": "Ss" + } + }, + "Ss": { + "type": "structure", + "required": [ + "SubscriptionType", + "Address" + ], + "members": { + "SubscriptionType": {}, + "Address": { + "type": "string", + "sensitive": true + } + } + }, + "Sy": { + "type": "structure", + "required": [ + "ActionThresholdValue", + "ActionThresholdType" + ], + "members": { + "ActionThresholdValue": { + "type": "double" + }, + "ActionThresholdType": {} + } + }, + "Sz": { + "type": "structure", + "members": { + "IamActionDefinition": { + "type": "structure", + "required": [ + "PolicyArn" + ], + "members": { + "PolicyArn": {}, + "Roles": { + "type": "list", + "member": {} + }, + "Groups": { + "type": "list", + "member": {} + }, + "Users": { + "type": "list", + "member": {} + } + } + }, + "ScpActionDefinition": { + "type": "structure", + "required": [ + "PolicyId", + "TargetIds" + ], + "members": { + "PolicyId": {}, + "TargetIds": { + "type": "list", + "member": {} + } + } + }, + "SsmActionDefinition": { + "type": "structure", + "required": [ + "ActionSubType", + "Region", + "InstanceIds" + ], + "members": { + "ActionSubType": {}, + "Region": {}, + "InstanceIds": { + "type": "list", + "member": {} + } + } + } + } + }, + "S1t": { + "type": "structure", + "required": [ + "ActionId", + "BudgetName", + "NotificationType", + "ActionType", + "ActionThreshold", + "Definition", + "ExecutionRoleArn", + "ApprovalModel", + "Status", + "Subscribers" + ], + "members": { + "ActionId": {}, + "BudgetName": {}, + "NotificationType": {}, + "ActionType": {}, + "ActionThreshold": { + "shape": "Sy" + }, + "Definition": { + "shape": "Sz" + }, + "ExecutionRoleArn": {}, + "ApprovalModel": {}, + "Status": {}, + "Subscribers": { + "shape": "Sr" + } + } + }, + "S2c": { + "type": "list", + "member": { + "shape": "S1t" + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..d317a71f3c6c0c1c2dac84d417e8f6b358271f5b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/budgets-2016-10-20.paginators.json @@ -0,0 +1,46 @@ +{ + "pagination": { + "DescribeBudgetActionHistories": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "ActionHistories" + }, + "DescribeBudgetActionsForAccount": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Actions" + }, + "DescribeBudgetActionsForBudget": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Actions" + }, + "DescribeBudgetPerformanceHistory": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "BudgetPerformanceHistory" + }, + "DescribeBudgets": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Budgets" + }, + "DescribeNotificationsForBudget": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Notifications" + }, + "DescribeSubscribersForNotification": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Subscribers" + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.min.json new file mode 100644 index 0000000000000000000000000000000000000000..c9c9e693282d29a6409709682e53cf8bcda74cc2 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.min.json @@ -0,0 +1,1945 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-10-25", + "endpointPrefix": "ce", + "jsonVersion": "1.1", + "protocol": "json", + "serviceAbbreviation": "AWS Cost Explorer", + "serviceFullName": "AWS Cost Explorer Service", + "serviceId": "Cost Explorer", + "signatureVersion": "v4", + "signingName": "ce", + "targetPrefix": "AWSInsightsIndexService", + "uid": "ce-2017-10-25" + }, + "operations": { + "CreateAnomalyMonitor": { + "input": { + "type": "structure", + "required": [ + "AnomalyMonitor" + ], + "members": { + "AnomalyMonitor": { + "shape": "S2" + } + } + }, + "output": { + "type": "structure", + "required": [ + "MonitorArn" + ], + "members": { + "MonitorArn": {} + } + } + }, + "CreateAnomalySubscription": { + "input": { + "type": "structure", + "required": [ + "AnomalySubscription" + ], + "members": { + "AnomalySubscription": { + "shape": "Sm" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SubscriptionArn" + ], + "members": { + "SubscriptionArn": {} + } + } + }, + "CreateCostCategoryDefinition": { + "input": { + "type": "structure", + "required": [ + "Name", + "RuleVersion", + "Rules" + ], + "members": { + "Name": {}, + "RuleVersion": {}, + "Rules": { + "shape": "Sz" + }, + "DefaultValue": {} + } + }, + "output": { + "type": "structure", + "members": { + "CostCategoryArn": {}, + "EffectiveStart": {} + } + } + }, + "DeleteAnomalyMonitor": { + "input": { + "type": "structure", + "required": [ + "MonitorArn" + ], + "members": { + "MonitorArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteAnomalySubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionArn" + ], + "members": { + "SubscriptionArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteCostCategoryDefinition": { + "input": { + "type": "structure", + "required": [ + "CostCategoryArn" + ], + "members": { + "CostCategoryArn": {} + } + }, + "output": { + "type": "structure", + "members": { + "CostCategoryArn": {}, + "EffectiveEnd": {} + } + } + }, + "DescribeCostCategoryDefinition": { + "input": { + "type": "structure", + "required": [ + "CostCategoryArn" + ], + "members": { + "CostCategoryArn": {}, + "EffectiveOn": {} + } + }, + "output": { + "type": "structure", + "members": { + "CostCategory": { + "type": "structure", + "required": [ + "CostCategoryArn", + "EffectiveStart", + "Name", + "RuleVersion", + "Rules" + ], + "members": { + "CostCategoryArn": {}, + "EffectiveStart": {}, + "EffectiveEnd": {}, + "Name": {}, + "RuleVersion": {}, + "Rules": { + "shape": "Sz" + }, + "ProcessingStatus": { + "shape": "S1g" + }, + "DefaultValue": {} + } + } + } + } + }, + "GetAnomalies": { + "input": { + "type": "structure", + "required": [ + "DateInterval" + ], + "members": { + "MonitorArn": {}, + "DateInterval": { + "type": "structure", + "required": [ + "StartDate" + ], + "members": { + "StartDate": {}, + "EndDate": {} + } + }, + "Feedback": {}, + "TotalImpact": { + "type": "structure", + "required": [ + "NumericOperator", + "StartValue" + ], + "members": { + "NumericOperator": {}, + "StartValue": { + "type": "double" + }, + "EndValue": { + "type": "double" + } + } + }, + "NextPageToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Anomalies" + ], + "members": { + "Anomalies": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AnomalyId", + "AnomalyScore", + "Impact", + "MonitorArn" + ], + "members": { + "AnomalyId": {}, + "AnomalyStartDate": {}, + "AnomalyEndDate": {}, + "DimensionValue": {}, + "RootCauses": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Service": {}, + "Region": {}, + "LinkedAccount": {}, + "UsageType": {} + } + } + }, + "AnomalyScore": { + "type": "structure", + "required": [ + "MaxScore", + "CurrentScore" + ], + "members": { + "MaxScore": { + "type": "double" + }, + "CurrentScore": { + "type": "double" + } + } + }, + "Impact": { + "type": "structure", + "required": [ + "MaxImpact" + ], + "members": { + "MaxImpact": { + "type": "double" + }, + "TotalImpact": { + "type": "double" + } + } + }, + "MonitorArn": {}, + "Feedback": {} + } + } + }, + "NextPageToken": {} + } + } + }, + "GetAnomalyMonitors": { + "input": { + "type": "structure", + "members": { + "MonitorArnList": { + "shape": "Sb" + }, + "NextPageToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "AnomalyMonitors" + ], + "members": { + "AnomalyMonitors": { + "type": "list", + "member": { + "shape": "S2" + } + }, + "NextPageToken": {} + } + } + }, + "GetAnomalySubscriptions": { + "input": { + "type": "structure", + "members": { + "SubscriptionArnList": { + "shape": "Sb" + }, + "MonitorArn": {}, + "NextPageToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "AnomalySubscriptions" + ], + "members": { + "AnomalySubscriptions": { + "type": "list", + "member": { + "shape": "Sm" + } + }, + "NextPageToken": {} + } + } + }, + "GetCostAndUsage": { + "input": { + "type": "structure", + "required": [ + "TimePeriod", + "Granularity", + "Metrics" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "Metrics": { + "shape": "S28" + }, + "GroupBy": { + "shape": "S2a" + }, + "NextPageToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "NextPageToken": {}, + "GroupDefinitions": { + "shape": "S2a" + }, + "ResultsByTime": { + "shape": "S2f" + }, + "DimensionValueAttributes": { + "shape": "S2q" + } + } + } + }, + "GetCostAndUsageWithResources": { + "input": { + "type": "structure", + "required": [ + "TimePeriod", + "Granularity", + "Filter" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "Metrics": { + "shape": "S28" + }, + "GroupBy": { + "shape": "S2a" + }, + "NextPageToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "NextPageToken": {}, + "GroupDefinitions": { + "shape": "S2a" + }, + "ResultsByTime": { + "shape": "S2f" + }, + "DimensionValueAttributes": { + "shape": "S2q" + } + } + } + }, + "GetCostCategories": { + "input": { + "type": "structure", + "required": [ + "TimePeriod" + ], + "members": { + "SearchString": {}, + "TimePeriod": { + "shape": "S26" + }, + "CostCategoryName": {}, + "Filter": { + "shape": "S7" + }, + "SortBy": { + "shape": "S2z" + }, + "MaxResults": { + "type": "integer" + }, + "NextPageToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "ReturnSize", + "TotalSize" + ], + "members": { + "NextPageToken": {}, + "CostCategoryNames": { + "type": "list", + "member": {} + }, + "CostCategoryValues": { + "shape": "S36" + }, + "ReturnSize": { + "type": "integer" + }, + "TotalSize": { + "type": "integer" + } + } + } + }, + "GetCostForecast": { + "input": { + "type": "structure", + "required": [ + "TimePeriod", + "Metric", + "Granularity" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Metric": {}, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "PredictionIntervalLevel": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Total": { + "shape": "S2i" + }, + "ForecastResultsByTime": { + "shape": "S3b" + } + } + } + }, + "GetDimensionValues": { + "input": { + "type": "structure", + "required": [ + "TimePeriod", + "Dimension" + ], + "members": { + "SearchString": {}, + "TimePeriod": { + "shape": "S26" + }, + "Dimension": {}, + "Context": {}, + "Filter": { + "shape": "S7" + }, + "SortBy": { + "shape": "S2z" + }, + "MaxResults": { + "type": "integer" + }, + "NextPageToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "DimensionValues", + "ReturnSize", + "TotalSize" + ], + "members": { + "DimensionValues": { + "shape": "S2q" + }, + "ReturnSize": { + "type": "integer" + }, + "TotalSize": { + "type": "integer" + }, + "NextPageToken": {} + } + } + }, + "GetReservationCoverage": { + "input": { + "type": "structure", + "required": [ + "TimePeriod" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "GroupBy": { + "shape": "S2a" + }, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "Metrics": { + "shape": "S28" + }, + "NextPageToken": {}, + "SortBy": { + "shape": "S30" + }, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "CoveragesByTime" + ], + "members": { + "CoveragesByTime": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Groups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Attributes": { + "shape": "S2s" + }, + "Coverage": { + "shape": "S3m" + } + } + } + }, + "Total": { + "shape": "S3m" + } + } + } + }, + "Total": { + "shape": "S3m" + }, + "NextPageToken": {} + } + } + }, + "GetReservationPurchaseRecommendation": { + "input": { + "type": "structure", + "required": [ + "Service" + ], + "members": { + "AccountId": {}, + "Service": {}, + "Filter": { + "shape": "S7" + }, + "AccountScope": {}, + "LookbackPeriodInDays": {}, + "TermInYears": {}, + "PaymentOption": {}, + "ServiceSpecification": { + "shape": "S44" + }, + "PageSize": { + "type": "integer" + }, + "NextPageToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Metadata": { + "type": "structure", + "members": { + "RecommendationId": {}, + "GenerationTimestamp": {} + } + }, + "Recommendations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AccountScope": {}, + "LookbackPeriodInDays": {}, + "TermInYears": {}, + "PaymentOption": {}, + "ServiceSpecification": { + "shape": "S44" + }, + "RecommendationDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AccountId": {}, + "InstanceDetails": { + "type": "structure", + "members": { + "EC2InstanceDetails": { + "type": "structure", + "members": { + "Family": {}, + "InstanceType": {}, + "Region": {}, + "AvailabilityZone": {}, + "Platform": {}, + "Tenancy": {}, + "CurrentGeneration": { + "type": "boolean" + }, + "SizeFlexEligible": { + "type": "boolean" + } + } + }, + "RDSInstanceDetails": { + "type": "structure", + "members": { + "Family": {}, + "InstanceType": {}, + "Region": {}, + "DatabaseEngine": {}, + "DatabaseEdition": {}, + "DeploymentOption": {}, + "LicenseModel": {}, + "CurrentGeneration": { + "type": "boolean" + }, + "SizeFlexEligible": { + "type": "boolean" + } + } + }, + "RedshiftInstanceDetails": { + "type": "structure", + "members": { + "Family": {}, + "NodeType": {}, + "Region": {}, + "CurrentGeneration": { + "type": "boolean" + }, + "SizeFlexEligible": { + "type": "boolean" + } + } + }, + "ElastiCacheInstanceDetails": { + "type": "structure", + "members": { + "Family": {}, + "NodeType": {}, + "Region": {}, + "ProductDescription": {}, + "CurrentGeneration": { + "type": "boolean" + }, + "SizeFlexEligible": { + "type": "boolean" + } + } + }, + "ESInstanceDetails": { + "type": "structure", + "members": { + "InstanceClass": {}, + "InstanceSize": {}, + "Region": {}, + "CurrentGeneration": { + "type": "boolean" + }, + "SizeFlexEligible": { + "type": "boolean" + } + } + } + } + }, + "RecommendedNumberOfInstancesToPurchase": {}, + "RecommendedNormalizedUnitsToPurchase": {}, + "MinimumNumberOfInstancesUsedPerHour": {}, + "MinimumNormalizedUnitsUsedPerHour": {}, + "MaximumNumberOfInstancesUsedPerHour": {}, + "MaximumNormalizedUnitsUsedPerHour": {}, + "AverageNumberOfInstancesUsedPerHour": {}, + "AverageNormalizedUnitsUsedPerHour": {}, + "AverageUtilization": {}, + "EstimatedBreakEvenInMonths": {}, + "CurrencyCode": {}, + "EstimatedMonthlySavingsAmount": {}, + "EstimatedMonthlySavingsPercentage": {}, + "EstimatedMonthlyOnDemandCost": {}, + "EstimatedReservationCostForLookbackPeriod": {}, + "UpfrontCost": {}, + "RecurringStandardMonthlyCost": {} + } + } + }, + "RecommendationSummary": { + "type": "structure", + "members": { + "TotalEstimatedMonthlySavingsAmount": {}, + "TotalEstimatedMonthlySavingsPercentage": {}, + "CurrencyCode": {} + } + } + } + } + }, + "NextPageToken": {} + } + } + }, + "GetReservationUtilization": { + "input": { + "type": "structure", + "required": [ + "TimePeriod" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "GroupBy": { + "shape": "S2a" + }, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "SortBy": { + "shape": "S30" + }, + "NextPageToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "required": [ + "UtilizationsByTime" + ], + "members": { + "UtilizationsByTime": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Groups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Key": {}, + "Value": {}, + "Attributes": { + "shape": "S2s" + }, + "Utilization": { + "shape": "S4t" + } + } + } + }, + "Total": { + "shape": "S4t" + } + } + } + }, + "Total": { + "shape": "S4t" + }, + "NextPageToken": {} + } + } + }, + "GetRightsizingRecommendation": { + "input": { + "type": "structure", + "required": [ + "Service" + ], + "members": { + "Filter": { + "shape": "S7" + }, + "Configuration": { + "shape": "S5c" + }, + "Service": {}, + "PageSize": { + "type": "integer" + }, + "NextPageToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "Metadata": { + "type": "structure", + "members": { + "RecommendationId": {}, + "GenerationTimestamp": {}, + "LookbackPeriodInDays": {}, + "AdditionalMetadata": {} + } + }, + "Summary": { + "type": "structure", + "members": { + "TotalRecommendationCount": {}, + "EstimatedTotalMonthlySavingsAmount": {}, + "SavingsCurrencyCode": {}, + "SavingsPercentage": {} + } + }, + "RightsizingRecommendations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AccountId": {}, + "CurrentInstance": { + "type": "structure", + "members": { + "ResourceId": {}, + "InstanceName": {}, + "Tags": { + "type": "list", + "member": { + "shape": "Sf" + } + }, + "ResourceDetails": { + "shape": "S5l" + }, + "ResourceUtilization": { + "shape": "S5n" + }, + "ReservationCoveredHoursInLookbackPeriod": {}, + "SavingsPlansCoveredHoursInLookbackPeriod": {}, + "OnDemandHoursInLookbackPeriod": {}, + "TotalRunningHoursInLookbackPeriod": {}, + "MonthlyCost": {}, + "CurrencyCode": {} + } + }, + "RightsizingType": {}, + "ModifyRecommendationDetail": { + "type": "structure", + "members": { + "TargetInstances": { + "type": "list", + "member": { + "type": "structure", + "members": { + "EstimatedMonthlyCost": {}, + "EstimatedMonthlySavings": {}, + "CurrencyCode": {}, + "DefaultTargetInstance": { + "type": "boolean" + }, + "ResourceDetails": { + "shape": "S5l" + }, + "ExpectedResourceUtilization": { + "shape": "S5n" + }, + "PlatformDifferences": { + "type": "list", + "member": {} + } + } + } + } + } + }, + "TerminateRecommendationDetail": { + "type": "structure", + "members": { + "EstimatedMonthlySavings": {}, + "CurrencyCode": {} + } + }, + "FindingReasonCodes": { + "type": "list", + "member": {} + } + } + } + }, + "NextPageToken": {}, + "Configuration": { + "shape": "S5c" + } + } + } + }, + "GetSavingsPlansCoverage": { + "input": { + "type": "structure", + "required": [ + "TimePeriod" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "GroupBy": { + "shape": "S2a" + }, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "Metrics": { + "shape": "S28" + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "SortBy": { + "shape": "S30" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SavingsPlansCoverages" + ], + "members": { + "SavingsPlansCoverages": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Attributes": { + "shape": "S2s" + }, + "Coverage": { + "type": "structure", + "members": { + "SpendCoveredBySavingsPlans": {}, + "OnDemandCost": {}, + "TotalCost": {}, + "CoveragePercentage": {} + } + }, + "TimePeriod": { + "shape": "S26" + } + } + } + }, + "NextToken": {} + } + } + }, + "GetSavingsPlansPurchaseRecommendation": { + "input": { + "type": "structure", + "required": [ + "SavingsPlansType", + "TermInYears", + "PaymentOption", + "LookbackPeriodInDays" + ], + "members": { + "SavingsPlansType": {}, + "TermInYears": {}, + "PaymentOption": {}, + "AccountScope": {}, + "NextPageToken": {}, + "PageSize": { + "type": "integer" + }, + "LookbackPeriodInDays": {}, + "Filter": { + "shape": "S7" + } + } + }, + "output": { + "type": "structure", + "members": { + "Metadata": { + "type": "structure", + "members": { + "RecommendationId": {}, + "GenerationTimestamp": {}, + "AdditionalMetadata": {} + } + }, + "SavingsPlansPurchaseRecommendation": { + "type": "structure", + "members": { + "AccountScope": {}, + "SavingsPlansType": {}, + "TermInYears": {}, + "PaymentOption": {}, + "LookbackPeriodInDays": {}, + "SavingsPlansPurchaseRecommendationDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SavingsPlansDetails": { + "type": "structure", + "members": { + "Region": {}, + "InstanceFamily": {}, + "OfferingId": {} + } + }, + "AccountId": {}, + "UpfrontCost": {}, + "EstimatedROI": {}, + "CurrencyCode": {}, + "EstimatedSPCost": {}, + "EstimatedOnDemandCost": {}, + "EstimatedOnDemandCostWithCurrentCommitment": {}, + "EstimatedSavingsAmount": {}, + "EstimatedSavingsPercentage": {}, + "HourlyCommitmentToPurchase": {}, + "EstimatedAverageUtilization": {}, + "EstimatedMonthlySavingsAmount": {}, + "CurrentMinimumHourlyOnDemandSpend": {}, + "CurrentMaximumHourlyOnDemandSpend": {}, + "CurrentAverageHourlyOnDemandSpend": {} + } + } + }, + "SavingsPlansPurchaseRecommendationSummary": { + "type": "structure", + "members": { + "EstimatedROI": {}, + "CurrencyCode": {}, + "EstimatedTotalCost": {}, + "CurrentOnDemandSpend": {}, + "EstimatedSavingsAmount": {}, + "TotalRecommendationCount": {}, + "DailyCommitmentToPurchase": {}, + "HourlyCommitmentToPurchase": {}, + "EstimatedSavingsPercentage": {}, + "EstimatedMonthlySavingsAmount": {}, + "EstimatedOnDemandCostWithCurrentCommitment": {} + } + } + } + }, + "NextPageToken": {} + } + } + }, + "GetSavingsPlansUtilization": { + "input": { + "type": "structure", + "required": [ + "TimePeriod" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "SortBy": { + "shape": "S30" + } + } + }, + "output": { + "type": "structure", + "required": [ + "Total" + ], + "members": { + "SavingsPlansUtilizationsByTime": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "TimePeriod", + "Utilization" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Utilization": { + "shape": "S6j" + }, + "Savings": { + "shape": "S6k" + }, + "AmortizedCommitment": { + "shape": "S6l" + } + } + } + }, + "Total": { + "shape": "S6m" + } + } + } + }, + "GetSavingsPlansUtilizationDetails": { + "input": { + "type": "structure", + "required": [ + "TimePeriod" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Filter": { + "shape": "S7" + }, + "DataType": { + "type": "list", + "member": {} + }, + "NextToken": {}, + "MaxResults": { + "type": "integer" + }, + "SortBy": { + "shape": "S30" + } + } + }, + "output": { + "type": "structure", + "required": [ + "SavingsPlansUtilizationDetails", + "TimePeriod" + ], + "members": { + "SavingsPlansUtilizationDetails": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SavingsPlanArn": {}, + "Attributes": { + "shape": "S2s" + }, + "Utilization": { + "shape": "S6j" + }, + "Savings": { + "shape": "S6k" + }, + "AmortizedCommitment": { + "shape": "S6l" + } + } + } + }, + "Total": { + "shape": "S6m" + }, + "TimePeriod": { + "shape": "S26" + }, + "NextToken": {} + } + } + }, + "GetTags": { + "input": { + "type": "structure", + "required": [ + "TimePeriod" + ], + "members": { + "SearchString": {}, + "TimePeriod": { + "shape": "S26" + }, + "TagKey": {}, + "Filter": { + "shape": "S7" + }, + "SortBy": { + "shape": "S2z" + }, + "MaxResults": { + "type": "integer" + }, + "NextPageToken": {} + } + }, + "output": { + "type": "structure", + "required": [ + "Tags", + "ReturnSize", + "TotalSize" + ], + "members": { + "NextPageToken": {}, + "Tags": { + "type": "list", + "member": {} + }, + "ReturnSize": { + "type": "integer" + }, + "TotalSize": { + "type": "integer" + } + } + } + }, + "GetUsageForecast": { + "input": { + "type": "structure", + "required": [ + "TimePeriod", + "Metric", + "Granularity" + ], + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Metric": {}, + "Granularity": {}, + "Filter": { + "shape": "S7" + }, + "PredictionIntervalLevel": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Total": { + "shape": "S2i" + }, + "ForecastResultsByTime": { + "shape": "S3b" + } + } + } + }, + "ListCostCategoryDefinitions": { + "input": { + "type": "structure", + "members": { + "EffectiveOn": {}, + "NextToken": {}, + "MaxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "CostCategoryReferences": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CostCategoryArn": {}, + "Name": {}, + "EffectiveStart": {}, + "EffectiveEnd": {}, + "NumberOfRules": { + "type": "integer" + }, + "ProcessingStatus": { + "shape": "S1g" + }, + "Values": { + "shape": "S36" + }, + "DefaultValue": {} + } + } + }, + "NextToken": {} + } + } + }, + "ProvideAnomalyFeedback": { + "input": { + "type": "structure", + "required": [ + "AnomalyId", + "Feedback" + ], + "members": { + "AnomalyId": {}, + "Feedback": {} + } + }, + "output": { + "type": "structure", + "required": [ + "AnomalyId" + ], + "members": { + "AnomalyId": {} + } + } + }, + "UpdateAnomalyMonitor": { + "input": { + "type": "structure", + "required": [ + "MonitorArn" + ], + "members": { + "MonitorArn": {}, + "MonitorName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "MonitorArn" + ], + "members": { + "MonitorArn": {} + } + } + }, + "UpdateAnomalySubscription": { + "input": { + "type": "structure", + "required": [ + "SubscriptionArn" + ], + "members": { + "SubscriptionArn": {}, + "Threshold": { + "type": "double" + }, + "Frequency": {}, + "MonitorArnList": { + "shape": "Sn" + }, + "Subscribers": { + "shape": "Sp" + }, + "SubscriptionName": {} + } + }, + "output": { + "type": "structure", + "required": [ + "SubscriptionArn" + ], + "members": { + "SubscriptionArn": {} + } + } + }, + "UpdateCostCategoryDefinition": { + "input": { + "type": "structure", + "required": [ + "CostCategoryArn", + "RuleVersion", + "Rules" + ], + "members": { + "CostCategoryArn": {}, + "RuleVersion": {}, + "Rules": { + "shape": "Sz" + }, + "DefaultValue": {} + } + }, + "output": { + "type": "structure", + "members": { + "CostCategoryArn": {}, + "EffectiveStart": {} + } + } + } + }, + "shapes": { + "S2": { + "type": "structure", + "required": [ + "MonitorName", + "MonitorType" + ], + "members": { + "MonitorArn": {}, + "MonitorName": {}, + "CreationDate": {}, + "LastUpdatedDate": {}, + "LastEvaluatedDate": {}, + "MonitorType": {}, + "MonitorDimension": {}, + "MonitorSpecification": { + "shape": "S7" + }, + "DimensionalValueCount": { + "type": "integer" + } + } + }, + "S7": { + "type": "structure", + "members": { + "Or": { + "shape": "S8" + }, + "And": { + "shape": "S8" + }, + "Not": { + "shape": "S7" + }, + "Dimensions": { + "type": "structure", + "members": { + "Key": {}, + "Values": { + "shape": "Sb" + }, + "MatchOptions": { + "shape": "Sd" + } + } + }, + "Tags": { + "shape": "Sf" + }, + "CostCategories": { + "type": "structure", + "members": { + "Key": {}, + "Values": { + "shape": "Sb" + }, + "MatchOptions": { + "shape": "Sd" + } + } + } + } + }, + "S8": { + "type": "list", + "member": { + "shape": "S7" + } + }, + "Sb": { + "type": "list", + "member": {} + }, + "Sd": { + "type": "list", + "member": {} + }, + "Sf": { + "type": "structure", + "members": { + "Key": {}, + "Values": { + "shape": "Sb" + }, + "MatchOptions": { + "shape": "Sd" + } + } + }, + "Sm": { + "type": "structure", + "required": [ + "MonitorArnList", + "Subscribers", + "Threshold", + "Frequency", + "SubscriptionName" + ], + "members": { + "SubscriptionArn": {}, + "AccountId": {}, + "MonitorArnList": { + "shape": "Sn" + }, + "Subscribers": { + "shape": "Sp" + }, + "Threshold": { + "type": "double" + }, + "Frequency": {}, + "SubscriptionName": {} + } + }, + "Sn": { + "type": "list", + "member": {} + }, + "Sp": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Address": {}, + "Type": {}, + "Status": {} + } + } + }, + "Sz": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Value": {}, + "Rule": { + "shape": "S7" + }, + "InheritedValue": { + "type": "structure", + "members": { + "DimensionName": {}, + "DimensionKey": {} + } + }, + "Type": {} + } + } + }, + "S1g": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Component": {}, + "Status": {} + } + } + }, + "S26": { + "type": "structure", + "required": [ + "Start", + "End" + ], + "members": { + "Start": {}, + "End": {} + } + }, + "S28": { + "type": "list", + "member": {} + }, + "S2a": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Type": {}, + "Key": {} + } + } + }, + "S2f": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TimePeriod": { + "shape": "S26" + }, + "Total": { + "shape": "S2h" + }, + "Groups": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Keys": { + "type": "list", + "member": {} + }, + "Metrics": { + "shape": "S2h" + } + } + } + }, + "Estimated": { + "type": "boolean" + } + } + } + }, + "S2h": { + "type": "map", + "key": {}, + "value": { + "shape": "S2i" + } + }, + "S2i": { + "type": "structure", + "members": { + "Amount": {}, + "Unit": {} + } + }, + "S2q": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Value": {}, + "Attributes": { + "shape": "S2s" + } + } + } + }, + "S2s": { + "type": "map", + "key": {}, + "value": {} + }, + "S2z": { + "type": "list", + "member": { + "shape": "S30" + } + }, + "S30": { + "type": "structure", + "required": [ + "Key" + ], + "members": { + "Key": {}, + "SortOrder": {} + } + }, + "S36": { + "type": "list", + "member": {} + }, + "S3b": { + "type": "list", + "member": { + "type": "structure", + "members": { + "TimePeriod": { + "shape": "S26" + }, + "MeanValue": {}, + "PredictionIntervalLowerBound": {}, + "PredictionIntervalUpperBound": {} + } + } + }, + "S3m": { + "type": "structure", + "members": { + "CoverageHours": { + "type": "structure", + "members": { + "OnDemandHours": {}, + "ReservedHours": {}, + "TotalRunningHours": {}, + "CoverageHoursPercentage": {} + } + }, + "CoverageNormalizedUnits": { + "type": "structure", + "members": { + "OnDemandNormalizedUnits": {}, + "ReservedNormalizedUnits": {}, + "TotalRunningNormalizedUnits": {}, + "CoverageNormalizedUnitsPercentage": {} + } + }, + "CoverageCost": { + "type": "structure", + "members": { + "OnDemandCost": {} + } + } + } + }, + "S44": { + "type": "structure", + "members": { + "EC2Specification": { + "type": "structure", + "members": { + "OfferingClass": {} + } + } + } + }, + "S4t": { + "type": "structure", + "members": { + "UtilizationPercentage": {}, + "UtilizationPercentageInUnits": {}, + "PurchasedHours": {}, + "PurchasedUnits": {}, + "TotalActualHours": {}, + "TotalActualUnits": {}, + "UnusedHours": {}, + "UnusedUnits": {}, + "OnDemandCostOfRIHoursUsed": {}, + "NetRISavings": {}, + "TotalPotentialRISavings": {}, + "AmortizedUpfrontFee": {}, + "AmortizedRecurringFee": {}, + "TotalAmortizedFee": {}, + "RICostForUnusedHours": {}, + "RealizedSavings": {}, + "UnrealizedSavings": {} + } + }, + "S5c": { + "type": "structure", + "required": [ + "RecommendationTarget", + "BenefitsConsidered" + ], + "members": { + "RecommendationTarget": {}, + "BenefitsConsidered": { + "type": "boolean" + } + } + }, + "S5l": { + "type": "structure", + "members": { + "EC2ResourceDetails": { + "type": "structure", + "members": { + "HourlyOnDemandRate": {}, + "InstanceType": {}, + "Platform": {}, + "Region": {}, + "Sku": {}, + "Memory": {}, + "NetworkPerformance": {}, + "Storage": {}, + "Vcpu": {} + } + } + } + }, + "S5n": { + "type": "structure", + "members": { + "EC2ResourceUtilization": { + "type": "structure", + "members": { + "MaxCpuUtilizationPercentage": {}, + "MaxMemoryUtilizationPercentage": {}, + "MaxStorageUtilizationPercentage": {}, + "EBSResourceUtilization": { + "type": "structure", + "members": { + "EbsReadOpsPerSecond": {}, + "EbsWriteOpsPerSecond": {}, + "EbsReadBytesPerSecond": {}, + "EbsWriteBytesPerSecond": {} + } + }, + "DiskResourceUtilization": { + "type": "structure", + "members": { + "DiskReadOpsPerSecond": {}, + "DiskWriteOpsPerSecond": {}, + "DiskReadBytesPerSecond": {}, + "DiskWriteBytesPerSecond": {} + } + }, + "NetworkResourceUtilization": { + "type": "structure", + "members": { + "NetworkInBytesPerSecond": {}, + "NetworkOutBytesPerSecond": {}, + "NetworkPacketsInPerSecond": {}, + "NetworkPacketsOutPerSecond": {} + } + } + } + } + } + }, + "S6j": { + "type": "structure", + "members": { + "TotalCommitment": {}, + "UsedCommitment": {}, + "UnusedCommitment": {}, + "UtilizationPercentage": {} + } + }, + "S6k": { + "type": "structure", + "members": { + "NetSavings": {}, + "OnDemandCostEquivalent": {} + } + }, + "S6l": { + "type": "structure", + "members": { + "AmortizedRecurringCommitment": {}, + "AmortizedUpfrontCommitment": {}, + "TotalAmortizedCommitment": {} + } + }, + "S6m": { + "type": "structure", + "required": [ + "Utilization" + ], + "members": { + "Utilization": { + "shape": "S6j" + }, + "Savings": { + "shape": "S6k" + }, + "AmortizedCommitment": { + "shape": "S6l" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..431b8e5dc5238f7976a87bc3bc2c0e57eb97314d --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/ce-2017-10-25.paginators.json @@ -0,0 +1,19 @@ +{ + "pagination": { + "GetSavingsPlansCoverage": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "GetSavingsPlansUtilizationDetails": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListCostCategoryDefinitions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.min.json new file mode 100644 index 0000000000000000000000000000000000000000..f91b846e4e5179167182fd8fb3135dde13cae0ec --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.min.json @@ -0,0 +1,7118 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-05-01", + "endpointPrefix": "chime", + "protocol": "rest-json", + "serviceFullName": "Amazon Chime", + "serviceId": "Chime", + "signatureVersion": "v4", + "uid": "chime-2018-05-01" + }, + "operations": { + "AssociatePhoneNumberWithUser": { + "http": { + "requestUri": "/accounts/{accountId}/users/{userId}?operation=associate-phone-number", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId", + "E164PhoneNumber" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + }, + "E164PhoneNumber": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "AssociatePhoneNumbersWithVoiceConnector": { + "http": { + "requestUri": "/voice-connectors/{voiceConnectorId}?operation=associate-phone-numbers", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "E164PhoneNumbers" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "E164PhoneNumbers": { + "shape": "S7" + }, + "ForceAssociate": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberErrors": { + "shape": "Sa" + } + } + } + }, + "AssociatePhoneNumbersWithVoiceConnectorGroup": { + "http": { + "requestUri": "/voice-connector-groups/{voiceConnectorGroupId}?operation=associate-phone-numbers", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorGroupId", + "E164PhoneNumbers" + ], + "members": { + "VoiceConnectorGroupId": { + "location": "uri", + "locationName": "voiceConnectorGroupId" + }, + "E164PhoneNumbers": { + "shape": "S7" + }, + "ForceAssociate": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberErrors": { + "shape": "Sa" + } + } + } + }, + "AssociateSigninDelegateGroupsWithAccount": { + "http": { + "requestUri": "/accounts/{accountId}?operation=associate-signin-delegate-groups", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "SigninDelegateGroups" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "SigninDelegateGroups": { + "shape": "Sg" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "BatchCreateAttendee": { + "http": { + "requestUri": "/meetings/{meetingId}/attendees?operation=batch-create", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "Attendees" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "Attendees": { + "type": "list", + "member": { + "shape": "Sm" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Attendees": { + "shape": "St" + }, + "Errors": { + "shape": "Sw" + } + } + } + }, + "BatchCreateChannelMembership": { + "http": { + "requestUri": "/channels/{channelArn}/memberships?operation=batch-create", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MemberArns" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "Type": {}, + "MemberArns": { + "type": "list", + "member": {} + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "BatchChannelMemberships": { + "type": "structure", + "members": { + "InvitedBy": { + "shape": "S14" + }, + "Type": {}, + "Members": { + "type": "list", + "member": { + "shape": "S14" + } + }, + "ChannelArn": {} + } + }, + "Errors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "MemberArn": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "BatchCreateRoomMembership": { + "http": { + "requestUri": "/accounts/{accountId}/rooms/{roomId}/memberships?operation=batch-create", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId", + "MembershipItemList" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + }, + "MembershipItemList": { + "type": "list", + "member": { + "type": "structure", + "members": { + "MemberId": {}, + "Role": {} + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Errors": { + "type": "list", + "member": { + "type": "structure", + "members": { + "MemberId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + } + } + } + }, + "BatchDeletePhoneNumber": { + "http": { + "requestUri": "/phone-numbers?operation=batch-delete", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "PhoneNumberIds" + ], + "members": { + "PhoneNumberIds": { + "shape": "S1h" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberErrors": { + "shape": "Sa" + } + } + } + }, + "BatchSuspendUser": { + "http": { + "requestUri": "/accounts/{accountId}/users?operation=suspend", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserIdList" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserIdList": { + "shape": "S1k" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserErrors": { + "shape": "S1m" + } + } + } + }, + "BatchUnsuspendUser": { + "http": { + "requestUri": "/accounts/{accountId}/users?operation=unsuspend", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserIdList" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserIdList": { + "shape": "S1k" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserErrors": { + "shape": "S1m" + } + } + } + }, + "BatchUpdatePhoneNumber": { + "http": { + "requestUri": "/phone-numbers?operation=batch-update", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "UpdatePhoneNumberRequestItems" + ], + "members": { + "UpdatePhoneNumberRequestItems": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "PhoneNumberId" + ], + "members": { + "PhoneNumberId": {}, + "ProductType": {}, + "CallingName": { + "shape": "S1u" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberErrors": { + "shape": "Sa" + } + } + } + }, + "BatchUpdateUser": { + "http": { + "requestUri": "/accounts/{accountId}/users", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UpdateUserRequestItems" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UpdateUserRequestItems": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "UserId" + ], + "members": { + "UserId": {}, + "LicenseType": {}, + "UserType": {}, + "AlexaForBusinessMetadata": { + "shape": "S21" + } + } + } + } + } + }, + "output": { + "type": "structure", + "members": { + "UserErrors": { + "shape": "S1m" + } + } + } + }, + "CreateAccount": { + "http": { + "requestUri": "/accounts", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {} + } + }, + "output": { + "type": "structure", + "members": { + "Account": { + "shape": "S28" + } + } + } + }, + "CreateAppInstance": { + "http": { + "requestUri": "/app-instances", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name", + "ClientRequestToken" + ], + "members": { + "Name": { + "shape": "S2d" + }, + "Metadata": { + "shape": "S2e" + }, + "ClientRequestToken": { + "shape": "S2f", + "idempotencyToken": true + }, + "Tags": { + "shape": "S2g" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceArn": {} + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "CreateAppInstanceAdmin": { + "http": { + "requestUri": "/app-instances/{appInstanceArn}/admins", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceAdminArn", + "AppInstanceArn" + ], + "members": { + "AppInstanceAdminArn": {}, + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceAdmin": { + "shape": "S14" + }, + "AppInstanceArn": {} + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "CreateAppInstanceUser": { + "http": { + "requestUri": "/app-instance-users", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn", + "AppInstanceUserId", + "Name", + "ClientRequestToken" + ], + "members": { + "AppInstanceArn": {}, + "AppInstanceUserId": { + "type": "string", + "sensitive": true + }, + "Name": { + "shape": "S2m" + }, + "Metadata": { + "shape": "S2e" + }, + "ClientRequestToken": { + "shape": "S2f", + "idempotencyToken": true + }, + "Tags": { + "shape": "S2g" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceUserArn": {} + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "CreateAttendee": { + "http": { + "requestUri": "/meetings/{meetingId}/attendees", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "ExternalUserId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "ExternalUserId": { + "shape": "Sn" + }, + "Tags": { + "shape": "So" + } + } + }, + "output": { + "type": "structure", + "members": { + "Attendee": { + "shape": "Su" + } + } + } + }, + "CreateBot": { + "http": { + "requestUri": "/accounts/{accountId}/bots", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "DisplayName", + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "DisplayName": { + "shape": "S23" + }, + "Domain": {} + } + }, + "output": { + "type": "structure", + "members": { + "Bot": { + "shape": "S2s" + } + } + } + }, + "CreateChannel": { + "http": { + "requestUri": "/channels", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn", + "Name", + "ClientRequestToken" + ], + "members": { + "AppInstanceArn": {}, + "Name": { + "shape": "S2d" + }, + "Mode": {}, + "Privacy": {}, + "Metadata": { + "shape": "S2e" + }, + "ClientRequestToken": { + "shape": "S2f", + "idempotencyToken": true + }, + "Tags": { + "shape": "S2g" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {} + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "CreateChannelBan": { + "http": { + "requestUri": "/channels/{channelArn}/bans", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MemberArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MemberArn": {}, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "Member": { + "shape": "S14" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "CreateChannelMembership": { + "http": { + "requestUri": "/channels/{channelArn}/memberships", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MemberArn", + "Type" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MemberArn": {}, + "Type": {}, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "Member": { + "shape": "S14" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "CreateChannelModerator": { + "http": { + "requestUri": "/channels/{channelArn}/moderators", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "ChannelModeratorArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "ChannelModeratorArn": {}, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "ChannelModerator": { + "shape": "S14" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "CreateMeeting": { + "http": { + "requestUri": "/meetings", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ClientRequestToken" + ], + "members": { + "ClientRequestToken": { + "shape": "S2f", + "idempotencyToken": true + }, + "ExternalMeetingId": { + "shape": "S35" + }, + "MeetingHostId": { + "shape": "Sn" + }, + "MediaRegion": {}, + "Tags": { + "shape": "S36" + }, + "NotificationsConfiguration": { + "shape": "S37" + } + } + }, + "output": { + "type": "structure", + "members": { + "Meeting": { + "shape": "S3a" + } + } + } + }, + "CreateMeetingDialOut": { + "http": { + "requestUri": "/meetings/{meetingId}/dial-outs", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "FromPhoneNumber", + "ToPhoneNumber", + "JoinToken" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "FromPhoneNumber": { + "shape": "S3" + }, + "ToPhoneNumber": { + "shape": "S3" + }, + "JoinToken": { + "shape": "Sv" + } + } + }, + "output": { + "type": "structure", + "members": { + "TransactionId": {} + } + } + }, + "CreateMeetingWithAttendees": { + "http": { + "requestUri": "/meetings?operation=create-attendees", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ClientRequestToken" + ], + "members": { + "ClientRequestToken": { + "shape": "S2f", + "idempotencyToken": true + }, + "ExternalMeetingId": { + "shape": "S35" + }, + "MeetingHostId": { + "shape": "Sn" + }, + "MediaRegion": {}, + "Tags": { + "shape": "S36" + }, + "NotificationsConfiguration": { + "shape": "S37" + }, + "Attendees": { + "type": "list", + "member": { + "shape": "Sm" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "Meeting": { + "shape": "S3a" + }, + "Attendees": { + "shape": "St" + }, + "Errors": { + "shape": "Sw" + } + } + } + }, + "CreatePhoneNumberOrder": { + "http": { + "requestUri": "/phone-number-orders", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ProductType", + "E164PhoneNumbers" + ], + "members": { + "ProductType": {}, + "E164PhoneNumbers": { + "shape": "S7" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberOrder": { + "shape": "S3k" + } + } + } + }, + "CreateProxySession": { + "http": { + "requestUri": "/voice-connectors/{voiceConnectorId}/proxy-sessions", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ParticipantPhoneNumbers", + "Capabilities", + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "ParticipantPhoneNumbers": { + "type": "list", + "member": { + "shape": "S3" + } + }, + "Name": { + "type": "string", + "sensitive": true + }, + "ExpiryMinutes": { + "type": "integer" + }, + "Capabilities": { + "shape": "S3u" + }, + "NumberSelectionBehavior": {}, + "GeoMatchLevel": {}, + "GeoMatchParams": { + "shape": "S3y" + } + } + }, + "output": { + "type": "structure", + "members": { + "ProxySession": { + "shape": "S42" + } + } + } + }, + "CreateRoom": { + "http": { + "requestUri": "/accounts/{accountId}/rooms", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "Name" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "Name": { + "shape": "S23" + }, + "ClientRequestToken": { + "shape": "S2f", + "idempotencyToken": true + } + } + }, + "output": { + "type": "structure", + "members": { + "Room": { + "shape": "S49" + } + } + } + }, + "CreateRoomMembership": { + "http": { + "requestUri": "/accounts/{accountId}/rooms/{roomId}/memberships", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId", + "MemberId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + }, + "MemberId": {}, + "Role": {} + } + }, + "output": { + "type": "structure", + "members": { + "RoomMembership": { + "shape": "S4c" + } + } + } + }, + "CreateSipMediaApplication": { + "http": { + "requestUri": "/sip-media-applications", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AwsRegion", + "Name", + "Endpoints" + ], + "members": { + "AwsRegion": {}, + "Name": {}, + "Endpoints": { + "shape": "S4h" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplication": { + "shape": "S4l" + } + } + } + }, + "CreateSipMediaApplicationCall": { + "http": { + "requestUri": "/sip-media-applications/{sipMediaApplicationId}/calls", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "FromPhoneNumber", + "ToPhoneNumber", + "SipMediaApplicationId" + ], + "members": { + "FromPhoneNumber": { + "shape": "S3" + }, + "ToPhoneNumber": { + "shape": "S3" + }, + "SipMediaApplicationId": { + "location": "uri", + "locationName": "sipMediaApplicationId" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplicationCall": { + "shape": "S4o" + } + } + } + }, + "CreateSipRule": { + "http": { + "requestUri": "/sip-rules", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name", + "TriggerType", + "TriggerValue", + "TargetApplications" + ], + "members": { + "Name": {}, + "TriggerType": {}, + "TriggerValue": {}, + "Disabled": { + "type": "boolean" + }, + "TargetApplications": { + "shape": "S4s" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipRule": { + "shape": "S4w" + } + } + } + }, + "CreateUser": { + "http": { + "requestUri": "/accounts/{accountId}/users?operation=create", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "Username": {}, + "Email": { + "shape": "S4y" + }, + "UserType": {} + } + }, + "output": { + "type": "structure", + "members": { + "User": { + "shape": "S50" + } + } + } + }, + "CreateVoiceConnector": { + "http": { + "requestUri": "/voice-connectors", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name", + "RequireEncryption" + ], + "members": { + "Name": {}, + "AwsRegion": {}, + "RequireEncryption": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnector": { + "shape": "S57" + } + } + } + }, + "CreateVoiceConnectorGroup": { + "http": { + "requestUri": "/voice-connector-groups", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Name" + ], + "members": { + "Name": {}, + "VoiceConnectorItems": { + "shape": "S5a" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnectorGroup": { + "shape": "S5e" + } + } + } + }, + "DeleteAccount": { + "http": { + "method": "DELETE", + "requestUri": "/accounts/{accountId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DeleteAppInstance": { + "http": { + "method": "DELETE", + "requestUri": "/app-instances/{appInstanceArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "DeleteAppInstanceAdmin": { + "http": { + "method": "DELETE", + "requestUri": "/app-instances/{appInstanceArn}/admins/{appInstanceAdminArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceAdminArn", + "AppInstanceArn" + ], + "members": { + "AppInstanceAdminArn": { + "location": "uri", + "locationName": "appInstanceAdminArn" + }, + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "DeleteAppInstanceStreamingConfigurations": { + "http": { + "method": "DELETE", + "requestUri": "/app-instances/{appInstanceArn}/streaming-configurations", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + } + }, + "DeleteAppInstanceUser": { + "http": { + "method": "DELETE", + "requestUri": "/app-instance-users/{appInstanceUserArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceUserArn" + ], + "members": { + "AppInstanceUserArn": { + "location": "uri", + "locationName": "appInstanceUserArn" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "DeleteAttendee": { + "http": { + "method": "DELETE", + "requestUri": "/meetings/{meetingId}/attendees/{attendeeId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "AttendeeId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "AttendeeId": { + "location": "uri", + "locationName": "attendeeId" + } + } + } + }, + "DeleteChannel": { + "http": { + "method": "DELETE", + "requestUri": "/channels/{channelArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DeleteChannelBan": { + "http": { + "method": "DELETE", + "requestUri": "/channels/{channelArn}/bans/{memberArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MemberArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MemberArn": { + "location": "uri", + "locationName": "memberArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DeleteChannelMembership": { + "http": { + "method": "DELETE", + "requestUri": "/channels/{channelArn}/memberships/{memberArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MemberArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MemberArn": { + "location": "uri", + "locationName": "memberArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DeleteChannelMessage": { + "http": { + "method": "DELETE", + "requestUri": "/channels/{channelArn}/messages/{messageId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MessageId" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MessageId": { + "location": "uri", + "locationName": "messageId" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DeleteChannelModerator": { + "http": { + "method": "DELETE", + "requestUri": "/channels/{channelArn}/moderators/{channelModeratorArn}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "ChannelModeratorArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "ChannelModeratorArn": { + "location": "uri", + "locationName": "channelModeratorArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DeleteEventsConfiguration": { + "http": { + "method": "DELETE", + "requestUri": "/accounts/{accountId}/bots/{botId}/events-configuration", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "BotId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "BotId": { + "location": "uri", + "locationName": "botId" + } + } + } + }, + "DeleteMeeting": { + "http": { + "method": "DELETE", + "requestUri": "/meetings/{meetingId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + } + } + } + }, + "DeletePhoneNumber": { + "http": { + "method": "DELETE", + "requestUri": "/phone-numbers/{phoneNumberId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "PhoneNumberId" + ], + "members": { + "PhoneNumberId": { + "location": "uri", + "locationName": "phoneNumberId" + } + } + } + }, + "DeleteProxySession": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "ProxySessionId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "ProxySessionId": { + "location": "uri", + "locationName": "proxySessionId" + } + } + } + }, + "DeleteRoom": { + "http": { + "method": "DELETE", + "requestUri": "/accounts/{accountId}/rooms/{roomId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + } + } + } + }, + "DeleteRoomMembership": { + "http": { + "method": "DELETE", + "requestUri": "/accounts/{accountId}/rooms/{roomId}/memberships/{memberId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId", + "MemberId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + }, + "MemberId": { + "location": "uri", + "locationName": "memberId" + } + } + } + }, + "DeleteSipMediaApplication": { + "http": { + "method": "DELETE", + "requestUri": "/sip-media-applications/{sipMediaApplicationId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "SipMediaApplicationId" + ], + "members": { + "SipMediaApplicationId": { + "location": "uri", + "locationName": "sipMediaApplicationId" + } + } + } + }, + "DeleteSipRule": { + "http": { + "method": "DELETE", + "requestUri": "/sip-rules/{sipRuleId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "SipRuleId" + ], + "members": { + "SipRuleId": { + "location": "uri", + "locationName": "sipRuleId" + } + } + } + }, + "DeleteVoiceConnector": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connectors/{voiceConnectorId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + } + }, + "DeleteVoiceConnectorEmergencyCallingConfiguration": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connectors/{voiceConnectorId}/emergency-calling-configuration", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + } + }, + "DeleteVoiceConnectorGroup": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connector-groups/{voiceConnectorGroupId}", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorGroupId" + ], + "members": { + "VoiceConnectorGroupId": { + "location": "uri", + "locationName": "voiceConnectorGroupId" + } + } + } + }, + "DeleteVoiceConnectorOrigination": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connectors/{voiceConnectorId}/origination", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + } + }, + "DeleteVoiceConnectorProxy": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + } + }, + "DeleteVoiceConnectorStreamingConfiguration": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connectors/{voiceConnectorId}/streaming-configuration", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + } + }, + "DeleteVoiceConnectorTermination": { + "http": { + "method": "DELETE", + "requestUri": "/voice-connectors/{voiceConnectorId}/termination", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + } + }, + "DeleteVoiceConnectorTerminationCredentials": { + "http": { + "requestUri": "/voice-connectors/{voiceConnectorId}/termination/credentials?operation=delete", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "Usernames", + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "Usernames": { + "shape": "S68" + } + } + } + }, + "DescribeAppInstance": { + "http": { + "method": "GET", + "requestUri": "/app-instances/{appInstanceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstance": { + "type": "structure", + "members": { + "AppInstanceArn": {}, + "Name": { + "shape": "S2d" + }, + "Metadata": { + "shape": "S2e" + }, + "CreatedTimestamp": { + "type": "timestamp" + }, + "LastUpdatedTimestamp": { + "type": "timestamp" + } + } + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "DescribeAppInstanceAdmin": { + "http": { + "method": "GET", + "requestUri": "/app-instances/{appInstanceArn}/admins/{appInstanceAdminArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceAdminArn", + "AppInstanceArn" + ], + "members": { + "AppInstanceAdminArn": { + "location": "uri", + "locationName": "appInstanceAdminArn" + }, + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceAdmin": { + "type": "structure", + "members": { + "Admin": { + "shape": "S14" + }, + "AppInstanceArn": {}, + "CreatedTimestamp": { + "type": "timestamp" + } + } + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "DescribeAppInstanceUser": { + "http": { + "method": "GET", + "requestUri": "/app-instance-users/{appInstanceUserArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceUserArn" + ], + "members": { + "AppInstanceUserArn": { + "location": "uri", + "locationName": "appInstanceUserArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceUser": { + "type": "structure", + "members": { + "AppInstanceUserArn": {}, + "Name": { + "shape": "S2m" + }, + "CreatedTimestamp": { + "type": "timestamp" + }, + "Metadata": { + "shape": "S2e" + }, + "LastUpdatedTimestamp": { + "type": "timestamp" + } + } + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "DescribeChannel": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Channel": { + "type": "structure", + "members": { + "Name": { + "shape": "S2d" + }, + "ChannelArn": {}, + "Mode": {}, + "Privacy": {}, + "Metadata": { + "shape": "S2e" + }, + "CreatedBy": { + "shape": "S14" + }, + "CreatedTimestamp": { + "type": "timestamp" + }, + "LastMessageTimestamp": { + "type": "timestamp" + }, + "LastUpdatedTimestamp": { + "type": "timestamp" + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DescribeChannelBan": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/bans/{memberArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MemberArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MemberArn": { + "location": "uri", + "locationName": "memberArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelBan": { + "type": "structure", + "members": { + "Member": { + "shape": "S14" + }, + "ChannelArn": {}, + "CreatedTimestamp": { + "type": "timestamp" + }, + "CreatedBy": { + "shape": "S14" + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DescribeChannelMembership": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/memberships/{memberArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MemberArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MemberArn": { + "location": "uri", + "locationName": "memberArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelMembership": { + "type": "structure", + "members": { + "InvitedBy": { + "shape": "S14" + }, + "Type": {}, + "Member": { + "shape": "S14" + }, + "ChannelArn": {}, + "CreatedTimestamp": { + "type": "timestamp" + }, + "LastUpdatedTimestamp": { + "type": "timestamp" + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DescribeChannelMembershipForAppInstanceUser": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}?scope=app-instance-user-membership", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "AppInstanceUserArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "AppInstanceUserArn": { + "location": "querystring", + "locationName": "app-instance-user-arn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelMembership": { + "shape": "S6u" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DescribeChannelModeratedByAppInstanceUser": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}?scope=app-instance-user-moderated-channel", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "AppInstanceUserArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "AppInstanceUserArn": { + "location": "querystring", + "locationName": "app-instance-user-arn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Channel": { + "shape": "S6z" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DescribeChannelModerator": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/moderators/{channelModeratorArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "ChannelModeratorArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "ChannelModeratorArn": { + "location": "uri", + "locationName": "channelModeratorArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelModerator": { + "type": "structure", + "members": { + "Moderator": { + "shape": "S14" + }, + "ChannelArn": {}, + "CreatedTimestamp": { + "type": "timestamp" + }, + "CreatedBy": { + "shape": "S14" + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "DisassociatePhoneNumberFromUser": { + "http": { + "requestUri": "/accounts/{accountId}/users/{userId}?operation=disassociate-phone-number", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DisassociatePhoneNumbersFromVoiceConnector": { + "http": { + "requestUri": "/voice-connectors/{voiceConnectorId}?operation=disassociate-phone-numbers", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "E164PhoneNumbers" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "E164PhoneNumbers": { + "shape": "S7" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberErrors": { + "shape": "Sa" + } + } + } + }, + "DisassociatePhoneNumbersFromVoiceConnectorGroup": { + "http": { + "requestUri": "/voice-connector-groups/{voiceConnectorGroupId}?operation=disassociate-phone-numbers", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorGroupId", + "E164PhoneNumbers" + ], + "members": { + "VoiceConnectorGroupId": { + "location": "uri", + "locationName": "voiceConnectorGroupId" + }, + "E164PhoneNumbers": { + "shape": "S7" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberErrors": { + "shape": "Sa" + } + } + } + }, + "DisassociateSigninDelegateGroupsFromAccount": { + "http": { + "requestUri": "/accounts/{accountId}?operation=disassociate-signin-delegate-groups", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "GroupNames" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "GroupNames": { + "shape": "S1h" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "GetAccount": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}" + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Account": { + "shape": "S28" + } + } + } + }, + "GetAccountSettings": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/settings" + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + } + } + }, + "output": { + "type": "structure", + "members": { + "AccountSettings": { + "shape": "S7f" + } + } + } + }, + "GetAppInstanceRetentionSettings": { + "http": { + "method": "GET", + "requestUri": "/app-instances/{appInstanceArn}/retention-settings", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceRetentionSettings": { + "shape": "S7i" + }, + "InitiateDeletionTimestamp": { + "type": "timestamp" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "GetAppInstanceStreamingConfigurations": { + "http": { + "method": "GET", + "requestUri": "/app-instances/{appInstanceArn}/streaming-configurations", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceStreamingConfigurations": { + "shape": "S7n" + } + } + } + }, + "GetAttendee": { + "http": { + "method": "GET", + "requestUri": "/meetings/{meetingId}/attendees/{attendeeId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "AttendeeId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "AttendeeId": { + "location": "uri", + "locationName": "attendeeId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Attendee": { + "shape": "Su" + } + } + } + }, + "GetBot": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/bots/{botId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "BotId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "BotId": { + "location": "uri", + "locationName": "botId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bot": { + "shape": "S2s" + } + } + } + }, + "GetChannelMessage": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/messages/{messageId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MessageId" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MessageId": { + "location": "uri", + "locationName": "messageId" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelMessage": { + "type": "structure", + "members": { + "ChannelArn": {}, + "MessageId": {}, + "Content": { + "shape": "S7x" + }, + "Metadata": { + "shape": "S2e" + }, + "Type": {}, + "CreatedTimestamp": { + "type": "timestamp" + }, + "LastEditedTimestamp": { + "type": "timestamp" + }, + "LastUpdatedTimestamp": { + "type": "timestamp" + }, + "Sender": { + "shape": "S14" + }, + "Redacted": { + "type": "boolean" + }, + "Persistence": {} + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "GetEventsConfiguration": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/bots/{botId}/events-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "BotId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "BotId": { + "location": "uri", + "locationName": "botId" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventsConfiguration": { + "shape": "S83" + } + } + } + }, + "GetGlobalSettings": { + "http": { + "method": "GET", + "requestUri": "/settings", + "responseCode": 200 + }, + "output": { + "type": "structure", + "members": { + "BusinessCalling": { + "shape": "S85" + }, + "VoiceConnector": { + "shape": "S86" + } + } + } + }, + "GetMeeting": { + "http": { + "method": "GET", + "requestUri": "/meetings/{meetingId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Meeting": { + "shape": "S3a" + } + } + } + }, + "GetMessagingSessionEndpoint": { + "http": { + "method": "GET", + "requestUri": "/endpoints/messaging-session", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": {} + }, + "output": { + "type": "structure", + "members": { + "Endpoint": { + "type": "structure", + "members": { + "Url": {} + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "GetPhoneNumber": { + "http": { + "method": "GET", + "requestUri": "/phone-numbers/{phoneNumberId}" + }, + "input": { + "type": "structure", + "required": [ + "PhoneNumberId" + ], + "members": { + "PhoneNumberId": { + "location": "uri", + "locationName": "phoneNumberId" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumber": { + "shape": "S8f" + } + } + } + }, + "GetPhoneNumberOrder": { + "http": { + "method": "GET", + "requestUri": "/phone-number-orders/{phoneNumberOrderId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "PhoneNumberOrderId" + ], + "members": { + "PhoneNumberOrderId": { + "location": "uri", + "locationName": "phoneNumberOrderId" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberOrder": { + "shape": "S3k" + } + } + } + }, + "GetPhoneNumberSettings": { + "http": { + "method": "GET", + "requestUri": "/settings/phone-number", + "responseCode": 200 + }, + "output": { + "type": "structure", + "members": { + "CallingName": { + "shape": "S1u" + }, + "CallingNameUpdatedTimestamp": { + "shape": "S2a" + } + } + } + }, + "GetProxySession": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "ProxySessionId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "ProxySessionId": { + "location": "uri", + "locationName": "proxySessionId" + } + } + }, + "output": { + "type": "structure", + "members": { + "ProxySession": { + "shape": "S42" + } + } + } + }, + "GetRetentionSettings": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/retention-settings" + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + } + } + }, + "output": { + "type": "structure", + "members": { + "RetentionSettings": { + "shape": "S8v" + }, + "InitiateDeletionTimestamp": { + "shape": "S2a" + } + } + } + }, + "GetRoom": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/rooms/{roomId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Room": { + "shape": "S49" + } + } + } + }, + "GetSipMediaApplication": { + "http": { + "method": "GET", + "requestUri": "/sip-media-applications/{sipMediaApplicationId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "SipMediaApplicationId" + ], + "members": { + "SipMediaApplicationId": { + "location": "uri", + "locationName": "sipMediaApplicationId" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplication": { + "shape": "S4l" + } + } + } + }, + "GetSipMediaApplicationLoggingConfiguration": { + "http": { + "method": "GET", + "requestUri": "/sip-media-applications/{sipMediaApplicationId}/logging-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "SipMediaApplicationId" + ], + "members": { + "SipMediaApplicationId": { + "location": "uri", + "locationName": "sipMediaApplicationId" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplicationLoggingConfiguration": { + "shape": "S94" + } + } + } + }, + "GetSipRule": { + "http": { + "method": "GET", + "requestUri": "/sip-rules/{sipRuleId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "SipRuleId" + ], + "members": { + "SipRuleId": { + "location": "uri", + "locationName": "sipRuleId" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipRule": { + "shape": "S4w" + } + } + } + }, + "GetUser": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/users/{userId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + } + } + }, + "output": { + "type": "structure", + "members": { + "User": { + "shape": "S50" + } + } + } + }, + "GetUserSettings": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/users/{userId}/settings", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + } + } + }, + "output": { + "type": "structure", + "members": { + "UserSettings": { + "shape": "S9b" + } + } + } + }, + "GetVoiceConnector": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnector": { + "shape": "S57" + } + } + } + }, + "GetVoiceConnectorEmergencyCallingConfiguration": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/emergency-calling-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "EmergencyCallingConfiguration": { + "shape": "S9h" + } + } + } + }, + "GetVoiceConnectorGroup": { + "http": { + "method": "GET", + "requestUri": "/voice-connector-groups/{voiceConnectorGroupId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorGroupId" + ], + "members": { + "VoiceConnectorGroupId": { + "location": "uri", + "locationName": "voiceConnectorGroupId" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnectorGroup": { + "shape": "S5e" + } + } + } + }, + "GetVoiceConnectorLoggingConfiguration": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/logging-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "LoggingConfiguration": { + "shape": "S9o" + } + } + } + }, + "GetVoiceConnectorOrigination": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/origination", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Origination": { + "shape": "S9r" + } + } + } + }, + "GetVoiceConnectorProxy": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Proxy": { + "shape": "Sa0" + } + } + } + }, + "GetVoiceConnectorStreamingConfiguration": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/streaming-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "StreamingConfiguration": { + "shape": "Sa5" + } + } + } + }, + "GetVoiceConnectorTermination": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/termination", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Termination": { + "shape": "Sac" + } + } + } + }, + "GetVoiceConnectorTerminationHealth": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/termination/health", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "TerminationHealth": { + "type": "structure", + "members": { + "Timestamp": { + "shape": "S2a" + }, + "Source": {} + } + } + } + } + }, + "InviteUsers": { + "http": { + "requestUri": "/accounts/{accountId}/users?operation=add", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserEmailList" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserEmailList": { + "type": "list", + "member": { + "shape": "S4y" + } + }, + "UserType": {} + } + }, + "output": { + "type": "structure", + "members": { + "Invites": { + "type": "list", + "member": { + "type": "structure", + "members": { + "InviteId": {}, + "Status": {}, + "EmailAddress": { + "shape": "S4y" + }, + "EmailStatus": {} + } + } + } + } + } + }, + "ListAccounts": { + "http": { + "method": "GET", + "requestUri": "/accounts" + }, + "input": { + "type": "structure", + "members": { + "Name": { + "location": "querystring", + "locationName": "name" + }, + "UserEmail": { + "shape": "S4y", + "location": "querystring", + "locationName": "user-email" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Accounts": { + "type": "list", + "member": { + "shape": "S28" + } + }, + "NextToken": {} + } + } + }, + "ListAppInstanceAdmins": { + "http": { + "method": "GET", + "requestUri": "/app-instances/{appInstanceArn}/admins", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceArn": {}, + "AppInstanceAdmins": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Admin": { + "shape": "S14" + } + } + } + }, + "NextToken": { + "shape": "Sav" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "ListAppInstanceUsers": { + "http": { + "method": "GET", + "requestUri": "/app-instance-users", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "querystring", + "locationName": "app-instance-arn" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceArn": {}, + "AppInstanceUsers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AppInstanceUserArn": {}, + "Name": { + "shape": "S2m" + }, + "Metadata": { + "shape": "S2e" + } + } + } + }, + "NextToken": { + "shape": "Sav" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "ListAppInstances": { + "http": { + "method": "GET", + "requestUri": "/app-instances", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstances": { + "type": "list", + "member": { + "type": "structure", + "members": { + "AppInstanceArn": {}, + "Name": { + "shape": "S2d" + }, + "Metadata": { + "shape": "S2e" + } + } + } + }, + "NextToken": { + "shape": "Sav" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "ListAttendeeTags": { + "http": { + "method": "GET", + "requestUri": "/meetings/{meetingId}/attendees/{attendeeId}/tags", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "AttendeeId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "AttendeeId": { + "location": "uri", + "locationName": "attendeeId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S2g" + } + } + } + }, + "ListAttendees": { + "http": { + "method": "GET", + "requestUri": "/meetings/{meetingId}/attendees", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Attendees": { + "shape": "St" + }, + "NextToken": {} + } + } + }, + "ListBots": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/bots", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bots": { + "type": "list", + "member": { + "shape": "S2s" + } + }, + "NextToken": {} + } + } + }, + "ListChannelBans": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/bans", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "NextToken": { + "shape": "Sav" + }, + "ChannelBans": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Member": { + "shape": "S14" + } + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "ListChannelMemberships": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/memberships", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "Type": { + "location": "querystring", + "locationName": "type" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "ChannelMemberships": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Member": { + "shape": "S14" + } + } + } + }, + "NextToken": { + "shape": "Sav" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "ListChannelMembershipsForAppInstanceUser": { + "http": { + "method": "GET", + "requestUri": "/channels?scope=app-instance-user-memberships", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppInstanceUserArn": { + "location": "querystring", + "locationName": "app-instance-user-arn" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelMemberships": { + "type": "list", + "member": { + "shape": "S6u" + } + }, + "NextToken": { + "shape": "Sav" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "ListChannelMessages": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/messages", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "SortOrder": { + "location": "querystring", + "locationName": "sort-order" + }, + "NotBefore": { + "location": "querystring", + "locationName": "not-before", + "type": "timestamp" + }, + "NotAfter": { + "location": "querystring", + "locationName": "not-after", + "type": "timestamp" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "NextToken": { + "shape": "Sav" + }, + "ChannelMessages": { + "type": "list", + "member": { + "type": "structure", + "members": { + "MessageId": {}, + "Content": { + "shape": "S7x" + }, + "Metadata": { + "shape": "S2e" + }, + "Type": {}, + "CreatedTimestamp": { + "type": "timestamp" + }, + "LastUpdatedTimestamp": { + "type": "timestamp" + }, + "LastEditedTimestamp": { + "type": "timestamp" + }, + "Sender": { + "shape": "S14" + }, + "Redacted": { + "type": "boolean" + } + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "ListChannelModerators": { + "http": { + "method": "GET", + "requestUri": "/channels/{channelArn}/moderators", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "NextToken": { + "shape": "Sav" + }, + "ChannelModerators": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Moderator": { + "shape": "S14" + } + } + } + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "ListChannels": { + "http": { + "method": "GET", + "requestUri": "/channels", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn" + ], + "members": { + "AppInstanceArn": { + "location": "querystring", + "locationName": "app-instance-arn" + }, + "Privacy": { + "location": "querystring", + "locationName": "privacy" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Channels": { + "type": "list", + "member": { + "shape": "S6v" + } + }, + "NextToken": { + "shape": "Sav" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "ListChannelsModeratedByAppInstanceUser": { + "http": { + "method": "GET", + "requestUri": "/channels?scope=app-instance-user-moderated-channels", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "AppInstanceUserArn": { + "location": "querystring", + "locationName": "app-instance-user-arn" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "shape": "Sav", + "location": "querystring", + "locationName": "next-token" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Channels": { + "type": "list", + "member": { + "shape": "S6z" + } + }, + "NextToken": { + "shape": "Sav" + } + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "ListMeetingTags": { + "http": { + "method": "GET", + "requestUri": "/meetings/{meetingId}/tags", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S2g" + } + } + } + }, + "ListMeetings": { + "http": { + "method": "GET", + "requestUri": "/meetings", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "next-token" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "Meetings": { + "type": "list", + "member": { + "shape": "S3a" + } + }, + "NextToken": {} + } + } + }, + "ListPhoneNumberOrders": { + "http": { + "method": "GET", + "requestUri": "/phone-number-orders", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "next-token" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberOrders": { + "type": "list", + "member": { + "shape": "S3k" + } + }, + "NextToken": {} + } + } + }, + "ListPhoneNumbers": { + "http": { + "method": "GET", + "requestUri": "/phone-numbers" + }, + "input": { + "type": "structure", + "members": { + "Status": { + "location": "querystring", + "locationName": "status" + }, + "ProductType": { + "location": "querystring", + "locationName": "product-type" + }, + "FilterName": { + "location": "querystring", + "locationName": "filter-name" + }, + "FilterValue": { + "location": "querystring", + "locationName": "filter-value" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumbers": { + "type": "list", + "member": { + "shape": "S8f" + } + }, + "NextToken": {} + } + } + }, + "ListProxySessions": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/proxy-sessions", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "Status": { + "location": "querystring", + "locationName": "status" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ProxySessions": { + "type": "list", + "member": { + "shape": "S42" + } + }, + "NextToken": {} + } + } + }, + "ListRoomMemberships": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/rooms/{roomId}/memberships", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "RoomMemberships": { + "type": "list", + "member": { + "shape": "S4c" + } + }, + "NextToken": {} + } + } + }, + "ListRooms": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/rooms", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "MemberId": { + "location": "querystring", + "locationName": "member-id" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Rooms": { + "type": "list", + "member": { + "shape": "S49" + } + }, + "NextToken": {} + } + } + }, + "ListSipMediaApplications": { + "http": { + "method": "GET", + "requestUri": "/sip-media-applications", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplications": { + "type": "list", + "member": { + "shape": "S4l" + } + }, + "NextToken": {} + } + } + }, + "ListSipRules": { + "http": { + "method": "GET", + "requestUri": "/sip-rules", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "SipMediaApplicationId": { + "location": "querystring", + "locationName": "sip-media-application" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipRules": { + "type": "list", + "member": { + "shape": "S4w" + } + }, + "NextToken": {} + } + } + }, + "ListSupportedPhoneNumberCountries": { + "http": { + "method": "GET", + "requestUri": "/phone-number-countries", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ProductType" + ], + "members": { + "ProductType": { + "location": "querystring", + "locationName": "product-type" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumberCountries": { + "type": "list", + "member": { + "type": "structure", + "members": { + "CountryCode": {}, + "SupportedPhoneNumberTypes": { + "type": "list", + "member": {} + } + } + } + } + } + } + }, + "ListTagsForResource": { + "http": { + "method": "GET", + "requestUri": "/tags" + }, + "input": { + "type": "structure", + "required": [ + "ResourceARN" + ], + "members": { + "ResourceARN": { + "shape": "S38", + "location": "querystring", + "locationName": "arn" + } + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "S2g" + } + } + } + }, + "ListUsers": { + "http": { + "method": "GET", + "requestUri": "/accounts/{accountId}/users", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserEmail": { + "shape": "S4y", + "location": "querystring", + "locationName": "user-email" + }, + "UserType": { + "location": "querystring", + "locationName": "user-type" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "Users": { + "type": "list", + "member": { + "shape": "S50" + } + }, + "NextToken": {} + } + } + }, + "ListVoiceConnectorGroups": { + "http": { + "method": "GET", + "requestUri": "/voice-connector-groups", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "next-token" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnectorGroups": { + "type": "list", + "member": { + "shape": "S5e" + } + }, + "NextToken": {} + } + } + }, + "ListVoiceConnectorTerminationCredentials": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors/{voiceConnectorId}/termination/credentials", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Usernames": { + "shape": "S68" + } + } + } + }, + "ListVoiceConnectors": { + "http": { + "method": "GET", + "requestUri": "/voice-connectors", + "responseCode": 200 + }, + "input": { + "type": "structure", + "members": { + "NextToken": { + "location": "querystring", + "locationName": "next-token" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnectors": { + "type": "list", + "member": { + "shape": "S57" + } + }, + "NextToken": {} + } + } + }, + "LogoutUser": { + "http": { + "requestUri": "/accounts/{accountId}/users/{userId}?operation=logout", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "PutAppInstanceRetentionSettings": { + "http": { + "method": "PUT", + "requestUri": "/app-instances/{appInstanceArn}/retention-settings", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn", + "AppInstanceRetentionSettings" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + }, + "AppInstanceRetentionSettings": { + "shape": "S7i" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceRetentionSettings": { + "shape": "S7i" + }, + "InitiateDeletionTimestamp": { + "type": "timestamp" + } + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "PutAppInstanceStreamingConfigurations": { + "http": { + "method": "PUT", + "requestUri": "/app-instances/{appInstanceArn}/streaming-configurations", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn", + "AppInstanceStreamingConfigurations" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + }, + "AppInstanceStreamingConfigurations": { + "shape": "S7n" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceStreamingConfigurations": { + "shape": "S7n" + } + } + } + }, + "PutEventsConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/accounts/{accountId}/bots/{botId}/events-configuration", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "BotId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "BotId": { + "location": "uri", + "locationName": "botId" + }, + "OutboundEventsHTTPSEndpoint": { + "shape": "S23" + }, + "LambdaFunctionArn": { + "shape": "S23" + } + } + }, + "output": { + "type": "structure", + "members": { + "EventsConfiguration": { + "shape": "S83" + } + } + } + }, + "PutRetentionSettings": { + "http": { + "method": "PUT", + "requestUri": "/accounts/{accountId}/retention-settings", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RetentionSettings" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RetentionSettings": { + "shape": "S8v" + } + } + }, + "output": { + "type": "structure", + "members": { + "RetentionSettings": { + "shape": "S8v" + }, + "InitiateDeletionTimestamp": { + "shape": "S2a" + } + } + } + }, + "PutSipMediaApplicationLoggingConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/sip-media-applications/{sipMediaApplicationId}/logging-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "SipMediaApplicationId" + ], + "members": { + "SipMediaApplicationId": { + "location": "uri", + "locationName": "sipMediaApplicationId" + }, + "SipMediaApplicationLoggingConfiguration": { + "shape": "S94" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplicationLoggingConfiguration": { + "shape": "S94" + } + } + } + }, + "PutVoiceConnectorEmergencyCallingConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/voice-connectors/{voiceConnectorId}/emergency-calling-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "EmergencyCallingConfiguration" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "EmergencyCallingConfiguration": { + "shape": "S9h" + } + } + }, + "output": { + "type": "structure", + "members": { + "EmergencyCallingConfiguration": { + "shape": "S9h" + } + } + } + }, + "PutVoiceConnectorLoggingConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/voice-connectors/{voiceConnectorId}/logging-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "LoggingConfiguration" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "LoggingConfiguration": { + "shape": "S9o" + } + } + }, + "output": { + "type": "structure", + "members": { + "LoggingConfiguration": { + "shape": "S9o" + } + } + } + }, + "PutVoiceConnectorOrigination": { + "http": { + "method": "PUT", + "requestUri": "/voice-connectors/{voiceConnectorId}/origination", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "Origination" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "Origination": { + "shape": "S9r" + } + } + }, + "output": { + "type": "structure", + "members": { + "Origination": { + "shape": "S9r" + } + } + } + }, + "PutVoiceConnectorProxy": { + "http": { + "method": "PUT", + "requestUri": "/voice-connectors/{voiceConnectorId}/programmable-numbers/proxy" + }, + "input": { + "type": "structure", + "required": [ + "DefaultSessionExpiryMinutes", + "PhoneNumberPoolCountries", + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "DefaultSessionExpiryMinutes": { + "type": "integer" + }, + "PhoneNumberPoolCountries": { + "type": "list", + "member": {} + }, + "FallBackPhoneNumber": { + "shape": "S3" + }, + "Disabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Proxy": { + "shape": "Sa0" + } + } + } + }, + "PutVoiceConnectorStreamingConfiguration": { + "http": { + "method": "PUT", + "requestUri": "/voice-connectors/{voiceConnectorId}/streaming-configuration", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "StreamingConfiguration" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "StreamingConfiguration": { + "shape": "Sa5" + } + } + }, + "output": { + "type": "structure", + "members": { + "StreamingConfiguration": { + "shape": "Sa5" + } + } + } + }, + "PutVoiceConnectorTermination": { + "http": { + "method": "PUT", + "requestUri": "/voice-connectors/{voiceConnectorId}/termination", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "Termination" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "Termination": { + "shape": "Sac" + } + } + }, + "output": { + "type": "structure", + "members": { + "Termination": { + "shape": "Sac" + } + } + } + }, + "PutVoiceConnectorTerminationCredentials": { + "http": { + "requestUri": "/voice-connectors/{voiceConnectorId}/termination/credentials?operation=put", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "Credentials": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Username": { + "shape": "S23" + }, + "Password": { + "shape": "S23" + } + } + } + } + } + } + }, + "RedactChannelMessage": { + "http": { + "requestUri": "/channels/{channelArn}/messages/{messageId}?operation=redact", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MessageId" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MessageId": { + "location": "uri", + "locationName": "messageId" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "MessageId": {} + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "RedactConversationMessage": { + "http": { + "requestUri": "/accounts/{accountId}/conversations/{conversationId}/messages/{messageId}?operation=redact", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "ConversationId", + "MessageId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "ConversationId": { + "location": "uri", + "locationName": "conversationId" + }, + "MessageId": { + "location": "uri", + "locationName": "messageId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "RedactRoomMessage": { + "http": { + "requestUri": "/accounts/{accountId}/rooms/{roomId}/messages/{messageId}?operation=redact", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId", + "MessageId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + }, + "MessageId": { + "location": "uri", + "locationName": "messageId" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "RegenerateSecurityToken": { + "http": { + "requestUri": "/accounts/{accountId}/bots/{botId}?operation=regenerate-security-token", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "BotId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "BotId": { + "location": "uri", + "locationName": "botId" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bot": { + "shape": "S2s" + } + } + } + }, + "ResetPersonalPIN": { + "http": { + "requestUri": "/accounts/{accountId}/users/{userId}?operation=reset-personal-pin", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + } + } + }, + "output": { + "type": "structure", + "members": { + "User": { + "shape": "S50" + } + } + } + }, + "RestorePhoneNumber": { + "http": { + "requestUri": "/phone-numbers/{phoneNumberId}?operation=restore", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "PhoneNumberId" + ], + "members": { + "PhoneNumberId": { + "location": "uri", + "locationName": "phoneNumberId" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumber": { + "shape": "S8f" + } + } + } + }, + "SearchAvailablePhoneNumbers": { + "http": { + "method": "GET", + "requestUri": "/search?type=phone-numbers" + }, + "input": { + "type": "structure", + "members": { + "AreaCode": { + "location": "querystring", + "locationName": "area-code" + }, + "City": { + "location": "querystring", + "locationName": "city" + }, + "Country": { + "location": "querystring", + "locationName": "country" + }, + "State": { + "location": "querystring", + "locationName": "state" + }, + "TollFreePrefix": { + "location": "querystring", + "locationName": "toll-free-prefix" + }, + "PhoneNumberType": { + "location": "querystring", + "locationName": "phone-number-type" + }, + "MaxResults": { + "location": "querystring", + "locationName": "max-results", + "type": "integer" + }, + "NextToken": { + "location": "querystring", + "locationName": "next-token" + } + } + }, + "output": { + "type": "structure", + "members": { + "E164PhoneNumbers": { + "shape": "S7" + }, + "NextToken": {} + } + } + }, + "SendChannelMessage": { + "http": { + "requestUri": "/channels/{channelArn}/messages", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "Content", + "Type", + "Persistence", + "ClientRequestToken" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "Content": { + "type": "string", + "sensitive": true + }, + "Type": {}, + "Persistence": {}, + "Metadata": { + "shape": "S2e" + }, + "ClientRequestToken": { + "shape": "S2f", + "idempotencyToken": true + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "MessageId": {} + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "TagAttendee": { + "http": { + "requestUri": "/meetings/{meetingId}/attendees/{attendeeId}/tags?operation=add", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "AttendeeId", + "Tags" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "AttendeeId": { + "location": "uri", + "locationName": "attendeeId" + }, + "Tags": { + "shape": "So" + } + } + } + }, + "TagMeeting": { + "http": { + "requestUri": "/meetings/{meetingId}/tags?operation=add", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "Tags" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "Tags": { + "shape": "S36" + } + } + } + }, + "TagResource": { + "http": { + "requestUri": "/tags?operation=tag-resource", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "Tags" + ], + "members": { + "ResourceARN": { + "shape": "S38" + }, + "Tags": { + "shape": "S2g" + } + } + } + }, + "UntagAttendee": { + "http": { + "requestUri": "/meetings/{meetingId}/attendees/{attendeeId}/tags?operation=delete", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "TagKeys", + "AttendeeId" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "AttendeeId": { + "location": "uri", + "locationName": "attendeeId" + }, + "TagKeys": { + "type": "list", + "member": { + "shape": "Sq" + } + } + } + } + }, + "UntagMeeting": { + "http": { + "requestUri": "/meetings/{meetingId}/tags?operation=delete", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "MeetingId", + "TagKeys" + ], + "members": { + "MeetingId": { + "location": "uri", + "locationName": "meetingId" + }, + "TagKeys": { + "type": "list", + "member": { + "shape": "Sq" + } + } + } + } + }, + "UntagResource": { + "http": { + "requestUri": "/tags?operation=untag-resource", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "TagKeys" + ], + "members": { + "ResourceARN": { + "shape": "S38" + }, + "TagKeys": { + "type": "list", + "member": { + "shape": "Sq" + } + } + } + } + }, + "UpdateAccount": { + "http": { + "requestUri": "/accounts/{accountId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "Name": {}, + "DefaultLicense": {} + } + }, + "output": { + "type": "structure", + "members": { + "Account": { + "shape": "S28" + } + } + } + }, + "UpdateAccountSettings": { + "http": { + "method": "PUT", + "requestUri": "/accounts/{accountId}/settings", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "AccountSettings" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "AccountSettings": { + "shape": "S7f" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateAppInstance": { + "http": { + "method": "PUT", + "requestUri": "/app-instances/{appInstanceArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceArn", + "Name" + ], + "members": { + "AppInstanceArn": { + "location": "uri", + "locationName": "appInstanceArn" + }, + "Name": { + "shape": "S2d" + }, + "Metadata": { + "shape": "S2e" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceArn": {} + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "UpdateAppInstanceUser": { + "http": { + "method": "PUT", + "requestUri": "/app-instance-users/{appInstanceUserArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AppInstanceUserArn", + "Name" + ], + "members": { + "AppInstanceUserArn": { + "location": "uri", + "locationName": "appInstanceUserArn" + }, + "Name": { + "shape": "S2m" + }, + "Metadata": { + "shape": "S2e" + } + } + }, + "output": { + "type": "structure", + "members": { + "AppInstanceUserArn": {} + } + }, + "endpoint": { + "hostPrefix": "identity-" + } + }, + "UpdateBot": { + "http": { + "requestUri": "/accounts/{accountId}/bots/{botId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "BotId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "BotId": { + "location": "uri", + "locationName": "botId" + }, + "Disabled": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "Bot": { + "shape": "S2s" + } + } + } + }, + "UpdateChannel": { + "http": { + "method": "PUT", + "requestUri": "/channels/{channelArn}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "Name", + "Mode" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "Name": { + "shape": "S2d" + }, + "Mode": {}, + "Metadata": { + "shape": "S2e" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {} + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "UpdateChannelMessage": { + "http": { + "method": "PUT", + "requestUri": "/channels/{channelArn}/messages/{messageId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn", + "MessageId" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "MessageId": { + "location": "uri", + "locationName": "messageId" + }, + "Content": { + "shape": "S7x" + }, + "Metadata": { + "shape": "S2e" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {}, + "MessageId": {} + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "UpdateChannelReadMarker": { + "http": { + "method": "PUT", + "requestUri": "/channels/{channelArn}/readMarker", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "ChannelArn" + ], + "members": { + "ChannelArn": { + "location": "uri", + "locationName": "channelArn" + }, + "ChimeBearer": { + "location": "header", + "locationName": "x-amz-chime-bearer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ChannelArn": {} + } + }, + "endpoint": { + "hostPrefix": "messaging-" + } + }, + "UpdateGlobalSettings": { + "http": { + "method": "PUT", + "requestUri": "/settings", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "BusinessCalling", + "VoiceConnector" + ], + "members": { + "BusinessCalling": { + "shape": "S85" + }, + "VoiceConnector": { + "shape": "S86" + } + } + } + }, + "UpdatePhoneNumber": { + "http": { + "requestUri": "/phone-numbers/{phoneNumberId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "PhoneNumberId" + ], + "members": { + "PhoneNumberId": { + "location": "uri", + "locationName": "phoneNumberId" + }, + "ProductType": {}, + "CallingName": { + "shape": "S1u" + } + } + }, + "output": { + "type": "structure", + "members": { + "PhoneNumber": { + "shape": "S8f" + } + } + } + }, + "UpdatePhoneNumberSettings": { + "http": { + "method": "PUT", + "requestUri": "/settings/phone-number", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "CallingName" + ], + "members": { + "CallingName": { + "shape": "S1u" + } + } + } + }, + "UpdateProxySession": { + "http": { + "requestUri": "/voice-connectors/{voiceConnectorId}/proxy-sessions/{proxySessionId}", + "responseCode": 201 + }, + "input": { + "type": "structure", + "required": [ + "Capabilities", + "VoiceConnectorId", + "ProxySessionId" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "ProxySessionId": { + "location": "uri", + "locationName": "proxySessionId" + }, + "Capabilities": { + "shape": "S3u" + }, + "ExpiryMinutes": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "ProxySession": { + "shape": "S42" + } + } + } + }, + "UpdateRoom": { + "http": { + "requestUri": "/accounts/{accountId}/rooms/{roomId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + }, + "Name": { + "shape": "S23" + } + } + }, + "output": { + "type": "structure", + "members": { + "Room": { + "shape": "S49" + } + } + } + }, + "UpdateRoomMembership": { + "http": { + "requestUri": "/accounts/{accountId}/rooms/{roomId}/memberships/{memberId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "RoomId", + "MemberId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "RoomId": { + "location": "uri", + "locationName": "roomId" + }, + "MemberId": { + "location": "uri", + "locationName": "memberId" + }, + "Role": {} + } + }, + "output": { + "type": "structure", + "members": { + "RoomMembership": { + "shape": "S4c" + } + } + } + }, + "UpdateSipMediaApplication": { + "http": { + "method": "PUT", + "requestUri": "/sip-media-applications/{sipMediaApplicationId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "SipMediaApplicationId" + ], + "members": { + "SipMediaApplicationId": { + "location": "uri", + "locationName": "sipMediaApplicationId" + }, + "Name": {}, + "Endpoints": { + "shape": "S4h" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplication": { + "shape": "S4l" + } + } + } + }, + "UpdateSipMediaApplicationCall": { + "http": { + "requestUri": "/sip-media-applications/{sipMediaApplicationId}/calls/{transactionId}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "SipMediaApplicationId", + "TransactionId", + "Arguments" + ], + "members": { + "SipMediaApplicationId": { + "location": "uri", + "locationName": "sipMediaApplicationId" + }, + "TransactionId": { + "location": "uri", + "locationName": "transactionId" + }, + "Arguments": { + "type": "map", + "key": { + "shape": "S23" + }, + "value": { + "shape": "S23" + } + } + } + }, + "output": { + "type": "structure", + "members": { + "SipMediaApplicationCall": { + "shape": "S4o" + } + } + } + }, + "UpdateSipRule": { + "http": { + "method": "PUT", + "requestUri": "/sip-rules/{sipRuleId}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "SipRuleId", + "Name" + ], + "members": { + "SipRuleId": { + "location": "uri", + "locationName": "sipRuleId" + }, + "Name": {}, + "Disabled": { + "type": "boolean" + }, + "TargetApplications": { + "shape": "S4s" + } + } + }, + "output": { + "type": "structure", + "members": { + "SipRule": { + "shape": "S4w" + } + } + } + }, + "UpdateUser": { + "http": { + "requestUri": "/accounts/{accountId}/users/{userId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + }, + "LicenseType": {}, + "UserType": {}, + "AlexaForBusinessMetadata": { + "shape": "S21" + } + } + }, + "output": { + "type": "structure", + "members": { + "User": { + "shape": "S50" + } + } + } + }, + "UpdateUserSettings": { + "http": { + "method": "PUT", + "requestUri": "/accounts/{accountId}/users/{userId}/settings", + "responseCode": 204 + }, + "input": { + "type": "structure", + "required": [ + "AccountId", + "UserId", + "UserSettings" + ], + "members": { + "AccountId": { + "location": "uri", + "locationName": "accountId" + }, + "UserId": { + "location": "uri", + "locationName": "userId" + }, + "UserSettings": { + "shape": "S9b" + } + } + } + }, + "UpdateVoiceConnector": { + "http": { + "method": "PUT", + "requestUri": "/voice-connectors/{voiceConnectorId}", + "responseCode": 200 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "Name", + "RequireEncryption" + ], + "members": { + "VoiceConnectorId": { + "location": "uri", + "locationName": "voiceConnectorId" + }, + "Name": {}, + "RequireEncryption": { + "type": "boolean" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnector": { + "shape": "S57" + } + } + } + }, + "UpdateVoiceConnectorGroup": { + "http": { + "method": "PUT", + "requestUri": "/voice-connector-groups/{voiceConnectorGroupId}", + "responseCode": 202 + }, + "input": { + "type": "structure", + "required": [ + "VoiceConnectorGroupId", + "Name", + "VoiceConnectorItems" + ], + "members": { + "VoiceConnectorGroupId": { + "location": "uri", + "locationName": "voiceConnectorGroupId" + }, + "Name": {}, + "VoiceConnectorItems": { + "shape": "S5a" + } + } + }, + "output": { + "type": "structure", + "members": { + "VoiceConnectorGroup": { + "shape": "S5e" + } + } + } + } + }, + "shapes": { + "S3": { + "type": "string", + "sensitive": true + }, + "S7": { + "type": "list", + "member": { + "shape": "S3" + } + }, + "Sa": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PhoneNumberId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "Sg": { + "type": "list", + "member": { + "type": "structure", + "members": { + "GroupName": {} + } + } + }, + "Sm": { + "type": "structure", + "required": [ + "ExternalUserId" + ], + "members": { + "ExternalUserId": { + "shape": "Sn" + }, + "Tags": { + "shape": "So" + } + } + }, + "Sn": { + "type": "string", + "sensitive": true + }, + "So": { + "type": "list", + "member": { + "shape": "Sp" + } + }, + "Sp": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": { + "shape": "Sq" + }, + "Value": { + "type": "string", + "sensitive": true + } + } + }, + "Sq": { + "type": "string", + "sensitive": true + }, + "St": { + "type": "list", + "member": { + "shape": "Su" + } + }, + "Su": { + "type": "structure", + "members": { + "ExternalUserId": { + "shape": "Sn" + }, + "AttendeeId": {}, + "JoinToken": { + "shape": "Sv" + } + } + }, + "Sv": { + "type": "string", + "sensitive": true + }, + "Sw": { + "type": "list", + "member": { + "type": "structure", + "members": { + "ExternalUserId": { + "shape": "Sn" + }, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "S14": { + "type": "structure", + "members": { + "Arn": {}, + "Name": { + "type": "string", + "sensitive": true + } + } + }, + "S1h": { + "type": "list", + "member": {} + }, + "S1k": { + "type": "list", + "member": {} + }, + "S1m": { + "type": "list", + "member": { + "type": "structure", + "members": { + "UserId": {}, + "ErrorCode": {}, + "ErrorMessage": {} + } + } + }, + "S1u": { + "type": "string", + "sensitive": true + }, + "S21": { + "type": "structure", + "members": { + "IsAlexaForBusinessEnabled": { + "type": "boolean" + }, + "AlexaForBusinessRoomArn": { + "shape": "S23" + } + } + }, + "S23": { + "type": "string", + "sensitive": true + }, + "S28": { + "type": "structure", + "required": [ + "AwsAccountId", + "AccountId", + "Name" + ], + "members": { + "AwsAccountId": {}, + "AccountId": {}, + "Name": {}, + "AccountType": {}, + "CreatedTimestamp": { + "shape": "S2a" + }, + "DefaultLicense": {}, + "SupportedLicenses": { + "type": "list", + "member": {} + }, + "SigninDelegateGroups": { + "shape": "Sg" + } + } + }, + "S2a": { + "type": "timestamp", + "timestampFormat": "iso8601" + }, + "S2d": { + "type": "string", + "sensitive": true + }, + "S2e": { + "type": "string", + "sensitive": true + }, + "S2f": { + "type": "string", + "sensitive": true + }, + "S2g": { + "type": "list", + "member": { + "shape": "Sp" + } + }, + "S2m": { + "type": "string", + "sensitive": true + }, + "S2s": { + "type": "structure", + "members": { + "BotId": {}, + "UserId": {}, + "DisplayName": { + "shape": "S23" + }, + "BotType": {}, + "Disabled": { + "type": "boolean" + }, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + }, + "BotEmail": { + "shape": "S23" + }, + "SecurityToken": { + "shape": "S23" + } + } + }, + "S35": { + "type": "string", + "sensitive": true + }, + "S36": { + "type": "list", + "member": { + "shape": "Sp" + } + }, + "S37": { + "type": "structure", + "members": { + "SnsTopicArn": { + "shape": "S38" + }, + "SqsQueueArn": { + "shape": "S38" + } + } + }, + "S38": { + "type": "string", + "sensitive": true + }, + "S3a": { + "type": "structure", + "members": { + "MeetingId": {}, + "ExternalMeetingId": { + "shape": "S35" + }, + "MediaPlacement": { + "type": "structure", + "members": { + "AudioHostUrl": {}, + "AudioFallbackUrl": {}, + "ScreenDataUrl": {}, + "ScreenSharingUrl": {}, + "ScreenViewingUrl": {}, + "SignalingUrl": {}, + "TurnControlUrl": {} + } + }, + "MediaRegion": {} + } + }, + "S3k": { + "type": "structure", + "members": { + "PhoneNumberOrderId": {}, + "ProductType": {}, + "Status": {}, + "OrderedPhoneNumbers": { + "type": "list", + "member": { + "type": "structure", + "members": { + "E164PhoneNumber": { + "shape": "S3" + }, + "Status": {} + } + } + }, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + } + } + }, + "S3u": { + "type": "list", + "member": {} + }, + "S3y": { + "type": "structure", + "required": [ + "Country", + "AreaCode" + ], + "members": { + "Country": {}, + "AreaCode": {} + } + }, + "S42": { + "type": "structure", + "members": { + "VoiceConnectorId": {}, + "ProxySessionId": {}, + "Name": {}, + "Status": {}, + "ExpiryMinutes": { + "type": "integer" + }, + "Capabilities": { + "shape": "S3u" + }, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + }, + "EndedTimestamp": { + "shape": "S2a" + }, + "Participants": { + "type": "list", + "member": { + "type": "structure", + "members": { + "PhoneNumber": { + "shape": "S3" + }, + "ProxyPhoneNumber": { + "shape": "S3" + } + } + } + }, + "NumberSelectionBehavior": {}, + "GeoMatchLevel": {}, + "GeoMatchParams": { + "shape": "S3y" + } + } + }, + "S49": { + "type": "structure", + "members": { + "RoomId": {}, + "Name": { + "shape": "S23" + }, + "AccountId": {}, + "CreatedBy": {}, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + } + } + }, + "S4c": { + "type": "structure", + "members": { + "RoomId": {}, + "Member": { + "type": "structure", + "members": { + "MemberId": {}, + "MemberType": {}, + "Email": { + "shape": "S23" + }, + "FullName": { + "shape": "S23" + }, + "AccountId": {} + } + }, + "Role": {}, + "InvitedBy": {}, + "UpdatedTimestamp": { + "shape": "S2a" + } + } + }, + "S4h": { + "type": "list", + "member": { + "type": "structure", + "members": { + "LambdaArn": { + "type": "string", + "sensitive": true + } + } + } + }, + "S4l": { + "type": "structure", + "members": { + "SipMediaApplicationId": {}, + "AwsRegion": {}, + "Name": {}, + "Endpoints": { + "shape": "S4h" + }, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + } + } + }, + "S4o": { + "type": "structure", + "members": { + "TransactionId": {} + } + }, + "S4s": { + "type": "list", + "member": { + "type": "structure", + "members": { + "SipMediaApplicationId": {}, + "Priority": { + "type": "integer" + }, + "AwsRegion": {} + } + } + }, + "S4w": { + "type": "structure", + "members": { + "SipRuleId": {}, + "Name": {}, + "Disabled": { + "type": "boolean" + }, + "TriggerType": {}, + "TriggerValue": {}, + "TargetApplications": { + "shape": "S4s" + }, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + } + } + }, + "S4y": { + "type": "string", + "sensitive": true + }, + "S50": { + "type": "structure", + "required": [ + "UserId" + ], + "members": { + "UserId": {}, + "AccountId": {}, + "PrimaryEmail": { + "shape": "S4y" + }, + "PrimaryProvisionedNumber": { + "shape": "S23" + }, + "DisplayName": { + "shape": "S23" + }, + "LicenseType": {}, + "UserType": {}, + "UserRegistrationStatus": {}, + "UserInvitationStatus": {}, + "RegisteredOn": { + "shape": "S2a" + }, + "InvitedOn": { + "shape": "S2a" + }, + "AlexaForBusinessMetadata": { + "shape": "S21" + }, + "PersonalPIN": {} + } + }, + "S57": { + "type": "structure", + "members": { + "VoiceConnectorId": {}, + "AwsRegion": {}, + "Name": {}, + "OutboundHostName": {}, + "RequireEncryption": { + "type": "boolean" + }, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + } + } + }, + "S5a": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "VoiceConnectorId", + "Priority" + ], + "members": { + "VoiceConnectorId": {}, + "Priority": { + "type": "integer" + } + } + } + }, + "S5e": { + "type": "structure", + "members": { + "VoiceConnectorGroupId": {}, + "Name": {}, + "VoiceConnectorItems": { + "shape": "S5a" + }, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + } + } + }, + "S68": { + "type": "list", + "member": { + "shape": "S23" + } + }, + "S6u": { + "type": "structure", + "members": { + "ChannelSummary": { + "shape": "S6v" + }, + "AppInstanceUserMembershipSummary": { + "type": "structure", + "members": { + "Type": {}, + "ReadMarkerTimestamp": { + "type": "timestamp" + } + } + } + } + }, + "S6v": { + "type": "structure", + "members": { + "Name": { + "shape": "S2d" + }, + "ChannelArn": {}, + "Mode": {}, + "Privacy": {}, + "Metadata": { + "shape": "S2e" + }, + "LastMessageTimestamp": { + "type": "timestamp" + } + } + }, + "S6z": { + "type": "structure", + "members": { + "ChannelSummary": { + "shape": "S6v" + } + } + }, + "S7f": { + "type": "structure", + "members": { + "DisableRemoteControl": { + "type": "boolean" + }, + "EnableDialOut": { + "type": "boolean" + } + } + }, + "S7i": { + "type": "structure", + "members": { + "ChannelRetentionSettings": { + "type": "structure", + "members": { + "RetentionDays": { + "type": "integer" + } + } + } + } + }, + "S7n": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "AppInstanceDataType", + "ResourceArn" + ], + "members": { + "AppInstanceDataType": {}, + "ResourceArn": { + "shape": "S38" + } + } + } + }, + "S7x": { + "type": "string", + "sensitive": true + }, + "S83": { + "type": "structure", + "members": { + "BotId": {}, + "OutboundEventsHTTPSEndpoint": { + "shape": "S23" + }, + "LambdaFunctionArn": { + "shape": "S23" + } + } + }, + "S85": { + "type": "structure", + "members": { + "CdrBucket": {} + } + }, + "S86": { + "type": "structure", + "members": { + "CdrBucket": {} + } + }, + "S8f": { + "type": "structure", + "members": { + "PhoneNumberId": {}, + "E164PhoneNumber": { + "shape": "S3" + }, + "Country": {}, + "Type": {}, + "ProductType": {}, + "Status": {}, + "Capabilities": { + "type": "structure", + "members": { + "InboundCall": { + "type": "boolean" + }, + "OutboundCall": { + "type": "boolean" + }, + "InboundSMS": { + "type": "boolean" + }, + "OutboundSMS": { + "type": "boolean" + }, + "InboundMMS": { + "type": "boolean" + }, + "OutboundMMS": { + "type": "boolean" + } + } + }, + "Associations": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Value": {}, + "Name": {}, + "AssociatedTimestamp": { + "shape": "S2a" + } + } + } + }, + "CallingName": { + "shape": "S1u" + }, + "CallingNameStatus": {}, + "CreatedTimestamp": { + "shape": "S2a" + }, + "UpdatedTimestamp": { + "shape": "S2a" + }, + "DeletionTimestamp": { + "shape": "S2a" + } + } + }, + "S8v": { + "type": "structure", + "members": { + "RoomRetentionSettings": { + "type": "structure", + "members": { + "RetentionDays": { + "type": "integer" + } + } + }, + "ConversationRetentionSettings": { + "type": "structure", + "members": { + "RetentionDays": { + "type": "integer" + } + } + } + } + }, + "S94": { + "type": "structure", + "members": { + "EnableSipMediaApplicationMessageLogs": { + "type": "boolean" + } + } + }, + "S9b": { + "type": "structure", + "required": [ + "Telephony" + ], + "members": { + "Telephony": { + "type": "structure", + "required": [ + "InboundCalling", + "OutboundCalling", + "SMS" + ], + "members": { + "InboundCalling": { + "type": "boolean" + }, + "OutboundCalling": { + "type": "boolean" + }, + "SMS": { + "type": "boolean" + } + } + } + } + }, + "S9h": { + "type": "structure", + "members": { + "DNIS": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "EmergencyPhoneNumber", + "CallingCountry" + ], + "members": { + "EmergencyPhoneNumber": { + "shape": "S3" + }, + "TestPhoneNumber": { + "shape": "S3" + }, + "CallingCountry": {} + } + } + } + } + }, + "S9o": { + "type": "structure", + "members": { + "EnableSIPLogs": { + "type": "boolean" + } + } + }, + "S9r": { + "type": "structure", + "members": { + "Routes": { + "type": "list", + "member": { + "type": "structure", + "members": { + "Host": {}, + "Port": { + "type": "integer" + }, + "Protocol": {}, + "Priority": { + "type": "integer" + }, + "Weight": { + "type": "integer" + } + } + } + }, + "Disabled": { + "type": "boolean" + } + } + }, + "Sa0": { + "type": "structure", + "members": { + "DefaultSessionExpiryMinutes": { + "type": "integer" + }, + "Disabled": { + "type": "boolean" + }, + "FallBackPhoneNumber": { + "shape": "S3" + }, + "PhoneNumberCountries": { + "shape": "Sa2" + } + } + }, + "Sa2": { + "type": "list", + "member": {} + }, + "Sa5": { + "type": "structure", + "required": [ + "DataRetentionInHours" + ], + "members": { + "DataRetentionInHours": { + "type": "integer" + }, + "Disabled": { + "type": "boolean" + }, + "StreamingNotificationTargets": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "NotificationTarget" + ], + "members": { + "NotificationTarget": {} + } + } + } + } + }, + "Sac": { + "type": "structure", + "members": { + "CpsLimit": { + "type": "integer" + }, + "DefaultPhoneNumber": { + "shape": "S3" + }, + "CallingRegions": { + "type": "list", + "member": {} + }, + "CidrAllowedList": { + "shape": "Sa2" + }, + "Disabled": { + "type": "boolean" + } + } + }, + "Sav": { + "type": "string", + "sensitive": true + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..8021a1e8848b8d1a5fb933876d451ae41cd555eb --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/chime-2018-05-01.paginators.json @@ -0,0 +1,129 @@ +{ + "pagination": { + "ListAccounts": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListAppInstanceAdmins": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListAppInstanceUsers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListAppInstances": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListAttendees": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListBots": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListChannelBans": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListChannelMemberships": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListChannelMembershipsForAppInstanceUser": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListChannelMessages": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListChannelModerators": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListChannels": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListChannelsModeratedByAppInstanceUser": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListMeetings": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListPhoneNumberOrders": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListPhoneNumbers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListProxySessions": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListRoomMemberships": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListRooms": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSipMediaApplications": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListSipRules": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListUsers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListVoiceConnectorGroups": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "ListVoiceConnectors": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, + "SearchAvailablePhoneNumbers": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..bc428bdf05b005f8b77a75362b7007008923f824 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.examples.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "examples": { + "CreateEnvironmentEC2": [ + { + "input": { + "name": "my-demo-environment", + "automaticStopTimeMinutes": 60, + "description": "This is my demonstration environment.", + "instanceType": "t2.micro", + "ownerArn": "arn:aws:iam::123456789012:user/MyDemoUser", + "subnetId": "subnet-6300cd1b" + }, + "output": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "createenvironmentec2-1516821730547", + "title": "CreateEnvironmentEC2" + } + ], + "CreateEnvironmentMembership": [ + { + "input": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "permissions": "read-write", + "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser" + }, + "output": { + "membership": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "permissions": "read-write", + "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser", + "userId": "AIDAJ3BA6O2FMJWCWXHEX" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "createenvironmentmembership-1516822583452", + "title": "CreateEnvironmentMembership" + } + ], + "DeleteEnvironment": [ + { + "input": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "deleteenvironment-1516822903149", + "title": "DeleteEnvironment" + } + ], + "DeleteEnvironmentMembership": [ + { + "input": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "deleteenvironmentmembership-1516822975655", + "title": "DeleteEnvironmentMembership" + } + ], + "DescribeEnvironmentMemberships": [ + { + "input": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX" + }, + "output": { + "memberships": [ + { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "permissions": "read-write", + "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser", + "userId": "AIDAJ3BA6O2FMJWCWXHEX" + }, + { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "permissions": "owner", + "userArn": "arn:aws:iam::123456789012:user/MyDemoUser", + "userId": "AIDAJNUEDQAQWFELJDLEX" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example gets information about all of the environment members for the specified AWS Cloud9 development environment.", + "id": "describeenvironmentmemberships1-1516823070453", + "title": "DescribeEnvironmentMemberships1" + }, + { + "input": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "permissions": [ + "owner" + ] + }, + "output": { + "memberships": [ + { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "permissions": "owner", + "userArn": "arn:aws:iam::123456789012:user/MyDemoUser", + "userId": "AIDAJNUEDQAQWFELJDLEX" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example gets information about the owner of the specified AWS Cloud9 development environment.", + "id": "describeenvironmentmemberships2-1516823191355", + "title": "DescribeEnvironmentMemberships2" + }, + { + "input": { + "userArn": "arn:aws:iam::123456789012:user/MyDemoUser" + }, + "output": { + "memberships": [ + { + "environmentId": "10a75714bd494714929e7f5ec4125aEX", + "lastAccess": "2018-01-19T11:06:13Z", + "permissions": "owner", + "userArn": "arn:aws:iam::123456789012:user/MyDemoUser", + "userId": "AIDAJNUEDQAQWFELJDLEX" + }, + { + "environmentId": "12bfc3cd537f41cb9776f8af5525c9EX", + "lastAccess": "2018-01-19T11:39:19Z", + "permissions": "owner", + "userArn": "arn:aws:iam::123456789012:user/MyDemoUser", + "userId": "AIDAJNUEDQAQWFELJDLEX" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example gets AWS Cloud9 development environment membership information for the specified user.", + "id": "describeenvironmentmemberships3-1516823268793", + "title": "DescribeEnvironmentMemberships3" + } + ], + "DescribeEnvironmentStatus": [ + { + "input": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX" + }, + "output": { + "message": "Environment is ready to use", + "status": "ready" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "describeenvironmentstatus-1516823462133", + "title": "DescribeEnvironmentStatus" + } + ], + "DescribeEnvironments": [ + { + "input": { + "environmentIds": [ + "8d9967e2f0624182b74e7690ad69ebEX", + "349c86d4579e4e7298d500ff57a6b2EX" + ] + }, + "output": { + "environments": [ + { + "name": "my-demo-environment", + "type": "ec2", + "arn": "arn:aws:cloud9:us-east-2:123456789012:environment:8d9967e2f0624182b74e7690ad69ebEX", + "description": "This is my demonstration environment.", + "id": "8d9967e2f0624182b74e7690ad69ebEX", + "lifecycle": { + "status": "CREATED" + }, + "ownerArn": "arn:aws:iam::123456789012:user/MyDemoUser" + }, + { + "name": "another-demo-environment", + "type": "ssh", + "arn": "arn:aws:cloud9:us-east-2:123456789012:environment:349c86d4579e4e7298d500ff57a6b2EX", + "description": "", + "id": "349c86d4579e4e7298d500ff57a6b2EX", + "lifecycle": { + "status": "CREATED" + }, + "ownerArn": "arn:aws:sts::123456789012:assumed-role/AnotherDemoUser/AnotherDemoUser" + } + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "describeenvironments-1516823568291", + "title": "DescribeEnvironments" + } + ], + "ListEnvironments": [ + { + "input": { + }, + "output": { + "environmentIds": [ + "349c86d4579e4e7298d500ff57a6b2EX", + "45a3da47af0840f2b0c0824f5ee232EX" + ] + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "listenvironments-1516823687205", + "title": "ListEnvironments" + } + ], + "UpdateEnvironment": [ + { + "input": { + "name": "my-changed-demo-environment", + "description": "This is my changed demonstration environment.", + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX" + }, + "output": { + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "updateenvironment-1516823781910", + "title": "UpdateEnvironment" + } + ], + "UpdateEnvironmentMembership": [ + { + "input": { + "environmentId": "8d9967e2f0624182b74e7690ad69ebEX", + "permissions": "read-only", + "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser" + }, + "output": { + "membership": { + "environmentId": "8d9967e2f0624182b74e7690ad69eb31", + "permissions": "read-only", + "userArn": "arn:aws:iam::123456789012:user/AnotherDemoUser", + "userId": "AIDAJ3BA6O2FMJWCWXHEX" + } + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "", + "id": "updateenvironmentmembership-1516823876645", + "title": "UpdateEnvironmentMembership" + } + ] + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.min.json b/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.min.json new file mode 100644 index 0000000000000000000000000000000000000000..fc12b7ad372c44de64334ca69ecef1c73d5f14f9 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.min.json @@ -0,0 +1,387 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2017-09-23", + "endpointPrefix": "cloud9", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Cloud9", + "serviceId": "Cloud9", + "signatureVersion": "v4", + "targetPrefix": "AWSCloud9WorkspaceManagementService", + "uid": "cloud9-2017-09-23" + }, + "operations": { + "CreateEnvironmentEC2": { + "input": { + "type": "structure", + "required": [ + "name", + "instanceType" + ], + "members": { + "name": {}, + "description": { + "shape": "S3" + }, + "clientRequestToken": {}, + "instanceType": {}, + "subnetId": {}, + "imageId": {}, + "automaticStopTimeMinutes": { + "type": "integer" + }, + "ownerArn": {}, + "tags": { + "shape": "Sa" + }, + "connectionType": {} + } + }, + "output": { + "type": "structure", + "members": { + "environmentId": {} + } + }, + "idempotent": true + }, + "CreateEnvironmentMembership": { + "input": { + "type": "structure", + "required": [ + "environmentId", + "userArn", + "permissions" + ], + "members": { + "environmentId": {}, + "userArn": {}, + "permissions": {} + } + }, + "output": { + "type": "structure", + "required": [ + "membership" + ], + "members": { + "membership": { + "shape": "Sk" + } + } + }, + "idempotent": true + }, + "DeleteEnvironment": { + "input": { + "type": "structure", + "required": [ + "environmentId" + ], + "members": { + "environmentId": {} + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "DeleteEnvironmentMembership": { + "input": { + "type": "structure", + "required": [ + "environmentId", + "userArn" + ], + "members": { + "environmentId": {}, + "userArn": {} + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "DescribeEnvironmentMemberships": { + "input": { + "type": "structure", + "members": { + "userArn": {}, + "environmentId": {}, + "permissions": { + "type": "list", + "member": {} + }, + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "memberships": { + "type": "list", + "member": { + "shape": "Sk" + } + }, + "nextToken": {} + } + } + }, + "DescribeEnvironmentStatus": { + "input": { + "type": "structure", + "required": [ + "environmentId" + ], + "members": { + "environmentId": {} + } + }, + "output": { + "type": "structure", + "required": [ + "status", + "message" + ], + "members": { + "status": {}, + "message": {} + } + } + }, + "DescribeEnvironments": { + "input": { + "type": "structure", + "required": [ + "environmentIds" + ], + "members": { + "environmentIds": { + "type": "list", + "member": {} + } + } + }, + "output": { + "type": "structure", + "members": { + "environments": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "type", + "arn", + "ownerArn" + ], + "members": { + "id": {}, + "name": {}, + "description": { + "shape": "S3" + }, + "type": {}, + "connectionType": {}, + "arn": {}, + "ownerArn": {}, + "lifecycle": { + "type": "structure", + "members": { + "status": {}, + "reason": {}, + "failureResource": {} + } + }, + "managedCredentialsStatus": {} + } + } + } + } + } + }, + "ListEnvironments": { + "input": { + "type": "structure", + "members": { + "nextToken": {}, + "maxResults": { + "type": "integer" + } + } + }, + "output": { + "type": "structure", + "members": { + "nextToken": {}, + "environmentIds": { + "type": "list", + "member": {} + } + } + } + }, + "ListTagsForResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN" + ], + "members": { + "ResourceARN": {} + } + }, + "output": { + "type": "structure", + "members": { + "Tags": { + "shape": "Sa" + } + } + } + }, + "TagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "Tags" + ], + "members": { + "ResourceARN": {}, + "Tags": { + "shape": "Sa" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UntagResource": { + "input": { + "type": "structure", + "required": [ + "ResourceARN", + "TagKeys" + ], + "members": { + "ResourceARN": {}, + "TagKeys": { + "type": "list", + "member": { + "shape": "Sc" + }, + "sensitive": true + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "UpdateEnvironment": { + "input": { + "type": "structure", + "required": [ + "environmentId" + ], + "members": { + "environmentId": {}, + "name": {}, + "description": { + "shape": "S3" + } + } + }, + "output": { + "type": "structure", + "members": {} + }, + "idempotent": true + }, + "UpdateEnvironmentMembership": { + "input": { + "type": "structure", + "required": [ + "environmentId", + "userArn", + "permissions" + ], + "members": { + "environmentId": {}, + "userArn": {}, + "permissions": {} + } + }, + "output": { + "type": "structure", + "members": { + "membership": { + "shape": "Sk" + } + } + }, + "idempotent": true + } + }, + "shapes": { + "S3": { + "type": "string", + "sensitive": true + }, + "Sa": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Key", + "Value" + ], + "members": { + "Key": { + "shape": "Sc" + }, + "Value": { + "type": "string", + "sensitive": true + } + }, + "sensitive": true + }, + "sensitive": true + }, + "Sc": { + "type": "string", + "sensitive": true + }, + "Sk": { + "type": "structure", + "required": [ + "permissions", + "userId", + "userArn", + "environmentId" + ], + "members": { + "permissions": {}, + "userId": {}, + "userArn": {}, + "environmentId": {}, + "lastAccess": { + "type": "timestamp" + } + } + } + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.paginators.json b/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.paginators.json new file mode 100644 index 0000000000000000000000000000000000000000..f66f5129a6e126e2377f0f1080aa864e6814c97a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/cloud9-2017-09-23.paginators.json @@ -0,0 +1,14 @@ +{ + "pagination": { + "DescribeEnvironmentMemberships": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, + "ListEnvironments": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/apis/clouddirectory-2016-05-10.examples.json b/justdanceonline-main/node_modules/aws-sdk/apis/clouddirectory-2016-05-10.examples.json new file mode 100644 index 0000000000000000000000000000000000000000..0ea7e3b0bbe917eb027880396ac01509becd1fa0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/apis/clouddirectory-2016-05-10.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/browser.js b/justdanceonline-main/node_modules/aws-sdk/browser.js new file mode 100644 index 0000000000000000000000000000000000000000..7867151ffdd98fbd17819c53d48abfa7c5e720b2 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/browser.js @@ -0,0 +1,6 @@ +require('./lib/browser_loader'); + +var AWS = require('./lib/core'); +if (typeof window !== 'undefined') window.AWS = AWS; +if (typeof module !== 'undefined') module.exports = AWS; +if (typeof self !== 'undefined') self.AWS = AWS; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/buildspec.yml b/justdanceonline-main/node_modules/aws-sdk/buildspec.yml new file mode 100644 index 0000000000000000000000000000000000000000..a48663bcb20e5049c83782eecec6606ef4f1e207 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/buildspec.yml @@ -0,0 +1,23 @@ +version: 0.2 + +env: + variables: + AWS_REGION: "us-west-2" + CHROME_BIN: "/usr/bin/chromium-browser" + +phases: + install: + runtime-versions: + nodejs: 12 + pre_build: + commands: + - echo Install npm dependencies + - npm install + - gem install rake + build: + commands: + - echo Running Test + - npm run test + post_build: + commands: + - ./node_modules/.bin/codecov -f coverage/*.json -t e89a5f73-fd56-45de-8799-009a19bde63c diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/accessanalyzer.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/accessanalyzer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..8c3e454c11baac283630f6c31fc82173c3ea753e --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/accessanalyzer.d.ts @@ -0,0 +1,1677 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AccessAnalyzer extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AccessAnalyzer.Types.ClientConfiguration) + config: Config & AccessAnalyzer.Types.ClientConfiguration; + /** + * Retroactively applies the archive rule to existing findings that meet the archive rule criteria. + */ + applyArchiveRule(params: AccessAnalyzer.Types.ApplyArchiveRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Retroactively applies the archive rule to existing findings that meet the archive rule criteria. + */ + applyArchiveRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Cancels the requested policy generation. + */ + cancelPolicyGeneration(params: AccessAnalyzer.Types.CancelPolicyGenerationRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.CancelPolicyGenerationResponse) => void): Request; + /** + * Cancels the requested policy generation. + */ + cancelPolicyGeneration(callback?: (err: AWSError, data: AccessAnalyzer.Types.CancelPolicyGenerationResponse) => void): Request; + /** + * Creates an access preview that allows you to preview Access Analyzer findings for your resource before deploying resource permissions. + */ + createAccessPreview(params: AccessAnalyzer.Types.CreateAccessPreviewRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.CreateAccessPreviewResponse) => void): Request; + /** + * Creates an access preview that allows you to preview Access Analyzer findings for your resource before deploying resource permissions. + */ + createAccessPreview(callback?: (err: AWSError, data: AccessAnalyzer.Types.CreateAccessPreviewResponse) => void): Request; + /** + * Creates an analyzer for your account. + */ + createAnalyzer(params: AccessAnalyzer.Types.CreateAnalyzerRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.CreateAnalyzerResponse) => void): Request; + /** + * Creates an analyzer for your account. + */ + createAnalyzer(callback?: (err: AWSError, data: AccessAnalyzer.Types.CreateAnalyzerResponse) => void): Request; + /** + * Creates an archive rule for the specified analyzer. Archive rules automatically archive new findings that meet the criteria you define when you create the rule. To learn about filter keys that you can use to create an archive rule, see Access Analyzer filter keys in the IAM User Guide. + */ + createArchiveRule(params: AccessAnalyzer.Types.CreateArchiveRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates an archive rule for the specified analyzer. Archive rules automatically archive new findings that meet the criteria you define when you create the rule. To learn about filter keys that you can use to create an archive rule, see Access Analyzer filter keys in the IAM User Guide. + */ + createArchiveRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified analyzer. When you delete an analyzer, Access Analyzer is disabled for the account or organization in the current or specific Region. All findings that were generated by the analyzer are deleted. You cannot undo this action. + */ + deleteAnalyzer(params: AccessAnalyzer.Types.DeleteAnalyzerRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified analyzer. When you delete an analyzer, Access Analyzer is disabled for the account or organization in the current or specific Region. All findings that were generated by the analyzer are deleted. You cannot undo this action. + */ + deleteAnalyzer(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified archive rule. + */ + deleteArchiveRule(params: AccessAnalyzer.Types.DeleteArchiveRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified archive rule. + */ + deleteArchiveRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Retrieves information about an access preview for the specified analyzer. + */ + getAccessPreview(params: AccessAnalyzer.Types.GetAccessPreviewRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.GetAccessPreviewResponse) => void): Request; + /** + * Retrieves information about an access preview for the specified analyzer. + */ + getAccessPreview(callback?: (err: AWSError, data: AccessAnalyzer.Types.GetAccessPreviewResponse) => void): Request; + /** + * Retrieves information about a resource that was analyzed. + */ + getAnalyzedResource(params: AccessAnalyzer.Types.GetAnalyzedResourceRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.GetAnalyzedResourceResponse) => void): Request; + /** + * Retrieves information about a resource that was analyzed. + */ + getAnalyzedResource(callback?: (err: AWSError, data: AccessAnalyzer.Types.GetAnalyzedResourceResponse) => void): Request; + /** + * Retrieves information about the specified analyzer. + */ + getAnalyzer(params: AccessAnalyzer.Types.GetAnalyzerRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.GetAnalyzerResponse) => void): Request; + /** + * Retrieves information about the specified analyzer. + */ + getAnalyzer(callback?: (err: AWSError, data: AccessAnalyzer.Types.GetAnalyzerResponse) => void): Request; + /** + * Retrieves information about an archive rule. To learn about filter keys that you can use to create an archive rule, see Access Analyzer filter keys in the IAM User Guide. + */ + getArchiveRule(params: AccessAnalyzer.Types.GetArchiveRuleRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.GetArchiveRuleResponse) => void): Request; + /** + * Retrieves information about an archive rule. To learn about filter keys that you can use to create an archive rule, see Access Analyzer filter keys in the IAM User Guide. + */ + getArchiveRule(callback?: (err: AWSError, data: AccessAnalyzer.Types.GetArchiveRuleResponse) => void): Request; + /** + * Retrieves information about the specified finding. + */ + getFinding(params: AccessAnalyzer.Types.GetFindingRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.GetFindingResponse) => void): Request; + /** + * Retrieves information about the specified finding. + */ + getFinding(callback?: (err: AWSError, data: AccessAnalyzer.Types.GetFindingResponse) => void): Request; + /** + * Retrieves the policy that was generated using StartPolicyGeneration. + */ + getGeneratedPolicy(params: AccessAnalyzer.Types.GetGeneratedPolicyRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.GetGeneratedPolicyResponse) => void): Request; + /** + * Retrieves the policy that was generated using StartPolicyGeneration. + */ + getGeneratedPolicy(callback?: (err: AWSError, data: AccessAnalyzer.Types.GetGeneratedPolicyResponse) => void): Request; + /** + * Retrieves a list of access preview findings generated by the specified access preview. + */ + listAccessPreviewFindings(params: AccessAnalyzer.Types.ListAccessPreviewFindingsRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAccessPreviewFindingsResponse) => void): Request; + /** + * Retrieves a list of access preview findings generated by the specified access preview. + */ + listAccessPreviewFindings(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAccessPreviewFindingsResponse) => void): Request; + /** + * Retrieves a list of access previews for the specified analyzer. + */ + listAccessPreviews(params: AccessAnalyzer.Types.ListAccessPreviewsRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAccessPreviewsResponse) => void): Request; + /** + * Retrieves a list of access previews for the specified analyzer. + */ + listAccessPreviews(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAccessPreviewsResponse) => void): Request; + /** + * Retrieves a list of resources of the specified type that have been analyzed by the specified analyzer.. + */ + listAnalyzedResources(params: AccessAnalyzer.Types.ListAnalyzedResourcesRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAnalyzedResourcesResponse) => void): Request; + /** + * Retrieves a list of resources of the specified type that have been analyzed by the specified analyzer.. + */ + listAnalyzedResources(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAnalyzedResourcesResponse) => void): Request; + /** + * Retrieves a list of analyzers. + */ + listAnalyzers(params: AccessAnalyzer.Types.ListAnalyzersRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAnalyzersResponse) => void): Request; + /** + * Retrieves a list of analyzers. + */ + listAnalyzers(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListAnalyzersResponse) => void): Request; + /** + * Retrieves a list of archive rules created for the specified analyzer. + */ + listArchiveRules(params: AccessAnalyzer.Types.ListArchiveRulesRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListArchiveRulesResponse) => void): Request; + /** + * Retrieves a list of archive rules created for the specified analyzer. + */ + listArchiveRules(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListArchiveRulesResponse) => void): Request; + /** + * Retrieves a list of findings generated by the specified analyzer. To learn about filter keys that you can use to retrieve a list of findings, see Access Analyzer filter keys in the IAM User Guide. + */ + listFindings(params: AccessAnalyzer.Types.ListFindingsRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListFindingsResponse) => void): Request; + /** + * Retrieves a list of findings generated by the specified analyzer. To learn about filter keys that you can use to retrieve a list of findings, see Access Analyzer filter keys in the IAM User Guide. + */ + listFindings(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListFindingsResponse) => void): Request; + /** + * Lists all of the policy generations requested in the last seven days. + */ + listPolicyGenerations(params: AccessAnalyzer.Types.ListPolicyGenerationsRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListPolicyGenerationsResponse) => void): Request; + /** + * Lists all of the policy generations requested in the last seven days. + */ + listPolicyGenerations(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListPolicyGenerationsResponse) => void): Request; + /** + * Retrieves a list of tags applied to the specified resource. + */ + listTagsForResource(params: AccessAnalyzer.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ListTagsForResourceResponse) => void): Request; + /** + * Retrieves a list of tags applied to the specified resource. + */ + listTagsForResource(callback?: (err: AWSError, data: AccessAnalyzer.Types.ListTagsForResourceResponse) => void): Request; + /** + * Starts the policy generation request. + */ + startPolicyGeneration(params: AccessAnalyzer.Types.StartPolicyGenerationRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.StartPolicyGenerationResponse) => void): Request; + /** + * Starts the policy generation request. + */ + startPolicyGeneration(callback?: (err: AWSError, data: AccessAnalyzer.Types.StartPolicyGenerationResponse) => void): Request; + /** + * Immediately starts a scan of the policies applied to the specified resource. + */ + startResourceScan(params: AccessAnalyzer.Types.StartResourceScanRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Immediately starts a scan of the policies applied to the specified resource. + */ + startResourceScan(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds a tag to the specified resource. + */ + tagResource(params: AccessAnalyzer.Types.TagResourceRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.TagResourceResponse) => void): Request; + /** + * Adds a tag to the specified resource. + */ + tagResource(callback?: (err: AWSError, data: AccessAnalyzer.Types.TagResourceResponse) => void): Request; + /** + * Removes a tag from the specified resource. + */ + untagResource(params: AccessAnalyzer.Types.UntagResourceRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.UntagResourceResponse) => void): Request; + /** + * Removes a tag from the specified resource. + */ + untagResource(callback?: (err: AWSError, data: AccessAnalyzer.Types.UntagResourceResponse) => void): Request; + /** + * Updates the criteria and values for the specified archive rule. + */ + updateArchiveRule(params: AccessAnalyzer.Types.UpdateArchiveRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the criteria and values for the specified archive rule. + */ + updateArchiveRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the status for the specified findings. + */ + updateFindings(params: AccessAnalyzer.Types.UpdateFindingsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the status for the specified findings. + */ + updateFindings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Requests the validation of a policy and returns a list of findings. The findings help you identify issues and provide actionable recommendations to resolve the issue and enable you to author functional policies that meet security best practices. + */ + validatePolicy(params: AccessAnalyzer.Types.ValidatePolicyRequest, callback?: (err: AWSError, data: AccessAnalyzer.Types.ValidatePolicyResponse) => void): Request; + /** + * Requests the validation of a policy and returns a list of findings. The findings help you identify issues and provide actionable recommendations to resolve the issue and enable you to author functional policies that meet security best practices. + */ + validatePolicy(callback?: (err: AWSError, data: AccessAnalyzer.Types.ValidatePolicyResponse) => void): Request; +} +declare namespace AccessAnalyzer { + export type AccessPointArn = string; + export type AccessPointPolicy = string; + export interface AccessPreview { + /** + * The ARN of the analyzer used to generate the access preview. + */ + analyzerArn: AnalyzerArn; + /** + * A map of resource ARNs for the proposed resource configuration. + */ + configurations: ConfigurationsMap; + /** + * The time at which the access preview was created. + */ + createdAt: Timestamp; + /** + * The unique ID for the access preview. + */ + id: AccessPreviewId; + /** + * The status of the access preview. Creating - The access preview creation is in progress. Completed - The access preview is complete. You can preview findings for external access to the resource. Failed - The access preview creation has failed. + */ + status: AccessPreviewStatus; + /** + * Provides more details about the current status of the access preview. For example, if the creation of the access preview fails, a Failed status is returned. This failure can be due to an internal issue with the analysis or due to an invalid resource configuration. + */ + statusReason?: AccessPreviewStatusReason; + } + export interface AccessPreviewFinding { + /** + * The action in the analyzed policy statement that an external principal has permission to perform. + */ + action?: ActionList; + /** + * Provides context on how the access preview finding compares to existing access identified in Access Analyzer. New - The finding is for newly-introduced access. Unchanged - The preview finding is an existing finding that would remain unchanged. Changed - The preview finding is an existing finding with a change in status. For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change. + */ + changeType: FindingChangeType; + /** + * The condition in the analyzed policy statement that resulted in a finding. + */ + condition?: ConditionKeyMap; + /** + * The time at which the access preview finding was created. + */ + createdAt: Timestamp; + /** + * An error. + */ + error?: String; + /** + * The existing ID of the finding in Access Analyzer, provided only for existing findings. + */ + existingFindingId?: FindingId; + /** + * The existing status of the finding, provided only for existing findings. + */ + existingFindingStatus?: FindingStatus; + /** + * The ID of the access preview finding. This ID uniquely identifies the element in the list of access preview findings and is not related to the finding ID in Access Analyzer. + */ + id: AccessPreviewFindingId; + /** + * Indicates whether the policy that generated the finding allows public access to the resource. + */ + isPublic?: Boolean; + /** + * The external principal that has access to a resource within the zone of trust. + */ + principal?: PrincipalMap; + /** + * The resource that an external principal has access to. This is the resource associated with the access preview. + */ + resource?: String; + /** + * The AWS account ID that owns the resource. For most AWS resources, the owning account is the account in which the resource was created. + */ + resourceOwnerAccount: String; + /** + * The type of the resource that can be accessed in the finding. + */ + resourceType: ResourceType; + /** + * The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings. + */ + sources?: FindingSourceList; + /** + * The preview status of the finding. This is what the status of the finding would be after permissions deployment. For example, a Changed finding with preview status Resolved and existing status Active indicates the existing Active finding would become Resolved as a result of the proposed permissions change. + */ + status: FindingStatus; + } + export type AccessPreviewFindingId = string; + export type AccessPreviewFindingsList = AccessPreviewFinding[]; + export type AccessPreviewId = string; + export type AccessPreviewStatus = "COMPLETED"|"CREATING"|"FAILED"|string; + export interface AccessPreviewStatusReason { + /** + * The reason code for the current status of the access preview. + */ + code: AccessPreviewStatusReasonCode; + } + export type AccessPreviewStatusReasonCode = "INTERNAL_ERROR"|"INVALID_CONFIGURATION"|string; + export interface AccessPreviewSummary { + /** + * The ARN of the analyzer used to generate the access preview. + */ + analyzerArn: AnalyzerArn; + /** + * The time at which the access preview was created. + */ + createdAt: Timestamp; + /** + * The unique ID for the access preview. + */ + id: AccessPreviewId; + /** + * The status of the access preview. Creating - The access preview creation is in progress. Completed - The access preview is complete and previews the findings for external access to the resource. Failed - The access preview creation has failed. + */ + status: AccessPreviewStatus; + statusReason?: AccessPreviewStatusReason; + } + export type AccessPreviewsList = AccessPreviewSummary[]; + export type AclCanonicalId = string; + export interface AclGrantee { + /** + * The value specified is the canonical user ID of an AWS account. + */ + id?: AclCanonicalId; + /** + * Used for granting permissions to a predefined group. + */ + uri?: AclUri; + } + export type AclPermission = "READ"|"WRITE"|"READ_ACP"|"WRITE_ACP"|"FULL_CONTROL"|string; + export type AclUri = string; + export type ActionList = String[]; + export interface AnalyzedResource { + /** + * The actions that an external principal is granted permission to use by the policy that generated the finding. + */ + actions?: ActionList; + /** + * The time at which the resource was analyzed. + */ + analyzedAt: Timestamp; + /** + * The time at which the finding was created. + */ + createdAt: Timestamp; + /** + * An error message. + */ + error?: String; + /** + * Indicates whether the policy that generated the finding grants public access to the resource. + */ + isPublic: Boolean; + /** + * The ARN of the resource that was analyzed. + */ + resourceArn: ResourceArn; + /** + * The AWS account ID that owns the resource. + */ + resourceOwnerAccount: String; + /** + * The type of the resource that was analyzed. + */ + resourceType: ResourceType; + /** + * Indicates how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings. + */ + sharedVia?: SharedViaList; + /** + * The current status of the finding generated from the analyzed resource. + */ + status?: FindingStatus; + /** + * The time at which the finding was updated. + */ + updatedAt: Timestamp; + } + export interface AnalyzedResourceSummary { + /** + * The ARN of the analyzed resource. + */ + resourceArn: ResourceArn; + /** + * The AWS account ID that owns the resource. + */ + resourceOwnerAccount: String; + /** + * The type of resource that was analyzed. + */ + resourceType: ResourceType; + } + export type AnalyzedResourcesList = AnalyzedResourceSummary[]; + export type AnalyzerArn = string; + export type AnalyzerStatus = "ACTIVE"|"CREATING"|"DISABLED"|"FAILED"|string; + export interface AnalyzerSummary { + /** + * The ARN of the analyzer. + */ + arn: AnalyzerArn; + /** + * A timestamp for the time at which the analyzer was created. + */ + createdAt: Timestamp; + /** + * The resource that was most recently analyzed by the analyzer. + */ + lastResourceAnalyzed?: String; + /** + * The time at which the most recently analyzed resource was analyzed. + */ + lastResourceAnalyzedAt?: Timestamp; + /** + * The name of the analyzer. + */ + name: Name; + /** + * The status of the analyzer. An Active analyzer successfully monitors supported resources and generates new findings. The analyzer is Disabled when a user action, such as removing trusted access for AWS IAM Access Analyzer from AWS Organizations, causes the analyzer to stop generating new findings. The status is Creating when the analyzer creation is in progress and Failed when the analyzer creation has failed. + */ + status: AnalyzerStatus; + /** + * The statusReason provides more details about the current status of the analyzer. For example, if the creation for the analyzer fails, a Failed status is returned. For an analyzer with organization as the type, this failure can be due to an issue with creating the service-linked roles required in the member accounts of the AWS organization. + */ + statusReason?: StatusReason; + /** + * The tags added to the analyzer. + */ + tags?: TagsMap; + /** + * The type of analyzer, which corresponds to the zone of trust chosen for the analyzer. + */ + type: Type; + } + export type AnalyzersList = AnalyzerSummary[]; + export interface ApplyArchiveRuleRequest { + /** + * The Amazon resource name (ARN) of the analyzer. + */ + analyzerArn: AnalyzerArn; + /** + * A client token. + */ + clientToken?: String; + /** + * The name of the rule to apply. + */ + ruleName: Name; + } + export interface ArchiveRuleSummary { + /** + * The time at which the archive rule was created. + */ + createdAt: Timestamp; + /** + * A filter used to define the archive rule. + */ + filter: FilterCriteriaMap; + /** + * The name of the archive rule. + */ + ruleName: Name; + /** + * The time at which the archive rule was last updated. + */ + updatedAt: Timestamp; + } + export type ArchiveRulesList = ArchiveRuleSummary[]; + export type Boolean = boolean; + export interface CancelPolicyGenerationRequest { + /** + * The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request. + */ + jobId: JobId; + } + export interface CancelPolicyGenerationResponse { + } + export type CloudTrailArn = string; + export interface CloudTrailDetails { + /** + * The ARN of the service role that Access Analyzer uses to access your CloudTrail trail and service last accessed information. + */ + accessRole: RoleArn; + /** + * The end of the time range for which Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time. + */ + endTime?: Timestamp; + /** + * The start of the time range for which Access Analyzer reviews your CloudTrail events. Events with a timestamp before this time are not considered to generate a policy. + */ + startTime: Timestamp; + /** + * A Trail object that contains settings for a trail. + */ + trails: TrailList; + } + export interface CloudTrailProperties { + /** + * The end of the time range for which Access Analyzer reviews your CloudTrail events. Events with a timestamp after this time are not considered to generate a policy. If this is not included in the request, the default value is the current time. + */ + endTime: Timestamp; + /** + * The start of the time range for which Access Analyzer reviews your CloudTrail events. Events with a timestamp before this time are not considered to generate a policy. + */ + startTime: Timestamp; + /** + * A TrailProperties object that contains settings for trail properties. + */ + trailProperties: TrailPropertiesList; + } + export type ConditionKeyMap = {[key: string]: String}; + export interface Configuration { + /** + * The access control configuration is for an IAM role. + */ + iamRole?: IamRoleConfiguration; + /** + * The access control configuration is for a KMS key. + */ + kmsKey?: KmsKeyConfiguration; + /** + * The access control configuration is for an Amazon S3 Bucket. + */ + s3Bucket?: S3BucketConfiguration; + /** + * The access control configuration is for a Secrets Manager secret. + */ + secretsManagerSecret?: SecretsManagerSecretConfiguration; + /** + * The access control configuration is for an SQS queue. + */ + sqsQueue?: SqsQueueConfiguration; + } + export type ConfigurationsMap = {[key: string]: Configuration}; + export type ConfigurationsMapKey = string; + export interface CreateAccessPreviewRequest { + /** + * The ARN of the account analyzer used to generate the access preview. You can only create an access preview for analyzers with an Account type and Active status. + */ + analyzerArn: AnalyzerArn; + /** + * A client token. + */ + clientToken?: String; + /** + * Access control configuration for your resource that is used to generate the access preview. The access preview includes findings for external access allowed to the resource with the proposed access control configuration. The configuration must contain exactly one element. + */ + configurations: ConfigurationsMap; + } + export interface CreateAccessPreviewResponse { + /** + * The unique ID for the access preview. + */ + id: AccessPreviewId; + } + export interface CreateAnalyzerRequest { + /** + * The name of the analyzer to create. + */ + analyzerName: Name; + /** + * Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule. + */ + archiveRules?: InlineArchiveRulesList; + /** + * A client token. + */ + clientToken?: String; + /** + * The tags to apply to the analyzer. + */ + tags?: TagsMap; + /** + * The type of analyzer to create. Only ACCOUNT and ORGANIZATION analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region. + */ + type: Type; + } + export interface CreateAnalyzerResponse { + /** + * The ARN of the analyzer that was created by the request. + */ + arn?: AnalyzerArn; + } + export interface CreateArchiveRuleRequest { + /** + * The name of the created analyzer. + */ + analyzerName: Name; + /** + * A client token. + */ + clientToken?: String; + /** + * The criteria for the rule. + */ + filter: FilterCriteriaMap; + /** + * The name of the rule to create. + */ + ruleName: Name; + } + export interface Criterion { + /** + * A "contains" operator to match for the filter used to create the rule. + */ + contains?: ValueList; + /** + * An "equals" operator to match for the filter used to create the rule. + */ + eq?: ValueList; + /** + * An "exists" operator to match for the filter used to create the rule. + */ + exists?: Boolean; + /** + * A "not equals" operator to match for the filter used to create the rule. + */ + neq?: ValueList; + } + export interface DeleteAnalyzerRequest { + /** + * The name of the analyzer to delete. + */ + analyzerName: Name; + /** + * A client token. + */ + clientToken?: String; + } + export interface DeleteArchiveRuleRequest { + /** + * The name of the analyzer that associated with the archive rule to delete. + */ + analyzerName: Name; + /** + * A client token. + */ + clientToken?: String; + /** + * The name of the rule to delete. + */ + ruleName: Name; + } + export type FilterCriteriaMap = {[key: string]: Criterion}; + export interface Finding { + /** + * The action in the analyzed policy statement that an external principal has permission to use. + */ + action?: ActionList; + /** + * The time at which the resource was analyzed. + */ + analyzedAt: Timestamp; + /** + * The condition in the analyzed policy statement that resulted in a finding. + */ + condition: ConditionKeyMap; + /** + * The time at which the finding was generated. + */ + createdAt: Timestamp; + /** + * An error. + */ + error?: String; + /** + * The ID of the finding. + */ + id: FindingId; + /** + * Indicates whether the policy that generated the finding allows public access to the resource. + */ + isPublic?: Boolean; + /** + * The external principal that access to a resource within the zone of trust. + */ + principal?: PrincipalMap; + /** + * The resource that an external principal has access to. + */ + resource?: String; + /** + * The AWS account ID that owns the resource. + */ + resourceOwnerAccount: String; + /** + * The type of the resource identified in the finding. + */ + resourceType: ResourceType; + /** + * The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings. + */ + sources?: FindingSourceList; + /** + * The current status of the finding. + */ + status: FindingStatus; + /** + * The time at which the finding was updated. + */ + updatedAt: Timestamp; + } + export type FindingChangeType = "CHANGED"|"NEW"|"UNCHANGED"|string; + export type FindingId = string; + export type FindingIdList = FindingId[]; + export interface FindingSource { + /** + * Includes details about how the access that generated the finding is granted. This is populated for Amazon S3 bucket findings. + */ + detail?: FindingSourceDetail; + /** + * Indicates the type of access that generated the finding. + */ + type: FindingSourceType; + } + export interface FindingSourceDetail { + /** + * The ARN of the access point that generated the finding. + */ + accessPointArn?: String; + } + export type FindingSourceList = FindingSource[]; + export type FindingSourceType = "POLICY"|"BUCKET_ACL"|"S3_ACCESS_POINT"|string; + export type FindingStatus = "ACTIVE"|"ARCHIVED"|"RESOLVED"|string; + export type FindingStatusUpdate = "ACTIVE"|"ARCHIVED"|string; + export interface FindingSummary { + /** + * The action in the analyzed policy statement that an external principal has permission to use. + */ + action?: ActionList; + /** + * The time at which the resource-based policy that generated the finding was analyzed. + */ + analyzedAt: Timestamp; + /** + * The condition in the analyzed policy statement that resulted in a finding. + */ + condition: ConditionKeyMap; + /** + * The time at which the finding was created. + */ + createdAt: Timestamp; + /** + * The error that resulted in an Error finding. + */ + error?: String; + /** + * The ID of the finding. + */ + id: FindingId; + /** + * Indicates whether the finding reports a resource that has a policy that allows public access. + */ + isPublic?: Boolean; + /** + * The external principal that has access to a resource within the zone of trust. + */ + principal?: PrincipalMap; + /** + * The resource that the external principal has access to. + */ + resource?: String; + /** + * The AWS account ID that owns the resource. + */ + resourceOwnerAccount: String; + /** + * The type of the resource that the external principal has access to. + */ + resourceType: ResourceType; + /** + * The sources of the finding. This indicates how the access that generated the finding is granted. It is populated for Amazon S3 bucket findings. + */ + sources?: FindingSourceList; + /** + * The status of the finding. + */ + status: FindingStatus; + /** + * The time at which the finding was most recently updated. + */ + updatedAt: Timestamp; + } + export type FindingsList = FindingSummary[]; + export interface GeneratedPolicy { + /** + * The text to use as the content for the new policy. The policy is created using the CreatePolicy action. + */ + policy: String; + } + export type GeneratedPolicyList = GeneratedPolicy[]; + export interface GeneratedPolicyProperties { + /** + * Lists details about the Trail used to generated policy. + */ + cloudTrailProperties?: CloudTrailProperties; + /** + * This value is set to true if the generated policy contains all possible actions for a service that Access Analyzer identified from the CloudTrail trail that you specified, and false otherwise. + */ + isComplete?: Boolean; + /** + * The ARN of the IAM entity (user or role) for which you are generating a policy. + */ + principalArn: PrincipalArn; + } + export interface GeneratedPolicyResult { + /** + * The text to use as the content for the new policy. The policy is created using the CreatePolicy action. + */ + generatedPolicies?: GeneratedPolicyList; + /** + * A GeneratedPolicyProperties object that contains properties of the generated policy. + */ + properties: GeneratedPolicyProperties; + } + export interface GetAccessPreviewRequest { + /** + * The unique ID for the access preview. + */ + accessPreviewId: AccessPreviewId; + /** + * The ARN of the analyzer used to generate the access preview. + */ + analyzerArn: AnalyzerArn; + } + export interface GetAccessPreviewResponse { + /** + * An object that contains information about the access preview. + */ + accessPreview: AccessPreview; + } + export interface GetAnalyzedResourceRequest { + /** + * The ARN of the analyzer to retrieve information from. + */ + analyzerArn: AnalyzerArn; + /** + * The ARN of the resource to retrieve information about. + */ + resourceArn: ResourceArn; + } + export interface GetAnalyzedResourceResponse { + /** + * An AnalyzedResource object that contains information that Access Analyzer found when it analyzed the resource. + */ + resource?: AnalyzedResource; + } + export interface GetAnalyzerRequest { + /** + * The name of the analyzer retrieved. + */ + analyzerName: Name; + } + export interface GetAnalyzerResponse { + /** + * An AnalyzerSummary object that contains information about the analyzer. + */ + analyzer: AnalyzerSummary; + } + export interface GetArchiveRuleRequest { + /** + * The name of the analyzer to retrieve rules from. + */ + analyzerName: Name; + /** + * The name of the rule to retrieve. + */ + ruleName: Name; + } + export interface GetArchiveRuleResponse { + archiveRule: ArchiveRuleSummary; + } + export interface GetFindingRequest { + /** + * The ARN of the analyzer that generated the finding. + */ + analyzerArn: AnalyzerArn; + /** + * The ID of the finding to retrieve. + */ + id: FindingId; + } + export interface GetFindingResponse { + /** + * A finding object that contains finding details. + */ + finding?: Finding; + } + export interface GetGeneratedPolicyRequest { + /** + * The level of detail that you want to generate. You can specify whether to generate policies with placeholders for resource ARNs for actions that support resource level granularity in policies. For example, in the resource section of a policy, you can receive a placeholder such as "Resource":"arn:aws:s3:::${BucketName}" instead of "*". + */ + includeResourcePlaceholders?: Boolean; + /** + * The level of detail that you want to generate. You can specify whether to generate service-level policies. Access Analyzer uses iam:servicelastaccessed to identify services that have been used recently to create this service-level template. + */ + includeServiceLevelTemplate?: Boolean; + /** + * The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request. + */ + jobId: JobId; + } + export interface GetGeneratedPolicyResponse { + /** + * A GeneratedPolicyResult object that contains the generated policies and associated details. + */ + generatedPolicyResult: GeneratedPolicyResult; + /** + * A GeneratedPolicyDetails object that contains details about the generated policy. + */ + jobDetails: JobDetails; + } + export type GranteePrincipal = string; + export interface IamRoleConfiguration { + /** + * The proposed trust policy for the IAM role. + */ + trustPolicy?: IamTrustPolicy; + } + export type IamTrustPolicy = string; + export interface InlineArchiveRule { + /** + * The condition and values for a criterion. + */ + filter: FilterCriteriaMap; + /** + * The name of the rule. + */ + ruleName: Name; + } + export type InlineArchiveRulesList = InlineArchiveRule[]; + export type Integer = number; + export interface InternetConfiguration { + } + export type IssueCode = string; + export type IssuingAccount = string; + export interface JobDetails { + /** + * A timestamp of when the job was completed. + */ + completedOn?: Timestamp; + jobError?: JobError; + /** + * The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request. + */ + jobId: JobId; + /** + * A timestamp of when the job was started. + */ + startedOn: Timestamp; + /** + * The status of the job request. + */ + status: JobStatus; + } + export interface JobError { + /** + * The job error code. + */ + code: JobErrorCode; + /** + * Specific information about the error. For example, which service quota was exceeded or which resource was not found. + */ + message: String; + } + export type JobErrorCode = "AUTHORIZATION_ERROR"|"RESOURCE_NOT_FOUND_ERROR"|"SERVICE_QUOTA_EXCEEDED_ERROR"|"SERVICE_ERROR"|string; + export type JobId = string; + export type JobStatus = "IN_PROGRESS"|"SUCCEEDED"|"FAILED"|"CANCELED"|string; + export type KmsConstraintsKey = string; + export type KmsConstraintsMap = {[key: string]: KmsConstraintsValue}; + export type KmsConstraintsValue = string; + export interface KmsGrantConfiguration { + /** + * Use this structure to propose allowing cryptographic operations in the grant only when the operation request includes the specified encryption context. + */ + constraints?: KmsGrantConstraints; + /** + * The principal that is given permission to perform the operations that the grant permits. + */ + granteePrincipal: GranteePrincipal; + /** + * The AWS account under which the grant was issued. The account is used to propose KMS grants issued by accounts other than the owner of the key. + */ + issuingAccount: IssuingAccount; + /** + * A list of operations that the grant permits. + */ + operations: KmsGrantOperationsList; + /** + * The principal that is given permission to retire the grant by using RetireGrant operation. + */ + retiringPrincipal?: RetiringPrincipal; + } + export type KmsGrantConfigurationsList = KmsGrantConfiguration[]; + export interface KmsGrantConstraints { + /** + * A list of key-value pairs that must match the encryption context in the cryptographic operation request. The grant allows the operation only when the encryption context in the request is the same as the encryption context specified in this constraint. + */ + encryptionContextEquals?: KmsConstraintsMap; + /** + * A list of key-value pairs that must be included in the encryption context of the cryptographic operation request. The grant allows the cryptographic operation only when the encryption context in the request includes the key-value pairs specified in this constraint, although it can include additional key-value pairs. + */ + encryptionContextSubset?: KmsConstraintsMap; + } + export type KmsGrantOperation = "CreateGrant"|"Decrypt"|"DescribeKey"|"Encrypt"|"GenerateDataKey"|"GenerateDataKeyPair"|"GenerateDataKeyPairWithoutPlaintext"|"GenerateDataKeyWithoutPlaintext"|"GetPublicKey"|"ReEncryptFrom"|"ReEncryptTo"|"RetireGrant"|"Sign"|"Verify"|string; + export type KmsGrantOperationsList = KmsGrantOperation[]; + export interface KmsKeyConfiguration { + /** + * A list of proposed grant configurations for the KMS key. If the proposed grant configuration is for an existing key, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the key. + */ + grants?: KmsGrantConfigurationsList; + /** + * Resource policy configuration for the KMS key. The only valid value for the name of the key policy is default. For more information, see Default key policy. + */ + keyPolicies?: KmsKeyPoliciesMap; + } + export type KmsKeyPoliciesMap = {[key: string]: KmsKeyPolicy}; + export type KmsKeyPolicy = string; + export type LearnMoreLink = string; + export interface ListAccessPreviewFindingsRequest { + /** + * The unique ID for the access preview. + */ + accessPreviewId: AccessPreviewId; + /** + * The ARN of the analyzer used to generate the access. + */ + analyzerArn: AnalyzerArn; + /** + * Criteria to filter the returned findings. + */ + filter?: FilterCriteriaMap; + /** + * The maximum number of results to return in the response. + */ + maxResults?: Integer; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListAccessPreviewFindingsResponse { + /** + * A list of access preview findings that match the specified filter criteria. + */ + findings: AccessPreviewFindingsList; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListAccessPreviewsRequest { + /** + * The ARN of the analyzer used to generate the access preview. + */ + analyzerArn: AnalyzerArn; + /** + * The maximum number of results to return in the response. + */ + maxResults?: Integer; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListAccessPreviewsResponse { + /** + * A list of access previews retrieved for the analyzer. + */ + accessPreviews: AccessPreviewsList; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListAnalyzedResourcesRequest { + /** + * The ARN of the analyzer to retrieve a list of analyzed resources from. + */ + analyzerArn: AnalyzerArn; + /** + * The maximum number of results to return in the response. + */ + maxResults?: Integer; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + /** + * The type of resource. + */ + resourceType?: ResourceType; + } + export interface ListAnalyzedResourcesResponse { + /** + * A list of resources that were analyzed. + */ + analyzedResources: AnalyzedResourcesList; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListAnalyzersRequest { + /** + * The maximum number of results to return in the response. + */ + maxResults?: Integer; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + /** + * The type of analyzer. + */ + type?: Type; + } + export interface ListAnalyzersResponse { + /** + * The analyzers retrieved. + */ + analyzers: AnalyzersList; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListArchiveRulesRequest { + /** + * The name of the analyzer to retrieve rules from. + */ + analyzerName: Name; + /** + * The maximum number of results to return in the request. + */ + maxResults?: Integer; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListArchiveRulesResponse { + /** + * A list of archive rules created for the specified analyzer. + */ + archiveRules: ArchiveRulesList; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListFindingsRequest { + /** + * The ARN of the analyzer to retrieve findings from. + */ + analyzerArn: AnalyzerArn; + /** + * A filter to match for the findings to return. + */ + filter?: FilterCriteriaMap; + /** + * The maximum number of results to return in the response. + */ + maxResults?: Integer; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + /** + * The sort order for the findings returned. + */ + sort?: SortCriteria; + } + export interface ListFindingsResponse { + /** + * A list of findings retrieved from the analyzer that match the filter criteria specified, if any. + */ + findings: FindingsList; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export interface ListPolicyGenerationsRequest { + /** + * The maximum number of results to return in the response. + */ + maxResults?: ListPolicyGenerationsRequestMaxResultsInteger; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + /** + * The ARN of the IAM entity (user or role) for which you are generating a policy. Use this with ListGeneratedPolicies to filter the results to only include results for a specific principal. + */ + principalArn?: PrincipalArn; + } + export type ListPolicyGenerationsRequestMaxResultsInteger = number; + export interface ListPolicyGenerationsResponse { + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + /** + * A PolicyGeneration object that contains details about the generated policy. + */ + policyGenerations: PolicyGenerationList; + } + export interface ListTagsForResourceRequest { + /** + * The ARN of the resource to retrieve tags from. + */ + resourceArn: String; + } + export interface ListTagsForResourceResponse { + /** + * The tags that are applied to the specified resource. + */ + tags?: TagsMap; + } + export type Locale = "DE"|"EN"|"ES"|"FR"|"IT"|"JA"|"KO"|"PT_BR"|"ZH_CN"|"ZH_TW"|string; + export interface Location { + /** + * A path in a policy, represented as a sequence of path elements. + */ + path: PathElementList; + /** + * A span in a policy. + */ + span: Span; + } + export type LocationList = Location[]; + export type Name = string; + export interface NetworkOriginConfiguration { + /** + * The configuration for the Amazon S3 access point with an Internet origin. + */ + internetConfiguration?: InternetConfiguration; + vpcConfiguration?: VpcConfiguration; + } + export type OrderBy = "ASC"|"DESC"|string; + export interface PathElement { + /** + * Refers to an index in a JSON array. + */ + index?: Integer; + /** + * Refers to a key in a JSON object. + */ + key?: String; + /** + * Refers to a substring of a literal string in a JSON object. + */ + substring?: Substring; + /** + * Refers to the value associated with a given key in a JSON object. + */ + value?: String; + } + export type PathElementList = PathElement[]; + export type PolicyDocument = string; + export interface PolicyGeneration { + /** + * A timestamp of when the policy generation was completed. + */ + completedOn?: Timestamp; + /** + * The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request. + */ + jobId: JobId; + /** + * The ARN of the IAM entity (user or role) for which you are generating a policy. + */ + principalArn: PrincipalArn; + /** + * A timestamp of when the policy generation started. + */ + startedOn: Timestamp; + /** + * The status of the policy generation request. + */ + status: JobStatus; + } + export interface PolicyGenerationDetails { + /** + * The ARN of the IAM entity (user or role) for which you are generating a policy. + */ + principalArn: PrincipalArn; + } + export type PolicyGenerationList = PolicyGeneration[]; + export type PolicyName = string; + export type PolicyType = "IDENTITY_POLICY"|"RESOURCE_POLICY"|"SERVICE_CONTROL_POLICY"|string; + export interface Position { + /** + * The column of the position, starting from 0. + */ + column: Integer; + /** + * The line of the position, starting from 1. + */ + line: Integer; + /** + * The offset within the policy that corresponds to the position, starting from 0. + */ + offset: Integer; + } + export type PrincipalArn = string; + export type PrincipalMap = {[key: string]: String}; + export type ReasonCode = "AWS_SERVICE_ACCESS_DISABLED"|"DELEGATED_ADMINISTRATOR_DEREGISTERED"|"ORGANIZATION_DELETED"|"SERVICE_LINKED_ROLE_CREATION_FAILED"|string; + export type RegionList = String[]; + export type ResourceArn = string; + export type ResourceType = "AWS::S3::Bucket"|"AWS::IAM::Role"|"AWS::SQS::Queue"|"AWS::Lambda::Function"|"AWS::Lambda::LayerVersion"|"AWS::KMS::Key"|"AWS::SecretsManager::Secret"|string; + export type RetiringPrincipal = string; + export type RoleArn = string; + export interface S3AccessPointConfiguration { + /** + * The access point policy. + */ + accessPointPolicy?: AccessPointPolicy; + /** + * The proposed Internet and VpcConfiguration to apply to this Amazon S3 access point. If the access preview is for a new resource and neither is specified, the access preview uses Internet for the network origin. If the access preview is for an existing resource and neither is specified, the access preview uses the exiting network origin. + */ + networkOrigin?: NetworkOriginConfiguration; + /** + * The proposed S3PublicAccessBlock configuration to apply to this Amazon S3 Access Point. + */ + publicAccessBlock?: S3PublicAccessBlockConfiguration; + } + export type S3AccessPointConfigurationsMap = {[key: string]: S3AccessPointConfiguration}; + export interface S3BucketAclGrantConfiguration { + /** + * The grantee to whom you’re assigning access rights. + */ + grantee: AclGrantee; + /** + * The permissions being granted. + */ + permission: AclPermission; + } + export type S3BucketAclGrantConfigurationsList = S3BucketAclGrantConfiguration[]; + export interface S3BucketConfiguration { + /** + * The configuration of Amazon S3 access points for the bucket. + */ + accessPoints?: S3AccessPointConfigurationsMap; + /** + * The proposed list of ACL grants for the Amazon S3 bucket. You can propose up to 100 ACL grants per bucket. If the proposed grant configuration is for an existing bucket, the access preview uses the proposed list of grant configurations in place of the existing grants. Otherwise, the access preview uses the existing grants for the bucket. + */ + bucketAclGrants?: S3BucketAclGrantConfigurationsList; + /** + * The proposed bucket policy for the Amazon S3 bucket. + */ + bucketPolicy?: S3BucketPolicy; + /** + * The proposed block public access configuration for the Amazon S3 bucket. + */ + bucketPublicAccessBlock?: S3PublicAccessBlockConfiguration; + } + export type S3BucketPolicy = string; + export interface S3PublicAccessBlockConfiguration { + /** + * Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. + */ + ignorePublicAcls: Boolean; + /** + * Specifies whether Amazon S3 should restrict public bucket policies for this bucket. + */ + restrictPublicBuckets: Boolean; + } + export interface SecretsManagerSecretConfiguration { + /** + * The proposed ARN, key ID, or alias of the AWS KMS customer master key (CMK). + */ + kmsKeyId?: SecretsManagerSecretKmsId; + /** + * The proposed resource policy defining who can access or manage the secret. + */ + secretPolicy?: SecretsManagerSecretPolicy; + } + export type SecretsManagerSecretKmsId = string; + export type SecretsManagerSecretPolicy = string; + export type SharedViaList = String[]; + export interface SortCriteria { + /** + * The name of the attribute to sort on. + */ + attributeName?: String; + /** + * The sort order, ascending or descending. + */ + orderBy?: OrderBy; + } + export interface Span { + /** + * The end position of the span (exclusive). + */ + end: Position; + /** + * The start position of the span (inclusive). + */ + start: Position; + } + export interface SqsQueueConfiguration { + /** + * The proposed resource policy for the SQS queue. + */ + queuePolicy?: SqsQueuePolicy; + } + export type SqsQueuePolicy = string; + export interface StartPolicyGenerationRequest { + /** + * A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, the subsequent retries with the same client token return the result from the original successful request and they have no additional effect. If you do not specify a client token, one is automatically generated by the AWS SDK. + */ + clientToken?: String; + /** + * A CloudTrailDetails object that contains details about a Trail that you want to analyze to generate policies. + */ + cloudTrailDetails?: CloudTrailDetails; + /** + * Contains the ARN of the IAM entity (user or role) for which you are generating a policy. + */ + policyGenerationDetails: PolicyGenerationDetails; + } + export interface StartPolicyGenerationResponse { + /** + * The JobId that is returned by the StartPolicyGeneration operation. The JobId can be used with GetGeneratedPolicy to retrieve the generated policies or used with CancelPolicyGeneration to cancel the policy generation request. + */ + jobId: JobId; + } + export interface StartResourceScanRequest { + /** + * The ARN of the analyzer to use to scan the policies applied to the specified resource. + */ + analyzerArn: AnalyzerArn; + /** + * The ARN of the resource to scan. + */ + resourceArn: ResourceArn; + } + export interface StatusReason { + /** + * The reason code for the current status of the analyzer. + */ + code: ReasonCode; + } + export type String = string; + export interface Substring { + /** + * The length of the substring. + */ + length: Integer; + /** + * The start index of the substring, starting from 0. + */ + start: Integer; + } + export type TagKeys = String[]; + export interface TagResourceRequest { + /** + * The ARN of the resource to add the tag to. + */ + resourceArn: String; + /** + * The tags to add to the resource. + */ + tags: TagsMap; + } + export interface TagResourceResponse { + } + export type TagsMap = {[key: string]: String}; + export type Timestamp = Date; + export type Token = string; + export interface Trail { + /** + * Possible values are true or false. If set to true, Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy. + */ + allRegions?: Boolean; + /** + * Specifies the ARN of the trail. The format of a trail ARN is arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail. + */ + cloudTrailArn: CloudTrailArn; + /** + * A list of regions to get CloudTrail data from and analyze to generate a policy. + */ + regions?: RegionList; + } + export type TrailList = Trail[]; + export interface TrailProperties { + /** + * Possible values are true or false. If set to true, Access Analyzer retrieves CloudTrail data from all regions to analyze and generate a policy. + */ + allRegions?: Boolean; + /** + * Specifies the ARN of the trail. The format of a trail ARN is arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail. + */ + cloudTrailArn: CloudTrailArn; + /** + * A list of regions to get CloudTrail data from and analyze to generate a policy. + */ + regions?: RegionList; + } + export type TrailPropertiesList = TrailProperties[]; + export type Type = "ACCOUNT"|"ORGANIZATION"|string; + export interface UntagResourceRequest { + /** + * The ARN of the resource to remove the tag from. + */ + resourceArn: String; + /** + * The key for the tag to add. + */ + tagKeys: TagKeys; + } + export interface UntagResourceResponse { + } + export interface UpdateArchiveRuleRequest { + /** + * The name of the analyzer to update the archive rules for. + */ + analyzerName: Name; + /** + * A client token. + */ + clientToken?: String; + /** + * A filter to match for the rules to update. Only rules that match the filter are updated. + */ + filter: FilterCriteriaMap; + /** + * The name of the rule to update. + */ + ruleName: Name; + } + export interface UpdateFindingsRequest { + /** + * The ARN of the analyzer that generated the findings to update. + */ + analyzerArn: AnalyzerArn; + /** + * A client token. + */ + clientToken?: String; + /** + * The IDs of the findings to update. + */ + ids?: FindingIdList; + /** + * The ARN of the resource identified in the finding. + */ + resourceArn?: ResourceArn; + /** + * The state represents the action to take to update the finding Status. Use ARCHIVE to change an Active finding to an Archived finding. Use ACTIVE to change an Archived finding to an Active finding. + */ + status: FindingStatusUpdate; + } + export interface ValidatePolicyFinding { + /** + * A localized message that explains the finding and provides guidance on how to address it. + */ + findingDetails: String; + /** + * The impact of the finding. Security warnings report when the policy allows access that we consider overly permissive. Errors report when a part of the policy is not functional. Warnings report non-security issues when a policy does not conform to policy writing best practices. Suggestions recommend stylistic improvements in the policy that do not impact access. + */ + findingType: ValidatePolicyFindingType; + /** + * The issue code provides an identifier of the issue associated with this finding. + */ + issueCode: IssueCode; + /** + * A link to additional documentation about the type of finding. + */ + learnMoreLink: LearnMoreLink; + /** + * The list of locations in the policy document that are related to the finding. The issue code provides a summary of an issue identified by the finding. + */ + locations: LocationList; + } + export type ValidatePolicyFindingList = ValidatePolicyFinding[]; + export type ValidatePolicyFindingType = "ERROR"|"SECURITY_WARNING"|"SUGGESTION"|"WARNING"|string; + export interface ValidatePolicyRequest { + /** + * The locale to use for localizing the findings. + */ + locale?: Locale; + /** + * The maximum number of results to return in the response. + */ + maxResults?: Integer; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + /** + * The JSON policy document to use as the content for the policy. + */ + policyDocument: PolicyDocument; + /** + * The type of policy to validate. Identity policies grant permissions to IAM principals. Identity policies include managed and inline policies for IAM roles, users, and groups. They also include service-control policies (SCPs) that are attached to an AWS organization, organizational unit (OU), or an account. Resource policies grant permissions on AWS resources. Resource policies include trust policies for IAM roles and bucket policies for S3 buckets. You can provide a generic input such as identity policy or resource policy or a specific input such as managed policy or S3 bucket policy. + */ + policyType: PolicyType; + } + export interface ValidatePolicyResponse { + /** + * The list of findings in a policy returned by Access Analyzer based on its suite of policy checks. + */ + findings: ValidatePolicyFindingList; + /** + * A token used for pagination of results returned. + */ + nextToken?: Token; + } + export type ValueList = String[]; + export interface VpcConfiguration { + /** + * If this field is specified, this access point will only allow connections from the specified VPC ID. + */ + vpcId: VpcId; + } + export type VpcId = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2019-11-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AccessAnalyzer client. + */ + export import Types = AccessAnalyzer; +} +export = AccessAnalyzer; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/accessanalyzer.js b/justdanceonline-main/node_modules/aws-sdk/clients/accessanalyzer.js new file mode 100644 index 0000000000000000000000000000000000000000..5eb711d528fe2082185413bf00e99047755b2ca4 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/accessanalyzer.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['accessanalyzer'] = {}; +AWS.AccessAnalyzer = Service.defineService('accessanalyzer', ['2019-11-01']); +Object.defineProperty(apiLoader.services['accessanalyzer'], '2019-11-01', { + get: function get() { + var model = require('../apis/accessanalyzer-2019-11-01.min.json'); + model.paginators = require('../apis/accessanalyzer-2019-11-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AccessAnalyzer; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/acm.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/acm.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..94be61ae230189bd8c018c0b589d3fe07785926f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/acm.d.ts @@ -0,0 +1,668 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {WaiterConfiguration} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class ACM extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: ACM.Types.ClientConfiguration) + config: Config & ACM.Types.ClientConfiguration; + /** + * Adds one or more tags to an ACM certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM certificates. To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action. + */ + addTagsToCertificate(params: ACM.Types.AddTagsToCertificateRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds one or more tags to an ACM certificate. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the certificate on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one certificate if you want to identify a specific characteristic of that certificate, or you can apply the same tag to multiple certificates if you want to filter for a common relationship among those certificates. Similarly, you can apply the same tag to multiple resources if you want to specify a relationship among those resources. For example, you can add the same tag to an ACM certificate and an Elastic Load Balancing load balancer to indicate that they are both used by the same website. For more information, see Tagging ACM certificates. To remove one or more tags, use the RemoveTagsFromCertificate action. To view all of the tags that have been applied to the certificate, use the ListTagsForCertificate action. + */ + addTagsToCertificate(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action. The certificate will not be available for use by AWS services integrated with ACM. You cannot delete an ACM certificate that is being used by another AWS service. To delete a certificate that is in use, the certificate association must first be removed. + */ + deleteCertificate(params: ACM.Types.DeleteCertificateRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a certificate and its associated private key. If this action succeeds, the certificate no longer appears in the list that can be displayed by calling the ListCertificates action or be retrieved by calling the GetCertificate action. The certificate will not be available for use by AWS services integrated with ACM. You cannot delete an ACM certificate that is being used by another AWS service. To delete a certificate that is in use, the certificate association must first be removed. + */ + deleteCertificate(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Returns detailed metadata about the specified ACM certificate. + */ + describeCertificate(params: ACM.Types.DescribeCertificateRequest, callback?: (err: AWSError, data: ACM.Types.DescribeCertificateResponse) => void): Request; + /** + * Returns detailed metadata about the specified ACM certificate. + */ + describeCertificate(callback?: (err: AWSError, data: ACM.Types.DescribeCertificateResponse) => void): Request; + /** + * Exports a private certificate issued by a private certificate authority (CA) for use anywhere. The exported file contains the certificate, the certificate chain, and the encrypted private 2048-bit RSA key associated with the public key that is embedded in the certificate. For security, you must assign a passphrase for the private key when exporting it. For information about exporting and formatting a certificate using the ACM console or CLI, see Export a Private Certificate. + */ + exportCertificate(params: ACM.Types.ExportCertificateRequest, callback?: (err: AWSError, data: ACM.Types.ExportCertificateResponse) => void): Request; + /** + * Exports a private certificate issued by a private certificate authority (CA) for use anywhere. The exported file contains the certificate, the certificate chain, and the encrypted private 2048-bit RSA key associated with the public key that is embedded in the certificate. For security, you must assign a passphrase for the private key when exporting it. For information about exporting and formatting a certificate using the ACM console or CLI, see Export a Private Certificate. + */ + exportCertificate(callback?: (err: AWSError, data: ACM.Types.ExportCertificateResponse) => void): Request; + /** + * Returns the account configuration options associated with an AWS account. + */ + getAccountConfiguration(callback?: (err: AWSError, data: ACM.Types.GetAccountConfigurationResponse) => void): Request; + /** + * Retrieves an Amazon-issued certificate and its certificate chain. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs. All of the certificates are base64 encoded. You can use OpenSSL to decode the certificates and inspect individual fields. + */ + getCertificate(params: ACM.Types.GetCertificateRequest, callback?: (err: AWSError, data: ACM.Types.GetCertificateResponse) => void): Request; + /** + * Retrieves an Amazon-issued certificate and its certificate chain. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs. All of the certificates are base64 encoded. You can use OpenSSL to decode the certificates and inspect individual fields. + */ + getCertificate(callback?: (err: AWSError, data: ACM.Types.GetCertificateResponse) => void): Request; + /** + * Imports a certificate into AWS Certificate Manager (ACM) to use with services that are integrated with ACM. Note that integrated services allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see Importing Certificates in the AWS Certificate Manager User Guide. ACM does not provide managed renewal for certificates that you import. Note the following guidelines when importing third party certificates: You must enter the private key that matches the certificate you are importing. The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase. The private key must be no larger than 5 KB (5,120 bytes). If the certificate you are importing is not self-signed, you must enter its certificate chain. If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain. The certificate, private key, and certificate chain must be PEM-encoded. The current time must be between the Not Before and Not After certificate fields. The Issuer field must not be empty. The OCSP authority URL, if present, must not exceed 1000 characters. To import a new certificate, omit the CertificateArn argument. Include this argument only when you want to replace a previously imported certificate. When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by fileb://. For example, you can specify a certificate saved in the C:\temp folder as fileb://C:\temp\certificate_to_import.pem. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs. When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using. The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA. This operation returns the Amazon Resource Name (ARN) of the imported certificate. + */ + importCertificate(params: ACM.Types.ImportCertificateRequest, callback?: (err: AWSError, data: ACM.Types.ImportCertificateResponse) => void): Request; + /** + * Imports a certificate into AWS Certificate Manager (ACM) to use with services that are integrated with ACM. Note that integrated services allow only certificate types and keys they support to be associated with their resources. Further, their support differs depending on whether the certificate is imported into IAM or into ACM. For more information, see the documentation for each service. For more information about importing certificates into ACM, see Importing Certificates in the AWS Certificate Manager User Guide. ACM does not provide managed renewal for certificates that you import. Note the following guidelines when importing third party certificates: You must enter the private key that matches the certificate you are importing. The private key must be unencrypted. You cannot import a private key that is protected by a password or a passphrase. The private key must be no larger than 5 KB (5,120 bytes). If the certificate you are importing is not self-signed, you must enter its certificate chain. If a certificate chain is included, the issuer must be the subject of one of the certificates in the chain. The certificate, private key, and certificate chain must be PEM-encoded. The current time must be between the Not Before and Not After certificate fields. The Issuer field must not be empty. The OCSP authority URL, if present, must not exceed 1000 characters. To import a new certificate, omit the CertificateArn argument. Include this argument only when you want to replace a previously imported certificate. When you import a certificate by using the CLI, you must specify the certificate, the certificate chain, and the private key by their file names preceded by fileb://. For example, you can specify a certificate saved in the C:\temp folder as fileb://C:\temp\certificate_to_import.pem. If you are making an HTTP or HTTPS Query request, include these arguments as BLOBs. When you import a certificate by using an SDK, you must specify the certificate, the certificate chain, and the private key files in the manner required by the programming language you're using. The cryptographic algorithm of an imported certificate must match the algorithm of the signing CA. For example, if the signing CA key type is RSA, then the certificate key type must also be RSA. This operation returns the Amazon Resource Name (ARN) of the imported certificate. + */ + importCertificate(callback?: (err: AWSError, data: ACM.Types.ImportCertificateResponse) => void): Request; + /** + * Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate. Default filtering returns only RSA_2048 certificates. For more information, see Filters. + */ + listCertificates(params: ACM.Types.ListCertificatesRequest, callback?: (err: AWSError, data: ACM.Types.ListCertificatesResponse) => void): Request; + /** + * Retrieves a list of certificate ARNs and domain names. You can request that only certificates that match a specific status be listed. You can also filter by specific attributes of the certificate. Default filtering returns only RSA_2048 certificates. For more information, see Filters. + */ + listCertificates(callback?: (err: AWSError, data: ACM.Types.ListCertificatesResponse) => void): Request; + /** + * Lists the tags that have been applied to the ACM certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action. + */ + listTagsForCertificate(params: ACM.Types.ListTagsForCertificateRequest, callback?: (err: AWSError, data: ACM.Types.ListTagsForCertificateResponse) => void): Request; + /** + * Lists the tags that have been applied to the ACM certificate. Use the certificate's Amazon Resource Name (ARN) to specify the certificate. To add a tag to an ACM certificate, use the AddTagsToCertificate action. To delete a tag, use the RemoveTagsFromCertificate action. + */ + listTagsForCertificate(callback?: (err: AWSError, data: ACM.Types.ListTagsForCertificateResponse) => void): Request; + /** + * Adds or modifies account-level configurations in ACM. The supported configuration option is DaysBeforeExpiry. This option specifies the number of days prior to certificate expiration when ACM starts generating EventBridge events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration. + */ + putAccountConfiguration(params: ACM.Types.PutAccountConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds or modifies account-level configurations in ACM. The supported configuration option is DaysBeforeExpiry. This option specifies the number of days prior to certificate expiration when ACM starts generating EventBridge events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration. + */ + putAccountConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove one or more tags from an ACM certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM certificate, use the ListTagsForCertificate action. + */ + removeTagsFromCertificate(params: ACM.Types.RemoveTagsFromCertificateRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove one or more tags from an ACM certificate. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this function, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a certificate, use the AddTagsToCertificate action. To view all of the tags that have been applied to a specific ACM certificate, use the ListTagsForCertificate action. + */ + removeTagsFromCertificate(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Renews an eligible ACM certificate. At this time, only exported private certificates can be renewed with this operation. In order to renew your ACM PCA certificates with ACM, you must first grant the ACM service principal permission to do so. For more information, see Testing Managed Renewal in the ACM User Guide. + */ + renewCertificate(params: ACM.Types.RenewCertificateRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Renews an eligible ACM certificate. At this time, only exported private certificates can be renewed with this operation. In order to renew your ACM PCA certificates with ACM, you must first grant the ACM service principal permission to do so. For more information, see Testing Managed Renewal in the ACM User Guide. + */ + renewCertificate(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Requests an ACM certificate for use with other AWS services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the DomainName parameter. You can also specify additional FQDNs in the SubjectAlternativeNames parameter. If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use DNS validation or email validation. We recommend that you use DNS validation. ACM issues public certificates after receiving approval from the domain owner. + */ + requestCertificate(params: ACM.Types.RequestCertificateRequest, callback?: (err: AWSError, data: ACM.Types.RequestCertificateResponse) => void): Request; + /** + * Requests an ACM certificate for use with other AWS services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the DomainName parameter. You can also specify additional FQDNs in the SubjectAlternativeNames parameter. If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use DNS validation or email validation. We recommend that you use DNS validation. ACM issues public certificates after receiving approval from the domain owner. + */ + requestCertificate(callback?: (err: AWSError, data: ACM.Types.RequestCertificateResponse) => void): Request; + /** + * Resends the email that requests domain ownership validation. The domain owner or an authorized representative must approve the ACM certificate before it can be issued. The certificate can be approved by clicking a link in the mail to navigate to the Amazon certificate approval website and then clicking I Approve. However, the validation email can be blocked by spam filters. Therefore, if you do not receive the original mail, you can request that the mail be resent within 72 hours of requesting the ACM certificate. If more than 72 hours have elapsed since your original request or since your last attempt to resend validation mail, you must request a new certificate. For more information about setting up your contact email addresses, see Configure Email for your Domain. + */ + resendValidationEmail(params: ACM.Types.ResendValidationEmailRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Resends the email that requests domain ownership validation. The domain owner or an authorized representative must approve the ACM certificate before it can be issued. The certificate can be approved by clicking a link in the mail to navigate to the Amazon certificate approval website and then clicking I Approve. However, the validation email can be blocked by spam filters. Therefore, if you do not receive the original mail, you can request that the mail be resent within 72 hours of requesting the ACM certificate. If more than 72 hours have elapsed since your original request or since your last attempt to resend validation mail, you must request a new certificate. For more information about setting up your contact email addresses, see Configure Email for your Domain. + */ + resendValidationEmail(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates a certificate. Currently, you can use this function to specify whether to opt in to or out of recording your certificate in a certificate transparency log. For more information, see Opting Out of Certificate Transparency Logging. + */ + updateCertificateOptions(params: ACM.Types.UpdateCertificateOptionsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates a certificate. Currently, you can use this function to specify whether to opt in to or out of recording your certificate in a certificate transparency log. For more information, see Opting Out of Certificate Transparency Logging. + */ + updateCertificateOptions(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Waits for the certificateValidated state by periodically calling the underlying ACM.describeCertificateoperation every 60 seconds (at most 40 times). + */ + waitFor(state: "certificateValidated", params: ACM.Types.DescribeCertificateRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: ACM.Types.DescribeCertificateResponse) => void): Request; + /** + * Waits for the certificateValidated state by periodically calling the underlying ACM.describeCertificateoperation every 60 seconds (at most 40 times). + */ + waitFor(state: "certificateValidated", callback?: (err: AWSError, data: ACM.Types.DescribeCertificateResponse) => void): Request; +} +declare namespace ACM { + export interface AddTagsToCertificateRequest { + /** + * String that contains the ARN of the ACM certificate to which the tag is to be applied. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn: Arn; + /** + * The key-value pair that defines the tag. The tag value is optional. + */ + Tags: TagList; + } + export type Arn = string; + export type CertificateBody = string; + export type CertificateBodyBlob = Buffer|Uint8Array|Blob|string; + export type CertificateChain = string; + export type CertificateChainBlob = Buffer|Uint8Array|Blob|string; + export interface CertificateDetail { + /** + * The Amazon Resource Name (ARN) of the certificate. For more information about ARNs, see Amazon Resource Names (ARNs) in the AWS General Reference. + */ + CertificateArn?: Arn; + /** + * The fully qualified domain name for the certificate, such as www.example.com or example.com. + */ + DomainName?: DomainNameString; + /** + * One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate. The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website. + */ + SubjectAlternativeNames?: DomainList; + /** + * Contains information about the initial validation of each domain name that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED. + */ + DomainValidationOptions?: DomainValidationList; + /** + * The serial number of the certificate. + */ + Serial?: String; + /** + * The name of the entity that is associated with the public key contained in the certificate. + */ + Subject?: String; + /** + * The name of the certificate authority that issued and signed the certificate. + */ + Issuer?: String; + /** + * The time at which the certificate was requested. + */ + CreatedAt?: TStamp; + /** + * The time at which the certificate was issued. This value exists only when the certificate type is AMAZON_ISSUED. + */ + IssuedAt?: TStamp; + /** + * The date and time at which the certificate was imported. This value exists only when the certificate type is IMPORTED. + */ + ImportedAt?: TStamp; + /** + * The status of the certificate. + */ + Status?: CertificateStatus; + /** + * The time at which the certificate was revoked. This value exists only when the certificate status is REVOKED. + */ + RevokedAt?: TStamp; + /** + * The reason the certificate was revoked. This value exists only when the certificate status is REVOKED. + */ + RevocationReason?: RevocationReason; + /** + * The time before which the certificate is not valid. + */ + NotBefore?: TStamp; + /** + * The time after which the certificate is not valid. + */ + NotAfter?: TStamp; + /** + * The algorithm that was used to generate the public-private key pair. + */ + KeyAlgorithm?: KeyAlgorithm; + /** + * The algorithm that was used to sign the certificate. + */ + SignatureAlgorithm?: String; + /** + * A list of ARNs for the AWS resources that are using the certificate. A certificate can be used by multiple AWS resources. + */ + InUseBy?: InUseList; + /** + * The reason the certificate request failed. This value exists only when the certificate status is FAILED. For more information, see Certificate Request Failed in the AWS Certificate Manager User Guide. + */ + FailureReason?: FailureReason; + /** + * The source of the certificate. For certificates provided by ACM, this value is AMAZON_ISSUED. For certificates that you imported with ImportCertificate, this value is IMPORTED. ACM does not provide managed renewal for imported certificates. For more information about the differences between certificates that you import and those that ACM provides, see Importing Certificates in the AWS Certificate Manager User Guide. + */ + Type?: CertificateType; + /** + * Contains information about the status of ACM's managed renewal for the certificate. This field exists only when the certificate type is AMAZON_ISSUED. + */ + RenewalSummary?: RenewalSummary; + /** + * A list of Key Usage X.509 v3 extension objects. Each object is a string value that identifies the purpose of the public key contained in the certificate. Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION, and more. + */ + KeyUsages?: KeyUsageList; + /** + * Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID). + */ + ExtendedKeyUsages?: ExtendedKeyUsageList; + /** + * The Amazon Resource Name (ARN) of the ACM PCA private certificate authority (CA) that issued the certificate. This has the following format: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn?: Arn; + /** + * Specifies whether the certificate is eligible for renewal. At this time, only exported private certificates can be renewed with the RenewCertificate command. + */ + RenewalEligibility?: RenewalEligibility; + /** + * Value that specifies whether to add the certificate to a transparency log. Certificate transparency makes it possible to detect SSL certificates that have been mistakenly or maliciously issued. A browser might respond to certificate that has not been logged by showing an error message. The logs are cryptographically secure. + */ + Options?: CertificateOptions; + } + export interface CertificateOptions { + /** + * You can opt out of certificate transparency logging by specifying the DISABLED option. Opt in by specifying ENABLED. + */ + CertificateTransparencyLoggingPreference?: CertificateTransparencyLoggingPreference; + } + export type CertificateStatus = "PENDING_VALIDATION"|"ISSUED"|"INACTIVE"|"EXPIRED"|"VALIDATION_TIMED_OUT"|"REVOKED"|"FAILED"|string; + export type CertificateStatuses = CertificateStatus[]; + export interface CertificateSummary { + /** + * Amazon Resource Name (ARN) of the certificate. This is of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn?: Arn; + /** + * Fully qualified domain name (FQDN), such as www.example.com or example.com, for the certificate. + */ + DomainName?: DomainNameString; + } + export type CertificateSummaryList = CertificateSummary[]; + export type CertificateTransparencyLoggingPreference = "ENABLED"|"DISABLED"|string; + export type CertificateType = "IMPORTED"|"AMAZON_ISSUED"|"PRIVATE"|string; + export interface DeleteCertificateRequest { + /** + * String that contains the ARN of the ACM certificate to be deleted. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn: Arn; + } + export interface DescribeCertificateRequest { + /** + * The Amazon Resource Name (ARN) of the ACM certificate. The ARN must have the following form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn: Arn; + } + export interface DescribeCertificateResponse { + /** + * Metadata about an ACM certificate. + */ + Certificate?: CertificateDetail; + } + export type DomainList = DomainNameString[]; + export type DomainNameString = string; + export type DomainStatus = "PENDING_VALIDATION"|"SUCCESS"|"FAILED"|string; + export interface DomainValidation { + /** + * A fully qualified domain name (FQDN) in the certificate. For example, www.example.com or example.com. + */ + DomainName: DomainNameString; + /** + * A list of email addresses that ACM used to send domain validation emails. + */ + ValidationEmails?: ValidationEmailList; + /** + * The domain name that ACM used to send domain validation emails. + */ + ValidationDomain?: DomainNameString; + /** + * The validation status of the domain name. This can be one of the following values: PENDING_VALIDATION SUCCESS FAILED + */ + ValidationStatus?: DomainStatus; + /** + * Contains the CNAME record that you add to your DNS database for domain validation. For more information, see Use DNS to Validate Domain Ownership. Note: The CNAME information that you need does not include the name of your domain. If you include
 your domain name in the DNS database CNAME record, validation fails.
 For example, if the name is "_a79865eb4cd1a6ab990a45779b4e0b96.yourdomain.com", only "_a79865eb4cd1a6ab990a45779b4e0b96" must be used. + */ + ResourceRecord?: ResourceRecord; + /** + * Specifies the domain validation method. + */ + ValidationMethod?: ValidationMethod; + } + export type DomainValidationList = DomainValidation[]; + export interface DomainValidationOption { + /** + * A fully qualified domain name (FQDN) in the certificate request. + */ + DomainName: DomainNameString; + /** + * The domain name that you want ACM to use to send you validation emails. This domain name is the suffix of the email addresses that you want ACM to use. This must be the same as the DomainName value or a superdomain of the DomainName value. For example, if you request a certificate for testing.example.com, you can specify example.com for this value. In that case, ACM sends domain validation emails to the following five addresses: admin@example.com administrator@example.com hostmaster@example.com postmaster@example.com webmaster@example.com + */ + ValidationDomain: DomainNameString; + } + export type DomainValidationOptionList = DomainValidationOption[]; + export interface ExpiryEventsConfiguration { + /** + * Specifies the number of days prior to certificate expiration when ACM starts generating EventBridge events. ACM sends one event per day per certificate until the certificate expires. By default, accounts receive events starting 45 days before certificate expiration. + */ + DaysBeforeExpiry?: PositiveInteger; + } + export interface ExportCertificateRequest { + /** + * An Amazon Resource Name (ARN) of the issued certificate. This must be of the form: arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012 + */ + CertificateArn: Arn; + /** + * Passphrase to associate with the encrypted exported private key. If you want to later decrypt the private key, you must have the passphrase. You can use the following OpenSSL command to decrypt a private key: openssl rsa -in encrypted_key.pem -out decrypted_key.pem + */ + Passphrase: PassphraseBlob; + } + export interface ExportCertificateResponse { + /** + * The base64 PEM-encoded certificate. + */ + Certificate?: CertificateBody; + /** + * The base64 PEM-encoded certificate chain. This does not include the certificate that you are exporting. + */ + CertificateChain?: CertificateChain; + /** + * The encrypted private key associated with the public key in the certificate. The key is output in PKCS #8 format and is base64 PEM-encoded. + */ + PrivateKey?: PrivateKey; + } + export interface ExtendedKeyUsage { + /** + * The name of an Extended Key Usage value. + */ + Name?: ExtendedKeyUsageName; + /** + * An object identifier (OID) for the extension value. OIDs are strings of numbers separated by periods. The following OIDs are defined in RFC 3280 and RFC 5280. 1.3.6.1.5.5.7.3.1 (TLS_WEB_SERVER_AUTHENTICATION) 1.3.6.1.5.5.7.3.2 (TLS_WEB_CLIENT_AUTHENTICATION) 1.3.6.1.5.5.7.3.3 (CODE_SIGNING) 1.3.6.1.5.5.7.3.4 (EMAIL_PROTECTION) 1.3.6.1.5.5.7.3.8 (TIME_STAMPING) 1.3.6.1.5.5.7.3.9 (OCSP_SIGNING) 1.3.6.1.5.5.7.3.5 (IPSEC_END_SYSTEM) 1.3.6.1.5.5.7.3.6 (IPSEC_TUNNEL) 1.3.6.1.5.5.7.3.7 (IPSEC_USER) + */ + OID?: String; + } + export type ExtendedKeyUsageFilterList = ExtendedKeyUsageName[]; + export type ExtendedKeyUsageList = ExtendedKeyUsage[]; + export type ExtendedKeyUsageName = "TLS_WEB_SERVER_AUTHENTICATION"|"TLS_WEB_CLIENT_AUTHENTICATION"|"CODE_SIGNING"|"EMAIL_PROTECTION"|"TIME_STAMPING"|"OCSP_SIGNING"|"IPSEC_END_SYSTEM"|"IPSEC_TUNNEL"|"IPSEC_USER"|"ANY"|"NONE"|"CUSTOM"|string; + export type FailureReason = "NO_AVAILABLE_CONTACTS"|"ADDITIONAL_VERIFICATION_REQUIRED"|"DOMAIN_NOT_ALLOWED"|"INVALID_PUBLIC_DOMAIN"|"DOMAIN_VALIDATION_DENIED"|"CAA_ERROR"|"PCA_LIMIT_EXCEEDED"|"PCA_INVALID_ARN"|"PCA_INVALID_STATE"|"PCA_REQUEST_FAILED"|"PCA_NAME_CONSTRAINTS_VALIDATION"|"PCA_RESOURCE_NOT_FOUND"|"PCA_INVALID_ARGS"|"PCA_INVALID_DURATION"|"PCA_ACCESS_DENIED"|"SLR_NOT_FOUND"|"OTHER"|string; + export interface Filters { + /** + * Specify one or more ExtendedKeyUsage extension values. + */ + extendedKeyUsage?: ExtendedKeyUsageFilterList; + /** + * Specify one or more KeyUsage extension values. + */ + keyUsage?: KeyUsageFilterList; + /** + * Specify one or more algorithms that can be used to generate key pairs. Default filtering returns only RSA_1024 and RSA_2048 certificates that have at least one domain. To return other certificate types, provide the desired type signatures in a comma-separated list. For example, "keyTypes": ["RSA_2048,RSA_4096"] returns both RSA_2048 and RSA_4096 certificates. + */ + keyTypes?: KeyAlgorithmList; + } + export interface GetAccountConfigurationResponse { + /** + * Expiration events configuration options associated with the AWS account. + */ + ExpiryEvents?: ExpiryEventsConfiguration; + } + export interface GetCertificateRequest { + /** + * String that contains a certificate ARN in the following format: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn: Arn; + } + export interface GetCertificateResponse { + /** + * The ACM-issued certificate corresponding to the ARN specified as input. + */ + Certificate?: CertificateBody; + /** + * Certificates forming the requested certificate's chain of trust. The chain consists of the certificate of the issuing CA and the intermediate certificates of any other subordinate CAs. + */ + CertificateChain?: CertificateChain; + } + export type IdempotencyToken = string; + export interface ImportCertificateRequest { + /** + * The Amazon Resource Name (ARN) of an imported certificate to replace. To import a new certificate, omit this field. + */ + CertificateArn?: Arn; + /** + * The certificate to import. + */ + Certificate: CertificateBodyBlob; + /** + * The private key that matches the public key in the certificate. + */ + PrivateKey: PrivateKeyBlob; + /** + * The PEM encoded certificate chain. + */ + CertificateChain?: CertificateChainBlob; + /** + * One or more resource tags to associate with the imported certificate. Note: You cannot apply tags when reimporting a certificate. + */ + Tags?: TagList; + } + export interface ImportCertificateResponse { + /** + * The Amazon Resource Name (ARN) of the imported certificate. + */ + CertificateArn?: Arn; + } + export type InUseList = String[]; + export type KeyAlgorithm = "RSA_2048"|"RSA_1024"|"RSA_4096"|"EC_prime256v1"|"EC_secp384r1"|"EC_secp521r1"|string; + export type KeyAlgorithmList = KeyAlgorithm[]; + export interface KeyUsage { + /** + * A string value that contains a Key Usage extension name. + */ + Name?: KeyUsageName; + } + export type KeyUsageFilterList = KeyUsageName[]; + export type KeyUsageList = KeyUsage[]; + export type KeyUsageName = "DIGITAL_SIGNATURE"|"NON_REPUDIATION"|"KEY_ENCIPHERMENT"|"DATA_ENCIPHERMENT"|"KEY_AGREEMENT"|"CERTIFICATE_SIGNING"|"CRL_SIGNING"|"ENCIPHER_ONLY"|"DECIPHER_ONLY"|"ANY"|"CUSTOM"|string; + export interface ListCertificatesRequest { + /** + * Filter the certificate list by status value. + */ + CertificateStatuses?: CertificateStatuses; + /** + * Filter the certificate list. For more information, see the Filters structure. + */ + Includes?: Filters; + /** + * Use this parameter only when paginating results and only in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just received. + */ + NextToken?: NextToken; + /** + * Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items. + */ + MaxItems?: MaxItems; + } + export interface ListCertificatesResponse { + /** + * When the list is truncated, this value is present and contains the value to use for the NextToken parameter in a subsequent pagination request. + */ + NextToken?: NextToken; + /** + * A list of ACM certificates. + */ + CertificateSummaryList?: CertificateSummaryList; + } + export interface ListTagsForCertificateRequest { + /** + * String that contains the ARN of the ACM certificate for which you want to list the tags. This must have the following form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn: Arn; + } + export interface ListTagsForCertificateResponse { + /** + * The key-value pairs that define the applied tags. + */ + Tags?: TagList; + } + export type MaxItems = number; + export type NextToken = string; + export type PassphraseBlob = Buffer|Uint8Array|Blob|string; + export type PositiveInteger = number; + export type PrivateKey = string; + export type PrivateKeyBlob = Buffer|Uint8Array|Blob|string; + export interface PutAccountConfigurationRequest { + /** + * Specifies expiration events associated with an account. + */ + ExpiryEvents?: ExpiryEventsConfiguration; + /** + * Customer-chosen string used to distinguish between calls to PutAccountConfiguration. Idempotency tokens time out after one hour. If you call PutAccountConfiguration multiple times with the same unexpired idempotency token, ACM treats it as the same request and returns the original result. If you change the idempotency token for each call, ACM treats each call as a new request. + */ + IdempotencyToken: IdempotencyToken; + } + export type RecordType = "CNAME"|string; + export interface RemoveTagsFromCertificateRequest { + /** + * String that contains the ARN of the ACM Certificate with one or more tags that you want to remove. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn: Arn; + /** + * The key-value pair that defines the tag to remove. + */ + Tags: TagList; + } + export interface RenewCertificateRequest { + /** + * String that contains the ARN of the ACM certificate to be renewed. This must be of the form: arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 For more information about ARNs, see Amazon Resource Names (ARNs). + */ + CertificateArn: Arn; + } + export type RenewalEligibility = "ELIGIBLE"|"INELIGIBLE"|string; + export type RenewalStatus = "PENDING_AUTO_RENEWAL"|"PENDING_VALIDATION"|"SUCCESS"|"FAILED"|string; + export interface RenewalSummary { + /** + * The status of ACM's managed renewal of the certificate. + */ + RenewalStatus: RenewalStatus; + /** + * Contains information about the validation of each domain name in the certificate, as it pertains to ACM's managed renewal. This is different from the initial validation that occurs as a result of the RequestCertificate request. This field exists only when the certificate type is AMAZON_ISSUED. + */ + DomainValidationOptions: DomainValidationList; + /** + * The reason that a renewal request was unsuccessful. + */ + RenewalStatusReason?: FailureReason; + /** + * The time at which the renewal summary was last updated. + */ + UpdatedAt: TStamp; + } + export interface RequestCertificateRequest { + /** + * Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com. The first domain name you enter cannot exceed 64 octets, including periods. Each subsequent Subject Alternative Name (SAN), however, can be up to 253 octets in length. + */ + DomainName: DomainNameString; + /** + * The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can validate with DNS or validate with email. We recommend that you use DNS validation. + */ + ValidationMethod?: ValidationMethod; + /** + * Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see Quotas. The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples: (63 octets).(63 octets).(63 octets).(61 octets) is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets. (64 octets).(63 octets).(63 octets).(61 octets) is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets. (63 octets).(63 octets).(63 octets).(62 octets) is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets. + */ + SubjectAlternativeNames?: DomainList; + /** + * Customer chosen string that can be used to distinguish between calls to RequestCertificate. Idempotency tokens time out after one hour. Therefore, if you call RequestCertificate multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates. + */ + IdempotencyToken?: IdempotencyToken; + /** + * The domain name that you want ACM to use to send you emails so that you can validate domain ownership. + */ + DomainValidationOptions?: DomainValidationOptionList; + /** + * Currently, you can use this parameter to specify whether to add the certificate to a certificate transparency log. Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see Opting Out of Certificate Transparency Logging. + */ + Options?: CertificateOptions; + /** + * The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the AWS Certificate Manager Private Certificate Authority (PCA) user guide. The ARN must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn?: Arn; + /** + * One or more resource tags to associate with the certificate. + */ + Tags?: TagList; + } + export interface RequestCertificateResponse { + /** + * String that contains the ARN of the issued certificate. This must be of the form: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012 + */ + CertificateArn?: Arn; + } + export interface ResendValidationEmailRequest { + /** + * String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request. The ARN must be of the form: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012 + */ + CertificateArn: Arn; + /** + * The fully qualified domain name (FQDN) of the certificate that needs to be validated. + */ + Domain: DomainNameString; + /** + * The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the Domain value or a superdomain of the Domain value. For example, if you requested a certificate for site.subdomain.example.com and specify a ValidationDomain of subdomain.example.com, ACM sends email to the domain registrant, technical contact, and administrative contact in WHOIS and the following five addresses: admin@subdomain.example.com administrator@subdomain.example.com hostmaster@subdomain.example.com postmaster@subdomain.example.com webmaster@subdomain.example.com + */ + ValidationDomain: DomainNameString; + } + export interface ResourceRecord { + /** + * The name of the DNS record to create in your domain. This is supplied by ACM. + */ + Name: String; + /** + * The type of DNS record. Currently this can be CNAME. + */ + Type: RecordType; + /** + * The value of the CNAME record to add to your DNS database. This is supplied by ACM. + */ + Value: String; + } + export type RevocationReason = "UNSPECIFIED"|"KEY_COMPROMISE"|"CA_COMPROMISE"|"AFFILIATION_CHANGED"|"SUPERCEDED"|"CESSATION_OF_OPERATION"|"CERTIFICATE_HOLD"|"REMOVE_FROM_CRL"|"PRIVILEGE_WITHDRAWN"|"A_A_COMPROMISE"|string; + export type String = string; + export type TStamp = Date; + export interface Tag { + /** + * The key of the tag. + */ + Key: TagKey; + /** + * The value of the tag. + */ + Value?: TagValue; + } + export type TagKey = string; + export type TagList = Tag[]; + export type TagValue = string; + export interface UpdateCertificateOptionsRequest { + /** + * ARN of the requested certificate to update. This must be of the form: arn:aws:acm:us-east-1:account:certificate/12345678-1234-1234-1234-123456789012 + */ + CertificateArn: Arn; + /** + * Use to update the options for your certificate. Currently, you can specify whether to add your certificate to a transparency log. Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. + */ + Options: CertificateOptions; + } + export type ValidationEmailList = String[]; + export type ValidationMethod = "EMAIL"|"DNS"|string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2015-12-08"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the ACM client. + */ + export import Types = ACM; +} +export = ACM; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/acm.js b/justdanceonline-main/node_modules/aws-sdk/clients/acm.js new file mode 100644 index 0000000000000000000000000000000000000000..db36a2046d06d623644d3e46f815b3e370aea2d2 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/acm.js @@ -0,0 +1,19 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['acm'] = {}; +AWS.ACM = Service.defineService('acm', ['2015-12-08']); +Object.defineProperty(apiLoader.services['acm'], '2015-12-08', { + get: function get() { + var model = require('../apis/acm-2015-12-08.min.json'); + model.paginators = require('../apis/acm-2015-12-08.paginators.json').pagination; + model.waiters = require('../apis/acm-2015-12-08.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.ACM; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/acmpca.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/acmpca.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ec24bff56052e62207fa1905cf90e831cb0544cf --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/acmpca.d.ts @@ -0,0 +1,1082 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {WaiterConfiguration} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class ACMPCA extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: ACMPCA.Types.ClientConfiguration) + config: Config & ACMPCA.Types.ClientConfiguration; + /** + * Creates a root or subordinate private certificate authority (CA). You must specify the CA configuration, the certificate revocation list (CRL) configuration, the CA type, and an optional idempotency token to avoid accidental creation of multiple CAs. The CA configuration specifies the name of the algorithm and key size to be used to create the CA private key, the type of signing algorithm that the CA uses, and X.500 subject information. The CRL configuration specifies the CRL expiration period in days (the validity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket that is included in certificates issued by the CA. If successful, this action returns the Amazon Resource Name (ARN) of the CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your CRLs. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. + */ + createCertificateAuthority(params: ACMPCA.Types.CreateCertificateAuthorityRequest, callback?: (err: AWSError, data: ACMPCA.Types.CreateCertificateAuthorityResponse) => void): Request; + /** + * Creates a root or subordinate private certificate authority (CA). You must specify the CA configuration, the certificate revocation list (CRL) configuration, the CA type, and an optional idempotency token to avoid accidental creation of multiple CAs. The CA configuration specifies the name of the algorithm and key size to be used to create the CA private key, the type of signing algorithm that the CA uses, and X.500 subject information. The CRL configuration specifies the CRL expiration period in days (the validity period of the CRL), the Amazon S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket that is included in certificates issued by the CA. If successful, this action returns the Amazon Resource Name (ARN) of the CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your CRLs. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. + */ + createCertificateAuthority(callback?: (err: AWSError, data: ACMPCA.Types.CreateCertificateAuthorityResponse) => void): Request; + /** + * Creates an audit report that lists every time that your CA private key is used. The report is saved in the Amazon S3 bucket that you specify on input. The IssueCertificate and RevokeCertificate actions use the private key. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your Audit Reports. + */ + createCertificateAuthorityAuditReport(params: ACMPCA.Types.CreateCertificateAuthorityAuditReportRequest, callback?: (err: AWSError, data: ACMPCA.Types.CreateCertificateAuthorityAuditReportResponse) => void): Request; + /** + * Creates an audit report that lists every time that your CA private key is used. The report is saved in the Amazon S3 bucket that you specify on input. The IssueCertificate and RevokeCertificate actions use the private key. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. ACM Private CA assets that are stored in Amazon S3 can be protected with encryption. For more information, see Encrypting Your Audit Reports. + */ + createCertificateAuthorityAuditReport(callback?: (err: AWSError, data: ACMPCA.Types.CreateCertificateAuthorityAuditReportResponse) => void): Request; + /** + * Grants one or more permissions on a private CA to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. You can list current permissions with the ListPermissions action and revoke them with the DeletePermission action. About Permissions If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see Using a Resource Based Policy with ACM Private CA. + */ + createPermission(params: ACMPCA.Types.CreatePermissionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Grants one or more permissions on a private CA to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. You can list current permissions with the ListPermissions action and revoke them with the DeletePermission action. About Permissions If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see Using a Resource Based Policy with ACM Private CA. + */ + createPermission(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the ListCertificateAuthorities action. Deleting a CA will invalidate other CAs and certificates below it in your CA hierarchy. Before you can delete a CA that you have created and activated, you must disable it. To do this, call the UpdateCertificateAuthority action and set the CertificateAuthorityStatus parameter to DISABLED. Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is CREATING). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into ACM Private CA (that is, the status of the CA is PENDING_CERTIFICATE). When you successfully call DeleteCertificateAuthority, the CA's status changes to DELETED. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the PermanentDeletionTimeInDays parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The DescribeCertificateAuthority action returns the time remaining in the restoration window of a private CA in the DELETED state. To restore an eligible CA, call the RestoreCertificateAuthority action. + */ + deleteCertificateAuthority(params: ACMPCA.Types.DeleteCertificateAuthorityRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the ListCertificateAuthorities action. Deleting a CA will invalidate other CAs and certificates below it in your CA hierarchy. Before you can delete a CA that you have created and activated, you must disable it. To do this, call the UpdateCertificateAuthority action and set the CertificateAuthorityStatus parameter to DISABLED. Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is CREATING). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into ACM Private CA (that is, the status of the CA is PENDING_CERTIFICATE). When you successfully call DeleteCertificateAuthority, the CA's status changes to DELETED. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the PermanentDeletionTimeInDays parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The DescribeCertificateAuthority action returns the time remaining in the restoration window of a private CA in the DELETED state. To restore an eligible CA, call the RestoreCertificateAuthority action. + */ + deleteCertificateAuthority(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Revokes permissions on a private CA granted to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. If you revoke these permissions, ACM will no longer renew the affected certificates automatically. Permissions can be granted with the CreatePermission action and listed with the ListPermissions action. About Permissions If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see Using a Resource Based Policy with ACM Private CA. + */ + deletePermission(params: ACMPCA.Types.DeletePermissionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Revokes permissions on a private CA granted to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. If you revoke these permissions, ACM will no longer renew the affected certificates automatically. Permissions can be granted with the CreatePermission action and listed with the ListPermissions action. About Permissions If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see Using a Resource Based Policy with ACM Private CA. + */ + deletePermission(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the resource-based policy attached to a private CA. Deletion will remove any access that the policy has granted. If there is no policy attached to the private CA, this action will return successful. If you delete a policy that was applied through AWS Resource Access Manager (RAM), the CA will be removed from all shares in which it was included. The AWS Certificate Manager Service Linked Role that the policy supports is not affected when you delete the policy. The current policy can be shown with GetPolicy and updated with PutPolicy. About Policies A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see Using a Resource Based Policy with ACM Private CA. A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see Using a Service Linked Role with ACM. Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see Attach a Policy for Cross-Account Access. + */ + deletePolicy(params: ACMPCA.Types.DeletePolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the resource-based policy attached to a private CA. Deletion will remove any access that the policy has granted. If there is no policy attached to the private CA, this action will return successful. If you delete a policy that was applied through AWS Resource Access Manager (RAM), the CA will be removed from all shares in which it was included. The AWS Certificate Manager Service Linked Role that the policy supports is not affected when you delete the policy. The current policy can be shown with GetPolicy and updated with PutPolicy. About Policies A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see Using a Resource Based Policy with ACM Private CA. A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see Using a Service Linked Role with ACM. Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see Attach a Policy for Cross-Account Access. + */ + deletePolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Lists information about your private certificate authority (CA) or one that has been shared with you. You specify the private CA on input by its ARN (Amazon Resource Name). The output contains the status of your CA. This can be any of the following: CREATING - ACM Private CA is creating your private certificate authority. PENDING_CERTIFICATE - The certificate is pending. You must use your ACM Private CA-hosted or on-premises root or subordinate CA to sign your private CA CSR and then import it into PCA. ACTIVE - Your private CA is active. DISABLED - Your private CA has been disabled. EXPIRED - Your private CA certificate has expired. FAILED - Your private CA has failed. Your CA can fail because of problems such a network outage or back-end AWS failure or other errors. A failed CA can never return to the pending state. You must create a new CA. DELETED - Your private CA is within the restoration period, after which it is permanently deleted. The length of time remaining in the CA's restoration period is also included in this action's output. + */ + describeCertificateAuthority(params: ACMPCA.Types.DescribeCertificateAuthorityRequest, callback?: (err: AWSError, data: ACMPCA.Types.DescribeCertificateAuthorityResponse) => void): Request; + /** + * Lists information about your private certificate authority (CA) or one that has been shared with you. You specify the private CA on input by its ARN (Amazon Resource Name). The output contains the status of your CA. This can be any of the following: CREATING - ACM Private CA is creating your private certificate authority. PENDING_CERTIFICATE - The certificate is pending. You must use your ACM Private CA-hosted or on-premises root or subordinate CA to sign your private CA CSR and then import it into PCA. ACTIVE - Your private CA is active. DISABLED - Your private CA has been disabled. EXPIRED - Your private CA certificate has expired. FAILED - Your private CA has failed. Your CA can fail because of problems such a network outage or back-end AWS failure or other errors. A failed CA can never return to the pending state. You must create a new CA. DELETED - Your private CA is within the restoration period, after which it is permanently deleted. The length of time remaining in the CA's restoration period is also included in this action's output. + */ + describeCertificateAuthority(callback?: (err: AWSError, data: ACMPCA.Types.DescribeCertificateAuthorityResponse) => void): Request; + /** + * Lists information about a specific audit report created by calling the CreateCertificateAuthorityAuditReport action. Audit information is created every time the certificate authority (CA) private key is used. The private key is used when you call the IssueCertificate action or the RevokeCertificate action. + */ + describeCertificateAuthorityAuditReport(params: ACMPCA.Types.DescribeCertificateAuthorityAuditReportRequest, callback?: (err: AWSError, data: ACMPCA.Types.DescribeCertificateAuthorityAuditReportResponse) => void): Request; + /** + * Lists information about a specific audit report created by calling the CreateCertificateAuthorityAuditReport action. Audit information is created every time the certificate authority (CA) private key is used. The private key is used when you call the IssueCertificate action or the RevokeCertificate action. + */ + describeCertificateAuthorityAuditReport(callback?: (err: AWSError, data: ACMPCA.Types.DescribeCertificateAuthorityAuditReportResponse) => void): Request; + /** + * Retrieves a certificate from your private CA or one that has been shared with you. The ARN of the certificate is returned when you call the IssueCertificate action. You must specify both the ARN of your private CA and the ARN of the issued certificate when calling the GetCertificate action. You can retrieve the certificate if it is in the ISSUED state. You can call the CreateCertificateAuthorityAuditReport action to create a report that contains information about all of the certificates issued and revoked by your private CA. + */ + getCertificate(params: ACMPCA.Types.GetCertificateRequest, callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateResponse) => void): Request; + /** + * Retrieves a certificate from your private CA or one that has been shared with you. The ARN of the certificate is returned when you call the IssueCertificate action. You must specify both the ARN of your private CA and the ARN of the issued certificate when calling the GetCertificate action. You can retrieve the certificate if it is in the ISSUED state. You can call the CreateCertificateAuthorityAuditReport action to create a report that contains information about all of the certificates issued and revoked by your private CA. + */ + getCertificate(callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateResponse) => void): Request; + /** + * Retrieves the certificate and certificate chain for your private certificate authority (CA) or one that has been shared with you. Both the certificate and the chain are base64 PEM-encoded. The chain does not include the CA certificate. Each certificate in the chain signs the one before it. + */ + getCertificateAuthorityCertificate(params: ACMPCA.Types.GetCertificateAuthorityCertificateRequest, callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateAuthorityCertificateResponse) => void): Request; + /** + * Retrieves the certificate and certificate chain for your private certificate authority (CA) or one that has been shared with you. Both the certificate and the chain are base64 PEM-encoded. The chain does not include the CA certificate. Each certificate in the chain signs the one before it. + */ + getCertificateAuthorityCertificate(callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateAuthorityCertificateResponse) => void): Request; + /** + * Retrieves the certificate signing request (CSR) for your private certificate authority (CA). The CSR is created when you call the CreateCertificateAuthority action. Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA. Then import the signed certificate back into ACM Private CA by calling the ImportCertificateAuthorityCertificate action. The CSR is returned as a base64 PEM-encoded string. + */ + getCertificateAuthorityCsr(params: ACMPCA.Types.GetCertificateAuthorityCsrRequest, callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateAuthorityCsrResponse) => void): Request; + /** + * Retrieves the certificate signing request (CSR) for your private certificate authority (CA). The CSR is created when you call the CreateCertificateAuthority action. Sign the CSR with your ACM Private CA-hosted or on-premises root or subordinate CA. Then import the signed certificate back into ACM Private CA by calling the ImportCertificateAuthorityCertificate action. The CSR is returned as a base64 PEM-encoded string. + */ + getCertificateAuthorityCsr(callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateAuthorityCsrResponse) => void): Request; + /** + * Retrieves the resource-based policy attached to a private CA. If either the private CA resource or the policy cannot be found, this action returns a ResourceNotFoundException. The policy can be attached or updated with PutPolicy and removed with DeletePolicy. About Policies A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see Using a Resource Based Policy with ACM Private CA. A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see Using a Service Linked Role with ACM. Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see Attach a Policy for Cross-Account Access. + */ + getPolicy(params: ACMPCA.Types.GetPolicyRequest, callback?: (err: AWSError, data: ACMPCA.Types.GetPolicyResponse) => void): Request; + /** + * Retrieves the resource-based policy attached to a private CA. If either the private CA resource or the policy cannot be found, this action returns a ResourceNotFoundException. The policy can be attached or updated with PutPolicy and removed with DeletePolicy. About Policies A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see Using a Resource Based Policy with ACM Private CA. A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see Using a Service Linked Role with ACM. Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see Attach a Policy for Cross-Account Access. + */ + getPolicy(callback?: (err: AWSError, data: ACMPCA.Types.GetPolicyResponse) => void): Request; + /** + * Imports a signed private CA certificate into ACM Private CA. This action is used when you are using a chain of trust whose root is located outside ACM Private CA. Before you can call this action, the following preparations must in place: In ACM Private CA, call the CreateCertificateAuthority action to create the private CA that you plan to back with the imported certificate. Call the GetCertificateAuthorityCsr action to generate a certificate signing request (CSR). Sign the CSR using a root or intermediate CA hosted by either an on-premises PKI hierarchy or by a commercial CA. Create a certificate chain and copy the signed certificate and the certificate chain to your working directory. ACM Private CA supports three scenarios for installing a CA certificate: Installing a certificate for a root CA hosted by ACM Private CA. Installing a subordinate CA certificate whose parent authority is hosted by ACM Private CA. Installing a subordinate CA certificate whose parent authority is externally hosted. The following additional requirements apply when you import a CA certificate. Only a self-signed certificate can be imported as a root CA. A self-signed certificate cannot be imported as a subordinate CA. Your certificate chain must not include the private CA certificate that you are importing. Your root CA must be the last certificate in your chain. The subordinate certificate, if any, that your root CA signed must be next to last. The subordinate certificate signed by the preceding subordinate CA must come next, and so on until your chain is built. The chain must be PEM-encoded. The maximum allowed size of a certificate is 32 KB. The maximum allowed size of a certificate chain is 2 MB. Enforcement of Critical Constraints ACM Private CA allows the following extensions to be marked critical in the imported CA certificate or chain. Basic constraints (must be marked critical) Subject alternative names Key usage Extended key usage Authority key identifier Subject key identifier Issuer alternative name Subject directory attributes Subject information access Certificate policies Policy mappings Inhibit anyPolicy ACM Private CA rejects the following extensions when they are marked critical in an imported CA certificate or chain. Name constraints Policy constraints CRL distribution points Authority information access Freshest CRL Any other extension + */ + importCertificateAuthorityCertificate(params: ACMPCA.Types.ImportCertificateAuthorityCertificateRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Imports a signed private CA certificate into ACM Private CA. This action is used when you are using a chain of trust whose root is located outside ACM Private CA. Before you can call this action, the following preparations must in place: In ACM Private CA, call the CreateCertificateAuthority action to create the private CA that you plan to back with the imported certificate. Call the GetCertificateAuthorityCsr action to generate a certificate signing request (CSR). Sign the CSR using a root or intermediate CA hosted by either an on-premises PKI hierarchy or by a commercial CA. Create a certificate chain and copy the signed certificate and the certificate chain to your working directory. ACM Private CA supports three scenarios for installing a CA certificate: Installing a certificate for a root CA hosted by ACM Private CA. Installing a subordinate CA certificate whose parent authority is hosted by ACM Private CA. Installing a subordinate CA certificate whose parent authority is externally hosted. The following additional requirements apply when you import a CA certificate. Only a self-signed certificate can be imported as a root CA. A self-signed certificate cannot be imported as a subordinate CA. Your certificate chain must not include the private CA certificate that you are importing. Your root CA must be the last certificate in your chain. The subordinate certificate, if any, that your root CA signed must be next to last. The subordinate certificate signed by the preceding subordinate CA must come next, and so on until your chain is built. The chain must be PEM-encoded. The maximum allowed size of a certificate is 32 KB. The maximum allowed size of a certificate chain is 2 MB. Enforcement of Critical Constraints ACM Private CA allows the following extensions to be marked critical in the imported CA certificate or chain. Basic constraints (must be marked critical) Subject alternative names Key usage Extended key usage Authority key identifier Subject key identifier Issuer alternative name Subject directory attributes Subject information access Certificate policies Policy mappings Inhibit anyPolicy ACM Private CA rejects the following extensions when they are marked critical in an imported CA certificate or chain. Name constraints Policy constraints CRL distribution points Authority information access Freshest CRL Any other extension + */ + importCertificateAuthorityCertificate(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Uses your private certificate authority (CA), or one that has been shared with you, to issue a client certificate. This action returns the Amazon Resource Name (ARN) of the certificate. You can retrieve the certificate by calling the GetCertificate action and specifying the ARN. You cannot use the ACM ListCertificateAuthorities action to retrieve the ARNs of the certificates that you issue by using ACM Private CA. + */ + issueCertificate(params: ACMPCA.Types.IssueCertificateRequest, callback?: (err: AWSError, data: ACMPCA.Types.IssueCertificateResponse) => void): Request; + /** + * Uses your private certificate authority (CA), or one that has been shared with you, to issue a client certificate. This action returns the Amazon Resource Name (ARN) of the certificate. You can retrieve the certificate by calling the GetCertificate action and specifying the ARN. You cannot use the ACM ListCertificateAuthorities action to retrieve the ARNs of the certificates that you issue by using ACM Private CA. + */ + issueCertificate(callback?: (err: AWSError, data: ACMPCA.Types.IssueCertificateResponse) => void): Request; + /** + * Lists the private certificate authorities that you created by using the CreateCertificateAuthority action. + */ + listCertificateAuthorities(params: ACMPCA.Types.ListCertificateAuthoritiesRequest, callback?: (err: AWSError, data: ACMPCA.Types.ListCertificateAuthoritiesResponse) => void): Request; + /** + * Lists the private certificate authorities that you created by using the CreateCertificateAuthority action. + */ + listCertificateAuthorities(callback?: (err: AWSError, data: ACMPCA.Types.ListCertificateAuthoritiesResponse) => void): Request; + /** + * List all permissions on a private CA, if any, granted to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. Permissions can be granted with the CreatePermission action and revoked with the DeletePermission action. About Permissions If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see Using a Resource Based Policy with ACM Private CA. + */ + listPermissions(params: ACMPCA.Types.ListPermissionsRequest, callback?: (err: AWSError, data: ACMPCA.Types.ListPermissionsResponse) => void): Request; + /** + * List all permissions on a private CA, if any, granted to the AWS Certificate Manager (ACM) service principal (acm.amazonaws.com). These permissions allow ACM to issue and renew ACM certificates that reside in the same AWS account as the CA. Permissions can be granted with the CreatePermission action and revoked with the DeletePermission action. About Permissions If the private CA and the certificates it issues reside in the same account, you can use CreatePermission to grant permissions for ACM to carry out automatic certificate renewals. For automatic certificate renewal to succeed, the ACM service principal needs permissions to create, retrieve, and list certificates. If the private CA and the ACM certificates reside in different accounts, then permissions cannot be used to enable automatic renewals. Instead, the ACM certificate owner must set up a resource-based policy to enable cross-account issuance and renewals. For more information, see Using a Resource Based Policy with ACM Private CA. + */ + listPermissions(callback?: (err: AWSError, data: ACMPCA.Types.ListPermissionsResponse) => void): Request; + /** + * Lists the tags, if any, that are associated with your private CA or one that has been shared with you. Tags are labels that you can use to identify and organize your CAs. Each tag consists of a key and an optional value. Call the TagCertificateAuthority action to add one or more tags to your CA. Call the UntagCertificateAuthority action to remove tags. + */ + listTags(params: ACMPCA.Types.ListTagsRequest, callback?: (err: AWSError, data: ACMPCA.Types.ListTagsResponse) => void): Request; + /** + * Lists the tags, if any, that are associated with your private CA or one that has been shared with you. Tags are labels that you can use to identify and organize your CAs. Each tag consists of a key and an optional value. Call the TagCertificateAuthority action to add one or more tags to your CA. Call the UntagCertificateAuthority action to remove tags. + */ + listTags(callback?: (err: AWSError, data: ACMPCA.Types.ListTagsResponse) => void): Request; + /** + * Attaches a resource-based policy to a private CA. A policy can also be applied by sharing a private CA through AWS Resource Access Manager (RAM). For more information, see Attach a Policy for Cross-Account Access. The policy can be displayed with GetPolicy and removed with DeletePolicy. About Policies A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see Using a Resource Based Policy with ACM Private CA. A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see Using a Service Linked Role with ACM. Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see Attach a Policy for Cross-Account Access. + */ + putPolicy(params: ACMPCA.Types.PutPolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Attaches a resource-based policy to a private CA. A policy can also be applied by sharing a private CA through AWS Resource Access Manager (RAM). For more information, see Attach a Policy for Cross-Account Access. The policy can be displayed with GetPolicy and removed with DeletePolicy. About Policies A policy grants access on a private CA to an AWS customer account, to AWS Organizations, or to an AWS Organizations unit. Policies are under the control of a CA administrator. For more information, see Using a Resource Based Policy with ACM Private CA. A policy permits a user of AWS Certificate Manager (ACM) to issue ACM certificates signed by a CA in another account. For ACM to manage automatic renewal of these certificates, the ACM user must configure a Service Linked Role (SLR). The SLR allows the ACM service to assume the identity of the user, subject to confirmation against the ACM Private CA policy. For more information, see Using a Service Linked Role with ACM. Updates made in AWS Resource Manager (RAM) are reflected in policies. For more information, see Attach a Policy for Cross-Account Access. + */ + putPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Restores a certificate authority (CA) that is in the DELETED state. You can restore a CA during the period that you defined in the PermanentDeletionTimeInDays parameter of the DeleteCertificateAuthority action. Currently, you can specify 7 to 30 days. If you did not specify a PermanentDeletionTimeInDays value, by default you can restore the CA at any time in a 30 day period. You can check the time remaining in the restoration period of a private CA in the DELETED state by calling the DescribeCertificateAuthority or ListCertificateAuthorities actions. The status of a restored CA is set to its pre-deletion status when the RestoreCertificateAuthority action returns. To change its status to ACTIVE, call the UpdateCertificateAuthority action. If the private CA was in the PENDING_CERTIFICATE state at deletion, you must use the ImportCertificateAuthorityCertificate action to import a certificate authority into the private CA before it can be activated. You cannot restore a CA after the restoration period has ended. + */ + restoreCertificateAuthority(params: ACMPCA.Types.RestoreCertificateAuthorityRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Restores a certificate authority (CA) that is in the DELETED state. You can restore a CA during the period that you defined in the PermanentDeletionTimeInDays parameter of the DeleteCertificateAuthority action. Currently, you can specify 7 to 30 days. If you did not specify a PermanentDeletionTimeInDays value, by default you can restore the CA at any time in a 30 day period. You can check the time remaining in the restoration period of a private CA in the DELETED state by calling the DescribeCertificateAuthority or ListCertificateAuthorities actions. The status of a restored CA is set to its pre-deletion status when the RestoreCertificateAuthority action returns. To change its status to ACTIVE, call the UpdateCertificateAuthority action. If the private CA was in the PENDING_CERTIFICATE state at deletion, you must use the ImportCertificateAuthorityCertificate action to import a certificate authority into the private CA before it can be activated. You cannot restore a CA after the restoration period has ended. + */ + restoreCertificateAuthority(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Revokes a certificate that was issued inside ACM Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. ACM Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, ACM Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information, see Supported CloudWatch Metrics. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. ACM Private CA also writes revocation information to the audit report. For more information, see CreateCertificateAuthorityAuditReport. You cannot revoke a root CA self-signed certificate. + */ + revokeCertificate(params: ACMPCA.Types.RevokeCertificateRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Revokes a certificate that was issued inside ACM Private CA. If you enable a certificate revocation list (CRL) when you create or update your private CA, information about the revoked certificates will be included in the CRL. ACM Private CA writes the CRL to an S3 bucket that you specify. A CRL is typically updated approximately 30 minutes after a certificate is revoked. If for any reason the CRL update fails, ACM Private CA attempts makes further attempts every 15 minutes. With Amazon CloudWatch, you can create alarms for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information, see Supported CloudWatch Metrics. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. ACM Private CA also writes revocation information to the audit report. For more information, see CreateCertificateAuthorityAuditReport. You cannot revoke a root CA self-signed certificate. + */ + revokeCertificate(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds one or more tags to your private CA. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the private CA on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one private CA if you want to identify a specific characteristic of that CA, or you can apply the same tag to multiple private CAs if you want to filter for a common relationship among those CAs. To remove one or more tags, use the UntagCertificateAuthority action. Call the ListTags action to see what tags are associated with your CA. + */ + tagCertificateAuthority(params: ACMPCA.Types.TagCertificateAuthorityRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds one or more tags to your private CA. Tags are labels that you can use to identify and organize your AWS resources. Each tag consists of a key and an optional value. You specify the private CA on input by its Amazon Resource Name (ARN). You specify the tag by using a key-value pair. You can apply a tag to just one private CA if you want to identify a specific characteristic of that CA, or you can apply the same tag to multiple private CAs if you want to filter for a common relationship among those CAs. To remove one or more tags, use the UntagCertificateAuthority action. Call the ListTags action to see what tags are associated with your CA. + */ + tagCertificateAuthority(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove one or more tags from your private CA. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this action, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a private CA, use the TagCertificateAuthority. Call the ListTags action to see what tags are associated with your CA. + */ + untagCertificateAuthority(params: ACMPCA.Types.UntagCertificateAuthorityRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove one or more tags from your private CA. A tag consists of a key-value pair. If you do not specify the value portion of the tag when calling this action, the tag will be removed regardless of value. If you specify a value, the tag is removed only if it is associated with the specified value. To add tags to a private CA, use the TagCertificateAuthority. Call the ListTags action to see what tags are associated with your CA. + */ + untagCertificateAuthority(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the status or configuration of a private certificate authority (CA). Your private CA must be in the ACTIVE or DISABLED state before you can update it. You can disable a private CA that is in the ACTIVE state or make a CA that is in the DISABLED state active again. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. + */ + updateCertificateAuthority(params: ACMPCA.Types.UpdateCertificateAuthorityRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the status or configuration of a private certificate authority (CA). Your private CA must be in the ACTIVE or DISABLED state before you can update it. You can disable a private CA that is in the ACTIVE state or make a CA that is in the DISABLED state active again. Both PCA and the IAM principal must have permission to write to the S3 bucket that you specify. If the IAM principal making the call does not have permission to write to the bucket, then an exception is thrown. For more information, see Configure Access to ACM Private CA. + */ + updateCertificateAuthority(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Waits for the certificateAuthorityCSRCreated state by periodically calling the underlying ACMPCA.getCertificateAuthorityCsroperation every 3 seconds (at most 60 times). Wait until a Certificate Authority CSR is created + */ + waitFor(state: "certificateAuthorityCSRCreated", params: ACMPCA.Types.GetCertificateAuthorityCsrRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateAuthorityCsrResponse) => void): Request; + /** + * Waits for the certificateAuthorityCSRCreated state by periodically calling the underlying ACMPCA.getCertificateAuthorityCsroperation every 3 seconds (at most 60 times). Wait until a Certificate Authority CSR is created + */ + waitFor(state: "certificateAuthorityCSRCreated", callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateAuthorityCsrResponse) => void): Request; + /** + * Waits for the certificateIssued state by periodically calling the underlying ACMPCA.getCertificateoperation every 3 seconds (at most 60 times). Wait until a certificate is issued + */ + waitFor(state: "certificateIssued", params: ACMPCA.Types.GetCertificateRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateResponse) => void): Request; + /** + * Waits for the certificateIssued state by periodically calling the underlying ACMPCA.getCertificateoperation every 3 seconds (at most 60 times). Wait until a certificate is issued + */ + waitFor(state: "certificateIssued", callback?: (err: AWSError, data: ACMPCA.Types.GetCertificateResponse) => void): Request; + /** + * Waits for the auditReportCreated state by periodically calling the underlying ACMPCA.describeCertificateAuthorityAuditReportoperation every 3 seconds (at most 60 times). Wait until a Audit Report is created + */ + waitFor(state: "auditReportCreated", params: ACMPCA.Types.DescribeCertificateAuthorityAuditReportRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: ACMPCA.Types.DescribeCertificateAuthorityAuditReportResponse) => void): Request; + /** + * Waits for the auditReportCreated state by periodically calling the underlying ACMPCA.describeCertificateAuthorityAuditReportoperation every 3 seconds (at most 60 times). Wait until a Audit Report is created + */ + waitFor(state: "auditReportCreated", callback?: (err: AWSError, data: ACMPCA.Types.DescribeCertificateAuthorityAuditReportResponse) => void): Request; +} +declare namespace ACMPCA { + export type ASN1PrintableString64 = string; + export interface ASN1Subject { + /** + * Two-digit code that specifies the country in which the certificate subject located. + */ + Country?: CountryCodeString; + /** + * Legal name of the organization with which the certificate subject is affiliated. + */ + Organization?: String64; + /** + * A subdivision or unit of the organization (such as sales or finance) with which the certificate subject is affiliated. + */ + OrganizationalUnit?: String64; + /** + * Disambiguating information for the certificate subject. + */ + DistinguishedNameQualifier?: ASN1PrintableString64; + /** + * State in which the subject of the certificate is located. + */ + State?: String128; + /** + * For CA and end-entity certificates in a private PKI, the common name (CN) can be any string within the length limit. Note: In publicly trusted certificates, the common name must be a fully qualified domain name (FQDN) associated with the certificate subject. + */ + CommonName?: String64; + /** + * The certificate serial number. + */ + SerialNumber?: ASN1PrintableString64; + /** + * The locality (such as a city or town) in which the certificate subject is located. + */ + Locality?: String128; + /** + * A title such as Mr. or Ms., which is pre-pended to the name to refer formally to the certificate subject. + */ + Title?: String64; + /** + * Family name. In the US and the UK, for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first. + */ + Surname?: String40; + /** + * First name. + */ + GivenName?: String16; + /** + * Concatenation that typically contains the first letter of the GivenName, the first letter of the middle name if one exists, and the first letter of the Surname. + */ + Initials?: String5; + /** + * Typically a shortened version of a longer GivenName. For example, Jonathan is often shortened to John. Elizabeth is often shortened to Beth, Liz, or Eliza. + */ + Pseudonym?: String128; + /** + * Typically a qualifier appended to the name of an individual. Examples include Jr. for junior, Sr. for senior, and III for third. + */ + GenerationQualifier?: String3; + } + export type AWSPolicy = string; + export interface AccessDescription { + /** + * The type and format of AccessDescription information. + */ + AccessMethod: AccessMethod; + /** + * The location of AccessDescription information. + */ + AccessLocation: GeneralName; + } + export type AccessDescriptionList = AccessDescription[]; + export interface AccessMethod { + /** + * An object identifier (OID) specifying the AccessMethod. The OID must satisfy the regular expression shown below. For more information, see NIST's definition of Object Identifier (OID). + */ + CustomObjectIdentifier?: CustomObjectIdentifier; + /** + * Specifies the AccessMethod. + */ + AccessMethodType?: AccessMethodType; + } + export type AccessMethodType = "CA_REPOSITORY"|"RESOURCE_PKI_MANIFEST"|"RESOURCE_PKI_NOTIFY"|string; + export type AccountId = string; + export type ActionList = ActionType[]; + export type ActionType = "IssueCertificate"|"GetCertificate"|"ListPermissions"|string; + export interface ApiPassthrough { + /** + * Specifies X.509 extension information for a certificate. + */ + Extensions?: Extensions; + Subject?: ASN1Subject; + } + export type Arn = string; + export type AuditReportId = string; + export type AuditReportResponseFormat = "JSON"|"CSV"|string; + export type AuditReportStatus = "CREATING"|"SUCCESS"|"FAILED"|string; + export type Boolean = boolean; + export type CertificateAuthorities = CertificateAuthority[]; + export interface CertificateAuthority { + /** + * Amazon Resource Name (ARN) for your private certificate authority (CA). The format is 12345678-1234-1234-1234-123456789012 . + */ + Arn?: Arn; + /** + * The AWS account ID that owns the certificate authority. + */ + OwnerAccount?: AccountId; + /** + * Date and time at which your private CA was created. + */ + CreatedAt?: TStamp; + /** + * Date and time at which your private CA was last updated. + */ + LastStateChangeAt?: TStamp; + /** + * Type of your private CA. + */ + Type?: CertificateAuthorityType; + /** + * Serial number of your private CA. + */ + Serial?: String; + /** + * Status of your private CA. + */ + Status?: CertificateAuthorityStatus; + /** + * Date and time before which your private CA certificate is not valid. + */ + NotBefore?: TStamp; + /** + * Date and time after which your private CA certificate is not valid. + */ + NotAfter?: TStamp; + /** + * Reason the request to create your private CA failed. + */ + FailureReason?: FailureReason; + /** + * Your private CA configuration. + */ + CertificateAuthorityConfiguration?: CertificateAuthorityConfiguration; + /** + * Information about the certificate revocation list (CRL) created and maintained by your private CA. + */ + RevocationConfiguration?: RevocationConfiguration; + /** + * The period during which a deleted CA can be restored. For more information, see the PermanentDeletionTimeInDays parameter of the DeleteCertificateAuthorityRequest action. + */ + RestorableUntil?: TStamp; + /** + * Defines a cryptographic key management compliance standard used for handling CA keys. Default: FIPS_140_2_LEVEL_3_OR_HIGHER Note: AWS Region ap-northeast-3 supports only FIPS_140_2_LEVEL_2_OR_HIGHER. You must explicitly specify this parameter and value when creating a CA in that Region. Specifying a different value (or no value) results in an InvalidArgsException with the message "A certificate authority cannot be created in this region with the specified security standard." + */ + KeyStorageSecurityStandard?: KeyStorageSecurityStandard; + } + export interface CertificateAuthorityConfiguration { + /** + * Type of the public key algorithm and size, in bits, of the key pair that your CA creates when it issues a certificate. When you create a subordinate CA, you must use a key algorithm supported by the parent CA. + */ + KeyAlgorithm: KeyAlgorithm; + /** + * Name of the algorithm your private CA uses to sign certificate requests. This parameter should not be confused with the SigningAlgorithm parameter used to sign certificates when they are issued. + */ + SigningAlgorithm: SigningAlgorithm; + /** + * Structure that contains X.500 distinguished name information for your private CA. + */ + Subject: ASN1Subject; + /** + * Specifies information to be added to the extension section of the certificate signing request (CSR). + */ + CsrExtensions?: CsrExtensions; + } + export type CertificateAuthorityStatus = "CREATING"|"PENDING_CERTIFICATE"|"ACTIVE"|"DELETED"|"DISABLED"|"EXPIRED"|"FAILED"|string; + export type CertificateAuthorityType = "ROOT"|"SUBORDINATE"|string; + export type CertificateBody = string; + export type CertificateBodyBlob = Buffer|Uint8Array|Blob|string; + export type CertificateChain = string; + export type CertificateChainBlob = Buffer|Uint8Array|Blob|string; + export type CertificatePolicyList = PolicyInformation[]; + export type CountryCodeString = string; + export interface CreateCertificateAuthorityAuditReportRequest { + /** + * The Amazon Resource Name (ARN) of the CA to be audited. This is of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + /** + * The name of the S3 bucket that will contain the audit report. + */ + S3BucketName: S3BucketName; + /** + * The format in which to create the report. This can be either JSON or CSV. + */ + AuditReportResponseFormat: AuditReportResponseFormat; + } + export interface CreateCertificateAuthorityAuditReportResponse { + /** + * An alphanumeric string that contains a report identifier. + */ + AuditReportId?: AuditReportId; + /** + * The key that uniquely identifies the report file in your S3 bucket. + */ + S3Key?: S3Key; + } + export interface CreateCertificateAuthorityRequest { + /** + * Name and bit size of the private key algorithm, the name of the signing algorithm, and X.500 certificate subject information. + */ + CertificateAuthorityConfiguration: CertificateAuthorityConfiguration; + /** + * Contains a Boolean value that you can use to enable a certification revocation list (CRL) for the CA, the name of the S3 bucket to which ACM Private CA will write the CRL, and an optional CNAME alias that you can use to hide the name of your bucket in the CRL Distribution Points extension of your CA certificate. For more information, see the CrlConfiguration structure. + */ + RevocationConfiguration?: RevocationConfiguration; + /** + * The type of the certificate authority. + */ + CertificateAuthorityType: CertificateAuthorityType; + /** + * Custom string that can be used to distinguish between calls to the CreateCertificateAuthority action. Idempotency tokens for CreateCertificateAuthority time out after five minutes. Therefore, if you call CreateCertificateAuthority multiple times with the same idempotency token within five minutes, ACM Private CA recognizes that you are requesting only certificate authority and will issue only one. If you change the idempotency token for each call, PCA recognizes that you are requesting multiple certificate authorities. + */ + IdempotencyToken?: IdempotencyToken; + /** + * Specifies a cryptographic key management compliance standard used for handling CA keys. Default: FIPS_140_2_LEVEL_3_OR_HIGHER Note: FIPS_140_2_LEVEL_3_OR_HIGHER is not supported in Region ap-northeast-3. When creating a CA in the ap-northeast-3, you must provide FIPS_140_2_LEVEL_2_OR_HIGHER as the argument for KeyStorageSecurityStandard. Failure to do this results in an InvalidArgsException with the message, "A certificate authority cannot be created in this region with the specified security standard." + */ + KeyStorageSecurityStandard?: KeyStorageSecurityStandard; + /** + * Key-value pairs that will be attached to the new private CA. You can associate up to 50 tags with a private CA. For information using tags with IAM to manage permissions, see Controlling Access Using IAM Tags. + */ + Tags?: TagList; + } + export interface CreateCertificateAuthorityResponse { + /** + * If successful, the Amazon Resource Name (ARN) of the certificate authority (CA). This is of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn?: Arn; + } + export interface CreatePermissionRequest { + /** + * The Amazon Resource Name (ARN) of the CA that grants the permissions. You can find the ARN by calling the ListCertificateAuthorities action. This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + /** + * The AWS service or identity that receives the permission. At this time, the only valid principal is acm.amazonaws.com. + */ + Principal: Principal; + /** + * The ID of the calling account. + */ + SourceAccount?: AccountId; + /** + * The actions that the specified AWS service principal can use. These include IssueCertificate, GetCertificate, and ListPermissions. + */ + Actions: ActionList; + } + export interface CrlConfiguration { + /** + * Boolean value that specifies whether certificate revocation lists (CRLs) are enabled. You can use this value to enable certificate revocation for a new CA when you call the CreateCertificateAuthority action or for an existing CA when you call the UpdateCertificateAuthority action. + */ + Enabled: Boolean; + /** + * Validity period of the CRL in days. + */ + ExpirationInDays?: Integer1To5000; + /** + * Name inserted into the certificate CRL Distribution Points extension that enables the use of an alias for the CRL distribution point. Use this value if you don't want the name of your S3 bucket to be public. + */ + CustomCname?: String253; + /** + * Name of the S3 bucket that contains the CRL. If you do not provide a value for the CustomCname argument, the name of your S3 bucket is placed into the CRL Distribution Points extension of the issued certificate. You can change the name of your bucket by calling the UpdateCertificateAuthority action. You must specify a bucket policy that allows ACM Private CA to write the CRL to your bucket. + */ + S3BucketName?: String3To255; + /** + * Determines whether the CRL will be publicly readable or privately held in the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the owner of the CRL S3 bucket can access the CRL, and your PKI clients may need an alternative method of access. If no value is specified, the default is PUBLIC_READ. Note: This default can cause CA creation to fail in some circumstances. If you have have enabled the Block Public Access (BPA) feature in your S3 account, then you must specify the value of this parameter as BUCKET_OWNER_FULL_CONTROL, and not doing so results in an error. If you have disabled BPA in S3, then you can specify either BUCKET_OWNER_FULL_CONTROL or PUBLIC_READ as the value. For more information, see Blocking public access to the S3 bucket. + */ + S3ObjectAcl?: S3ObjectAcl; + } + export type CsrBlob = Buffer|Uint8Array|Blob|string; + export type CsrBody = string; + export interface CsrExtensions { + /** + * Indicates the purpose of the certificate and of the key contained in the certificate. + */ + KeyUsage?: KeyUsage; + /** + * For CA certificates, provides a path to additional information pertaining to the CA, such as revocation and policy. For more information, see Subject Information Access in RFC 5280. + */ + SubjectInformationAccess?: AccessDescriptionList; + } + export type CustomObjectIdentifier = string; + export interface DeleteCertificateAuthorityRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + /** + * The number of days to make a CA restorable after it has been deleted. This can be anywhere from 7 to 30 days, with 30 being the default. + */ + PermanentDeletionTimeInDays?: PermanentDeletionTimeInDays; + } + export interface DeletePermissionRequest { + /** + * The Amazon Resource Number (ARN) of the private CA that issued the permissions. You can find the CA's ARN by calling the ListCertificateAuthorities action. This must have the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + /** + * The AWS service or identity that will have its CA permissions revoked. At this time, the only valid service principal is acm.amazonaws.com + */ + Principal: Principal; + /** + * The AWS account that calls this action. + */ + SourceAccount?: AccountId; + } + export interface DeletePolicyRequest { + /** + * The Amazon Resource Number (ARN) of the private CA that will have its policy deleted. You can find the CA's ARN by calling the ListCertificateAuthorities action. The ARN value must have the form arn:aws:acm-pca:region:account:certificate-authority/01234567-89ab-cdef-0123-0123456789ab. + */ + ResourceArn: Arn; + } + export interface DescribeCertificateAuthorityAuditReportRequest { + /** + * The Amazon Resource Name (ARN) of the private CA. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + /** + * The report ID returned by calling the CreateCertificateAuthorityAuditReport action. + */ + AuditReportId: AuditReportId; + } + export interface DescribeCertificateAuthorityAuditReportResponse { + /** + * Specifies whether report creation is in progress, has succeeded, or has failed. + */ + AuditReportStatus?: AuditReportStatus; + /** + * Name of the S3 bucket that contains the report. + */ + S3BucketName?: S3BucketName; + /** + * S3 key that uniquely identifies the report file in your S3 bucket. + */ + S3Key?: S3Key; + /** + * The date and time at which the report was created. + */ + CreatedAt?: TStamp; + } + export interface DescribeCertificateAuthorityRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + } + export interface DescribeCertificateAuthorityResponse { + /** + * A CertificateAuthority structure that contains information about your private CA. + */ + CertificateAuthority?: CertificateAuthority; + } + export interface EdiPartyName { + /** + * Specifies the party name. + */ + PartyName: String256; + /** + * Specifies the name assigner. + */ + NameAssigner?: String256; + } + export interface ExtendedKeyUsage { + /** + * Specifies a standard ExtendedKeyUsage as defined as in RFC 5280. + */ + ExtendedKeyUsageType?: ExtendedKeyUsageType; + /** + * Specifies a custom ExtendedKeyUsage with an object identifier (OID). + */ + ExtendedKeyUsageObjectIdentifier?: CustomObjectIdentifier; + } + export type ExtendedKeyUsageList = ExtendedKeyUsage[]; + export type ExtendedKeyUsageType = "SERVER_AUTH"|"CLIENT_AUTH"|"CODE_SIGNING"|"EMAIL_PROTECTION"|"TIME_STAMPING"|"OCSP_SIGNING"|"SMART_CARD_LOGIN"|"DOCUMENT_SIGNING"|"CERTIFICATE_TRANSPARENCY"|string; + export interface Extensions { + /** + * Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of Object Identifier (OID). In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate. + */ + CertificatePolicies?: CertificatePolicyList; + /** + * Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the KeyUsage extension. + */ + ExtendedKeyUsage?: ExtendedKeyUsageList; + KeyUsage?: KeyUsage; + /** + * The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate. + */ + SubjectAlternativeNames?: GeneralNameList; + } + export type FailureReason = "REQUEST_TIMED_OUT"|"UNSUPPORTED_ALGORITHM"|"OTHER"|string; + export interface GeneralName { + /** + * Represents GeneralName using an OtherName object. + */ + OtherName?: OtherName; + /** + * Represents GeneralName as an RFC 822 email address. + */ + Rfc822Name?: String256; + /** + * Represents GeneralName as a DNS name. + */ + DnsName?: String253; + DirectoryName?: ASN1Subject; + /** + * Represents GeneralName as an EdiPartyName object. + */ + EdiPartyName?: EdiPartyName; + /** + * Represents GeneralName as a URI. + */ + UniformResourceIdentifier?: String253; + /** + * Represents GeneralName as an IPv4 or IPv6 address. + */ + IpAddress?: String39; + /** + * Represents GeneralName as an object identifier (OID). + */ + RegisteredId?: CustomObjectIdentifier; + } + export type GeneralNameList = GeneralName[]; + export interface GetCertificateAuthorityCertificateRequest { + /** + * The Amazon Resource Name (ARN) of your private CA. This is of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + } + export interface GetCertificateAuthorityCertificateResponse { + /** + * Base64-encoded certificate authority (CA) certificate. + */ + Certificate?: CertificateBody; + /** + * Base64-encoded certificate chain that includes any intermediate certificates and chains up to root certificate that you used to sign your private CA certificate. The chain does not include your private CA certificate. If this is a root CA, the value will be null. + */ + CertificateChain?: CertificateChain; + } + export interface GetCertificateAuthorityCsrRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called the CreateCertificateAuthority action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + } + export interface GetCertificateAuthorityCsrResponse { + /** + * The base64 PEM-encoded certificate signing request (CSR) for your private CA certificate. + */ + Csr?: CsrBody; + } + export interface GetCertificateRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 . + */ + CertificateAuthorityArn: Arn; + /** + * The ARN of the issued certificate. The ARN contains the certificate serial number and must be in the following form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/286535153982981100925020015808220737245 + */ + CertificateArn: Arn; + } + export interface GetCertificateResponse { + /** + * The base64 PEM-encoded certificate specified by the CertificateArn parameter. + */ + Certificate?: CertificateBody; + /** + * The base64 PEM-encoded certificate chain that chains up to the root CA certificate that you used to sign your private CA certificate. + */ + CertificateChain?: CertificateChain; + } + export interface GetPolicyRequest { + /** + * The Amazon Resource Number (ARN) of the private CA that will have its policy retrieved. You can find the CA's ARN by calling the ListCertificateAuthorities action. + */ + ResourceArn: Arn; + } + export interface GetPolicyResponse { + /** + * The policy attached to the private CA as a JSON document. + */ + Policy?: AWSPolicy; + } + export type IdempotencyToken = string; + export interface ImportCertificateAuthorityCertificateRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + /** + * The PEM-encoded certificate for a private CA. This may be a self-signed certificate in the case of a root CA, or it may be signed by another CA that you control. + */ + Certificate: CertificateBodyBlob; + /** + * A PEM-encoded file that contains all of your certificates, other than the certificate you're importing, chaining up to your root CA. Your ACM Private CA-hosted or on-premises root certificate is the last in the chain, and each certificate in the chain signs the one preceding. This parameter must be supplied when you import a subordinate CA. When you import a root CA, there is no chain. + */ + CertificateChain?: CertificateChainBlob; + } + export type Integer1To5000 = number; + export interface IssueCertificateRequest { + /** + * Specifies X.509 certificate information to be included in the issued certificate. An APIPassthrough or APICSRPassthrough template variant must be selected, or else this parameter is ignored. For more information about using these templates, see Understanding Certificate Templates. If conflicting or duplicate certificate information is supplied during certificate issuance, ACM Private CA applies order of operation rules to determine what information is used. + */ + ApiPassthrough?: ApiPassthrough; + /** + * The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + /** + * The certificate signing request (CSR) for the certificate you want to issue. As an example, you can use the following OpenSSL command to create the CSR and a 2048 bit RSA private key. openssl req -new -newkey rsa:2048 -days 365 -keyout private/test_cert_priv_key.pem -out csr/test_cert_.csr If you have a configuration file, you can then use the following OpenSSL command. The usr_cert block in the configuration file contains your X509 version 3 extensions. openssl req -new -config openssl_rsa.cnf -extensions usr_cert -newkey rsa:2048 -days -365 -keyout private/test_cert_priv_key.pem -out csr/test_cert_.csr Note: A CSR must provide either a subject name or a subject alternative name or the request will be rejected. + */ + Csr: CsrBlob; + /** + * The name of the algorithm that will be used to sign the certificate to be issued. This parameter should not be confused with the SigningAlgorithm parameter used to sign a CSR in the CreateCertificateAuthority action. + */ + SigningAlgorithm: SigningAlgorithm; + /** + * Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, ACM Private CA defaults to the EndEntityCertificate/V1 template. For CA certificates, you should choose the shortest path length that meets your needs. The path length is indicated by the PathLenN portion of the ARN, where N is the CA depth. Note: The CA depth configured on a subordinate CA certificate must not exceed the limit set by its parents in the CA hierarchy. For a list of TemplateArn values supported by ACM Private CA, see Understanding Certificate Templates. + */ + TemplateArn?: Arn; + /** + * Information describing the end of the validity period of the certificate. This parameter sets the “Not After” date for the certificate. Certificate validity is the period of time during which a certificate is valid. Validity can be expressed as an explicit date and time when the certificate expires, or as a span of time after issuance, stated in days, months, or years. For more information, see Validity in RFC 5280. This value is unaffected when ValidityNotBefore is also specified. For example, if Validity is set to 20 days in the future, the certificate will expire 20 days from issuance time regardless of the ValidityNotBefore value. The end of the validity period configured on a certificate must not exceed the limit set on its parents in the CA hierarchy. + */ + Validity: Validity; + /** + * Information describing the start of the validity period of the certificate. This parameter sets the “Not Before" date for the certificate. By default, when issuing a certificate, ACM Private CA sets the "Not Before" date to the issuance time minus 60 minutes. This compensates for clock inconsistencies across computer systems. The ValidityNotBefore parameter can be used to customize the “Not Before” value. Unlike the Validity parameter, the ValidityNotBefore parameter is optional. The ValidityNotBefore value is expressed as an explicit date and time, using the Validity type value ABSOLUTE. For more information, see Validity in this API reference and Validity in RFC 5280. + */ + ValidityNotBefore?: Validity; + /** + * Alphanumeric string that can be used to distinguish between calls to the IssueCertificate action. Idempotency tokens for IssueCertificate time out after one minute. Therefore, if you call IssueCertificate multiple times with the same idempotency token within one minute, ACM Private CA recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, PCA recognizes that you are requesting multiple certificates. + */ + IdempotencyToken?: IdempotencyToken; + } + export interface IssueCertificateResponse { + /** + * The Amazon Resource Name (ARN) of the issued certificate and the certificate serial number. This is of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/286535153982981100925020015808220737245 + */ + CertificateArn?: Arn; + } + export type KeyAlgorithm = "RSA_2048"|"RSA_4096"|"EC_prime256v1"|"EC_secp384r1"|string; + export type KeyStorageSecurityStandard = "FIPS_140_2_LEVEL_2_OR_HIGHER"|"FIPS_140_2_LEVEL_3_OR_HIGHER"|string; + export interface KeyUsage { + /** + * Key can be used for digital signing. + */ + DigitalSignature?: Boolean; + /** + * Key can be used for non-repudiation. + */ + NonRepudiation?: Boolean; + /** + * Key can be used to encipher data. + */ + KeyEncipherment?: Boolean; + /** + * Key can be used to decipher data. + */ + DataEncipherment?: Boolean; + /** + * Key can be used in a key-agreement protocol. + */ + KeyAgreement?: Boolean; + /** + * Key can be used to sign certificates. + */ + KeyCertSign?: Boolean; + /** + * Key can be used to sign CRLs. + */ + CRLSign?: Boolean; + /** + * Key can be used only to encipher data. + */ + EncipherOnly?: Boolean; + /** + * Key can be used only to decipher data. + */ + DecipherOnly?: Boolean; + } + export interface ListCertificateAuthoritiesRequest { + /** + * Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of the NextToken parameter from the response you just received. + */ + NextToken?: NextToken; + /** + * Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items. + */ + MaxResults?: MaxResults; + /** + * Use this parameter to filter the returned set of certificate authorities based on their owner. The default is SELF. + */ + ResourceOwner?: ResourceOwner; + } + export interface ListCertificateAuthoritiesResponse { + /** + * Summary information about each certificate authority you have created. + */ + CertificateAuthorities?: CertificateAuthorities; + /** + * When the list is truncated, this value is present and should be used for the NextToken parameter in a subsequent pagination request. + */ + NextToken?: NextToken; + } + export interface ListPermissionsRequest { + /** + * The Amazon Resource Number (ARN) of the private CA to inspect. You can find the ARN by calling the ListCertificateAuthorities action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 You can get a private CA's ARN by running the ListCertificateAuthorities action. + */ + CertificateAuthorityArn: Arn; + /** + * When paginating results, use this parameter in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just received. + */ + NextToken?: NextToken; + /** + * When paginating results, use this parameter to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items. + */ + MaxResults?: MaxResults; + } + export interface ListPermissionsResponse { + /** + * Summary information about each permission assigned by the specified private CA, including the action enabled, the policy provided, and the time of creation. + */ + Permissions?: PermissionList; + /** + * When the list is truncated, this value is present and should be used for the NextToken parameter in a subsequent pagination request. + */ + NextToken?: NextToken; + } + export interface ListTagsRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called the CreateCertificateAuthority action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + /** + * Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of NextToken from the response you just received. + */ + NextToken?: NextToken; + /** + * Use this parameter when paginating results to specify the maximum number of items to return in the response. If additional items exist beyond the number you specify, the NextToken element is sent in the response. Use this NextToken value in a subsequent request to retrieve additional items. + */ + MaxResults?: MaxResults; + } + export interface ListTagsResponse { + /** + * The tags associated with your private CA. + */ + Tags?: TagList; + /** + * When the list is truncated, this value is present and should be used for the NextToken parameter in a subsequent pagination request. + */ + NextToken?: NextToken; + } + export type MaxResults = number; + export type NextToken = string; + export interface OtherName { + /** + * Specifies an OID. + */ + TypeId: CustomObjectIdentifier; + /** + * Specifies an OID value. + */ + Value: String256; + } + export type PermanentDeletionTimeInDays = number; + export interface Permission { + /** + * The Amazon Resource Number (ARN) of the private CA from which the permission was issued. + */ + CertificateAuthorityArn?: Arn; + /** + * The time at which the permission was created. + */ + CreatedAt?: TStamp; + /** + * The AWS service or entity that holds the permission. At this time, the only valid principal is acm.amazonaws.com. + */ + Principal?: Principal; + /** + * The ID of the account that assigned the permission. + */ + SourceAccount?: AccountId; + /** + * The private CA actions that can be performed by the designated AWS service. + */ + Actions?: ActionList; + /** + * The name of the policy that is associated with the permission. + */ + Policy?: AWSPolicy; + } + export type PermissionList = Permission[]; + export interface PolicyInformation { + /** + * Specifies the object identifier (OID) of the certificate policy under which the certificate was issued. For more information, see NIST's definition of Object Identifier (OID). + */ + CertPolicyId: CustomObjectIdentifier; + /** + * Modifies the given CertPolicyId with a qualifier. ACM Private CA supports the certification practice statement (CPS) qualifier. + */ + PolicyQualifiers?: PolicyQualifierInfoList; + } + export type PolicyQualifierId = "CPS"|string; + export interface PolicyQualifierInfo { + /** + * Identifies the qualifier modifying a CertPolicyId. + */ + PolicyQualifierId: PolicyQualifierId; + /** + * Defines the qualifier type. ACM Private CA supports the use of a URI for a CPS qualifier in this field. + */ + Qualifier: Qualifier; + } + export type PolicyQualifierInfoList = PolicyQualifierInfo[]; + export type PositiveLong = number; + export type Principal = string; + export interface PutPolicyRequest { + /** + * The Amazon Resource Number (ARN) of the private CA to associate with the policy. The ARN of the CA can be found by calling the ListCertificateAuthorities action. + */ + ResourceArn: Arn; + /** + * The path and file name of a JSON-formatted IAM policy to attach to the specified private CA resource. If this policy does not contain all required statements or if it includes any statement that is not allowed, the PutPolicy action returns an InvalidPolicyException. For information about IAM policy and statement structure, see Overview of JSON Policies. + */ + Policy: AWSPolicy; + } + export interface Qualifier { + /** + * Contains a pointer to a certification practice statement (CPS) published by the CA. + */ + CpsUri: String256; + } + export type ResourceOwner = "SELF"|"OTHER_ACCOUNTS"|string; + export interface RestoreCertificateAuthorityRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called the CreateCertificateAuthority action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + } + export interface RevocationConfiguration { + /** + * Configuration of the certificate revocation list (CRL), if any, maintained by your private CA. + */ + CrlConfiguration?: CrlConfiguration; + } + export type RevocationReason = "UNSPECIFIED"|"KEY_COMPROMISE"|"CERTIFICATE_AUTHORITY_COMPROMISE"|"AFFILIATION_CHANGED"|"SUPERSEDED"|"CESSATION_OF_OPERATION"|"PRIVILEGE_WITHDRAWN"|"A_A_COMPROMISE"|string; + export interface RevokeCertificateRequest { + /** + * Amazon Resource Name (ARN) of the private CA that issued the certificate to be revoked. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + /** + * Serial number of the certificate to be revoked. This must be in hexadecimal format. You can retrieve the serial number by calling GetCertificate with the Amazon Resource Name (ARN) of the certificate you want and the ARN of your private CA. The GetCertificate action retrieves the certificate in the PEM format. You can use the following OpenSSL command to list the certificate in text format and copy the hexadecimal serial number. openssl x509 -in file_path -text -noout You can also copy the serial number from the console or use the DescribeCertificate action in the AWS Certificate Manager API Reference. + */ + CertificateSerial: String128; + /** + * Specifies why you revoked the certificate. + */ + RevocationReason: RevocationReason; + } + export type S3BucketName = string; + export type S3Key = string; + export type S3ObjectAcl = "PUBLIC_READ"|"BUCKET_OWNER_FULL_CONTROL"|string; + export type SigningAlgorithm = "SHA256WITHECDSA"|"SHA384WITHECDSA"|"SHA512WITHECDSA"|"SHA256WITHRSA"|"SHA384WITHRSA"|"SHA512WITHRSA"|string; + export type String = string; + export type String128 = string; + export type String16 = string; + export type String253 = string; + export type String256 = string; + export type String3 = string; + export type String39 = string; + export type String3To255 = string; + export type String40 = string; + export type String5 = string; + export type String64 = string; + export type TStamp = Date; + export interface Tag { + /** + * Key (name) of the tag. + */ + Key: TagKey; + /** + * Value of the tag. + */ + Value?: TagValue; + } + export interface TagCertificateAuthorityRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + /** + * List of tags to be associated with the CA. + */ + Tags: TagList; + } + export type TagKey = string; + export type TagList = Tag[]; + export type TagValue = string; + export interface UntagCertificateAuthorityRequest { + /** + * The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + /** + * List of tags to be removed from the CA. + */ + Tags: TagList; + } + export interface UpdateCertificateAuthorityRequest { + /** + * Amazon Resource Name (ARN) of the private CA that issued the certificate to be revoked. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 + */ + CertificateAuthorityArn: Arn; + /** + * Revocation information for your private CA. + */ + RevocationConfiguration?: RevocationConfiguration; + /** + * Status of your private CA. + */ + Status?: CertificateAuthorityStatus; + } + export interface Validity { + /** + * A long integer interpreted according to the value of Type, below. + */ + Value: PositiveLong; + /** + * Determines how ACM Private CA interprets the Value parameter, an integer. Supported validity types include those listed below. Type definitions with values include a sample input value and the resulting output. END_DATE: The specific date and time when the certificate will expire, expressed using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format. When UTCTime is used, if the year field (YY) is greater than or equal to 50, the year is interpreted as 19YY. If the year field is less than 50, the year is interpreted as 20YY. Sample input value: 491231235959 (UTCTime format) Output expiration date/time: 12/31/2049 23:59:59 ABSOLUTE: The specific date and time when the validity of a certificate will start or expire, expressed in seconds since the Unix Epoch. Sample input value: 2524608000 Output expiration date/time: 01/01/2050 00:00:00 DAYS, MONTHS, YEARS: The relative time from the moment of issuance until the certificate will expire, expressed in days, months, or years. Example if DAYS, issued on 10/12/2020 at 12:34:54 UTC: Sample input value: 90 Output expiration date: 01/10/2020 12:34:54 UTC The minimum validity duration for a certificate using relative time (DAYS) is one day. The minimum validity for a certificate using absolute time (ABSOLUTE or END_DATE) is one second. + */ + Type: ValidityPeriodType; + } + export type ValidityPeriodType = "END_DATE"|"ABSOLUTE"|"DAYS"|"MONTHS"|"YEARS"|string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-08-22"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the ACMPCA client. + */ + export import Types = ACMPCA; +} +export = ACMPCA; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/acmpca.js b/justdanceonline-main/node_modules/aws-sdk/clients/acmpca.js new file mode 100644 index 0000000000000000000000000000000000000000..8da1431e81ede2dce7c0ca8580eee462239a4f4a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/acmpca.js @@ -0,0 +1,19 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['acmpca'] = {}; +AWS.ACMPCA = Service.defineService('acmpca', ['2017-08-22']); +Object.defineProperty(apiLoader.services['acmpca'], '2017-08-22', { + get: function get() { + var model = require('../apis/acm-pca-2017-08-22.min.json'); + model.paginators = require('../apis/acm-pca-2017-08-22.paginators.json').pagination; + model.waiters = require('../apis/acm-pca-2017-08-22.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.ACMPCA; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/alexaforbusiness.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/alexaforbusiness.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..3cf79b9f2a9dc14417e16e9016ee66a328da7580 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/alexaforbusiness.d.ts @@ -0,0 +1,3850 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AlexaForBusiness extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AlexaForBusiness.Types.ClientConfiguration) + config: Config & AlexaForBusiness.Types.ClientConfiguration; + /** + * Associates a skill with the organization under the customer's AWS account. If a skill is private, the user implicitly accepts access to this skill during enablement. + */ + approveSkill(params: AlexaForBusiness.Types.ApproveSkillRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ApproveSkillResponse) => void): Request; + /** + * Associates a skill with the organization under the customer's AWS account. If a skill is private, the user implicitly accepts access to this skill during enablement. + */ + approveSkill(callback?: (err: AWSError, data: AlexaForBusiness.Types.ApproveSkillResponse) => void): Request; + /** + * Associates a contact with a given address book. + */ + associateContactWithAddressBook(params: AlexaForBusiness.Types.AssociateContactWithAddressBookRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateContactWithAddressBookResponse) => void): Request; + /** + * Associates a contact with a given address book. + */ + associateContactWithAddressBook(callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateContactWithAddressBookResponse) => void): Request; + /** + * Associates a device with the specified network profile. + */ + associateDeviceWithNetworkProfile(params: AlexaForBusiness.Types.AssociateDeviceWithNetworkProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateDeviceWithNetworkProfileResponse) => void): Request; + /** + * Associates a device with the specified network profile. + */ + associateDeviceWithNetworkProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateDeviceWithNetworkProfileResponse) => void): Request; + /** + * Associates a device with a given room. This applies all the settings from the room profile to the device, and all the skills in any skill groups added to that room. This operation requires the device to be online, or else a manual sync is required. + */ + associateDeviceWithRoom(params: AlexaForBusiness.Types.AssociateDeviceWithRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateDeviceWithRoomResponse) => void): Request; + /** + * Associates a device with a given room. This applies all the settings from the room profile to the device, and all the skills in any skill groups added to that room. This operation requires the device to be online, or else a manual sync is required. + */ + associateDeviceWithRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateDeviceWithRoomResponse) => void): Request; + /** + * Associates a skill group with a given room. This enables all skills in the associated skill group on all devices in the room. + */ + associateSkillGroupWithRoom(params: AlexaForBusiness.Types.AssociateSkillGroupWithRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateSkillGroupWithRoomResponse) => void): Request; + /** + * Associates a skill group with a given room. This enables all skills in the associated skill group on all devices in the room. + */ + associateSkillGroupWithRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateSkillGroupWithRoomResponse) => void): Request; + /** + * Associates a skill with a skill group. + */ + associateSkillWithSkillGroup(params: AlexaForBusiness.Types.AssociateSkillWithSkillGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateSkillWithSkillGroupResponse) => void): Request; + /** + * Associates a skill with a skill group. + */ + associateSkillWithSkillGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateSkillWithSkillGroupResponse) => void): Request; + /** + * Makes a private skill available for enrolled users to enable on their devices. + */ + associateSkillWithUsers(params: AlexaForBusiness.Types.AssociateSkillWithUsersRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateSkillWithUsersResponse) => void): Request; + /** + * Makes a private skill available for enrolled users to enable on their devices. + */ + associateSkillWithUsers(callback?: (err: AWSError, data: AlexaForBusiness.Types.AssociateSkillWithUsersResponse) => void): Request; + /** + * Creates an address book with the specified details. + */ + createAddressBook(params: AlexaForBusiness.Types.CreateAddressBookRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateAddressBookResponse) => void): Request; + /** + * Creates an address book with the specified details. + */ + createAddressBook(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateAddressBookResponse) => void): Request; + /** + * Creates a recurring schedule for usage reports to deliver to the specified S3 location with a specified daily or weekly interval. + */ + createBusinessReportSchedule(params: AlexaForBusiness.Types.CreateBusinessReportScheduleRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateBusinessReportScheduleResponse) => void): Request; + /** + * Creates a recurring schedule for usage reports to deliver to the specified S3 location with a specified daily or weekly interval. + */ + createBusinessReportSchedule(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateBusinessReportScheduleResponse) => void): Request; + /** + * Adds a new conference provider under the user's AWS account. + */ + createConferenceProvider(params: AlexaForBusiness.Types.CreateConferenceProviderRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateConferenceProviderResponse) => void): Request; + /** + * Adds a new conference provider under the user's AWS account. + */ + createConferenceProvider(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateConferenceProviderResponse) => void): Request; + /** + * Creates a contact with the specified details. + */ + createContact(params: AlexaForBusiness.Types.CreateContactRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateContactResponse) => void): Request; + /** + * Creates a contact with the specified details. + */ + createContact(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateContactResponse) => void): Request; + /** + * Creates a gateway group with the specified details. + */ + createGatewayGroup(params: AlexaForBusiness.Types.CreateGatewayGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateGatewayGroupResponse) => void): Request; + /** + * Creates a gateway group with the specified details. + */ + createGatewayGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateGatewayGroupResponse) => void): Request; + /** + * Creates a network profile with the specified details. + */ + createNetworkProfile(params: AlexaForBusiness.Types.CreateNetworkProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateNetworkProfileResponse) => void): Request; + /** + * Creates a network profile with the specified details. + */ + createNetworkProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateNetworkProfileResponse) => void): Request; + /** + * Creates a new room profile with the specified details. + */ + createProfile(params: AlexaForBusiness.Types.CreateProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateProfileResponse) => void): Request; + /** + * Creates a new room profile with the specified details. + */ + createProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateProfileResponse) => void): Request; + /** + * Creates a room with the specified details. + */ + createRoom(params: AlexaForBusiness.Types.CreateRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateRoomResponse) => void): Request; + /** + * Creates a room with the specified details. + */ + createRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateRoomResponse) => void): Request; + /** + * Creates a skill group with a specified name and description. + */ + createSkillGroup(params: AlexaForBusiness.Types.CreateSkillGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateSkillGroupResponse) => void): Request; + /** + * Creates a skill group with a specified name and description. + */ + createSkillGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateSkillGroupResponse) => void): Request; + /** + * Creates a user. + */ + createUser(params: AlexaForBusiness.Types.CreateUserRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateUserResponse) => void): Request; + /** + * Creates a user. + */ + createUser(callback?: (err: AWSError, data: AlexaForBusiness.Types.CreateUserResponse) => void): Request; + /** + * Deletes an address book by the address book ARN. + */ + deleteAddressBook(params: AlexaForBusiness.Types.DeleteAddressBookRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteAddressBookResponse) => void): Request; + /** + * Deletes an address book by the address book ARN. + */ + deleteAddressBook(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteAddressBookResponse) => void): Request; + /** + * Deletes the recurring report delivery schedule with the specified schedule ARN. + */ + deleteBusinessReportSchedule(params: AlexaForBusiness.Types.DeleteBusinessReportScheduleRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteBusinessReportScheduleResponse) => void): Request; + /** + * Deletes the recurring report delivery schedule with the specified schedule ARN. + */ + deleteBusinessReportSchedule(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteBusinessReportScheduleResponse) => void): Request; + /** + * Deletes a conference provider. + */ + deleteConferenceProvider(params: AlexaForBusiness.Types.DeleteConferenceProviderRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteConferenceProviderResponse) => void): Request; + /** + * Deletes a conference provider. + */ + deleteConferenceProvider(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteConferenceProviderResponse) => void): Request; + /** + * Deletes a contact by the contact ARN. + */ + deleteContact(params: AlexaForBusiness.Types.DeleteContactRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteContactResponse) => void): Request; + /** + * Deletes a contact by the contact ARN. + */ + deleteContact(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteContactResponse) => void): Request; + /** + * Removes a device from Alexa For Business. + */ + deleteDevice(params: AlexaForBusiness.Types.DeleteDeviceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteDeviceResponse) => void): Request; + /** + * Removes a device from Alexa For Business. + */ + deleteDevice(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteDeviceResponse) => void): Request; + /** + * When this action is called for a specified shared device, it allows authorized users to delete the device's entire previous history of voice input data and associated response data. This action can be called once every 24 hours for a specific shared device. + */ + deleteDeviceUsageData(params: AlexaForBusiness.Types.DeleteDeviceUsageDataRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteDeviceUsageDataResponse) => void): Request; + /** + * When this action is called for a specified shared device, it allows authorized users to delete the device's entire previous history of voice input data and associated response data. This action can be called once every 24 hours for a specific shared device. + */ + deleteDeviceUsageData(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteDeviceUsageDataResponse) => void): Request; + /** + * Deletes a gateway group. + */ + deleteGatewayGroup(params: AlexaForBusiness.Types.DeleteGatewayGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteGatewayGroupResponse) => void): Request; + /** + * Deletes a gateway group. + */ + deleteGatewayGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteGatewayGroupResponse) => void): Request; + /** + * Deletes a network profile by the network profile ARN. + */ + deleteNetworkProfile(params: AlexaForBusiness.Types.DeleteNetworkProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteNetworkProfileResponse) => void): Request; + /** + * Deletes a network profile by the network profile ARN. + */ + deleteNetworkProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteNetworkProfileResponse) => void): Request; + /** + * Deletes a room profile by the profile ARN. + */ + deleteProfile(params: AlexaForBusiness.Types.DeleteProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteProfileResponse) => void): Request; + /** + * Deletes a room profile by the profile ARN. + */ + deleteProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteProfileResponse) => void): Request; + /** + * Deletes a room by the room ARN. + */ + deleteRoom(params: AlexaForBusiness.Types.DeleteRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteRoomResponse) => void): Request; + /** + * Deletes a room by the room ARN. + */ + deleteRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteRoomResponse) => void): Request; + /** + * Deletes room skill parameter details by room, skill, and parameter key ID. + */ + deleteRoomSkillParameter(params: AlexaForBusiness.Types.DeleteRoomSkillParameterRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteRoomSkillParameterResponse) => void): Request; + /** + * Deletes room skill parameter details by room, skill, and parameter key ID. + */ + deleteRoomSkillParameter(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteRoomSkillParameterResponse) => void): Request; + /** + * Unlinks a third-party account from a skill. + */ + deleteSkillAuthorization(params: AlexaForBusiness.Types.DeleteSkillAuthorizationRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteSkillAuthorizationResponse) => void): Request; + /** + * Unlinks a third-party account from a skill. + */ + deleteSkillAuthorization(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteSkillAuthorizationResponse) => void): Request; + /** + * Deletes a skill group by skill group ARN. + */ + deleteSkillGroup(params: AlexaForBusiness.Types.DeleteSkillGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteSkillGroupResponse) => void): Request; + /** + * Deletes a skill group by skill group ARN. + */ + deleteSkillGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteSkillGroupResponse) => void): Request; + /** + * Deletes a specified user by user ARN and enrollment ARN. + */ + deleteUser(params: AlexaForBusiness.Types.DeleteUserRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteUserResponse) => void): Request; + /** + * Deletes a specified user by user ARN and enrollment ARN. + */ + deleteUser(callback?: (err: AWSError, data: AlexaForBusiness.Types.DeleteUserResponse) => void): Request; + /** + * Disassociates a contact from a given address book. + */ + disassociateContactFromAddressBook(params: AlexaForBusiness.Types.DisassociateContactFromAddressBookRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateContactFromAddressBookResponse) => void): Request; + /** + * Disassociates a contact from a given address book. + */ + disassociateContactFromAddressBook(callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateContactFromAddressBookResponse) => void): Request; + /** + * Disassociates a device from its current room. The device continues to be connected to the Wi-Fi network and is still registered to the account. The device settings and skills are removed from the room. + */ + disassociateDeviceFromRoom(params: AlexaForBusiness.Types.DisassociateDeviceFromRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateDeviceFromRoomResponse) => void): Request; + /** + * Disassociates a device from its current room. The device continues to be connected to the Wi-Fi network and is still registered to the account. The device settings and skills are removed from the room. + */ + disassociateDeviceFromRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateDeviceFromRoomResponse) => void): Request; + /** + * Disassociates a skill from a skill group. + */ + disassociateSkillFromSkillGroup(params: AlexaForBusiness.Types.DisassociateSkillFromSkillGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateSkillFromSkillGroupResponse) => void): Request; + /** + * Disassociates a skill from a skill group. + */ + disassociateSkillFromSkillGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateSkillFromSkillGroupResponse) => void): Request; + /** + * Makes a private skill unavailable for enrolled users and prevents them from enabling it on their devices. + */ + disassociateSkillFromUsers(params: AlexaForBusiness.Types.DisassociateSkillFromUsersRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateSkillFromUsersResponse) => void): Request; + /** + * Makes a private skill unavailable for enrolled users and prevents them from enabling it on their devices. + */ + disassociateSkillFromUsers(callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateSkillFromUsersResponse) => void): Request; + /** + * Disassociates a skill group from a specified room. This disables all skills in the skill group on all devices in the room. + */ + disassociateSkillGroupFromRoom(params: AlexaForBusiness.Types.DisassociateSkillGroupFromRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateSkillGroupFromRoomResponse) => void): Request; + /** + * Disassociates a skill group from a specified room. This disables all skills in the skill group on all devices in the room. + */ + disassociateSkillGroupFromRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.DisassociateSkillGroupFromRoomResponse) => void): Request; + /** + * Forgets smart home appliances associated to a room. + */ + forgetSmartHomeAppliances(params: AlexaForBusiness.Types.ForgetSmartHomeAppliancesRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ForgetSmartHomeAppliancesResponse) => void): Request; + /** + * Forgets smart home appliances associated to a room. + */ + forgetSmartHomeAppliances(callback?: (err: AWSError, data: AlexaForBusiness.Types.ForgetSmartHomeAppliancesResponse) => void): Request; + /** + * Gets address the book details by the address book ARN. + */ + getAddressBook(params: AlexaForBusiness.Types.GetAddressBookRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetAddressBookResponse) => void): Request; + /** + * Gets address the book details by the address book ARN. + */ + getAddressBook(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetAddressBookResponse) => void): Request; + /** + * Retrieves the existing conference preferences. + */ + getConferencePreference(params: AlexaForBusiness.Types.GetConferencePreferenceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetConferencePreferenceResponse) => void): Request; + /** + * Retrieves the existing conference preferences. + */ + getConferencePreference(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetConferencePreferenceResponse) => void): Request; + /** + * Gets details about a specific conference provider. + */ + getConferenceProvider(params: AlexaForBusiness.Types.GetConferenceProviderRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetConferenceProviderResponse) => void): Request; + /** + * Gets details about a specific conference provider. + */ + getConferenceProvider(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetConferenceProviderResponse) => void): Request; + /** + * Gets the contact details by the contact ARN. + */ + getContact(params: AlexaForBusiness.Types.GetContactRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetContactResponse) => void): Request; + /** + * Gets the contact details by the contact ARN. + */ + getContact(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetContactResponse) => void): Request; + /** + * Gets the details of a device by device ARN. + */ + getDevice(params: AlexaForBusiness.Types.GetDeviceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetDeviceResponse) => void): Request; + /** + * Gets the details of a device by device ARN. + */ + getDevice(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetDeviceResponse) => void): Request; + /** + * Retrieves the details of a gateway. + */ + getGateway(params: AlexaForBusiness.Types.GetGatewayRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetGatewayResponse) => void): Request; + /** + * Retrieves the details of a gateway. + */ + getGateway(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetGatewayResponse) => void): Request; + /** + * Retrieves the details of a gateway group. + */ + getGatewayGroup(params: AlexaForBusiness.Types.GetGatewayGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetGatewayGroupResponse) => void): Request; + /** + * Retrieves the details of a gateway group. + */ + getGatewayGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetGatewayGroupResponse) => void): Request; + /** + * Retrieves the configured values for the user enrollment invitation email template. + */ + getInvitationConfiguration(params: AlexaForBusiness.Types.GetInvitationConfigurationRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetInvitationConfigurationResponse) => void): Request; + /** + * Retrieves the configured values for the user enrollment invitation email template. + */ + getInvitationConfiguration(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetInvitationConfigurationResponse) => void): Request; + /** + * Gets the network profile details by the network profile ARN. + */ + getNetworkProfile(params: AlexaForBusiness.Types.GetNetworkProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetNetworkProfileResponse) => void): Request; + /** + * Gets the network profile details by the network profile ARN. + */ + getNetworkProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetNetworkProfileResponse) => void): Request; + /** + * Gets the details of a room profile by profile ARN. + */ + getProfile(params: AlexaForBusiness.Types.GetProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetProfileResponse) => void): Request; + /** + * Gets the details of a room profile by profile ARN. + */ + getProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetProfileResponse) => void): Request; + /** + * Gets room details by room ARN. + */ + getRoom(params: AlexaForBusiness.Types.GetRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetRoomResponse) => void): Request; + /** + * Gets room details by room ARN. + */ + getRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetRoomResponse) => void): Request; + /** + * Gets room skill parameter details by room, skill, and parameter key ARN. + */ + getRoomSkillParameter(params: AlexaForBusiness.Types.GetRoomSkillParameterRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetRoomSkillParameterResponse) => void): Request; + /** + * Gets room skill parameter details by room, skill, and parameter key ARN. + */ + getRoomSkillParameter(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetRoomSkillParameterResponse) => void): Request; + /** + * Gets skill group details by skill group ARN. + */ + getSkillGroup(params: AlexaForBusiness.Types.GetSkillGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.GetSkillGroupResponse) => void): Request; + /** + * Gets skill group details by skill group ARN. + */ + getSkillGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.GetSkillGroupResponse) => void): Request; + /** + * Lists the details of the schedules that a user configured. A download URL of the report associated with each schedule is returned every time this action is called. A new download URL is returned each time, and is valid for 24 hours. + */ + listBusinessReportSchedules(params: AlexaForBusiness.Types.ListBusinessReportSchedulesRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListBusinessReportSchedulesResponse) => void): Request; + /** + * Lists the details of the schedules that a user configured. A download URL of the report associated with each schedule is returned every time this action is called. A new download URL is returned each time, and is valid for 24 hours. + */ + listBusinessReportSchedules(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListBusinessReportSchedulesResponse) => void): Request; + /** + * Lists conference providers under a specific AWS account. + */ + listConferenceProviders(params: AlexaForBusiness.Types.ListConferenceProvidersRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListConferenceProvidersResponse) => void): Request; + /** + * Lists conference providers under a specific AWS account. + */ + listConferenceProviders(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListConferenceProvidersResponse) => void): Request; + /** + * Lists the device event history, including device connection status, for up to 30 days. + */ + listDeviceEvents(params: AlexaForBusiness.Types.ListDeviceEventsRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListDeviceEventsResponse) => void): Request; + /** + * Lists the device event history, including device connection status, for up to 30 days. + */ + listDeviceEvents(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListDeviceEventsResponse) => void): Request; + /** + * Retrieves a list of gateway group summaries. Use GetGatewayGroup to retrieve details of a specific gateway group. + */ + listGatewayGroups(params: AlexaForBusiness.Types.ListGatewayGroupsRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListGatewayGroupsResponse) => void): Request; + /** + * Retrieves a list of gateway group summaries. Use GetGatewayGroup to retrieve details of a specific gateway group. + */ + listGatewayGroups(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListGatewayGroupsResponse) => void): Request; + /** + * Retrieves a list of gateway summaries. Use GetGateway to retrieve details of a specific gateway. An optional gateway group ARN can be provided to only retrieve gateway summaries of gateways that are associated with that gateway group ARN. + */ + listGateways(params: AlexaForBusiness.Types.ListGatewaysRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListGatewaysResponse) => void): Request; + /** + * Retrieves a list of gateway summaries. Use GetGateway to retrieve details of a specific gateway. An optional gateway group ARN can be provided to only retrieve gateway summaries of gateways that are associated with that gateway group ARN. + */ + listGateways(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListGatewaysResponse) => void): Request; + /** + * Lists all enabled skills in a specific skill group. + */ + listSkills(params: AlexaForBusiness.Types.ListSkillsRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSkillsResponse) => void): Request; + /** + * Lists all enabled skills in a specific skill group. + */ + listSkills(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSkillsResponse) => void): Request; + /** + * Lists all categories in the Alexa skill store. + */ + listSkillsStoreCategories(params: AlexaForBusiness.Types.ListSkillsStoreCategoriesRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSkillsStoreCategoriesResponse) => void): Request; + /** + * Lists all categories in the Alexa skill store. + */ + listSkillsStoreCategories(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSkillsStoreCategoriesResponse) => void): Request; + /** + * Lists all skills in the Alexa skill store by category. + */ + listSkillsStoreSkillsByCategory(params: AlexaForBusiness.Types.ListSkillsStoreSkillsByCategoryRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSkillsStoreSkillsByCategoryResponse) => void): Request; + /** + * Lists all skills in the Alexa skill store by category. + */ + listSkillsStoreSkillsByCategory(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSkillsStoreSkillsByCategoryResponse) => void): Request; + /** + * Lists all of the smart home appliances associated with a room. + */ + listSmartHomeAppliances(params: AlexaForBusiness.Types.ListSmartHomeAppliancesRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSmartHomeAppliancesResponse) => void): Request; + /** + * Lists all of the smart home appliances associated with a room. + */ + listSmartHomeAppliances(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListSmartHomeAppliancesResponse) => void): Request; + /** + * Lists all tags for the specified resource. + */ + listTags(params: AlexaForBusiness.Types.ListTagsRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ListTagsResponse) => void): Request; + /** + * Lists all tags for the specified resource. + */ + listTags(callback?: (err: AWSError, data: AlexaForBusiness.Types.ListTagsResponse) => void): Request; + /** + * Sets the conference preferences on a specific conference provider at the account level. + */ + putConferencePreference(params: AlexaForBusiness.Types.PutConferencePreferenceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.PutConferencePreferenceResponse) => void): Request; + /** + * Sets the conference preferences on a specific conference provider at the account level. + */ + putConferencePreference(callback?: (err: AWSError, data: AlexaForBusiness.Types.PutConferencePreferenceResponse) => void): Request; + /** + * Configures the email template for the user enrollment invitation with the specified attributes. + */ + putInvitationConfiguration(params: AlexaForBusiness.Types.PutInvitationConfigurationRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.PutInvitationConfigurationResponse) => void): Request; + /** + * Configures the email template for the user enrollment invitation with the specified attributes. + */ + putInvitationConfiguration(callback?: (err: AWSError, data: AlexaForBusiness.Types.PutInvitationConfigurationResponse) => void): Request; + /** + * Updates room skill parameter details by room, skill, and parameter key ID. Not all skills have a room skill parameter. + */ + putRoomSkillParameter(params: AlexaForBusiness.Types.PutRoomSkillParameterRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.PutRoomSkillParameterResponse) => void): Request; + /** + * Updates room skill parameter details by room, skill, and parameter key ID. Not all skills have a room skill parameter. + */ + putRoomSkillParameter(callback?: (err: AWSError, data: AlexaForBusiness.Types.PutRoomSkillParameterResponse) => void): Request; + /** + * Links a user's account to a third-party skill provider. If this API operation is called by an assumed IAM role, the skill being linked must be a private skill. Also, the skill must be owned by the AWS account that assumed the IAM role. + */ + putSkillAuthorization(params: AlexaForBusiness.Types.PutSkillAuthorizationRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.PutSkillAuthorizationResponse) => void): Request; + /** + * Links a user's account to a third-party skill provider. If this API operation is called by an assumed IAM role, the skill being linked must be a private skill. Also, the skill must be owned by the AWS account that assumed the IAM role. + */ + putSkillAuthorization(callback?: (err: AWSError, data: AlexaForBusiness.Types.PutSkillAuthorizationResponse) => void): Request; + /** + * Registers an Alexa-enabled device built by an Original Equipment Manufacturer (OEM) using Alexa Voice Service (AVS). + */ + registerAVSDevice(params: AlexaForBusiness.Types.RegisterAVSDeviceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.RegisterAVSDeviceResponse) => void): Request; + /** + * Registers an Alexa-enabled device built by an Original Equipment Manufacturer (OEM) using Alexa Voice Service (AVS). + */ + registerAVSDevice(callback?: (err: AWSError, data: AlexaForBusiness.Types.RegisterAVSDeviceResponse) => void): Request; + /** + * Disassociates a skill from the organization under a user's AWS account. If the skill is a private skill, it moves to an AcceptStatus of PENDING. Any private or public skill that is rejected can be added later by calling the ApproveSkill API. + */ + rejectSkill(params: AlexaForBusiness.Types.RejectSkillRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.RejectSkillResponse) => void): Request; + /** + * Disassociates a skill from the organization under a user's AWS account. If the skill is a private skill, it moves to an AcceptStatus of PENDING. Any private or public skill that is rejected can be added later by calling the ApproveSkill API. + */ + rejectSkill(callback?: (err: AWSError, data: AlexaForBusiness.Types.RejectSkillResponse) => void): Request; + /** + * Determines the details for the room from which a skill request was invoked. This operation is used by skill developers. To query ResolveRoom from an Alexa skill, the skill ID needs to be authorized. When the skill is using an AWS Lambda function, the skill is automatically authorized when you publish your skill as a private skill to your AWS account. Skills that are hosted using a custom web service must be manually authorized. To get your skill authorized, contact AWS Support with your AWS account ID that queries the ResolveRoom API and skill ID. + */ + resolveRoom(params: AlexaForBusiness.Types.ResolveRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.ResolveRoomResponse) => void): Request; + /** + * Determines the details for the room from which a skill request was invoked. This operation is used by skill developers. To query ResolveRoom from an Alexa skill, the skill ID needs to be authorized. When the skill is using an AWS Lambda function, the skill is automatically authorized when you publish your skill as a private skill to your AWS account. Skills that are hosted using a custom web service must be manually authorized. To get your skill authorized, contact AWS Support with your AWS account ID that queries the ResolveRoom API and skill ID. + */ + resolveRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.ResolveRoomResponse) => void): Request; + /** + * Revokes an invitation and invalidates the enrollment URL. + */ + revokeInvitation(params: AlexaForBusiness.Types.RevokeInvitationRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.RevokeInvitationResponse) => void): Request; + /** + * Revokes an invitation and invalidates the enrollment URL. + */ + revokeInvitation(callback?: (err: AWSError, data: AlexaForBusiness.Types.RevokeInvitationResponse) => void): Request; + /** + * Searches address books and lists the ones that meet a set of filter and sort criteria. + */ + searchAddressBooks(params: AlexaForBusiness.Types.SearchAddressBooksRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchAddressBooksResponse) => void): Request; + /** + * Searches address books and lists the ones that meet a set of filter and sort criteria. + */ + searchAddressBooks(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchAddressBooksResponse) => void): Request; + /** + * Searches contacts and lists the ones that meet a set of filter and sort criteria. + */ + searchContacts(params: AlexaForBusiness.Types.SearchContactsRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchContactsResponse) => void): Request; + /** + * Searches contacts and lists the ones that meet a set of filter and sort criteria. + */ + searchContacts(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchContactsResponse) => void): Request; + /** + * Searches devices and lists the ones that meet a set of filter criteria. + */ + searchDevices(params: AlexaForBusiness.Types.SearchDevicesRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchDevicesResponse) => void): Request; + /** + * Searches devices and lists the ones that meet a set of filter criteria. + */ + searchDevices(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchDevicesResponse) => void): Request; + /** + * Searches network profiles and lists the ones that meet a set of filter and sort criteria. + */ + searchNetworkProfiles(params: AlexaForBusiness.Types.SearchNetworkProfilesRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchNetworkProfilesResponse) => void): Request; + /** + * Searches network profiles and lists the ones that meet a set of filter and sort criteria. + */ + searchNetworkProfiles(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchNetworkProfilesResponse) => void): Request; + /** + * Searches room profiles and lists the ones that meet a set of filter criteria. + */ + searchProfiles(params: AlexaForBusiness.Types.SearchProfilesRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchProfilesResponse) => void): Request; + /** + * Searches room profiles and lists the ones that meet a set of filter criteria. + */ + searchProfiles(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchProfilesResponse) => void): Request; + /** + * Searches rooms and lists the ones that meet a set of filter and sort criteria. + */ + searchRooms(params: AlexaForBusiness.Types.SearchRoomsRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchRoomsResponse) => void): Request; + /** + * Searches rooms and lists the ones that meet a set of filter and sort criteria. + */ + searchRooms(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchRoomsResponse) => void): Request; + /** + * Searches skill groups and lists the ones that meet a set of filter and sort criteria. + */ + searchSkillGroups(params: AlexaForBusiness.Types.SearchSkillGroupsRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchSkillGroupsResponse) => void): Request; + /** + * Searches skill groups and lists the ones that meet a set of filter and sort criteria. + */ + searchSkillGroups(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchSkillGroupsResponse) => void): Request; + /** + * Searches users and lists the ones that meet a set of filter and sort criteria. + */ + searchUsers(params: AlexaForBusiness.Types.SearchUsersRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchUsersResponse) => void): Request; + /** + * Searches users and lists the ones that meet a set of filter and sort criteria. + */ + searchUsers(callback?: (err: AWSError, data: AlexaForBusiness.Types.SearchUsersResponse) => void): Request; + /** + * Triggers an asynchronous flow to send text, SSML, or audio announcements to rooms that are identified by a search or filter. + */ + sendAnnouncement(params: AlexaForBusiness.Types.SendAnnouncementRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SendAnnouncementResponse) => void): Request; + /** + * Triggers an asynchronous flow to send text, SSML, or audio announcements to rooms that are identified by a search or filter. + */ + sendAnnouncement(callback?: (err: AWSError, data: AlexaForBusiness.Types.SendAnnouncementResponse) => void): Request; + /** + * Sends an enrollment invitation email with a URL to a user. The URL is valid for 30 days or until you call this operation again, whichever comes first. + */ + sendInvitation(params: AlexaForBusiness.Types.SendInvitationRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.SendInvitationResponse) => void): Request; + /** + * Sends an enrollment invitation email with a URL to a user. The URL is valid for 30 days or until you call this operation again, whichever comes first. + */ + sendInvitation(callback?: (err: AWSError, data: AlexaForBusiness.Types.SendInvitationResponse) => void): Request; + /** + * Resets a device and its account to the known default settings. This clears all information and settings set by previous users in the following ways: Bluetooth - This unpairs all bluetooth devices paired with your echo device. Volume - This resets the echo device's volume to the default value. Notifications - This clears all notifications from your echo device. Lists - This clears all to-do items from your echo device. Settings - This internally syncs the room's profile (if the device is assigned to a room), contacts, address books, delegation access for account linking, and communications (if enabled on the room profile). + */ + startDeviceSync(params: AlexaForBusiness.Types.StartDeviceSyncRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.StartDeviceSyncResponse) => void): Request; + /** + * Resets a device and its account to the known default settings. This clears all information and settings set by previous users in the following ways: Bluetooth - This unpairs all bluetooth devices paired with your echo device. Volume - This resets the echo device's volume to the default value. Notifications - This clears all notifications from your echo device. Lists - This clears all to-do items from your echo device. Settings - This internally syncs the room's profile (if the device is assigned to a room), contacts, address books, delegation access for account linking, and communications (if enabled on the room profile). + */ + startDeviceSync(callback?: (err: AWSError, data: AlexaForBusiness.Types.StartDeviceSyncResponse) => void): Request; + /** + * Initiates the discovery of any smart home appliances associated with the room. + */ + startSmartHomeApplianceDiscovery(params: AlexaForBusiness.Types.StartSmartHomeApplianceDiscoveryRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.StartSmartHomeApplianceDiscoveryResponse) => void): Request; + /** + * Initiates the discovery of any smart home appliances associated with the room. + */ + startSmartHomeApplianceDiscovery(callback?: (err: AWSError, data: AlexaForBusiness.Types.StartSmartHomeApplianceDiscoveryResponse) => void): Request; + /** + * Adds metadata tags to a specified resource. + */ + tagResource(params: AlexaForBusiness.Types.TagResourceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.TagResourceResponse) => void): Request; + /** + * Adds metadata tags to a specified resource. + */ + tagResource(callback?: (err: AWSError, data: AlexaForBusiness.Types.TagResourceResponse) => void): Request; + /** + * Removes metadata tags from a specified resource. + */ + untagResource(params: AlexaForBusiness.Types.UntagResourceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UntagResourceResponse) => void): Request; + /** + * Removes metadata tags from a specified resource. + */ + untagResource(callback?: (err: AWSError, data: AlexaForBusiness.Types.UntagResourceResponse) => void): Request; + /** + * Updates address book details by the address book ARN. + */ + updateAddressBook(params: AlexaForBusiness.Types.UpdateAddressBookRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateAddressBookResponse) => void): Request; + /** + * Updates address book details by the address book ARN. + */ + updateAddressBook(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateAddressBookResponse) => void): Request; + /** + * Updates the configuration of the report delivery schedule with the specified schedule ARN. + */ + updateBusinessReportSchedule(params: AlexaForBusiness.Types.UpdateBusinessReportScheduleRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateBusinessReportScheduleResponse) => void): Request; + /** + * Updates the configuration of the report delivery schedule with the specified schedule ARN. + */ + updateBusinessReportSchedule(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateBusinessReportScheduleResponse) => void): Request; + /** + * Updates an existing conference provider's settings. + */ + updateConferenceProvider(params: AlexaForBusiness.Types.UpdateConferenceProviderRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateConferenceProviderResponse) => void): Request; + /** + * Updates an existing conference provider's settings. + */ + updateConferenceProvider(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateConferenceProviderResponse) => void): Request; + /** + * Updates the contact details by the contact ARN. + */ + updateContact(params: AlexaForBusiness.Types.UpdateContactRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateContactResponse) => void): Request; + /** + * Updates the contact details by the contact ARN. + */ + updateContact(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateContactResponse) => void): Request; + /** + * Updates the device name by device ARN. + */ + updateDevice(params: AlexaForBusiness.Types.UpdateDeviceRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateDeviceResponse) => void): Request; + /** + * Updates the device name by device ARN. + */ + updateDevice(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateDeviceResponse) => void): Request; + /** + * Updates the details of a gateway. If any optional field is not provided, the existing corresponding value is left unmodified. + */ + updateGateway(params: AlexaForBusiness.Types.UpdateGatewayRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateGatewayResponse) => void): Request; + /** + * Updates the details of a gateway. If any optional field is not provided, the existing corresponding value is left unmodified. + */ + updateGateway(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateGatewayResponse) => void): Request; + /** + * Updates the details of a gateway group. If any optional field is not provided, the existing corresponding value is left unmodified. + */ + updateGatewayGroup(params: AlexaForBusiness.Types.UpdateGatewayGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateGatewayGroupResponse) => void): Request; + /** + * Updates the details of a gateway group. If any optional field is not provided, the existing corresponding value is left unmodified. + */ + updateGatewayGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateGatewayGroupResponse) => void): Request; + /** + * Updates a network profile by the network profile ARN. + */ + updateNetworkProfile(params: AlexaForBusiness.Types.UpdateNetworkProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateNetworkProfileResponse) => void): Request; + /** + * Updates a network profile by the network profile ARN. + */ + updateNetworkProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateNetworkProfileResponse) => void): Request; + /** + * Updates an existing room profile by room profile ARN. + */ + updateProfile(params: AlexaForBusiness.Types.UpdateProfileRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateProfileResponse) => void): Request; + /** + * Updates an existing room profile by room profile ARN. + */ + updateProfile(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateProfileResponse) => void): Request; + /** + * Updates room details by room ARN. + */ + updateRoom(params: AlexaForBusiness.Types.UpdateRoomRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateRoomResponse) => void): Request; + /** + * Updates room details by room ARN. + */ + updateRoom(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateRoomResponse) => void): Request; + /** + * Updates skill group details by skill group ARN. + */ + updateSkillGroup(params: AlexaForBusiness.Types.UpdateSkillGroupRequest, callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateSkillGroupResponse) => void): Request; + /** + * Updates skill group details by skill group ARN. + */ + updateSkillGroup(callback?: (err: AWSError, data: AlexaForBusiness.Types.UpdateSkillGroupResponse) => void): Request; +} +declare namespace AlexaForBusiness { + export type Address = string; + export interface AddressBook { + /** + * The ARN of the address book. + */ + AddressBookArn?: Arn; + /** + * The name of the address book. + */ + Name?: AddressBookName; + /** + * The description of the address book. + */ + Description?: AddressBookDescription; + } + export interface AddressBookData { + /** + * The ARN of the address book. + */ + AddressBookArn?: Arn; + /** + * The name of the address book. + */ + Name?: AddressBookName; + /** + * The description of the address book. + */ + Description?: AddressBookDescription; + } + export type AddressBookDataList = AddressBookData[]; + export type AddressBookDescription = string; + export type AddressBookName = string; + export type AmazonId = string; + export type ApplianceDescription = string; + export type ApplianceFriendlyName = string; + export type ApplianceManufacturerName = string; + export interface ApproveSkillRequest { + /** + * The unique identifier of the skill. + */ + SkillId: SkillId; + } + export interface ApproveSkillResponse { + } + export type Arn = string; + export interface AssociateContactWithAddressBookRequest { + /** + * The ARN of the contact to associate with an address book. + */ + ContactArn: Arn; + /** + * The ARN of the address book with which to associate the contact. + */ + AddressBookArn: Arn; + } + export interface AssociateContactWithAddressBookResponse { + } + export interface AssociateDeviceWithNetworkProfileRequest { + /** + * The device ARN. + */ + DeviceArn: Arn; + /** + * The ARN of the network profile to associate with a device. + */ + NetworkProfileArn: Arn; + } + export interface AssociateDeviceWithNetworkProfileResponse { + } + export interface AssociateDeviceWithRoomRequest { + /** + * The ARN of the device to associate to a room. Required. + */ + DeviceArn?: Arn; + /** + * The ARN of the room with which to associate the device. Required. + */ + RoomArn?: Arn; + } + export interface AssociateDeviceWithRoomResponse { + } + export interface AssociateSkillGroupWithRoomRequest { + /** + * The ARN of the skill group to associate with a room. Required. + */ + SkillGroupArn?: Arn; + /** + * The ARN of the room with which to associate the skill group. Required. + */ + RoomArn?: Arn; + } + export interface AssociateSkillGroupWithRoomResponse { + } + export interface AssociateSkillWithSkillGroupRequest { + /** + * The ARN of the skill group to associate the skill to. Required. + */ + SkillGroupArn?: Arn; + /** + * The unique identifier of the skill. + */ + SkillId: SkillId; + } + export interface AssociateSkillWithSkillGroupResponse { + } + export interface AssociateSkillWithUsersRequest { + /** + * The private skill ID you want to make available to enrolled users. + */ + SkillId: SkillId; + } + export interface AssociateSkillWithUsersResponse { + } + export interface Audio { + /** + * The locale of the audio message. Currently, en-US is supported. + */ + Locale: Locale; + /** + * The location of the audio file. Currently, S3 URLs are supported. Only S3 locations comprised of safe characters are valid. For more information, see Safe Characters. + */ + Location: AudioLocation; + } + export type AudioList = Audio[]; + export type AudioLocation = string; + export type AuthorizationResult = {[key: string]: Value}; + export type Boolean = boolean; + export type BulletPoint = string; + export type BulletPoints = BulletPoint[]; + export interface BusinessReport { + /** + * The status of the report generation execution (RUNNING, SUCCEEDED, or FAILED). + */ + Status?: BusinessReportStatus; + /** + * The failure code. + */ + FailureCode?: BusinessReportFailureCode; + /** + * The S3 location of the output reports. + */ + S3Location?: BusinessReportS3Location; + /** + * The time of report delivery. + */ + DeliveryTime?: BusinessReportDeliveryTime; + /** + * The download link where a user can download the report. + */ + DownloadUrl?: BusinessReportDownloadUrl; + } + export interface BusinessReportContentRange { + /** + * The interval of the content range. + */ + Interval: BusinessReportInterval; + } + export type BusinessReportDeliveryTime = Date; + export type BusinessReportDownloadUrl = string; + export type BusinessReportFailureCode = "ACCESS_DENIED"|"NO_SUCH_BUCKET"|"INTERNAL_FAILURE"|string; + export type BusinessReportFormat = "CSV"|"CSV_ZIP"|string; + export type BusinessReportInterval = "ONE_DAY"|"ONE_WEEK"|"THIRTY_DAYS"|string; + export interface BusinessReportRecurrence { + /** + * The start date. + */ + StartDate?: _Date; + } + export interface BusinessReportS3Location { + /** + * The path of the business report. + */ + Path?: BusinessReportS3Path; + /** + * The S3 bucket name of the output reports. + */ + BucketName?: CustomerS3BucketName; + } + export type BusinessReportS3Path = string; + export interface BusinessReportSchedule { + /** + * The ARN of the business report schedule. + */ + ScheduleArn?: Arn; + /** + * The name identifier of the schedule. + */ + ScheduleName?: BusinessReportScheduleName; + /** + * The S3 bucket name of the output reports. + */ + S3BucketName?: CustomerS3BucketName; + /** + * The S3 key where the report is delivered. + */ + S3KeyPrefix?: S3KeyPrefix; + /** + * The format of the generated report (individual CSV files or zipped files of individual files). + */ + Format?: BusinessReportFormat; + /** + * The content range of the reports. + */ + ContentRange?: BusinessReportContentRange; + /** + * The recurrence of the reports. + */ + Recurrence?: BusinessReportRecurrence; + /** + * The details of the last business report delivery for a specified time interval. + */ + LastBusinessReport?: BusinessReport; + } + export type BusinessReportScheduleList = BusinessReportSchedule[]; + export type BusinessReportScheduleName = string; + export type BusinessReportStatus = "RUNNING"|"SUCCEEDED"|"FAILED"|string; + export interface Category { + /** + * The ID of the skill store category. + */ + CategoryId?: CategoryId; + /** + * The name of the skill store category. + */ + CategoryName?: CategoryName; + } + export type CategoryId = number; + export type CategoryList = Category[]; + export type CategoryName = string; + export type CertificateTime = Date; + export type ClientId = string; + export type ClientRequestToken = string; + export type CommsProtocol = "SIP"|"SIPS"|"H323"|string; + export interface ConferencePreference { + /** + * The ARN of the default conference provider. + */ + DefaultConferenceProviderArn?: Arn; + } + export interface ConferenceProvider { + /** + * The ARN of the newly created conference provider. + */ + Arn?: Arn; + /** + * The name of the conference provider. + */ + Name?: ConferenceProviderName; + /** + * The type of conference providers. + */ + Type?: ConferenceProviderType; + /** + * The IP endpoint and protocol for calling. + */ + IPDialIn?: IPDialIn; + /** + * The information for PSTN conferencing. + */ + PSTNDialIn?: PSTNDialIn; + /** + * The meeting settings for the conference provider. + */ + MeetingSetting?: MeetingSetting; + } + export type ConferenceProviderName = string; + export type ConferenceProviderType = "CHIME"|"BLUEJEANS"|"FUZE"|"GOOGLE_HANGOUTS"|"POLYCOM"|"RINGCENTRAL"|"SKYPE_FOR_BUSINESS"|"WEBEX"|"ZOOM"|"CUSTOM"|string; + export type ConferenceProvidersList = ConferenceProvider[]; + export type ConnectionStatus = "ONLINE"|"OFFLINE"|string; + export type ConnectionStatusUpdatedTime = Date; + export interface Contact { + /** + * The ARN of the contact. + */ + ContactArn?: Arn; + /** + * The name of the contact to display on the console. + */ + DisplayName?: ContactName; + /** + * The first name of the contact, used to call the contact on the device. + */ + FirstName?: ContactName; + /** + * The last name of the contact, used to call the contact on the device. + */ + LastName?: ContactName; + /** + * The phone number of the contact. The phone number type defaults to WORK. You can either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. + */ + PhoneNumber?: RawPhoneNumber; + /** + * The list of phone numbers for the contact. + */ + PhoneNumbers?: PhoneNumberList; + /** + * The list of SIP addresses for the contact. + */ + SipAddresses?: SipAddressList; + } + export interface ContactData { + /** + * The ARN of the contact. + */ + ContactArn?: Arn; + /** + * The name of the contact to display on the console. + */ + DisplayName?: ContactName; + /** + * The first name of the contact, used to call the contact on the device. + */ + FirstName?: ContactName; + /** + * The last name of the contact, used to call the contact on the device. + */ + LastName?: ContactName; + /** + * The phone number of the contact. The phone number type defaults to WORK. You can specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. + */ + PhoneNumber?: RawPhoneNumber; + /** + * The list of phone numbers for the contact. + */ + PhoneNumbers?: PhoneNumberList; + /** + * The list of SIP addresses for the contact. + */ + SipAddresses?: SipAddressList; + } + export type ContactDataList = ContactData[]; + export type ContactName = string; + export interface Content { + /** + * The list of text messages. + */ + TextList?: TextList; + /** + * The list of SSML messages. + */ + SsmlList?: SsmlList; + /** + * The list of audio messages. + */ + AudioList?: AudioList; + } + export type CountryCode = string; + export interface CreateAddressBookRequest { + /** + * The name of the address book. + */ + Name: AddressBookName; + /** + * The description of the address book. + */ + Description?: AddressBookDescription; + /** + * A unique, user-specified identifier for the request that ensures idempotency. + */ + ClientRequestToken?: ClientRequestToken; + /** + * The tags to be added to the specified resource. Do not provide system tags. + */ + Tags?: TagList; + } + export interface CreateAddressBookResponse { + /** + * The ARN of the newly created address book. + */ + AddressBookArn?: Arn; + } + export interface CreateBusinessReportScheduleRequest { + /** + * The name identifier of the schedule. + */ + ScheduleName?: BusinessReportScheduleName; + /** + * The S3 bucket name of the output reports. If this isn't specified, the report can be retrieved from a download link by calling ListBusinessReportSchedule. + */ + S3BucketName?: CustomerS3BucketName; + /** + * The S3 key where the report is delivered. + */ + S3KeyPrefix?: S3KeyPrefix; + /** + * The format of the generated report (individual CSV files or zipped files of individual files). + */ + Format: BusinessReportFormat; + /** + * The content range of the reports. + */ + ContentRange: BusinessReportContentRange; + /** + * The recurrence of the reports. If this isn't specified, the report will only be delivered one time when the API is called. + */ + Recurrence?: BusinessReportRecurrence; + /** + * The client request token. + */ + ClientRequestToken?: ClientRequestToken; + /** + * The tags for the business report schedule. + */ + Tags?: TagList; + } + export interface CreateBusinessReportScheduleResponse { + /** + * The ARN of the business report schedule. + */ + ScheduleArn?: Arn; + } + export interface CreateConferenceProviderRequest { + /** + * The name of the conference provider. + */ + ConferenceProviderName: ConferenceProviderName; + /** + * Represents a type within a list of predefined types. + */ + ConferenceProviderType: ConferenceProviderType; + /** + * The IP endpoint and protocol for calling. + */ + IPDialIn?: IPDialIn; + /** + * The information for PSTN conferencing. + */ + PSTNDialIn?: PSTNDialIn; + /** + * The meeting settings for the conference provider. + */ + MeetingSetting: MeetingSetting; + /** + * The request token of the client. + */ + ClientRequestToken?: ClientRequestToken; + /** + * The tags to be added to the specified resource. Do not provide system tags. + */ + Tags?: TagList; + } + export interface CreateConferenceProviderResponse { + /** + * The ARN of the newly-created conference provider. + */ + ConferenceProviderArn?: Arn; + } + export interface CreateContactRequest { + /** + * The name of the contact to display on the console. + */ + DisplayName?: ContactName; + /** + * The first name of the contact that is used to call the contact on the device. + */ + FirstName: ContactName; + /** + * The last name of the contact that is used to call the contact on the device. + */ + LastName?: ContactName; + /** + * The phone number of the contact in E.164 format. The phone number type defaults to WORK. You can specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. + */ + PhoneNumber?: RawPhoneNumber; + /** + * The list of phone numbers for the contact. + */ + PhoneNumbers?: PhoneNumberList; + /** + * The list of SIP addresses for the contact. + */ + SipAddresses?: SipAddressList; + /** + * A unique, user-specified identifier for this request that ensures idempotency. + */ + ClientRequestToken?: ClientRequestToken; + /** + * The tags to be added to the specified resource. Do not provide system tags. + */ + Tags?: TagList; + } + export interface CreateContactResponse { + /** + * The ARN of the newly created address book. + */ + ContactArn?: Arn; + } + export interface CreateEndOfMeetingReminder { + /** + * A range of 3 to 15 minutes that determines when the reminder begins. + */ + ReminderAtMinutes: EndOfMeetingReminderMinutesList; + /** + * The type of sound that users hear during the end of meeting reminder. + */ + ReminderType: EndOfMeetingReminderType; + /** + * Whether an end of meeting reminder is enabled or not. + */ + Enabled: Boolean; + } + export interface CreateGatewayGroupRequest { + /** + * The name of the gateway group. + */ + Name: GatewayGroupName; + /** + * The description of the gateway group. + */ + Description?: GatewayGroupDescription; + /** + * A unique, user-specified identifier for the request that ensures idempotency. + */ + ClientRequestToken: ClientRequestToken; + /** + * The tags to be added to the specified resource. Do not provide system tags. + */ + Tags?: TagList; + } + export interface CreateGatewayGroupResponse { + /** + * The ARN of the created gateway group. + */ + GatewayGroupArn?: Arn; + } + export interface CreateInstantBooking { + /** + * Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa. + */ + DurationInMinutes: Minutes; + /** + * Whether instant booking is enabled or not. + */ + Enabled: Boolean; + } + export interface CreateMeetingRoomConfiguration { + /** + * Whether room utilization metrics are enabled or not. + */ + RoomUtilizationMetricsEnabled?: Boolean; + EndOfMeetingReminder?: CreateEndOfMeetingReminder; + /** + * Settings to automatically book a room for a configured duration if it's free when joining a meeting with Alexa. + */ + InstantBooking?: CreateInstantBooking; + /** + * Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” + */ + RequireCheckIn?: CreateRequireCheckIn; + } + export interface CreateNetworkProfileRequest { + /** + * The name of the network profile associated with a device. + */ + NetworkProfileName: NetworkProfileName; + /** + * Detailed information about a device's network profile. + */ + Description?: NetworkProfileDescription; + /** + * The SSID of the Wi-Fi network. + */ + Ssid: NetworkSsid; + /** + * The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN. + */ + SecurityType: NetworkSecurityType; + /** + * The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported. + */ + EapMethod?: NetworkEapMethod; + /** + * The current password of the Wi-Fi network. + */ + CurrentPassword?: CurrentWiFiPassword; + /** + * The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. + */ + NextPassword?: NextWiFiPassword; + /** + * The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. + */ + CertificateAuthorityArn?: Arn; + /** + * The root certificates of your authentication server that is installed on your devices and used to trust your authentication server during EAP negotiation. + */ + TrustAnchors?: TrustAnchorList; + ClientRequestToken: ClientRequestToken; + /** + * The tags to be added to the specified resource. Do not provide system tags. + */ + Tags?: TagList; + } + export interface CreateNetworkProfileResponse { + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn?: Arn; + } + export interface CreateProfileRequest { + /** + * The name of a room profile. + */ + ProfileName: ProfileName; + /** + * The time zone used by a room profile. + */ + Timezone: Timezone; + /** + * The valid address for the room. + */ + Address: Address; + /** + * The distance unit to be used by devices in the profile. + */ + DistanceUnit: DistanceUnit; + /** + * The temperature unit to be used by devices in the profile. + */ + TemperatureUnit: TemperatureUnit; + /** + * A wake word for Alexa, Echo, Amazon, or a computer. + */ + WakeWord: WakeWord; + /** + * The locale of the room profile. (This is currently only available to a limited preview audience.) + */ + Locale?: DeviceLocale; + /** + * The user-specified token that is used during the creation of a profile. + */ + ClientRequestToken?: ClientRequestToken; + /** + * Whether room profile setup is enabled. + */ + SetupModeDisabled?: Boolean; + /** + * The maximum volume limit for a room profile. + */ + MaxVolumeLimit?: MaxVolumeLimit; + /** + * Whether PSTN calling is enabled. + */ + PSTNEnabled?: Boolean; + /** + * Whether data retention of the profile is enabled. + */ + DataRetentionOptIn?: Boolean; + /** + * The meeting room settings of a room profile. + */ + MeetingRoomConfiguration?: CreateMeetingRoomConfiguration; + /** + * The tags for the profile. + */ + Tags?: TagList; + } + export interface CreateProfileResponse { + /** + * The ARN of the newly created room profile in the response. + */ + ProfileArn?: Arn; + } + export interface CreateRequireCheckIn { + /** + * Duration between 5 and 20 minutes to determine when to release the room if it's not checked into. + */ + ReleaseAfterMinutes: Minutes; + /** + * Whether require check in is enabled or not. + */ + Enabled: Boolean; + } + export interface CreateRoomRequest { + /** + * The name for the room. + */ + RoomName: RoomName; + /** + * The description for the room. + */ + Description?: RoomDescription; + /** + * The profile ARN for the room. This is required. + */ + ProfileArn?: Arn; + /** + * The calendar ARN for the room. + */ + ProviderCalendarId?: ProviderCalendarId; + /** + * A unique, user-specified identifier for this request that ensures idempotency. + */ + ClientRequestToken?: ClientRequestToken; + /** + * The tags for the room. + */ + Tags?: TagList; + } + export interface CreateRoomResponse { + /** + * The ARN of the newly created room in the response. + */ + RoomArn?: Arn; + } + export interface CreateSkillGroupRequest { + /** + * The name for the skill group. + */ + SkillGroupName: SkillGroupName; + /** + * The description for the skill group. + */ + Description?: SkillGroupDescription; + /** + * A unique, user-specified identifier for this request that ensures idempotency. + */ + ClientRequestToken?: ClientRequestToken; + /** + * The tags for the skill group. + */ + Tags?: TagList; + } + export interface CreateSkillGroupResponse { + /** + * The ARN of the newly created skill group in the response. + */ + SkillGroupArn?: Arn; + } + export interface CreateUserRequest { + /** + * The ARN for the user. + */ + UserId: user_UserId; + /** + * The first name for the user. + */ + FirstName?: user_FirstName; + /** + * The last name for the user. + */ + LastName?: user_LastName; + /** + * The email address for the user. + */ + Email?: Email; + /** + * A unique, user-specified identifier for this request that ensures idempotency. + */ + ClientRequestToken?: ClientRequestToken; + /** + * The tags for the user. + */ + Tags?: TagList; + } + export interface CreateUserResponse { + /** + * The ARN of the newly created user in the response. + */ + UserArn?: Arn; + } + export type CurrentWiFiPassword = string; + export type CustomerS3BucketName = string; + export type _Date = string; + export interface DeleteAddressBookRequest { + /** + * The ARN of the address book to delete. + */ + AddressBookArn: Arn; + } + export interface DeleteAddressBookResponse { + } + export interface DeleteBusinessReportScheduleRequest { + /** + * The ARN of the business report schedule. + */ + ScheduleArn: Arn; + } + export interface DeleteBusinessReportScheduleResponse { + } + export interface DeleteConferenceProviderRequest { + /** + * The ARN of the conference provider. + */ + ConferenceProviderArn: Arn; + } + export interface DeleteConferenceProviderResponse { + } + export interface DeleteContactRequest { + /** + * The ARN of the contact to delete. + */ + ContactArn: Arn; + } + export interface DeleteContactResponse { + } + export interface DeleteDeviceRequest { + /** + * The ARN of the device for which to request details. + */ + DeviceArn: Arn; + } + export interface DeleteDeviceResponse { + } + export interface DeleteDeviceUsageDataRequest { + /** + * The ARN of the device. + */ + DeviceArn: Arn; + /** + * The type of usage data to delete. + */ + DeviceUsageType: DeviceUsageType; + } + export interface DeleteDeviceUsageDataResponse { + } + export interface DeleteGatewayGroupRequest { + /** + * The ARN of the gateway group to delete. + */ + GatewayGroupArn: Arn; + } + export interface DeleteGatewayGroupResponse { + } + export interface DeleteNetworkProfileRequest { + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn: Arn; + } + export interface DeleteNetworkProfileResponse { + } + export interface DeleteProfileRequest { + /** + * The ARN of the room profile to delete. Required. + */ + ProfileArn?: Arn; + } + export interface DeleteProfileResponse { + } + export interface DeleteRoomRequest { + /** + * The ARN of the room to delete. Required. + */ + RoomArn?: Arn; + } + export interface DeleteRoomResponse { + } + export interface DeleteRoomSkillParameterRequest { + /** + * The ARN of the room from which to remove the room skill parameter details. + */ + RoomArn?: Arn; + /** + * The ID of the skill from which to remove the room skill parameter details. + */ + SkillId: SkillId; + /** + * The room skill parameter key for which to remove details. + */ + ParameterKey: RoomSkillParameterKey; + } + export interface DeleteRoomSkillParameterResponse { + } + export interface DeleteSkillAuthorizationRequest { + /** + * The unique identifier of a skill. + */ + SkillId: SkillId; + /** + * The room that the skill is authorized for. + */ + RoomArn?: Arn; + } + export interface DeleteSkillAuthorizationResponse { + } + export interface DeleteSkillGroupRequest { + /** + * The ARN of the skill group to delete. Required. + */ + SkillGroupArn?: Arn; + } + export interface DeleteSkillGroupResponse { + } + export interface DeleteUserRequest { + /** + * The ARN of the user to delete in the organization. Required. + */ + UserArn?: Arn; + /** + * The ARN of the user's enrollment in the organization. Required. + */ + EnrollmentId: EnrollmentId; + } + export interface DeleteUserResponse { + } + export interface DeveloperInfo { + /** + * The name of the developer. + */ + DeveloperName?: DeveloperName; + /** + * The URL of the privacy policy. + */ + PrivacyPolicy?: PrivacyPolicy; + /** + * The email of the developer. + */ + Email?: Email; + /** + * The website of the developer. + */ + Url?: Url; + } + export type DeveloperName = string; + export interface Device { + /** + * The ARN of a device. + */ + DeviceArn?: Arn; + /** + * The serial number of a device. + */ + DeviceSerialNumber?: DeviceSerialNumber; + /** + * The type of a device. + */ + DeviceType?: DeviceType; + /** + * The name of a device. + */ + DeviceName?: DeviceName; + /** + * The software version of a device. + */ + SoftwareVersion?: SoftwareVersion; + /** + * The MAC address of a device. + */ + MacAddress?: MacAddress; + /** + * The room ARN of a device. + */ + RoomArn?: Arn; + /** + * The status of a device. If the status is not READY, check the DeviceStatusInfo value for details. + */ + DeviceStatus?: DeviceStatus; + /** + * Detailed information about a device's status. + */ + DeviceStatusInfo?: DeviceStatusInfo; + /** + * Detailed information about a device's network profile. + */ + NetworkProfileInfo?: DeviceNetworkProfileInfo; + } + export interface DeviceData { + /** + * The ARN of a device. + */ + DeviceArn?: Arn; + /** + * The serial number of a device. + */ + DeviceSerialNumber?: DeviceSerialNumber; + /** + * The type of a device. + */ + DeviceType?: DeviceType; + /** + * The name of a device. + */ + DeviceName?: DeviceName; + /** + * The software version of a device. + */ + SoftwareVersion?: SoftwareVersion; + /** + * The MAC address of a device. + */ + MacAddress?: MacAddress; + /** + * The status of a device. + */ + DeviceStatus?: DeviceStatus; + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn?: Arn; + /** + * The name of the network profile associated with a device. + */ + NetworkProfileName?: NetworkProfileName; + /** + * The room ARN associated with a device. + */ + RoomArn?: Arn; + /** + * The name of the room associated with a device. + */ + RoomName?: DeviceRoomName; + /** + * Detailed information about a device's status. + */ + DeviceStatusInfo?: DeviceStatusInfo; + /** + * The time (in epoch) when the device data was created. + */ + CreatedTime?: DeviceDataCreatedTime; + } + export type DeviceDataCreatedTime = Date; + export type DeviceDataList = DeviceData[]; + export interface DeviceEvent { + /** + * The type of device event. + */ + Type?: DeviceEventType; + /** + * The value of the event. + */ + Value?: DeviceEventValue; + /** + * The time (in epoch) when the event occurred. + */ + Timestamp?: DeviceEventTime; + } + export type DeviceEventList = DeviceEvent[]; + export type DeviceEventTime = Date; + export type DeviceEventType = "CONNECTION_STATUS"|"DEVICE_STATUS"|string; + export type DeviceEventValue = string; + export type DeviceLocale = string; + export type DeviceName = string; + export interface DeviceNetworkProfileInfo { + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn?: Arn; + /** + * The ARN of the certificate associated with a device. + */ + CertificateArn?: Arn; + /** + * The time (in epoch) when the certificate expires. + */ + CertificateExpirationTime?: CertificateTime; + } + export type DeviceRoomName = string; + export type DeviceSerialNumber = string; + export type DeviceSerialNumberForAVS = string; + export type DeviceStatus = "READY"|"PENDING"|"WAS_OFFLINE"|"DEREGISTERED"|"FAILED"|string; + export interface DeviceStatusDetail { + /** + * The list of available features on the device. + */ + Feature?: Feature; + /** + * The device status detail code. + */ + Code?: DeviceStatusDetailCode; + } + export type DeviceStatusDetailCode = "DEVICE_SOFTWARE_UPDATE_NEEDED"|"DEVICE_WAS_OFFLINE"|"CREDENTIALS_ACCESS_FAILURE"|"TLS_VERSION_MISMATCH"|"ASSOCIATION_REJECTION"|"AUTHENTICATION_FAILURE"|"DHCP_FAILURE"|"INTERNET_UNAVAILABLE"|"DNS_FAILURE"|"UNKNOWN_FAILURE"|"CERTIFICATE_ISSUING_LIMIT_EXCEEDED"|"INVALID_CERTIFICATE_AUTHORITY"|"NETWORK_PROFILE_NOT_FOUND"|"INVALID_PASSWORD_STATE"|"PASSWORD_NOT_FOUND"|"PASSWORD_MANAGER_ACCESS_DENIED"|"CERTIFICATE_AUTHORITY_ACCESS_DENIED"|string; + export type DeviceStatusDetails = DeviceStatusDetail[]; + export interface DeviceStatusInfo { + /** + * One or more device status detail descriptions. + */ + DeviceStatusDetails?: DeviceStatusDetails; + /** + * The latest available information about the connection status of a device. + */ + ConnectionStatus?: ConnectionStatus; + /** + * The time (in epoch) when the device connection status changed. + */ + ConnectionStatusUpdatedTime?: ConnectionStatusUpdatedTime; + } + export type DeviceType = string; + export type DeviceUsageType = "VOICE"|string; + export interface DisassociateContactFromAddressBookRequest { + /** + * The ARN of the contact to disassociate from an address book. + */ + ContactArn: Arn; + /** + * The ARN of the address from which to disassociate the contact. + */ + AddressBookArn: Arn; + } + export interface DisassociateContactFromAddressBookResponse { + } + export interface DisassociateDeviceFromRoomRequest { + /** + * The ARN of the device to disassociate from a room. Required. + */ + DeviceArn?: Arn; + } + export interface DisassociateDeviceFromRoomResponse { + } + export interface DisassociateSkillFromSkillGroupRequest { + /** + * The unique identifier of a skill. Required. + */ + SkillGroupArn?: Arn; + /** + * The ARN of a skill group to associate to a skill. + */ + SkillId: SkillId; + } + export interface DisassociateSkillFromSkillGroupResponse { + } + export interface DisassociateSkillFromUsersRequest { + /** + * The private skill ID you want to make unavailable for enrolled users. + */ + SkillId: SkillId; + } + export interface DisassociateSkillFromUsersResponse { + } + export interface DisassociateSkillGroupFromRoomRequest { + /** + * The ARN of the skill group to disassociate from a room. Required. + */ + SkillGroupArn?: Arn; + /** + * The ARN of the room from which the skill group is to be disassociated. Required. + */ + RoomArn?: Arn; + } + export interface DisassociateSkillGroupFromRoomResponse { + } + export type DistanceUnit = "METRIC"|"IMPERIAL"|string; + export type Email = string; + export type EnablementType = "ENABLED"|"PENDING"|string; + export type EnablementTypeFilter = "ENABLED"|"PENDING"|string; + export interface EndOfMeetingReminder { + /** + * A range of 3 to 15 minutes that determines when the reminder begins. + */ + ReminderAtMinutes?: EndOfMeetingReminderMinutesList; + /** + * The type of sound that users hear during the end of meeting reminder. + */ + ReminderType?: EndOfMeetingReminderType; + /** + * Whether an end of meeting reminder is enabled or not. + */ + Enabled?: Boolean; + } + export type EndOfMeetingReminderMinutesList = Minutes[]; + export type EndOfMeetingReminderType = "ANNOUNCEMENT_TIME_CHECK"|"ANNOUNCEMENT_VARIABLE_TIME_LEFT"|"CHIME"|"KNOCK"|string; + export type EndUserLicenseAgreement = string; + export type Endpoint = string; + export type EnrollmentId = string; + export type EnrollmentStatus = "INITIALIZED"|"PENDING"|"REGISTERED"|"DISASSOCIATING"|"DEREGISTERING"|string; + export type Feature = "BLUETOOTH"|"VOLUME"|"NOTIFICATIONS"|"LISTS"|"SKILLS"|"NETWORK_PROFILE"|"SETTINGS"|"ALL"|string; + export type Features = Feature[]; + export interface Filter { + /** + * The key of a filter. + */ + Key: FilterKey; + /** + * The values of a filter. + */ + Values: FilterValueList; + } + export type FilterKey = string; + export type FilterList = Filter[]; + export type FilterValue = string; + export type FilterValueList = FilterValue[]; + export interface ForgetSmartHomeAppliancesRequest { + /** + * The room that the appliances are associated with. + */ + RoomArn: Arn; + } + export interface ForgetSmartHomeAppliancesResponse { + } + export interface Gateway { + /** + * The ARN of the gateway. + */ + Arn?: Arn; + /** + * The name of the gateway. + */ + Name?: GatewayName; + /** + * The description of the gateway. + */ + Description?: GatewayDescription; + /** + * The ARN of the gateway group that the gateway is associated to. + */ + GatewayGroupArn?: Arn; + /** + * The software version of the gateway. The gateway automatically updates its software version during normal operation. + */ + SoftwareVersion?: GatewayVersion; + } + export type GatewayDescription = string; + export interface GatewayGroup { + /** + * The ARN of the gateway group. + */ + Arn?: Arn; + /** + * The name of the gateway group. + */ + Name?: GatewayGroupName; + /** + * The description of the gateway group. + */ + Description?: GatewayGroupDescription; + } + export type GatewayGroupDescription = string; + export type GatewayGroupName = string; + export type GatewayGroupSummaries = GatewayGroupSummary[]; + export interface GatewayGroupSummary { + /** + * The ARN of the gateway group. + */ + Arn?: Arn; + /** + * The name of the gateway group. + */ + Name?: GatewayGroupName; + /** + * The description of the gateway group. + */ + Description?: GatewayGroupDescription; + } + export type GatewayName = string; + export type GatewaySummaries = GatewaySummary[]; + export interface GatewaySummary { + /** + * The ARN of the gateway. + */ + Arn?: Arn; + /** + * The name of the gateway. + */ + Name?: GatewayName; + /** + * The description of the gateway. + */ + Description?: GatewayDescription; + /** + * The ARN of the gateway group that the gateway is associated to. + */ + GatewayGroupArn?: Arn; + /** + * The software version of the gateway. The gateway automatically updates its software version during normal operation. + */ + SoftwareVersion?: GatewayVersion; + } + export type GatewayVersion = string; + export type GenericKeyword = string; + export type GenericKeywords = GenericKeyword[]; + export interface GetAddressBookRequest { + /** + * The ARN of the address book for which to request details. + */ + AddressBookArn: Arn; + } + export interface GetAddressBookResponse { + /** + * The details of the requested address book. + */ + AddressBook?: AddressBook; + } + export interface GetConferencePreferenceRequest { + } + export interface GetConferencePreferenceResponse { + /** + * The conference preference. + */ + Preference?: ConferencePreference; + } + export interface GetConferenceProviderRequest { + /** + * The ARN of the newly created conference provider. + */ + ConferenceProviderArn: Arn; + } + export interface GetConferenceProviderResponse { + /** + * The conference provider. + */ + ConferenceProvider?: ConferenceProvider; + } + export interface GetContactRequest { + /** + * The ARN of the contact for which to request details. + */ + ContactArn: Arn; + } + export interface GetContactResponse { + /** + * The details of the requested contact. + */ + Contact?: Contact; + } + export interface GetDeviceRequest { + /** + * The ARN of the device for which to request details. Required. + */ + DeviceArn?: Arn; + } + export interface GetDeviceResponse { + /** + * The details of the device requested. Required. + */ + Device?: Device; + } + export interface GetGatewayGroupRequest { + /** + * The ARN of the gateway group to get. + */ + GatewayGroupArn: Arn; + } + export interface GetGatewayGroupResponse { + GatewayGroup?: GatewayGroup; + } + export interface GetGatewayRequest { + /** + * The ARN of the gateway to get. + */ + GatewayArn: Arn; + } + export interface GetGatewayResponse { + /** + * The details of the gateway. + */ + Gateway?: Gateway; + } + export interface GetInvitationConfigurationRequest { + } + export interface GetInvitationConfigurationResponse { + /** + * The name of the organization sending the enrollment invite to a user. + */ + OrganizationName?: OrganizationName; + /** + * The email ID of the organization or individual contact that the enrolled user can use. + */ + ContactEmail?: Email; + /** + * The list of private skill IDs that you want to recommend to the user to enable in the invitation. + */ + PrivateSkillIds?: ShortSkillIdList; + } + export interface GetNetworkProfileRequest { + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn: Arn; + } + export interface GetNetworkProfileResponse { + /** + * The network profile associated with a device. + */ + NetworkProfile?: NetworkProfile; + } + export interface GetProfileRequest { + /** + * The ARN of the room profile for which to request details. Required. + */ + ProfileArn?: Arn; + } + export interface GetProfileResponse { + /** + * The details of the room profile requested. Required. + */ + Profile?: Profile; + } + export interface GetRoomRequest { + /** + * The ARN of the room for which to request details. Required. + */ + RoomArn?: Arn; + } + export interface GetRoomResponse { + /** + * The details of the room requested. + */ + Room?: Room; + } + export interface GetRoomSkillParameterRequest { + /** + * The ARN of the room from which to get the room skill parameter details. + */ + RoomArn?: Arn; + /** + * The ARN of the skill from which to get the room skill parameter details. Required. + */ + SkillId: SkillId; + /** + * The room skill parameter key for which to get details. Required. + */ + ParameterKey: RoomSkillParameterKey; + } + export interface GetRoomSkillParameterResponse { + /** + * The details of the room skill parameter requested. Required. + */ + RoomSkillParameter?: RoomSkillParameter; + } + export interface GetSkillGroupRequest { + /** + * The ARN of the skill group for which to get details. Required. + */ + SkillGroupArn?: Arn; + } + export interface GetSkillGroupResponse { + /** + * The details of the skill group requested. Required. + */ + SkillGroup?: SkillGroup; + } + export interface IPDialIn { + /** + * The IP address. + */ + Endpoint: Endpoint; + /** + * The protocol, including SIP, SIPS, and H323. + */ + CommsProtocol: CommsProtocol; + } + export type IconUrl = string; + export interface InstantBooking { + /** + * Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa. + */ + DurationInMinutes?: Minutes; + /** + * Whether instant booking is enabled or not. + */ + Enabled?: Boolean; + } + export type InvocationPhrase = string; + export type Key = string; + export interface ListBusinessReportSchedulesRequest { + /** + * The token used to list the remaining schedules from the previous API call. + */ + NextToken?: NextToken; + /** + * The maximum number of schedules listed in the call. + */ + MaxResults?: MaxResults; + } + export interface ListBusinessReportSchedulesResponse { + /** + * The schedule of the reports. + */ + BusinessReportSchedules?: BusinessReportScheduleList; + /** + * The token used to list the remaining schedules from the previous API call. + */ + NextToken?: NextToken; + } + export interface ListConferenceProvidersRequest { + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + /** + * The maximum number of conference providers to be returned, per paginated calls. + */ + MaxResults?: MaxResults; + } + export interface ListConferenceProvidersResponse { + /** + * The conference providers. + */ + ConferenceProviders?: ConferenceProvidersList; + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + } + export interface ListDeviceEventsRequest { + /** + * The ARN of a device. + */ + DeviceArn: Arn; + /** + * The event type to filter device events. If EventType isn't specified, this returns a list of all device events in reverse chronological order. If EventType is specified, this returns a list of device events for that EventType in reverse chronological order. + */ + EventType?: DeviceEventType; + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response only includes results beyond the token, up to the value specified by MaxResults. When the end of results is reached, the response has a value of null. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. The default value is 50. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + } + export interface ListDeviceEventsResponse { + /** + * The device events requested for the device ARN. + */ + DeviceEvents?: DeviceEventList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + } + export interface ListGatewayGroupsRequest { + /** + * The token used to paginate though multiple pages of gateway group summaries. + */ + NextToken?: NextToken; + /** + * The maximum number of gateway group summaries to return. The default is 50. + */ + MaxResults?: MaxResults; + } + export interface ListGatewayGroupsResponse { + /** + * The gateway groups in the list. + */ + GatewayGroups?: GatewayGroupSummaries; + /** + * The token used to paginate though multiple pages of gateway group summaries. + */ + NextToken?: NextToken; + } + export interface ListGatewaysRequest { + /** + * The gateway group ARN for which to list gateways. + */ + GatewayGroupArn?: Arn; + /** + * The token used to paginate though multiple pages of gateway summaries. + */ + NextToken?: NextToken; + /** + * The maximum number of gateway summaries to return. The default is 50. + */ + MaxResults?: MaxResults; + } + export interface ListGatewaysResponse { + /** + * The gateways in the list. + */ + Gateways?: GatewaySummaries; + /** + * The token used to paginate though multiple pages of gateway summaries. + */ + NextToken?: NextToken; + } + export interface ListSkillsRequest { + /** + * The ARN of the skill group for which to list enabled skills. + */ + SkillGroupArn?: Arn; + /** + * Whether the skill is enabled under the user's account. + */ + EnablementType?: EnablementTypeFilter; + /** + * Whether the skill is publicly available or is a private skill. + */ + SkillType?: SkillTypeFilter; + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: SkillListMaxResults; + } + export interface ListSkillsResponse { + /** + * The list of enabled skills requested. Required. + */ + SkillSummaries?: SkillSummaryList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + } + export interface ListSkillsStoreCategoriesRequest { + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + /** + * The maximum number of categories returned, per paginated calls. + */ + MaxResults?: MaxResults; + } + export interface ListSkillsStoreCategoriesResponse { + /** + * The list of categories. + */ + CategoryList?: CategoryList; + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + } + export interface ListSkillsStoreSkillsByCategoryRequest { + /** + * The category ID for which the skills are being retrieved from the skill store. + */ + CategoryId: CategoryId; + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + /** + * The maximum number of skills returned per paginated calls. + */ + MaxResults?: SkillListMaxResults; + } + export interface ListSkillsStoreSkillsByCategoryResponse { + /** + * The skill store skills. + */ + SkillsStoreSkills?: SkillsStoreSkillList; + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + } + export interface ListSmartHomeAppliancesRequest { + /** + * The room that the appliances are associated with. + */ + RoomArn: Arn; + /** + * The maximum number of appliances to be returned, per paginated calls. + */ + MaxResults?: MaxResults; + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + } + export interface ListSmartHomeAppliancesResponse { + /** + * The smart home appliances. + */ + SmartHomeAppliances?: SmartHomeApplianceList; + /** + * The tokens used for pagination. + */ + NextToken?: NextToken; + } + export interface ListTagsRequest { + /** + * The ARN of the specified resource for which to list tags. + */ + Arn: Arn; + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + } + export interface ListTagsResponse { + /** + * The tags requested for the specified resource. + */ + Tags?: TagList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + } + export type Locale = "en-US"|string; + export type MacAddress = string; + export type MaxResults = number; + export type MaxVolumeLimit = number; + export interface MeetingRoomConfiguration { + /** + * Whether room utilization metrics are enabled or not. + */ + RoomUtilizationMetricsEnabled?: Boolean; + /** + * Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. + */ + EndOfMeetingReminder?: EndOfMeetingReminder; + /** + * Settings to automatically book the room if available for a configured duration when joining a meeting with Alexa. + */ + InstantBooking?: InstantBooking; + /** + * Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into. This makes the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” + */ + RequireCheckIn?: RequireCheckIn; + } + export interface MeetingSetting { + /** + * The values that indicate whether the pin is always required. + */ + RequirePin: RequirePin; + } + export type Minutes = number; + export type NetworkEapMethod = "EAP_TLS"|string; + export interface NetworkProfile { + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn?: Arn; + /** + * The name of the network profile associated with a device. + */ + NetworkProfileName?: NetworkProfileName; + /** + * Detailed information about a device's network profile. + */ + Description?: NetworkProfileDescription; + /** + * The SSID of the Wi-Fi network. + */ + Ssid?: NetworkSsid; + /** + * The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN. + */ + SecurityType?: NetworkSecurityType; + /** + * The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported. + */ + EapMethod?: NetworkEapMethod; + /** + * The current password of the Wi-Fi network. + */ + CurrentPassword?: CurrentWiFiPassword; + /** + * The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. + */ + NextPassword?: NextWiFiPassword; + /** + * The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. + */ + CertificateAuthorityArn?: Arn; + /** + * The root certificates of your authentication server, which is installed on your devices and used to trust your authentication server during EAP negotiation. + */ + TrustAnchors?: TrustAnchorList; + } + export interface NetworkProfileData { + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn?: Arn; + /** + * The name of the network profile associated with a device. + */ + NetworkProfileName?: NetworkProfileName; + /** + * Detailed information about a device's network profile. + */ + Description?: NetworkProfileDescription; + /** + * The SSID of the Wi-Fi network. + */ + Ssid?: NetworkSsid; + /** + * The security type of the Wi-Fi network. This can be WPA2_ENTERPRISE, WPA2_PSK, WPA_PSK, WEP, or OPEN. + */ + SecurityType?: NetworkSecurityType; + /** + * The authentication standard that is used in the EAP framework. Currently, EAP_TLS is supported. + */ + EapMethod?: NetworkEapMethod; + /** + * The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. + */ + CertificateAuthorityArn?: Arn; + } + export type NetworkProfileDataList = NetworkProfileData[]; + export type NetworkProfileDescription = string; + export type NetworkProfileName = string; + export type NetworkSecurityType = "OPEN"|"WEP"|"WPA_PSK"|"WPA2_PSK"|"WPA2_ENTERPRISE"|string; + export type NetworkSsid = string; + export type NewInThisVersionBulletPoints = BulletPoint[]; + export type NextToken = string; + export type NextWiFiPassword = string; + export type OneClickIdDelay = string; + export type OneClickPinDelay = string; + export type OrganizationName = string; + export type OutboundPhoneNumber = string; + export interface PSTNDialIn { + /** + * The zip code. + */ + CountryCode: CountryCode; + /** + * The phone number to call to join the conference. + */ + PhoneNumber: OutboundPhoneNumber; + /** + * The delay duration before Alexa enters the conference ID with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network. + */ + OneClickIdDelay: OneClickIdDelay; + /** + * The delay duration before Alexa enters the conference pin with dual-tone multi-frequency (DTMF). Each number on the dial pad corresponds to a DTMF tone, which is how we send data over the telephone network. + */ + OneClickPinDelay: OneClickPinDelay; + } + export interface PhoneNumber { + /** + * The raw value of the phone number. + */ + Number: RawPhoneNumber; + /** + * The type of the phone number. + */ + Type: PhoneNumberType; + } + export type PhoneNumberList = PhoneNumber[]; + export type PhoneNumberType = "MOBILE"|"WORK"|"HOME"|string; + export type PrivacyPolicy = string; + export type ProductDescription = string; + export type ProductId = string; + export interface Profile { + /** + * The ARN of a room profile. + */ + ProfileArn?: Arn; + /** + * The name of a room profile. + */ + ProfileName?: ProfileName; + /** + * Retrieves if the profile is default or not. + */ + IsDefault?: Boolean; + /** + * The address of a room profile. + */ + Address?: Address; + /** + * The time zone of a room profile. + */ + Timezone?: Timezone; + /** + * The distance unit of a room profile. + */ + DistanceUnit?: DistanceUnit; + /** + * The temperature unit of a room profile. + */ + TemperatureUnit?: TemperatureUnit; + /** + * The wake word of a room profile. + */ + WakeWord?: WakeWord; + /** + * The locale of a room profile. (This is currently available only to a limited preview audience.) + */ + Locale?: DeviceLocale; + /** + * The setup mode of a room profile. + */ + SetupModeDisabled?: Boolean; + /** + * The max volume limit of a room profile. + */ + MaxVolumeLimit?: MaxVolumeLimit; + /** + * The PSTN setting of a room profile. + */ + PSTNEnabled?: Boolean; + /** + * Whether data retention of the profile is enabled. + */ + DataRetentionOptIn?: Boolean; + /** + * The ARN of the address book. + */ + AddressBookArn?: Arn; + /** + * Meeting room settings of a room profile. + */ + MeetingRoomConfiguration?: MeetingRoomConfiguration; + } + export interface ProfileData { + /** + * The ARN of a room profile. + */ + ProfileArn?: Arn; + /** + * The name of a room profile. + */ + ProfileName?: ProfileName; + /** + * Retrieves if the profile data is default or not. + */ + IsDefault?: Boolean; + /** + * The address of a room profile. + */ + Address?: Address; + /** + * The time zone of a room profile. + */ + Timezone?: Timezone; + /** + * The distance unit of a room profile. + */ + DistanceUnit?: DistanceUnit; + /** + * The temperature unit of a room profile. + */ + TemperatureUnit?: TemperatureUnit; + /** + * The wake word of a room profile. + */ + WakeWord?: WakeWord; + /** + * The locale of a room profile. (This is currently available only to a limited preview audience.) + */ + Locale?: DeviceLocale; + } + export type ProfileDataList = ProfileData[]; + export type ProfileName = string; + export type ProviderCalendarId = string; + export interface PutConferencePreferenceRequest { + /** + * The conference preference of a specific conference provider. + */ + ConferencePreference: ConferencePreference; + } + export interface PutConferencePreferenceResponse { + } + export interface PutInvitationConfigurationRequest { + /** + * The name of the organization sending the enrollment invite to a user. + */ + OrganizationName: OrganizationName; + /** + * The email ID of the organization or individual contact that the enrolled user can use. + */ + ContactEmail?: Email; + /** + * The list of private skill IDs that you want to recommend to the user to enable in the invitation. + */ + PrivateSkillIds?: ShortSkillIdList; + } + export interface PutInvitationConfigurationResponse { + } + export interface PutRoomSkillParameterRequest { + /** + * The ARN of the room associated with the room skill parameter. Required. + */ + RoomArn?: Arn; + /** + * The ARN of the skill associated with the room skill parameter. Required. + */ + SkillId: SkillId; + /** + * The updated room skill parameter. Required. + */ + RoomSkillParameter: RoomSkillParameter; + } + export interface PutRoomSkillParameterResponse { + } + export interface PutSkillAuthorizationRequest { + /** + * The authorization result specific to OAUTH code grant output. "Code” must be populated in the AuthorizationResult map to establish the authorization. + */ + AuthorizationResult: AuthorizationResult; + /** + * The unique identifier of a skill. + */ + SkillId: SkillId; + /** + * The room that the skill is authorized for. + */ + RoomArn?: Arn; + } + export interface PutSkillAuthorizationResponse { + } + export type RawPhoneNumber = string; + export interface RegisterAVSDeviceRequest { + /** + * The client ID of the OEM used for code-based linking authorization on an AVS device. + */ + ClientId: ClientId; + /** + * The code that is obtained after your AVS device has made a POST request to LWA as a part of the Device Authorization Request component of the OAuth code-based linking specification. + */ + UserCode: UserCode; + /** + * The product ID used to identify your AVS device during authorization. + */ + ProductId: ProductId; + /** + * The key generated by the OEM that uniquely identifies a specified instance of your AVS device. + */ + DeviceSerialNumber?: DeviceSerialNumberForAVS; + /** + * The device type ID for your AVS device generated by Amazon when the OEM creates a new product on Amazon's Developer Console. + */ + AmazonId: AmazonId; + /** + * The Amazon Resource Name (ARN) of the room with which to associate your AVS device. + */ + RoomArn?: Arn; + /** + * The tags to be added to the specified resource. Do not provide system tags. + */ + Tags?: TagList; + } + export interface RegisterAVSDeviceResponse { + /** + * The ARN of the device. + */ + DeviceArn?: Arn; + } + export interface RejectSkillRequest { + /** + * The unique identifier of the skill. + */ + SkillId: SkillId; + } + export interface RejectSkillResponse { + } + export type ReleaseDate = string; + export interface RequireCheckIn { + /** + * Duration between 5 and 20 minutes to determine when to release the room if it's not checked into. + */ + ReleaseAfterMinutes?: Minutes; + /** + * Whether require check in is enabled or not. + */ + Enabled?: Boolean; + } + export type RequirePin = "YES"|"NO"|"OPTIONAL"|string; + export interface ResolveRoomRequest { + /** + * The ARN of the user. Required. + */ + UserId: UserId; + /** + * The ARN of the skill that was requested. Required. + */ + SkillId: SkillId; + } + export interface ResolveRoomResponse { + /** + * The ARN of the room from which the skill request was invoked. + */ + RoomArn?: Arn; + /** + * The name of the room from which the skill request was invoked. + */ + RoomName?: RoomName; + /** + * Response to get the room profile request. Required. + */ + RoomSkillParameters?: RoomSkillParameters; + } + export type ReviewKey = string; + export type ReviewValue = string; + export type Reviews = {[key: string]: ReviewValue}; + export interface RevokeInvitationRequest { + /** + * The ARN of the user for whom to revoke an enrollment invitation. Required. + */ + UserArn?: Arn; + /** + * The ARN of the enrollment invitation to revoke. Required. + */ + EnrollmentId?: EnrollmentId; + } + export interface RevokeInvitationResponse { + } + export interface Room { + /** + * The ARN of a room. + */ + RoomArn?: Arn; + /** + * The name of a room. + */ + RoomName?: RoomName; + /** + * The description of a room. + */ + Description?: RoomDescription; + /** + * The provider calendar ARN of a room. + */ + ProviderCalendarId?: ProviderCalendarId; + /** + * The profile ARN of a room. + */ + ProfileArn?: Arn; + } + export interface RoomData { + /** + * The ARN of a room. + */ + RoomArn?: Arn; + /** + * The name of a room. + */ + RoomName?: RoomName; + /** + * The description of a room. + */ + Description?: RoomDescription; + /** + * The provider calendar ARN of a room. + */ + ProviderCalendarId?: ProviderCalendarId; + /** + * The profile ARN of a room. + */ + ProfileArn?: Arn; + /** + * The profile name of a room. + */ + ProfileName?: ProfileName; + } + export type RoomDataList = RoomData[]; + export type RoomDescription = string; + export type RoomName = string; + export interface RoomSkillParameter { + /** + * The parameter key of a room skill parameter. ParameterKey is an enumerated type that only takes “DEFAULT” or “SCOPE” as valid values. + */ + ParameterKey: RoomSkillParameterKey; + /** + * The parameter value of a room skill parameter. + */ + ParameterValue: RoomSkillParameterValue; + } + export type RoomSkillParameterKey = string; + export type RoomSkillParameterValue = string; + export type RoomSkillParameters = RoomSkillParameter[]; + export type S3KeyPrefix = string; + export type SampleUtterances = Utterance[]; + export interface SearchAddressBooksRequest { + /** + * The filters to use to list a specified set of address books. The supported filter key is AddressBookName. + */ + Filters?: FilterList; + /** + * The sort order to use in listing the specified set of address books. The supported sort key is AddressBookName. + */ + SortCriteria?: SortList; + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response only includes results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + } + export interface SearchAddressBooksResponse { + /** + * The address books that meet the specified set of filter criteria, in sort order. + */ + AddressBooks?: AddressBookDataList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * The total number of address books returned. + */ + TotalCount?: TotalCount; + } + export interface SearchContactsRequest { + /** + * The filters to use to list a specified set of address books. The supported filter keys are DisplayName, FirstName, LastName, and AddressBookArns. + */ + Filters?: FilterList; + /** + * The sort order to use in listing the specified set of contacts. The supported sort keys are DisplayName, FirstName, and LastName. + */ + SortCriteria?: SortList; + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response only includes results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + } + export interface SearchContactsResponse { + /** + * The contacts that meet the specified set of filter criteria, in sort order. + */ + Contacts?: ContactDataList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * The total number of contacts returned. + */ + TotalCount?: TotalCount; + } + export interface SearchDevicesRequest { + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + /** + * The filters to use to list a specified set of devices. Supported filter keys are DeviceName, DeviceStatus, DeviceStatusDetailCode, RoomName, DeviceType, DeviceSerialNumber, UnassociatedOnly, ConnectionStatus (ONLINE and OFFLINE), NetworkProfileName, NetworkProfileArn, Feature, and FailureCode. + */ + Filters?: FilterList; + /** + * The sort order to use in listing the specified set of devices. Supported sort keys are DeviceName, DeviceStatus, RoomName, DeviceType, DeviceSerialNumber, ConnectionStatus, NetworkProfileName, NetworkProfileArn, Feature, and FailureCode. + */ + SortCriteria?: SortList; + } + export interface SearchDevicesResponse { + /** + * The devices that meet the specified set of filter criteria, in sort order. + */ + Devices?: DeviceDataList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * The total number of devices returned. + */ + TotalCount?: TotalCount; + } + export interface SearchNetworkProfilesRequest { + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + /** + * The filters to use to list a specified set of network profiles. Valid filters are NetworkProfileName, Ssid, and SecurityType. + */ + Filters?: FilterList; + /** + * The sort order to use to list the specified set of network profiles. Valid sort criteria includes NetworkProfileName, Ssid, and SecurityType. + */ + SortCriteria?: SortList; + } + export interface SearchNetworkProfilesResponse { + /** + * The network profiles that meet the specified set of filter criteria, in sort order. It is a list of NetworkProfileData objects. + */ + NetworkProfiles?: NetworkProfileDataList; + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The total number of network profiles returned. + */ + TotalCount?: TotalCount; + } + export interface SearchProfilesRequest { + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + /** + * The filters to use to list a specified set of room profiles. Supported filter keys are ProfileName and Address. Required. + */ + Filters?: FilterList; + /** + * The sort order to use in listing the specified set of room profiles. Supported sort keys are ProfileName and Address. + */ + SortCriteria?: SortList; + } + export interface SearchProfilesResponse { + /** + * The profiles that meet the specified set of filter criteria, in sort order. + */ + Profiles?: ProfileDataList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * The total number of room profiles returned. + */ + TotalCount?: TotalCount; + } + export interface SearchRoomsRequest { + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + /** + * The filters to use to list a specified set of rooms. The supported filter keys are RoomName and ProfileName. + */ + Filters?: FilterList; + /** + * The sort order to use in listing the specified set of rooms. The supported sort keys are RoomName and ProfileName. + */ + SortCriteria?: SortList; + } + export interface SearchRoomsResponse { + /** + * The rooms that meet the specified set of filter criteria, in sort order. + */ + Rooms?: RoomDataList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * The total number of rooms returned. + */ + TotalCount?: TotalCount; + } + export interface SearchSkillGroupsRequest { + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. + */ + MaxResults?: MaxResults; + /** + * The filters to use to list a specified set of skill groups. The supported filter key is SkillGroupName. + */ + Filters?: FilterList; + /** + * The sort order to use in listing the specified set of skill groups. The supported sort key is SkillGroupName. + */ + SortCriteria?: SortList; + } + export interface SearchSkillGroupsResponse { + /** + * The skill groups that meet the filter criteria, in sort order. + */ + SkillGroups?: SkillGroupDataList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * The total number of skill groups returned. + */ + TotalCount?: TotalCount; + } + export interface SearchUsersRequest { + /** + * An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by MaxResults. Required. + */ + NextToken?: NextToken; + /** + * The maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. Required. + */ + MaxResults?: MaxResults; + /** + * The filters to use for listing a specific set of users. Required. Supported filter keys are UserId, FirstName, LastName, Email, and EnrollmentStatus. + */ + Filters?: FilterList; + /** + * The sort order to use in listing the filtered set of users. Required. Supported sort keys are UserId, FirstName, LastName, Email, and EnrollmentStatus. + */ + SortCriteria?: SortList; + } + export interface SearchUsersResponse { + /** + * The users that meet the specified set of filter criteria, in sort order. + */ + Users?: UserDataList; + /** + * The token returned to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * The total number of users returned. + */ + TotalCount?: TotalCount; + } + export interface SendAnnouncementRequest { + /** + * The filters to use to send an announcement to a specified list of rooms. The supported filter keys are RoomName, ProfileName, RoomArn, and ProfileArn. To send to all rooms, specify an empty RoomFilters list. + */ + RoomFilters: FilterList; + /** + * The announcement content. This can contain only one of the three possible announcement types (text, SSML or audio). + */ + Content: Content; + /** + * The time to live for an announcement. Default is 300. If delivery doesn't occur within this time, the announcement is not delivered. + */ + TimeToLiveInSeconds?: TimeToLiveInSeconds; + /** + * The unique, user-specified identifier for the request that ensures idempotency. + */ + ClientRequestToken: ClientRequestToken; + } + export interface SendAnnouncementResponse { + /** + * The identifier of the announcement. + */ + AnnouncementArn?: Arn; + } + export interface SendInvitationRequest { + /** + * The ARN of the user to whom to send an invitation. Required. + */ + UserArn?: Arn; + } + export interface SendInvitationResponse { + } + export type ShortDescription = string; + export type ShortSkillIdList = SkillId[]; + export interface SipAddress { + /** + * The URI for the SIP address. + */ + Uri: SipUri; + /** + * The type of the SIP address. + */ + Type: SipType; + } + export type SipAddressList = SipAddress[]; + export type SipType = "WORK"|string; + export type SipUri = string; + export interface SkillDetails { + /** + * The description of the product. + */ + ProductDescription?: ProductDescription; + /** + * The phrase used to trigger the skill. + */ + InvocationPhrase?: InvocationPhrase; + /** + * The date when the skill was released. + */ + ReleaseDate?: ReleaseDate; + /** + * The URL of the end user license agreement. + */ + EndUserLicenseAgreement?: EndUserLicenseAgreement; + /** + * The generic keywords associated with the skill that can be used to find a skill. + */ + GenericKeywords?: GenericKeywords; + /** + * The details about what the skill supports organized as bullet points. + */ + BulletPoints?: BulletPoints; + /** + * The updates added in bullet points. + */ + NewInThisVersionBulletPoints?: NewInThisVersionBulletPoints; + /** + * The types of skills. + */ + SkillTypes?: SkillTypes; + /** + * This member has been deprecated. The list of reviews for the skill, including Key and Value pair. + */ + Reviews?: Reviews; + /** + * The details about the developer that published the skill. + */ + DeveloperInfo?: DeveloperInfo; + } + export interface SkillGroup { + /** + * The ARN of a skill group. + */ + SkillGroupArn?: Arn; + /** + * The name of a skill group. + */ + SkillGroupName?: SkillGroupName; + /** + * The description of a skill group. + */ + Description?: SkillGroupDescription; + } + export interface SkillGroupData { + /** + * The skill group ARN of a skill group. + */ + SkillGroupArn?: Arn; + /** + * The skill group name of a skill group. + */ + SkillGroupName?: SkillGroupName; + /** + * The description of a skill group. + */ + Description?: SkillGroupDescription; + } + export type SkillGroupDataList = SkillGroupData[]; + export type SkillGroupDescription = string; + export type SkillGroupName = string; + export type SkillId = string; + export type SkillListMaxResults = number; + export type SkillName = string; + export type SkillStoreType = string; + export interface SkillSummary { + /** + * The ARN of the skill summary. + */ + SkillId?: SkillId; + /** + * The name of the skill. + */ + SkillName?: SkillName; + /** + * Linking support for a skill. + */ + SupportsLinking?: boolean; + /** + * Whether the skill is enabled under the user's account, or if it requires linking to be used. + */ + EnablementType?: EnablementType; + /** + * Whether the skill is publicly available or is a private skill. + */ + SkillType?: SkillType; + } + export type SkillSummaryList = SkillSummary[]; + export type SkillType = "PUBLIC"|"PRIVATE"|string; + export type SkillTypeFilter = "PUBLIC"|"PRIVATE"|"ALL"|string; + export type SkillTypes = SkillStoreType[]; + export interface SkillsStoreSkill { + /** + * The ARN of the skill. + */ + SkillId?: SkillId; + /** + * The name of the skill. + */ + SkillName?: SkillName; + /** + * Short description about the skill. + */ + ShortDescription?: ShortDescription; + /** + * The URL where the skill icon resides. + */ + IconUrl?: IconUrl; + /** + * Sample utterances that interact with the skill. + */ + SampleUtterances?: SampleUtterances; + /** + * Information about the skill. + */ + SkillDetails?: SkillDetails; + /** + * Linking support for a skill. + */ + SupportsLinking?: boolean; + } + export type SkillsStoreSkillList = SkillsStoreSkill[]; + export interface SmartHomeAppliance { + /** + * The friendly name of the smart home appliance. + */ + FriendlyName?: ApplianceFriendlyName; + /** + * The description of the smart home appliance. + */ + Description?: ApplianceDescription; + /** + * The name of the manufacturer of the smart home appliance. + */ + ManufacturerName?: ApplianceManufacturerName; + } + export type SmartHomeApplianceList = SmartHomeAppliance[]; + export type SoftwareVersion = string; + export interface Sort { + /** + * The sort key of a sort object. + */ + Key: SortKey; + /** + * The sort value of a sort object. + */ + Value: SortValue; + } + export type SortKey = string; + export type SortList = Sort[]; + export type SortValue = "ASC"|"DESC"|string; + export interface Ssml { + /** + * The locale of the SSML message. Currently, en-US is supported. + */ + Locale: Locale; + /** + * The value of the SSML message in the correct SSML format. The audio tag is not supported. + */ + Value: SsmlValue; + } + export type SsmlList = Ssml[]; + export type SsmlValue = string; + export interface StartDeviceSyncRequest { + /** + * The ARN of the room with which the device to sync is associated. Required. + */ + RoomArn?: Arn; + /** + * The ARN of the device to sync. Required. + */ + DeviceArn?: Arn; + /** + * Request structure to start the device sync. Required. + */ + Features: Features; + } + export interface StartDeviceSyncResponse { + } + export interface StartSmartHomeApplianceDiscoveryRequest { + /** + * The room where smart home appliance discovery was initiated. + */ + RoomArn: Arn; + } + export interface StartSmartHomeApplianceDiscoveryResponse { + } + export interface Tag { + /** + * The key of a tag. Tag keys are case-sensitive. + */ + Key: TagKey; + /** + * The value of a tag. Tag values are case sensitive and can be null. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The ARN of the resource to which to add metadata tags. Required. + */ + Arn: Arn; + /** + * The tags to be added to the specified resource. Do not provide system tags. Required. + */ + Tags: TagList; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type TemperatureUnit = "FAHRENHEIT"|"CELSIUS"|string; + export interface Text { + /** + * The locale of the text message. Currently, en-US is supported. + */ + Locale: Locale; + /** + * The value of the text message. + */ + Value: TextValue; + } + export type TextList = Text[]; + export type TextValue = string; + export type TimeToLiveInSeconds = number; + export type Timezone = string; + export type TotalCount = number; + export type TrustAnchor = string; + export type TrustAnchorList = TrustAnchor[]; + export interface UntagResourceRequest { + /** + * The ARN of the resource from which to remove metadata tags. Required. + */ + Arn: Arn; + /** + * The tags to be removed from the specified resource. Do not provide system tags. Required. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateAddressBookRequest { + /** + * The ARN of the room to update. + */ + AddressBookArn: Arn; + /** + * The updated name of the room. + */ + Name?: AddressBookName; + /** + * The updated description of the room. + */ + Description?: AddressBookDescription; + } + export interface UpdateAddressBookResponse { + } + export interface UpdateBusinessReportScheduleRequest { + /** + * The ARN of the business report schedule. + */ + ScheduleArn: Arn; + /** + * The S3 location of the output reports. + */ + S3BucketName?: CustomerS3BucketName; + /** + * The S3 key where the report is delivered. + */ + S3KeyPrefix?: S3KeyPrefix; + /** + * The format of the generated report (individual CSV files or zipped files of individual files). + */ + Format?: BusinessReportFormat; + /** + * The name identifier of the schedule. + */ + ScheduleName?: BusinessReportScheduleName; + /** + * The recurrence of the reports. + */ + Recurrence?: BusinessReportRecurrence; + } + export interface UpdateBusinessReportScheduleResponse { + } + export interface UpdateConferenceProviderRequest { + /** + * The ARN of the conference provider. + */ + ConferenceProviderArn: Arn; + /** + * The type of the conference provider. + */ + ConferenceProviderType: ConferenceProviderType; + /** + * The IP endpoint and protocol for calling. + */ + IPDialIn?: IPDialIn; + /** + * The information for PSTN conferencing. + */ + PSTNDialIn?: PSTNDialIn; + /** + * The meeting settings for the conference provider. + */ + MeetingSetting: MeetingSetting; + } + export interface UpdateConferenceProviderResponse { + } + export interface UpdateContactRequest { + /** + * The ARN of the contact to update. + */ + ContactArn: Arn; + /** + * The updated display name of the contact. + */ + DisplayName?: ContactName; + /** + * The updated first name of the contact. + */ + FirstName?: ContactName; + /** + * The updated last name of the contact. + */ + LastName?: ContactName; + /** + * The updated phone number of the contact. The phone number type defaults to WORK. You can either specify PhoneNumber or PhoneNumbers. We recommend that you use PhoneNumbers, which lets you specify the phone number type and multiple numbers. + */ + PhoneNumber?: RawPhoneNumber; + /** + * The list of phone numbers for the contact. + */ + PhoneNumbers?: PhoneNumberList; + /** + * The list of SIP addresses for the contact. + */ + SipAddresses?: SipAddressList; + } + export interface UpdateContactResponse { + } + export interface UpdateDeviceRequest { + /** + * The ARN of the device to update. Required. + */ + DeviceArn?: Arn; + /** + * The updated device name. Required. + */ + DeviceName?: DeviceName; + } + export interface UpdateDeviceResponse { + } + export interface UpdateEndOfMeetingReminder { + /** + * Updates settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. + */ + ReminderAtMinutes?: EndOfMeetingReminderMinutesList; + /** + * The type of sound that users hear during the end of meeting reminder. + */ + ReminderType?: EndOfMeetingReminderType; + /** + * Whether an end of meeting reminder is enabled or not. + */ + Enabled?: Boolean; + } + export interface UpdateGatewayGroupRequest { + /** + * The ARN of the gateway group to update. + */ + GatewayGroupArn: Arn; + /** + * The updated name of the gateway group. + */ + Name?: GatewayGroupName; + /** + * The updated description of the gateway group. + */ + Description?: GatewayGroupDescription; + } + export interface UpdateGatewayGroupResponse { + } + export interface UpdateGatewayRequest { + /** + * The ARN of the gateway to update. + */ + GatewayArn: Arn; + /** + * The updated name of the gateway. + */ + Name?: GatewayName; + /** + * The updated description of the gateway. + */ + Description?: GatewayDescription; + /** + * The updated software version of the gateway. The gateway automatically updates its software version during normal operation. + */ + SoftwareVersion?: GatewayVersion; + } + export interface UpdateGatewayResponse { + } + export interface UpdateInstantBooking { + /** + * Duration between 15 and 240 minutes at increments of 15 that determines how long to book an available room when a meeting is started with Alexa. + */ + DurationInMinutes?: Minutes; + /** + * Whether instant booking is enabled or not. + */ + Enabled?: Boolean; + } + export interface UpdateMeetingRoomConfiguration { + /** + * Whether room utilization metrics are enabled or not. + */ + RoomUtilizationMetricsEnabled?: Boolean; + /** + * Settings for the end of meeting reminder feature that are applied to a room profile. The end of meeting reminder enables Alexa to remind users when a meeting is ending. + */ + EndOfMeetingReminder?: UpdateEndOfMeetingReminder; + /** + * Settings to automatically book an available room available for a configured duration when joining a meeting with Alexa. + */ + InstantBooking?: UpdateInstantBooking; + /** + * Settings for requiring a check in when a room is reserved. Alexa can cancel a room reservation if it's not checked into to make the room available for others. Users can check in by joining the meeting with Alexa or an AVS device, or by saying “Alexa, check in.” + */ + RequireCheckIn?: UpdateRequireCheckIn; + } + export interface UpdateNetworkProfileRequest { + /** + * The ARN of the network profile associated with a device. + */ + NetworkProfileArn: Arn; + /** + * The name of the network profile associated with a device. + */ + NetworkProfileName?: NetworkProfileName; + /** + * Detailed information about a device's network profile. + */ + Description?: NetworkProfileDescription; + /** + * The current password of the Wi-Fi network. + */ + CurrentPassword?: CurrentWiFiPassword; + /** + * The next, or subsequent, password of the Wi-Fi network. This password is asynchronously transmitted to the device and is used when the password of the network changes to NextPassword. + */ + NextPassword?: NextWiFiPassword; + /** + * The ARN of the Private Certificate Authority (PCA) created in AWS Certificate Manager (ACM). This is used to issue certificates to the devices. + */ + CertificateAuthorityArn?: Arn; + /** + * The root certificate(s) of your authentication server that will be installed on your devices and used to trust your authentication server during EAP negotiation. + */ + TrustAnchors?: TrustAnchorList; + } + export interface UpdateNetworkProfileResponse { + } + export interface UpdateProfileRequest { + /** + * The ARN of the room profile to update. Required. + */ + ProfileArn?: Arn; + /** + * The updated name for the room profile. + */ + ProfileName?: ProfileName; + /** + * Sets the profile as default if selected. If this is missing, no update is done to the default status. + */ + IsDefault?: Boolean; + /** + * The updated timezone for the room profile. + */ + Timezone?: Timezone; + /** + * The updated address for the room profile. + */ + Address?: Address; + /** + * The updated distance unit for the room profile. + */ + DistanceUnit?: DistanceUnit; + /** + * The updated temperature unit for the room profile. + */ + TemperatureUnit?: TemperatureUnit; + /** + * The updated wake word for the room profile. + */ + WakeWord?: WakeWord; + /** + * The updated locale for the room profile. (This is currently only available to a limited preview audience.) + */ + Locale?: DeviceLocale; + /** + * Whether the setup mode of the profile is enabled. + */ + SetupModeDisabled?: Boolean; + /** + * The updated maximum volume limit for the room profile. + */ + MaxVolumeLimit?: MaxVolumeLimit; + /** + * Whether the PSTN setting of the room profile is enabled. + */ + PSTNEnabled?: Boolean; + /** + * Whether data retention of the profile is enabled. + */ + DataRetentionOptIn?: Boolean; + /** + * The updated meeting room settings of a room profile. + */ + MeetingRoomConfiguration?: UpdateMeetingRoomConfiguration; + } + export interface UpdateProfileResponse { + } + export interface UpdateRequireCheckIn { + /** + * Duration between 5 and 20 minutes to determine when to release the room if it's not checked into. + */ + ReleaseAfterMinutes?: Minutes; + /** + * Whether require check in is enabled or not. + */ + Enabled?: Boolean; + } + export interface UpdateRoomRequest { + /** + * The ARN of the room to update. + */ + RoomArn?: Arn; + /** + * The updated name for the room. + */ + RoomName?: RoomName; + /** + * The updated description for the room. + */ + Description?: RoomDescription; + /** + * The updated provider calendar ARN for the room. + */ + ProviderCalendarId?: ProviderCalendarId; + /** + * The updated profile ARN for the room. + */ + ProfileArn?: Arn; + } + export interface UpdateRoomResponse { + } + export interface UpdateSkillGroupRequest { + /** + * The ARN of the skill group to update. + */ + SkillGroupArn?: Arn; + /** + * The updated name for the skill group. + */ + SkillGroupName?: SkillGroupName; + /** + * The updated description for the skill group. + */ + Description?: SkillGroupDescription; + } + export interface UpdateSkillGroupResponse { + } + export type Url = string; + export type UserCode = string; + export interface UserData { + /** + * The ARN of a user. + */ + UserArn?: Arn; + /** + * The first name of a user. + */ + FirstName?: user_FirstName; + /** + * The last name of a user. + */ + LastName?: user_LastName; + /** + * The email of a user. + */ + Email?: Email; + /** + * The enrollment status of a user. + */ + EnrollmentStatus?: EnrollmentStatus; + /** + * The enrollment ARN of a user. + */ + EnrollmentId?: EnrollmentId; + } + export type UserDataList = UserData[]; + export type UserId = string; + export type Utterance = string; + export type Value = string; + export type WakeWord = "ALEXA"|"AMAZON"|"ECHO"|"COMPUTER"|string; + export type user_FirstName = string; + export type user_LastName = string; + export type user_UserId = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-11-09"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AlexaForBusiness client. + */ + export import Types = AlexaForBusiness; +} +export = AlexaForBusiness; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/alexaforbusiness.js b/justdanceonline-main/node_modules/aws-sdk/clients/alexaforbusiness.js new file mode 100644 index 0000000000000000000000000000000000000000..b021f39d7435e24b4bccfb72f53351ae6b0cd47c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/alexaforbusiness.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['alexaforbusiness'] = {}; +AWS.AlexaForBusiness = Service.defineService('alexaforbusiness', ['2017-11-09']); +Object.defineProperty(apiLoader.services['alexaforbusiness'], '2017-11-09', { + get: function get() { + var model = require('../apis/alexaforbusiness-2017-11-09.min.json'); + model.paginators = require('../apis/alexaforbusiness-2017-11-09.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AlexaForBusiness; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/all.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/all.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..3e5bfa9b739bde6fee3c117dbb84e4a31ff2db61 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/all.d.ts @@ -0,0 +1,271 @@ +export import ACM = require('./acm'); +export import APIGateway = require('./apigateway'); +export import ApplicationAutoScaling = require('./applicationautoscaling'); +export import AppStream = require('./appstream'); +export import AutoScaling = require('./autoscaling'); +export import Batch = require('./batch'); +export import Budgets = require('./budgets'); +export import CloudDirectory = require('./clouddirectory'); +export import CloudFormation = require('./cloudformation'); +export import CloudFront = require('./cloudfront'); +export import CloudHSM = require('./cloudhsm'); +export import CloudSearch = require('./cloudsearch'); +export import CloudSearchDomain = require('./cloudsearchdomain'); +export import CloudTrail = require('./cloudtrail'); +export import CloudWatch = require('./cloudwatch'); +export import CloudWatchEvents = require('./cloudwatchevents'); +export import CloudWatchLogs = require('./cloudwatchlogs'); +export import CodeBuild = require('./codebuild'); +export import CodeCommit = require('./codecommit'); +export import CodeDeploy = require('./codedeploy'); +export import CodePipeline = require('./codepipeline'); +export import CognitoIdentity = require('./cognitoidentity'); +export import CognitoIdentityServiceProvider = require('./cognitoidentityserviceprovider'); +export import CognitoSync = require('./cognitosync'); +export import ConfigService = require('./configservice'); +export import CUR = require('./cur'); +export import DataPipeline = require('./datapipeline'); +export import DeviceFarm = require('./devicefarm'); +export import DirectConnect = require('./directconnect'); +export import DirectoryService = require('./directoryservice'); +export import Discovery = require('./discovery'); +export import DMS = require('./dms'); +export import DynamoDB = require('./dynamodb'); +export import DynamoDBStreams = require('./dynamodbstreams'); +export import EC2 = require('./ec2'); +export import ECR = require('./ecr'); +export import ECS = require('./ecs'); +export import EFS = require('./efs'); +export import ElastiCache = require('./elasticache'); +export import ElasticBeanstalk = require('./elasticbeanstalk'); +export import ELB = require('./elb'); +export import ELBv2 = require('./elbv2'); +export import EMR = require('./emr'); +export import ES = require('./es'); +export import ElasticTranscoder = require('./elastictranscoder'); +export import Firehose = require('./firehose'); +export import GameLift = require('./gamelift'); +export import Glacier = require('./glacier'); +export import Health = require('./health'); +export import IAM = require('./iam'); +export import ImportExport = require('./importexport'); +export import Inspector = require('./inspector'); +export import Iot = require('./iot'); +export import IotData = require('./iotdata'); +export import Kinesis = require('./kinesis'); +export import KinesisAnalytics = require('./kinesisanalytics'); +export import KMS = require('./kms'); +export import Lambda = require('./lambda'); +export import LexRuntime = require('./lexruntime'); +export import Lightsail = require('./lightsail'); +export import MachineLearning = require('./machinelearning'); +export import MarketplaceCommerceAnalytics = require('./marketplacecommerceanalytics'); +export import MarketplaceMetering = require('./marketplacemetering'); +export import MTurk = require('./mturk'); +export import MobileAnalytics = require('./mobileanalytics'); +export import OpsWorks = require('./opsworks'); +export import OpsWorksCM = require('./opsworkscm'); +export import Organizations = require('./organizations'); +export import Pinpoint = require('./pinpoint'); +export import Polly = require('./polly'); +export import RDS = require('./rds'); +export import Redshift = require('./redshift'); +export import Rekognition = require('./rekognition'); +export import ResourceGroupsTaggingAPI = require('./resourcegroupstaggingapi'); +export import Route53 = require('./route53'); +export import Route53Domains = require('./route53domains'); +export import S3 = require('./s3'); +export import S3Control = require('./s3control'); +export import ServiceCatalog = require('./servicecatalog'); +export import SES = require('./ses'); +export import Shield = require('./shield'); +export import SimpleDB = require('./simpledb'); +export import SMS = require('./sms'); +export import Snowball = require('./snowball'); +export import SNS = require('./sns'); +export import SQS = require('./sqs'); +export import SSM = require('./ssm'); +export import StorageGateway = require('./storagegateway'); +export import StepFunctions = require('./stepfunctions'); +export import STS = require('./sts'); +export import Support = require('./support'); +export import SWF = require('./swf'); +export import XRay = require('./xray'); +export import WAF = require('./waf'); +export import WAFRegional = require('./wafregional'); +export import WorkDocs = require('./workdocs'); +export import WorkSpaces = require('./workspaces'); +export import CodeStar = require('./codestar'); +export import LexModelBuildingService = require('./lexmodelbuildingservice'); +export import MarketplaceEntitlementService = require('./marketplaceentitlementservice'); +export import Athena = require('./athena'); +export import Greengrass = require('./greengrass'); +export import DAX = require('./dax'); +export import MigrationHub = require('./migrationhub'); +export import CloudHSMV2 = require('./cloudhsmv2'); +export import Glue = require('./glue'); +export import Mobile = require('./mobile'); +export import Pricing = require('./pricing'); +export import CostExplorer = require('./costexplorer'); +export import MediaConvert = require('./mediaconvert'); +export import MediaLive = require('./medialive'); +export import MediaPackage = require('./mediapackage'); +export import MediaStore = require('./mediastore'); +export import MediaStoreData = require('./mediastoredata'); +export import AppSync = require('./appsync'); +export import GuardDuty = require('./guardduty'); +export import MQ = require('./mq'); +export import Comprehend = require('./comprehend'); +export import IoTJobsDataPlane = require('./iotjobsdataplane'); +export import KinesisVideoArchivedMedia = require('./kinesisvideoarchivedmedia'); +export import KinesisVideoMedia = require('./kinesisvideomedia'); +export import KinesisVideo = require('./kinesisvideo'); +export import SageMakerRuntime = require('./sagemakerruntime'); +export import SageMaker = require('./sagemaker'); +export import Translate = require('./translate'); +export import ResourceGroups = require('./resourcegroups'); +export import AlexaForBusiness = require('./alexaforbusiness'); +export import Cloud9 = require('./cloud9'); +export import ServerlessApplicationRepository = require('./serverlessapplicationrepository'); +export import ServiceDiscovery = require('./servicediscovery'); +export import WorkMail = require('./workmail'); +export import AutoScalingPlans = require('./autoscalingplans'); +export import TranscribeService = require('./transcribeservice'); +export import Connect = require('./connect'); +export import ACMPCA = require('./acmpca'); +export import FMS = require('./fms'); +export import SecretsManager = require('./secretsmanager'); +export import IoTAnalytics = require('./iotanalytics'); +export import IoT1ClickDevicesService = require('./iot1clickdevicesservice'); +export import IoT1ClickProjects = require('./iot1clickprojects'); +export import PI = require('./pi'); +export import Neptune = require('./neptune'); +export import MediaTailor = require('./mediatailor'); +export import EKS = require('./eks'); +export import Macie = require('./macie'); +export import DLM = require('./dlm'); +export import Signer = require('./signer'); +export import Chime = require('./chime'); +export import PinpointEmail = require('./pinpointemail'); +export import RAM = require('./ram'); +export import Route53Resolver = require('./route53resolver'); +export import PinpointSMSVoice = require('./pinpointsmsvoice'); +export import QuickSight = require('./quicksight'); +export import RDSDataService = require('./rdsdataservice'); +export import Amplify = require('./amplify'); +export import DataSync = require('./datasync'); +export import RoboMaker = require('./robomaker'); +export import Transfer = require('./transfer'); +export import GlobalAccelerator = require('./globalaccelerator'); +export import ComprehendMedical = require('./comprehendmedical'); +export import KinesisAnalyticsV2 = require('./kinesisanalyticsv2'); +export import MediaConnect = require('./mediaconnect'); +export import FSx = require('./fsx'); +export import SecurityHub = require('./securityhub'); +export import AppMesh = require('./appmesh'); +export import LicenseManager = require('./licensemanager'); +export import Kafka = require('./kafka'); +export import ApiGatewayManagementApi = require('./apigatewaymanagementapi'); +export import ApiGatewayV2 = require('./apigatewayv2'); +export import DocDB = require('./docdb'); +export import Backup = require('./backup'); +export import WorkLink = require('./worklink'); +export import Textract = require('./textract'); +export import ManagedBlockchain = require('./managedblockchain'); +export import MediaPackageVod = require('./mediapackagevod'); +export import GroundStation = require('./groundstation'); +export import IoTThingsGraph = require('./iotthingsgraph'); +export import IoTEvents = require('./iotevents'); +export import IoTEventsData = require('./ioteventsdata'); +export import Personalize = require('./personalize'); +export import PersonalizeEvents = require('./personalizeevents'); +export import PersonalizeRuntime = require('./personalizeruntime'); +export import ApplicationInsights = require('./applicationinsights'); +export import ServiceQuotas = require('./servicequotas'); +export import EC2InstanceConnect = require('./ec2instanceconnect'); +export import EventBridge = require('./eventbridge'); +export import LakeFormation = require('./lakeformation'); +export import ForecastService = require('./forecastservice'); +export import ForecastQueryService = require('./forecastqueryservice'); +export import QLDB = require('./qldb'); +export import QLDBSession = require('./qldbsession'); +export import WorkMailMessageFlow = require('./workmailmessageflow'); +export import CodeStarNotifications = require('./codestarnotifications'); +export import SavingsPlans = require('./savingsplans'); +export import SSO = require('./sso'); +export import SSOOIDC = require('./ssooidc'); +export import MarketplaceCatalog = require('./marketplacecatalog'); +export import DataExchange = require('./dataexchange'); +export import SESV2 = require('./sesv2'); +export import MigrationHubConfig = require('./migrationhubconfig'); +export import ConnectParticipant = require('./connectparticipant'); +export import AppConfig = require('./appconfig'); +export import IoTSecureTunneling = require('./iotsecuretunneling'); +export import WAFV2 = require('./wafv2'); +export import ElasticInference = require('./elasticinference'); +export import Imagebuilder = require('./imagebuilder'); +export import Schemas = require('./schemas'); +export import AccessAnalyzer = require('./accessanalyzer'); +export import CodeGuruReviewer = require('./codegurureviewer'); +export import CodeGuruProfiler = require('./codeguruprofiler'); +export import ComputeOptimizer = require('./computeoptimizer'); +export import FraudDetector = require('./frauddetector'); +export import Kendra = require('./kendra'); +export import NetworkManager = require('./networkmanager'); +export import Outposts = require('./outposts'); +export import AugmentedAIRuntime = require('./augmentedairuntime'); +export import EBS = require('./ebs'); +export import KinesisVideoSignalingChannels = require('./kinesisvideosignalingchannels'); +export import Detective = require('./detective'); +export import CodeStarconnections = require('./codestarconnections'); +export import Synthetics = require('./synthetics'); +export import IoTSiteWise = require('./iotsitewise'); +export import Macie2 = require('./macie2'); +export import CodeArtifact = require('./codeartifact'); +export import Honeycode = require('./honeycode'); +export import IVS = require('./ivs'); +export import Braket = require('./braket'); +export import IdentityStore = require('./identitystore'); +export import Appflow = require('./appflow'); +export import RedshiftData = require('./redshiftdata'); +export import SSOAdmin = require('./ssoadmin'); +export import TimestreamQuery = require('./timestreamquery'); +export import TimestreamWrite = require('./timestreamwrite'); +export import S3Outposts = require('./s3outposts'); +export import DataBrew = require('./databrew'); +export import ServiceCatalogAppRegistry = require('./servicecatalogappregistry'); +export import NetworkFirewall = require('./networkfirewall'); +export import MWAA = require('./mwaa'); +export import AmplifyBackend = require('./amplifybackend'); +export import AppIntegrations = require('./appintegrations'); +export import ConnectContactLens = require('./connectcontactlens'); +export import DevOpsGuru = require('./devopsguru'); +export import ECRPUBLIC = require('./ecrpublic'); +export import LookoutVision = require('./lookoutvision'); +export import SageMakerFeatureStoreRuntime = require('./sagemakerfeaturestoreruntime'); +export import CustomerProfiles = require('./customerprofiles'); +export import AuditManager = require('./auditmanager'); +export import EMRcontainers = require('./emrcontainers'); +export import HealthLake = require('./healthlake'); +export import SagemakerEdge = require('./sagemakeredge'); +export import Amp = require('./amp'); +export import GreengrassV2 = require('./greengrassv2'); +export import IotDeviceAdvisor = require('./iotdeviceadvisor'); +export import IoTFleetHub = require('./iotfleethub'); +export import IoTWireless = require('./iotwireless'); +export import Location = require('./location'); +export import WellArchitected = require('./wellarchitected'); +export import LexModelsV2 = require('./lexmodelsv2'); +export import LexRuntimeV2 = require('./lexruntimev2'); +export import Fis = require('./fis'); +export import LookoutMetrics = require('./lookoutmetrics'); +export import Mgn = require('./mgn'); +export import LookoutEquipment = require('./lookoutequipment'); +export import Nimble = require('./nimble'); +export import Finspace = require('./finspace'); +export import Finspacedata = require('./finspacedata'); +export import SSMContacts = require('./ssmcontacts'); +export import SSMIncidents = require('./ssmincidents'); +export import ApplicationCostProfiler = require('./applicationcostprofiler'); +export import AppRunner = require('./apprunner'); +export import Proton = require('./proton'); diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/all.js b/justdanceonline-main/node_modules/aws-sdk/clients/all.js new file mode 100644 index 0000000000000000000000000000000000000000..1198af45578bc6501631d420d6a8d9bb70cb151f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/all.js @@ -0,0 +1,274 @@ +require('../lib/node_loader'); +module.exports = { + ACM: require('./acm'), + APIGateway: require('./apigateway'), + ApplicationAutoScaling: require('./applicationautoscaling'), + AppStream: require('./appstream'), + AutoScaling: require('./autoscaling'), + Batch: require('./batch'), + Budgets: require('./budgets'), + CloudDirectory: require('./clouddirectory'), + CloudFormation: require('./cloudformation'), + CloudFront: require('./cloudfront'), + CloudHSM: require('./cloudhsm'), + CloudSearch: require('./cloudsearch'), + CloudSearchDomain: require('./cloudsearchdomain'), + CloudTrail: require('./cloudtrail'), + CloudWatch: require('./cloudwatch'), + CloudWatchEvents: require('./cloudwatchevents'), + CloudWatchLogs: require('./cloudwatchlogs'), + CodeBuild: require('./codebuild'), + CodeCommit: require('./codecommit'), + CodeDeploy: require('./codedeploy'), + CodePipeline: require('./codepipeline'), + CognitoIdentity: require('./cognitoidentity'), + CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'), + CognitoSync: require('./cognitosync'), + ConfigService: require('./configservice'), + CUR: require('./cur'), + DataPipeline: require('./datapipeline'), + DeviceFarm: require('./devicefarm'), + DirectConnect: require('./directconnect'), + DirectoryService: require('./directoryservice'), + Discovery: require('./discovery'), + DMS: require('./dms'), + DynamoDB: require('./dynamodb'), + DynamoDBStreams: require('./dynamodbstreams'), + EC2: require('./ec2'), + ECR: require('./ecr'), + ECS: require('./ecs'), + EFS: require('./efs'), + ElastiCache: require('./elasticache'), + ElasticBeanstalk: require('./elasticbeanstalk'), + ELB: require('./elb'), + ELBv2: require('./elbv2'), + EMR: require('./emr'), + ES: require('./es'), + ElasticTranscoder: require('./elastictranscoder'), + Firehose: require('./firehose'), + GameLift: require('./gamelift'), + Glacier: require('./glacier'), + Health: require('./health'), + IAM: require('./iam'), + ImportExport: require('./importexport'), + Inspector: require('./inspector'), + Iot: require('./iot'), + IotData: require('./iotdata'), + Kinesis: require('./kinesis'), + KinesisAnalytics: require('./kinesisanalytics'), + KMS: require('./kms'), + Lambda: require('./lambda'), + LexRuntime: require('./lexruntime'), + Lightsail: require('./lightsail'), + MachineLearning: require('./machinelearning'), + MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'), + MarketplaceMetering: require('./marketplacemetering'), + MTurk: require('./mturk'), + MobileAnalytics: require('./mobileanalytics'), + OpsWorks: require('./opsworks'), + OpsWorksCM: require('./opsworkscm'), + Organizations: require('./organizations'), + Pinpoint: require('./pinpoint'), + Polly: require('./polly'), + RDS: require('./rds'), + Redshift: require('./redshift'), + Rekognition: require('./rekognition'), + ResourceGroupsTaggingAPI: require('./resourcegroupstaggingapi'), + Route53: require('./route53'), + Route53Domains: require('./route53domains'), + S3: require('./s3'), + S3Control: require('./s3control'), + ServiceCatalog: require('./servicecatalog'), + SES: require('./ses'), + Shield: require('./shield'), + SimpleDB: require('./simpledb'), + SMS: require('./sms'), + Snowball: require('./snowball'), + SNS: require('./sns'), + SQS: require('./sqs'), + SSM: require('./ssm'), + StorageGateway: require('./storagegateway'), + StepFunctions: require('./stepfunctions'), + STS: require('./sts'), + Support: require('./support'), + SWF: require('./swf'), + XRay: require('./xray'), + WAF: require('./waf'), + WAFRegional: require('./wafregional'), + WorkDocs: require('./workdocs'), + WorkSpaces: require('./workspaces'), + CodeStar: require('./codestar'), + LexModelBuildingService: require('./lexmodelbuildingservice'), + MarketplaceEntitlementService: require('./marketplaceentitlementservice'), + Athena: require('./athena'), + Greengrass: require('./greengrass'), + DAX: require('./dax'), + MigrationHub: require('./migrationhub'), + CloudHSMV2: require('./cloudhsmv2'), + Glue: require('./glue'), + Mobile: require('./mobile'), + Pricing: require('./pricing'), + CostExplorer: require('./costexplorer'), + MediaConvert: require('./mediaconvert'), + MediaLive: require('./medialive'), + MediaPackage: require('./mediapackage'), + MediaStore: require('./mediastore'), + MediaStoreData: require('./mediastoredata'), + AppSync: require('./appsync'), + GuardDuty: require('./guardduty'), + MQ: require('./mq'), + Comprehend: require('./comprehend'), + IoTJobsDataPlane: require('./iotjobsdataplane'), + KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'), + KinesisVideoMedia: require('./kinesisvideomedia'), + KinesisVideo: require('./kinesisvideo'), + SageMakerRuntime: require('./sagemakerruntime'), + SageMaker: require('./sagemaker'), + Translate: require('./translate'), + ResourceGroups: require('./resourcegroups'), + AlexaForBusiness: require('./alexaforbusiness'), + Cloud9: require('./cloud9'), + ServerlessApplicationRepository: require('./serverlessapplicationrepository'), + ServiceDiscovery: require('./servicediscovery'), + WorkMail: require('./workmail'), + AutoScalingPlans: require('./autoscalingplans'), + TranscribeService: require('./transcribeservice'), + Connect: require('./connect'), + ACMPCA: require('./acmpca'), + FMS: require('./fms'), + SecretsManager: require('./secretsmanager'), + IoTAnalytics: require('./iotanalytics'), + IoT1ClickDevicesService: require('./iot1clickdevicesservice'), + IoT1ClickProjects: require('./iot1clickprojects'), + PI: require('./pi'), + Neptune: require('./neptune'), + MediaTailor: require('./mediatailor'), + EKS: require('./eks'), + Macie: require('./macie'), + DLM: require('./dlm'), + Signer: require('./signer'), + Chime: require('./chime'), + PinpointEmail: require('./pinpointemail'), + RAM: require('./ram'), + Route53Resolver: require('./route53resolver'), + PinpointSMSVoice: require('./pinpointsmsvoice'), + QuickSight: require('./quicksight'), + RDSDataService: require('./rdsdataservice'), + Amplify: require('./amplify'), + DataSync: require('./datasync'), + RoboMaker: require('./robomaker'), + Transfer: require('./transfer'), + GlobalAccelerator: require('./globalaccelerator'), + ComprehendMedical: require('./comprehendmedical'), + KinesisAnalyticsV2: require('./kinesisanalyticsv2'), + MediaConnect: require('./mediaconnect'), + FSx: require('./fsx'), + SecurityHub: require('./securityhub'), + AppMesh: require('./appmesh'), + LicenseManager: require('./licensemanager'), + Kafka: require('./kafka'), + ApiGatewayManagementApi: require('./apigatewaymanagementapi'), + ApiGatewayV2: require('./apigatewayv2'), + DocDB: require('./docdb'), + Backup: require('./backup'), + WorkLink: require('./worklink'), + Textract: require('./textract'), + ManagedBlockchain: require('./managedblockchain'), + MediaPackageVod: require('./mediapackagevod'), + GroundStation: require('./groundstation'), + IoTThingsGraph: require('./iotthingsgraph'), + IoTEvents: require('./iotevents'), + IoTEventsData: require('./ioteventsdata'), + Personalize: require('./personalize'), + PersonalizeEvents: require('./personalizeevents'), + PersonalizeRuntime: require('./personalizeruntime'), + ApplicationInsights: require('./applicationinsights'), + ServiceQuotas: require('./servicequotas'), + EC2InstanceConnect: require('./ec2instanceconnect'), + EventBridge: require('./eventbridge'), + LakeFormation: require('./lakeformation'), + ForecastService: require('./forecastservice'), + ForecastQueryService: require('./forecastqueryservice'), + QLDB: require('./qldb'), + QLDBSession: require('./qldbsession'), + WorkMailMessageFlow: require('./workmailmessageflow'), + CodeStarNotifications: require('./codestarnotifications'), + SavingsPlans: require('./savingsplans'), + SSO: require('./sso'), + SSOOIDC: require('./ssooidc'), + MarketplaceCatalog: require('./marketplacecatalog'), + DataExchange: require('./dataexchange'), + SESV2: require('./sesv2'), + MigrationHubConfig: require('./migrationhubconfig'), + ConnectParticipant: require('./connectparticipant'), + AppConfig: require('./appconfig'), + IoTSecureTunneling: require('./iotsecuretunneling'), + WAFV2: require('./wafv2'), + ElasticInference: require('./elasticinference'), + Imagebuilder: require('./imagebuilder'), + Schemas: require('./schemas'), + AccessAnalyzer: require('./accessanalyzer'), + CodeGuruReviewer: require('./codegurureviewer'), + CodeGuruProfiler: require('./codeguruprofiler'), + ComputeOptimizer: require('./computeoptimizer'), + FraudDetector: require('./frauddetector'), + Kendra: require('./kendra'), + NetworkManager: require('./networkmanager'), + Outposts: require('./outposts'), + AugmentedAIRuntime: require('./augmentedairuntime'), + EBS: require('./ebs'), + KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'), + Detective: require('./detective'), + CodeStarconnections: require('./codestarconnections'), + Synthetics: require('./synthetics'), + IoTSiteWise: require('./iotsitewise'), + Macie2: require('./macie2'), + CodeArtifact: require('./codeartifact'), + Honeycode: require('./honeycode'), + IVS: require('./ivs'), + Braket: require('./braket'), + IdentityStore: require('./identitystore'), + Appflow: require('./appflow'), + RedshiftData: require('./redshiftdata'), + SSOAdmin: require('./ssoadmin'), + TimestreamQuery: require('./timestreamquery'), + TimestreamWrite: require('./timestreamwrite'), + S3Outposts: require('./s3outposts'), + DataBrew: require('./databrew'), + ServiceCatalogAppRegistry: require('./servicecatalogappregistry'), + NetworkFirewall: require('./networkfirewall'), + MWAA: require('./mwaa'), + AmplifyBackend: require('./amplifybackend'), + AppIntegrations: require('./appintegrations'), + ConnectContactLens: require('./connectcontactlens'), + DevOpsGuru: require('./devopsguru'), + ECRPUBLIC: require('./ecrpublic'), + LookoutVision: require('./lookoutvision'), + SageMakerFeatureStoreRuntime: require('./sagemakerfeaturestoreruntime'), + CustomerProfiles: require('./customerprofiles'), + AuditManager: require('./auditmanager'), + EMRcontainers: require('./emrcontainers'), + HealthLake: require('./healthlake'), + SagemakerEdge: require('./sagemakeredge'), + Amp: require('./amp'), + GreengrassV2: require('./greengrassv2'), + IotDeviceAdvisor: require('./iotdeviceadvisor'), + IoTFleetHub: require('./iotfleethub'), + IoTWireless: require('./iotwireless'), + Location: require('./location'), + WellArchitected: require('./wellarchitected'), + LexModelsV2: require('./lexmodelsv2'), + LexRuntimeV2: require('./lexruntimev2'), + Fis: require('./fis'), + LookoutMetrics: require('./lookoutmetrics'), + Mgn: require('./mgn'), + LookoutEquipment: require('./lookoutequipment'), + Nimble: require('./nimble'), + Finspace: require('./finspace'), + Finspacedata: require('./finspacedata'), + SSMContacts: require('./ssmcontacts'), + SSMIncidents: require('./ssmincidents'), + ApplicationCostProfiler: require('./applicationcostprofiler'), + AppRunner: require('./apprunner'), + Proton: require('./proton') +}; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/amp.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/amp.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7eb814762cd93f59ebb728da17d3a791c5783c2b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/amp.d.ts @@ -0,0 +1,220 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Amp extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Amp.Types.ClientConfiguration) + config: Config & Amp.Types.ClientConfiguration; + /** + * Creates a new AMP workspace. + */ + createWorkspace(params: Amp.Types.CreateWorkspaceRequest, callback?: (err: AWSError, data: Amp.Types.CreateWorkspaceResponse) => void): Request; + /** + * Creates a new AMP workspace. + */ + createWorkspace(callback?: (err: AWSError, data: Amp.Types.CreateWorkspaceResponse) => void): Request; + /** + * Deletes an AMP workspace. + */ + deleteWorkspace(params: Amp.Types.DeleteWorkspaceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an AMP workspace. + */ + deleteWorkspace(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Describes an existing AMP workspace. + */ + describeWorkspace(params: Amp.Types.DescribeWorkspaceRequest, callback?: (err: AWSError, data: Amp.Types.DescribeWorkspaceResponse) => void): Request; + /** + * Describes an existing AMP workspace. + */ + describeWorkspace(callback?: (err: AWSError, data: Amp.Types.DescribeWorkspaceResponse) => void): Request; + /** + * Lists all AMP workspaces, including workspaces being created or deleted. + */ + listWorkspaces(params: Amp.Types.ListWorkspacesRequest, callback?: (err: AWSError, data: Amp.Types.ListWorkspacesResponse) => void): Request; + /** + * Lists all AMP workspaces, including workspaces being created or deleted. + */ + listWorkspaces(callback?: (err: AWSError, data: Amp.Types.ListWorkspacesResponse) => void): Request; + /** + * Updates an AMP workspace alias. + */ + updateWorkspaceAlias(params: Amp.Types.UpdateWorkspaceAliasRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates an AMP workspace alias. + */ + updateWorkspaceAlias(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; +} +declare namespace Amp { + export interface CreateWorkspaceRequest { + /** + * An optional user-assigned alias for this workspace. This alias is for user reference and does not need to be unique. + */ + alias?: WorkspaceAlias; + /** + * Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request. + */ + clientToken?: IdempotencyToken; + } + export interface CreateWorkspaceResponse { + /** + * The ARN of the workspace that was just created. + */ + arn: WorkspaceArn; + /** + * The status of the workspace that was just created (usually CREATING). + */ + status: WorkspaceStatus; + /** + * The generated ID of the workspace that was just created. + */ + workspaceId: WorkspaceId; + } + export interface DeleteWorkspaceRequest { + /** + * Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request. + */ + clientToken?: IdempotencyToken; + /** + * The ID of the workspace to delete. + */ + workspaceId: WorkspaceId; + } + export interface DescribeWorkspaceRequest { + /** + * The ID of the workspace to describe. + */ + workspaceId: WorkspaceId; + } + export interface DescribeWorkspaceResponse { + /** + * The properties of the selected workspace. + */ + workspace: WorkspaceDescription; + } + export type IdempotencyToken = string; + export interface ListWorkspacesRequest { + /** + * Optional filter for workspace alias. Only the workspaces with aliases that begin with this value will be returned. + */ + alias?: WorkspaceAlias; + /** + * Maximum results to return in response (default=100, maximum=1000). + */ + maxResults?: ListWorkspacesRequestMaxResultsInteger; + /** + * Pagination token to request the next page in a paginated list. This token is obtained from the output of the previous ListWorkspaces request. + */ + nextToken?: PaginationToken; + } + export type ListWorkspacesRequestMaxResultsInteger = number; + export interface ListWorkspacesResponse { + /** + * Pagination token to use when requesting the next page in this list. + */ + nextToken?: PaginationToken; + /** + * The list of existing workspaces, including those undergoing creation or deletion. + */ + workspaces: WorkspaceSummaryList; + } + export type PaginationToken = string; + export type Timestamp = Date; + export interface UpdateWorkspaceAliasRequest { + /** + * The new alias of the workspace. + */ + alias?: WorkspaceAlias; + /** + * Optional, unique, case-sensitive, user-provided identifier to ensure the idempotency of the request. + */ + clientToken?: IdempotencyToken; + /** + * The ID of the workspace being updated. + */ + workspaceId: WorkspaceId; + } + export type Uri = string; + export type WorkspaceAlias = string; + export type WorkspaceArn = string; + export interface WorkspaceDescription { + /** + * Alias of this workspace. + */ + alias?: WorkspaceAlias; + /** + * The Amazon Resource Name (ARN) of this workspace. + */ + arn: WorkspaceArn; + /** + * The time when the workspace was created. + */ + createdAt: Timestamp; + /** + * Prometheus endpoint URI. + */ + prometheusEndpoint?: Uri; + /** + * The status of this workspace. + */ + status: WorkspaceStatus; + /** + * Unique string identifying this workspace. + */ + workspaceId: WorkspaceId; + } + export type WorkspaceId = string; + export interface WorkspaceStatus { + /** + * Status code of this workspace. + */ + statusCode: WorkspaceStatusCode; + } + export type WorkspaceStatusCode = "CREATING"|"ACTIVE"|"UPDATING"|"DELETING"|"CREATION_FAILED"|string; + export interface WorkspaceSummary { + /** + * Alias of this workspace. + */ + alias?: WorkspaceAlias; + /** + * The AmazonResourceName of this workspace. + */ + arn: WorkspaceArn; + /** + * The time when the workspace was created. + */ + createdAt: Timestamp; + /** + * The status of this workspace. + */ + status: WorkspaceStatus; + /** + * Unique string identifying this workspace. + */ + workspaceId: WorkspaceId; + } + export type WorkspaceSummaryList = WorkspaceSummary[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2020-08-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Amp client. + */ + export import Types = Amp; +} +export = Amp; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/amp.js b/justdanceonline-main/node_modules/aws-sdk/clients/amp.js new file mode 100644 index 0000000000000000000000000000000000000000..f44c5349f99826f11775a335f20882380e29d89a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/amp.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['amp'] = {}; +AWS.Amp = Service.defineService('amp', ['2020-08-01']); +Object.defineProperty(apiLoader.services['amp'], '2020-08-01', { + get: function get() { + var model = require('../apis/amp-2020-08-01.min.json'); + model.paginators = require('../apis/amp-2020-08-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Amp; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/amplify.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/amplify.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..aee973d82bec7d330cc96121839422ec710051c1 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/amplify.d.ts @@ -0,0 +1,1926 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Amplify extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Amplify.Types.ClientConfiguration) + config: Config & Amplify.Types.ClientConfiguration; + /** + * Creates a new Amplify app. + */ + createApp(params: Amplify.Types.CreateAppRequest, callback?: (err: AWSError, data: Amplify.Types.CreateAppResult) => void): Request; + /** + * Creates a new Amplify app. + */ + createApp(callback?: (err: AWSError, data: Amplify.Types.CreateAppResult) => void): Request; + /** + * Creates a new backend environment for an Amplify app. + */ + createBackendEnvironment(params: Amplify.Types.CreateBackendEnvironmentRequest, callback?: (err: AWSError, data: Amplify.Types.CreateBackendEnvironmentResult) => void): Request; + /** + * Creates a new backend environment for an Amplify app. + */ + createBackendEnvironment(callback?: (err: AWSError, data: Amplify.Types.CreateBackendEnvironmentResult) => void): Request; + /** + * Creates a new branch for an Amplify app. + */ + createBranch(params: Amplify.Types.CreateBranchRequest, callback?: (err: AWSError, data: Amplify.Types.CreateBranchResult) => void): Request; + /** + * Creates a new branch for an Amplify app. + */ + createBranch(callback?: (err: AWSError, data: Amplify.Types.CreateBranchResult) => void): Request; + /** + * Creates a deployment for a manually deployed Amplify app. Manually deployed apps are not connected to a repository. + */ + createDeployment(params: Amplify.Types.CreateDeploymentRequest, callback?: (err: AWSError, data: Amplify.Types.CreateDeploymentResult) => void): Request; + /** + * Creates a deployment for a manually deployed Amplify app. Manually deployed apps are not connected to a repository. + */ + createDeployment(callback?: (err: AWSError, data: Amplify.Types.CreateDeploymentResult) => void): Request; + /** + * Creates a new domain association for an Amplify app. This action associates a custom domain with the Amplify app + */ + createDomainAssociation(params: Amplify.Types.CreateDomainAssociationRequest, callback?: (err: AWSError, data: Amplify.Types.CreateDomainAssociationResult) => void): Request; + /** + * Creates a new domain association for an Amplify app. This action associates a custom domain with the Amplify app + */ + createDomainAssociation(callback?: (err: AWSError, data: Amplify.Types.CreateDomainAssociationResult) => void): Request; + /** + * Creates a new webhook on an Amplify app. + */ + createWebhook(params: Amplify.Types.CreateWebhookRequest, callback?: (err: AWSError, data: Amplify.Types.CreateWebhookResult) => void): Request; + /** + * Creates a new webhook on an Amplify app. + */ + createWebhook(callback?: (err: AWSError, data: Amplify.Types.CreateWebhookResult) => void): Request; + /** + * Deletes an existing Amplify app specified by an app ID. + */ + deleteApp(params: Amplify.Types.DeleteAppRequest, callback?: (err: AWSError, data: Amplify.Types.DeleteAppResult) => void): Request; + /** + * Deletes an existing Amplify app specified by an app ID. + */ + deleteApp(callback?: (err: AWSError, data: Amplify.Types.DeleteAppResult) => void): Request; + /** + * Deletes a backend environment for an Amplify app. + */ + deleteBackendEnvironment(params: Amplify.Types.DeleteBackendEnvironmentRequest, callback?: (err: AWSError, data: Amplify.Types.DeleteBackendEnvironmentResult) => void): Request; + /** + * Deletes a backend environment for an Amplify app. + */ + deleteBackendEnvironment(callback?: (err: AWSError, data: Amplify.Types.DeleteBackendEnvironmentResult) => void): Request; + /** + * Deletes a branch for an Amplify app. + */ + deleteBranch(params: Amplify.Types.DeleteBranchRequest, callback?: (err: AWSError, data: Amplify.Types.DeleteBranchResult) => void): Request; + /** + * Deletes a branch for an Amplify app. + */ + deleteBranch(callback?: (err: AWSError, data: Amplify.Types.DeleteBranchResult) => void): Request; + /** + * Deletes a domain association for an Amplify app. + */ + deleteDomainAssociation(params: Amplify.Types.DeleteDomainAssociationRequest, callback?: (err: AWSError, data: Amplify.Types.DeleteDomainAssociationResult) => void): Request; + /** + * Deletes a domain association for an Amplify app. + */ + deleteDomainAssociation(callback?: (err: AWSError, data: Amplify.Types.DeleteDomainAssociationResult) => void): Request; + /** + * Deletes a job for a branch of an Amplify app. + */ + deleteJob(params: Amplify.Types.DeleteJobRequest, callback?: (err: AWSError, data: Amplify.Types.DeleteJobResult) => void): Request; + /** + * Deletes a job for a branch of an Amplify app. + */ + deleteJob(callback?: (err: AWSError, data: Amplify.Types.DeleteJobResult) => void): Request; + /** + * Deletes a webhook. + */ + deleteWebhook(params: Amplify.Types.DeleteWebhookRequest, callback?: (err: AWSError, data: Amplify.Types.DeleteWebhookResult) => void): Request; + /** + * Deletes a webhook. + */ + deleteWebhook(callback?: (err: AWSError, data: Amplify.Types.DeleteWebhookResult) => void): Request; + /** + * Returns the website access logs for a specific time range using a presigned URL. + */ + generateAccessLogs(params: Amplify.Types.GenerateAccessLogsRequest, callback?: (err: AWSError, data: Amplify.Types.GenerateAccessLogsResult) => void): Request; + /** + * Returns the website access logs for a specific time range using a presigned URL. + */ + generateAccessLogs(callback?: (err: AWSError, data: Amplify.Types.GenerateAccessLogsResult) => void): Request; + /** + * Returns an existing Amplify app by appID. + */ + getApp(params: Amplify.Types.GetAppRequest, callback?: (err: AWSError, data: Amplify.Types.GetAppResult) => void): Request; + /** + * Returns an existing Amplify app by appID. + */ + getApp(callback?: (err: AWSError, data: Amplify.Types.GetAppResult) => void): Request; + /** + * Returns the artifact info that corresponds to an artifact id. + */ + getArtifactUrl(params: Amplify.Types.GetArtifactUrlRequest, callback?: (err: AWSError, data: Amplify.Types.GetArtifactUrlResult) => void): Request; + /** + * Returns the artifact info that corresponds to an artifact id. + */ + getArtifactUrl(callback?: (err: AWSError, data: Amplify.Types.GetArtifactUrlResult) => void): Request; + /** + * Returns a backend environment for an Amplify app. + */ + getBackendEnvironment(params: Amplify.Types.GetBackendEnvironmentRequest, callback?: (err: AWSError, data: Amplify.Types.GetBackendEnvironmentResult) => void): Request; + /** + * Returns a backend environment for an Amplify app. + */ + getBackendEnvironment(callback?: (err: AWSError, data: Amplify.Types.GetBackendEnvironmentResult) => void): Request; + /** + * Returns a branch for an Amplify app. + */ + getBranch(params: Amplify.Types.GetBranchRequest, callback?: (err: AWSError, data: Amplify.Types.GetBranchResult) => void): Request; + /** + * Returns a branch for an Amplify app. + */ + getBranch(callback?: (err: AWSError, data: Amplify.Types.GetBranchResult) => void): Request; + /** + * Returns the domain information for an Amplify app. + */ + getDomainAssociation(params: Amplify.Types.GetDomainAssociationRequest, callback?: (err: AWSError, data: Amplify.Types.GetDomainAssociationResult) => void): Request; + /** + * Returns the domain information for an Amplify app. + */ + getDomainAssociation(callback?: (err: AWSError, data: Amplify.Types.GetDomainAssociationResult) => void): Request; + /** + * Returns a job for a branch of an Amplify app. + */ + getJob(params: Amplify.Types.GetJobRequest, callback?: (err: AWSError, data: Amplify.Types.GetJobResult) => void): Request; + /** + * Returns a job for a branch of an Amplify app. + */ + getJob(callback?: (err: AWSError, data: Amplify.Types.GetJobResult) => void): Request; + /** + * Returns the webhook information that corresponds to a specified webhook ID. + */ + getWebhook(params: Amplify.Types.GetWebhookRequest, callback?: (err: AWSError, data: Amplify.Types.GetWebhookResult) => void): Request; + /** + * Returns the webhook information that corresponds to a specified webhook ID. + */ + getWebhook(callback?: (err: AWSError, data: Amplify.Types.GetWebhookResult) => void): Request; + /** + * Returns a list of the existing Amplify apps. + */ + listApps(params: Amplify.Types.ListAppsRequest, callback?: (err: AWSError, data: Amplify.Types.ListAppsResult) => void): Request; + /** + * Returns a list of the existing Amplify apps. + */ + listApps(callback?: (err: AWSError, data: Amplify.Types.ListAppsResult) => void): Request; + /** + * Returns a list of artifacts for a specified app, branch, and job. + */ + listArtifacts(params: Amplify.Types.ListArtifactsRequest, callback?: (err: AWSError, data: Amplify.Types.ListArtifactsResult) => void): Request; + /** + * Returns a list of artifacts for a specified app, branch, and job. + */ + listArtifacts(callback?: (err: AWSError, data: Amplify.Types.ListArtifactsResult) => void): Request; + /** + * Lists the backend environments for an Amplify app. + */ + listBackendEnvironments(params: Amplify.Types.ListBackendEnvironmentsRequest, callback?: (err: AWSError, data: Amplify.Types.ListBackendEnvironmentsResult) => void): Request; + /** + * Lists the backend environments for an Amplify app. + */ + listBackendEnvironments(callback?: (err: AWSError, data: Amplify.Types.ListBackendEnvironmentsResult) => void): Request; + /** + * Lists the branches of an Amplify app. + */ + listBranches(params: Amplify.Types.ListBranchesRequest, callback?: (err: AWSError, data: Amplify.Types.ListBranchesResult) => void): Request; + /** + * Lists the branches of an Amplify app. + */ + listBranches(callback?: (err: AWSError, data: Amplify.Types.ListBranchesResult) => void): Request; + /** + * Returns the domain associations for an Amplify app. + */ + listDomainAssociations(params: Amplify.Types.ListDomainAssociationsRequest, callback?: (err: AWSError, data: Amplify.Types.ListDomainAssociationsResult) => void): Request; + /** + * Returns the domain associations for an Amplify app. + */ + listDomainAssociations(callback?: (err: AWSError, data: Amplify.Types.ListDomainAssociationsResult) => void): Request; + /** + * Lists the jobs for a branch of an Amplify app. + */ + listJobs(params: Amplify.Types.ListJobsRequest, callback?: (err: AWSError, data: Amplify.Types.ListJobsResult) => void): Request; + /** + * Lists the jobs for a branch of an Amplify app. + */ + listJobs(callback?: (err: AWSError, data: Amplify.Types.ListJobsResult) => void): Request; + /** + * Returns a list of tags for a specified Amazon Resource Name (ARN). + */ + listTagsForResource(params: Amplify.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: Amplify.Types.ListTagsForResourceResponse) => void): Request; + /** + * Returns a list of tags for a specified Amazon Resource Name (ARN). + */ + listTagsForResource(callback?: (err: AWSError, data: Amplify.Types.ListTagsForResourceResponse) => void): Request; + /** + * Returns a list of webhooks for an Amplify app. + */ + listWebhooks(params: Amplify.Types.ListWebhooksRequest, callback?: (err: AWSError, data: Amplify.Types.ListWebhooksResult) => void): Request; + /** + * Returns a list of webhooks for an Amplify app. + */ + listWebhooks(callback?: (err: AWSError, data: Amplify.Types.ListWebhooksResult) => void): Request; + /** + * Starts a deployment for a manually deployed app. Manually deployed apps are not connected to a repository. + */ + startDeployment(params: Amplify.Types.StartDeploymentRequest, callback?: (err: AWSError, data: Amplify.Types.StartDeploymentResult) => void): Request; + /** + * Starts a deployment for a manually deployed app. Manually deployed apps are not connected to a repository. + */ + startDeployment(callback?: (err: AWSError, data: Amplify.Types.StartDeploymentResult) => void): Request; + /** + * Starts a new job for a branch of an Amplify app. + */ + startJob(params: Amplify.Types.StartJobRequest, callback?: (err: AWSError, data: Amplify.Types.StartJobResult) => void): Request; + /** + * Starts a new job for a branch of an Amplify app. + */ + startJob(callback?: (err: AWSError, data: Amplify.Types.StartJobResult) => void): Request; + /** + * Stops a job that is in progress for a branch of an Amplify app. + */ + stopJob(params: Amplify.Types.StopJobRequest, callback?: (err: AWSError, data: Amplify.Types.StopJobResult) => void): Request; + /** + * Stops a job that is in progress for a branch of an Amplify app. + */ + stopJob(callback?: (err: AWSError, data: Amplify.Types.StopJobResult) => void): Request; + /** + * Tags the resource with a tag key and value. + */ + tagResource(params: Amplify.Types.TagResourceRequest, callback?: (err: AWSError, data: Amplify.Types.TagResourceResponse) => void): Request; + /** + * Tags the resource with a tag key and value. + */ + tagResource(callback?: (err: AWSError, data: Amplify.Types.TagResourceResponse) => void): Request; + /** + * Untags a resource with a specified Amazon Resource Name (ARN). + */ + untagResource(params: Amplify.Types.UntagResourceRequest, callback?: (err: AWSError, data: Amplify.Types.UntagResourceResponse) => void): Request; + /** + * Untags a resource with a specified Amazon Resource Name (ARN). + */ + untagResource(callback?: (err: AWSError, data: Amplify.Types.UntagResourceResponse) => void): Request; + /** + * Updates an existing Amplify app. + */ + updateApp(params: Amplify.Types.UpdateAppRequest, callback?: (err: AWSError, data: Amplify.Types.UpdateAppResult) => void): Request; + /** + * Updates an existing Amplify app. + */ + updateApp(callback?: (err: AWSError, data: Amplify.Types.UpdateAppResult) => void): Request; + /** + * Updates a branch for an Amplify app. + */ + updateBranch(params: Amplify.Types.UpdateBranchRequest, callback?: (err: AWSError, data: Amplify.Types.UpdateBranchResult) => void): Request; + /** + * Updates a branch for an Amplify app. + */ + updateBranch(callback?: (err: AWSError, data: Amplify.Types.UpdateBranchResult) => void): Request; + /** + * Creates a new domain association for an Amplify app. + */ + updateDomainAssociation(params: Amplify.Types.UpdateDomainAssociationRequest, callback?: (err: AWSError, data: Amplify.Types.UpdateDomainAssociationResult) => void): Request; + /** + * Creates a new domain association for an Amplify app. + */ + updateDomainAssociation(callback?: (err: AWSError, data: Amplify.Types.UpdateDomainAssociationResult) => void): Request; + /** + * Updates a webhook. + */ + updateWebhook(params: Amplify.Types.UpdateWebhookRequest, callback?: (err: AWSError, data: Amplify.Types.UpdateWebhookResult) => void): Request; + /** + * Updates a webhook. + */ + updateWebhook(callback?: (err: AWSError, data: Amplify.Types.UpdateWebhookResult) => void): Request; +} +declare namespace Amplify { + export type AccessToken = string; + export type ActiveJobId = string; + export interface App { + /** + * The unique ID of the Amplify app. + */ + appId: AppId; + /** + * The Amazon Resource Name (ARN) of the Amplify app. + */ + appArn: AppArn; + /** + * The name for the Amplify app. + */ + name: Name; + /** + * The tag for the Amplify app. + */ + tags?: TagMap; + /** + * The description for the Amplify app. + */ + description: Description; + /** + * The repository for the Amplify app. + */ + repository: Repository; + /** + * The platform for the Amplify app. + */ + platform: Platform; + /** + * Creates a date and time for the Amplify app. + */ + createTime: CreateTime; + /** + * Updates the date and time for the Amplify app. + */ + updateTime: UpdateTime; + /** + * The AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of the Amplify app. + */ + iamServiceRoleArn?: ServiceRoleArn; + /** + * The environment variables for the Amplify app. + */ + environmentVariables: EnvironmentVariables; + /** + * The default domain for the Amplify app. + */ + defaultDomain: DefaultDomain; + /** + * Enables the auto-building of branches for the Amplify app. + */ + enableBranchAutoBuild: EnableBranchAutoBuild; + /** + * Automatically disconnect a branch in the Amplify Console when you delete a branch from your Git repository. + */ + enableBranchAutoDeletion?: EnableBranchAutoDeletion; + /** + * Enables basic authorization for the Amplify app's branches. + */ + enableBasicAuth: EnableBasicAuth; + /** + * The basic authorization credentials for branches for the Amplify app. + */ + basicAuthCredentials?: BasicAuthCredentials; + /** + * Describes the custom redirect and rewrite rules for the Amplify app. + */ + customRules?: CustomRules; + /** + * Describes the information about a production branch of the Amplify app. + */ + productionBranch?: ProductionBranch; + /** + * Describes the content of the build specification (build spec) for the Amplify app. + */ + buildSpec?: BuildSpec; + /** + * Describes the custom HTTP headers for the Amplify app. + */ + customHeaders?: CustomHeaders; + /** + * Enables automated branch creation for the Amplify app. + */ + enableAutoBranchCreation?: EnableAutoBranchCreation; + /** + * Describes the automated branch creation glob patterns for the Amplify app. + */ + autoBranchCreationPatterns?: AutoBranchCreationPatterns; + /** + * Describes the automated branch creation configuration for the Amplify app. + */ + autoBranchCreationConfig?: AutoBranchCreationConfig; + } + export type AppArn = string; + export type AppId = string; + export type Apps = App[]; + export interface Artifact { + /** + * The file name for the artifact. + */ + artifactFileName: ArtifactFileName; + /** + * The unique ID for the artifact. + */ + artifactId: ArtifactId; + } + export type ArtifactFileName = string; + export type ArtifactId = string; + export type ArtifactUrl = string; + export type Artifacts = Artifact[]; + export type ArtifactsUrl = string; + export type AssociatedResource = string; + export type AssociatedResources = AssociatedResource[]; + export interface AutoBranchCreationConfig { + /** + * Describes the current stage for the autocreated branch. + */ + stage?: Stage; + /** + * The framework for the autocreated branch. + */ + framework?: Framework; + /** + * Enables auto building for the autocreated branch. + */ + enableAutoBuild?: EnableAutoBuild; + /** + * The environment variables for the autocreated branch. + */ + environmentVariables?: EnvironmentVariables; + /** + * The basic authorization credentials for the autocreated branch. + */ + basicAuthCredentials?: BasicAuthCredentials; + /** + * Enables basic authorization for the autocreated branch. + */ + enableBasicAuth?: EnableBasicAuth; + /** + * Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. + */ + enablePerformanceMode?: EnablePerformanceMode; + /** + * The build specification (build spec) for the autocreated branch. + */ + buildSpec?: BuildSpec; + /** + * Enables pull request previews for the autocreated branch. + */ + enablePullRequestPreview?: EnablePullRequestPreview; + /** + * The Amplify environment name for the pull request. + */ + pullRequestEnvironmentName?: PullRequestEnvironmentName; + } + export type AutoBranchCreationPattern = string; + export type AutoBranchCreationPatterns = AutoBranchCreationPattern[]; + export type AutoSubDomainCreationPattern = string; + export type AutoSubDomainCreationPatterns = AutoSubDomainCreationPattern[]; + export type AutoSubDomainIAMRole = string; + export interface BackendEnvironment { + /** + * The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. + */ + backendEnvironmentArn: BackendEnvironmentArn; + /** + * The name for a backend environment that is part of an Amplify app. + */ + environmentName: EnvironmentName; + /** + * The AWS CloudFormation stack name of a backend environment. + */ + stackName?: StackName; + /** + * The name of deployment artifacts. + */ + deploymentArtifacts?: DeploymentArtifacts; + /** + * The creation date and time for a backend environment that is part of an Amplify app. + */ + createTime: CreateTime; + /** + * The last updated date and time for a backend environment that is part of an Amplify app. + */ + updateTime: UpdateTime; + } + export type BackendEnvironmentArn = string; + export type BackendEnvironments = BackendEnvironment[]; + export type BasicAuthCredentials = string; + export interface Branch { + /** + * The Amazon Resource Name (ARN) for a branch that is part of an Amplify app. + */ + branchArn: BranchArn; + /** + * The name for the branch that is part of an Amplify app. + */ + branchName: BranchName; + /** + * The description for the branch that is part of an Amplify app. + */ + description: Description; + /** + * The tag for the branch of an Amplify app. + */ + tags?: TagMap; + /** + * The current stage for the branch that is part of an Amplify app. + */ + stage: Stage; + /** + * The display name for the branch. This is used as the default domain prefix. + */ + displayName: DisplayName; + /** + * Enables notifications for a branch that is part of an Amplify app. + */ + enableNotification: EnableNotification; + /** + * The creation date and time for a branch that is part of an Amplify app. + */ + createTime: CreateTime; + /** + * The last updated date and time for a branch that is part of an Amplify app. + */ + updateTime: UpdateTime; + /** + * The environment variables specific to a branch of an Amplify app. + */ + environmentVariables: EnvironmentVariables; + /** + * Enables auto-building on push for a branch of an Amplify app. + */ + enableAutoBuild: EnableAutoBuild; + /** + * The custom domains for a branch of an Amplify app. + */ + customDomains: CustomDomains; + /** + * The framework for a branch of an Amplify app. + */ + framework: Framework; + /** + * The ID of the active job for a branch of an Amplify app. + */ + activeJobId: ActiveJobId; + /** + * The total number of jobs that are part of an Amplify app. + */ + totalNumberOfJobs: TotalNumberOfJobs; + /** + * Enables basic authorization for a branch of an Amplify app. + */ + enableBasicAuth: EnableBasicAuth; + /** + * Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. + */ + enablePerformanceMode?: EnablePerformanceMode; + /** + * The thumbnail URL for the branch of an Amplify app. + */ + thumbnailUrl?: ThumbnailUrl; + /** + * The basic authorization credentials for a branch of an Amplify app. + */ + basicAuthCredentials?: BasicAuthCredentials; + /** + * The build specification (build spec) content for the branch of an Amplify app. + */ + buildSpec?: BuildSpec; + /** + * The content Time to Live (TTL) for the website in seconds. + */ + ttl: TTL; + /** + * A list of custom resources that are linked to this branch. + */ + associatedResources?: AssociatedResources; + /** + * Enables pull request previews for the branch. + */ + enablePullRequestPreview: EnablePullRequestPreview; + /** + * The Amplify environment name for the pull request. + */ + pullRequestEnvironmentName?: PullRequestEnvironmentName; + /** + * The destination branch if the branch is a pull request branch. + */ + destinationBranch?: BranchName; + /** + * The source branch if the branch is a pull request branch. + */ + sourceBranch?: BranchName; + /** + * The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. + */ + backendEnvironmentArn?: BackendEnvironmentArn; + } + export type BranchArn = string; + export type BranchName = string; + export type Branches = Branch[]; + export type BuildSpec = string; + export type CertificateVerificationDNSRecord = string; + export type CommitId = string; + export type CommitMessage = string; + export type CommitTime = Date; + export type Condition = string; + export type Context = string; + export interface CreateAppRequest { + /** + * The name for an Amplify app. + */ + name: Name; + /** + * The description for an Amplify app. + */ + description?: Description; + /** + * The repository for an Amplify app. + */ + repository?: Repository; + /** + * The platform or framework for an Amplify app. + */ + platform?: Platform; + /** + * The AWS Identity and Access Management (IAM) service role for an Amplify app. + */ + iamServiceRoleArn?: ServiceRoleArn; + /** + * The OAuth token for a third-party source control system for an Amplify app. The OAuth token is used to create a webhook and a read-only deploy key. The OAuth token is not stored. + */ + oauthToken?: OauthToken; + /** + * The personal access token for a third-party source control system for an Amplify app. The personal access token is used to create a webhook and a read-only deploy key. The token is not stored. + */ + accessToken?: AccessToken; + /** + * The environment variables map for an Amplify app. + */ + environmentVariables?: EnvironmentVariables; + /** + * Enables the auto building of branches for an Amplify app. + */ + enableBranchAutoBuild?: EnableBranchAutoBuild; + /** + * Automatically disconnects a branch in the Amplify Console when you delete a branch from your Git repository. + */ + enableBranchAutoDeletion?: EnableBranchAutoDeletion; + /** + * Enables basic authorization for an Amplify app. This will apply to all branches that are part of this app. + */ + enableBasicAuth?: EnableBasicAuth; + /** + * The credentials for basic authorization for an Amplify app. + */ + basicAuthCredentials?: BasicAuthCredentials; + /** + * The custom rewrite and redirect rules for an Amplify app. + */ + customRules?: CustomRules; + /** + * The tag for an Amplify app. + */ + tags?: TagMap; + /** + * The build specification (build spec) for an Amplify app. + */ + buildSpec?: BuildSpec; + /** + * The custom HTTP headers for an Amplify app. + */ + customHeaders?: CustomHeaders; + /** + * Enables automated branch creation for an Amplify app. + */ + enableAutoBranchCreation?: EnableAutoBranchCreation; + /** + * The automated branch creation glob patterns for an Amplify app. + */ + autoBranchCreationPatterns?: AutoBranchCreationPatterns; + /** + * The automated branch creation configuration for an Amplify app. + */ + autoBranchCreationConfig?: AutoBranchCreationConfig; + } + export interface CreateAppResult { + app: App; + } + export interface CreateBackendEnvironmentRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the backend environment. + */ + environmentName: EnvironmentName; + /** + * The AWS CloudFormation stack name of a backend environment. + */ + stackName?: StackName; + /** + * The name of deployment artifacts. + */ + deploymentArtifacts?: DeploymentArtifacts; + } + export interface CreateBackendEnvironmentResult { + /** + * Describes the backend environment for an Amplify app. + */ + backendEnvironment: BackendEnvironment; + } + export interface CreateBranchRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch. + */ + branchName: BranchName; + /** + * The description for the branch. + */ + description?: Description; + /** + * Describes the current stage for the branch. + */ + stage?: Stage; + /** + * The framework for the branch. + */ + framework?: Framework; + /** + * Enables notifications for the branch. + */ + enableNotification?: EnableNotification; + /** + * Enables auto building for the branch. + */ + enableAutoBuild?: EnableAutoBuild; + /** + * The environment variables for the branch. + */ + environmentVariables?: EnvironmentVariables; + /** + * The basic authorization credentials for the branch. + */ + basicAuthCredentials?: BasicAuthCredentials; + /** + * Enables basic authorization for the branch. + */ + enableBasicAuth?: EnableBasicAuth; + /** + * Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. + */ + enablePerformanceMode?: EnablePerformanceMode; + /** + * The tag for the branch. + */ + tags?: TagMap; + /** + * The build specification (build spec) for the branch. + */ + buildSpec?: BuildSpec; + /** + * The content Time To Live (TTL) for the website in seconds. + */ + ttl?: TTL; + /** + * The display name for a branch. This is used as the default domain prefix. + */ + displayName?: DisplayName; + /** + * Enables pull request previews for this branch. + */ + enablePullRequestPreview?: EnablePullRequestPreview; + /** + * The Amplify environment name for the pull request. + */ + pullRequestEnvironmentName?: PullRequestEnvironmentName; + /** + * The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. + */ + backendEnvironmentArn?: BackendEnvironmentArn; + } + export interface CreateBranchResult { + /** + * Describes the branch for an Amplify app, which maps to a third-party repository branch. + */ + branch: Branch; + } + export interface CreateDeploymentRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch, for the job. + */ + branchName: BranchName; + /** + * An optional file map that contains the file name as the key and the file content md5 hash as the value. If this argument is provided, the service will generate a unique upload URL per file. Otherwise, the service will only generate a single upload URL for the zipped files. + */ + fileMap?: FileMap; + } + export interface CreateDeploymentResult { + /** + * The job ID for this deployment. will supply to start deployment api. + */ + jobId?: JobId; + /** + * When the fileMap argument is provided in the request, fileUploadUrls will contain a map of file names to upload URLs. + */ + fileUploadUrls: FileUploadUrls; + /** + * When the fileMap argument is not provided in the request, this zipUploadUrl is returned. + */ + zipUploadUrl: UploadUrl; + } + export interface CreateDomainAssociationRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The domain name for the domain association. + */ + domainName: DomainName; + /** + * Enables the automated creation of subdomains for branches. + */ + enableAutoSubDomain?: EnableAutoSubDomain; + /** + * The setting for the subdomain. + */ + subDomainSettings: SubDomainSettings; + /** + * Sets the branch patterns for automatic subdomain creation. + */ + autoSubDomainCreationPatterns?: AutoSubDomainCreationPatterns; + /** + * The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. + */ + autoSubDomainIAMRole?: AutoSubDomainIAMRole; + } + export interface CreateDomainAssociationResult { + /** + * Describes the structure of a domain association, which associates a custom domain with an Amplify app. + */ + domainAssociation: DomainAssociation; + } + export type CreateTime = Date; + export interface CreateWebhookRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for a branch that is part of an Amplify app. + */ + branchName: BranchName; + /** + * The description for a webhook. + */ + description?: Description; + } + export interface CreateWebhookResult { + /** + * Describes a webhook that connects repository events to an Amplify app. + */ + webhook: Webhook; + } + export type CustomDomain = string; + export type CustomDomains = CustomDomain[]; + export type CustomHeaders = string; + export interface CustomRule { + /** + * The source pattern for a URL rewrite or redirect rule. + */ + source: Source; + /** + * The target pattern for a URL rewrite or redirect rule. + */ + target: Target; + /** + * The status code for a URL rewrite or redirect rule. 200 Represents a 200 rewrite rule. 301 Represents a 301 (moved pemanently) redirect rule. This and all future requests should be directed to the target URL. 302 Represents a 302 temporary redirect rule. 404 Represents a 404 redirect rule. 404-200 Represents a 404 rewrite rule. + */ + status?: Status; + /** + * The condition for a URL rewrite or redirect rule, such as a country code. + */ + condition?: Condition; + } + export type CustomRules = CustomRule[]; + export type DNSRecord = string; + export type DefaultDomain = string; + export interface DeleteAppRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + } + export interface DeleteAppResult { + app: App; + } + export interface DeleteBackendEnvironmentRequest { + /** + * The unique ID of an Amplify app. + */ + appId: AppId; + /** + * The name of a backend environment of an Amplify app. + */ + environmentName: EnvironmentName; + } + export interface DeleteBackendEnvironmentResult { + /** + * Describes the backend environment for an Amplify app. + */ + backendEnvironment: BackendEnvironment; + } + export interface DeleteBranchRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch. + */ + branchName: BranchName; + } + export interface DeleteBranchResult { + /** + * The branch for an Amplify app, which maps to a third-party repository branch. + */ + branch: Branch; + } + export interface DeleteDomainAssociationRequest { + /** + * The unique id for an Amplify app. + */ + appId: AppId; + /** + * The name of the domain. + */ + domainName: DomainName; + } + export interface DeleteDomainAssociationResult { + domainAssociation: DomainAssociation; + } + export interface DeleteJobRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch, for the job. + */ + branchName: BranchName; + /** + * The unique ID for the job. + */ + jobId: JobId; + } + export interface DeleteJobResult { + jobSummary: JobSummary; + } + export interface DeleteWebhookRequest { + /** + * The unique ID for a webhook. + */ + webhookId: WebhookId; + } + export interface DeleteWebhookResult { + /** + * Describes a webhook that connects repository events to an Amplify app. + */ + webhook: Webhook; + } + export type DeploymentArtifacts = string; + export type Description = string; + export type DisplayName = string; + export interface DomainAssociation { + /** + * The Amazon Resource Name (ARN) for the domain association. + */ + domainAssociationArn: DomainAssociationArn; + /** + * The name of the domain. + */ + domainName: DomainName; + /** + * Enables the automated creation of subdomains for branches. + */ + enableAutoSubDomain: EnableAutoSubDomain; + /** + * Sets branch patterns for automatic subdomain creation. + */ + autoSubDomainCreationPatterns?: AutoSubDomainCreationPatterns; + /** + * The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. + */ + autoSubDomainIAMRole?: AutoSubDomainIAMRole; + /** + * The current status of the domain association. + */ + domainStatus: DomainStatus; + /** + * The reason for the current status of the domain association. + */ + statusReason: StatusReason; + /** + * The DNS record for certificate verification. + */ + certificateVerificationDNSRecord?: CertificateVerificationDNSRecord; + /** + * The subdomains for the domain association. + */ + subDomains: SubDomains; + } + export type DomainAssociationArn = string; + export type DomainAssociations = DomainAssociation[]; + export type DomainName = string; + export type DomainPrefix = string; + export type DomainStatus = "PENDING_VERIFICATION"|"IN_PROGRESS"|"AVAILABLE"|"PENDING_DEPLOYMENT"|"FAILED"|"CREATING"|"REQUESTING_CERTIFICATE"|"UPDATING"|string; + export type EnableAutoBranchCreation = boolean; + export type EnableAutoBuild = boolean; + export type EnableAutoSubDomain = boolean; + export type EnableBasicAuth = boolean; + export type EnableBranchAutoBuild = boolean; + export type EnableBranchAutoDeletion = boolean; + export type EnableNotification = boolean; + export type EnablePerformanceMode = boolean; + export type EnablePullRequestPreview = boolean; + export type EndTime = Date; + export type EnvKey = string; + export type EnvValue = string; + export type EnvironmentName = string; + export type EnvironmentVariables = {[key: string]: EnvValue}; + export type FileMap = {[key: string]: MD5Hash}; + export type FileName = string; + export type FileUploadUrls = {[key: string]: UploadUrl}; + export type Framework = string; + export interface GenerateAccessLogsRequest { + /** + * The time at which the logs should start. The time range specified is inclusive of the start time. + */ + startTime?: StartTime; + /** + * The time at which the logs should end. The time range specified is inclusive of the end time. + */ + endTime?: EndTime; + /** + * The name of the domain. + */ + domainName: DomainName; + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + } + export interface GenerateAccessLogsResult { + /** + * The pre-signed URL for the requested access logs. + */ + logUrl?: LogUrl; + } + export interface GetAppRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + } + export interface GetAppResult { + app: App; + } + export interface GetArtifactUrlRequest { + /** + * The unique ID for an artifact. + */ + artifactId: ArtifactId; + } + export interface GetArtifactUrlResult { + /** + * The unique ID for an artifact. + */ + artifactId: ArtifactId; + /** + * The presigned URL for the artifact. + */ + artifactUrl: ArtifactUrl; + } + export interface GetBackendEnvironmentRequest { + /** + * The unique id for an Amplify app. + */ + appId: AppId; + /** + * The name for the backend environment. + */ + environmentName: EnvironmentName; + } + export interface GetBackendEnvironmentResult { + /** + * Describes the backend environment for an Amplify app. + */ + backendEnvironment: BackendEnvironment; + } + export interface GetBranchRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch. + */ + branchName: BranchName; + } + export interface GetBranchResult { + branch: Branch; + } + export interface GetDomainAssociationRequest { + /** + * The unique id for an Amplify app. + */ + appId: AppId; + /** + * The name of the domain. + */ + domainName: DomainName; + } + export interface GetDomainAssociationResult { + /** + * Describes the structure of a domain association, which associates a custom domain with an Amplify app. + */ + domainAssociation: DomainAssociation; + } + export interface GetJobRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The branch name for the job. + */ + branchName: BranchName; + /** + * The unique ID for the job. + */ + jobId: JobId; + } + export interface GetJobResult { + job: Job; + } + export interface GetWebhookRequest { + /** + * The unique ID for a webhook. + */ + webhookId: WebhookId; + } + export interface GetWebhookResult { + /** + * Describes the structure of a webhook. + */ + webhook: Webhook; + } + export interface Job { + /** + * Describes the summary for an execution job for an Amplify app. + */ + summary: JobSummary; + /** + * The execution steps for an execution job, for an Amplify app. + */ + steps: Steps; + } + export type JobArn = string; + export type JobId = string; + export type JobReason = string; + export type JobStatus = "PENDING"|"PROVISIONING"|"RUNNING"|"FAILED"|"SUCCEED"|"CANCELLING"|"CANCELLED"|string; + export type JobSummaries = JobSummary[]; + export interface JobSummary { + /** + * The Amazon Resource Name (ARN) for the job. + */ + jobArn: JobArn; + /** + * The unique ID for the job. + */ + jobId: JobId; + /** + * The commit ID from a third-party repository provider for the job. + */ + commitId: CommitId; + /** + * The commit message from a third-party repository provider for the job. + */ + commitMessage: CommitMessage; + /** + * The commit date and time for the job. + */ + commitTime: CommitTime; + /** + * The start date and time for the job. + */ + startTime: StartTime; + /** + * The current status for the job. + */ + status: JobStatus; + /** + * The end date and time for the job. + */ + endTime?: EndTime; + /** + * The type for the job. If the value is RELEASE, the job was manually released from its source by using the StartJob API. If the value is RETRY, the job was manually retried using the StartJob API. If the value is WEB_HOOK, the job was automatically triggered by webhooks. + */ + jobType: JobType; + } + export type JobType = "RELEASE"|"RETRY"|"MANUAL"|"WEB_HOOK"|string; + export type LastDeployTime = Date; + export interface ListAppsRequest { + /** + * A pagination token. If non-null, the pagination token is returned in a result. Pass its value in another request to retrieve more entries. + */ + nextToken?: NextToken; + /** + * The maximum number of records to list in a single response. + */ + maxResults?: MaxResults; + } + export interface ListAppsResult { + /** + * A list of Amplify apps. + */ + apps: Apps; + /** + * A pagination token. Set to null to start listing apps from start. If non-null, the pagination token is returned in a result. Pass its value in here to list more projects. + */ + nextToken?: NextToken; + } + export interface ListArtifactsRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name of a branch that is part of an Amplify app. + */ + branchName: BranchName; + /** + * The unique ID for a job. + */ + jobId: JobId; + /** + * A pagination token. Set to null to start listing artifacts from start. If a non-null pagination token is returned in a result, pass its value in here to list more artifacts. + */ + nextToken?: NextToken; + /** + * The maximum number of records to list in a single response. + */ + maxResults?: MaxResults; + } + export interface ListArtifactsResult { + /** + * A list of artifacts. + */ + artifacts: Artifacts; + /** + * A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + */ + nextToken?: NextToken; + } + export interface ListBackendEnvironmentsRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name of the backend environment + */ + environmentName?: EnvironmentName; + /** + * A pagination token. Set to null to start listing backend environments from the start. If a non-null pagination token is returned in a result, pass its value in here to list more backend environments. + */ + nextToken?: NextToken; + /** + * The maximum number of records to list in a single response. + */ + maxResults?: MaxResults; + } + export interface ListBackendEnvironmentsResult { + /** + * The list of backend environments for an Amplify app. + */ + backendEnvironments: BackendEnvironments; + /** + * A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + */ + nextToken?: NextToken; + } + export interface ListBranchesRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * A pagination token. Set to null to start listing branches from the start. If a non-null pagination token is returned in a result, pass its value in here to list more branches. + */ + nextToken?: NextToken; + /** + * The maximum number of records to list in a single response. + */ + maxResults?: MaxResults; + } + export interface ListBranchesResult { + /** + * A list of branches for an Amplify app. + */ + branches: Branches; + /** + * A pagination token. If a non-null pagination token is returned in a result, pass its value in another request to retrieve more entries. + */ + nextToken?: NextToken; + } + export interface ListDomainAssociationsRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * A pagination token. Set to null to start listing apps from the start. If non-null, a pagination token is returned in a result. Pass its value in here to list more projects. + */ + nextToken?: NextToken; + /** + * The maximum number of records to list in a single response. + */ + maxResults?: MaxResults; + } + export interface ListDomainAssociationsResult { + /** + * A list of domain associations. + */ + domainAssociations: DomainAssociations; + /** + * A pagination token. If non-null, a pagination token is returned in a result. Pass its value in another request to retrieve more entries. + */ + nextToken?: NextToken; + } + export interface ListJobsRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for a branch. + */ + branchName: BranchName; + /** + * A pagination token. Set to null to start listing steps from the start. If a non-null pagination token is returned in a result, pass its value in here to list more steps. + */ + nextToken?: NextToken; + /** + * The maximum number of records to list in a single response. + */ + maxResults?: MaxResults; + } + export interface ListJobsResult { + /** + * The result structure for the list job result request. + */ + jobSummaries: JobSummaries; + /** + * A pagination token. If non-null the pagination token is returned in a result. Pass its value in another request to retrieve more entries. + */ + nextToken?: NextToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) to use to list tags. + */ + resourceArn: ResourceArn; + } + export interface ListTagsForResourceResponse { + /** + * A list of tags for the specified The Amazon Resource Name (ARN). + */ + tags?: TagMap; + } + export interface ListWebhooksRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * A pagination token. Set to null to start listing webhooks from the start. If non-null,the pagination token is returned in a result. Pass its value in here to list more webhooks. + */ + nextToken?: NextToken; + /** + * The maximum number of records to list in a single response. + */ + maxResults?: MaxResults; + } + export interface ListWebhooksResult { + /** + * A list of webhooks. + */ + webhooks: Webhooks; + /** + * A pagination token. If non-null, the pagination token is returned in a result. Pass its value in another request to retrieve more entries. + */ + nextToken?: NextToken; + } + export type LogUrl = string; + export type MD5Hash = string; + export type MaxResults = number; + export type Name = string; + export type NextToken = string; + export type OauthToken = string; + export type Platform = "WEB"|string; + export interface ProductionBranch { + /** + * The last deploy time of the production branch. + */ + lastDeployTime?: LastDeployTime; + /** + * The status of the production branch. + */ + status?: Status; + /** + * The thumbnail URL for the production branch. + */ + thumbnailUrl?: ThumbnailUrl; + /** + * The branch name for the production branch. + */ + branchName?: BranchName; + } + export type PullRequestEnvironmentName = string; + export type Repository = string; + export type ResourceArn = string; + export type Screenshots = {[key: string]: ThumbnailUrl}; + export type ServiceRoleArn = string; + export type Source = string; + export type SourceUrl = string; + export type StackName = string; + export type Stage = "PRODUCTION"|"BETA"|"DEVELOPMENT"|"EXPERIMENTAL"|"PULL_REQUEST"|string; + export interface StartDeploymentRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch, for the job. + */ + branchName: BranchName; + /** + * The job ID for this deployment, generated by the create deployment request. + */ + jobId?: JobId; + /** + * The source URL for this deployment, used when calling start deployment without create deployment. The source URL can be any HTTP GET URL that is publicly accessible and downloads a single .zip file. + */ + sourceUrl?: SourceUrl; + } + export interface StartDeploymentResult { + /** + * The summary for the job. + */ + jobSummary: JobSummary; + } + export interface StartJobRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The branch name for the job. + */ + branchName: BranchName; + /** + * The unique ID for an existing job. This is required if the value of jobType is RETRY. + */ + jobId?: JobId; + /** + * Describes the type for the job. The job type RELEASE starts a new job with the latest change from the specified branch. This value is available only for apps that are connected to a repository. The job type RETRY retries an existing job. If the job type value is RETRY, the jobId is also required. + */ + jobType: JobType; + /** + * A descriptive reason for starting this job. + */ + jobReason?: JobReason; + /** + * The commit ID from a third-party repository provider for the job. + */ + commitId?: CommitId; + /** + * The commit message from a third-party repository provider for the job. + */ + commitMessage?: CommitMessage; + /** + * The commit date and time for the job. + */ + commitTime?: CommitTime; + } + export interface StartJobResult { + /** + * The summary for the job. + */ + jobSummary: JobSummary; + } + export type StartTime = Date; + export type Status = string; + export type StatusReason = string; + export interface Step { + /** + * The name of the execution step. + */ + stepName: StepName; + /** + * The start date and time of the execution step. + */ + startTime: StartTime; + /** + * The status of the execution step. + */ + status: JobStatus; + /** + * The end date and time of the execution step. + */ + endTime: EndTime; + /** + * The URL to the logs for the execution step. + */ + logUrl?: LogUrl; + /** + * The URL to the artifact for the execution step. + */ + artifactsUrl?: ArtifactsUrl; + /** + * The URL to the test artifact for the execution step. + */ + testArtifactsUrl?: TestArtifactsUrl; + /** + * The URL to the test configuration for the execution step. + */ + testConfigUrl?: TestConfigUrl; + /** + * The list of screenshot URLs for the execution step, if relevant. + */ + screenshots?: Screenshots; + /** + * The reason for the current step status. + */ + statusReason?: StatusReason; + /** + * The context for the current step. Includes a build image if the step is build. + */ + context?: Context; + } + export type StepName = string; + export type Steps = Step[]; + export interface StopJobRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch, for the job. + */ + branchName: BranchName; + /** + * The unique id for the job. + */ + jobId: JobId; + } + export interface StopJobResult { + /** + * The summary for the job. + */ + jobSummary: JobSummary; + } + export interface SubDomain { + /** + * Describes the settings for the subdomain. + */ + subDomainSetting: SubDomainSetting; + /** + * The verified status of the subdomain + */ + verified: Verified; + /** + * The DNS record for the subdomain. + */ + dnsRecord: DNSRecord; + } + export interface SubDomainSetting { + /** + * The prefix setting for the subdomain. + */ + prefix: DomainPrefix; + /** + * The branch name setting for the subdomain. + */ + branchName: BranchName; + } + export type SubDomainSettings = SubDomainSetting[]; + export type SubDomains = SubDomain[]; + export type TTL = string; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagMap = {[key: string]: TagValue}; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) to use to tag a resource. + */ + resourceArn: ResourceArn; + /** + * The tags used to tag the resource. + */ + tags: TagMap; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type Target = string; + export type TestArtifactsUrl = string; + export type TestConfigUrl = string; + export type ThumbnailName = string; + export type ThumbnailUrl = string; + export type TotalNumberOfJobs = string; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) to use to untag a resource. + */ + resourceArn: ResourceArn; + /** + * The tag keys to use to untag a resource. + */ + tagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateAppRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for an Amplify app. + */ + name?: Name; + /** + * The description for an Amplify app. + */ + description?: Description; + /** + * The platform for an Amplify app. + */ + platform?: Platform; + /** + * The AWS Identity and Access Management (IAM) service role for an Amplify app. + */ + iamServiceRoleArn?: ServiceRoleArn; + /** + * The environment variables for an Amplify app. + */ + environmentVariables?: EnvironmentVariables; + /** + * Enables branch auto-building for an Amplify app. + */ + enableBranchAutoBuild?: EnableAutoBuild; + /** + * Automatically disconnects a branch in the Amplify Console when you delete a branch from your Git repository. + */ + enableBranchAutoDeletion?: EnableBranchAutoDeletion; + /** + * Enables basic authorization for an Amplify app. + */ + enableBasicAuth?: EnableBasicAuth; + /** + * The basic authorization credentials for an Amplify app. + */ + basicAuthCredentials?: BasicAuthCredentials; + /** + * The custom redirect and rewrite rules for an Amplify app. + */ + customRules?: CustomRules; + /** + * The build specification (build spec) for an Amplify app. + */ + buildSpec?: BuildSpec; + /** + * The custom HTTP headers for an Amplify app. + */ + customHeaders?: CustomHeaders; + /** + * Enables automated branch creation for an Amplify app. + */ + enableAutoBranchCreation?: EnableAutoBranchCreation; + /** + * Describes the automated branch creation glob patterns for an Amplify app. + */ + autoBranchCreationPatterns?: AutoBranchCreationPatterns; + /** + * The automated branch creation configuration for an Amplify app. + */ + autoBranchCreationConfig?: AutoBranchCreationConfig; + /** + * The name of the repository for an Amplify app + */ + repository?: Repository; + /** + * The OAuth token for a third-party source control system for an Amplify app. The token is used to create a webhook and a read-only deploy key. The OAuth token is not stored. + */ + oauthToken?: OauthToken; + /** + * The personal access token for a third-party source control system for an Amplify app. The token is used to create webhook and a read-only deploy key. The token is not stored. + */ + accessToken?: AccessToken; + } + export interface UpdateAppResult { + /** + * Represents the updated Amplify app. + */ + app: App; + } + export interface UpdateBranchRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name for the branch. + */ + branchName: BranchName; + /** + * The description for the branch. + */ + description?: Description; + /** + * The framework for the branch. + */ + framework?: Framework; + /** + * Describes the current stage for the branch. + */ + stage?: Stage; + /** + * Enables notifications for the branch. + */ + enableNotification?: EnableNotification; + /** + * Enables auto building for the branch. + */ + enableAutoBuild?: EnableAutoBuild; + /** + * The environment variables for the branch. + */ + environmentVariables?: EnvironmentVariables; + /** + * The basic authorization credentials for the branch. + */ + basicAuthCredentials?: BasicAuthCredentials; + /** + * Enables basic authorization for the branch. + */ + enableBasicAuth?: EnableBasicAuth; + /** + * Enables performance mode for the branch. Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out. + */ + enablePerformanceMode?: EnablePerformanceMode; + /** + * The build specification (build spec) for the branch. + */ + buildSpec?: BuildSpec; + /** + * The content Time to Live (TTL) for the website in seconds. + */ + ttl?: TTL; + /** + * The display name for a branch. This is used as the default domain prefix. + */ + displayName?: DisplayName; + /** + * Enables pull request previews for this branch. + */ + enablePullRequestPreview?: EnablePullRequestPreview; + /** + * The Amplify environment name for the pull request. + */ + pullRequestEnvironmentName?: PullRequestEnvironmentName; + /** + * The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app. + */ + backendEnvironmentArn?: BackendEnvironmentArn; + } + export interface UpdateBranchResult { + /** + * The branch for an Amplify app, which maps to a third-party repository branch. + */ + branch: Branch; + } + export interface UpdateDomainAssociationRequest { + /** + * The unique ID for an Amplify app. + */ + appId: AppId; + /** + * The name of the domain. + */ + domainName: DomainName; + /** + * Enables the automated creation of subdomains for branches. + */ + enableAutoSubDomain?: EnableAutoSubDomain; + /** + * Describes the settings for the subdomain. + */ + subDomainSettings: SubDomainSettings; + /** + * Sets the branch patterns for automatic subdomain creation. + */ + autoSubDomainCreationPatterns?: AutoSubDomainCreationPatterns; + /** + * The required AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) for automatically creating subdomains. + */ + autoSubDomainIAMRole?: AutoSubDomainIAMRole; + } + export interface UpdateDomainAssociationResult { + /** + * Describes a domain association, which associates a custom domain with an Amplify app. + */ + domainAssociation: DomainAssociation; + } + export type UpdateTime = Date; + export interface UpdateWebhookRequest { + /** + * The unique ID for a webhook. + */ + webhookId: WebhookId; + /** + * The name for a branch that is part of an Amplify app. + */ + branchName?: BranchName; + /** + * The description for a webhook. + */ + description?: Description; + } + export interface UpdateWebhookResult { + /** + * Describes a webhook that connects repository events to an Amplify app. + */ + webhook: Webhook; + } + export type UploadUrl = string; + export type Verified = boolean; + export interface Webhook { + /** + * The Amazon Resource Name (ARN) for the webhook. + */ + webhookArn: WebhookArn; + /** + * The ID of the webhook. + */ + webhookId: WebhookId; + /** + * The URL of the webhook. + */ + webhookUrl: WebhookUrl; + /** + * The name for a branch that is part of an Amplify app. + */ + branchName: BranchName; + /** + * The description for a webhook. + */ + description: Description; + /** + * The create date and time for a webhook. + */ + createTime: CreateTime; + /** + * Updates the date and time for a webhook. + */ + updateTime: UpdateTime; + } + export type WebhookArn = string; + export type WebhookId = string; + export type WebhookUrl = string; + export type Webhooks = Webhook[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-07-25"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Amplify client. + */ + export import Types = Amplify; +} +export = Amplify; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/amplify.js b/justdanceonline-main/node_modules/aws-sdk/clients/amplify.js new file mode 100644 index 0000000000000000000000000000000000000000..93cf9f290d2b53fb02f7a6ce6eaa1e785d732670 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/amplify.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['amplify'] = {}; +AWS.Amplify = Service.defineService('amplify', ['2017-07-25']); +Object.defineProperty(apiLoader.services['amplify'], '2017-07-25', { + get: function get() { + var model = require('../apis/amplify-2017-07-25.min.json'); + model.paginators = require('../apis/amplify-2017-07-25.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Amplify; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/amplifybackend.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/amplifybackend.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..3b3f3d46095d5c2473aded2104963cb20fb5d9c4 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/amplifybackend.d.ts @@ -0,0 +1,1511 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AmplifyBackend extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AmplifyBackend.Types.ClientConfiguration) + config: Config & AmplifyBackend.Types.ClientConfiguration; + /** + * This operation clones an existing backend. + */ + cloneBackend(params: AmplifyBackend.Types.CloneBackendRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.CloneBackendResponse) => void): Request; + /** + * This operation clones an existing backend. + */ + cloneBackend(callback?: (err: AWSError, data: AmplifyBackend.Types.CloneBackendResponse) => void): Request; + /** + * This operation creates a backend for an Amplify app. Backends are automatically created at the time of app creation. + */ + createBackend(params: AmplifyBackend.Types.CreateBackendRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendResponse) => void): Request; + /** + * This operation creates a backend for an Amplify app. Backends are automatically created at the time of app creation. + */ + createBackend(callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendResponse) => void): Request; + /** + * Creates a new backend API resource. + */ + createBackendAPI(params: AmplifyBackend.Types.CreateBackendAPIRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendAPIResponse) => void): Request; + /** + * Creates a new backend API resource. + */ + createBackendAPI(callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendAPIResponse) => void): Request; + /** + * Creates a new backend authentication resource. + */ + createBackendAuth(params: AmplifyBackend.Types.CreateBackendAuthRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendAuthResponse) => void): Request; + /** + * Creates a new backend authentication resource. + */ + createBackendAuth(callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendAuthResponse) => void): Request; + /** + * Creates a config object for a backend. + */ + createBackendConfig(params: AmplifyBackend.Types.CreateBackendConfigRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendConfigResponse) => void): Request; + /** + * Creates a config object for a backend. + */ + createBackendConfig(callback?: (err: AWSError, data: AmplifyBackend.Types.CreateBackendConfigResponse) => void): Request; + /** + * Generates a one-time challenge code to authenticate a user into your Amplify Admin UI. + */ + createToken(params: AmplifyBackend.Types.CreateTokenRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.CreateTokenResponse) => void): Request; + /** + * Generates a one-time challenge code to authenticate a user into your Amplify Admin UI. + */ + createToken(callback?: (err: AWSError, data: AmplifyBackend.Types.CreateTokenResponse) => void): Request; + /** + * Removes an existing environment from your Amplify project. + */ + deleteBackend(params: AmplifyBackend.Types.DeleteBackendRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteBackendResponse) => void): Request; + /** + * Removes an existing environment from your Amplify project. + */ + deleteBackend(callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteBackendResponse) => void): Request; + /** + * Deletes an existing backend API resource. + */ + deleteBackendAPI(params: AmplifyBackend.Types.DeleteBackendAPIRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteBackendAPIResponse) => void): Request; + /** + * Deletes an existing backend API resource. + */ + deleteBackendAPI(callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteBackendAPIResponse) => void): Request; + /** + * Deletes an existing backend authentication resource. + */ + deleteBackendAuth(params: AmplifyBackend.Types.DeleteBackendAuthRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteBackendAuthResponse) => void): Request; + /** + * Deletes an existing backend authentication resource. + */ + deleteBackendAuth(callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteBackendAuthResponse) => void): Request; + /** + * Deletes the challenge token based on the given appId and sessionId. + */ + deleteToken(params: AmplifyBackend.Types.DeleteTokenRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteTokenResponse) => void): Request; + /** + * Deletes the challenge token based on the given appId and sessionId. + */ + deleteToken(callback?: (err: AWSError, data: AmplifyBackend.Types.DeleteTokenResponse) => void): Request; + /** + * Generates a model schema for an existing backend API resource. + */ + generateBackendAPIModels(params: AmplifyBackend.Types.GenerateBackendAPIModelsRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.GenerateBackendAPIModelsResponse) => void): Request; + /** + * Generates a model schema for an existing backend API resource. + */ + generateBackendAPIModels(callback?: (err: AWSError, data: AmplifyBackend.Types.GenerateBackendAPIModelsResponse) => void): Request; + /** + * Provides project-level details for your Amplify UI project. + */ + getBackend(params: AmplifyBackend.Types.GetBackendRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendResponse) => void): Request; + /** + * Provides project-level details for your Amplify UI project. + */ + getBackend(callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendResponse) => void): Request; + /** + * Gets the details for a backend API. + */ + getBackendAPI(params: AmplifyBackend.Types.GetBackendAPIRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendAPIResponse) => void): Request; + /** + * Gets the details for a backend API. + */ + getBackendAPI(callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendAPIResponse) => void): Request; + /** + * Generates a model schema for existing backend API resource. + */ + getBackendAPIModels(params: AmplifyBackend.Types.GetBackendAPIModelsRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendAPIModelsResponse) => void): Request; + /** + * Generates a model schema for existing backend API resource. + */ + getBackendAPIModels(callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendAPIModelsResponse) => void): Request; + /** + * Gets backend auth details. + */ + getBackendAuth(params: AmplifyBackend.Types.GetBackendAuthRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendAuthResponse) => void): Request; + /** + * Gets backend auth details. + */ + getBackendAuth(callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendAuthResponse) => void): Request; + /** + * Returns information about a specific job. + */ + getBackendJob(params: AmplifyBackend.Types.GetBackendJobRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendJobResponse) => void): Request; + /** + * Returns information about a specific job. + */ + getBackendJob(callback?: (err: AWSError, data: AmplifyBackend.Types.GetBackendJobResponse) => void): Request; + /** + * Gets the challenge token based on the given appId and sessionId. + */ + getToken(params: AmplifyBackend.Types.GetTokenRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.GetTokenResponse) => void): Request; + /** + * Gets the challenge token based on the given appId and sessionId. + */ + getToken(callback?: (err: AWSError, data: AmplifyBackend.Types.GetTokenResponse) => void): Request; + /** + * Lists the jobs for the backend of an Amplify app. + */ + listBackendJobs(params: AmplifyBackend.Types.ListBackendJobsRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.ListBackendJobsResponse) => void): Request; + /** + * Lists the jobs for the backend of an Amplify app. + */ + listBackendJobs(callback?: (err: AWSError, data: AmplifyBackend.Types.ListBackendJobsResponse) => void): Request; + /** + * Removes all backend environments from your Amplify project. + */ + removeAllBackends(params: AmplifyBackend.Types.RemoveAllBackendsRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.RemoveAllBackendsResponse) => void): Request; + /** + * Removes all backend environments from your Amplify project. + */ + removeAllBackends(callback?: (err: AWSError, data: AmplifyBackend.Types.RemoveAllBackendsResponse) => void): Request; + /** + * Removes the AWS resources that are required to access the Amplify Admin UI. + */ + removeBackendConfig(params: AmplifyBackend.Types.RemoveBackendConfigRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.RemoveBackendConfigResponse) => void): Request; + /** + * Removes the AWS resources that are required to access the Amplify Admin UI. + */ + removeBackendConfig(callback?: (err: AWSError, data: AmplifyBackend.Types.RemoveBackendConfigResponse) => void): Request; + /** + * Updates an existing backend API resource. + */ + updateBackendAPI(params: AmplifyBackend.Types.UpdateBackendAPIRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendAPIResponse) => void): Request; + /** + * Updates an existing backend API resource. + */ + updateBackendAPI(callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendAPIResponse) => void): Request; + /** + * Updates an existing backend authentication resource. + */ + updateBackendAuth(params: AmplifyBackend.Types.UpdateBackendAuthRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendAuthResponse) => void): Request; + /** + * Updates an existing backend authentication resource. + */ + updateBackendAuth(callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendAuthResponse) => void): Request; + /** + * Updates the AWS resources that are required to access the Amplify Admin UI. + */ + updateBackendConfig(params: AmplifyBackend.Types.UpdateBackendConfigRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendConfigResponse) => void): Request; + /** + * Updates the AWS resources that are required to access the Amplify Admin UI. + */ + updateBackendConfig(callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendConfigResponse) => void): Request; + /** + * Updates a specific job. + */ + updateBackendJob(params: AmplifyBackend.Types.UpdateBackendJobRequest, callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendJobResponse) => void): Request; + /** + * Updates a specific job. + */ + updateBackendJob(callback?: (err: AWSError, data: AmplifyBackend.Types.UpdateBackendJobResponse) => void): Request; +} +declare namespace AmplifyBackend { + export type AuthResources = "USER_POOL_ONLY"|"IDENTITY_POOL_AND_USER_POOL"|string; + export interface BackendAPIAppSyncAuthSettings { + /** + * The Amazon Cognito user pool ID, if Amazon Cognito is used as an authentication setting to access your data models. + */ + CognitoUserPoolId?: __string; + /** + * The API key description for API_KEY, if it is used as an authentication mechanism to access your data models. + */ + Description?: __string; + /** + * The API key expiration time for API_KEY, if it is used as an authentication mechanism to access your data models. + */ + ExpirationTime?: __double; + /** + * The expiry time for the OpenID authentication mechanism. + */ + OpenIDAuthTTL?: __string; + /** + * The clientID for openID, if openID is used as an authentication setting to access your data models. + */ + OpenIDClientId?: __string; + /** + * The expiry time for the OpenID authentication mechanism. + */ + OpenIDIatTTL?: __string; + /** + * The openID issuer URL, if openID is used as an authentication setting to access your data models. + */ + OpenIDIssueURL?: __string; + /** + * The openID provider name, if openID is used as an authentication mechanism to access your data models. + */ + OpenIDProviderName?: __string; + } + export interface BackendAPIAuthType { + /** + * Describes the authentication mode. + */ + Mode?: Mode; + /** + * Describes settings for the authentication mode. + */ + Settings?: BackendAPIAppSyncAuthSettings; + } + export interface BackendAPIConflictResolution { + /** + * The strategy for conflict resolution. + */ + ResolutionStrategy?: ResolutionStrategy; + } + export interface BackendAPIResourceConfig { + /** + * Additional authentication methods used to interact with your data models. + */ + AdditionalAuthTypes?: ListOfBackendAPIAuthType; + /** + * The API name used to interact with the data model, configured as a part of the Amplify project. + */ + ApiName?: __string; + /** + * The conflict resolution strategy for your data stored in the data models. + */ + ConflictResolution?: BackendAPIConflictResolution; + /** + * The default authentication type for interacting with the configured data models in your Amplify project. + */ + DefaultAuthType?: BackendAPIAuthType; + /** + * The service used to provision and interact with the data model. + */ + Service?: __string; + /** + * The definition of the data model in the annotated transform of the GraphQL schema. + */ + TransformSchema?: __string; + } + export interface BackendAuthSocialProviderConfig { + /** + * Describes the client_id that can be obtained from the third-party social federation provider. + */ + ClientId?: __string; + /** + * Describes the client_secret that can be obtained from third-party social federation providers. + */ + ClientSecret?: __string; + } + export interface BackendJobRespObj { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The time when the job was created. + */ + CreateTime?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + /** + * The time when the job was last updated. + */ + UpdateTime?: __string; + } + export interface CloneBackendRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The name of the destination backend environment to be created. + */ + TargetEnvironmentName: __string; + } + export interface CloneBackendResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface CreateBackendAPIRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The resource configuration for this request. + */ + ResourceConfig: BackendAPIResourceConfig; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface CreateBackendAPIResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface CreateBackendAuthForgotPasswordConfig { + /** + * Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password. + */ + DeliveryMethod: DeliveryMethod; + /** + * The configuration for the email sent when an app user forgets their password. + */ + EmailSettings?: EmailSettings; + /** + * The configuration for the SMS message sent when an app user forgets their password. + */ + SmsSettings?: SmsSettings; + } + export interface CreateBackendAuthIdentityPoolConfig { + /** + * Name of the identity pool used for authorization. + */ + IdentityPoolName: __string; + /** + * Set to true or false based on whether you want to enable guest authorization to your Amplify app. + */ + UnauthenticatedLogin: __boolean; + } + export interface CreateBackendAuthMFAConfig { + /** + * Describes whether MFA should be [ON, OFF, or OPTIONAL] for authentication in your Amplify project. + */ + MFAMode: MFAMode; + /** + * Describes the configuration settings and methods for your Amplify app users to use MFA. + */ + Settings?: Settings; + } + export interface CreateBackendAuthOAuthConfig { + /** + * The domain prefix for your Amplify app. + */ + DomainPrefix?: __string; + /** + * The OAuth grant type that you use to allow app users to authenticate from your Amplify app. + */ + OAuthGrantType: OAuthGrantType; + /** + * List of OAuth-related flows that allow your app users to authenticate from your Amplify app. + */ + OAuthScopes: ListOfOAuthScopesElement; + /** + * The redirected URI for signing in to your Amplify app. + */ + RedirectSignInURIs: ListOf__string; + /** + * Redirect URLs that OAuth uses when a user signs out of an Amplify app. + */ + RedirectSignOutURIs: ListOf__string; + /** + * The settings for using social identity providers for access to your Amplify app. + */ + SocialProviderSettings?: SocialProviderSettings; + } + export interface CreateBackendAuthPasswordPolicyConfig { + /** + * Additional constraints for the password used to access the backend of your Amplify project. + */ + AdditionalConstraints?: ListOfAdditionalConstraintsElement; + /** + * The minimum length of the password used to access the backend of your Amplify project. + */ + MinimumLength: __double; + } + export interface CreateBackendAuthRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The resource configuration for this request object. + */ + ResourceConfig: CreateBackendAuthResourceConfig; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface CreateBackendAuthResourceConfig { + /** + * Defines whether you want to configure only authentication or both authentication and authorization settings. + */ + AuthResources: AuthResources; + /** + * Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project. + */ + IdentityPoolConfigs?: CreateBackendAuthIdentityPoolConfig; + /** + * Defines the service name to use when configuring an authentication resource in your Amplify project. + */ + Service: Service; + /** + * Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project. + */ + UserPoolConfigs: CreateBackendAuthUserPoolConfig; + } + export interface CreateBackendAuthResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface CreateBackendAuthUserPoolConfig { + /** + * Describes the forgotten password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. + */ + ForgotPassword?: CreateBackendAuthForgotPasswordConfig; + /** + * Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project. + */ + Mfa?: CreateBackendAuthMFAConfig; + /** + * Describes the OAuth policy and rules for your Amazon Cognito user pool, configured as a part of your Amplify project. + */ + OAuth?: CreateBackendAuthOAuthConfig; + /** + * Describes the password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. + */ + PasswordPolicy?: CreateBackendAuthPasswordPolicyConfig; + /** + * The required attributes to sign up new users in the Amazon Cognito user pool. + */ + RequiredSignUpAttributes: ListOfRequiredSignUpAttributesElement; + /** + * Describes the sign-in methods that your Amplify app users to log in using the Amazon Cognito user pool that's configured as a part of your Amplify project. + */ + SignInMethod: SignInMethod; + /** + * The Amazon Cognito user pool name. + */ + UserPoolName: __string; + } + export interface CreateBackendConfigRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The app ID for the backend manager. + */ + BackendManagerAppId?: __string; + } + export interface CreateBackendConfigResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface CreateBackendRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the app. + */ + AppName: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The resource configuration for the backend creation request. + */ + ResourceConfig?: ResourceConfig; + /** + * The name of the resource. + */ + ResourceName?: __string; + } + export interface CreateBackendResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface CreateTokenRequest { + /** + * The app ID. + */ + AppId: __string; + } + export interface CreateTokenResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * One-time challenge code for authenticating into the Amplify Admin UI. + */ + ChallengeCode?: __string; + /** + * A unique ID provided when creating a new challenge token. + */ + SessionId?: __string; + /** + * The expiry time for the one-time generated token code. + */ + Ttl?: __string; + } + export interface DeleteBackendAPIRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * Defines the resource configuration for the data model in your Amplify project. + */ + ResourceConfig?: BackendAPIResourceConfig; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface DeleteBackendAPIResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface DeleteBackendAuthRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface DeleteBackendAuthResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface DeleteBackendRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + } + export interface DeleteBackendResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface DeleteTokenRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The session ID. + */ + SessionId: __string; + } + export interface DeleteTokenResponse { + /** + * Indicates whether the request succeeded or failed. + */ + IsSuccess?: __boolean; + } + export type DeliveryMethod = "EMAIL"|"SMS"|string; + export interface EmailSettings { + /** + * The body of the email. + */ + EmailMessage?: __string; + /** + * The subject of the email. + */ + EmailSubject?: __string; + } + export interface GenerateBackendAPIModelsRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface GenerateBackendAPIModelsResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface GetBackendAPIModelsRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface GetBackendAPIModelsResponse { + /** + * Stringified JSON of the DataStore model. + */ + Models?: __string; + /** + * The current status of the request. + */ + Status?: Status; + } + export interface GetBackendAPIRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * Defines the resource configuration for the data model in your Amplify project. + */ + ResourceConfig?: BackendAPIResourceConfig; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface GetBackendAPIResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The resource configuration for this response object. + */ + ResourceConfig?: BackendAPIResourceConfig; + /** + * The name of this resource. + */ + ResourceName?: __string; + } + export interface GetBackendAuthRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface GetBackendAuthResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The resource configuration for authorization requests to the backend of your Amplify project. + */ + ResourceConfig?: CreateBackendAuthResourceConfig; + /** + * The name of this resource. + */ + ResourceName?: __string; + } + export interface GetBackendJobRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The ID for the job. + */ + JobId: __string; + } + export interface GetBackendJobResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * The time when the job was created. + */ + CreateTime?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + /** + * The time when the job was last updated. + */ + UpdateTime?: __string; + } + export interface GetBackendRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + } + export interface GetBackendResponse { + /** + * A stringified version of the current configurations for your Amplify project. + */ + AmplifyMetaConfig?: __string; + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the app. + */ + AppName?: __string; + /** + * A list of backend environments in an array. + */ + BackendEnvironmentList?: ListOf__string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + } + export interface GetTokenRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The session ID. + */ + SessionId: __string; + } + export interface GetTokenResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The one-time challenge code for authenticating into the Amplify Admin UI. + */ + ChallengeCode?: __string; + /** + * A unique ID provided when creating a new challenge token. + */ + SessionId?: __string; + /** + * The expiry time for the one-time generated token code. + */ + Ttl?: __string; + } + export interface ListBackendJobsRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The maximum number of results that you want in the response. + */ + MaxResults?: __integerMin1Max25; + /** + * The token for the next set of results. + */ + NextToken?: __string; + /** + * Filters the list of response objects to include only those with the specified operation name. + */ + Operation?: __string; + /** + * Filters the list of response objects to include only those with the specified status. + */ + Status?: __string; + } + export interface ListBackendJobsResponse { + /** + * An array of jobs and their properties. + */ + Jobs?: ListOfBackendJobRespObj; + /** + * The token for the next set of results. + */ + NextToken?: __string; + } + export interface LoginAuthConfigReqObj { + /** + * The Amazon Cognito identity pool ID used for Amplify Admin UI login authorization. + */ + AwsCognitoIdentityPoolId?: __string; + /** + * The AWS Region for the Amplify Admin UI login. + */ + AwsCognitoRegion?: __string; + /** + * The Amazon Cognito user pool ID used for Amplify Admin UI login authentication. + */ + AwsUserPoolsId?: __string; + /** + * The web client ID for the Amazon Cognito user pools. + */ + AwsUserPoolsWebClientId?: __string; + } + export type MFAMode = "ON"|"OFF"|"OPTIONAL"|string; + export type Mode = "API_KEY"|"AWS_IAM"|"AMAZON_COGNITO_USER_POOLS"|"OPENID_CONNECT"|string; + export type OAuthGrantType = "CODE"|"IMPLICIT"|string; + export interface RemoveAllBackendsRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * Cleans up the Amplify Console app if this value is set to true. + */ + CleanAmplifyApp?: __boolean; + } + export interface RemoveAllBackendsResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface RemoveBackendConfigRequest { + /** + * The app ID. + */ + AppId: __string; + } + export interface RemoveBackendConfigResponse { + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + } + export type ResolutionStrategy = "OPTIMISTIC_CONCURRENCY"|"LAMBDA"|"AUTOMERGE"|"NONE"|string; + export interface ResourceConfig { + } + export type Service = "COGNITO"|string; + export interface Settings { + /** + * The supported MFA types. + */ + MfaTypes?: ListOfMfaTypesElement; + /** + * The body of the SMS message. + */ + SmsMessage?: __string; + } + export type SignInMethod = "EMAIL"|"EMAIL_AND_PHONE_NUMBER"|"PHONE_NUMBER"|"USERNAME"|string; + export interface SmsSettings { + /** + * The body of the SMS message. + */ + SmsMessage?: __string; + } + export interface SocialProviderSettings { + Facebook?: BackendAuthSocialProviderConfig; + Google?: BackendAuthSocialProviderConfig; + LoginWithAmazon?: BackendAuthSocialProviderConfig; + } + export type Status = "LATEST"|"STALE"|string; + export interface UpdateBackendAPIRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * Defines the resource configuration for the data model in your Amplify project. + */ + ResourceConfig?: BackendAPIResourceConfig; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface UpdateBackendAPIResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface UpdateBackendAuthForgotPasswordConfig { + /** + * Describes which method to use (either SMS or email) to deliver messages to app users that want to recover their password. + */ + DeliveryMethod?: DeliveryMethod; + /** + * The configuration for the email sent when an app user forgets their password. + */ + EmailSettings?: EmailSettings; + /** + * The configuration for the SMS message sent when an Amplify app user forgets their password. + */ + SmsSettings?: SmsSettings; + } + export interface UpdateBackendAuthIdentityPoolConfig { + /** + * A Boolean value that you can set to allow or disallow guest-level authorization into your Amplify app. + */ + UnauthenticatedLogin?: __boolean; + } + export interface UpdateBackendAuthMFAConfig { + /** + * The MFA mode for the backend of your Amplify project. + */ + MFAMode?: MFAMode; + /** + * The settings of your MFA configuration for the backend of your Amplify project. + */ + Settings?: Settings; + } + export interface UpdateBackendAuthOAuthConfig { + /** + * The Amazon Cognito domain prefix used to create a hosted UI for authentication. + */ + DomainPrefix?: __string; + /** + * The OAuth grant type to allow app users to authenticate from your Amplify app. + */ + OAuthGrantType?: OAuthGrantType; + /** + * The list of OAuth-related flows that can allow users to authenticate from your Amplify app. + */ + OAuthScopes?: ListOfOAuthScopesElement; + /** + * Redirect URLs that OAuth uses when a user signs in to an Amplify app. + */ + RedirectSignInURIs?: ListOf__string; + /** + * Redirect URLs that OAuth uses when a user signs out of an Amplify app. + */ + RedirectSignOutURIs?: ListOf__string; + /** + * Describes third-party social federation configurations for allowing your users to sign in with OAuth. + */ + SocialProviderSettings?: SocialProviderSettings; + } + export interface UpdateBackendAuthPasswordPolicyConfig { + /** + * Describes additional constrains on the password requirements to sign in to the auth resource, configured as a part of your Amplify project. + */ + AdditionalConstraints?: ListOfAdditionalConstraintsElement; + /** + * Describes the minimum length of the password required to sign in to the auth resource, configured as a part of your Amplify project. + */ + MinimumLength?: __double; + } + export interface UpdateBackendAuthRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The resource configuration for this request object. + */ + ResourceConfig: UpdateBackendAuthResourceConfig; + /** + * The name of this resource. + */ + ResourceName: __string; + } + export interface UpdateBackendAuthResourceConfig { + /** + * Defines the service name to use when configuring an authentication resource in your Amplify project. + */ + AuthResources: AuthResources; + /** + * Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of the auth resource in your Amplify project. + */ + IdentityPoolConfigs?: UpdateBackendAuthIdentityPoolConfig; + /** + * Defines the service name to use when configuring an authentication resource in your Amplify project. + */ + Service: Service; + /** + * Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of the auth resource in your Amplify project. + */ + UserPoolConfigs: UpdateBackendAuthUserPoolConfig; + } + export interface UpdateBackendAuthResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + } + export interface UpdateBackendAuthUserPoolConfig { + /** + * Describes the forgot password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. + */ + ForgotPassword?: UpdateBackendAuthForgotPasswordConfig; + /** + * Describes whether to apply multi-factor authentication (MFA) policies for your Amazon Cognito user pool that's configured as a part of your Amplify project. + */ + Mfa?: UpdateBackendAuthMFAConfig; + /** + * Describes the OAuth policy and rules for your Amazon Cognito user pool, configured as a part of your Amplify project. + */ + OAuth?: UpdateBackendAuthOAuthConfig; + /** + * Describes the password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. + */ + PasswordPolicy?: UpdateBackendAuthPasswordPolicyConfig; + } + export interface UpdateBackendConfigRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * Describes the Amazon Cognito configuration for Admin UI access. + */ + LoginAuthConfig?: LoginAuthConfigReqObj; + } + export interface UpdateBackendConfigResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The app ID for the backend manager. + */ + BackendManagerAppId?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * Describes the Amazon Cognito configurations for the Admin UI auth resource to log in with. + */ + LoginAuthConfig?: LoginAuthConfigReqObj; + } + export interface UpdateBackendJobRequest { + /** + * The app ID. + */ + AppId: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName: __string; + /** + * The ID for the job. + */ + JobId: __string; + /** + * Filters the list of response objects to include only those with the specified operation name. + */ + Operation?: __string; + /** + * Filters the list of response objects to include only those with the specified status. + */ + Status?: __string; + } + export interface UpdateBackendJobResponse { + /** + * The app ID. + */ + AppId?: __string; + /** + * The name of the backend environment. + */ + BackendEnvironmentName?: __string; + /** + * The time when the job was created. + */ + CreateTime?: __string; + /** + * If the request failed, this is the returned error. + */ + Error?: __string; + /** + * The ID for the job. + */ + JobId?: __string; + /** + * The name of the operation. + */ + Operation?: __string; + /** + * The current status of the request. + */ + Status?: __string; + /** + * The time when the job was last updated. + */ + UpdateTime?: __string; + } + export type AdditionalConstraintsElement = "REQUIRE_DIGIT"|"REQUIRE_LOWERCASE"|"REQUIRE_SYMBOL"|"REQUIRE_UPPERCASE"|string; + export type MfaTypesElement = "SMS"|"TOTP"|string; + export type OAuthScopesElement = "PHONE"|"EMAIL"|"OPENID"|"PROFILE"|"AWS_COGNITO_SIGNIN_USER_ADMIN"|string; + export type RequiredSignUpAttributesElement = "ADDRESS"|"BIRTHDATE"|"EMAIL"|"FAMILY_NAME"|"GENDER"|"GIVEN_NAME"|"LOCALE"|"MIDDLE_NAME"|"NAME"|"NICKNAME"|"PHONE_NUMBER"|"PICTURE"|"PREFERRED_USERNAME"|"PROFILE"|"UPDATED_AT"|"WEBSITE"|"ZONE_INFO"|string; + export type __boolean = boolean; + export type __double = number; + export type __integerMin1Max25 = number; + export type ListOfBackendAPIAuthType = BackendAPIAuthType[]; + export type ListOfBackendJobRespObj = BackendJobRespObj[]; + export type ListOfAdditionalConstraintsElement = AdditionalConstraintsElement[]; + export type ListOfMfaTypesElement = MfaTypesElement[]; + export type ListOfOAuthScopesElement = OAuthScopesElement[]; + export type ListOfRequiredSignUpAttributesElement = RequiredSignUpAttributesElement[]; + export type ListOf__string = __string[]; + export type __string = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2020-08-11"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AmplifyBackend client. + */ + export import Types = AmplifyBackend; +} +export = AmplifyBackend; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/amplifybackend.js b/justdanceonline-main/node_modules/aws-sdk/clients/amplifybackend.js new file mode 100644 index 0000000000000000000000000000000000000000..4a71701a852e546cacea1fd62351cdfee9d50a5c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/amplifybackend.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['amplifybackend'] = {}; +AWS.AmplifyBackend = Service.defineService('amplifybackend', ['2020-08-11']); +Object.defineProperty(apiLoader.services['amplifybackend'], '2020-08-11', { + get: function get() { + var model = require('../apis/amplifybackend-2020-08-11.min.json'); + model.paginators = require('../apis/amplifybackend-2020-08-11.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AmplifyBackend; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apigateway.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/apigateway.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ef4c4bf37d955a261b876bd3f10e27235b980501 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apigateway.d.ts @@ -0,0 +1,4166 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class APIGateway extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: APIGateway.Types.ClientConfiguration) + config: Config & APIGateway.Types.ClientConfiguration; + /** + * Create an ApiKey resource. AWS CLI + */ + createApiKey(params: APIGateway.Types.CreateApiKeyRequest, callback?: (err: AWSError, data: APIGateway.Types.ApiKey) => void): Request; + /** + * Create an ApiKey resource. AWS CLI + */ + createApiKey(callback?: (err: AWSError, data: APIGateway.Types.ApiKey) => void): Request; + /** + * Adds a new Authorizer resource to an existing RestApi resource. AWS CLI + */ + createAuthorizer(params: APIGateway.Types.CreateAuthorizerRequest, callback?: (err: AWSError, data: APIGateway.Types.Authorizer) => void): Request; + /** + * Adds a new Authorizer resource to an existing RestApi resource. AWS CLI + */ + createAuthorizer(callback?: (err: AWSError, data: APIGateway.Types.Authorizer) => void): Request; + /** + * Creates a new BasePathMapping resource. + */ + createBasePathMapping(params: APIGateway.Types.CreateBasePathMappingRequest, callback?: (err: AWSError, data: APIGateway.Types.BasePathMapping) => void): Request; + /** + * Creates a new BasePathMapping resource. + */ + createBasePathMapping(callback?: (err: AWSError, data: APIGateway.Types.BasePathMapping) => void): Request; + /** + * Creates a Deployment resource, which makes a specified RestApi callable over the internet. + */ + createDeployment(params: APIGateway.Types.CreateDeploymentRequest, callback?: (err: AWSError, data: APIGateway.Types.Deployment) => void): Request; + /** + * Creates a Deployment resource, which makes a specified RestApi callable over the internet. + */ + createDeployment(callback?: (err: AWSError, data: APIGateway.Types.Deployment) => void): Request; + /** + * + */ + createDocumentationPart(params: APIGateway.Types.CreateDocumentationPartRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationPart) => void): Request; + /** + * + */ + createDocumentationPart(callback?: (err: AWSError, data: APIGateway.Types.DocumentationPart) => void): Request; + /** + * + */ + createDocumentationVersion(params: APIGateway.Types.CreateDocumentationVersionRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersion) => void): Request; + /** + * + */ + createDocumentationVersion(callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersion) => void): Request; + /** + * Creates a new domain name. + */ + createDomainName(params: APIGateway.Types.CreateDomainNameRequest, callback?: (err: AWSError, data: APIGateway.Types.DomainName) => void): Request; + /** + * Creates a new domain name. + */ + createDomainName(callback?: (err: AWSError, data: APIGateway.Types.DomainName) => void): Request; + /** + * Adds a new Model resource to an existing RestApi resource. + */ + createModel(params: APIGateway.Types.CreateModelRequest, callback?: (err: AWSError, data: APIGateway.Types.Model) => void): Request; + /** + * Adds a new Model resource to an existing RestApi resource. + */ + createModel(callback?: (err: AWSError, data: APIGateway.Types.Model) => void): Request; + /** + * Creates a ReqeustValidator of a given RestApi. + */ + createRequestValidator(params: APIGateway.Types.CreateRequestValidatorRequest, callback?: (err: AWSError, data: APIGateway.Types.RequestValidator) => void): Request; + /** + * Creates a ReqeustValidator of a given RestApi. + */ + createRequestValidator(callback?: (err: AWSError, data: APIGateway.Types.RequestValidator) => void): Request; + /** + * Creates a Resource resource. + */ + createResource(params: APIGateway.Types.CreateResourceRequest, callback?: (err: AWSError, data: APIGateway.Types.Resource) => void): Request; + /** + * Creates a Resource resource. + */ + createResource(callback?: (err: AWSError, data: APIGateway.Types.Resource) => void): Request; + /** + * Creates a new RestApi resource. + */ + createRestApi(params: APIGateway.Types.CreateRestApiRequest, callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Creates a new RestApi resource. + */ + createRestApi(callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Creates a new Stage resource that references a pre-existing Deployment for the API. + */ + createStage(params: APIGateway.Types.CreateStageRequest, callback?: (err: AWSError, data: APIGateway.Types.Stage) => void): Request; + /** + * Creates a new Stage resource that references a pre-existing Deployment for the API. + */ + createStage(callback?: (err: AWSError, data: APIGateway.Types.Stage) => void): Request; + /** + * Creates a usage plan with the throttle and quota limits, as well as the associated API stages, specified in the payload. + */ + createUsagePlan(params: APIGateway.Types.CreateUsagePlanRequest, callback?: (err: AWSError, data: APIGateway.Types.UsagePlan) => void): Request; + /** + * Creates a usage plan with the throttle and quota limits, as well as the associated API stages, specified in the payload. + */ + createUsagePlan(callback?: (err: AWSError, data: APIGateway.Types.UsagePlan) => void): Request; + /** + * Creates a usage plan key for adding an existing API key to a usage plan. + */ + createUsagePlanKey(params: APIGateway.Types.CreateUsagePlanKeyRequest, callback?: (err: AWSError, data: APIGateway.Types.UsagePlanKey) => void): Request; + /** + * Creates a usage plan key for adding an existing API key to a usage plan. + */ + createUsagePlanKey(callback?: (err: AWSError, data: APIGateway.Types.UsagePlanKey) => void): Request; + /** + * Creates a VPC link, under the caller's account in a selected region, in an asynchronous operation that typically takes 2-4 minutes to complete and become operational. The caller must have permissions to create and update VPC Endpoint services. + */ + createVpcLink(params: APIGateway.Types.CreateVpcLinkRequest, callback?: (err: AWSError, data: APIGateway.Types.VpcLink) => void): Request; + /** + * Creates a VPC link, under the caller's account in a selected region, in an asynchronous operation that typically takes 2-4 minutes to complete and become operational. The caller must have permissions to create and update VPC Endpoint services. + */ + createVpcLink(callback?: (err: AWSError, data: APIGateway.Types.VpcLink) => void): Request; + /** + * Deletes the ApiKey resource. + */ + deleteApiKey(params: APIGateway.Types.DeleteApiKeyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the ApiKey resource. + */ + deleteApiKey(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing Authorizer resource. AWS CLI + */ + deleteAuthorizer(params: APIGateway.Types.DeleteAuthorizerRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing Authorizer resource. AWS CLI + */ + deleteAuthorizer(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the BasePathMapping resource. + */ + deleteBasePathMapping(params: APIGateway.Types.DeleteBasePathMappingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the BasePathMapping resource. + */ + deleteBasePathMapping(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the ClientCertificate resource. + */ + deleteClientCertificate(params: APIGateway.Types.DeleteClientCertificateRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the ClientCertificate resource. + */ + deleteClientCertificate(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Deployment resource. Deleting a deployment will only succeed if there are no Stage resources associated with it. + */ + deleteDeployment(params: APIGateway.Types.DeleteDeploymentRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Deployment resource. Deleting a deployment will only succeed if there are no Stage resources associated with it. + */ + deleteDeployment(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * + */ + deleteDocumentationPart(params: APIGateway.Types.DeleteDocumentationPartRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * + */ + deleteDocumentationPart(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * + */ + deleteDocumentationVersion(params: APIGateway.Types.DeleteDocumentationVersionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * + */ + deleteDocumentationVersion(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the DomainName resource. + */ + deleteDomainName(params: APIGateway.Types.DeleteDomainNameRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the DomainName resource. + */ + deleteDomainName(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Clears any customization of a GatewayResponse of a specified response type on the given RestApi and resets it with the default settings. + */ + deleteGatewayResponse(params: APIGateway.Types.DeleteGatewayResponseRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Clears any customization of a GatewayResponse of a specified response type on the given RestApi and resets it with the default settings. + */ + deleteGatewayResponse(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Represents a delete integration. + */ + deleteIntegration(params: APIGateway.Types.DeleteIntegrationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Represents a delete integration. + */ + deleteIntegration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Represents a delete integration response. + */ + deleteIntegrationResponse(params: APIGateway.Types.DeleteIntegrationResponseRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Represents a delete integration response. + */ + deleteIntegrationResponse(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing Method resource. + */ + deleteMethod(params: APIGateway.Types.DeleteMethodRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing Method resource. + */ + deleteMethod(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing MethodResponse resource. + */ + deleteMethodResponse(params: APIGateway.Types.DeleteMethodResponseRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing MethodResponse resource. + */ + deleteMethodResponse(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a model. + */ + deleteModel(params: APIGateway.Types.DeleteModelRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a model. + */ + deleteModel(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a RequestValidator of a given RestApi. + */ + deleteRequestValidator(params: APIGateway.Types.DeleteRequestValidatorRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a RequestValidator of a given RestApi. + */ + deleteRequestValidator(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Resource resource. + */ + deleteResource(params: APIGateway.Types.DeleteResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Resource resource. + */ + deleteResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified API. + */ + deleteRestApi(params: APIGateway.Types.DeleteRestApiRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified API. + */ + deleteRestApi(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Stage resource. + */ + deleteStage(params: APIGateway.Types.DeleteStageRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Stage resource. + */ + deleteStage(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a usage plan of a given plan Id. + */ + deleteUsagePlan(params: APIGateway.Types.DeleteUsagePlanRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a usage plan of a given plan Id. + */ + deleteUsagePlan(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a usage plan key and remove the underlying API key from the associated usage plan. + */ + deleteUsagePlanKey(params: APIGateway.Types.DeleteUsagePlanKeyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a usage plan key and remove the underlying API key from the associated usage plan. + */ + deleteUsagePlanKey(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing VpcLink of a specified identifier. + */ + deleteVpcLink(params: APIGateway.Types.DeleteVpcLinkRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an existing VpcLink of a specified identifier. + */ + deleteVpcLink(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Flushes all authorizer cache entries on a stage. + */ + flushStageAuthorizersCache(params: APIGateway.Types.FlushStageAuthorizersCacheRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Flushes all authorizer cache entries on a stage. + */ + flushStageAuthorizersCache(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Flushes a stage's cache. + */ + flushStageCache(params: APIGateway.Types.FlushStageCacheRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Flushes a stage's cache. + */ + flushStageCache(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Generates a ClientCertificate resource. + */ + generateClientCertificate(params: APIGateway.Types.GenerateClientCertificateRequest, callback?: (err: AWSError, data: APIGateway.Types.ClientCertificate) => void): Request; + /** + * Generates a ClientCertificate resource. + */ + generateClientCertificate(callback?: (err: AWSError, data: APIGateway.Types.ClientCertificate) => void): Request; + /** + * Gets information about the current Account resource. + */ + getAccount(params: APIGateway.Types.GetAccountRequest, callback?: (err: AWSError, data: APIGateway.Types.Account) => void): Request; + /** + * Gets information about the current Account resource. + */ + getAccount(callback?: (err: AWSError, data: APIGateway.Types.Account) => void): Request; + /** + * Gets information about the current ApiKey resource. + */ + getApiKey(params: APIGateway.Types.GetApiKeyRequest, callback?: (err: AWSError, data: APIGateway.Types.ApiKey) => void): Request; + /** + * Gets information about the current ApiKey resource. + */ + getApiKey(callback?: (err: AWSError, data: APIGateway.Types.ApiKey) => void): Request; + /** + * Gets information about the current ApiKeys resource. + */ + getApiKeys(params: APIGateway.Types.GetApiKeysRequest, callback?: (err: AWSError, data: APIGateway.Types.ApiKeys) => void): Request; + /** + * Gets information about the current ApiKeys resource. + */ + getApiKeys(callback?: (err: AWSError, data: APIGateway.Types.ApiKeys) => void): Request; + /** + * Describe an existing Authorizer resource. AWS CLI + */ + getAuthorizer(params: APIGateway.Types.GetAuthorizerRequest, callback?: (err: AWSError, data: APIGateway.Types.Authorizer) => void): Request; + /** + * Describe an existing Authorizer resource. AWS CLI + */ + getAuthorizer(callback?: (err: AWSError, data: APIGateway.Types.Authorizer) => void): Request; + /** + * Describe an existing Authorizers resource. AWS CLI + */ + getAuthorizers(params: APIGateway.Types.GetAuthorizersRequest, callback?: (err: AWSError, data: APIGateway.Types.Authorizers) => void): Request; + /** + * Describe an existing Authorizers resource. AWS CLI + */ + getAuthorizers(callback?: (err: AWSError, data: APIGateway.Types.Authorizers) => void): Request; + /** + * Describe a BasePathMapping resource. + */ + getBasePathMapping(params: APIGateway.Types.GetBasePathMappingRequest, callback?: (err: AWSError, data: APIGateway.Types.BasePathMapping) => void): Request; + /** + * Describe a BasePathMapping resource. + */ + getBasePathMapping(callback?: (err: AWSError, data: APIGateway.Types.BasePathMapping) => void): Request; + /** + * Represents a collection of BasePathMapping resources. + */ + getBasePathMappings(params: APIGateway.Types.GetBasePathMappingsRequest, callback?: (err: AWSError, data: APIGateway.Types.BasePathMappings) => void): Request; + /** + * Represents a collection of BasePathMapping resources. + */ + getBasePathMappings(callback?: (err: AWSError, data: APIGateway.Types.BasePathMappings) => void): Request; + /** + * Gets information about the current ClientCertificate resource. + */ + getClientCertificate(params: APIGateway.Types.GetClientCertificateRequest, callback?: (err: AWSError, data: APIGateway.Types.ClientCertificate) => void): Request; + /** + * Gets information about the current ClientCertificate resource. + */ + getClientCertificate(callback?: (err: AWSError, data: APIGateway.Types.ClientCertificate) => void): Request; + /** + * Gets a collection of ClientCertificate resources. + */ + getClientCertificates(params: APIGateway.Types.GetClientCertificatesRequest, callback?: (err: AWSError, data: APIGateway.Types.ClientCertificates) => void): Request; + /** + * Gets a collection of ClientCertificate resources. + */ + getClientCertificates(callback?: (err: AWSError, data: APIGateway.Types.ClientCertificates) => void): Request; + /** + * Gets information about a Deployment resource. + */ + getDeployment(params: APIGateway.Types.GetDeploymentRequest, callback?: (err: AWSError, data: APIGateway.Types.Deployment) => void): Request; + /** + * Gets information about a Deployment resource. + */ + getDeployment(callback?: (err: AWSError, data: APIGateway.Types.Deployment) => void): Request; + /** + * Gets information about a Deployments collection. + */ + getDeployments(params: APIGateway.Types.GetDeploymentsRequest, callback?: (err: AWSError, data: APIGateway.Types.Deployments) => void): Request; + /** + * Gets information about a Deployments collection. + */ + getDeployments(callback?: (err: AWSError, data: APIGateway.Types.Deployments) => void): Request; + /** + * + */ + getDocumentationPart(params: APIGateway.Types.GetDocumentationPartRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationPart) => void): Request; + /** + * + */ + getDocumentationPart(callback?: (err: AWSError, data: APIGateway.Types.DocumentationPart) => void): Request; + /** + * + */ + getDocumentationParts(params: APIGateway.Types.GetDocumentationPartsRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationParts) => void): Request; + /** + * + */ + getDocumentationParts(callback?: (err: AWSError, data: APIGateway.Types.DocumentationParts) => void): Request; + /** + * + */ + getDocumentationVersion(params: APIGateway.Types.GetDocumentationVersionRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersion) => void): Request; + /** + * + */ + getDocumentationVersion(callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersion) => void): Request; + /** + * + */ + getDocumentationVersions(params: APIGateway.Types.GetDocumentationVersionsRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersions) => void): Request; + /** + * + */ + getDocumentationVersions(callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersions) => void): Request; + /** + * Represents a domain name that is contained in a simpler, more intuitive URL that can be called. + */ + getDomainName(params: APIGateway.Types.GetDomainNameRequest, callback?: (err: AWSError, data: APIGateway.Types.DomainName) => void): Request; + /** + * Represents a domain name that is contained in a simpler, more intuitive URL that can be called. + */ + getDomainName(callback?: (err: AWSError, data: APIGateway.Types.DomainName) => void): Request; + /** + * Represents a collection of DomainName resources. + */ + getDomainNames(params: APIGateway.Types.GetDomainNamesRequest, callback?: (err: AWSError, data: APIGateway.Types.DomainNames) => void): Request; + /** + * Represents a collection of DomainName resources. + */ + getDomainNames(callback?: (err: AWSError, data: APIGateway.Types.DomainNames) => void): Request; + /** + * Exports a deployed version of a RestApi in a specified format. + */ + getExport(params: APIGateway.Types.GetExportRequest, callback?: (err: AWSError, data: APIGateway.Types.ExportResponse) => void): Request; + /** + * Exports a deployed version of a RestApi in a specified format. + */ + getExport(callback?: (err: AWSError, data: APIGateway.Types.ExportResponse) => void): Request; + /** + * Gets a GatewayResponse of a specified response type on the given RestApi. + */ + getGatewayResponse(params: APIGateway.Types.GetGatewayResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.GatewayResponse) => void): Request; + /** + * Gets a GatewayResponse of a specified response type on the given RestApi. + */ + getGatewayResponse(callback?: (err: AWSError, data: APIGateway.Types.GatewayResponse) => void): Request; + /** + * Gets the GatewayResponses collection on the given RestApi. If an API developer has not added any definitions for gateway responses, the result will be the API Gateway-generated default GatewayResponses collection for the supported response types. + */ + getGatewayResponses(params: APIGateway.Types.GetGatewayResponsesRequest, callback?: (err: AWSError, data: APIGateway.Types.GatewayResponses) => void): Request; + /** + * Gets the GatewayResponses collection on the given RestApi. If an API developer has not added any definitions for gateway responses, the result will be the API Gateway-generated default GatewayResponses collection for the supported response types. + */ + getGatewayResponses(callback?: (err: AWSError, data: APIGateway.Types.GatewayResponses) => void): Request; + /** + * Get the integration settings. + */ + getIntegration(params: APIGateway.Types.GetIntegrationRequest, callback?: (err: AWSError, data: APIGateway.Types.Integration) => void): Request; + /** + * Get the integration settings. + */ + getIntegration(callback?: (err: AWSError, data: APIGateway.Types.Integration) => void): Request; + /** + * Represents a get integration response. + */ + getIntegrationResponse(params: APIGateway.Types.GetIntegrationResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.IntegrationResponse) => void): Request; + /** + * Represents a get integration response. + */ + getIntegrationResponse(callback?: (err: AWSError, data: APIGateway.Types.IntegrationResponse) => void): Request; + /** + * Describe an existing Method resource. + */ + getMethod(params: APIGateway.Types.GetMethodRequest, callback?: (err: AWSError, data: APIGateway.Types.Method) => void): Request; + /** + * Describe an existing Method resource. + */ + getMethod(callback?: (err: AWSError, data: APIGateway.Types.Method) => void): Request; + /** + * Describes a MethodResponse resource. + */ + getMethodResponse(params: APIGateway.Types.GetMethodResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.MethodResponse) => void): Request; + /** + * Describes a MethodResponse resource. + */ + getMethodResponse(callback?: (err: AWSError, data: APIGateway.Types.MethodResponse) => void): Request; + /** + * Describes an existing model defined for a RestApi resource. + */ + getModel(params: APIGateway.Types.GetModelRequest, callback?: (err: AWSError, data: APIGateway.Types.Model) => void): Request; + /** + * Describes an existing model defined for a RestApi resource. + */ + getModel(callback?: (err: AWSError, data: APIGateway.Types.Model) => void): Request; + /** + * Generates a sample mapping template that can be used to transform a payload into the structure of a model. + */ + getModelTemplate(params: APIGateway.Types.GetModelTemplateRequest, callback?: (err: AWSError, data: APIGateway.Types.Template) => void): Request; + /** + * Generates a sample mapping template that can be used to transform a payload into the structure of a model. + */ + getModelTemplate(callback?: (err: AWSError, data: APIGateway.Types.Template) => void): Request; + /** + * Describes existing Models defined for a RestApi resource. + */ + getModels(params: APIGateway.Types.GetModelsRequest, callback?: (err: AWSError, data: APIGateway.Types.Models) => void): Request; + /** + * Describes existing Models defined for a RestApi resource. + */ + getModels(callback?: (err: AWSError, data: APIGateway.Types.Models) => void): Request; + /** + * Gets a RequestValidator of a given RestApi. + */ + getRequestValidator(params: APIGateway.Types.GetRequestValidatorRequest, callback?: (err: AWSError, data: APIGateway.Types.RequestValidator) => void): Request; + /** + * Gets a RequestValidator of a given RestApi. + */ + getRequestValidator(callback?: (err: AWSError, data: APIGateway.Types.RequestValidator) => void): Request; + /** + * Gets the RequestValidators collection of a given RestApi. + */ + getRequestValidators(params: APIGateway.Types.GetRequestValidatorsRequest, callback?: (err: AWSError, data: APIGateway.Types.RequestValidators) => void): Request; + /** + * Gets the RequestValidators collection of a given RestApi. + */ + getRequestValidators(callback?: (err: AWSError, data: APIGateway.Types.RequestValidators) => void): Request; + /** + * Lists information about a resource. + */ + getResource(params: APIGateway.Types.GetResourceRequest, callback?: (err: AWSError, data: APIGateway.Types.Resource) => void): Request; + /** + * Lists information about a resource. + */ + getResource(callback?: (err: AWSError, data: APIGateway.Types.Resource) => void): Request; + /** + * Lists information about a collection of Resource resources. + */ + getResources(params: APIGateway.Types.GetResourcesRequest, callback?: (err: AWSError, data: APIGateway.Types.Resources) => void): Request; + /** + * Lists information about a collection of Resource resources. + */ + getResources(callback?: (err: AWSError, data: APIGateway.Types.Resources) => void): Request; + /** + * Lists the RestApi resource in the collection. + */ + getRestApi(params: APIGateway.Types.GetRestApiRequest, callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Lists the RestApi resource in the collection. + */ + getRestApi(callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Lists the RestApis resources for your collection. + */ + getRestApis(params: APIGateway.Types.GetRestApisRequest, callback?: (err: AWSError, data: APIGateway.Types.RestApis) => void): Request; + /** + * Lists the RestApis resources for your collection. + */ + getRestApis(callback?: (err: AWSError, data: APIGateway.Types.RestApis) => void): Request; + /** + * Generates a client SDK for a RestApi and Stage. + */ + getSdk(params: APIGateway.Types.GetSdkRequest, callback?: (err: AWSError, data: APIGateway.Types.SdkResponse) => void): Request; + /** + * Generates a client SDK for a RestApi and Stage. + */ + getSdk(callback?: (err: AWSError, data: APIGateway.Types.SdkResponse) => void): Request; + /** + * + */ + getSdkType(params: APIGateway.Types.GetSdkTypeRequest, callback?: (err: AWSError, data: APIGateway.Types.SdkType) => void): Request; + /** + * + */ + getSdkType(callback?: (err: AWSError, data: APIGateway.Types.SdkType) => void): Request; + /** + * + */ + getSdkTypes(params: APIGateway.Types.GetSdkTypesRequest, callback?: (err: AWSError, data: APIGateway.Types.SdkTypes) => void): Request; + /** + * + */ + getSdkTypes(callback?: (err: AWSError, data: APIGateway.Types.SdkTypes) => void): Request; + /** + * Gets information about a Stage resource. + */ + getStage(params: APIGateway.Types.GetStageRequest, callback?: (err: AWSError, data: APIGateway.Types.Stage) => void): Request; + /** + * Gets information about a Stage resource. + */ + getStage(callback?: (err: AWSError, data: APIGateway.Types.Stage) => void): Request; + /** + * Gets information about one or more Stage resources. + */ + getStages(params: APIGateway.Types.GetStagesRequest, callback?: (err: AWSError, data: APIGateway.Types.Stages) => void): Request; + /** + * Gets information about one or more Stage resources. + */ + getStages(callback?: (err: AWSError, data: APIGateway.Types.Stages) => void): Request; + /** + * Gets the Tags collection for a given resource. + */ + getTags(params: APIGateway.Types.GetTagsRequest, callback?: (err: AWSError, data: APIGateway.Types.Tags) => void): Request; + /** + * Gets the Tags collection for a given resource. + */ + getTags(callback?: (err: AWSError, data: APIGateway.Types.Tags) => void): Request; + /** + * Gets the usage data of a usage plan in a specified time interval. + */ + getUsage(params: APIGateway.Types.GetUsageRequest, callback?: (err: AWSError, data: APIGateway.Types.Usage) => void): Request; + /** + * Gets the usage data of a usage plan in a specified time interval. + */ + getUsage(callback?: (err: AWSError, data: APIGateway.Types.Usage) => void): Request; + /** + * Gets a usage plan of a given plan identifier. + */ + getUsagePlan(params: APIGateway.Types.GetUsagePlanRequest, callback?: (err: AWSError, data: APIGateway.Types.UsagePlan) => void): Request; + /** + * Gets a usage plan of a given plan identifier. + */ + getUsagePlan(callback?: (err: AWSError, data: APIGateway.Types.UsagePlan) => void): Request; + /** + * Gets a usage plan key of a given key identifier. + */ + getUsagePlanKey(params: APIGateway.Types.GetUsagePlanKeyRequest, callback?: (err: AWSError, data: APIGateway.Types.UsagePlanKey) => void): Request; + /** + * Gets a usage plan key of a given key identifier. + */ + getUsagePlanKey(callback?: (err: AWSError, data: APIGateway.Types.UsagePlanKey) => void): Request; + /** + * Gets all the usage plan keys representing the API keys added to a specified usage plan. + */ + getUsagePlanKeys(params: APIGateway.Types.GetUsagePlanKeysRequest, callback?: (err: AWSError, data: APIGateway.Types.UsagePlanKeys) => void): Request; + /** + * Gets all the usage plan keys representing the API keys added to a specified usage plan. + */ + getUsagePlanKeys(callback?: (err: AWSError, data: APIGateway.Types.UsagePlanKeys) => void): Request; + /** + * Gets all the usage plans of the caller's account. + */ + getUsagePlans(params: APIGateway.Types.GetUsagePlansRequest, callback?: (err: AWSError, data: APIGateway.Types.UsagePlans) => void): Request; + /** + * Gets all the usage plans of the caller's account. + */ + getUsagePlans(callback?: (err: AWSError, data: APIGateway.Types.UsagePlans) => void): Request; + /** + * Gets a specified VPC link under the caller's account in a region. + */ + getVpcLink(params: APIGateway.Types.GetVpcLinkRequest, callback?: (err: AWSError, data: APIGateway.Types.VpcLink) => void): Request; + /** + * Gets a specified VPC link under the caller's account in a region. + */ + getVpcLink(callback?: (err: AWSError, data: APIGateway.Types.VpcLink) => void): Request; + /** + * Gets the VpcLinks collection under the caller's account in a selected region. + */ + getVpcLinks(params: APIGateway.Types.GetVpcLinksRequest, callback?: (err: AWSError, data: APIGateway.Types.VpcLinks) => void): Request; + /** + * Gets the VpcLinks collection under the caller's account in a selected region. + */ + getVpcLinks(callback?: (err: AWSError, data: APIGateway.Types.VpcLinks) => void): Request; + /** + * Import API keys from an external source, such as a CSV-formatted file. + */ + importApiKeys(params: APIGateway.Types.ImportApiKeysRequest, callback?: (err: AWSError, data: APIGateway.Types.ApiKeyIds) => void): Request; + /** + * Import API keys from an external source, such as a CSV-formatted file. + */ + importApiKeys(callback?: (err: AWSError, data: APIGateway.Types.ApiKeyIds) => void): Request; + /** + * + */ + importDocumentationParts(params: APIGateway.Types.ImportDocumentationPartsRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationPartIds) => void): Request; + /** + * + */ + importDocumentationParts(callback?: (err: AWSError, data: APIGateway.Types.DocumentationPartIds) => void): Request; + /** + * A feature of the API Gateway control service for creating a new API from an external API definition file. + */ + importRestApi(params: APIGateway.Types.ImportRestApiRequest, callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * A feature of the API Gateway control service for creating a new API from an external API definition file. + */ + importRestApi(callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi. + */ + putGatewayResponse(params: APIGateway.Types.PutGatewayResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.GatewayResponse) => void): Request; + /** + * Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi. + */ + putGatewayResponse(callback?: (err: AWSError, data: APIGateway.Types.GatewayResponse) => void): Request; + /** + * Sets up a method's integration. + */ + putIntegration(params: APIGateway.Types.PutIntegrationRequest, callback?: (err: AWSError, data: APIGateway.Types.Integration) => void): Request; + /** + * Sets up a method's integration. + */ + putIntegration(callback?: (err: AWSError, data: APIGateway.Types.Integration) => void): Request; + /** + * Represents a put integration. + */ + putIntegrationResponse(params: APIGateway.Types.PutIntegrationResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.IntegrationResponse) => void): Request; + /** + * Represents a put integration. + */ + putIntegrationResponse(callback?: (err: AWSError, data: APIGateway.Types.IntegrationResponse) => void): Request; + /** + * Add a method to an existing Resource resource. + */ + putMethod(params: APIGateway.Types.PutMethodRequest, callback?: (err: AWSError, data: APIGateway.Types.Method) => void): Request; + /** + * Add a method to an existing Resource resource. + */ + putMethod(callback?: (err: AWSError, data: APIGateway.Types.Method) => void): Request; + /** + * Adds a MethodResponse to an existing Method resource. + */ + putMethodResponse(params: APIGateway.Types.PutMethodResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.MethodResponse) => void): Request; + /** + * Adds a MethodResponse to an existing Method resource. + */ + putMethodResponse(callback?: (err: AWSError, data: APIGateway.Types.MethodResponse) => void): Request; + /** + * A feature of the API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API. + */ + putRestApi(params: APIGateway.Types.PutRestApiRequest, callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * A feature of the API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API. + */ + putRestApi(callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Adds or updates a tag on a given resource. + */ + tagResource(params: APIGateway.Types.TagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds or updates a tag on a given resource. + */ + tagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Simulate the execution of an Authorizer in your RestApi with headers, parameters, and an incoming request body. Use Lambda Function as Authorizer Use Cognito User Pool as Authorizer + */ + testInvokeAuthorizer(params: APIGateway.Types.TestInvokeAuthorizerRequest, callback?: (err: AWSError, data: APIGateway.Types.TestInvokeAuthorizerResponse) => void): Request; + /** + * Simulate the execution of an Authorizer in your RestApi with headers, parameters, and an incoming request body. Use Lambda Function as Authorizer Use Cognito User Pool as Authorizer + */ + testInvokeAuthorizer(callback?: (err: AWSError, data: APIGateway.Types.TestInvokeAuthorizerResponse) => void): Request; + /** + * Simulate the execution of a Method in your RestApi with headers, parameters, and an incoming request body. + */ + testInvokeMethod(params: APIGateway.Types.TestInvokeMethodRequest, callback?: (err: AWSError, data: APIGateway.Types.TestInvokeMethodResponse) => void): Request; + /** + * Simulate the execution of a Method in your RestApi with headers, parameters, and an incoming request body. + */ + testInvokeMethod(callback?: (err: AWSError, data: APIGateway.Types.TestInvokeMethodResponse) => void): Request; + /** + * Removes a tag from a given resource. + */ + untagResource(params: APIGateway.Types.UntagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a tag from a given resource. + */ + untagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Changes information about the current Account resource. + */ + updateAccount(params: APIGateway.Types.UpdateAccountRequest, callback?: (err: AWSError, data: APIGateway.Types.Account) => void): Request; + /** + * Changes information about the current Account resource. + */ + updateAccount(callback?: (err: AWSError, data: APIGateway.Types.Account) => void): Request; + /** + * Changes information about an ApiKey resource. + */ + updateApiKey(params: APIGateway.Types.UpdateApiKeyRequest, callback?: (err: AWSError, data: APIGateway.Types.ApiKey) => void): Request; + /** + * Changes information about an ApiKey resource. + */ + updateApiKey(callback?: (err: AWSError, data: APIGateway.Types.ApiKey) => void): Request; + /** + * Updates an existing Authorizer resource. AWS CLI + */ + updateAuthorizer(params: APIGateway.Types.UpdateAuthorizerRequest, callback?: (err: AWSError, data: APIGateway.Types.Authorizer) => void): Request; + /** + * Updates an existing Authorizer resource. AWS CLI + */ + updateAuthorizer(callback?: (err: AWSError, data: APIGateway.Types.Authorizer) => void): Request; + /** + * Changes information about the BasePathMapping resource. + */ + updateBasePathMapping(params: APIGateway.Types.UpdateBasePathMappingRequest, callback?: (err: AWSError, data: APIGateway.Types.BasePathMapping) => void): Request; + /** + * Changes information about the BasePathMapping resource. + */ + updateBasePathMapping(callback?: (err: AWSError, data: APIGateway.Types.BasePathMapping) => void): Request; + /** + * Changes information about an ClientCertificate resource. + */ + updateClientCertificate(params: APIGateway.Types.UpdateClientCertificateRequest, callback?: (err: AWSError, data: APIGateway.Types.ClientCertificate) => void): Request; + /** + * Changes information about an ClientCertificate resource. + */ + updateClientCertificate(callback?: (err: AWSError, data: APIGateway.Types.ClientCertificate) => void): Request; + /** + * Changes information about a Deployment resource. + */ + updateDeployment(params: APIGateway.Types.UpdateDeploymentRequest, callback?: (err: AWSError, data: APIGateway.Types.Deployment) => void): Request; + /** + * Changes information about a Deployment resource. + */ + updateDeployment(callback?: (err: AWSError, data: APIGateway.Types.Deployment) => void): Request; + /** + * + */ + updateDocumentationPart(params: APIGateway.Types.UpdateDocumentationPartRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationPart) => void): Request; + /** + * + */ + updateDocumentationPart(callback?: (err: AWSError, data: APIGateway.Types.DocumentationPart) => void): Request; + /** + * + */ + updateDocumentationVersion(params: APIGateway.Types.UpdateDocumentationVersionRequest, callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersion) => void): Request; + /** + * + */ + updateDocumentationVersion(callback?: (err: AWSError, data: APIGateway.Types.DocumentationVersion) => void): Request; + /** + * Changes information about the DomainName resource. + */ + updateDomainName(params: APIGateway.Types.UpdateDomainNameRequest, callback?: (err: AWSError, data: APIGateway.Types.DomainName) => void): Request; + /** + * Changes information about the DomainName resource. + */ + updateDomainName(callback?: (err: AWSError, data: APIGateway.Types.DomainName) => void): Request; + /** + * Updates a GatewayResponse of a specified response type on the given RestApi. + */ + updateGatewayResponse(params: APIGateway.Types.UpdateGatewayResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.GatewayResponse) => void): Request; + /** + * Updates a GatewayResponse of a specified response type on the given RestApi. + */ + updateGatewayResponse(callback?: (err: AWSError, data: APIGateway.Types.GatewayResponse) => void): Request; + /** + * Represents an update integration. + */ + updateIntegration(params: APIGateway.Types.UpdateIntegrationRequest, callback?: (err: AWSError, data: APIGateway.Types.Integration) => void): Request; + /** + * Represents an update integration. + */ + updateIntegration(callback?: (err: AWSError, data: APIGateway.Types.Integration) => void): Request; + /** + * Represents an update integration response. + */ + updateIntegrationResponse(params: APIGateway.Types.UpdateIntegrationResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.IntegrationResponse) => void): Request; + /** + * Represents an update integration response. + */ + updateIntegrationResponse(callback?: (err: AWSError, data: APIGateway.Types.IntegrationResponse) => void): Request; + /** + * Updates an existing Method resource. + */ + updateMethod(params: APIGateway.Types.UpdateMethodRequest, callback?: (err: AWSError, data: APIGateway.Types.Method) => void): Request; + /** + * Updates an existing Method resource. + */ + updateMethod(callback?: (err: AWSError, data: APIGateway.Types.Method) => void): Request; + /** + * Updates an existing MethodResponse resource. + */ + updateMethodResponse(params: APIGateway.Types.UpdateMethodResponseRequest, callback?: (err: AWSError, data: APIGateway.Types.MethodResponse) => void): Request; + /** + * Updates an existing MethodResponse resource. + */ + updateMethodResponse(callback?: (err: AWSError, data: APIGateway.Types.MethodResponse) => void): Request; + /** + * Changes information about a model. + */ + updateModel(params: APIGateway.Types.UpdateModelRequest, callback?: (err: AWSError, data: APIGateway.Types.Model) => void): Request; + /** + * Changes information about a model. + */ + updateModel(callback?: (err: AWSError, data: APIGateway.Types.Model) => void): Request; + /** + * Updates a RequestValidator of a given RestApi. + */ + updateRequestValidator(params: APIGateway.Types.UpdateRequestValidatorRequest, callback?: (err: AWSError, data: APIGateway.Types.RequestValidator) => void): Request; + /** + * Updates a RequestValidator of a given RestApi. + */ + updateRequestValidator(callback?: (err: AWSError, data: APIGateway.Types.RequestValidator) => void): Request; + /** + * Changes information about a Resource resource. + */ + updateResource(params: APIGateway.Types.UpdateResourceRequest, callback?: (err: AWSError, data: APIGateway.Types.Resource) => void): Request; + /** + * Changes information about a Resource resource. + */ + updateResource(callback?: (err: AWSError, data: APIGateway.Types.Resource) => void): Request; + /** + * Changes information about the specified API. + */ + updateRestApi(params: APIGateway.Types.UpdateRestApiRequest, callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Changes information about the specified API. + */ + updateRestApi(callback?: (err: AWSError, data: APIGateway.Types.RestApi) => void): Request; + /** + * Changes information about a Stage resource. + */ + updateStage(params: APIGateway.Types.UpdateStageRequest, callback?: (err: AWSError, data: APIGateway.Types.Stage) => void): Request; + /** + * Changes information about a Stage resource. + */ + updateStage(callback?: (err: AWSError, data: APIGateway.Types.Stage) => void): Request; + /** + * Grants a temporary extension to the remaining quota of a usage plan associated with a specified API key. + */ + updateUsage(params: APIGateway.Types.UpdateUsageRequest, callback?: (err: AWSError, data: APIGateway.Types.Usage) => void): Request; + /** + * Grants a temporary extension to the remaining quota of a usage plan associated with a specified API key. + */ + updateUsage(callback?: (err: AWSError, data: APIGateway.Types.Usage) => void): Request; + /** + * Updates a usage plan of a given plan Id. + */ + updateUsagePlan(params: APIGateway.Types.UpdateUsagePlanRequest, callback?: (err: AWSError, data: APIGateway.Types.UsagePlan) => void): Request; + /** + * Updates a usage plan of a given plan Id. + */ + updateUsagePlan(callback?: (err: AWSError, data: APIGateway.Types.UsagePlan) => void): Request; + /** + * Updates an existing VpcLink of a specified identifier. + */ + updateVpcLink(params: APIGateway.Types.UpdateVpcLinkRequest, callback?: (err: AWSError, data: APIGateway.Types.VpcLink) => void): Request; + /** + * Updates an existing VpcLink of a specified identifier. + */ + updateVpcLink(callback?: (err: AWSError, data: APIGateway.Types.VpcLink) => void): Request; +} +declare namespace APIGateway { + export interface AccessLogSettings { + /** + * A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId. + */ + format?: String; + /** + * The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with amazon-apigateway-. + */ + destinationArn?: String; + } + export interface Account { + /** + * The ARN of an Amazon CloudWatch role for the current Account. + */ + cloudwatchRoleArn?: String; + /** + * Specifies the API request limits configured for the current Account. + */ + throttleSettings?: ThrottleSettings; + /** + * A list of features supported for the account. When usage plans are enabled, the features list will include an entry of "UsagePlans". + */ + features?: ListOfString; + /** + * The version of the API keys used for the account. + */ + apiKeyVersion?: String; + } + export interface ApiKey { + /** + * The identifier of the API Key. + */ + id?: String; + /** + * The value of the API Key. + */ + value?: String; + /** + * The name of the API Key. + */ + name?: String; + /** + * An AWS Marketplace customer identifier , when integrating with the AWS SaaS Marketplace. + */ + customerId?: String; + /** + * The description of the API Key. + */ + description?: String; + /** + * Specifies whether the API Key can be used by callers. + */ + enabled?: Boolean; + /** + * The timestamp when the API Key was created. + */ + createdDate?: Timestamp; + /** + * The timestamp when the API Key was last updated. + */ + lastUpdatedDate?: Timestamp; + /** + * A list of Stage resources that are associated with the ApiKey resource. + */ + stageKeys?: ListOfString; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + } + export interface ApiKeyIds { + /** + * A list of all the ApiKey identifiers. + */ + ids?: ListOfString; + /** + * A list of warning messages. + */ + warnings?: ListOfString; + } + export type ApiKeySourceType = "HEADER"|"AUTHORIZER"|string; + export interface ApiKeys { + /** + * A list of warning messages logged during the import of API keys when the failOnWarnings option is set to true. + */ + warnings?: ListOfString; + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfApiKey; + } + export type ApiKeysFormat = "csv"|string; + export interface ApiStage { + /** + * API Id of the associated API stage in a usage plan. + */ + apiId?: String; + /** + * API stage name of the associated API stage in a usage plan. + */ + stage?: String; + /** + * Map containing method level throttling information for API stage in a usage plan. + */ + throttle?: MapOfApiStageThrottleSettings; + } + export interface Authorizer { + /** + * The identifier for the authorizer resource. + */ + id?: String; + /** + * [Required] The name of the authorizer. + */ + name?: String; + /** + * The authorizer type. Valid values are TOKEN for a Lambda function using a single authorization token submitted in a custom header, REQUEST for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS for using an Amazon Cognito user pool. + */ + type?: AuthorizerType; + /** + * A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer. Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. For a TOKEN or REQUEST authorizer, this is not defined. + */ + providerARNs?: ListOfARNs; + /** + * Optional customer-defined field, used in OpenAPI imports and exports without functional impact. + */ + authType?: String; + /** + * Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. + */ + authorizerUri?: String; + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. + */ + authorizerCredentials?: String; + /** + * The identity source for which authorization is requested. For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is Auth, the header mapping expression is method.request.header.Auth.For the REQUEST authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an Auth header, a Name query string parameter are defined as identity sources, this value is method.request.header.Auth, method.request.querystring.Name. These parameters will be used to derive the authorization caching key and to perform runtime validation of the REQUEST authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional. + */ + identitySource?: String; + /** + * A validation expression for the incoming identity token. For TOKEN authorizers, this value is a regular expression. For COGNITO_USER_POOLS authorizers, API Gateway will match the aud field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the REQUEST authorizer. + */ + identityValidationExpression?: String; + /** + * The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. + */ + authorizerResultTtlInSeconds?: NullableInteger; + } + export type AuthorizerType = "TOKEN"|"REQUEST"|"COGNITO_USER_POOLS"|string; + export interface Authorizers { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfAuthorizer; + } + export interface BasePathMapping { + /** + * The base path name that callers of the API must provide as part of the URL after the domain name. + */ + basePath?: String; + /** + * The string identifier of the associated RestApi. + */ + restApiId?: String; + /** + * The name of the associated stage. + */ + stage?: String; + } + export interface BasePathMappings { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfBasePathMapping; + } + export type _Blob = Buffer|Uint8Array|Blob|string; + export type Boolean = boolean; + export type CacheClusterSize = "0.5"|"1.6"|"6.1"|"13.5"|"28.4"|"58.2"|"118"|"237"|string; + export type CacheClusterStatus = "CREATE_IN_PROGRESS"|"AVAILABLE"|"DELETE_IN_PROGRESS"|"NOT_AVAILABLE"|"FLUSH_IN_PROGRESS"|string; + export interface CanarySettings { + /** + * The percent (0-100) of traffic diverted to a canary deployment. + */ + percentTraffic?: Double; + /** + * The ID of the canary deployment. + */ + deploymentId?: String; + /** + * Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values. + */ + stageVariableOverrides?: MapOfStringToString; + /** + * A Boolean flag to indicate whether the canary deployment uses the stage cache or not. + */ + useStageCache?: Boolean; + } + export interface ClientCertificate { + /** + * The identifier of the client certificate. + */ + clientCertificateId?: String; + /** + * The description of the client certificate. + */ + description?: String; + /** + * The PEM-encoded public key of the client certificate, which can be used to configure certificate authentication in the integration endpoint . + */ + pemEncodedCertificate?: String; + /** + * The timestamp when the client certificate was created. + */ + createdDate?: Timestamp; + /** + * The timestamp when the client certificate will expire. + */ + expirationDate?: Timestamp; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + } + export interface ClientCertificates { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfClientCertificate; + } + export type ConnectionType = "INTERNET"|"VPC_LINK"|string; + export type ContentHandlingStrategy = "CONVERT_TO_BINARY"|"CONVERT_TO_TEXT"|string; + export interface CreateApiKeyRequest { + /** + * The name of the ApiKey. + */ + name?: String; + /** + * The description of the ApiKey. + */ + description?: String; + /** + * Specifies whether the ApiKey can be used by callers. + */ + enabled?: Boolean; + /** + * Specifies whether (true) or not (false) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used. + */ + generateDistinctId?: Boolean; + /** + * Specifies a value of the API key. + */ + value?: String; + /** + * DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key. + */ + stageKeys?: ListOfStageKeys; + /** + * An AWS Marketplace customer identifier , when integrating with the AWS SaaS Marketplace. + */ + customerId?: String; + /** + * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags?: MapOfStringToString; + } + export interface CreateAuthorizerRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the authorizer. + */ + name: String; + /** + * [Required] The authorizer type. Valid values are TOKEN for a Lambda function using a single authorization token submitted in a custom header, REQUEST for a Lambda function using incoming request parameters, and COGNITO_USER_POOLS for using an Amazon Cognito user pool. + */ + type: AuthorizerType; + /** + * A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS authorizer. Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}. For a TOKEN or REQUEST authorizer, this is not defined. + */ + providerARNs?: ListOfARNs; + /** + * Optional customer-defined field, used in OpenAPI imports and exports without functional impact. + */ + authType?: String; + /** + * Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN or REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form arn:aws:apigateway:{region}:lambda:path/{service_api}, where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. + */ + authorizerUri?: String; + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. + */ + authorizerCredentials?: String; + /** + * The identity source for which authorization is requested. For a TOKEN or COGNITO_USER_POOLS authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is Auth, the header mapping expression is method.request.header.Auth.For the REQUEST authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an Auth header, a Name query string parameter are defined as identity sources, this value is method.request.header.Auth, method.request.querystring.Name. These parameters will be used to derive the authorization caching key and to perform runtime validation of the REQUEST authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional. + */ + identitySource?: String; + /** + * A validation expression for the incoming identity token. For TOKEN authorizers, this value is a regular expression. For COGNITO_USER_POOLS authorizers, API Gateway will match the aud field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the REQUEST authorizer. + */ + identityValidationExpression?: String; + /** + * The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. + */ + authorizerResultTtlInSeconds?: NullableInteger; + } + export interface CreateBasePathMappingRequest { + /** + * [Required] The domain name of the BasePathMapping resource to create. + */ + domainName: String; + /** + * The base path name that callers of the API must provide as part of the URL after the domain name. This value must be unique for all of the mappings across a single API. Specify '(none)' if you do not want callers to specify a base path name after the domain name. + */ + basePath?: String; + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The name of the API's stage that you want to use for this mapping. Specify '(none)' if you want callers to explicitly specify the stage name after any base path name. + */ + stage?: String; + } + export interface CreateDeploymentRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The name of the Stage resource for the Deployment resource to create. + */ + stageName?: String; + /** + * The description of the Stage resource for the Deployment resource to create. + */ + stageDescription?: String; + /** + * The description for the Deployment resource to create. + */ + description?: String; + /** + * Enables a cache cluster for the Stage resource specified in the input. + */ + cacheClusterEnabled?: NullableBoolean; + /** + * Specifies the cache cluster size for the Stage resource specified in the input, if a cache cluster is enabled. + */ + cacheClusterSize?: CacheClusterSize; + /** + * A map that defines the stage variables for the Stage resource that is associated with the new deployment. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + variables?: MapOfStringToString; + /** + * The input configuration for the canary deployment when the deployment is a canary release deployment. + */ + canarySettings?: DeploymentCanarySettings; + /** + * Specifies whether active tracing with X-ray is enabled for the Stage. + */ + tracingEnabled?: NullableBoolean; + } + export interface CreateDocumentationPartRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The location of the targeted API entity of the to-be-created documentation part. + */ + location: DocumentationPartLocation; + /** + * [Required] The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published. + */ + properties: String; + } + export interface CreateDocumentationVersionRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The version identifier of the new snapshot. + */ + documentationVersion: String; + /** + * The stage name to be associated with the new documentation snapshot. + */ + stageName?: String; + /** + * A description about the new documentation snapshot. + */ + description?: String; + } + export interface CreateDomainNameRequest { + /** + * [Required] The name of the DomainName resource. + */ + domainName: String; + /** + * The user-friendly name of the certificate that will be used by edge-optimized endpoint for this domain name. + */ + certificateName?: String; + /** + * [Deprecated] The body of the server certificate that will be used by edge-optimized endpoint for this domain name provided by your certificate authority. + */ + certificateBody?: String; + /** + * [Deprecated] Your edge-optimized endpoint's domain name certificate's private key. + */ + certificatePrivateKey?: String; + /** + * [Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines, used by an edge-optimized endpoint for this domain name. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path. + */ + certificateChain?: String; + /** + * The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source. + */ + certificateArn?: String; + /** + * The user-friendly name of the certificate that will be used by regional endpoint for this domain name. + */ + regionalCertificateName?: String; + /** + * The reference to an AWS-managed certificate that will be used by regional endpoint for this domain name. AWS Certificate Manager is the only supported source. + */ + regionalCertificateArn?: String; + /** + * The endpoint configuration of this DomainName showing the endpoint types of the domain name. + */ + endpointConfiguration?: EndpointConfiguration; + /** + * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags?: MapOfStringToString; + /** + * The Transport Layer Security (TLS) version + cipher suite for this DomainName. The valid values are TLS_1_0 and TLS_1_2. + */ + securityPolicy?: SecurityPolicy; + mutualTlsAuthentication?: MutualTlsAuthenticationInput; + } + export interface CreateModelRequest { + /** + * [Required] The RestApi identifier under which the Model will be created. + */ + restApiId: String; + /** + * [Required] The name of the model. Must be alphanumeric. + */ + name: String; + /** + * The description of the model. + */ + description?: String; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. + */ + schema?: String; + /** + * [Required] The content-type for the model. + */ + contentType: String; + } + export interface CreateRequestValidatorRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The name of the to-be-created RequestValidator. + */ + name?: String; + /** + * A Boolean flag to indicate whether to validate request body according to the configured model schema for the method (true) or not (false). + */ + validateRequestBody?: Boolean; + /** + * A Boolean flag to indicate whether to validate request parameters, true, or not false. + */ + validateRequestParameters?: Boolean; + } + export interface CreateResourceRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The parent resource's identifier. + */ + parentId: String; + /** + * The last path segment for this resource. + */ + pathPart: String; + } + export interface CreateRestApiRequest { + /** + * [Required] The name of the RestApi. + */ + name: String; + /** + * The description of the RestApi. + */ + description?: String; + /** + * A version identifier for the API. + */ + version?: String; + /** + * The ID of the RestApi that you want to clone from. + */ + cloneFrom?: String; + /** + * The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads. + */ + binaryMediaTypes?: ListOfString; + /** + * A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size. + */ + minimumCompressionSize?: NullableInteger; + /** + * The source of the API key for metering requests according to a usage plan. Valid values are: HEADER to read the API key from the X-API-Key header of a request. AUTHORIZER to read the API key from the UsageIdentifierKey from a custom authorizer. + */ + apiKeySource?: ApiKeySourceType; + /** + * The endpoint configuration of this RestApi showing the endpoint types of the API. + */ + endpointConfiguration?: EndpointConfiguration; + /** + * A stringified JSON policy document that applies to this RestApi regardless of the caller and Method configuration. + */ + policy?: String; + /** + * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags?: MapOfStringToString; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + disableExecuteApiEndpoint?: Boolean; + } + export interface CreateStageRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name for the Stage resource. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. + */ + stageName: String; + /** + * [Required] The identifier of the Deployment resource for the Stage resource. + */ + deploymentId: String; + /** + * The description of the Stage resource. + */ + description?: String; + /** + * Whether cache clustering is enabled for the stage. + */ + cacheClusterEnabled?: Boolean; + /** + * The stage's cache cluster size. + */ + cacheClusterSize?: CacheClusterSize; + /** + * A map that defines the stage variables for the new Stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + variables?: MapOfStringToString; + /** + * The version of the associated API documentation. + */ + documentationVersion?: String; + /** + * The canary deployment settings of this stage. + */ + canarySettings?: CanarySettings; + /** + * Specifies whether active tracing with X-ray is enabled for the Stage. + */ + tracingEnabled?: Boolean; + /** + * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags?: MapOfStringToString; + } + export interface CreateUsagePlanKeyRequest { + /** + * [Required] The Id of the UsagePlan resource representing the usage plan containing the to-be-created UsagePlanKey resource representing a plan customer. + */ + usagePlanId: String; + /** + * [Required] The identifier of a UsagePlanKey resource for a plan customer. + */ + keyId: String; + /** + * [Required] The type of a UsagePlanKey resource for a plan customer. + */ + keyType: String; + } + export interface CreateUsagePlanRequest { + /** + * [Required] The name of the usage plan. + */ + name: String; + /** + * The description of the usage plan. + */ + description?: String; + /** + * The associated API stages of the usage plan. + */ + apiStages?: ListOfApiStage; + /** + * The throttling limits of the usage plan. + */ + throttle?: ThrottleSettings; + /** + * The quota of the usage plan. + */ + quota?: QuotaSettings; + /** + * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags?: MapOfStringToString; + } + export interface CreateVpcLinkRequest { + /** + * [Required] The name used to label and identify the VPC link. + */ + name: String; + /** + * The description of the VPC link. + */ + description?: String; + /** + * [Required] The ARN of the network load balancer of the VPC targeted by the VPC link. The network load balancer must be owned by the same AWS account of the API owner. + */ + targetArns: ListOfString; + /** + * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags?: MapOfStringToString; + } + export interface DeleteApiKeyRequest { + /** + * [Required] The identifier of the ApiKey resource to be deleted. + */ + apiKey: String; + } + export interface DeleteAuthorizerRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the Authorizer resource. + */ + authorizerId: String; + } + export interface DeleteBasePathMappingRequest { + /** + * [Required] The domain name of the BasePathMapping resource to delete. + */ + domainName: String; + /** + * [Required] The base path name of the BasePathMapping resource to delete. To specify an empty base path, set this parameter to '(none)'. + */ + basePath: String; + } + export interface DeleteClientCertificateRequest { + /** + * [Required] The identifier of the ClientCertificate resource to be deleted. + */ + clientCertificateId: String; + } + export interface DeleteDeploymentRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the Deployment resource to delete. + */ + deploymentId: String; + } + export interface DeleteDocumentationPartRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the to-be-deleted documentation part. + */ + documentationPartId: String; + } + export interface DeleteDocumentationVersionRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The version identifier of a to-be-deleted documentation snapshot. + */ + documentationVersion: String; + } + export interface DeleteDomainNameRequest { + /** + * [Required] The name of the DomainName resource to be deleted. + */ + domainName: String; + } + export interface DeleteGatewayResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPE + */ + responseType: GatewayResponseType; + } + export interface DeleteIntegrationRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a delete integration request's resource identifier. + */ + resourceId: String; + /** + * [Required] Specifies a delete integration request's HTTP method. + */ + httpMethod: String; + } + export interface DeleteIntegrationResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a delete integration response request's resource identifier. + */ + resourceId: String; + /** + * [Required] Specifies a delete integration response request's HTTP method. + */ + httpMethod: String; + /** + * [Required] Specifies a delete integration response request's status code. + */ + statusCode: StatusCode; + } + export interface DeleteMethodRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the Method resource. + */ + resourceId: String; + /** + * [Required] The HTTP verb of the Method resource. + */ + httpMethod: String; + } + export interface DeleteMethodResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the MethodResponse resource. + */ + resourceId: String; + /** + * [Required] The HTTP verb of the Method resource. + */ + httpMethod: String; + /** + * [Required] The status code identifier for the MethodResponse resource. + */ + statusCode: StatusCode; + } + export interface DeleteModelRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the model to delete. + */ + modelName: String; + } + export interface DeleteRequestValidatorRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the RequestValidator to be deleted. + */ + requestValidatorId: String; + } + export interface DeleteResourceRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the Resource resource. + */ + resourceId: String; + } + export interface DeleteRestApiRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + } + export interface DeleteStageRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the Stage resource to delete. + */ + stageName: String; + } + export interface DeleteUsagePlanKeyRequest { + /** + * [Required] The Id of the UsagePlan resource representing the usage plan containing the to-be-deleted UsagePlanKey resource representing a plan customer. + */ + usagePlanId: String; + /** + * [Required] The Id of the UsagePlanKey resource to be deleted. + */ + keyId: String; + } + export interface DeleteUsagePlanRequest { + /** + * [Required] The Id of the to-be-deleted usage plan. + */ + usagePlanId: String; + } + export interface DeleteVpcLinkRequest { + /** + * [Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + */ + vpcLinkId: String; + } + export interface Deployment { + /** + * The identifier for the deployment resource. + */ + id?: String; + /** + * The description for the deployment resource. + */ + description?: String; + /** + * The date and time that the deployment resource was created. + */ + createdDate?: Timestamp; + /** + * A summary of the RestApi at the date and time that the deployment resource was created. + */ + apiSummary?: PathToMapOfMethodSnapshot; + } + export interface DeploymentCanarySettings { + /** + * The percentage (0.0-100.0) of traffic routed to the canary deployment. + */ + percentTraffic?: Double; + /** + * A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values. + */ + stageVariableOverrides?: MapOfStringToString; + /** + * A Boolean flag to indicate whether the canary release deployment uses the stage cache or not. + */ + useStageCache?: Boolean; + } + export interface Deployments { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfDeployment; + } + export interface DocumentationPart { + /** + * The DocumentationPart identifier, generated by API Gateway when the DocumentationPart is created. + */ + id?: String; + /** + * The location of the API entity to which the documentation applies. Valid fields depend on the targeted API entity type. All the valid location fields are not required. If not explicitly specified, a valid location field is treated as a wildcard and associated documentation content may be inherited by matching entities, unless overridden. + */ + location?: DocumentationPartLocation; + /** + * A content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \"description\": \"The API does ...\" }". Only OpenAPI-compliant documentation-related fields from the properties map are exported and, hence, published as part of the API entity definitions, while the original documentation parts are exported in a OpenAPI extension of x-amazon-apigateway-documentation. + */ + properties?: String; + } + export interface DocumentationPartIds { + /** + * A list of the returned documentation part identifiers. + */ + ids?: ListOfString; + /** + * A list of warning messages reported during import of documentation parts. + */ + warnings?: ListOfString; + } + export interface DocumentationPartLocation { + /** + * [Required] The type of API entity to which the documentation content applies. Valid values are API, AUTHORIZER, MODEL, RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. Content inheritance does not apply to any entity of the API, AUTHORIZER, METHOD, MODEL, REQUEST_BODY, or RESOURCE type. + */ + type: DocumentationPartType; + /** + * The URL path of the target. It is a valid field for the API entity types of RESOURCE, METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is / for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other location attributes, the child entity's path attribute must match that of the parent entity as a prefix. + */ + path?: String; + /** + * The HTTP verb of a method. It is a valid field for the API entity types of METHOD, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY, RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is * for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other location attributes, the child entity's method attribute must match that of the parent entity exactly. + */ + method?: String; + /** + * The HTTP status code of a response. It is a valid field for the API entity types of RESPONSE, RESPONSE_HEADER, and RESPONSE_BODY. The default value is * for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other location attributes, the child entity's statusCode attribute must match that of the parent entity exactly. + */ + statusCode?: DocumentationPartLocationStatusCode; + /** + * The name of the targeted API entity. It is a valid and required field for the API entity types of AUTHORIZER, MODEL, PATH_PARAMETER, QUERY_PARAMETER, REQUEST_HEADER, REQUEST_BODY and RESPONSE_HEADER. It is an invalid field for any other entity type. + */ + name?: String; + } + export type DocumentationPartLocationStatusCode = string; + export type DocumentationPartType = "API"|"AUTHORIZER"|"MODEL"|"RESOURCE"|"METHOD"|"PATH_PARAMETER"|"QUERY_PARAMETER"|"REQUEST_HEADER"|"REQUEST_BODY"|"RESPONSE"|"RESPONSE_HEADER"|"RESPONSE_BODY"|string; + export interface DocumentationParts { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfDocumentationPart; + } + export interface DocumentationVersion { + /** + * The version identifier of the API documentation snapshot. + */ + version?: String; + /** + * The date when the API documentation snapshot is created. + */ + createdDate?: Timestamp; + /** + * The description of the API documentation snapshot. + */ + description?: String; + } + export interface DocumentationVersions { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfDocumentationVersion; + } + export interface DomainName { + /** + * The custom domain name as an API host name, for example, my-api.example.com. + */ + domainName?: String; + /** + * The name of the certificate that will be used by edge-optimized endpoint for this domain name. + */ + certificateName?: String; + /** + * The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source. + */ + certificateArn?: String; + /** + * The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. + */ + certificateUploadDate?: Timestamp; + /** + * The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by API Gateway when you create a regional endpoint. + */ + regionalDomainName?: String; + /** + * The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway. + */ + regionalHostedZoneId?: String; + /** + * The name of the certificate that will be used for validating the regional domain name. + */ + regionalCertificateName?: String; + /** + * The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source. + */ + regionalCertificateArn?: String; + /** + * The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation. + */ + distributionDomainName?: String; + /** + * The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway. + */ + distributionHostedZoneId?: String; + /** + * The endpoint configuration of this DomainName showing the endpoint types of the domain name. + */ + endpointConfiguration?: EndpointConfiguration; + /** + * The status of the DomainName migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated. + */ + domainNameStatus?: DomainNameStatus; + /** + * An optional text message containing detailed information about status of the DomainName migration. + */ + domainNameStatusMessage?: String; + /** + * The Transport Layer Security (TLS) version + cipher suite for this DomainName. The valid values are TLS_1_0 and TLS_1_2. + */ + securityPolicy?: SecurityPolicy; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + /** + * The mutual TLS authentication configuration for a custom domain name. If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API. + */ + mutualTlsAuthentication?: MutualTlsAuthentication; + } + export type DomainNameStatus = "AVAILABLE"|"UPDATING"|"PENDING"|string; + export interface DomainNames { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfDomainName; + } + export type Double = number; + export interface EndpointConfiguration { + /** + * A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is "EDGE". For a regional API and its custom domain name, the endpoint type is REGIONAL. For a private API, the endpoint type is PRIVATE. + */ + types?: ListOfEndpointType; + /** + * A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for PRIVATE endpoint type. + */ + vpcEndpointIds?: ListOfString; + } + export type EndpointType = "REGIONAL"|"EDGE"|"PRIVATE"|string; + export interface ExportResponse { + /** + * The content-type header value in the HTTP response. This will correspond to a valid 'accept' type in the request. + */ + contentType?: String; + /** + * The content-disposition header value in the HTTP response. + */ + contentDisposition?: String; + /** + * The binary blob response to GetExport, which contains the export. + */ + body?: _Blob; + } + export interface FlushStageAuthorizersCacheRequest { + /** + * The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The name of the stage to flush. + */ + stageName: String; + } + export interface FlushStageCacheRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the stage to flush its cache. + */ + stageName: String; + } + export interface GatewayResponse { + /** + * The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPE + */ + responseType?: GatewayResponseType; + /** + * The HTTP status code for this GatewayResponse. + */ + statusCode?: StatusCode; + /** + * Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. + */ + responseParameters?: MapOfStringToString; + /** + * Response templates of the GatewayResponse as a string-to-string map of key-value pairs. + */ + responseTemplates?: MapOfStringToString; + /** + * A Boolean flag to indicate whether this GatewayResponse is the default gateway response (true) or not (false). A default gateway response is one generated by API Gateway without any customization by an API developer. + */ + defaultResponse?: Boolean; + } + export type GatewayResponseType = "DEFAULT_4XX"|"DEFAULT_5XX"|"RESOURCE_NOT_FOUND"|"UNAUTHORIZED"|"INVALID_API_KEY"|"ACCESS_DENIED"|"AUTHORIZER_FAILURE"|"AUTHORIZER_CONFIGURATION_ERROR"|"INVALID_SIGNATURE"|"EXPIRED_TOKEN"|"MISSING_AUTHENTICATION_TOKEN"|"INTEGRATION_FAILURE"|"INTEGRATION_TIMEOUT"|"API_CONFIGURATION_ERROR"|"UNSUPPORTED_MEDIA_TYPE"|"BAD_REQUEST_PARAMETERS"|"BAD_REQUEST_BODY"|"REQUEST_TOO_LARGE"|"THROTTLED"|"QUOTA_EXCEEDED"|string; + export interface GatewayResponses { + position?: String; + /** + * Returns the entire collection, because of no pagination support. + */ + items?: ListOfGatewayResponse; + } + export interface GenerateClientCertificateRequest { + /** + * The description of the ClientCertificate. + */ + description?: String; + /** + * The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags?: MapOfStringToString; + } + export interface GetAccountRequest { + } + export interface GetApiKeyRequest { + /** + * [Required] The identifier of the ApiKey resource. + */ + apiKey: String; + /** + * A boolean flag to specify whether (true) or not (false) the result contains the key value. + */ + includeValue?: NullableBoolean; + } + export interface GetApiKeysRequest { + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + /** + * The name of queried API keys. + */ + nameQuery?: String; + /** + * The identifier of a customer in AWS Marketplace or an external system, such as a developer portal. + */ + customerId?: String; + /** + * A boolean flag to specify whether (true) or not (false) the result contains key values. + */ + includeValues?: NullableBoolean; + } + export interface GetAuthorizerRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the Authorizer resource. + */ + authorizerId: String; + } + export interface GetAuthorizersRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetBasePathMappingRequest { + /** + * [Required] The domain name of the BasePathMapping resource to be described. + */ + domainName: String; + /** + * [Required] The base path name that callers of the API must provide as part of the URL after the domain name. This value must be unique for all of the mappings across a single API. Specify '(none)' if you do not want callers to specify any base path name after the domain name. + */ + basePath: String; + } + export interface GetBasePathMappingsRequest { + /** + * [Required] The domain name of a BasePathMapping resource. + */ + domainName: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetClientCertificateRequest { + /** + * [Required] The identifier of the ClientCertificate resource to be described. + */ + clientCertificateId: String; + } + export interface GetClientCertificatesRequest { + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetDeploymentRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the Deployment resource to get information about. + */ + deploymentId: String; + /** + * A query parameter to retrieve the specified embedded resources of the returned Deployment resource in the response. In a REST API call, this embed parameter value is a list of comma-separated strings, as in GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=var1,var2. The SDK and other platform-dependent libraries might use a different format for the list. Currently, this request supports only retrieval of the embedded API summary this way. Hence, the parameter value must be a single-valued list containing only the "apisummary" string. For example, GET /restapis/{restapi_id}/deployments/{deployment_id}?embed=apisummary. + */ + embed?: ListOfString; + } + export interface GetDeploymentsRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetDocumentationPartRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The string identifier of the associated RestApi. + */ + documentationPartId: String; + } + export interface GetDocumentationPartsRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The type of API entities of the to-be-retrieved documentation parts. + */ + type?: DocumentationPartType; + /** + * The name of API entities of the to-be-retrieved documentation parts. + */ + nameQuery?: String; + /** + * The path of API entities of the to-be-retrieved documentation parts. + */ + path?: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + /** + * The status of the API documentation parts to retrieve. Valid values are DOCUMENTED for retrieving DocumentationPart resources with content and UNDOCUMENTED for DocumentationPart resources without content. + */ + locationStatus?: LocationStatusType; + } + export interface GetDocumentationVersionRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The version identifier of the to-be-retrieved documentation snapshot. + */ + documentationVersion: String; + } + export interface GetDocumentationVersionsRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetDomainNameRequest { + /** + * [Required] The name of the DomainName resource. + */ + domainName: String; + } + export interface GetDomainNamesRequest { + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetExportRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the Stage that will be exported. + */ + stageName: String; + /** + * [Required] The type of export. Acceptable values are 'oas30' for OpenAPI 3.0.x and 'swagger' for Swagger/OpenAPI 2.0. + */ + exportType: String; + /** + * A key-value map of query string parameters that specify properties of the export, depending on the requested exportType. For exportType oas30 and swagger, any combination of the following parameters are supported: extensions='integrations' or extensions='apigateway' will export the API with x-amazon-apigateway-integration extensions. extensions='authorizers' will export the API with x-amazon-apigateway-authorizer extensions. postman will export the API with Postman extensions, allowing for import to the Postman tool + */ + parameters?: MapOfStringToString; + /** + * The content-type of the export, for example application/json. Currently application/json and application/yaml are supported for exportType ofoas30 and swagger. This should be specified in the Accept header for direct API requests. + */ + accepts?: String; + } + export interface GetGatewayResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPE + */ + responseType: GatewayResponseType; + } + export interface GetGatewayResponsesRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The current pagination position in the paged result set. The GatewayResponse collection does not support pagination and the position does not apply here. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. The GatewayResponses collection does not support pagination and the limit does not apply here. + */ + limit?: NullableInteger; + } + export interface GetIntegrationRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a get integration request's resource identifier + */ + resourceId: String; + /** + * [Required] Specifies a get integration request's HTTP method. + */ + httpMethod: String; + } + export interface GetIntegrationResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a get integration response request's resource identifier. + */ + resourceId: String; + /** + * [Required] Specifies a get integration response request's HTTP method. + */ + httpMethod: String; + /** + * [Required] Specifies a get integration response request's status code. + */ + statusCode: StatusCode; + } + export interface GetMethodRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the Method resource. + */ + resourceId: String; + /** + * [Required] Specifies the method request's HTTP method type. + */ + httpMethod: String; + } + export interface GetMethodResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the MethodResponse resource. + */ + resourceId: String; + /** + * [Required] The HTTP verb of the Method resource. + */ + httpMethod: String; + /** + * [Required] The status code for the MethodResponse resource. + */ + statusCode: StatusCode; + } + export interface GetModelRequest { + /** + * [Required] The RestApi identifier under which the Model exists. + */ + restApiId: String; + /** + * [Required] The name of the model as an identifier. + */ + modelName: String; + /** + * A query parameter of a Boolean value to resolve (true) all external model references and returns a flattened model schema or not (false) The default is false. + */ + flatten?: Boolean; + } + export interface GetModelTemplateRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the model for which to generate a template. + */ + modelName: String; + } + export interface GetModelsRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetRequestValidatorRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the RequestValidator to be retrieved. + */ + requestValidatorId: String; + } + export interface GetRequestValidatorsRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetResourceRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier for the Resource resource. + */ + resourceId: String; + /** + * A query parameter to retrieve the specified resources embedded in the returned Resource representation in the response. This embed parameter value is a list of comma-separated strings. Currently, the request supports only retrieval of the embedded Method resources this way. The query parameter value must be a single-valued list and contain the "methods" string. For example, GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods. + */ + embed?: ListOfString; + } + export interface GetResourcesRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + /** + * A query parameter used to retrieve the specified resources embedded in the returned Resources resource in the response. This embed parameter value is a list of comma-separated strings. Currently, the request supports only retrieval of the embedded Method resources this way. The query parameter value must be a single-valued list and contain the "methods" string. For example, GET /restapis/{restapi_id}/resources?embed=methods. + */ + embed?: ListOfString; + } + export interface GetRestApiRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + } + export interface GetRestApisRequest { + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetSdkRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the Stage that the SDK will use. + */ + stageName: String; + /** + * [Required] The language for the generated SDK. Currently java, javascript, android, objectivec (for iOS), swift (for iOS), and ruby are supported. + */ + sdkType: String; + /** + * A string-to-string key-value map of query parameters sdkType-dependent properties of the SDK. For sdkType of objectivec or swift, a parameter named classPrefix is required. For sdkType of android, parameters named groupId, artifactId, artifactVersion, and invokerPackage are required. For sdkType of java, parameters named serviceName and javaPackageName are required. + */ + parameters?: MapOfStringToString; + } + export interface GetSdkTypeRequest { + /** + * [Required] The identifier of the queried SdkType instance. + */ + id: String; + } + export interface GetSdkTypesRequest { + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetStageRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the Stage resource to get information about. + */ + stageName: String; + } + export interface GetStagesRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The stages' deployment identifiers. + */ + deploymentId?: String; + } + export interface GetTagsRequest { + /** + * [Required] The ARN of a resource that can be tagged. + */ + resourceArn: String; + /** + * (Not currently supported) The current pagination position in the paged result set. + */ + position?: String; + /** + * (Not currently supported) The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetUsagePlanKeyRequest { + /** + * [Required] The Id of the UsagePlan resource representing the usage plan containing the to-be-retrieved UsagePlanKey resource representing a plan customer. + */ + usagePlanId: String; + /** + * [Required] The key Id of the to-be-retrieved UsagePlanKey resource representing a plan customer. + */ + keyId: String; + } + export interface GetUsagePlanKeysRequest { + /** + * [Required] The Id of the UsagePlan resource representing the usage plan containing the to-be-retrieved UsagePlanKey resource representing a plan customer. + */ + usagePlanId: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + /** + * A query parameter specifying the name of the to-be-returned usage plan keys. + */ + nameQuery?: String; + } + export interface GetUsagePlanRequest { + /** + * [Required] The identifier of the UsagePlan resource to be retrieved. + */ + usagePlanId: String; + } + export interface GetUsagePlansRequest { + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The identifier of the API key associated with the usage plans. + */ + keyId?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetUsageRequest { + /** + * [Required] The Id of the usage plan associated with the usage data. + */ + usagePlanId: String; + /** + * The Id of the API key associated with the resultant usage data. + */ + keyId?: String; + /** + * [Required] The starting date (e.g., 2016-01-01) of the usage data. + */ + startDate: String; + /** + * [Required] The ending date (e.g., 2016-12-31) of the usage data. + */ + endDate: String; + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface GetVpcLinkRequest { + /** + * [Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + */ + vpcLinkId: String; + } + export interface GetVpcLinksRequest { + /** + * The current pagination position in the paged result set. + */ + position?: String; + /** + * The maximum number of returned results per page. The default value is 25 and the maximum value is 500. + */ + limit?: NullableInteger; + } + export interface ImportApiKeysRequest { + /** + * The payload of the POST request to import API keys. For the payload format, see API Key File Format. + */ + body: _Blob; + /** + * A query parameter to specify the input format to imported API keys. Currently, only the csv format is supported. + */ + format: ApiKeysFormat; + /** + * A query parameter to indicate whether to rollback ApiKey importation (true) or not (false) when error is encountered. + */ + failOnWarnings?: Boolean; + } + export interface ImportDocumentationPartsRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * A query parameter to indicate whether to overwrite (OVERWRITE) any existing DocumentationParts definition or to merge (MERGE) the new definition into the existing one. The default value is MERGE. + */ + mode?: PutMode; + /** + * A query parameter to specify whether to rollback the documentation importation (true) or not (false) when a warning is encountered. The default value is false. + */ + failOnWarnings?: Boolean; + /** + * [Required] Raw byte array representing the to-be-imported documentation parts. To import from an OpenAPI file, this is a JSON object. + */ + body: _Blob; + } + export interface ImportRestApiRequest { + /** + * A query parameter to indicate whether to rollback the API creation (true) or not (false) when a warning is encountered. The default value is false. + */ + failOnWarnings?: Boolean; + /** + * A key-value map of context-specific query string parameters specifying the behavior of different API importing operations. The following shows operation-specific parameters and their supported values. To exclude DocumentationParts from the import, set parameters as ignore=documentation. To configure the endpoint type, set parameters as endpointConfigurationTypes=EDGE, endpointConfigurationTypes=REGIONAL, or endpointConfigurationTypes=PRIVATE. The default endpoint type is EDGE. To handle imported basepath, set parameters as basepath=ignore, basepath=prepend or basepath=split. For example, the AWS CLI command to exclude documentation from the imported API is: aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json' The AWS CLI command to set the regional endpoint on the imported API is: aws apigateway import-rest-api --parameters endpointConfigurationTypes=REGIONAL --body 'file:///path/to/imported-api-body.json' + */ + parameters?: MapOfStringToString; + /** + * [Required] The POST request body containing external API definitions. Currently, only OpenAPI definition JSON/YAML files are supported. The maximum size of the API definition file is 6MB. + */ + body: _Blob; + } + export type Integer = number; + export interface Integration { + /** + * Specifies an API method integration type. The valid value is one of the following: AWS: for integrating the API method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. AWS_PROXY: for integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. This integration is also referred to as the Lambda proxy integration. HTTP: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. This integration is also referred to as the HTTP custom integration. HTTP_PROXY: for integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. This is also referred to as the HTTP proxy integration. MOCK: for integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend. For the HTTP and HTTP proxy integrations, each integration can specify a protocol (http/https), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a connectionType of VPC_LINK is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. + */ + type?: IntegrationType; + /** + * Specifies the integration's HTTP method type. + */ + httpMethod?: String; + /** + * Specifies Uniform Resource Identifier (URI) of the integration endpoint. For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification, for either standard integration, where connectionType is not VPC_LINK, or private integration, where connectionType is VPC_LINK. For a private HTTP integration, the URI is not used for routing. For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_api refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of GetObject, the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} + */ + uri?: String; + /** + * The type of the network connection to the integration endpoint. The valid value is INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and a network load balancer in a VPC. The default value is INTERNET. + */ + connectionType?: ConnectionType; + /** + * The (id) of the VpcLink used for the integration when connectionType=VPC_LINK and undefined, otherwise. + */ + connectionId?: String; + /** + * Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::\*:user/\*. To use resource-based permissions on supported AWS services, specify null. + */ + credentials?: String; + /** + * A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name must be a valid and unique method request parameter name. + */ + requestParameters?: MapOfStringToString; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. + */ + requestTemplates?: MapOfStringToString; + /** + * Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in requestTemplates. The valid value is one of the following: WHEN_NO_MATCH: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. WHEN_NO_TEMPLATES: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response. NEVER: rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. + */ + passthroughBehavior?: String; + /** + * Specifies how to handle request payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehavior is configured to support payload pass-through. + */ + contentHandling?: ContentHandlingStrategy; + /** + * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. + */ + timeoutInMillis?: Integer; + /** + * Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the cacheNamespace. You can specify the same cacheNamespace across resources to return the same cached data for requests to different resources. + */ + cacheNamespace?: String; + /** + * A list of request parameters whose values API Gateway caches. To be valid values for cacheKeyParameters, these parameters must also be specified for Method requestParameters. + */ + cacheKeyParameters?: ListOfString; + /** + * Specifies the integration's responses. Example: Get integration responses of a method Request GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160607/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} Response The successful response returns 200 OK status and a payload as follows: { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" } Creating an API + */ + integrationResponses?: MapOfIntegrationResponse; + /** + * Specifies the TLS configuration for an integration. + */ + tlsConfig?: TlsConfig; + } + export interface IntegrationResponse { + /** + * Specifies the status code that is used to map the integration response to an existing MethodResponse. + */ + statusCode?: StatusCode; + /** + * Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the .+ regex to match error response. However, make sure that the error response does not contain any newline (\n) character in such cases. If the back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched. + */ + selectionPattern?: String; + /** + * A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix. + */ + responseParameters?: MapOfStringToString; + /** + * Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. + */ + responseTemplates?: MapOfStringToString; + /** + * Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the method response without modification. + */ + contentHandling?: ContentHandlingStrategy; + } + export type IntegrationType = "HTTP"|"AWS"|"MOCK"|"HTTP_PROXY"|"AWS_PROXY"|string; + export type ListOfARNs = ProviderARN[]; + export type ListOfApiKey = ApiKey[]; + export type ListOfApiStage = ApiStage[]; + export type ListOfAuthorizer = Authorizer[]; + export type ListOfBasePathMapping = BasePathMapping[]; + export type ListOfClientCertificate = ClientCertificate[]; + export type ListOfDeployment = Deployment[]; + export type ListOfDocumentationPart = DocumentationPart[]; + export type ListOfDocumentationVersion = DocumentationVersion[]; + export type ListOfDomainName = DomainName[]; + export type ListOfEndpointType = EndpointType[]; + export type ListOfGatewayResponse = GatewayResponse[]; + export type ListOfLong = Long[]; + export type ListOfModel = Model[]; + export type ListOfPatchOperation = PatchOperation[]; + export type ListOfRequestValidator = RequestValidator[]; + export type ListOfResource = Resource[]; + export type ListOfRestApi = RestApi[]; + export type ListOfSdkConfigurationProperty = SdkConfigurationProperty[]; + export type ListOfSdkType = SdkType[]; + export type ListOfStage = Stage[]; + export type ListOfStageKeys = StageKey[]; + export type ListOfString = String[]; + export type ListOfUsage = ListOfLong[]; + export type ListOfUsagePlan = UsagePlan[]; + export type ListOfUsagePlanKey = UsagePlanKey[]; + export type ListOfVpcLink = VpcLink[]; + export type LocationStatusType = "DOCUMENTED"|"UNDOCUMENTED"|string; + export type Long = number; + export type MapOfApiStageThrottleSettings = {[key: string]: ThrottleSettings}; + export type MapOfIntegrationResponse = {[key: string]: IntegrationResponse}; + export type MapOfKeyUsages = {[key: string]: ListOfUsage}; + export type MapOfMethod = {[key: string]: Method}; + export type MapOfMethodResponse = {[key: string]: MethodResponse}; + export type MapOfMethodSettings = {[key: string]: MethodSetting}; + export type MapOfMethodSnapshot = {[key: string]: MethodSnapshot}; + export type MapOfStringToBoolean = {[key: string]: NullableBoolean}; + export type MapOfStringToList = {[key: string]: ListOfString}; + export type MapOfStringToString = {[key: string]: String}; + export interface Method { + /** + * The method's HTTP verb. + */ + httpMethod?: String; + /** + * The method's authorization type. Valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS for using a Cognito user pool. + */ + authorizationType?: String; + /** + * The identifier of an Authorizer to use on this method. The authorizationType must be CUSTOM. + */ + authorizerId?: String; + /** + * A boolean flag specifying whether a valid ApiKey is required to invoke this method. + */ + apiKeyRequired?: NullableBoolean; + /** + * The identifier of a RequestValidator for request validation. + */ + requestValidatorId?: String; + /** + * A human-friendly operation identifier for the method. For example, you can assign the operationName of ListPets for the GET /pets method in the PetStore example. + */ + operationName?: String; + /** + * A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates. + */ + requestParameters?: MapOfStringToBoolean; + /** + * A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key). + */ + requestModels?: MapOfStringToString; + /** + * Gets a method response associated with a given HTTP status code. The collection of method responses are encapsulated in a key-value map, where the key is a response's HTTP status code and the value is a MethodResponse resource that specifies the response returned to the caller from the back end through the integration response. Example: Get a 200 OK response of a GET method Request GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T215008Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} Response The successful response returns a 200 OK status code and a payload similar to the following: { "_links": { "curies": { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.operator": false, "method.response.header.operand_2": false, "method.response.header.operand_1": false }, "statusCode": "200" } AWS CLI + */ + methodResponses?: MapOfMethodResponse; + /** + * Gets the method's integration responsible for passing the client-submitted request to the back end and performing necessary transformations to make the request compliant with the back end. Example: Request GET /restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date: 20160613T213210Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160613/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} Response The successful response returns a 200 OK status code and a payload similar to the following: { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true } ], "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integration:responses": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "0cjtch", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestTemplates": { "application/json": "{\n \"a\": \"$input.params('operand1')\",\n \"b\": \"$input.params('operand2')\", \n \"op\": \"$input.params('operator')\" \n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:Calc/invocations", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/uojnr9hd57/resources/0cjtch/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.operator": "integration.response.body.op", "method.response.header.operand_2": "integration.response.body.b", "method.response.header.operand_1": "integration.response.body.a" }, "responseTemplates": { "application/json": "#set($res = $input.path('$'))\n{\n \"result\": \"$res.a, $res.b, $res.op => $res.c\",\n \"a\" : \"$res.a\",\n \"b\" : \"$res.b\",\n \"op\" : \"$res.op\",\n \"c\" : \"$res.c\"\n}" }, "selectionPattern": "", "statusCode": "200" } } } AWS CLI + */ + methodIntegration?: Integration; + /** + * A list of authorization scopes configured on the method. The scopes are used with a COGNITO_USER_POOLS authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes. + */ + authorizationScopes?: ListOfString; + } + export interface MethodResponse { + /** + * The method response's status code. + */ + statusCode?: StatusCode; + /** + * A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern method.response.header.{name}, where name is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.) + */ + responseParameters?: MapOfStringToBoolean; + /** + * Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value. + */ + responseModels?: MapOfStringToString; + } + export interface MethodSetting { + /** + * Specifies whether Amazon CloudWatch metrics are enabled for this method. The PATCH path for this setting is /{method_setting_key}/metrics/enabled, and the value is a Boolean. + */ + metricsEnabled?: Boolean; + /** + * Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. The PATCH path for this setting is /{method_setting_key}/logging/loglevel, and the available levels are OFF, ERROR, and INFO. Choose ERROR to write only error-level entries to CloudWatch Logs, or choose INFO to include all ERROR events as well as extra informational events. + */ + loggingLevel?: String; + /** + * Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. The PATCH path for this setting is /{method_setting_key}/logging/dataTrace, and the value is a Boolean. + */ + dataTraceEnabled?: Boolean; + /** + * Specifies the throttling burst limit. The PATCH path for this setting is /{method_setting_key}/throttling/burstLimit, and the value is an integer. + */ + throttlingBurstLimit?: Integer; + /** + * Specifies the throttling rate limit. The PATCH path for this setting is /{method_setting_key}/throttling/rateLimit, and the value is a double. + */ + throttlingRateLimit?: Double; + /** + * Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached. The PATCH path for this setting is /{method_setting_key}/caching/enabled, and the value is a Boolean. + */ + cachingEnabled?: Boolean; + /** + * Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached. The PATCH path for this setting is /{method_setting_key}/caching/ttlInSeconds, and the value is an integer. + */ + cacheTtlInSeconds?: Integer; + /** + * Specifies whether the cached responses are encrypted. The PATCH path for this setting is /{method_setting_key}/caching/dataEncrypted, and the value is a Boolean. + */ + cacheDataEncrypted?: Boolean; + /** + * Specifies whether authorization is required for a cache invalidation request. The PATCH path for this setting is /{method_setting_key}/caching/requireAuthorizationForCacheControl, and the value is a Boolean. + */ + requireAuthorizationForCacheControl?: Boolean; + /** + * Specifies how to handle unauthorized requests for cache invalidation. The PATCH path for this setting is /{method_setting_key}/caching/unauthorizedCacheControlHeaderStrategy, and the available values are FAIL_WITH_403, SUCCEED_WITH_RESPONSE_HEADER, SUCCEED_WITHOUT_RESPONSE_HEADER. + */ + unauthorizedCacheControlHeaderStrategy?: UnauthorizedCacheControlHeaderStrategy; + } + export interface MethodSnapshot { + /** + * The method's authorization type. Valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS for using a Cognito user pool. + */ + authorizationType?: String; + /** + * Specifies whether the method requires a valid ApiKey. + */ + apiKeyRequired?: Boolean; + } + export interface Model { + /** + * The identifier for the model resource. + */ + id?: String; + /** + * The name of the model. Must be an alphanumeric string. + */ + name?: String; + /** + * The description of the model. + */ + description?: String; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. Do not include "\*" characters in the description of any properties because such "\*" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail. + */ + schema?: String; + /** + * The content-type for the model. + */ + contentType?: String; + } + export interface Models { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfModel; + } + export interface MutualTlsAuthentication { + /** + * An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example s3://bucket-name/key-name. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object. + */ + truststoreUri?: String; + /** + * The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket. + */ + truststoreVersion?: String; + /** + * A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version. + */ + truststoreWarnings?: ListOfString; + } + export interface MutualTlsAuthenticationInput { + /** + * An Amazon S3 resource ARN that specifies the truststore for mutual TLS authentication, for example, s3://bucket-name/key-name. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object. + */ + truststoreUri?: String; + /** + * The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket. + */ + truststoreVersion?: String; + } + export type NullableBoolean = boolean; + export type NullableInteger = number; + export type Op = "add"|"remove"|"replace"|"move"|"copy"|"test"|string; + export interface PatchOperation { + /** + * An update operation to be performed with this PATCH request. The valid value can be add, remove, replace or copy. Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message. + */ + op?: Op; + /** + * The op operation's target, as identified by a JSON Pointer value that references a location within the targeted resource. For example, if the target resource has an updateable property of {"name":"value"}, the path for this property is /name. If the name property value is a JSON object (e.g., {"name": {"child/name": "child-value"}}), the path for the child/name property will be /name/child~1name. Any slash ("/") character appearing in path names must be escaped with "~1", as shown in the example above. Each op operation can have only one path associated with it. + */ + path?: String; + /** + * The new target value of the update operation. It is applicable for the add or replace operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{"a": ...}'. In a Windows shell, see Using JSON for Parameters. + */ + value?: String; + /** + * The copy update operation's source as identified by a JSON-Pointer value referencing the location within the targeted resource to copy the value from. For example, to promote a canary deployment, you copy the canary deployment ID to the affiliated deployment ID by calling a PATCH request on a Stage resource with "op":"copy", "from":"/canarySettings/deploymentId" and "path":"/deploymentId". + */ + from?: String; + } + export type PathToMapOfMethodSnapshot = {[key: string]: MapOfMethodSnapshot}; + export type ProviderARN = string; + export interface PutGatewayResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPE + */ + responseType: GatewayResponseType; + /** + * The HTTP status code of the GatewayResponse. + */ + statusCode?: StatusCode; + /** + * Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. + */ + responseParameters?: MapOfStringToString; + /** + * Response templates of the GatewayResponse as a string-to-string map of key-value pairs. + */ + responseTemplates?: MapOfStringToString; + } + export interface PutIntegrationRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a put integration request's resource ID. + */ + resourceId: String; + /** + * [Required] Specifies a put integration request's HTTP method. + */ + httpMethod: String; + /** + * [Required] Specifies a put integration input's type. + */ + type: IntegrationType; + /** + * Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is required. + */ + integrationHttpMethod?: String; + /** + * Specifies Uniform Resource Identifier (URI) of the integration endpoint. For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification, for either standard integration, where connectionType is not VPC_LINK, or private integration, where connectionType is VPC_LINK. For a private HTTP integration, the URI is not used for routing. For AWS or AWS_PROXY integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_api refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of GetObject, the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} + */ + uri?: String; + /** + * The type of the network connection to the integration endpoint. The valid value is INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and a network load balancer in a VPC. The default value is INTERNET. + */ + connectionType?: ConnectionType; + /** + * The (id) of the VpcLink used for the integration when connectionType=VPC_LINK and undefined, otherwise. + */ + connectionId?: String; + /** + * Specifies whether credentials are required for a put integration. + */ + credentials?: String; + /** + * A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name must be a valid and unique method request parameter name. + */ + requestParameters?: MapOfStringToString; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. + */ + requestTemplates?: MapOfStringToString; + /** + * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration back end without transformation. NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. WHEN_NO_TEMPLATES allows pass-through when the integration has NO content types mapped to templates. However if there is at least one content type defined, unmapped content types will be rejected with the same 415 response. + */ + passthroughBehavior?: String; + /** + * Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the cacheNamespace. You can specify the same cacheNamespace across resources to return the same cached data for requests to different resources. + */ + cacheNamespace?: String; + /** + * A list of request parameters whose values API Gateway caches. To be valid values for cacheKeyParameters, these parameters must also be specified for Method requestParameters. + */ + cacheKeyParameters?: ListOfString; + /** + * Specifies how to handle request payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehavior is configured to support payload pass-through. + */ + contentHandling?: ContentHandlingStrategy; + /** + * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. + */ + timeoutInMillis?: NullableInteger; + tlsConfig?: TlsConfig; + } + export interface PutIntegrationResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a put integration response request's resource identifier. + */ + resourceId: String; + /** + * [Required] Specifies a put integration response request's HTTP method. + */ + httpMethod: String; + /** + * [Required] Specifies the status code that is used to map the integration response to an existing MethodResponse. + */ + statusCode: StatusCode; + /** + * Specifies the selection pattern of a put integration response. + */ + selectionPattern?: String; + /** + * A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name must be a valid and unique response header name and JSON-expression a valid JSON expression without the $ prefix. + */ + responseParameters?: MapOfStringToString; + /** + * Specifies a put integration response's templates. + */ + responseTemplates?: MapOfStringToString; + /** + * Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the method response without modification. + */ + contentHandling?: ContentHandlingStrategy; + } + export interface PutMethodRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the new Method resource. + */ + resourceId: String; + /** + * [Required] Specifies the method request's HTTP method type. + */ + httpMethod: String; + /** + * [Required] The method's authorization type. Valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, CUSTOM for using a custom authorizer, or COGNITO_USER_POOLS for using a Cognito user pool. + */ + authorizationType: String; + /** + * Specifies the identifier of an Authorizer to use on this Method, if the type is CUSTOM or COGNITO_USER_POOLS. The authorizer identifier is generated by API Gateway when you created the authorizer. + */ + authorizerId?: String; + /** + * Specifies whether the method required a valid ApiKey. + */ + apiKeyRequired?: Boolean; + /** + * A human-friendly operation identifier for the method. For example, you can assign the operationName of ListPets for the GET /pets method in the PetStore example. + */ + operationName?: String; + /** + * A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key defines a method request parameter name matching the pattern of method.request.{location}.{name}, where location is querystring, path, or header and name is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (true) or optional (false). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or body-mapping templates. + */ + requestParameters?: MapOfStringToBoolean; + /** + * Specifies the Model resources used for the request's content type. Request models are represented as a key/value map, with a content type as the key and a Model name as the value. + */ + requestModels?: MapOfStringToString; + /** + * The identifier of a RequestValidator for validating the method request. + */ + requestValidatorId?: String; + /** + * A list of authorization scopes configured on the method. The scopes are used with a COGNITO_USER_POOLS authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes. + */ + authorizationScopes?: ListOfString; + } + export interface PutMethodResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the Method resource. + */ + resourceId: String; + /** + * [Required] The HTTP verb of the Method resource. + */ + httpMethod: String; + /** + * [Required] The method response's status code. + */ + statusCode: StatusCode; + /** + * A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header name and the associated value is a Boolean flag indicating whether the method response parameter is required or not. The method response header names must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The response parameter names defined here are available in the integration response to be mapped from an integration response header expressed in integration.response.header.{name}, a static value enclosed within a pair of single quotes (e.g., 'application/json'), or a JSON expression from the back-end response payload in the form of integration.response.body.{JSON-expression}, where JSON-expression is a valid JSON expression without the $ prefix.) + */ + responseParameters?: MapOfStringToBoolean; + /** + * Specifies the Model resources used for the response's content type. Response models are represented as a key/value map, with a content type as the key and a Model name as the value. + */ + responseModels?: MapOfStringToString; + } + export type PutMode = "merge"|"overwrite"|string; + export interface PutRestApiRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The mode query parameter to specify the update mode. Valid values are "merge" and "overwrite". By default, the update mode is "merge". + */ + mode?: PutMode; + /** + * A query parameter to indicate whether to rollback the API update (true) or not (false) when a warning is encountered. The default value is false. + */ + failOnWarnings?: Boolean; + /** + * Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ignore=documentation as a parameters value, as in the AWS CLI command of aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'. + */ + parameters?: MapOfStringToString; + /** + * [Required] The PUT request body containing external API definitions. Currently, only OpenAPI definition JSON/YAML files are supported. The maximum size of the API definition file is 6MB. + */ + body: _Blob; + } + export type QuotaPeriodType = "DAY"|"WEEK"|"MONTH"|string; + export interface QuotaSettings { + /** + * The maximum number of requests that can be made in a given time period. + */ + limit?: Integer; + /** + * The day that a time period starts. For example, with a time period of WEEK, an offset of 0 starts on Sunday, and an offset of 1 starts on Monday. + */ + offset?: Integer; + /** + * The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH". + */ + period?: QuotaPeriodType; + } + export interface RequestValidator { + /** + * The identifier of this RequestValidator. + */ + id?: String; + /** + * The name of this RequestValidator + */ + name?: String; + /** + * A Boolean flag to indicate whether to validate a request body according to the configured Model schema. + */ + validateRequestBody?: Boolean; + /** + * A Boolean flag to indicate whether to validate request parameters (true) or not (false). + */ + validateRequestParameters?: Boolean; + } + export interface RequestValidators { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfRequestValidator; + } + export interface Resource { + /** + * The resource's identifier. + */ + id?: String; + /** + * The parent resource's identifier. + */ + parentId?: String; + /** + * The last path segment for this resource. + */ + pathPart?: String; + /** + * The full path for this resource. + */ + path?: String; + /** + * Gets an API resource's method of a given HTTP verb. The resource methods are a map of methods indexed by methods' HTTP verbs enabled on the resource. This method map is included in the 200 OK response of the GET /restapis/{restapi_id}/resources/{resource_id} or GET /restapis/{restapi_id}/resources/{resource_id}?embed=methods request. Example: Get the GET method of an API resource Request GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170223T031827Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20170223/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash} Response { "_links": { "curies": [ { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html", "name": "integration", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html", "name": "method", "templated": true }, { "href": "https://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true } ], "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET", "name": "GET", "title": "GET" }, "integration:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "method:integration": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "method:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "method:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET" }, "methodresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/{status_code}", "templated": true } }, "apiKeyRequired": false, "authorizationType": "NONE", "httpMethod": "GET", "_embedded": { "method:integration": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integration:responses": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integration:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration" }, "integrationresponse:put": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}", "templated": true } }, "cacheKeyParameters": [], "cacheNamespace": "3kzxbg5sa2", "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole", "httpMethod": "POST", "passthroughBehavior": "WHEN_NO_MATCH", "requestParameters": { "integration.request.header.Content-Type": "'application/x-amz-json-1.1'" }, "requestTemplates": { "application/json": "{\n}" }, "type": "AWS", "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams", "_embedded": { "integration:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200", "name": "200", "title": "200" }, "integrationresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" }, "integrationresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200" } }, "responseParameters": { "method.response.header.Content-Type": "'application/xml'" }, "responseTemplates": { "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n" }, "statusCode": "200" } } }, "method:responses": { "_links": { "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "name": "200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.Content-Type": false }, "statusCode": "200" } } } If the OPTIONS is enabled on the resource, you can follow the example here to get that method. Just replace the GET of the last path segment in the request URL with OPTIONS. + */ + resourceMethods?: MapOfMethod; + } + export interface Resources { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfResource; + } + export interface RestApi { + /** + * The API's identifier. This identifier is unique across all of your APIs in API Gateway. + */ + id?: String; + /** + * The API's name. + */ + name?: String; + /** + * The API's description. + */ + description?: String; + /** + * The timestamp when the API was created. + */ + createdDate?: Timestamp; + /** + * A version identifier for the API. + */ + version?: String; + /** + * The warning messages reported when failonwarnings is turned on during API import. + */ + warnings?: ListOfString; + /** + * The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads. + */ + binaryMediaTypes?: ListOfString; + /** + * A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size. + */ + minimumCompressionSize?: NullableInteger; + /** + * The source of the API key for metering requests according to a usage plan. Valid values are: HEADER to read the API key from the X-API-Key header of a request. AUTHORIZER to read the API key from the UsageIdentifierKey from a custom authorizer. + */ + apiKeySource?: ApiKeySourceType; + /** + * The endpoint configuration of this RestApi showing the endpoint types of the API. + */ + endpointConfiguration?: EndpointConfiguration; + /** + * A stringified JSON policy document that applies to this RestApi regardless of the caller and Method configuration. + */ + policy?: String; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + disableExecuteApiEndpoint?: Boolean; + } + export interface RestApis { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfRestApi; + } + export interface SdkConfigurationProperty { + /** + * The name of a an SdkType configuration property. + */ + name?: String; + /** + * The user-friendly name of an SdkType configuration property. + */ + friendlyName?: String; + /** + * The description of an SdkType configuration property. + */ + description?: String; + /** + * A boolean flag of an SdkType configuration property to indicate if the associated SDK configuration property is required (true) or not (false). + */ + required?: Boolean; + /** + * The default value of an SdkType configuration property. + */ + defaultValue?: String; + } + export interface SdkResponse { + /** + * The content-type header value in the HTTP response. + */ + contentType?: String; + /** + * The content-disposition header value in the HTTP response. + */ + contentDisposition?: String; + /** + * The binary blob response to GetSdk, which contains the generated SDK. + */ + body?: _Blob; + } + export interface SdkType { + /** + * The identifier of an SdkType instance. + */ + id?: String; + /** + * The user-friendly name of an SdkType instance. + */ + friendlyName?: String; + /** + * The description of an SdkType. + */ + description?: String; + /** + * A list of configuration properties of an SdkType. + */ + configurationProperties?: ListOfSdkConfigurationProperty; + } + export interface SdkTypes { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfSdkType; + } + export type SecurityPolicy = "TLS_1_0"|"TLS_1_2"|string; + export interface Stage { + /** + * The identifier of the Deployment that the stage points to. + */ + deploymentId?: String; + /** + * The identifier of a client certificate for an API stage. + */ + clientCertificateId?: String; + /** + * The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. + */ + stageName?: String; + /** + * The stage's description. + */ + description?: String; + /** + * Specifies whether a cache cluster is enabled for the stage. + */ + cacheClusterEnabled?: Boolean; + /** + * The size of the cache cluster for the stage, if enabled. + */ + cacheClusterSize?: CacheClusterSize; + /** + * The status of the cache cluster for the stage, if enabled. + */ + cacheClusterStatus?: CacheClusterStatus; + /** + * A map that defines the method settings for a Stage resource. Keys (designated as /{method_setting_key below) are method paths defined as {resource_path}/{http_method} for an individual method override, or /\*\* for overriding all methods in the stage. + */ + methodSettings?: MapOfMethodSettings; + /** + * A map that defines the stage variables for a Stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + variables?: MapOfStringToString; + /** + * The version of the associated API documentation. + */ + documentationVersion?: String; + /** + * Settings for logging access in this stage. + */ + accessLogSettings?: AccessLogSettings; + /** + * Settings for the canary deployment in this stage. + */ + canarySettings?: CanarySettings; + /** + * Specifies whether active tracing with X-ray is enabled for the Stage. + */ + tracingEnabled?: Boolean; + /** + * The ARN of the WebAcl associated with the Stage. + */ + webAclArn?: String; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + /** + * The timestamp when the stage was created. + */ + createdDate?: Timestamp; + /** + * The timestamp when the stage last updated. + */ + lastUpdatedDate?: Timestamp; + } + export interface StageKey { + /** + * The string identifier of the associated RestApi. + */ + restApiId?: String; + /** + * The stage name associated with the stage key. + */ + stageName?: String; + } + export interface Stages { + /** + * The current page of elements from this collection. + */ + item?: ListOfStage; + } + export type StatusCode = string; + export type String = string; + export interface TagResourceRequest { + /** + * [Required] The ARN of a resource that can be tagged. + */ + resourceArn: String; + /** + * [Required] The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + tags: MapOfStringToString; + } + export interface Tags { + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + } + export interface Template { + /** + * The Apache Velocity Template Language (VTL) template content used for the template resource. + */ + value?: String; + } + export interface TestInvokeAuthorizerRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a test invoke authorizer request's Authorizer ID. + */ + authorizerId: String; + /** + * [Required] A key-value map of headers to simulate an incoming invocation request. This is where the incoming authorization token, or identity source, should be specified. + */ + headers?: MapOfStringToString; + /** + * [Optional] The headers as a map from string to list of values to simulate an incoming invocation request. This is where the incoming authorization token, or identity source, may be specified. + */ + multiValueHeaders?: MapOfStringToList; + /** + * [Optional] The URI path, including query string, of the simulated invocation request. Use this to specify path parameters and query string parameters. + */ + pathWithQueryString?: String; + /** + * [Optional] The simulated request body of an incoming invocation request. + */ + body?: String; + /** + * A key-value map of stage variables to simulate an invocation on a deployed Stage. + */ + stageVariables?: MapOfStringToString; + /** + * [Optional] A key-value map of additional context variables. + */ + additionalContext?: MapOfStringToString; + } + export interface TestInvokeAuthorizerResponse { + /** + * The HTTP status code that the client would have received. Value is 0 if the authorizer succeeded. + */ + clientStatus?: Integer; + /** + * The API Gateway execution log for the test authorizer request. + */ + log?: String; + /** + * The execution latency of the test authorizer request. + */ + latency?: Long; + /** + * The principal identity returned by the Authorizer + */ + principalId?: String; + /** + * The JSON policy document returned by the Authorizer + */ + policy?: String; + authorization?: MapOfStringToList; + /** + * The open identity claims, with any supported custom attributes, returned from the Cognito Your User Pool configured for the API. + */ + claims?: MapOfStringToString; + } + export interface TestInvokeMethodRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies a test invoke method request's resource ID. + */ + resourceId: String; + /** + * [Required] Specifies a test invoke method request's HTTP method. + */ + httpMethod: String; + /** + * The URI path, including query string, of the simulated invocation request. Use this to specify path parameters and query string parameters. + */ + pathWithQueryString?: String; + /** + * The simulated request body of an incoming invocation request. + */ + body?: String; + /** + * A key-value map of headers to simulate an incoming invocation request. + */ + headers?: MapOfStringToString; + /** + * The headers as a map from string to list of values to simulate an incoming invocation request. + */ + multiValueHeaders?: MapOfStringToList; + /** + * A ClientCertificate identifier to use in the test invocation. API Gateway will use the certificate when making the HTTPS request to the defined back-end endpoint. + */ + clientCertificateId?: String; + /** + * A key-value map of stage variables to simulate an invocation on a deployed Stage. + */ + stageVariables?: MapOfStringToString; + } + export interface TestInvokeMethodResponse { + /** + * The HTTP status code. + */ + status?: Integer; + /** + * The body of the HTTP response. + */ + body?: String; + /** + * The headers of the HTTP response. + */ + headers?: MapOfStringToString; + /** + * The headers of the HTTP response as a map from string to list of values. + */ + multiValueHeaders?: MapOfStringToList; + /** + * The API Gateway execution log for the test invoke request. + */ + log?: String; + /** + * The execution latency of the test invoke request. + */ + latency?: Long; + } + export interface ThrottleSettings { + /** + * The API request burst limit, the maximum rate limit over a time ranging from one to a few seconds, depending upon whether the underlying token bucket is at its full capacity. + */ + burstLimit?: Integer; + /** + * The API request steady-state rate limit. + */ + rateLimit?: Double; + } + export type Timestamp = Date; + export interface TlsConfig { + /** + * Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a supported certificate authority. This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for HTTP and HTTP_PROXY integrations. + */ + insecureSkipVerification?: Boolean; + } + export type UnauthorizedCacheControlHeaderStrategy = "FAIL_WITH_403"|"SUCCEED_WITH_RESPONSE_HEADER"|"SUCCEED_WITHOUT_RESPONSE_HEADER"|string; + export interface UntagResourceRequest { + /** + * [Required] The ARN of a resource that can be tagged. + */ + resourceArn: String; + /** + * [Required] The Tag keys to delete. + */ + tagKeys: ListOfString; + } + export interface UpdateAccountRequest { + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateApiKeyRequest { + /** + * [Required] The identifier of the ApiKey resource to be updated. + */ + apiKey: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateAuthorizerRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the Authorizer resource. + */ + authorizerId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateBasePathMappingRequest { + /** + * [Required] The domain name of the BasePathMapping resource to change. + */ + domainName: String; + /** + * [Required] The base path of the BasePathMapping resource to change. To specify an empty base path, set this parameter to '(none)'. + */ + basePath: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateClientCertificateRequest { + /** + * [Required] The identifier of the ClientCertificate resource to be updated. + */ + clientCertificateId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateDeploymentRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * The replacement identifier for the Deployment resource to change information about. + */ + deploymentId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateDocumentationPartRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the to-be-updated documentation part. + */ + documentationPartId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateDocumentationVersionRequest { + /** + * [Required] The string identifier of the associated RestApi.. + */ + restApiId: String; + /** + * [Required] The version identifier of the to-be-updated documentation version. + */ + documentationVersion: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateDomainNameRequest { + /** + * [Required] The name of the DomainName resource to be changed. + */ + domainName: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateGatewayResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The response type of the associated GatewayResponse. Valid values are ACCESS_DENIEDAPI_CONFIGURATION_ERRORAUTHORIZER_FAILURE AUTHORIZER_CONFIGURATION_ERRORBAD_REQUEST_PARAMETERSBAD_REQUEST_BODYDEFAULT_4XXDEFAULT_5XXEXPIRED_TOKENINVALID_SIGNATUREINTEGRATION_FAILUREINTEGRATION_TIMEOUTINVALID_API_KEYMISSING_AUTHENTICATION_TOKEN QUOTA_EXCEEDEDREQUEST_TOO_LARGERESOURCE_NOT_FOUNDTHROTTLEDUNAUTHORIZEDUNSUPPORTED_MEDIA_TYPE + */ + responseType: GatewayResponseType; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateIntegrationRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Represents an update integration request's resource identifier. + */ + resourceId: String; + /** + * [Required] Represents an update integration request's HTTP method. + */ + httpMethod: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateIntegrationResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] Specifies an update integration response request's resource identifier. + */ + resourceId: String; + /** + * [Required] Specifies an update integration response request's HTTP method. + */ + httpMethod: String; + /** + * [Required] Specifies an update integration response request's status code. + */ + statusCode: StatusCode; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateMethodRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the Method resource. + */ + resourceId: String; + /** + * [Required] The HTTP verb of the Method resource. + */ + httpMethod: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateMethodResponseRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The Resource identifier for the MethodResponse resource. + */ + resourceId: String; + /** + * [Required] The HTTP verb of the Method resource. + */ + httpMethod: String; + /** + * [Required] The status code for the MethodResponse resource. + */ + statusCode: StatusCode; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateModelRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the model to update. + */ + modelName: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateRequestValidatorRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of RequestValidator to be updated. + */ + requestValidatorId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateResourceRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The identifier of the Resource resource. + */ + resourceId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateRestApiRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateStageRequest { + /** + * [Required] The string identifier of the associated RestApi. + */ + restApiId: String; + /** + * [Required] The name of the Stage resource to change information about. + */ + stageName: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateUsagePlanRequest { + /** + * [Required] The Id of the to-be-updated usage plan. + */ + usagePlanId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateUsageRequest { + /** + * [Required] The Id of the usage plan associated with the usage data. + */ + usagePlanId: String; + /** + * [Required] The identifier of the API key associated with the usage plan in which a temporary extension is granted to the remaining quota. + */ + keyId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface UpdateVpcLinkRequest { + /** + * [Required] The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + */ + vpcLinkId: String; + /** + * A list of update operations to be applied to the specified resource and in the order specified in this list. + */ + patchOperations?: ListOfPatchOperation; + } + export interface Usage { + /** + * The plan Id associated with this usage data. + */ + usagePlanId?: String; + /** + * The starting date of the usage data. + */ + startDate?: String; + /** + * The ending date of the usage data. + */ + endDate?: String; + position?: String; + /** + * The usage data, as daily logs of used and remaining quotas, over the specified time interval indexed over the API keys in a usage plan. For example, {..., "values" : { "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}, where {api_key} stands for an API key value and the daily log entry is of the format [used quota, remaining quota]. + */ + items?: MapOfKeyUsages; + } + export interface UsagePlan { + /** + * The identifier of a UsagePlan resource. + */ + id?: String; + /** + * The name of a usage plan. + */ + name?: String; + /** + * The description of a usage plan. + */ + description?: String; + /** + * The associated API stages of a usage plan. + */ + apiStages?: ListOfApiStage; + /** + * The request throttle limits of a usage plan. + */ + throttle?: ThrottleSettings; + /** + * The maximum number of permitted requests per a given unit time interval. + */ + quota?: QuotaSettings; + /** + * The AWS Markeplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace. + */ + productCode?: String; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + } + export interface UsagePlanKey { + /** + * The Id of a usage plan key. + */ + id?: String; + /** + * The type of a usage plan key. Currently, the valid key type is API_KEY. + */ + type?: String; + /** + * The value of a usage plan key. + */ + value?: String; + /** + * The name of a usage plan key. + */ + name?: String; + } + export interface UsagePlanKeys { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfUsagePlanKey; + } + export interface UsagePlans { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfUsagePlan; + } + export interface VpcLink { + /** + * The identifier of the VpcLink. It is used in an Integration to reference this VpcLink. + */ + id?: String; + /** + * The name used to label and identify the VPC link. + */ + name?: String; + /** + * The description of the VPC link. + */ + description?: String; + /** + * The ARN of the network load balancer of the VPC targeted by the VPC link. The network load balancer must be owned by the same AWS account of the API owner. + */ + targetArns?: ListOfString; + /** + * The status of the VPC link. The valid values are AVAILABLE, PENDING, DELETING, or FAILED. Deploying an API will wait if the status is PENDING and will fail if the status is DELETING. + */ + status?: VpcLinkStatus; + /** + * A description about the VPC link status. + */ + statusMessage?: String; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + tags?: MapOfStringToString; + } + export type VpcLinkStatus = "AVAILABLE"|"PENDING"|"DELETING"|"FAILED"|string; + export interface VpcLinks { + position?: String; + /** + * The current page of elements from this collection. + */ + items?: ListOfVpcLink; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2015-07-09"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the APIGateway client. + */ + export import Types = APIGateway; +} +export = APIGateway; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apigateway.js b/justdanceonline-main/node_modules/aws-sdk/clients/apigateway.js new file mode 100644 index 0000000000000000000000000000000000000000..f73296e2c3663cbc5ad80ba9c5db0a2c66186644 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apigateway.js @@ -0,0 +1,19 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['apigateway'] = {}; +AWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']); +require('../lib/services/apigateway'); +Object.defineProperty(apiLoader.services['apigateway'], '2015-07-09', { + get: function get() { + var model = require('../apis/apigateway-2015-07-09.min.json'); + model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.APIGateway; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apigatewaymanagementapi.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewaymanagementapi.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b013b4fcddf2b40f9a78e1daec295c156b8432fb --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewaymanagementapi.d.ts @@ -0,0 +1,96 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class ApiGatewayManagementApi extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: ApiGatewayManagementApi.Types.ClientConfiguration) + config: Config & ApiGatewayManagementApi.Types.ClientConfiguration; + /** + * Delete the connection with the provided id. + */ + deleteConnection(params: ApiGatewayManagementApi.Types.DeleteConnectionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete the connection with the provided id. + */ + deleteConnection(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Get information about the connection with the provided id. + */ + getConnection(params: ApiGatewayManagementApi.Types.GetConnectionRequest, callback?: (err: AWSError, data: ApiGatewayManagementApi.Types.GetConnectionResponse) => void): Request; + /** + * Get information about the connection with the provided id. + */ + getConnection(callback?: (err: AWSError, data: ApiGatewayManagementApi.Types.GetConnectionResponse) => void): Request; + /** + * Sends the provided data to the specified connection. + */ + postToConnection(params: ApiGatewayManagementApi.Types.PostToConnectionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sends the provided data to the specified connection. + */ + postToConnection(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; +} +declare namespace ApiGatewayManagementApi { + export type Data = Buffer|Uint8Array|Blob|string; + export interface DeleteConnectionRequest { + ConnectionId: __string; + } + export interface GetConnectionRequest { + ConnectionId: __string; + } + export interface GetConnectionResponse { + /** + * The time in ISO 8601 format for when the connection was established. + */ + ConnectedAt?: __timestampIso8601; + Identity?: Identity; + /** + * The time in ISO 8601 format for when the connection was last active. + */ + LastActiveAt?: __timestampIso8601; + } + export interface Identity { + /** + * The source IP address of the TCP connection making the request to API Gateway. + */ + SourceIp: __string; + /** + * The User Agent of the API caller. + */ + UserAgent: __string; + } + export interface PostToConnectionRequest { + /** + * The data to be sent to the client specified by its connection id. + */ + Data: Data; + /** + * The identifier of the connection that a specific client is using. + */ + ConnectionId: __string; + } + export type __string = string; + export type __timestampIso8601 = Date; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-11-29"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the ApiGatewayManagementApi client. + */ + export import Types = ApiGatewayManagementApi; +} +export = ApiGatewayManagementApi; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apigatewaymanagementapi.js b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewaymanagementapi.js new file mode 100644 index 0000000000000000000000000000000000000000..bee33fb02252530b85ce000b664409ffe5739512 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewaymanagementapi.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['apigatewaymanagementapi'] = {}; +AWS.ApiGatewayManagementApi = Service.defineService('apigatewaymanagementapi', ['2018-11-29']); +Object.defineProperty(apiLoader.services['apigatewaymanagementapi'], '2018-11-29', { + get: function get() { + var model = require('../apis/apigatewaymanagementapi-2018-11-29.min.json'); + model.paginators = require('../apis/apigatewaymanagementapi-2018-11-29.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.ApiGatewayManagementApi; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apigatewayv2.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewayv2.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7ad1a365d03871a8e40096dc602a6aa1d9c1de16 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewayv2.d.ts @@ -0,0 +1,4439 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class ApiGatewayV2 extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: ApiGatewayV2.Types.ClientConfiguration) + config: Config & ApiGatewayV2.Types.ClientConfiguration; + /** + * Creates an Api resource. + */ + createApi(params: ApiGatewayV2.Types.CreateApiRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateApiResponse) => void): Request; + /** + * Creates an Api resource. + */ + createApi(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateApiResponse) => void): Request; + /** + * Creates an API mapping. + */ + createApiMapping(params: ApiGatewayV2.Types.CreateApiMappingRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateApiMappingResponse) => void): Request; + /** + * Creates an API mapping. + */ + createApiMapping(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateApiMappingResponse) => void): Request; + /** + * Creates an Authorizer for an API. + */ + createAuthorizer(params: ApiGatewayV2.Types.CreateAuthorizerRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateAuthorizerResponse) => void): Request; + /** + * Creates an Authorizer for an API. + */ + createAuthorizer(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateAuthorizerResponse) => void): Request; + /** + * Creates a Deployment for an API. + */ + createDeployment(params: ApiGatewayV2.Types.CreateDeploymentRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateDeploymentResponse) => void): Request; + /** + * Creates a Deployment for an API. + */ + createDeployment(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateDeploymentResponse) => void): Request; + /** + * Creates a domain name. + */ + createDomainName(params: ApiGatewayV2.Types.CreateDomainNameRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateDomainNameResponse) => void): Request; + /** + * Creates a domain name. + */ + createDomainName(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateDomainNameResponse) => void): Request; + /** + * Creates an Integration. + */ + createIntegration(params: ApiGatewayV2.Types.CreateIntegrationRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateIntegrationResult) => void): Request; + /** + * Creates an Integration. + */ + createIntegration(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateIntegrationResult) => void): Request; + /** + * Creates an IntegrationResponses. + */ + createIntegrationResponse(params: ApiGatewayV2.Types.CreateIntegrationResponseRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateIntegrationResponseResponse) => void): Request; + /** + * Creates an IntegrationResponses. + */ + createIntegrationResponse(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateIntegrationResponseResponse) => void): Request; + /** + * Creates a Model for an API. + */ + createModel(params: ApiGatewayV2.Types.CreateModelRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateModelResponse) => void): Request; + /** + * Creates a Model for an API. + */ + createModel(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateModelResponse) => void): Request; + /** + * Creates a Route for an API. + */ + createRoute(params: ApiGatewayV2.Types.CreateRouteRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateRouteResult) => void): Request; + /** + * Creates a Route for an API. + */ + createRoute(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateRouteResult) => void): Request; + /** + * Creates a RouteResponse for a Route. + */ + createRouteResponse(params: ApiGatewayV2.Types.CreateRouteResponseRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateRouteResponseResponse) => void): Request; + /** + * Creates a RouteResponse for a Route. + */ + createRouteResponse(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateRouteResponseResponse) => void): Request; + /** + * Creates a Stage for an API. + */ + createStage(params: ApiGatewayV2.Types.CreateStageRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateStageResponse) => void): Request; + /** + * Creates a Stage for an API. + */ + createStage(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateStageResponse) => void): Request; + /** + * Creates a VPC link. + */ + createVpcLink(params: ApiGatewayV2.Types.CreateVpcLinkRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateVpcLinkResponse) => void): Request; + /** + * Creates a VPC link. + */ + createVpcLink(callback?: (err: AWSError, data: ApiGatewayV2.Types.CreateVpcLinkResponse) => void): Request; + /** + * Deletes the AccessLogSettings for a Stage. To disable access logging for a Stage, delete its AccessLogSettings. + */ + deleteAccessLogSettings(params: ApiGatewayV2.Types.DeleteAccessLogSettingsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the AccessLogSettings for a Stage. To disable access logging for a Stage, delete its AccessLogSettings. + */ + deleteAccessLogSettings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an Api resource. + */ + deleteApi(params: ApiGatewayV2.Types.DeleteApiRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an Api resource. + */ + deleteApi(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an API mapping. + */ + deleteApiMapping(params: ApiGatewayV2.Types.DeleteApiMappingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an API mapping. + */ + deleteApiMapping(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an Authorizer. + */ + deleteAuthorizer(params: ApiGatewayV2.Types.DeleteAuthorizerRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an Authorizer. + */ + deleteAuthorizer(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a CORS configuration. + */ + deleteCorsConfiguration(params: ApiGatewayV2.Types.DeleteCorsConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a CORS configuration. + */ + deleteCorsConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Deployment. + */ + deleteDeployment(params: ApiGatewayV2.Types.DeleteDeploymentRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Deployment. + */ + deleteDeployment(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a domain name. + */ + deleteDomainName(params: ApiGatewayV2.Types.DeleteDomainNameRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a domain name. + */ + deleteDomainName(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an Integration. + */ + deleteIntegration(params: ApiGatewayV2.Types.DeleteIntegrationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an Integration. + */ + deleteIntegration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an IntegrationResponses. + */ + deleteIntegrationResponse(params: ApiGatewayV2.Types.DeleteIntegrationResponseRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an IntegrationResponses. + */ + deleteIntegrationResponse(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Model. + */ + deleteModel(params: ApiGatewayV2.Types.DeleteModelRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Model. + */ + deleteModel(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Route. + */ + deleteRoute(params: ApiGatewayV2.Types.DeleteRouteRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Route. + */ + deleteRoute(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a route request parameter. + */ + deleteRouteRequestParameter(params: ApiGatewayV2.Types.DeleteRouteRequestParameterRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a route request parameter. + */ + deleteRouteRequestParameter(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a RouteResponse. + */ + deleteRouteResponse(params: ApiGatewayV2.Types.DeleteRouteResponseRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a RouteResponse. + */ + deleteRouteResponse(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the RouteSettings for a stage. + */ + deleteRouteSettings(params: ApiGatewayV2.Types.DeleteRouteSettingsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the RouteSettings for a stage. + */ + deleteRouteSettings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Stage. + */ + deleteStage(params: ApiGatewayV2.Types.DeleteStageRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Stage. + */ + deleteStage(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a VPC link. + */ + deleteVpcLink(params: ApiGatewayV2.Types.DeleteVpcLinkRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.DeleteVpcLinkResponse) => void): Request; + /** + * Deletes a VPC link. + */ + deleteVpcLink(callback?: (err: AWSError, data: ApiGatewayV2.Types.DeleteVpcLinkResponse) => void): Request; + /** + * + */ + exportApi(params: ApiGatewayV2.Types.ExportApiRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.ExportApiResponse) => void): Request; + /** + * + */ + exportApi(callback?: (err: AWSError, data: ApiGatewayV2.Types.ExportApiResponse) => void): Request; + /** + * Resets all authorizer cache entries on a stage. Supported only for HTTP APIs. + */ + resetAuthorizersCache(params: ApiGatewayV2.Types.ResetAuthorizersCacheRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Resets all authorizer cache entries on a stage. Supported only for HTTP APIs. + */ + resetAuthorizersCache(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Gets an Api resource. + */ + getApi(params: ApiGatewayV2.Types.GetApiRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApiResponse) => void): Request; + /** + * Gets an Api resource. + */ + getApi(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApiResponse) => void): Request; + /** + * Gets an API mapping. + */ + getApiMapping(params: ApiGatewayV2.Types.GetApiMappingRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApiMappingResponse) => void): Request; + /** + * Gets an API mapping. + */ + getApiMapping(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApiMappingResponse) => void): Request; + /** + * Gets API mappings. + */ + getApiMappings(params: ApiGatewayV2.Types.GetApiMappingsRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApiMappingsResponse) => void): Request; + /** + * Gets API mappings. + */ + getApiMappings(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApiMappingsResponse) => void): Request; + /** + * Gets a collection of Api resources. + */ + getApis(params: ApiGatewayV2.Types.GetApisRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApisResponse) => void): Request; + /** + * Gets a collection of Api resources. + */ + getApis(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetApisResponse) => void): Request; + /** + * Gets an Authorizer. + */ + getAuthorizer(params: ApiGatewayV2.Types.GetAuthorizerRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetAuthorizerResponse) => void): Request; + /** + * Gets an Authorizer. + */ + getAuthorizer(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetAuthorizerResponse) => void): Request; + /** + * Gets the Authorizers for an API. + */ + getAuthorizers(params: ApiGatewayV2.Types.GetAuthorizersRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetAuthorizersResponse) => void): Request; + /** + * Gets the Authorizers for an API. + */ + getAuthorizers(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetAuthorizersResponse) => void): Request; + /** + * Gets a Deployment. + */ + getDeployment(params: ApiGatewayV2.Types.GetDeploymentRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDeploymentResponse) => void): Request; + /** + * Gets a Deployment. + */ + getDeployment(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDeploymentResponse) => void): Request; + /** + * Gets the Deployments for an API. + */ + getDeployments(params: ApiGatewayV2.Types.GetDeploymentsRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDeploymentsResponse) => void): Request; + /** + * Gets the Deployments for an API. + */ + getDeployments(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDeploymentsResponse) => void): Request; + /** + * Gets a domain name. + */ + getDomainName(params: ApiGatewayV2.Types.GetDomainNameRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDomainNameResponse) => void): Request; + /** + * Gets a domain name. + */ + getDomainName(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDomainNameResponse) => void): Request; + /** + * Gets the domain names for an AWS account. + */ + getDomainNames(params: ApiGatewayV2.Types.GetDomainNamesRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDomainNamesResponse) => void): Request; + /** + * Gets the domain names for an AWS account. + */ + getDomainNames(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetDomainNamesResponse) => void): Request; + /** + * Gets an Integration. + */ + getIntegration(params: ApiGatewayV2.Types.GetIntegrationRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationResult) => void): Request; + /** + * Gets an Integration. + */ + getIntegration(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationResult) => void): Request; + /** + * Gets an IntegrationResponses. + */ + getIntegrationResponse(params: ApiGatewayV2.Types.GetIntegrationResponseRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationResponseResponse) => void): Request; + /** + * Gets an IntegrationResponses. + */ + getIntegrationResponse(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationResponseResponse) => void): Request; + /** + * Gets the IntegrationResponses for an Integration. + */ + getIntegrationResponses(params: ApiGatewayV2.Types.GetIntegrationResponsesRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationResponsesResponse) => void): Request; + /** + * Gets the IntegrationResponses for an Integration. + */ + getIntegrationResponses(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationResponsesResponse) => void): Request; + /** + * Gets the Integrations for an API. + */ + getIntegrations(params: ApiGatewayV2.Types.GetIntegrationsRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationsResponse) => void): Request; + /** + * Gets the Integrations for an API. + */ + getIntegrations(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetIntegrationsResponse) => void): Request; + /** + * Gets a Model. + */ + getModel(params: ApiGatewayV2.Types.GetModelRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetModelResponse) => void): Request; + /** + * Gets a Model. + */ + getModel(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetModelResponse) => void): Request; + /** + * Gets a model template. + */ + getModelTemplate(params: ApiGatewayV2.Types.GetModelTemplateRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetModelTemplateResponse) => void): Request; + /** + * Gets a model template. + */ + getModelTemplate(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetModelTemplateResponse) => void): Request; + /** + * Gets the Models for an API. + */ + getModels(params: ApiGatewayV2.Types.GetModelsRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetModelsResponse) => void): Request; + /** + * Gets the Models for an API. + */ + getModels(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetModelsResponse) => void): Request; + /** + * Gets a Route. + */ + getRoute(params: ApiGatewayV2.Types.GetRouteRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRouteResult) => void): Request; + /** + * Gets a Route. + */ + getRoute(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRouteResult) => void): Request; + /** + * Gets a RouteResponse. + */ + getRouteResponse(params: ApiGatewayV2.Types.GetRouteResponseRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRouteResponseResponse) => void): Request; + /** + * Gets a RouteResponse. + */ + getRouteResponse(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRouteResponseResponse) => void): Request; + /** + * Gets the RouteResponses for a Route. + */ + getRouteResponses(params: ApiGatewayV2.Types.GetRouteResponsesRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRouteResponsesResponse) => void): Request; + /** + * Gets the RouteResponses for a Route. + */ + getRouteResponses(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRouteResponsesResponse) => void): Request; + /** + * Gets the Routes for an API. + */ + getRoutes(params: ApiGatewayV2.Types.GetRoutesRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRoutesResponse) => void): Request; + /** + * Gets the Routes for an API. + */ + getRoutes(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetRoutesResponse) => void): Request; + /** + * Gets a Stage. + */ + getStage(params: ApiGatewayV2.Types.GetStageRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetStageResponse) => void): Request; + /** + * Gets a Stage. + */ + getStage(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetStageResponse) => void): Request; + /** + * Gets the Stages for an API. + */ + getStages(params: ApiGatewayV2.Types.GetStagesRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetStagesResponse) => void): Request; + /** + * Gets the Stages for an API. + */ + getStages(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetStagesResponse) => void): Request; + /** + * Gets a collection of Tag resources. + */ + getTags(params: ApiGatewayV2.Types.GetTagsRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetTagsResponse) => void): Request; + /** + * Gets a collection of Tag resources. + */ + getTags(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetTagsResponse) => void): Request; + /** + * Gets a VPC link. + */ + getVpcLink(params: ApiGatewayV2.Types.GetVpcLinkRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetVpcLinkResponse) => void): Request; + /** + * Gets a VPC link. + */ + getVpcLink(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetVpcLinkResponse) => void): Request; + /** + * Gets a collection of VPC links. + */ + getVpcLinks(params: ApiGatewayV2.Types.GetVpcLinksRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.GetVpcLinksResponse) => void): Request; + /** + * Gets a collection of VPC links. + */ + getVpcLinks(callback?: (err: AWSError, data: ApiGatewayV2.Types.GetVpcLinksResponse) => void): Request; + /** + * Imports an API. + */ + importApi(params: ApiGatewayV2.Types.ImportApiRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.ImportApiResponse) => void): Request; + /** + * Imports an API. + */ + importApi(callback?: (err: AWSError, data: ApiGatewayV2.Types.ImportApiResponse) => void): Request; + /** + * Puts an Api resource. + */ + reimportApi(params: ApiGatewayV2.Types.ReimportApiRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.ReimportApiResponse) => void): Request; + /** + * Puts an Api resource. + */ + reimportApi(callback?: (err: AWSError, data: ApiGatewayV2.Types.ReimportApiResponse) => void): Request; + /** + * Creates a new Tag resource to represent a tag. + */ + tagResource(params: ApiGatewayV2.Types.TagResourceRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.TagResourceResponse) => void): Request; + /** + * Creates a new Tag resource to represent a tag. + */ + tagResource(callback?: (err: AWSError, data: ApiGatewayV2.Types.TagResourceResponse) => void): Request; + /** + * Deletes a Tag. + */ + untagResource(params: ApiGatewayV2.Types.UntagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a Tag. + */ + untagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates an Api resource. + */ + updateApi(params: ApiGatewayV2.Types.UpdateApiRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateApiResponse) => void): Request; + /** + * Updates an Api resource. + */ + updateApi(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateApiResponse) => void): Request; + /** + * The API mapping. + */ + updateApiMapping(params: ApiGatewayV2.Types.UpdateApiMappingRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateApiMappingResponse) => void): Request; + /** + * The API mapping. + */ + updateApiMapping(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateApiMappingResponse) => void): Request; + /** + * Updates an Authorizer. + */ + updateAuthorizer(params: ApiGatewayV2.Types.UpdateAuthorizerRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateAuthorizerResponse) => void): Request; + /** + * Updates an Authorizer. + */ + updateAuthorizer(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateAuthorizerResponse) => void): Request; + /** + * Updates a Deployment. + */ + updateDeployment(params: ApiGatewayV2.Types.UpdateDeploymentRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateDeploymentResponse) => void): Request; + /** + * Updates a Deployment. + */ + updateDeployment(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateDeploymentResponse) => void): Request; + /** + * Updates a domain name. + */ + updateDomainName(params: ApiGatewayV2.Types.UpdateDomainNameRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateDomainNameResponse) => void): Request; + /** + * Updates a domain name. + */ + updateDomainName(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateDomainNameResponse) => void): Request; + /** + * Updates an Integration. + */ + updateIntegration(params: ApiGatewayV2.Types.UpdateIntegrationRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateIntegrationResult) => void): Request; + /** + * Updates an Integration. + */ + updateIntegration(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateIntegrationResult) => void): Request; + /** + * Updates an IntegrationResponses. + */ + updateIntegrationResponse(params: ApiGatewayV2.Types.UpdateIntegrationResponseRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateIntegrationResponseResponse) => void): Request; + /** + * Updates an IntegrationResponses. + */ + updateIntegrationResponse(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateIntegrationResponseResponse) => void): Request; + /** + * Updates a Model. + */ + updateModel(params: ApiGatewayV2.Types.UpdateModelRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateModelResponse) => void): Request; + /** + * Updates a Model. + */ + updateModel(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateModelResponse) => void): Request; + /** + * Updates a Route. + */ + updateRoute(params: ApiGatewayV2.Types.UpdateRouteRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateRouteResult) => void): Request; + /** + * Updates a Route. + */ + updateRoute(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateRouteResult) => void): Request; + /** + * Updates a RouteResponse. + */ + updateRouteResponse(params: ApiGatewayV2.Types.UpdateRouteResponseRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateRouteResponseResponse) => void): Request; + /** + * Updates a RouteResponse. + */ + updateRouteResponse(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateRouteResponseResponse) => void): Request; + /** + * Updates a Stage. + */ + updateStage(params: ApiGatewayV2.Types.UpdateStageRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateStageResponse) => void): Request; + /** + * Updates a Stage. + */ + updateStage(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateStageResponse) => void): Request; + /** + * Updates a VPC link. + */ + updateVpcLink(params: ApiGatewayV2.Types.UpdateVpcLinkRequest, callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateVpcLinkResponse) => void): Request; + /** + * Updates a VPC link. + */ + updateVpcLink(callback?: (err: AWSError, data: ApiGatewayV2.Types.UpdateVpcLinkResponse) => void): Request; +} +declare namespace ApiGatewayV2 { + export interface AccessLogSettings { + /** + * The ARN of the CloudWatch Logs log group to receive access logs. + */ + DestinationArn?: Arn; + /** + * A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId. + */ + Format?: StringWithLengthBetween1And1024; + } + export interface Api { + /** + * The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage. + */ + ApiEndpoint?: __string; + /** + * Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it. + */ + ApiGatewayManaged?: __boolean; + /** + * The API ID. + */ + ApiId?: Id; + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. + */ + CorsConfiguration?: Cors; + /** + * The timestamp when the API was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs. + */ + ImportInfo?: __listOf__string; + /** + * The name of the API. + */ + Name: StringWithLengthBetween1And128; + /** + * The API protocol. + */ + ProtocolType: ProtocolType; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression: SelectionExpression; + /** + * A collection of tags associated with the API. + */ + Tags?: Tags; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + /** + * The warning messages reported when failonwarnings is turned on during API import. + */ + Warnings?: __listOf__string; + } + export interface ApiMapping { + /** + * The API identifier. + */ + ApiId: Id; + /** + * The API mapping identifier. + */ + ApiMappingId?: Id; + /** + * The API mapping key. + */ + ApiMappingKey?: SelectionKey; + /** + * The API stage. + */ + Stage: StringWithLengthBetween1And128; + } + export type Arn = string; + export type AuthorizationScopes = StringWithLengthBetween1And64[]; + export type AuthorizationType = "NONE"|"AWS_IAM"|"CUSTOM"|"JWT"|string; + export interface Authorizer { + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers. + */ + AuthorizerCredentialsArn?: Arn; + /** + * The authorizer identifier. + */ + AuthorizerId?: Id; + /** + * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. + */ + AuthorizerPayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers. + */ + AuthorizerResultTtlInSeconds?: IntegerWithLengthBetween0And3600; + /** + * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). + */ + AuthorizerType?: AuthorizerType; + /** + * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api} + , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. + */ + AuthorizerUri?: UriWithLengthBetween1And2048; + /** + * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with AWS Lambda authorizers for HTTP APIs + */ + EnableSimpleResponses?: __boolean; + /** + * The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization. + */ + IdentitySource?: IdentitySourceList; + /** + * The validation expression does not apply to the REQUEST authorizer. + */ + IdentityValidationExpression?: StringWithLengthBetween0And1024; + /** + * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. + */ + JwtConfiguration?: JWTConfiguration; + /** + * The name of the authorizer. + */ + Name: StringWithLengthBetween1And128; + } + export type AuthorizerType = "REQUEST"|"JWT"|string; + export type ConnectionType = "INTERNET"|"VPC_LINK"|string; + export type ContentHandlingStrategy = "CONVERT_TO_BINARY"|"CONVERT_TO_TEXT"|string; + export interface Cors { + /** + * Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs. + */ + AllowCredentials?: __boolean; + /** + * Represents a collection of allowed headers. Supported only for HTTP APIs. + */ + AllowHeaders?: CorsHeaderList; + /** + * Represents a collection of allowed HTTP methods. Supported only for HTTP APIs. + */ + AllowMethods?: CorsMethodList; + /** + * Represents a collection of allowed origins. Supported only for HTTP APIs. + */ + AllowOrigins?: CorsOriginList; + /** + * Represents a collection of exposed headers. Supported only for HTTP APIs. + */ + ExposeHeaders?: CorsHeaderList; + /** + * The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs. + */ + MaxAge?: IntegerWithLengthBetweenMinus1And86400; + } + export type CorsHeaderList = __string[]; + export type CorsMethodList = StringWithLengthBetween1And64[]; + export type CorsOriginList = __string[]; + export interface CreateApiMappingRequest { + /** + * The API identifier. + */ + ApiId: Id; + /** + * The API mapping key. + */ + ApiMappingKey?: SelectionKey; + /** + * The domain name. + */ + DomainName: __string; + /** + * The API stage. + */ + Stage: StringWithLengthBetween1And128; + } + export interface CreateApiMappingResponse { + /** + * The API identifier. + */ + ApiId?: Id; + /** + * The API mapping identifier. + */ + ApiMappingId?: Id; + /** + * The API mapping key. + */ + ApiMappingKey?: SelectionKey; + /** + * The API stage. + */ + Stage?: StringWithLengthBetween1And128; + } + export interface CreateApiRequest { + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. See Configuring CORS for more information. + */ + CorsConfiguration?: Cors; + /** + * This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs. + */ + CredentialsArn?: Arn; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The name of the API. + */ + Name: StringWithLengthBetween1And128; + /** + * The API protocol. + */ + ProtocolType: ProtocolType; + /** + * This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default route key can't be modified. You can add routes after creating the API, and you can update the route keys of additional routes. Supported only for HTTP APIs. + */ + RouteKey?: SelectionKey; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression?: SelectionExpression; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + Tags?: Tags; + /** + * This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. Supported only for HTTP APIs. + */ + Target?: UriWithLengthBetween1And2048; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + } + export interface CreateApiResponse { + /** + * The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage. + */ + ApiEndpoint?: __string; + /** + * Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it. + */ + ApiGatewayManaged?: __boolean; + /** + * The API ID. + */ + ApiId?: Id; + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. + */ + CorsConfiguration?: Cors; + /** + * The timestamp when the API was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs. + */ + ImportInfo?: __listOf__string; + /** + * The name of the API. + */ + Name?: StringWithLengthBetween1And128; + /** + * The API protocol. + */ + ProtocolType?: ProtocolType; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression?: SelectionExpression; + /** + * A collection of tags associated with the API. + */ + Tags?: Tags; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + /** + * The warning messages reported when failonwarnings is turned on during API import. + */ + Warnings?: __listOf__string; + } + export interface CreateAuthorizerRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers. + */ + AuthorizerCredentialsArn?: Arn; + /** + * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. + */ + AuthorizerPayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers. + */ + AuthorizerResultTtlInSeconds?: IntegerWithLengthBetween0And3600; + /** + * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). + */ + AuthorizerType: AuthorizerType; + /** + * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api} + , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. + */ + AuthorizerUri?: UriWithLengthBetween1And2048; + /** + * Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with AWS Lambda authorizers for HTTP APIs + */ + EnableSimpleResponses?: __boolean; + /** + * The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization. + */ + IdentitySource: IdentitySourceList; + /** + * This parameter is not used. + */ + IdentityValidationExpression?: StringWithLengthBetween0And1024; + /** + * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. + */ + JwtConfiguration?: JWTConfiguration; + /** + * The name of the authorizer. + */ + Name: StringWithLengthBetween1And128; + } + export interface CreateAuthorizerResponse { + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers. + */ + AuthorizerCredentialsArn?: Arn; + /** + * The authorizer identifier. + */ + AuthorizerId?: Id; + /** + * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. + */ + AuthorizerPayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers. + */ + AuthorizerResultTtlInSeconds?: IntegerWithLengthBetween0And3600; + /** + * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). + */ + AuthorizerType?: AuthorizerType; + /** + * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api} + , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. + */ + AuthorizerUri?: UriWithLengthBetween1And2048; + /** + * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with AWS Lambda authorizers for HTTP APIs + */ + EnableSimpleResponses?: __boolean; + /** + * The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization. + */ + IdentitySource?: IdentitySourceList; + /** + * The validation expression does not apply to the REQUEST authorizer. + */ + IdentityValidationExpression?: StringWithLengthBetween0And1024; + /** + * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. + */ + JwtConfiguration?: JWTConfiguration; + /** + * The name of the authorizer. + */ + Name?: StringWithLengthBetween1And128; + } + export interface CreateDeploymentRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The description for the deployment resource. + */ + Description?: StringWithLengthBetween0And1024; + /** + * The name of the Stage resource for the Deployment resource to create. + */ + StageName?: StringWithLengthBetween1And128; + } + export interface CreateDeploymentResponse { + /** + * Specifies whether a deployment was automatically released. + */ + AutoDeployed?: __boolean; + /** + * The date and time when the Deployment resource was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The identifier for the deployment. + */ + DeploymentId?: Id; + /** + * The status of the deployment: PENDING, FAILED, or SUCCEEDED. + */ + DeploymentStatus?: DeploymentStatus; + /** + * May contain additional feedback on the status of an API deployment. + */ + DeploymentStatusMessage?: __string; + /** + * The description for the deployment. + */ + Description?: StringWithLengthBetween0And1024; + } + export interface CreateDomainNameRequest { + /** + * The domain name. + */ + DomainName: StringWithLengthBetween1And512; + /** + * The domain name configurations. + */ + DomainNameConfigurations?: DomainNameConfigurations; + /** + * The mutual TLS authentication configuration for a custom domain name. + */ + MutualTlsAuthentication?: MutualTlsAuthenticationInput; + /** + * The collection of tags associated with a domain name. + */ + Tags?: Tags; + } + export interface CreateDomainNameResponse { + /** + * The API mapping selection expression. + */ + ApiMappingSelectionExpression?: SelectionExpression; + /** + * The name of the DomainName resource. + */ + DomainName?: StringWithLengthBetween1And512; + /** + * The domain name configurations. + */ + DomainNameConfigurations?: DomainNameConfigurations; + /** + * The mutual TLS authentication configuration for a custom domain name. + */ + MutualTlsAuthentication?: MutualTlsAuthentication; + /** + * The collection of tags associated with a domain name. + */ + Tags?: Tags; + } + export interface CreateIntegrationRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The ID of the VPC link for a private integration. Supported only for HTTP APIs. + */ + ConnectionId?: StringWithLengthBetween1And1024; + /** + * The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET. + */ + ConnectionType?: ConnectionType; + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. + */ + CredentialsArn?: Arn; + /** + * The description of the integration. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Specifies the integration's HTTP method type. + */ + IntegrationMethod?: StringWithLengthBetween1And64; + /** + * Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. + */ + IntegrationSubtype?: StringWithLengthBetween1And128; + /** + * The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs. + */ + IntegrationType: IntegrationType; + /** + * For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account. + */ + IntegrationUri?: UriWithLengthBetween1And2048; + /** + * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response. + */ + PassthroughBehavior?: PassthroughBehavior; + /** + * Specifies the format of the payload sent to an integration. Required for HTTP APIs. + */ + PayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name} + , where + {location} + is querystring, path, or header; and + {name} + must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Working with AWS service integrations for HTTP APIs. For HTTP API integrations without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to the backend. The key should follow the pattern <action>:<header|querystring|path>.<location> where action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + RequestParameters?: IntegrationParameters; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs. + */ + RequestTemplates?: TemplateMap; + /** + * Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern <action>:<header>.<location> or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + ResponseParameters?: ResponseParameters; + /** + * The template selection expression for the integration. + */ + TemplateSelectionExpression?: SelectionExpression; + /** + * Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. + */ + TimeoutInMillis?: IntegerWithLengthBetween50And30000; + /** + * The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. + */ + TlsConfig?: TlsConfigInput; + } + export interface CreateIntegrationResult { + /** + * Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it. + */ + ApiGatewayManaged?: __boolean; + /** + * The ID of the VPC link for a private integration. Supported only for HTTP APIs. + */ + ConnectionId?: StringWithLengthBetween1And1024; + /** + * The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET. + */ + ConnectionType?: ConnectionType; + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. + */ + CredentialsArn?: Arn; + /** + * Represents the description of an integration. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Represents the identifier of an integration. + */ + IntegrationId?: Id; + /** + * Specifies the integration's HTTP method type. + */ + IntegrationMethod?: StringWithLengthBetween1And64; + /** + * The integration response selection expression for the integration. Supported only for WebSocket APIs. See Integration Response Selection Expressions. + */ + IntegrationResponseSelectionExpression?: SelectionExpression; + /** + * Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. + */ + IntegrationSubtype?: StringWithLengthBetween1And128; + /** + * The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs. + */ + IntegrationType?: IntegrationType; + /** + * For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account. + */ + IntegrationUri?: UriWithLengthBetween1And2048; + /** + * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response. + */ + PassthroughBehavior?: PassthroughBehavior; + /** + * Specifies the format of the payload sent to an integration. Required for HTTP APIs. + */ + PayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name} + , where + {location} + is querystring, path, or header; and + {name} + must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Working with AWS service integrations for HTTP APIs. For HTTP API itegrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern <action>:<header|querystring|path>.<location>. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + RequestParameters?: IntegrationParameters; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs. + */ + RequestTemplates?: TemplateMap; + /** + * Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern <action>:<header>.<location> or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + ResponseParameters?: ResponseParameters; + /** + * The template selection expression for the integration. Supported only for WebSocket APIs. + */ + TemplateSelectionExpression?: SelectionExpression; + /** + * Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. + */ + TimeoutInMillis?: IntegerWithLengthBetween50And30000; + /** + * The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. + */ + TlsConfig?: TlsConfig; + } + export interface CreateIntegrationResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * The integration ID. + */ + IntegrationId: __string; + /** + * The integration response key. + */ + IntegrationResponseKey: SelectionKey; + /** + * A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where {name} is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where {name} is a valid and unique response header name and {JSON-expression} is a valid JSON expression without the $ prefix. + */ + ResponseParameters?: IntegrationParameters; + /** + * The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. + */ + ResponseTemplates?: TemplateMap; + /** + * The template selection expression for the integration response. Supported only for WebSocket APIs. + */ + TemplateSelectionExpression?: SelectionExpression; + } + export interface CreateIntegrationResponseResponse { + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * The integration response ID. + */ + IntegrationResponseId?: Id; + /** + * The integration response key. + */ + IntegrationResponseKey?: SelectionKey; + /** + * A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix. + */ + ResponseParameters?: IntegrationParameters; + /** + * The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. + */ + ResponseTemplates?: TemplateMap; + /** + * The template selection expressions for the integration response. + */ + TemplateSelectionExpression?: SelectionExpression; + } + export interface CreateModelRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The content-type for the model, for example, "application/json". + */ + ContentType?: StringWithLengthBetween1And256; + /** + * The description of the model. + */ + Description?: StringWithLengthBetween0And1024; + /** + * The name of the model. Must be alphanumeric. + */ + Name: StringWithLengthBetween1And128; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. + */ + Schema: StringWithLengthBetween0And32K; + } + export interface CreateModelResponse { + /** + * The content-type for the model, for example, "application/json". + */ + ContentType?: StringWithLengthBetween1And256; + /** + * The description of the model. + */ + Description?: StringWithLengthBetween0And1024; + /** + * The model identifier. + */ + ModelId?: Id; + /** + * The name of the model. Must be alphanumeric. + */ + Name?: StringWithLengthBetween1And128; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. + */ + Schema?: StringWithLengthBetween0And32K; + } + export interface CreateRouteRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies whether an API key is required for the route. Supported only for WebSocket APIs. + */ + ApiKeyRequired?: __boolean; + /** + * The authorization scopes supported by this route. + */ + AuthorizationScopes?: AuthorizationScopes; + /** + * The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + */ + AuthorizationType?: AuthorizationType; + /** + * The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. + */ + AuthorizerId?: Id; + /** + * The model selection expression for the route. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The operation name for the route. + */ + OperationName?: StringWithLengthBetween1And64; + /** + * The request models for the route. Supported only for WebSocket APIs. + */ + RequestModels?: RouteModels; + /** + * The request parameters for the route. Supported only for WebSocket APIs. + */ + RequestParameters?: RouteParameters; + /** + * The route key for the route. + */ + RouteKey: SelectionKey; + /** + * The route response selection expression for the route. Supported only for WebSocket APIs. + */ + RouteResponseSelectionExpression?: SelectionExpression; + /** + * The target for the route. + */ + Target?: StringWithLengthBetween1And128; + } + export interface CreateRouteResult { + /** + * Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether an API key is required for this route. Supported only for WebSocket APIs. + */ + ApiKeyRequired?: __boolean; + /** + * A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes. + */ + AuthorizationScopes?: AuthorizationScopes; + /** + * The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + */ + AuthorizationType?: AuthorizationType; + /** + * The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. + */ + AuthorizerId?: Id; + /** + * The model selection expression for the route. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The operation name for the route. + */ + OperationName?: StringWithLengthBetween1And64; + /** + * The request models for the route. Supported only for WebSocket APIs. + */ + RequestModels?: RouteModels; + /** + * The request parameters for the route. Supported only for WebSocket APIs. + */ + RequestParameters?: RouteParameters; + /** + * The route ID. + */ + RouteId?: Id; + /** + * The route key for the route. + */ + RouteKey?: SelectionKey; + /** + * The route response selection expression for the route. Supported only for WebSocket APIs. + */ + RouteResponseSelectionExpression?: SelectionExpression; + /** + * The target for the route. + */ + Target?: StringWithLengthBetween1And128; + } + export interface CreateRouteResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The model selection expression for the route response. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The response models for the route response. + */ + ResponseModels?: RouteModels; + /** + * The route response parameters. + */ + ResponseParameters?: RouteParameters; + /** + * The route ID. + */ + RouteId: __string; + /** + * The route response key. + */ + RouteResponseKey: SelectionKey; + } + export interface CreateRouteResponseResponse { + /** + * Represents the model selection expression of a route response. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * Represents the response models of a route response. + */ + ResponseModels?: RouteModels; + /** + * Represents the response parameters of a route response. + */ + ResponseParameters?: RouteParameters; + /** + * Represents the identifier of a route response. + */ + RouteResponseId?: Id; + /** + * Represents the route response key of a route response. + */ + RouteResponseKey?: SelectionKey; + } + export interface CreateStageRequest { + /** + * Settings for logging access in this stage. + */ + AccessLogSettings?: AccessLogSettings; + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies whether updates to an API automatically trigger a new deployment. The default value is false. + */ + AutoDeploy?: __boolean; + /** + * The identifier of a client certificate for a Stage. Supported only for WebSocket APIs. + */ + ClientCertificateId?: Id; + /** + * The default route settings for the stage. + */ + DefaultRouteSettings?: RouteSettings; + /** + * The deployment identifier of the API stage. + */ + DeploymentId?: Id; + /** + * The description for the API stage. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Route settings for the stage, by routeKey. + */ + RouteSettings?: RouteSettingsMap; + /** + * The name of the stage. + */ + StageName: StringWithLengthBetween1And128; + /** + * A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + StageVariables?: StageVariablesMap; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + Tags?: Tags; + } + export interface CreateStageResponse { + /** + * Settings for logging access in this stage. + */ + AccessLogSettings?: AccessLogSettings; + /** + * Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether updates to an API automatically trigger a new deployment. The default value is false. + */ + AutoDeploy?: __boolean; + /** + * The identifier of a client certificate for a Stage. Supported only for WebSocket APIs. + */ + ClientCertificateId?: Id; + /** + * The timestamp when the stage was created. + */ + CreatedDate?: __timestampIso8601; + /** + * Default route settings for the stage. + */ + DefaultRouteSettings?: RouteSettings; + /** + * The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled. + */ + DeploymentId?: Id; + /** + * The description of the stage. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled. + */ + LastDeploymentStatusMessage?: __string; + /** + * The timestamp when the stage was last updated. + */ + LastUpdatedDate?: __timestampIso8601; + /** + * Route settings for the stage, by routeKey. + */ + RouteSettings?: RouteSettingsMap; + /** + * The name of the stage. + */ + StageName?: StringWithLengthBetween1And128; + /** + * A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + StageVariables?: StageVariablesMap; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + Tags?: Tags; + } + export interface CreateVpcLinkRequest { + /** + * The name of the VPC link. + */ + Name: StringWithLengthBetween1And128; + /** + * A list of security group IDs for the VPC link. + */ + SecurityGroupIds?: SecurityGroupIdList; + /** + * A list of subnet IDs to include in the VPC link. + */ + SubnetIds: SubnetIdList; + /** + * A list of tags. + */ + Tags?: Tags; + } + export interface CreateVpcLinkResponse { + /** + * The timestamp when the VPC link was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The name of the VPC link. + */ + Name?: StringWithLengthBetween1And128; + /** + * A list of security group IDs for the VPC link. + */ + SecurityGroupIds?: SecurityGroupIdList; + /** + * A list of subnet IDs to include in the VPC link. + */ + SubnetIds?: SubnetIdList; + /** + * Tags for the VPC link. + */ + Tags?: Tags; + /** + * The ID of the VPC link. + */ + VpcLinkId?: Id; + /** + * The status of the VPC link. + */ + VpcLinkStatus?: VpcLinkStatus; + /** + * A message summarizing the cause of the status of the VPC link. + */ + VpcLinkStatusMessage?: StringWithLengthBetween0And1024; + /** + * The version of the VPC link. + */ + VpcLinkVersion?: VpcLinkVersion; + } + export interface DeleteAccessLogSettingsRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. + */ + StageName: __string; + } + export interface DeleteApiMappingRequest { + /** + * The API mapping identifier. + */ + ApiMappingId: __string; + /** + * The domain name. + */ + DomainName: __string; + } + export interface DeleteApiRequest { + /** + * The API identifier. + */ + ApiId: __string; + } + export interface DeleteAuthorizerRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The authorizer identifier. + */ + AuthorizerId: __string; + } + export interface DeleteCorsConfigurationRequest { + /** + * The API identifier. + */ + ApiId: __string; + } + export interface DeleteDeploymentRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The deployment ID. + */ + DeploymentId: __string; + } + export interface DeleteDomainNameRequest { + /** + * The domain name. + */ + DomainName: __string; + } + export interface DeleteIntegrationRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The integration ID. + */ + IntegrationId: __string; + } + export interface DeleteIntegrationResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The integration ID. + */ + IntegrationId: __string; + /** + * The integration response ID. + */ + IntegrationResponseId: __string; + } + export interface DeleteModelRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The model ID. + */ + ModelId: __string; + } + export interface DeleteRouteRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The route ID. + */ + RouteId: __string; + } + export interface DeleteRouteRequestParameterRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The route request parameter key. + */ + RequestParameterKey: __string; + /** + * The route ID. + */ + RouteId: __string; + } + export interface DeleteRouteResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The route ID. + */ + RouteId: __string; + /** + * The route response ID. + */ + RouteResponseId: __string; + } + export interface DeleteRouteSettingsRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The route key. + */ + RouteKey: __string; + /** + * The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. + */ + StageName: __string; + } + export interface DeleteStageRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. + */ + StageName: __string; + } + export interface DeleteVpcLinkRequest { + /** + * The ID of the VPC link. + */ + VpcLinkId: __string; + } + export interface DeleteVpcLinkResponse { + } + export interface Deployment { + /** + * Specifies whether a deployment was automatically released. + */ + AutoDeployed?: __boolean; + /** + * The date and time when the Deployment resource was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The identifier for the deployment. + */ + DeploymentId?: Id; + /** + * The status of the deployment: PENDING, FAILED, or SUCCEEDED. + */ + DeploymentStatus?: DeploymentStatus; + /** + * May contain additional feedback on the status of an API deployment. + */ + DeploymentStatusMessage?: __string; + /** + * The description for the deployment. + */ + Description?: StringWithLengthBetween0And1024; + } + export type DeploymentStatus = "PENDING"|"FAILED"|"DEPLOYED"|string; + export interface DomainName { + /** + * The API mapping selection expression. + */ + ApiMappingSelectionExpression?: SelectionExpression; + /** + * The name of the DomainName resource. + */ + DomainName: StringWithLengthBetween1And512; + /** + * The domain name configurations. + */ + DomainNameConfigurations?: DomainNameConfigurations; + /** + * The mutual TLS authentication configuration for a custom domain name. + */ + MutualTlsAuthentication?: MutualTlsAuthentication; + /** + * The collection of tags associated with a domain name. + */ + Tags?: Tags; + } + export interface DomainNameConfiguration { + /** + * A domain name for the API. + */ + ApiGatewayDomainName?: __string; + /** + * An AWS-managed certificate that will be used by the edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source. + */ + CertificateArn?: Arn; + /** + * The user-friendly name of the certificate that will be used by the edge-optimized endpoint for this domain name. + */ + CertificateName?: StringWithLengthBetween1And128; + /** + * The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. + */ + CertificateUploadDate?: __timestampIso8601; + /** + * The status of the domain name migration. The valid values are AVAILABLE and UPDATING. If the status is UPDATING, the domain cannot be modified further until the existing operation is complete. If it is AVAILABLE, the domain can be updated. + */ + DomainNameStatus?: DomainNameStatus; + /** + * An optional text message containing detailed information about status of the domain name migration. + */ + DomainNameStatusMessage?: __string; + /** + * The endpoint type. + */ + EndpointType?: EndpointType; + /** + * The Amazon Route 53 Hosted Zone ID of the endpoint. + */ + HostedZoneId?: __string; + /** + * The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are TLS_1_0 and TLS_1_2. + */ + SecurityPolicy?: SecurityPolicy; + } + export type DomainNameConfigurations = DomainNameConfiguration[]; + export type DomainNameStatus = "AVAILABLE"|"UPDATING"|string; + export type EndpointType = "REGIONAL"|"EDGE"|string; + export interface ExportApiRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The version of the API Gateway export algorithm. API Gateway uses the latest version by default. Currently, the only supported version is 1.0. + */ + ExportVersion?: __string; + /** + * Specifies whether to include API Gateway extensions in the exported API definition. API Gateway extensions are included by default. + */ + IncludeExtensions?: __boolean; + /** + * The output type of the exported definition file. Valid values are JSON and YAML. + */ + OutputType: __string; + /** + * The version of the API specification to use. OAS30, for OpenAPI 3.0, is the only supported value. + */ + Specification: __string; + /** + * The name of the API stage to export. If you don't specify this property, a representation of the latest API configuration is exported. + */ + StageName?: __string; + } + export interface ExportApiResponse { + body?: ExportedApi; + } + export type ExportedApi = Buffer|Uint8Array|Blob|string; + export interface ResetAuthorizersCacheRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The stage name. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be $default. Maximum length is 128 characters. + */ + StageName: __string; + } + export interface GetApiMappingRequest { + /** + * The API mapping identifier. + */ + ApiMappingId: __string; + /** + * The domain name. + */ + DomainName: __string; + } + export interface GetApiMappingResponse { + /** + * The API identifier. + */ + ApiId?: Id; + /** + * The API mapping identifier. + */ + ApiMappingId?: Id; + /** + * The API mapping key. + */ + ApiMappingKey?: SelectionKey; + /** + * The API stage. + */ + Stage?: StringWithLengthBetween1And128; + } + export interface GetApiMappingsRequest { + /** + * The domain name. + */ + DomainName: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetApiMappingsResponse { + /** + * The elements from this collection. + */ + Items?: __listOfApiMapping; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetApiRequest { + /** + * The API identifier. + */ + ApiId: __string; + } + export interface GetApiResponse { + /** + * The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage. + */ + ApiEndpoint?: __string; + /** + * Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it. + */ + ApiGatewayManaged?: __boolean; + /** + * The API ID. + */ + ApiId?: Id; + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. + */ + CorsConfiguration?: Cors; + /** + * The timestamp when the API was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs. + */ + ImportInfo?: __listOf__string; + /** + * The name of the API. + */ + Name?: StringWithLengthBetween1And128; + /** + * The API protocol. + */ + ProtocolType?: ProtocolType; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression?: SelectionExpression; + /** + * A collection of tags associated with the API. + */ + Tags?: Tags; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + /** + * The warning messages reported when failonwarnings is turned on during API import. + */ + Warnings?: __listOf__string; + } + export interface GetApisRequest { + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetApisResponse { + /** + * The elements from this collection. + */ + Items?: __listOfApi; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetAuthorizerRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The authorizer identifier. + */ + AuthorizerId: __string; + } + export interface GetAuthorizerResponse { + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers. + */ + AuthorizerCredentialsArn?: Arn; + /** + * The authorizer identifier. + */ + AuthorizerId?: Id; + /** + * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. + */ + AuthorizerPayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers. + */ + AuthorizerResultTtlInSeconds?: IntegerWithLengthBetween0And3600; + /** + * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). + */ + AuthorizerType?: AuthorizerType; + /** + * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api} + , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. + */ + AuthorizerUri?: UriWithLengthBetween1And2048; + /** + * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with AWS Lambda authorizers for HTTP APIs + */ + EnableSimpleResponses?: __boolean; + /** + * The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization. + */ + IdentitySource?: IdentitySourceList; + /** + * The validation expression does not apply to the REQUEST authorizer. + */ + IdentityValidationExpression?: StringWithLengthBetween0And1024; + /** + * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. + */ + JwtConfiguration?: JWTConfiguration; + /** + * The name of the authorizer. + */ + Name?: StringWithLengthBetween1And128; + } + export interface GetAuthorizersRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetAuthorizersResponse { + /** + * The elements from this collection. + */ + Items?: __listOfAuthorizer; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetDeploymentRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The deployment ID. + */ + DeploymentId: __string; + } + export interface GetDeploymentResponse { + /** + * Specifies whether a deployment was automatically released. + */ + AutoDeployed?: __boolean; + /** + * The date and time when the Deployment resource was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The identifier for the deployment. + */ + DeploymentId?: Id; + /** + * The status of the deployment: PENDING, FAILED, or SUCCEEDED. + */ + DeploymentStatus?: DeploymentStatus; + /** + * May contain additional feedback on the status of an API deployment. + */ + DeploymentStatusMessage?: __string; + /** + * The description for the deployment. + */ + Description?: StringWithLengthBetween0And1024; + } + export interface GetDeploymentsRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetDeploymentsResponse { + /** + * The elements from this collection. + */ + Items?: __listOfDeployment; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetDomainNameRequest { + /** + * The domain name. + */ + DomainName: __string; + } + export interface GetDomainNameResponse { + /** + * The API mapping selection expression. + */ + ApiMappingSelectionExpression?: SelectionExpression; + /** + * The name of the DomainName resource. + */ + DomainName?: StringWithLengthBetween1And512; + /** + * The domain name configurations. + */ + DomainNameConfigurations?: DomainNameConfigurations; + /** + * The mutual TLS authentication configuration for a custom domain name. + */ + MutualTlsAuthentication?: MutualTlsAuthentication; + /** + * The collection of tags associated with a domain name. + */ + Tags?: Tags; + } + export interface GetDomainNamesRequest { + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetDomainNamesResponse { + /** + * The elements from this collection. + */ + Items?: __listOfDomainName; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetIntegrationRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The integration ID. + */ + IntegrationId: __string; + } + export interface GetIntegrationResult { + /** + * Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it. + */ + ApiGatewayManaged?: __boolean; + /** + * The ID of the VPC link for a private integration. Supported only for HTTP APIs. + */ + ConnectionId?: StringWithLengthBetween1And1024; + /** + * The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET. + */ + ConnectionType?: ConnectionType; + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. + */ + CredentialsArn?: Arn; + /** + * Represents the description of an integration. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Represents the identifier of an integration. + */ + IntegrationId?: Id; + /** + * Specifies the integration's HTTP method type. + */ + IntegrationMethod?: StringWithLengthBetween1And64; + /** + * The integration response selection expression for the integration. Supported only for WebSocket APIs. See Integration Response Selection Expressions. + */ + IntegrationResponseSelectionExpression?: SelectionExpression; + /** + * Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. + */ + IntegrationSubtype?: StringWithLengthBetween1And128; + /** + * The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs. + */ + IntegrationType?: IntegrationType; + /** + * For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account. + */ + IntegrationUri?: UriWithLengthBetween1And2048; + /** + * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response. + */ + PassthroughBehavior?: PassthroughBehavior; + /** + * Specifies the format of the payload sent to an integration. Required for HTTP APIs. + */ + PayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name} + , where + {location} + is querystring, path, or header; and + {name} + must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Working with AWS service integrations for HTTP APIs. For HTTP API itegrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern <action>:<header|querystring|path>.<location>. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + RequestParameters?: IntegrationParameters; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs. + */ + RequestTemplates?: TemplateMap; + /** + * Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern <action>:<header>.<location> or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + ResponseParameters?: ResponseParameters; + /** + * The template selection expression for the integration. Supported only for WebSocket APIs. + */ + TemplateSelectionExpression?: SelectionExpression; + /** + * Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. + */ + TimeoutInMillis?: IntegerWithLengthBetween50And30000; + /** + * The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. + */ + TlsConfig?: TlsConfig; + } + export interface GetIntegrationResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The integration ID. + */ + IntegrationId: __string; + /** + * The integration response ID. + */ + IntegrationResponseId: __string; + } + export interface GetIntegrationResponseResponse { + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * The integration response ID. + */ + IntegrationResponseId?: Id; + /** + * The integration response key. + */ + IntegrationResponseKey?: SelectionKey; + /** + * A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix. + */ + ResponseParameters?: IntegrationParameters; + /** + * The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. + */ + ResponseTemplates?: TemplateMap; + /** + * The template selection expressions for the integration response. + */ + TemplateSelectionExpression?: SelectionExpression; + } + export interface GetIntegrationResponsesRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The integration ID. + */ + IntegrationId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetIntegrationResponsesResponse { + /** + * The elements from this collection. + */ + Items?: __listOfIntegrationResponse; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetIntegrationsRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetIntegrationsResponse { + /** + * The elements from this collection. + */ + Items?: __listOfIntegration; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetModelRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The model ID. + */ + ModelId: __string; + } + export interface GetModelResponse { + /** + * The content-type for the model, for example, "application/json". + */ + ContentType?: StringWithLengthBetween1And256; + /** + * The description of the model. + */ + Description?: StringWithLengthBetween0And1024; + /** + * The model identifier. + */ + ModelId?: Id; + /** + * The name of the model. Must be alphanumeric. + */ + Name?: StringWithLengthBetween1And128; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. + */ + Schema?: StringWithLengthBetween0And32K; + } + export interface GetModelTemplateRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The model ID. + */ + ModelId: __string; + } + export interface GetModelTemplateResponse { + /** + * The template value. + */ + Value?: __string; + } + export interface GetModelsRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetModelsResponse { + /** + * The elements from this collection. + */ + Items?: __listOfModel; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetRouteRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The route ID. + */ + RouteId: __string; + } + export interface GetRouteResult { + /** + * Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether an API key is required for this route. Supported only for WebSocket APIs. + */ + ApiKeyRequired?: __boolean; + /** + * A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes. + */ + AuthorizationScopes?: AuthorizationScopes; + /** + * The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + */ + AuthorizationType?: AuthorizationType; + /** + * The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. + */ + AuthorizerId?: Id; + /** + * The model selection expression for the route. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The operation name for the route. + */ + OperationName?: StringWithLengthBetween1And64; + /** + * The request models for the route. Supported only for WebSocket APIs. + */ + RequestModels?: RouteModels; + /** + * The request parameters for the route. Supported only for WebSocket APIs. + */ + RequestParameters?: RouteParameters; + /** + * The route ID. + */ + RouteId?: Id; + /** + * The route key for the route. + */ + RouteKey?: SelectionKey; + /** + * The route response selection expression for the route. Supported only for WebSocket APIs. + */ + RouteResponseSelectionExpression?: SelectionExpression; + /** + * The target for the route. + */ + Target?: StringWithLengthBetween1And128; + } + export interface GetRouteResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The route ID. + */ + RouteId: __string; + /** + * The route response ID. + */ + RouteResponseId: __string; + } + export interface GetRouteResponseResponse { + /** + * Represents the model selection expression of a route response. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * Represents the response models of a route response. + */ + ResponseModels?: RouteModels; + /** + * Represents the response parameters of a route response. + */ + ResponseParameters?: RouteParameters; + /** + * Represents the identifier of a route response. + */ + RouteResponseId?: Id; + /** + * Represents the route response key of a route response. + */ + RouteResponseKey?: SelectionKey; + } + export interface GetRouteResponsesRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + /** + * The route ID. + */ + RouteId: __string; + } + export interface GetRouteResponsesResponse { + /** + * The elements from this collection. + */ + Items?: __listOfRouteResponse; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetRoutesRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetRoutesResponse { + /** + * The elements from this collection. + */ + Items?: __listOfRoute; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetStageRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. + */ + StageName: __string; + } + export interface GetStageResponse { + /** + * Settings for logging access in this stage. + */ + AccessLogSettings?: AccessLogSettings; + /** + * Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether updates to an API automatically trigger a new deployment. The default value is false. + */ + AutoDeploy?: __boolean; + /** + * The identifier of a client certificate for a Stage. Supported only for WebSocket APIs. + */ + ClientCertificateId?: Id; + /** + * The timestamp when the stage was created. + */ + CreatedDate?: __timestampIso8601; + /** + * Default route settings for the stage. + */ + DefaultRouteSettings?: RouteSettings; + /** + * The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled. + */ + DeploymentId?: Id; + /** + * The description of the stage. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled. + */ + LastDeploymentStatusMessage?: __string; + /** + * The timestamp when the stage was last updated. + */ + LastUpdatedDate?: __timestampIso8601; + /** + * Route settings for the stage, by routeKey. + */ + RouteSettings?: RouteSettingsMap; + /** + * The name of the stage. + */ + StageName?: StringWithLengthBetween1And128; + /** + * A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + StageVariables?: StageVariablesMap; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + Tags?: Tags; + } + export interface GetStagesRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetStagesResponse { + /** + * The elements from this collection. + */ + Items?: __listOfStage; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export interface GetTagsRequest { + /** + * The resource ARN for the tag. + */ + ResourceArn: __string; + } + export interface GetTagsResponse { + Tags?: Tags; + } + export interface GetVpcLinkRequest { + /** + * The ID of the VPC link. + */ + VpcLinkId: __string; + } + export interface GetVpcLinkResponse { + /** + * The timestamp when the VPC link was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The name of the VPC link. + */ + Name?: StringWithLengthBetween1And128; + /** + * A list of security group IDs for the VPC link. + */ + SecurityGroupIds?: SecurityGroupIdList; + /** + * A list of subnet IDs to include in the VPC link. + */ + SubnetIds?: SubnetIdList; + /** + * Tags for the VPC link. + */ + Tags?: Tags; + /** + * The ID of the VPC link. + */ + VpcLinkId?: Id; + /** + * The status of the VPC link. + */ + VpcLinkStatus?: VpcLinkStatus; + /** + * A message summarizing the cause of the status of the VPC link. + */ + VpcLinkStatusMessage?: StringWithLengthBetween0And1024; + /** + * The version of the VPC link. + */ + VpcLinkVersion?: VpcLinkVersion; + } + export interface GetVpcLinksRequest { + /** + * The maximum number of elements to be returned for this resource. + */ + MaxResults?: __string; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: __string; + } + export interface GetVpcLinksResponse { + /** + * A collection of VPC links. + */ + Items?: __listOfVpcLink; + /** + * The next page of elements from this collection. Not valid for the last element of the collection. + */ + NextToken?: NextToken; + } + export type Id = string; + export type IdentitySourceList = __string[]; + export interface ImportApiRequest { + /** + * Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see Set the OpenAPI basePath Property. Supported only for HTTP APIs. + */ + Basepath?: __string; + /** + * The OpenAPI definition. Supported only for HTTP APIs. + */ + Body: __string; + /** + * Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered. + */ + FailOnWarnings?: __boolean; + } + export interface ImportApiResponse { + /** + * The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage. + */ + ApiEndpoint?: __string; + /** + * Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it. + */ + ApiGatewayManaged?: __boolean; + /** + * The API ID. + */ + ApiId?: Id; + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. + */ + CorsConfiguration?: Cors; + /** + * The timestamp when the API was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs. + */ + ImportInfo?: __listOf__string; + /** + * The name of the API. + */ + Name?: StringWithLengthBetween1And128; + /** + * The API protocol. + */ + ProtocolType?: ProtocolType; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression?: SelectionExpression; + /** + * A collection of tags associated with the API. + */ + Tags?: Tags; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + /** + * The warning messages reported when failonwarnings is turned on during API import. + */ + Warnings?: __listOf__string; + } + export type IntegerWithLengthBetween0And3600 = number; + export type IntegerWithLengthBetween50And30000 = number; + export type IntegerWithLengthBetweenMinus1And86400 = number; + export interface Integration { + /** + * Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it. + */ + ApiGatewayManaged?: __boolean; + /** + * The ID of the VPC link for a private integration. Supported only for HTTP APIs. + */ + ConnectionId?: StringWithLengthBetween1And1024; + /** + * The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET. + */ + ConnectionType?: ConnectionType; + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. + */ + CredentialsArn?: Arn; + /** + * Represents the description of an integration. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Represents the identifier of an integration. + */ + IntegrationId?: Id; + /** + * Specifies the integration's HTTP method type. + */ + IntegrationMethod?: StringWithLengthBetween1And64; + /** + * The integration response selection expression for the integration. Supported only for WebSocket APIs. See Integration Response Selection Expressions. + */ + IntegrationResponseSelectionExpression?: SelectionExpression; + /** + * Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. + */ + IntegrationSubtype?: StringWithLengthBetween1And128; + /** + * The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs. + */ + IntegrationType?: IntegrationType; + /** + * For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account. + */ + IntegrationUri?: UriWithLengthBetween1And2048; + /** + * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response. + */ + PassthroughBehavior?: PassthroughBehavior; + /** + * Specifies the format of the payload sent to an integration. Required for HTTP APIs. + */ + PayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name} + , where + {location} + is querystring, path, or header; and + {name} + must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Working with AWS service integrations for HTTP APIs. For HTTP API itegrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern <action>:<header|querystring|path>.<location>. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + RequestParameters?: IntegrationParameters; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs. + */ + RequestTemplates?: TemplateMap; + /** + * Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern <action>:<header>.<location> or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + ResponseParameters?: ResponseParameters; + /** + * The template selection expression for the integration. Supported only for WebSocket APIs. + */ + TemplateSelectionExpression?: SelectionExpression; + /** + * Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. + */ + TimeoutInMillis?: IntegerWithLengthBetween50And30000; + /** + * The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. + */ + TlsConfig?: TlsConfig; + } + export type IntegrationParameters = {[key: string]: StringWithLengthBetween1And512}; + export interface IntegrationResponse { + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * The integration response ID. + */ + IntegrationResponseId?: Id; + /** + * The integration response key. + */ + IntegrationResponseKey: SelectionKey; + /** + * A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix. + */ + ResponseParameters?: IntegrationParameters; + /** + * The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. + */ + ResponseTemplates?: TemplateMap; + /** + * The template selection expressions for the integration response. + */ + TemplateSelectionExpression?: SelectionExpression; + } + export type IntegrationType = "AWS"|"HTTP"|"MOCK"|"HTTP_PROXY"|"AWS_PROXY"|string; + export interface JWTConfiguration { + /** + * A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See RFC 7519. Supported only for HTTP APIs. + */ + Audience?: __listOf__string; + /** + * The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.{region}.amazonaws.com/{userPoolId} + . Required for the JWT authorizer type. Supported only for HTTP APIs. + */ + Issuer?: UriWithLengthBetween1And2048; + } + export type LoggingLevel = "ERROR"|"INFO"|"OFF"|string; + export interface Model { + /** + * The content-type for the model, for example, "application/json". + */ + ContentType?: StringWithLengthBetween1And256; + /** + * The description of the model. + */ + Description?: StringWithLengthBetween0And1024; + /** + * The model identifier. + */ + ModelId?: Id; + /** + * The name of the model. Must be alphanumeric. + */ + Name: StringWithLengthBetween1And128; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. + */ + Schema?: StringWithLengthBetween0And32K; + } + export interface MutualTlsAuthentication { + /** + * An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://bucket-name/key-name. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object. + */ + TruststoreUri?: UriWithLengthBetween1And2048; + /** + * The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket. + */ + TruststoreVersion?: StringWithLengthBetween1And64; + /** + * A list of warnings that API Gateway returns while processing your truststore. Invalid certificates produce warnings. Mutual TLS is still enabled, but some clients might not be able to access your API. To resolve warnings, upload a new truststore to S3, and then update you domain name to use the new version. + */ + TruststoreWarnings?: __listOf__string; + } + export interface MutualTlsAuthenticationInput { + /** + * An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://bucket-name/key-name. The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object. + */ + TruststoreUri?: UriWithLengthBetween1And2048; + /** + * The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket. + */ + TruststoreVersion?: StringWithLengthBetween1And64; + } + export type NextToken = string; + export interface ParameterConstraints { + /** + * Whether or not the parameter is required. + */ + Required?: __boolean; + } + export type PassthroughBehavior = "WHEN_NO_MATCH"|"NEVER"|"WHEN_NO_TEMPLATES"|string; + export type ProtocolType = "WEBSOCKET"|"HTTP"|string; + export interface ReimportApiRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see Set the OpenAPI basePath Property. Supported only for HTTP APIs. + */ + Basepath?: __string; + /** + * The OpenAPI definition. Supported only for HTTP APIs. + */ + Body: __string; + /** + * Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered. + */ + FailOnWarnings?: __boolean; + } + export interface ReimportApiResponse { + /** + * The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage. + */ + ApiEndpoint?: __string; + /** + * Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it. + */ + ApiGatewayManaged?: __boolean; + /** + * The API ID. + */ + ApiId?: Id; + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. + */ + CorsConfiguration?: Cors; + /** + * The timestamp when the API was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs. + */ + ImportInfo?: __listOf__string; + /** + * The name of the API. + */ + Name?: StringWithLengthBetween1And128; + /** + * The API protocol. + */ + ProtocolType?: ProtocolType; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression?: SelectionExpression; + /** + * A collection of tags associated with the API. + */ + Tags?: Tags; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + /** + * The warning messages reported when failonwarnings is turned on during API import. + */ + Warnings?: __listOf__string; + } + export type ResponseParameters = {[key: string]: IntegrationParameters}; + export interface Route { + /** + * Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether an API key is required for this route. Supported only for WebSocket APIs. + */ + ApiKeyRequired?: __boolean; + /** + * A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes. + */ + AuthorizationScopes?: AuthorizationScopes; + /** + * The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + */ + AuthorizationType?: AuthorizationType; + /** + * The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. + */ + AuthorizerId?: Id; + /** + * The model selection expression for the route. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The operation name for the route. + */ + OperationName?: StringWithLengthBetween1And64; + /** + * The request models for the route. Supported only for WebSocket APIs. + */ + RequestModels?: RouteModels; + /** + * The request parameters for the route. Supported only for WebSocket APIs. + */ + RequestParameters?: RouteParameters; + /** + * The route ID. + */ + RouteId?: Id; + /** + * The route key for the route. + */ + RouteKey: SelectionKey; + /** + * The route response selection expression for the route. Supported only for WebSocket APIs. + */ + RouteResponseSelectionExpression?: SelectionExpression; + /** + * The target for the route. + */ + Target?: StringWithLengthBetween1And128; + } + export type RouteModels = {[key: string]: StringWithLengthBetween1And128}; + export type RouteParameters = {[key: string]: ParameterConstraints}; + export interface RouteResponse { + /** + * Represents the model selection expression of a route response. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * Represents the response models of a route response. + */ + ResponseModels?: RouteModels; + /** + * Represents the response parameters of a route response. + */ + ResponseParameters?: RouteParameters; + /** + * Represents the identifier of a route response. + */ + RouteResponseId?: Id; + /** + * Represents the route response key of a route response. + */ + RouteResponseKey: SelectionKey; + } + export interface RouteSettings { + /** + * Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs. + */ + DataTraceEnabled?: __boolean; + /** + * Specifies whether detailed metrics are enabled. + */ + DetailedMetricsEnabled?: __boolean; + /** + * Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs. + */ + LoggingLevel?: LoggingLevel; + /** + * Specifies the throttling burst limit. + */ + ThrottlingBurstLimit?: __integer; + /** + * Specifies the throttling rate limit. + */ + ThrottlingRateLimit?: __double; + } + export type RouteSettingsMap = {[key: string]: RouteSettings}; + export type SecurityGroupIdList = __string[]; + export type SecurityPolicy = "TLS_1_0"|"TLS_1_2"|string; + export type SelectionExpression = string; + export type SelectionKey = string; + export interface Stage { + /** + * Settings for logging access in this stage. + */ + AccessLogSettings?: AccessLogSettings; + /** + * Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether updates to an API automatically trigger a new deployment. The default value is false. + */ + AutoDeploy?: __boolean; + /** + * The identifier of a client certificate for a Stage. Supported only for WebSocket APIs. + */ + ClientCertificateId?: Id; + /** + * The timestamp when the stage was created. + */ + CreatedDate?: __timestampIso8601; + /** + * Default route settings for the stage. + */ + DefaultRouteSettings?: RouteSettings; + /** + * The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled. + */ + DeploymentId?: Id; + /** + * The description of the stage. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled. + */ + LastDeploymentStatusMessage?: __string; + /** + * The timestamp when the stage was last updated. + */ + LastUpdatedDate?: __timestampIso8601; + /** + * Route settings for the stage, by routeKey. + */ + RouteSettings?: RouteSettingsMap; + /** + * The name of the stage. + */ + StageName: StringWithLengthBetween1And128; + /** + * A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + StageVariables?: StageVariablesMap; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + Tags?: Tags; + } + export type StageVariablesMap = {[key: string]: StringWithLengthBetween0And2048}; + export type StringWithLengthBetween0And1024 = string; + export type StringWithLengthBetween0And2048 = string; + export type StringWithLengthBetween0And32K = string; + export type StringWithLengthBetween1And1024 = string; + export type StringWithLengthBetween1And128 = string; + export type StringWithLengthBetween1And1600 = string; + export type StringWithLengthBetween1And256 = string; + export type StringWithLengthBetween1And512 = string; + export type StringWithLengthBetween1And64 = string; + export type SubnetIdList = __string[]; + export interface TagResourceRequest { + /** + * The resource ARN for the tag. + */ + ResourceArn: __string; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + Tags?: Tags; + } + export interface TagResourceResponse { + } + export type Tags = {[key: string]: StringWithLengthBetween1And1600}; + export type TemplateMap = {[key: string]: StringWithLengthBetween0And32K}; + export interface TlsConfig { + /** + * If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting. + */ + ServerNameToVerify?: StringWithLengthBetween1And512; + } + export interface TlsConfigInput { + /** + * If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting. + */ + ServerNameToVerify?: StringWithLengthBetween1And512; + } + export interface UntagResourceRequest { + /** + * The resource ARN for the tag. + */ + ResourceArn: __string; + /** + * The Tag keys to delete + */ + TagKeys: __listOf__string; + } + export interface UpdateApiMappingRequest { + /** + * The API identifier. + */ + ApiId: Id; + /** + * The API mapping identifier. + */ + ApiMappingId: __string; + /** + * The API mapping key. + */ + ApiMappingKey?: SelectionKey; + /** + * The domain name. + */ + DomainName: __string; + /** + * The API stage. + */ + Stage?: StringWithLengthBetween1And128; + } + export interface UpdateApiMappingResponse { + /** + * The API identifier. + */ + ApiId?: Id; + /** + * The API mapping identifier. + */ + ApiMappingId?: Id; + /** + * The API mapping key. + */ + ApiMappingKey?: SelectionKey; + /** + * The API stage. + */ + Stage?: StringWithLengthBetween1And128; + } + export interface UpdateApiRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. + */ + CorsConfiguration?: Cors; + /** + * This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter. Currently, this property is not used for HTTP integrations. If provided, this value replaces the credentials associated with the quick create integration. Supported only for HTTP APIs. + */ + CredentialsArn?: Arn; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The name of the API. + */ + Name?: StringWithLengthBetween1And128; + /** + * This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, this value replaces the route key of the quick create route. Additional routes may still be added after the API is updated. Supported only for HTTP APIs. + */ + RouteKey?: SelectionKey; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression?: SelectionExpression; + /** + * This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. The value provided updates the integration URI and integration type. You can update a quick-created target, but you can't remove it from an API. Supported only for HTTP APIs. + */ + Target?: UriWithLengthBetween1And2048; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + } + export interface UpdateApiResponse { + /** + * The URI of the API, of the form {api-id}.execute-api.{region}.amazonaws.com. The stage name is typically appended to this URI to form a complete path to a deployed API stage. + */ + ApiEndpoint?: __string; + /** + * Specifies whether an API is managed by API Gateway. You can't update or delete a managed API by using API Gateway. A managed API can be deleted only through the tooling or service that created it. + */ + ApiGatewayManaged?: __boolean; + /** + * The API ID. + */ + ApiId?: Id; + /** + * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. + */ + ApiKeySelectionExpression?: SelectionExpression; + /** + * A CORS configuration. Supported only for HTTP APIs. + */ + CorsConfiguration?: Cors; + /** + * The timestamp when the API was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The description of the API. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. + */ + DisableSchemaValidation?: __boolean; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. + */ + DisableExecuteApiEndpoint?: __boolean; + /** + * The validation information during API import. This may include particular properties of your OpenAPI definition which are ignored during import. Supported only for HTTP APIs. + */ + ImportInfo?: __listOf__string; + /** + * The name of the API. + */ + Name?: StringWithLengthBetween1And128; + /** + * The API protocol. + */ + ProtocolType?: ProtocolType; + /** + * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket APIs. + */ + RouteSelectionExpression?: SelectionExpression; + /** + * A collection of tags associated with the API. + */ + Tags?: Tags; + /** + * A version identifier for the API. + */ + Version?: StringWithLengthBetween1And64; + /** + * The warning messages reported when failonwarnings is turned on during API import. + */ + Warnings?: __listOf__string; + } + export interface UpdateAuthorizerRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. + */ + AuthorizerCredentialsArn?: Arn; + /** + * The authorizer identifier. + */ + AuthorizerId: __string; + /** + * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. + */ + AuthorizerPayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers. + */ + AuthorizerResultTtlInSeconds?: IntegerWithLengthBetween0And3600; + /** + * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). + */ + AuthorizerType?: AuthorizerType; + /** + * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api} + , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. + */ + AuthorizerUri?: UriWithLengthBetween1And2048; + /** + * Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with AWS Lambda authorizers for HTTP APIs + */ + EnableSimpleResponses?: __boolean; + /** + * The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization. + */ + IdentitySource?: IdentitySourceList; + /** + * This parameter is not used. + */ + IdentityValidationExpression?: StringWithLengthBetween0And1024; + /** + * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. + */ + JwtConfiguration?: JWTConfiguration; + /** + * The name of the authorizer. + */ + Name?: StringWithLengthBetween1And128; + } + export interface UpdateAuthorizerResponse { + /** + * Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, don't specify this parameter. Supported only for REQUEST authorizers. + */ + AuthorizerCredentialsArn?: Arn; + /** + * The authorizer identifier. + */ + AuthorizerId?: Id; + /** + * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. + */ + AuthorizerPayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour. Supported only for HTTP API Lambda authorizers. + */ + AuthorizerResultTtlInSeconds?: IntegerWithLengthBetween0And3600; + /** + * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). + */ + AuthorizerType?: AuthorizerType; + /** + * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations. In general, the URI has this form: arn:aws:apigateway:{region}:lambda:path/{service_api} + , where {region} is the same as the region hosting the Lambda function, path indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial /. For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. + */ + AuthorizerUri?: UriWithLengthBetween1And2048; + /** + * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with AWS Lambda authorizers for HTTP APIs + */ + EnableSimpleResponses?: __boolean; + /** + * The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The identity source can be headers, query string parameters, stage variables, and context parameters. For example, if an Auth header and a Name query string parameter are defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the identity-related request parameters are present in the request, not null, and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function. Otherwise, it returns a 401 Unauthorized response without calling the Lambda function. For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see Working with AWS Lambda authorizers for HTTP APIs. For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently only header-based and query parameter-based selections are supported, for example $request.header.Authorization. + */ + IdentitySource?: IdentitySourceList; + /** + * The validation expression does not apply to the REQUEST authorizer. + */ + IdentityValidationExpression?: StringWithLengthBetween0And1024; + /** + * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. + */ + JwtConfiguration?: JWTConfiguration; + /** + * The name of the authorizer. + */ + Name?: StringWithLengthBetween1And128; + } + export interface UpdateDeploymentRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The deployment ID. + */ + DeploymentId: __string; + /** + * The description for the deployment resource. + */ + Description?: StringWithLengthBetween0And1024; + } + export interface UpdateDeploymentResponse { + /** + * Specifies whether a deployment was automatically released. + */ + AutoDeployed?: __boolean; + /** + * The date and time when the Deployment resource was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The identifier for the deployment. + */ + DeploymentId?: Id; + /** + * The status of the deployment: PENDING, FAILED, or SUCCEEDED. + */ + DeploymentStatus?: DeploymentStatus; + /** + * May contain additional feedback on the status of an API deployment. + */ + DeploymentStatusMessage?: __string; + /** + * The description for the deployment. + */ + Description?: StringWithLengthBetween0And1024; + } + export interface UpdateDomainNameRequest { + /** + * The domain name. + */ + DomainName: __string; + /** + * The domain name configurations. + */ + DomainNameConfigurations?: DomainNameConfigurations; + /** + * The mutual TLS authentication configuration for a custom domain name. + */ + MutualTlsAuthentication?: MutualTlsAuthenticationInput; + } + export interface UpdateDomainNameResponse { + /** + * The API mapping selection expression. + */ + ApiMappingSelectionExpression?: SelectionExpression; + /** + * The name of the DomainName resource. + */ + DomainName?: StringWithLengthBetween1And512; + /** + * The domain name configurations. + */ + DomainNameConfigurations?: DomainNameConfigurations; + /** + * The mutual TLS authentication configuration for a custom domain name. + */ + MutualTlsAuthentication?: MutualTlsAuthentication; + /** + * The collection of tags associated with a domain name. + */ + Tags?: Tags; + } + export interface UpdateIntegrationRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The ID of the VPC link for a private integration. Supported only for HTTP APIs. + */ + ConnectionId?: StringWithLengthBetween1And1024; + /** + * The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET. + */ + ConnectionType?: ConnectionType; + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. + */ + CredentialsArn?: Arn; + /** + * The description of the integration + */ + Description?: StringWithLengthBetween0And1024; + /** + * The integration ID. + */ + IntegrationId: __string; + /** + * Specifies the integration's HTTP method type. + */ + IntegrationMethod?: StringWithLengthBetween1And64; + /** + * Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. + */ + IntegrationSubtype?: StringWithLengthBetween1And128; + /** + * The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. For HTTP API private integrations, use an HTTP_PROXY integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs. + */ + IntegrationType?: IntegrationType; + /** + * For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account. + */ + IntegrationUri?: UriWithLengthBetween1And2048; + /** + * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response. + */ + PassthroughBehavior?: PassthroughBehavior; + /** + * Specifies the format of the payload sent to an integration. Required for HTTP APIs. + */ + PayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name} + , where + {location} + is querystring, path, or header; and + {name} + must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Working with AWS service integrations for HTTP APIs. For HTTP API integrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to the backend. The key should follow the pattern <action>:<header|querystring|path>.<location> where action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + RequestParameters?: IntegrationParameters; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs. + */ + RequestTemplates?: TemplateMap; + /** + * Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern <action>:<header>.<location> or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + ResponseParameters?: ResponseParameters; + /** + * The template selection expression for the integration. + */ + TemplateSelectionExpression?: SelectionExpression; + /** + * Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. + */ + TimeoutInMillis?: IntegerWithLengthBetween50And30000; + /** + * The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. + */ + TlsConfig?: TlsConfigInput; + } + export interface UpdateIntegrationResult { + /** + * Specifies whether an integration is managed by API Gateway. If you created an API using using quick create, the resulting integration is managed by API Gateway. You can update a managed integration, but you can't delete it. + */ + ApiGatewayManaged?: __boolean; + /** + * The ID of the VPC link for a private integration. Supported only for HTTP APIs. + */ + ConnectionId?: StringWithLengthBetween1And1024; + /** + * The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET. + */ + ConnectionType?: ConnectionType; + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, specify null. + */ + CredentialsArn?: Arn; + /** + * Represents the description of an integration. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Represents the identifier of an integration. + */ + IntegrationId?: Id; + /** + * Specifies the integration's HTTP method type. + */ + IntegrationMethod?: StringWithLengthBetween1And64; + /** + * The integration response selection expression for the integration. Supported only for WebSocket APIs. See Integration Response Selection Expressions. + */ + IntegrationResponseSelectionExpression?: SelectionExpression; + /** + * Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. + */ + IntegrationSubtype?: StringWithLengthBetween1And128; + /** + * The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambda function-invoking action, this is referred to as the Lambda custom integration. With any other AWS service action, this is known as AWS integration. Supported only for WebSocket APIs. AWS_PROXY: for integrating the route or method request with a Lambda function or other AWS service action. This integration is also referred to as a Lambda proxy integration. HTTP: for integrating the route or method request with an HTTP endpoint. This integration is also referred to as the HTTP custom integration. Supported only for WebSocket APIs. HTTP_PROXY: for integrating the route or method request with an HTTP endpoint, with the client request passed through as-is. This is also referred to as HTTP proxy integration. MOCK: for integrating the route or method request with API Gateway as a "loopback" endpoint without invoking any backend. Supported only for WebSocket APIs. + */ + IntegrationType?: IntegrationType; + /** + * For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service. If you specify the ARN of an AWS Cloud Map service, API Gateway uses DiscoverInstances to identify resources. You can use query parameters to target specific resources. To learn more, see DiscoverInstances. For private integrations, all resources must be owned by the same AWS account. + */ + IntegrationUri?: UriWithLengthBetween1And2048; + /** + * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs. WHEN_NO_MATCH passes the request body for unmapped content types through to the integration backend without transformation. NEVER rejects unmapped content types with an HTTP 415 Unsupported Media Type response. WHEN_NO_TEMPLATES allows pass-through when the integration has no content types mapped to templates. However, if there is at least one content type defined, unmapped content types will be rejected with the same HTTP 415 Unsupported Media Type response. + */ + PassthroughBehavior?: PassthroughBehavior; + /** + * Specifies the format of the payload sent to an integration. Required for HTTP APIs. + */ + PayloadFormatVersion?: StringWithLengthBetween1And64; + /** + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the backend. The method request parameter value must match the pattern of method.request.{location}.{name} + , where + {location} + is querystring, path, or header; and + {name} + must be a valid and unique method request parameter name. For HTTP API integrations with a specified integrationSubtype, request parameters are a key-value map specifying parameters that are passed to AWS_PROXY integrations. You can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Working with AWS service integrations for HTTP APIs. For HTTP API itegrations, without a specified integrationSubtype request parameters are a key-value map specifying how to transform HTTP requests before sending them to backend integrations. The key should follow the pattern <action>:<header|querystring|path>.<location>. The action can be append, overwrite or remove. For values, you can provide static values, or map request data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + RequestParameters?: IntegrationParameters; + /** + * Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value. Supported only for WebSocket APIs. + */ + RequestTemplates?: TemplateMap; + /** + * Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection key to response parameters. The selection key must be a valid HTTP status code within the range of 200-599. Response parameters are a key-value map. The key must match pattern <action>:<header>.<location> or overwrite.statuscode. The action can be append, overwrite or remove. The value can be a static value, or map to response data, stage variables, or context variables that are evaluated at runtime. To learn more, see Transforming API requests and responses. + */ + ResponseParameters?: ResponseParameters; + /** + * The template selection expression for the integration. Supported only for WebSocket APIs. + */ + TemplateSelectionExpression?: SelectionExpression; + /** + * Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs. + */ + TimeoutInMillis?: IntegerWithLengthBetween50And30000; + /** + * The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. + */ + TlsConfig?: TlsConfig; + } + export interface UpdateIntegrationResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * The integration ID. + */ + IntegrationId: __string; + /** + * The integration response ID. + */ + IntegrationResponseId: __string; + /** + * The integration response key. + */ + IntegrationResponseKey?: SelectionKey; + /** + * A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name} + , where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} + or integration.response.body.{JSON-expression} + , where + {name} + is a valid and unique response header name and + {JSON-expression} + is a valid JSON expression without the $ prefix. + */ + ResponseParameters?: IntegrationParameters; + /** + * The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. + */ + ResponseTemplates?: TemplateMap; + /** + * The template selection expression for the integration response. Supported only for WebSocket APIs. + */ + TemplateSelectionExpression?: SelectionExpression; + } + export interface UpdateIntegrationResponseResponse { + /** + * Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob. CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string. If this property is not defined, the response payload will be passed through from the integration response to the route response or method response without modification. + */ + ContentHandlingStrategy?: ContentHandlingStrategy; + /** + * The integration response ID. + */ + IntegrationResponseId?: Id; + /** + * The integration response key. + */ + IntegrationResponseKey?: SelectionKey; + /** + * A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of method.response.header.{name}, where name is a valid and unique header name. The mapped non-static value must match the pattern of integration.response.header.{name} or integration.response.body.{JSON-expression}, where name is a valid and unique response header name and JSON-expression is a valid JSON expression without the $ prefix. + */ + ResponseParameters?: IntegrationParameters; + /** + * The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. + */ + ResponseTemplates?: TemplateMap; + /** + * The template selection expressions for the integration response. + */ + TemplateSelectionExpression?: SelectionExpression; + } + export interface UpdateModelRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The content-type for the model, for example, "application/json". + */ + ContentType?: StringWithLengthBetween1And256; + /** + * The description of the model. + */ + Description?: StringWithLengthBetween0And1024; + /** + * The model ID. + */ + ModelId: __string; + /** + * The name of the model. + */ + Name?: StringWithLengthBetween1And128; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. + */ + Schema?: StringWithLengthBetween0And32K; + } + export interface UpdateModelResponse { + /** + * The content-type for the model, for example, "application/json". + */ + ContentType?: StringWithLengthBetween1And256; + /** + * The description of the model. + */ + Description?: StringWithLengthBetween0And1024; + /** + * The model identifier. + */ + ModelId?: Id; + /** + * The name of the model. Must be alphanumeric. + */ + Name?: StringWithLengthBetween1And128; + /** + * The schema for the model. For application/json models, this should be JSON schema draft 4 model. + */ + Schema?: StringWithLengthBetween0And32K; + } + export interface UpdateRouteRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies whether an API key is required for the route. Supported only for WebSocket APIs. + */ + ApiKeyRequired?: __boolean; + /** + * The authorization scopes supported by this route. + */ + AuthorizationScopes?: AuthorizationScopes; + /** + * The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + */ + AuthorizationType?: AuthorizationType; + /** + * The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. + */ + AuthorizerId?: Id; + /** + * The model selection expression for the route. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The operation name for the route. + */ + OperationName?: StringWithLengthBetween1And64; + /** + * The request models for the route. Supported only for WebSocket APIs. + */ + RequestModels?: RouteModels; + /** + * The request parameters for the route. Supported only for WebSocket APIs. + */ + RequestParameters?: RouteParameters; + /** + * The route ID. + */ + RouteId: __string; + /** + * The route key for the route. + */ + RouteKey?: SelectionKey; + /** + * The route response selection expression for the route. Supported only for WebSocket APIs. + */ + RouteResponseSelectionExpression?: SelectionExpression; + /** + * The target for the route. + */ + Target?: StringWithLengthBetween1And128; + } + export interface UpdateRouteResult { + /** + * Specifies whether a route is managed by API Gateway. If you created an API using quick create, the $default route is managed by API Gateway. You can't modify the $default route key. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether an API key is required for this route. Supported only for WebSocket APIs. + */ + ApiKeyRequired?: __boolean; + /** + * A list of authorization scopes configured on a route. The scopes are used with a JWT authorizer to authorize the method invocation. The authorization works by matching the route scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any route scope matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the route scope is configured, the client must provide an access token instead of an identity token for authorization purposes. + */ + AuthorizationScopes?: AuthorizationScopes; + /** + * The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid values are NONE for open access, JWT for using JSON Web Tokens, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer. + */ + AuthorizationType?: AuthorizationType; + /** + * The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. + */ + AuthorizerId?: Id; + /** + * The model selection expression for the route. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The operation name for the route. + */ + OperationName?: StringWithLengthBetween1And64; + /** + * The request models for the route. Supported only for WebSocket APIs. + */ + RequestModels?: RouteModels; + /** + * The request parameters for the route. Supported only for WebSocket APIs. + */ + RequestParameters?: RouteParameters; + /** + * The route ID. + */ + RouteId?: Id; + /** + * The route key for the route. + */ + RouteKey?: SelectionKey; + /** + * The route response selection expression for the route. Supported only for WebSocket APIs. + */ + RouteResponseSelectionExpression?: SelectionExpression; + /** + * The target for the route. + */ + Target?: StringWithLengthBetween1And128; + } + export interface UpdateRouteResponseRequest { + /** + * The API identifier. + */ + ApiId: __string; + /** + * The model selection expression for the route response. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * The response models for the route response. + */ + ResponseModels?: RouteModels; + /** + * The route response parameters. + */ + ResponseParameters?: RouteParameters; + /** + * The route ID. + */ + RouteId: __string; + /** + * The route response ID. + */ + RouteResponseId: __string; + /** + * The route response key. + */ + RouteResponseKey?: SelectionKey; + } + export interface UpdateRouteResponseResponse { + /** + * Represents the model selection expression of a route response. Supported only for WebSocket APIs. + */ + ModelSelectionExpression?: SelectionExpression; + /** + * Represents the response models of a route response. + */ + ResponseModels?: RouteModels; + /** + * Represents the response parameters of a route response. + */ + ResponseParameters?: RouteParameters; + /** + * Represents the identifier of a route response. + */ + RouteResponseId?: Id; + /** + * Represents the route response key of a route response. + */ + RouteResponseKey?: SelectionKey; + } + export interface UpdateStageRequest { + /** + * Settings for logging access in this stage. + */ + AccessLogSettings?: AccessLogSettings; + /** + * The API identifier. + */ + ApiId: __string; + /** + * Specifies whether updates to an API automatically trigger a new deployment. The default value is false. + */ + AutoDeploy?: __boolean; + /** + * The identifier of a client certificate for a Stage. + */ + ClientCertificateId?: Id; + /** + * The default route settings for the stage. + */ + DefaultRouteSettings?: RouteSettings; + /** + * The deployment identifier for the API stage. Can't be updated if autoDeploy is enabled. + */ + DeploymentId?: Id; + /** + * The description for the API stage. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Route settings for the stage. + */ + RouteSettings?: RouteSettingsMap; + /** + * The stage name. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be $default. Maximum length is 128 characters. + */ + StageName: __string; + /** + * A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + StageVariables?: StageVariablesMap; + } + export interface UpdateStageResponse { + /** + * Settings for logging access in this stage. + */ + AccessLogSettings?: AccessLogSettings; + /** + * Specifies whether a stage is managed by API Gateway. If you created an API using quick create, the $default stage is managed by API Gateway. You can't modify the $default stage. + */ + ApiGatewayManaged?: __boolean; + /** + * Specifies whether updates to an API automatically trigger a new deployment. The default value is false. + */ + AutoDeploy?: __boolean; + /** + * The identifier of a client certificate for a Stage. Supported only for WebSocket APIs. + */ + ClientCertificateId?: Id; + /** + * The timestamp when the stage was created. + */ + CreatedDate?: __timestampIso8601; + /** + * Default route settings for the stage. + */ + DefaultRouteSettings?: RouteSettings; + /** + * The identifier of the Deployment that the Stage is associated with. Can't be updated if autoDeploy is enabled. + */ + DeploymentId?: Id; + /** + * The description of the stage. + */ + Description?: StringWithLengthBetween0And1024; + /** + * Describes the status of the last deployment of a stage. Supported only for stages with autoDeploy enabled. + */ + LastDeploymentStatusMessage?: __string; + /** + * The timestamp when the stage was last updated. + */ + LastUpdatedDate?: __timestampIso8601; + /** + * Route settings for the stage, by routeKey. + */ + RouteSettings?: RouteSettingsMap; + /** + * The name of the stage. + */ + StageName?: StringWithLengthBetween1And128; + /** + * A map that defines the stage variables for a stage resource. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&=,]+. + */ + StageVariables?: StageVariablesMap; + /** + * The collection of tags. Each tag element is associated with a given resource. + */ + Tags?: Tags; + } + export interface UpdateVpcLinkRequest { + /** + * The name of the VPC link. + */ + Name?: StringWithLengthBetween1And128; + /** + * The ID of the VPC link. + */ + VpcLinkId: __string; + } + export interface UpdateVpcLinkResponse { + /** + * The timestamp when the VPC link was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The name of the VPC link. + */ + Name?: StringWithLengthBetween1And128; + /** + * A list of security group IDs for the VPC link. + */ + SecurityGroupIds?: SecurityGroupIdList; + /** + * A list of subnet IDs to include in the VPC link. + */ + SubnetIds?: SubnetIdList; + /** + * Tags for the VPC link. + */ + Tags?: Tags; + /** + * The ID of the VPC link. + */ + VpcLinkId?: Id; + /** + * The status of the VPC link. + */ + VpcLinkStatus?: VpcLinkStatus; + /** + * A message summarizing the cause of the status of the VPC link. + */ + VpcLinkStatusMessage?: StringWithLengthBetween0And1024; + /** + * The version of the VPC link. + */ + VpcLinkVersion?: VpcLinkVersion; + } + export type UriWithLengthBetween1And2048 = string; + export interface VpcLink { + /** + * The timestamp when the VPC link was created. + */ + CreatedDate?: __timestampIso8601; + /** + * The name of the VPC link. + */ + Name: StringWithLengthBetween1And128; + /** + * A list of security group IDs for the VPC link. + */ + SecurityGroupIds: SecurityGroupIdList; + /** + * A list of subnet IDs to include in the VPC link. + */ + SubnetIds: SubnetIdList; + /** + * Tags for the VPC link. + */ + Tags?: Tags; + /** + * The ID of the VPC link. + */ + VpcLinkId: Id; + /** + * The status of the VPC link. + */ + VpcLinkStatus?: VpcLinkStatus; + /** + * A message summarizing the cause of the status of the VPC link. + */ + VpcLinkStatusMessage?: StringWithLengthBetween0And1024; + /** + * The version of the VPC link. + */ + VpcLinkVersion?: VpcLinkVersion; + } + export type VpcLinkStatus = "PENDING"|"AVAILABLE"|"DELETING"|"FAILED"|"INACTIVE"|string; + export type VpcLinkVersion = "V2"|string; + export type __boolean = boolean; + export type __double = number; + export type __integer = number; + export type __listOfApi = Api[]; + export type __listOfApiMapping = ApiMapping[]; + export type __listOfAuthorizer = Authorizer[]; + export type __listOfDeployment = Deployment[]; + export type __listOfDomainName = DomainName[]; + export type __listOfIntegration = Integration[]; + export type __listOfIntegrationResponse = IntegrationResponse[]; + export type __listOfModel = Model[]; + export type __listOfRoute = Route[]; + export type __listOfRouteResponse = RouteResponse[]; + export type __listOfStage = Stage[]; + export type __listOfVpcLink = VpcLink[]; + export type __listOf__string = __string[]; + export type __string = string; + export type __timestampIso8601 = Date; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-11-29"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the ApiGatewayV2 client. + */ + export import Types = ApiGatewayV2; +} +export = ApiGatewayV2; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apigatewayv2.js b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewayv2.js new file mode 100644 index 0000000000000000000000000000000000000000..7f19572959086e7e66e5edcb691285716a930c87 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apigatewayv2.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['apigatewayv2'] = {}; +AWS.ApiGatewayV2 = Service.defineService('apigatewayv2', ['2018-11-29']); +Object.defineProperty(apiLoader.services['apigatewayv2'], '2018-11-29', { + get: function get() { + var model = require('../apis/apigatewayv2-2018-11-29.min.json'); + model.paginators = require('../apis/apigatewayv2-2018-11-29.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.ApiGatewayV2; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appconfig.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/appconfig.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..eabc976e2f033893a1dd997b468515d52ede5ba3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appconfig.d.ts @@ -0,0 +1,1259 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AppConfig extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AppConfig.Types.ClientConfiguration) + config: Config & AppConfig.Types.ClientConfiguration; + /** + * An application in AppConfig is a logical unit of code that provides capabilities for your customers. For example, an application can be a microservice that runs on Amazon EC2 instances, a mobile application installed by your users, a serverless application using Amazon API Gateway and AWS Lambda, or any system you run on behalf of others. + */ + createApplication(params: AppConfig.Types.CreateApplicationRequest, callback?: (err: AWSError, data: AppConfig.Types.Application) => void): Request; + /** + * An application in AppConfig is a logical unit of code that provides capabilities for your customers. For example, an application can be a microservice that runs on Amazon EC2 instances, a mobile application installed by your users, a serverless application using Amazon API Gateway and AWS Lambda, or any system you run on behalf of others. + */ + createApplication(callback?: (err: AWSError, data: AppConfig.Types.Application) => void): Request; + /** + * Information that enables AppConfig to access the configuration source. Valid configuration sources include Systems Manager (SSM) documents, SSM Parameter Store parameters, and Amazon S3 objects. A configuration profile includes the following information. The Uri location of the configuration data. The AWS Identity and Access Management (IAM) role that provides access to the configuration data. A validator for the configuration data. Available validators include either a JSON Schema or an AWS Lambda function. For more information, see Create a Configuration and a Configuration Profile in the AWS AppConfig User Guide. + */ + createConfigurationProfile(params: AppConfig.Types.CreateConfigurationProfileRequest, callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfile) => void): Request; + /** + * Information that enables AppConfig to access the configuration source. Valid configuration sources include Systems Manager (SSM) documents, SSM Parameter Store parameters, and Amazon S3 objects. A configuration profile includes the following information. The Uri location of the configuration data. The AWS Identity and Access Management (IAM) role that provides access to the configuration data. A validator for the configuration data. Available validators include either a JSON Schema or an AWS Lambda function. For more information, see Create a Configuration and a Configuration Profile in the AWS AppConfig User Guide. + */ + createConfigurationProfile(callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfile) => void): Request; + /** + * A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time. + */ + createDeploymentStrategy(params: AppConfig.Types.CreateDeploymentStrategyRequest, callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategy) => void): Request; + /** + * A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time. + */ + createDeploymentStrategy(callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategy) => void): Request; + /** + * For each application, you define one or more environments. An environment is a logical deployment group of AppConfig targets, such as applications in a Beta or Production environment. You can also define environments for application subcomponents such as the Web, Mobile and Back-end components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration. + */ + createEnvironment(params: AppConfig.Types.CreateEnvironmentRequest, callback?: (err: AWSError, data: AppConfig.Types.Environment) => void): Request; + /** + * For each application, you define one or more environments. An environment is a logical deployment group of AppConfig targets, such as applications in a Beta or Production environment. You can also define environments for application subcomponents such as the Web, Mobile and Back-end components for your application. You can configure Amazon CloudWatch alarms for each environment. The system monitors alarms during a configuration deployment. If an alarm is triggered, the system rolls back the configuration. + */ + createEnvironment(callback?: (err: AWSError, data: AppConfig.Types.Environment) => void): Request; + /** + * Create a new configuration in the AppConfig configuration store. + */ + createHostedConfigurationVersion(params: AppConfig.Types.CreateHostedConfigurationVersionRequest, callback?: (err: AWSError, data: AppConfig.Types.HostedConfigurationVersion) => void): Request; + /** + * Create a new configuration in the AppConfig configuration store. + */ + createHostedConfigurationVersion(callback?: (err: AWSError, data: AppConfig.Types.HostedConfigurationVersion) => void): Request; + /** + * Delete an application. Deleting an application does not delete a configuration from a host. + */ + deleteApplication(params: AppConfig.Types.DeleteApplicationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete an application. Deleting an application does not delete a configuration from a host. + */ + deleteApplication(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a configuration profile. Deleting a configuration profile does not delete a configuration from a host. + */ + deleteConfigurationProfile(params: AppConfig.Types.DeleteConfigurationProfileRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a configuration profile. Deleting a configuration profile does not delete a configuration from a host. + */ + deleteConfigurationProfile(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a deployment strategy. Deleting a deployment strategy does not delete a configuration from a host. + */ + deleteDeploymentStrategy(params: AppConfig.Types.DeleteDeploymentStrategyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a deployment strategy. Deleting a deployment strategy does not delete a configuration from a host. + */ + deleteDeploymentStrategy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete an environment. Deleting an environment does not delete a configuration from a host. + */ + deleteEnvironment(params: AppConfig.Types.DeleteEnvironmentRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete an environment. Deleting an environment does not delete a configuration from a host. + */ + deleteEnvironment(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a version of a configuration from the AppConfig configuration store. + */ + deleteHostedConfigurationVersion(params: AppConfig.Types.DeleteHostedConfigurationVersionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a version of a configuration from the AppConfig configuration store. + */ + deleteHostedConfigurationVersion(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Retrieve information about an application. + */ + getApplication(params: AppConfig.Types.GetApplicationRequest, callback?: (err: AWSError, data: AppConfig.Types.Application) => void): Request; + /** + * Retrieve information about an application. + */ + getApplication(callback?: (err: AWSError, data: AppConfig.Types.Application) => void): Request; + /** + * Receive information about a configuration. AWS AppConfig uses the value of the ClientConfigurationVersion parameter to identify the configuration version on your clients. If you don’t send ClientConfigurationVersion with each call to GetConfiguration, your clients receive the current configuration. You are charged each time your clients receive a configuration. To avoid excess charges, we recommend that you include the ClientConfigurationVersion value with every call to GetConfiguration. This value must be saved on your client. Subsequent calls to GetConfiguration must pass this value by using the ClientConfigurationVersion parameter. + */ + getConfiguration(params: AppConfig.Types.GetConfigurationRequest, callback?: (err: AWSError, data: AppConfig.Types.Configuration) => void): Request; + /** + * Receive information about a configuration. AWS AppConfig uses the value of the ClientConfigurationVersion parameter to identify the configuration version on your clients. If you don’t send ClientConfigurationVersion with each call to GetConfiguration, your clients receive the current configuration. You are charged each time your clients receive a configuration. To avoid excess charges, we recommend that you include the ClientConfigurationVersion value with every call to GetConfiguration. This value must be saved on your client. Subsequent calls to GetConfiguration must pass this value by using the ClientConfigurationVersion parameter. + */ + getConfiguration(callback?: (err: AWSError, data: AppConfig.Types.Configuration) => void): Request; + /** + * Retrieve information about a configuration profile. + */ + getConfigurationProfile(params: AppConfig.Types.GetConfigurationProfileRequest, callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfile) => void): Request; + /** + * Retrieve information about a configuration profile. + */ + getConfigurationProfile(callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfile) => void): Request; + /** + * Retrieve information about a configuration deployment. + */ + getDeployment(params: AppConfig.Types.GetDeploymentRequest, callback?: (err: AWSError, data: AppConfig.Types.Deployment) => void): Request; + /** + * Retrieve information about a configuration deployment. + */ + getDeployment(callback?: (err: AWSError, data: AppConfig.Types.Deployment) => void): Request; + /** + * Retrieve information about a deployment strategy. A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time. + */ + getDeploymentStrategy(params: AppConfig.Types.GetDeploymentStrategyRequest, callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategy) => void): Request; + /** + * Retrieve information about a deployment strategy. A deployment strategy defines important criteria for rolling out your configuration to the designated targets. A deployment strategy includes: the overall duration required, a percentage of targets to receive the deployment during each interval, an algorithm that defines how percentage grows, and bake time. + */ + getDeploymentStrategy(callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategy) => void): Request; + /** + * Retrieve information about an environment. An environment is a logical deployment group of AppConfig applications, such as applications in a Production environment or in an EU_Region environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration. + */ + getEnvironment(params: AppConfig.Types.GetEnvironmentRequest, callback?: (err: AWSError, data: AppConfig.Types.Environment) => void): Request; + /** + * Retrieve information about an environment. An environment is a logical deployment group of AppConfig applications, such as applications in a Production environment or in an EU_Region environment. Each configuration deployment targets an environment. You can enable one or more Amazon CloudWatch alarms for an environment. If an alarm is triggered during a deployment, AppConfig roles back the configuration. + */ + getEnvironment(callback?: (err: AWSError, data: AppConfig.Types.Environment) => void): Request; + /** + * Get information about a specific configuration version. + */ + getHostedConfigurationVersion(params: AppConfig.Types.GetHostedConfigurationVersionRequest, callback?: (err: AWSError, data: AppConfig.Types.HostedConfigurationVersion) => void): Request; + /** + * Get information about a specific configuration version. + */ + getHostedConfigurationVersion(callback?: (err: AWSError, data: AppConfig.Types.HostedConfigurationVersion) => void): Request; + /** + * List all applications in your AWS account. + */ + listApplications(params: AppConfig.Types.ListApplicationsRequest, callback?: (err: AWSError, data: AppConfig.Types.Applications) => void): Request; + /** + * List all applications in your AWS account. + */ + listApplications(callback?: (err: AWSError, data: AppConfig.Types.Applications) => void): Request; + /** + * Lists the configuration profiles for an application. + */ + listConfigurationProfiles(params: AppConfig.Types.ListConfigurationProfilesRequest, callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfiles) => void): Request; + /** + * Lists the configuration profiles for an application. + */ + listConfigurationProfiles(callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfiles) => void): Request; + /** + * List deployment strategies. + */ + listDeploymentStrategies(params: AppConfig.Types.ListDeploymentStrategiesRequest, callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategies) => void): Request; + /** + * List deployment strategies. + */ + listDeploymentStrategies(callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategies) => void): Request; + /** + * Lists the deployments for an environment. + */ + listDeployments(params: AppConfig.Types.ListDeploymentsRequest, callback?: (err: AWSError, data: AppConfig.Types.Deployments) => void): Request; + /** + * Lists the deployments for an environment. + */ + listDeployments(callback?: (err: AWSError, data: AppConfig.Types.Deployments) => void): Request; + /** + * List the environments for an application. + */ + listEnvironments(params: AppConfig.Types.ListEnvironmentsRequest, callback?: (err: AWSError, data: AppConfig.Types.Environments) => void): Request; + /** + * List the environments for an application. + */ + listEnvironments(callback?: (err: AWSError, data: AppConfig.Types.Environments) => void): Request; + /** + * View a list of configurations stored in the AppConfig configuration store by version. + */ + listHostedConfigurationVersions(params: AppConfig.Types.ListHostedConfigurationVersionsRequest, callback?: (err: AWSError, data: AppConfig.Types.HostedConfigurationVersions) => void): Request; + /** + * View a list of configurations stored in the AppConfig configuration store by version. + */ + listHostedConfigurationVersions(callback?: (err: AWSError, data: AppConfig.Types.HostedConfigurationVersions) => void): Request; + /** + * Retrieves the list of key-value tags assigned to the resource. + */ + listTagsForResource(params: AppConfig.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: AppConfig.Types.ResourceTags) => void): Request; + /** + * Retrieves the list of key-value tags assigned to the resource. + */ + listTagsForResource(callback?: (err: AWSError, data: AppConfig.Types.ResourceTags) => void): Request; + /** + * Starts a deployment. + */ + startDeployment(params: AppConfig.Types.StartDeploymentRequest, callback?: (err: AWSError, data: AppConfig.Types.Deployment) => void): Request; + /** + * Starts a deployment. + */ + startDeployment(callback?: (err: AWSError, data: AppConfig.Types.Deployment) => void): Request; + /** + * Stops a deployment. This API action works only on deployments that have a status of DEPLOYING. This action moves the deployment to a status of ROLLED_BACK. + */ + stopDeployment(params: AppConfig.Types.StopDeploymentRequest, callback?: (err: AWSError, data: AppConfig.Types.Deployment) => void): Request; + /** + * Stops a deployment. This API action works only on deployments that have a status of DEPLOYING. This action moves the deployment to a status of ROLLED_BACK. + */ + stopDeployment(callback?: (err: AWSError, data: AppConfig.Types.Deployment) => void): Request; + /** + * Metadata to assign to an AppConfig resource. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource. + */ + tagResource(params: AppConfig.Types.TagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Metadata to assign to an AppConfig resource. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. You can specify a maximum of 50 tags for a resource. + */ + tagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a tag key and value from an AppConfig resource. + */ + untagResource(params: AppConfig.Types.UntagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a tag key and value from an AppConfig resource. + */ + untagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates an application. + */ + updateApplication(params: AppConfig.Types.UpdateApplicationRequest, callback?: (err: AWSError, data: AppConfig.Types.Application) => void): Request; + /** + * Updates an application. + */ + updateApplication(callback?: (err: AWSError, data: AppConfig.Types.Application) => void): Request; + /** + * Updates a configuration profile. + */ + updateConfigurationProfile(params: AppConfig.Types.UpdateConfigurationProfileRequest, callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfile) => void): Request; + /** + * Updates a configuration profile. + */ + updateConfigurationProfile(callback?: (err: AWSError, data: AppConfig.Types.ConfigurationProfile) => void): Request; + /** + * Updates a deployment strategy. + */ + updateDeploymentStrategy(params: AppConfig.Types.UpdateDeploymentStrategyRequest, callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategy) => void): Request; + /** + * Updates a deployment strategy. + */ + updateDeploymentStrategy(callback?: (err: AWSError, data: AppConfig.Types.DeploymentStrategy) => void): Request; + /** + * Updates an environment. + */ + updateEnvironment(params: AppConfig.Types.UpdateEnvironmentRequest, callback?: (err: AWSError, data: AppConfig.Types.Environment) => void): Request; + /** + * Updates an environment. + */ + updateEnvironment(callback?: (err: AWSError, data: AppConfig.Types.Environment) => void): Request; + /** + * Uses the validators in a configuration profile to validate a configuration. + */ + validateConfiguration(params: AppConfig.Types.ValidateConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Uses the validators in a configuration profile to validate a configuration. + */ + validateConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; +} +declare namespace AppConfig { + export interface Application { + /** + * The application ID. + */ + Id?: Id; + /** + * The application name. + */ + Name?: Name; + /** + * The description of the application. + */ + Description?: Description; + } + export type ApplicationList = Application[]; + export interface Applications { + /** + * The elements from this collection. + */ + Items?: ApplicationList; + /** + * The token for the next set of items to return. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export type Arn = string; + export type _Blob = Buffer|Uint8Array|Blob|string; + export interface Configuration { + /** + * The content of the configuration or the configuration data. + */ + Content?: _Blob; + /** + * The configuration version. + */ + ConfigurationVersion?: Version; + /** + * A standard MIME type describing the format of the configuration content. For more information, see Content-Type. + */ + ContentType?: String; + } + export interface ConfigurationProfile { + /** + * The application ID. + */ + ApplicationId?: Id; + /** + * The configuration profile ID. + */ + Id?: Id; + /** + * The name of the configuration profile. + */ + Name?: Name; + /** + * The configuration profile description. + */ + Description?: Description; + /** + * The URI location of the configuration. + */ + LocationUri?: Uri; + /** + * The ARN of an IAM role with permission to access the configuration at the specified LocationUri. + */ + RetrievalRoleArn?: RoleArn; + /** + * A list of methods for validating the configuration. + */ + Validators?: ValidatorList; + } + export interface ConfigurationProfileSummary { + /** + * The application ID. + */ + ApplicationId?: Id; + /** + * The ID of the configuration profile. + */ + Id?: Id; + /** + * The name of the configuration profile. + */ + Name?: Name; + /** + * The URI location of the configuration. + */ + LocationUri?: Uri; + /** + * The types of validators in the configuration profile. + */ + ValidatorTypes?: ValidatorTypeList; + } + export type ConfigurationProfileSummaryList = ConfigurationProfileSummary[]; + export interface ConfigurationProfiles { + /** + * The elements from this collection. + */ + Items?: ConfigurationProfileSummaryList; + /** + * The token for the next set of items to return. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface CreateApplicationRequest { + /** + * A name for the application. + */ + Name: Name; + /** + * A description of the application. + */ + Description?: Description; + /** + * Metadata to assign to the application. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. + */ + Tags?: TagMap; + } + export interface CreateConfigurationProfileRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * A name for the configuration profile. + */ + Name: Name; + /** + * A description of the configuration profile. + */ + Description?: Description; + /** + * A URI to locate the configuration. You can specify a Systems Manager (SSM) document, an SSM Parameter Store parameter, or an Amazon S3 object. For an SSM document, specify either the document name in the format ssm-document://<Document_name> or the Amazon Resource Name (ARN). For a parameter, specify either the parameter name in the format ssm-parameter://<Parameter_name> or the ARN. For an Amazon S3 object, specify the URI in the following format: s3://<bucket>/<objectKey> . Here is an example: s3://my-bucket/my-app/us-east-1/my-config.json + */ + LocationUri: Uri; + /** + * The ARN of an IAM role with permission to access the configuration at the specified LocationUri. + */ + RetrievalRoleArn?: RoleArn; + /** + * A list of methods for validating the configuration. + */ + Validators?: ValidatorList; + /** + * Metadata to assign to the configuration profile. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. + */ + Tags?: TagMap; + } + export interface CreateDeploymentStrategyRequest { + /** + * A name for the deployment strategy. + */ + Name: Name; + /** + * A description of the deployment strategy. + */ + Description?: Description; + /** + * Total amount of time for a deployment to last. + */ + DeploymentDurationInMinutes: MinutesBetween0And24Hours; + /** + * The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back. + */ + FinalBakeTimeInMinutes?: MinutesBetween0And24Hours; + /** + * The percentage of targets to receive a deployed configuration during each interval. + */ + GrowthFactor: GrowthFactor; + /** + * The algorithm used to define how percentage grows over time. AWS AppConfig supports the following growth types: Linear: For this type, AppConfig processes the deployment by dividing the total number of targets by the value specified for Step percentage. For example, a linear deployment that uses a Step percentage of 10 deploys the configuration to 10 percent of the hosts. After those deployments are complete, the system deploys the configuration to the next 10 percent. This continues until 100% of the targets have successfully received the configuration. Exponential: For this type, AppConfig processes the deployment exponentially using the following formula: G*(2^N). In this formula, G is the growth factor specified by the user and N is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows: 2*(2^0) 2*(2^1) 2*(2^2) Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets. + */ + GrowthType?: GrowthType; + /** + * Save the deployment strategy to a Systems Manager (SSM) document. + */ + ReplicateTo: ReplicateTo; + /** + * Metadata to assign to the deployment strategy. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. + */ + Tags?: TagMap; + } + export interface CreateEnvironmentRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * A name for the environment. + */ + Name: Name; + /** + * A description of the environment. + */ + Description?: Description; + /** + * Amazon CloudWatch alarms to monitor during the deployment process. + */ + Monitors?: MonitorList; + /** + * Metadata to assign to the environment. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. + */ + Tags?: TagMap; + } + export interface CreateHostedConfigurationVersionRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The configuration profile ID. + */ + ConfigurationProfileId: Id; + /** + * A description of the configuration. + */ + Description?: Description; + /** + * The content of the configuration or the configuration data. + */ + Content: _Blob; + /** + * A standard MIME type describing the format of the configuration content. For more information, see Content-Type. + */ + ContentType: StringWithLengthBetween1And255; + /** + * An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version of the latest hosted configuration version. + */ + LatestVersionNumber?: Integer; + } + export interface DeleteApplicationRequest { + /** + * The ID of the application to delete. + */ + ApplicationId: Id; + } + export interface DeleteConfigurationProfileRequest { + /** + * The application ID that includes the configuration profile you want to delete. + */ + ApplicationId: Id; + /** + * The ID of the configuration profile you want to delete. + */ + ConfigurationProfileId: Id; + } + export interface DeleteDeploymentStrategyRequest { + /** + * The ID of the deployment strategy you want to delete. + */ + DeploymentStrategyId: DeploymentStrategyId; + } + export interface DeleteEnvironmentRequest { + /** + * The application ID that includes the environment you want to delete. + */ + ApplicationId: Id; + /** + * The ID of the environment you want to delete. + */ + EnvironmentId: Id; + } + export interface DeleteHostedConfigurationVersionRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The configuration profile ID. + */ + ConfigurationProfileId: Id; + /** + * The versions number to delete. + */ + VersionNumber: Integer; + } + export interface Deployment { + /** + * The ID of the application that was deployed. + */ + ApplicationId?: Id; + /** + * The ID of the environment that was deployed. + */ + EnvironmentId?: Id; + /** + * The ID of the deployment strategy that was deployed. + */ + DeploymentStrategyId?: Id; + /** + * The ID of the configuration profile that was deployed. + */ + ConfigurationProfileId?: Id; + /** + * The sequence number of the deployment. + */ + DeploymentNumber?: Integer; + /** + * The name of the configuration. + */ + ConfigurationName?: Name; + /** + * Information about the source location of the configuration. + */ + ConfigurationLocationUri?: Uri; + /** + * The configuration version that was deployed. + */ + ConfigurationVersion?: Version; + /** + * The description of the deployment. + */ + Description?: Description; + /** + * Total amount of time the deployment lasted. + */ + DeploymentDurationInMinutes?: MinutesBetween0And24Hours; + /** + * The algorithm used to define how percentage grew over time. + */ + GrowthType?: GrowthType; + /** + * The percentage of targets to receive a deployed configuration during each interval. + */ + GrowthFactor?: Percentage; + /** + * The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back. + */ + FinalBakeTimeInMinutes?: MinutesBetween0And24Hours; + /** + * The state of the deployment. + */ + State?: DeploymentState; + /** + * A list containing all events related to a deployment. The most recent events are displayed first. + */ + EventLog?: DeploymentEvents; + /** + * The percentage of targets for which the deployment is available. + */ + PercentageComplete?: Percentage; + /** + * The time the deployment started. + */ + StartedAt?: Iso8601DateTime; + /** + * The time the deployment completed. + */ + CompletedAt?: Iso8601DateTime; + } + export interface DeploymentEvent { + /** + * The type of deployment event. Deployment event types include the start, stop, or completion of a deployment; a percentage update; the start or stop of a bake period; the start or completion of a rollback. + */ + EventType?: DeploymentEventType; + /** + * The entity that triggered the deployment event. Events can be triggered by a user, AWS AppConfig, an Amazon CloudWatch alarm, or an internal error. + */ + TriggeredBy?: TriggeredBy; + /** + * A description of the deployment event. Descriptions include, but are not limited to, the user account or the CloudWatch alarm ARN that initiated a rollback, the percentage of hosts that received the deployment, or in the case of an internal error, a recommendation to attempt a new deployment. + */ + Description?: Description; + /** + * The date and time the event occurred. + */ + OccurredAt?: Iso8601DateTime; + } + export type DeploymentEventType = "PERCENTAGE_UPDATED"|"ROLLBACK_STARTED"|"ROLLBACK_COMPLETED"|"BAKE_TIME_STARTED"|"DEPLOYMENT_STARTED"|"DEPLOYMENT_COMPLETED"|string; + export type DeploymentEvents = DeploymentEvent[]; + export type DeploymentList = DeploymentSummary[]; + export type DeploymentState = "BAKING"|"VALIDATING"|"DEPLOYING"|"COMPLETE"|"ROLLING_BACK"|"ROLLED_BACK"|string; + export interface DeploymentStrategies { + /** + * The elements from this collection. + */ + Items?: DeploymentStrategyList; + /** + * The token for the next set of items to return. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface DeploymentStrategy { + /** + * The deployment strategy ID. + */ + Id?: Id; + /** + * The name of the deployment strategy. + */ + Name?: Name; + /** + * The description of the deployment strategy. + */ + Description?: Description; + /** + * Total amount of time the deployment lasted. + */ + DeploymentDurationInMinutes?: MinutesBetween0And24Hours; + /** + * The algorithm used to define how percentage grew over time. + */ + GrowthType?: GrowthType; + /** + * The percentage of targets that received a deployed configuration during each interval. + */ + GrowthFactor?: Percentage; + /** + * The amount of time AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic roll back. + */ + FinalBakeTimeInMinutes?: MinutesBetween0And24Hours; + /** + * Save the deployment strategy to a Systems Manager (SSM) document. + */ + ReplicateTo?: ReplicateTo; + } + export type DeploymentStrategyId = string; + export type DeploymentStrategyList = DeploymentStrategy[]; + export interface DeploymentSummary { + /** + * The sequence number of the deployment. + */ + DeploymentNumber?: Integer; + /** + * The name of the configuration. + */ + ConfigurationName?: Name; + /** + * The version of the configuration. + */ + ConfigurationVersion?: Version; + /** + * Total amount of time the deployment lasted. + */ + DeploymentDurationInMinutes?: MinutesBetween0And24Hours; + /** + * The algorithm used to define how percentage grows over time. + */ + GrowthType?: GrowthType; + /** + * The percentage of targets to receive a deployed configuration during each interval. + */ + GrowthFactor?: Percentage; + /** + * The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back. + */ + FinalBakeTimeInMinutes?: MinutesBetween0And24Hours; + /** + * The state of the deployment. + */ + State?: DeploymentState; + /** + * The percentage of targets for which the deployment is available. + */ + PercentageComplete?: Percentage; + /** + * Time the deployment started. + */ + StartedAt?: Iso8601DateTime; + /** + * Time the deployment completed. + */ + CompletedAt?: Iso8601DateTime; + } + export interface Deployments { + /** + * The elements from this collection. + */ + Items?: DeploymentList; + /** + * The token for the next set of items to return. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export type Description = string; + export interface Environment { + /** + * The application ID. + */ + ApplicationId?: Id; + /** + * The environment ID. + */ + Id?: Id; + /** + * The name of the environment. + */ + Name?: Name; + /** + * The description of the environment. + */ + Description?: Description; + /** + * The state of the environment. An environment can be in one of the following states: READY_FOR_DEPLOYMENT, DEPLOYING, ROLLING_BACK, or ROLLED_BACK + */ + State?: EnvironmentState; + /** + * Amazon CloudWatch alarms monitored during the deployment. + */ + Monitors?: MonitorList; + } + export type EnvironmentList = Environment[]; + export type EnvironmentState = "READY_FOR_DEPLOYMENT"|"DEPLOYING"|"ROLLING_BACK"|"ROLLED_BACK"|string; + export interface Environments { + /** + * The elements from this collection. + */ + Items?: EnvironmentList; + /** + * The token for the next set of items to return. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface GetApplicationRequest { + /** + * The ID of the application you want to get. + */ + ApplicationId: Id; + } + export interface GetConfigurationProfileRequest { + /** + * The ID of the application that includes the configuration profile you want to get. + */ + ApplicationId: Id; + /** + * The ID of the configuration profile you want to get. + */ + ConfigurationProfileId: Id; + } + export interface GetConfigurationRequest { + /** + * The application to get. Specify either the application name or the application ID. + */ + Application: StringWithLengthBetween1And64; + /** + * The environment to get. Specify either the environment name or the environment ID. + */ + Environment: StringWithLengthBetween1And64; + /** + * The configuration to get. Specify either the configuration name or the configuration ID. + */ + Configuration: StringWithLengthBetween1And64; + /** + * A unique ID to identify the client for the configuration. This ID enables AppConfig to deploy the configuration in intervals, as defined in the deployment strategy. + */ + ClientId: StringWithLengthBetween1And64; + /** + * The configuration version returned in the most recent GetConfiguration response. AWS AppConfig uses the value of the ClientConfigurationVersion parameter to identify the configuration version on your clients. If you don’t send ClientConfigurationVersion with each call to GetConfiguration, your clients receive the current configuration. You are charged each time your clients receive a configuration. To avoid excess charges, we recommend that you include the ClientConfigurationVersion value with every call to GetConfiguration. This value must be saved on your client. Subsequent calls to GetConfiguration must pass this value by using the ClientConfigurationVersion parameter. For more information about working with configurations, see Retrieving the Configuration in the AWS AppConfig User Guide. + */ + ClientConfigurationVersion?: Version; + } + export interface GetDeploymentRequest { + /** + * The ID of the application that includes the deployment you want to get. + */ + ApplicationId: Id; + /** + * The ID of the environment that includes the deployment you want to get. + */ + EnvironmentId: Id; + /** + * The sequence number of the deployment. + */ + DeploymentNumber: Integer; + } + export interface GetDeploymentStrategyRequest { + /** + * The ID of the deployment strategy to get. + */ + DeploymentStrategyId: DeploymentStrategyId; + } + export interface GetEnvironmentRequest { + /** + * The ID of the application that includes the environment you want to get. + */ + ApplicationId: Id; + /** + * The ID of the environment you wnat to get. + */ + EnvironmentId: Id; + } + export interface GetHostedConfigurationVersionRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The configuration profile ID. + */ + ConfigurationProfileId: Id; + /** + * The version. + */ + VersionNumber: Integer; + } + export type GrowthFactor = number; + export type GrowthType = "LINEAR"|"EXPONENTIAL"|string; + export interface HostedConfigurationVersion { + /** + * The application ID. + */ + ApplicationId?: Id; + /** + * The configuration profile ID. + */ + ConfigurationProfileId?: Id; + /** + * The configuration version. + */ + VersionNumber?: Integer; + /** + * A description of the configuration. + */ + Description?: Description; + /** + * The content of the configuration or the configuration data. + */ + Content?: _Blob; + /** + * A standard MIME type describing the format of the configuration content. For more information, see Content-Type. + */ + ContentType?: StringWithLengthBetween1And255; + } + export interface HostedConfigurationVersionSummary { + /** + * The application ID. + */ + ApplicationId?: Id; + /** + * The configuration profile ID. + */ + ConfigurationProfileId?: Id; + /** + * The configuration version. + */ + VersionNumber?: Integer; + /** + * A description of the configuration. + */ + Description?: Description; + /** + * A standard MIME type describing the format of the configuration content. For more information, see Content-Type. + */ + ContentType?: StringWithLengthBetween1And255; + } + export type HostedConfigurationVersionSummaryList = HostedConfigurationVersionSummary[]; + export interface HostedConfigurationVersions { + /** + * The elements from this collection. + */ + Items?: HostedConfigurationVersionSummaryList; + /** + * The token for the next set of items to return. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export type Id = string; + export type Integer = number; + export type Iso8601DateTime = Date; + export interface ListApplicationsRequest { + /** + * The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * A token to start the list. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface ListConfigurationProfilesRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * A token to start the list. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface ListDeploymentStrategiesRequest { + /** + * The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * A token to start the list. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface ListDeploymentsRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The environment ID. + */ + EnvironmentId: Id; + /** + * The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * A token to start the list. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface ListEnvironmentsRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * A token to start the list. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface ListHostedConfigurationVersionsRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The configuration profile ID. + */ + ConfigurationProfileId: Id; + /** + * The maximum number of items to return for this call. The call also returns a token that you can specify in a subsequent call to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * A token to start the list. Use this token to get the next set of results. + */ + NextToken?: NextToken; + } + export interface ListTagsForResourceRequest { + /** + * The resource ARN. + */ + ResourceArn: Arn; + } + export type MaxResults = number; + export type MinutesBetween0And24Hours = number; + export interface Monitor { + /** + * ARN of the Amazon CloudWatch alarm. + */ + AlarmArn?: Arn; + /** + * ARN of an IAM role for AppConfig to monitor AlarmArn. + */ + AlarmRoleArn?: RoleArn; + } + export type MonitorList = Monitor[]; + export type Name = string; + export type NextToken = string; + export type Percentage = number; + export type ReplicateTo = "NONE"|"SSM_DOCUMENT"|string; + export interface ResourceTags { + /** + * Metadata to assign to AppConfig resources. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. + */ + Tags?: TagMap; + } + export type RoleArn = string; + export interface StartDeploymentRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The environment ID. + */ + EnvironmentId: Id; + /** + * The deployment strategy ID. + */ + DeploymentStrategyId: DeploymentStrategyId; + /** + * The configuration profile ID. + */ + ConfigurationProfileId: Id; + /** + * The configuration version to deploy. + */ + ConfigurationVersion: Version; + /** + * A description of the deployment. + */ + Description?: Description; + /** + * Metadata to assign to the deployment. Tags help organize and categorize your AppConfig resources. Each tag consists of a key and an optional value, both of which you define. + */ + Tags?: TagMap; + } + export interface StopDeploymentRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The environment ID. + */ + EnvironmentId: Id; + /** + * The sequence number of the deployment. + */ + DeploymentNumber: Integer; + } + export type String = string; + export type StringWithLengthBetween0And32768 = string; + export type StringWithLengthBetween1And255 = string; + export type StringWithLengthBetween1And64 = string; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagMap = {[key: string]: TagValue}; + export interface TagResourceRequest { + /** + * The ARN of the resource for which to retrieve tags. + */ + ResourceArn: Arn; + /** + * The key-value string map. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws:. The tag value can be up to 256 characters. + */ + Tags: TagMap; + } + export type TagValue = string; + export type TriggeredBy = "USER"|"APPCONFIG"|"CLOUDWATCH_ALARM"|"INTERNAL_ERROR"|string; + export interface UntagResourceRequest { + /** + * The ARN of the resource for which to remove tags. + */ + ResourceArn: Arn; + /** + * The tag keys to delete. + */ + TagKeys: TagKeyList; + } + export interface UpdateApplicationRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The name of the application. + */ + Name?: Name; + /** + * A description of the application. + */ + Description?: Description; + } + export interface UpdateConfigurationProfileRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The ID of the configuration profile. + */ + ConfigurationProfileId: Id; + /** + * The name of the configuration profile. + */ + Name?: Name; + /** + * A description of the configuration profile. + */ + Description?: Description; + /** + * The ARN of an IAM role with permission to access the configuration at the specified LocationUri. + */ + RetrievalRoleArn?: RoleArn; + /** + * A list of methods for validating the configuration. + */ + Validators?: ValidatorList; + } + export interface UpdateDeploymentStrategyRequest { + /** + * The deployment strategy ID. + */ + DeploymentStrategyId: DeploymentStrategyId; + /** + * A description of the deployment strategy. + */ + Description?: Description; + /** + * Total amount of time for a deployment to last. + */ + DeploymentDurationInMinutes?: MinutesBetween0And24Hours; + /** + * The amount of time AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic roll back. + */ + FinalBakeTimeInMinutes?: MinutesBetween0And24Hours; + /** + * The percentage of targets to receive a deployed configuration during each interval. + */ + GrowthFactor?: GrowthFactor; + /** + * The algorithm used to define how percentage grows over time. AWS AppConfig supports the following growth types: Linear: For this type, AppConfig processes the deployment by increments of the growth factor evenly distributed over the deployment time. For example, a linear deployment that uses a growth factor of 20 initially makes the configuration available to 20 percent of the targets. After 1/5th of the deployment time has passed, the system updates the percentage to 40 percent. This continues until 100% of the targets are set to receive the deployed configuration. Exponential: For this type, AppConfig processes the deployment exponentially using the following formula: G*(2^N). In this formula, G is the growth factor specified by the user and N is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows: 2*(2^0) 2*(2^1) 2*(2^2) Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets. + */ + GrowthType?: GrowthType; + } + export interface UpdateEnvironmentRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The environment ID. + */ + EnvironmentId: Id; + /** + * The name of the environment. + */ + Name?: Name; + /** + * A description of the environment. + */ + Description?: Description; + /** + * Amazon CloudWatch alarms to monitor during the deployment process. + */ + Monitors?: MonitorList; + } + export type Uri = string; + export interface ValidateConfigurationRequest { + /** + * The application ID. + */ + ApplicationId: Id; + /** + * The configuration profile ID. + */ + ConfigurationProfileId: Id; + /** + * The version of the configuration to validate. + */ + ConfigurationVersion: Version; + } + export interface Validator { + /** + * AppConfig supports validators of type JSON_SCHEMA and LAMBDA + */ + Type: ValidatorType; + /** + * Either the JSON Schema content or the Amazon Resource Name (ARN) of an AWS Lambda function. + */ + Content: StringWithLengthBetween0And32768; + } + export type ValidatorList = Validator[]; + export type ValidatorType = "JSON_SCHEMA"|"LAMBDA"|string; + export type ValidatorTypeList = ValidatorType[]; + export type Version = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2019-10-09"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AppConfig client. + */ + export import Types = AppConfig; +} +export = AppConfig; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appconfig.js b/justdanceonline-main/node_modules/aws-sdk/clients/appconfig.js new file mode 100644 index 0000000000000000000000000000000000000000..80c745012f975871d029dec5e052233d38acfad8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appconfig.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['appconfig'] = {}; +AWS.AppConfig = Service.defineService('appconfig', ['2019-10-09']); +Object.defineProperty(apiLoader.services['appconfig'], '2019-10-09', { + get: function get() { + var model = require('../apis/appconfig-2019-10-09.min.json'); + model.paginators = require('../apis/appconfig-2019-10-09.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AppConfig; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appflow.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/appflow.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7a3fe82b80d2e9b9bf7cbab322936fd586d5e998 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appflow.d.ts @@ -0,0 +1,2139 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Appflow extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Appflow.Types.ClientConfiguration) + config: Config & Appflow.Types.ClientConfiguration; + /** + * Creates a new connector profile associated with your AWS account. There is a soft quota of 100 connector profiles per AWS account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel. + */ + createConnectorProfile(params: Appflow.Types.CreateConnectorProfileRequest, callback?: (err: AWSError, data: Appflow.Types.CreateConnectorProfileResponse) => void): Request; + /** + * Creates a new connector profile associated with your AWS account. There is a soft quota of 100 connector profiles per AWS account. If you need more connector profiles than this quota allows, you can submit a request to the Amazon AppFlow team through the Amazon AppFlow support channel. + */ + createConnectorProfile(callback?: (err: AWSError, data: Appflow.Types.CreateConnectorProfileResponse) => void): Request; + /** + * Enables your application to create a new flow using Amazon AppFlow. You must create a connector profile before calling this API. Please note that the Request Syntax below shows syntax for multiple destinations, however, you can only transfer data to one item in this list at a time. Amazon AppFlow does not currently support flows to multiple destinations at once. + */ + createFlow(params: Appflow.Types.CreateFlowRequest, callback?: (err: AWSError, data: Appflow.Types.CreateFlowResponse) => void): Request; + /** + * Enables your application to create a new flow using Amazon AppFlow. You must create a connector profile before calling this API. Please note that the Request Syntax below shows syntax for multiple destinations, however, you can only transfer data to one item in this list at a time. Amazon AppFlow does not currently support flows to multiple destinations at once. + */ + createFlow(callback?: (err: AWSError, data: Appflow.Types.CreateFlowResponse) => void): Request; + /** + * Enables you to delete an existing connector profile. + */ + deleteConnectorProfile(params: Appflow.Types.DeleteConnectorProfileRequest, callback?: (err: AWSError, data: Appflow.Types.DeleteConnectorProfileResponse) => void): Request; + /** + * Enables you to delete an existing connector profile. + */ + deleteConnectorProfile(callback?: (err: AWSError, data: Appflow.Types.DeleteConnectorProfileResponse) => void): Request; + /** + * Enables your application to delete an existing flow. Before deleting the flow, Amazon AppFlow validates the request by checking the flow configuration and status. You can delete flows one at a time. + */ + deleteFlow(params: Appflow.Types.DeleteFlowRequest, callback?: (err: AWSError, data: Appflow.Types.DeleteFlowResponse) => void): Request; + /** + * Enables your application to delete an existing flow. Before deleting the flow, Amazon AppFlow validates the request by checking the flow configuration and status. You can delete flows one at a time. + */ + deleteFlow(callback?: (err: AWSError, data: Appflow.Types.DeleteFlowResponse) => void): Request; + /** + * Provides details regarding the entity used with the connector, with a description of the data model for each entity. + */ + describeConnectorEntity(params: Appflow.Types.DescribeConnectorEntityRequest, callback?: (err: AWSError, data: Appflow.Types.DescribeConnectorEntityResponse) => void): Request; + /** + * Provides details regarding the entity used with the connector, with a description of the data model for each entity. + */ + describeConnectorEntity(callback?: (err: AWSError, data: Appflow.Types.DescribeConnectorEntityResponse) => void): Request; + /** + * Returns a list of connector-profile details matching the provided connector-profile names and connector-types. Both input lists are optional, and you can use them to filter the result. If no names or connector-types are provided, returns all connector profiles in a paginated form. If there is no match, this operation returns an empty list. + */ + describeConnectorProfiles(params: Appflow.Types.DescribeConnectorProfilesRequest, callback?: (err: AWSError, data: Appflow.Types.DescribeConnectorProfilesResponse) => void): Request; + /** + * Returns a list of connector-profile details matching the provided connector-profile names and connector-types. Both input lists are optional, and you can use them to filter the result. If no names or connector-types are provided, returns all connector profiles in a paginated form. If there is no match, this operation returns an empty list. + */ + describeConnectorProfiles(callback?: (err: AWSError, data: Appflow.Types.DescribeConnectorProfilesResponse) => void): Request; + /** + * Describes the connectors vended by Amazon AppFlow for specified connector types. If you don't specify a connector type, this operation describes all connectors vended by Amazon AppFlow. If there are more connectors than can be returned in one page, the response contains a nextToken object, which can be be passed in to the next call to the DescribeConnectors API operation to retrieve the next page. + */ + describeConnectors(params: Appflow.Types.DescribeConnectorsRequest, callback?: (err: AWSError, data: Appflow.Types.DescribeConnectorsResponse) => void): Request; + /** + * Describes the connectors vended by Amazon AppFlow for specified connector types. If you don't specify a connector type, this operation describes all connectors vended by Amazon AppFlow. If there are more connectors than can be returned in one page, the response contains a nextToken object, which can be be passed in to the next call to the DescribeConnectors API operation to retrieve the next page. + */ + describeConnectors(callback?: (err: AWSError, data: Appflow.Types.DescribeConnectorsResponse) => void): Request; + /** + * Provides a description of the specified flow. + */ + describeFlow(params: Appflow.Types.DescribeFlowRequest, callback?: (err: AWSError, data: Appflow.Types.DescribeFlowResponse) => void): Request; + /** + * Provides a description of the specified flow. + */ + describeFlow(callback?: (err: AWSError, data: Appflow.Types.DescribeFlowResponse) => void): Request; + /** + * Fetches the execution history of the flow. + */ + describeFlowExecutionRecords(params: Appflow.Types.DescribeFlowExecutionRecordsRequest, callback?: (err: AWSError, data: Appflow.Types.DescribeFlowExecutionRecordsResponse) => void): Request; + /** + * Fetches the execution history of the flow. + */ + describeFlowExecutionRecords(callback?: (err: AWSError, data: Appflow.Types.DescribeFlowExecutionRecordsResponse) => void): Request; + /** + * Returns the list of available connector entities supported by Amazon AppFlow. For example, you can query Salesforce for Account and Opportunity entities, or query ServiceNow for the Incident entity. + */ + listConnectorEntities(params: Appflow.Types.ListConnectorEntitiesRequest, callback?: (err: AWSError, data: Appflow.Types.ListConnectorEntitiesResponse) => void): Request; + /** + * Returns the list of available connector entities supported by Amazon AppFlow. For example, you can query Salesforce for Account and Opportunity entities, or query ServiceNow for the Incident entity. + */ + listConnectorEntities(callback?: (err: AWSError, data: Appflow.Types.ListConnectorEntitiesResponse) => void): Request; + /** + * Lists all of the flows associated with your account. + */ + listFlows(params: Appflow.Types.ListFlowsRequest, callback?: (err: AWSError, data: Appflow.Types.ListFlowsResponse) => void): Request; + /** + * Lists all of the flows associated with your account. + */ + listFlows(callback?: (err: AWSError, data: Appflow.Types.ListFlowsResponse) => void): Request; + /** + * Retrieves the tags that are associated with a specified flow. + */ + listTagsForResource(params: Appflow.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: Appflow.Types.ListTagsForResourceResponse) => void): Request; + /** + * Retrieves the tags that are associated with a specified flow. + */ + listTagsForResource(callback?: (err: AWSError, data: Appflow.Types.ListTagsForResourceResponse) => void): Request; + /** + * Activates an existing flow. For on-demand flows, this operation runs the flow immediately. For schedule and event-triggered flows, this operation activates the flow. + */ + startFlow(params: Appflow.Types.StartFlowRequest, callback?: (err: AWSError, data: Appflow.Types.StartFlowResponse) => void): Request; + /** + * Activates an existing flow. For on-demand flows, this operation runs the flow immediately. For schedule and event-triggered flows, this operation activates the flow. + */ + startFlow(callback?: (err: AWSError, data: Appflow.Types.StartFlowResponse) => void): Request; + /** + * Deactivates the existing flow. For on-demand flows, this operation returns an unsupportedOperationException error message. For schedule and event-triggered flows, this operation deactivates the flow. + */ + stopFlow(params: Appflow.Types.StopFlowRequest, callback?: (err: AWSError, data: Appflow.Types.StopFlowResponse) => void): Request; + /** + * Deactivates the existing flow. For on-demand flows, this operation returns an unsupportedOperationException error message. For schedule and event-triggered flows, this operation deactivates the flow. + */ + stopFlow(callback?: (err: AWSError, data: Appflow.Types.StopFlowResponse) => void): Request; + /** + * Applies a tag to the specified flow. + */ + tagResource(params: Appflow.Types.TagResourceRequest, callback?: (err: AWSError, data: Appflow.Types.TagResourceResponse) => void): Request; + /** + * Applies a tag to the specified flow. + */ + tagResource(callback?: (err: AWSError, data: Appflow.Types.TagResourceResponse) => void): Request; + /** + * Removes a tag from the specified flow. + */ + untagResource(params: Appflow.Types.UntagResourceRequest, callback?: (err: AWSError, data: Appflow.Types.UntagResourceResponse) => void): Request; + /** + * Removes a tag from the specified flow. + */ + untagResource(callback?: (err: AWSError, data: Appflow.Types.UntagResourceResponse) => void): Request; + /** + * Updates a given connector profile associated with your account. + */ + updateConnectorProfile(params: Appflow.Types.UpdateConnectorProfileRequest, callback?: (err: AWSError, data: Appflow.Types.UpdateConnectorProfileResponse) => void): Request; + /** + * Updates a given connector profile associated with your account. + */ + updateConnectorProfile(callback?: (err: AWSError, data: Appflow.Types.UpdateConnectorProfileResponse) => void): Request; + /** + * Updates an existing flow. + */ + updateFlow(params: Appflow.Types.UpdateFlowRequest, callback?: (err: AWSError, data: Appflow.Types.UpdateFlowResponse) => void): Request; + /** + * Updates an existing flow. + */ + updateFlow(callback?: (err: AWSError, data: Appflow.Types.UpdateFlowResponse) => void): Request; +} +declare namespace Appflow { + export type ARN = string; + export type AccessKeyId = string; + export type AccessToken = string; + export type AccountName = string; + export interface AggregationConfig { + /** + * Specifies whether Amazon AppFlow aggregates the flow records into a single file, or leave them unaggregated. + */ + aggregationType?: AggregationType; + } + export type AggregationType = "None"|"SingleFile"|string; + export type AmplitudeConnectorOperator = "BETWEEN"|string; + export interface AmplitudeConnectorProfileCredentials { + /** + * A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. + */ + apiKey: ApiKey; + /** + * The Secret Access Key portion of the credentials. + */ + secretKey: SecretKey; + } + export interface AmplitudeConnectorProfileProperties { + } + export interface AmplitudeMetadata { + } + export interface AmplitudeSourceProperties { + /** + * The object specified in the Amplitude flow source. + */ + object: Object; + } + export type ApiKey = string; + export type ApiSecretKey = string; + export type ApiToken = string; + export type ApplicationKey = string; + export type AuthCode = string; + export type Boolean = boolean; + export type BucketName = string; + export type BucketPrefix = string; + export type ClientCredentialsArn = string; + export type ClientId = string; + export type ClientSecret = string; + export type ConnectionMode = "Public"|"Private"|string; + export interface ConnectorConfiguration { + /** + * Specifies whether the connector can be used as a source. + */ + canUseAsSource?: Boolean; + /** + * Specifies whether the connector can be used as a destination. + */ + canUseAsDestination?: Boolean; + /** + * Lists the connectors that are available for use as destinations. + */ + supportedDestinationConnectors?: ConnectorTypeList; + /** + * Specifies the supported flow frequency for that connector. + */ + supportedSchedulingFrequencies?: SchedulingFrequencyTypeList; + /** + * Specifies if PrivateLink is enabled for that connector. + */ + isPrivateLinkEnabled?: Boolean; + /** + * Specifies if a PrivateLink endpoint URL is required. + */ + isPrivateLinkEndpointUrlRequired?: Boolean; + /** + * Specifies the supported trigger types for the flow. + */ + supportedTriggerTypes?: TriggerTypeList; + /** + * Specifies connector-specific metadata such as oAuthScopes, supportedRegions, privateLinkServiceUrl, and so on. + */ + connectorMetadata?: ConnectorMetadata; + } + export type ConnectorConfigurationsMap = {[key: string]: ConnectorConfiguration}; + export interface ConnectorEntity { + /** + * The name of the connector entity. + */ + name: Name; + /** + * The label applied to the connector entity. + */ + label?: Label; + /** + * Specifies whether the connector entity is a parent or a category and has more entities nested underneath it. If another call is made with entitiesPath = "the_current_entity_name_with_hasNestedEntities_true", then it returns the nested entities underneath it. This provides a way to retrieve all supported entities in a recursive fashion. + */ + hasNestedEntities?: Boolean; + } + export interface ConnectorEntityField { + /** + * The unique identifier of the connector field. + */ + identifier: Identifier; + /** + * The label applied to a connector entity field. + */ + label?: Label; + /** + * Contains details regarding the supported FieldType, including the corresponding filterOperators and supportedValues. + */ + supportedFieldTypeDetails?: SupportedFieldTypeDetails; + /** + * A description of the connector entity field. + */ + description?: Description; + /** + * The properties that can be applied to a field when the connector is being used as a source. + */ + sourceProperties?: SourceFieldProperties; + /** + * The properties applied to a field when the connector is being used as a destination. + */ + destinationProperties?: DestinationFieldProperties; + } + export type ConnectorEntityFieldList = ConnectorEntityField[]; + export type ConnectorEntityList = ConnectorEntity[]; + export type ConnectorEntityMap = {[key: string]: ConnectorEntityList}; + export interface ConnectorMetadata { + /** + * The connector metadata specific to Amplitude. + */ + Amplitude?: AmplitudeMetadata; + /** + * The connector metadata specific to Datadog. + */ + Datadog?: DatadogMetadata; + /** + * The connector metadata specific to Dynatrace. + */ + Dynatrace?: DynatraceMetadata; + /** + * The connector metadata specific to Google Analytics. + */ + GoogleAnalytics?: GoogleAnalyticsMetadata; + /** + * The connector metadata specific to Infor Nexus. + */ + InforNexus?: InforNexusMetadata; + /** + * The connector metadata specific to Marketo. + */ + Marketo?: MarketoMetadata; + /** + * The connector metadata specific to Amazon Redshift. + */ + Redshift?: RedshiftMetadata; + /** + * The connector metadata specific to Amazon S3. + */ + S3?: S3Metadata; + /** + * The connector metadata specific to Salesforce. + */ + Salesforce?: SalesforceMetadata; + /** + * The connector metadata specific to ServiceNow. + */ + ServiceNow?: ServiceNowMetadata; + /** + * The connector metadata specific to Singular. + */ + Singular?: SingularMetadata; + /** + * The connector metadata specific to Slack. + */ + Slack?: SlackMetadata; + /** + * The connector metadata specific to Snowflake. + */ + Snowflake?: SnowflakeMetadata; + /** + * The connector metadata specific to Trend Micro. + */ + Trendmicro?: TrendmicroMetadata; + /** + * The connector metadata specific to Veeva. + */ + Veeva?: VeevaMetadata; + /** + * The connector metadata specific to Zendesk. + */ + Zendesk?: ZendeskMetadata; + /** + * The connector metadata specific to Amazon EventBridge. + */ + EventBridge?: EventBridgeMetadata; + /** + * The connector metadata specific to Upsolver. + */ + Upsolver?: UpsolverMetadata; + /** + * The connector metadata specific to Amazon Connect Customer Profiles. + */ + CustomerProfiles?: CustomerProfilesMetadata; + /** + * The connector metadata specific to Amazon Honeycode. + */ + Honeycode?: HoneycodeMetadata; + } + export interface ConnectorOAuthRequest { + /** + * The code provided by the connector when it has been authenticated via the connected app. + */ + authCode?: AuthCode; + /** + * The URL to which the authentication server redirects the browser after authorization has been granted. + */ + redirectUri?: RedirectUri; + } + export interface ConnectorOperator { + /** + * The operation to be performed on the provided Amplitude source fields. + */ + Amplitude?: AmplitudeConnectorOperator; + /** + * The operation to be performed on the provided Datadog source fields. + */ + Datadog?: DatadogConnectorOperator; + /** + * The operation to be performed on the provided Dynatrace source fields. + */ + Dynatrace?: DynatraceConnectorOperator; + /** + * The operation to be performed on the provided Google Analytics source fields. + */ + GoogleAnalytics?: GoogleAnalyticsConnectorOperator; + /** + * The operation to be performed on the provided Infor Nexus source fields. + */ + InforNexus?: InforNexusConnectorOperator; + /** + * The operation to be performed on the provided Marketo source fields. + */ + Marketo?: MarketoConnectorOperator; + /** + * The operation to be performed on the provided Amazon S3 source fields. + */ + S3?: S3ConnectorOperator; + /** + * The operation to be performed on the provided Salesforce source fields. + */ + Salesforce?: SalesforceConnectorOperator; + /** + * The operation to be performed on the provided ServiceNow source fields. + */ + ServiceNow?: ServiceNowConnectorOperator; + /** + * The operation to be performed on the provided Singular source fields. + */ + Singular?: SingularConnectorOperator; + /** + * The operation to be performed on the provided Slack source fields. + */ + Slack?: SlackConnectorOperator; + /** + * The operation to be performed on the provided Trend Micro source fields. + */ + Trendmicro?: TrendmicroConnectorOperator; + /** + * The operation to be performed on the provided Veeva source fields. + */ + Veeva?: VeevaConnectorOperator; + /** + * The operation to be performed on the provided Zendesk source fields. + */ + Zendesk?: ZendeskConnectorOperator; + } + export interface ConnectorProfile { + /** + * The Amazon Resource Name (ARN) of the connector profile. + */ + connectorProfileArn?: ConnectorProfileArn; + /** + * The name of the connector profile. The name is unique for each ConnectorProfile in the AWS account. + */ + connectorProfileName?: ConnectorProfileName; + /** + * The type of connector, such as Salesforce, Amplitude, and so on. + */ + connectorType?: ConnectorType; + /** + * Indicates the connection mode and if it is public or private. + */ + connectionMode?: ConnectionMode; + /** + * The Amazon Resource Name (ARN) of the connector profile credentials. + */ + credentialsArn?: ARN; + /** + * The connector-specific properties of the profile configuration. + */ + connectorProfileProperties?: ConnectorProfileProperties; + /** + * Specifies when the connector profile was created. + */ + createdAt?: _Date; + /** + * Specifies when the connector profile was last updated. + */ + lastUpdatedAt?: _Date; + } + export type ConnectorProfileArn = string; + export interface ConnectorProfileConfig { + /** + * The connector-specific properties of the profile configuration. + */ + connectorProfileProperties: ConnectorProfileProperties; + /** + * The connector-specific credentials required by each connector. + */ + connectorProfileCredentials: ConnectorProfileCredentials; + } + export interface ConnectorProfileCredentials { + /** + * The connector-specific credentials required when using Amplitude. + */ + Amplitude?: AmplitudeConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Datadog. + */ + Datadog?: DatadogConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Dynatrace. + */ + Dynatrace?: DynatraceConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Google Analytics. + */ + GoogleAnalytics?: GoogleAnalyticsConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Amazon Honeycode. + */ + Honeycode?: HoneycodeConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Infor Nexus. + */ + InforNexus?: InforNexusConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Marketo. + */ + Marketo?: MarketoConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Amazon Redshift. + */ + Redshift?: RedshiftConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Salesforce. + */ + Salesforce?: SalesforceConnectorProfileCredentials; + /** + * The connector-specific credentials required when using ServiceNow. + */ + ServiceNow?: ServiceNowConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Singular. + */ + Singular?: SingularConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Slack. + */ + Slack?: SlackConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Snowflake. + */ + Snowflake?: SnowflakeConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Trend Micro. + */ + Trendmicro?: TrendmicroConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Veeva. + */ + Veeva?: VeevaConnectorProfileCredentials; + /** + * The connector-specific credentials required when using Zendesk. + */ + Zendesk?: ZendeskConnectorProfileCredentials; + } + export type ConnectorProfileDetailList = ConnectorProfile[]; + export type ConnectorProfileName = string; + export type ConnectorProfileNameList = ConnectorProfileName[]; + export interface ConnectorProfileProperties { + /** + * The connector-specific properties required by Amplitude. + */ + Amplitude?: AmplitudeConnectorProfileProperties; + /** + * The connector-specific properties required by Datadog. + */ + Datadog?: DatadogConnectorProfileProperties; + /** + * The connector-specific properties required by Dynatrace. + */ + Dynatrace?: DynatraceConnectorProfileProperties; + /** + * The connector-specific properties required Google Analytics. + */ + GoogleAnalytics?: GoogleAnalyticsConnectorProfileProperties; + /** + * The connector-specific properties required by Amazon Honeycode. + */ + Honeycode?: HoneycodeConnectorProfileProperties; + /** + * The connector-specific properties required by Infor Nexus. + */ + InforNexus?: InforNexusConnectorProfileProperties; + /** + * The connector-specific properties required by Marketo. + */ + Marketo?: MarketoConnectorProfileProperties; + /** + * The connector-specific properties required by Amazon Redshift. + */ + Redshift?: RedshiftConnectorProfileProperties; + /** + * The connector-specific properties required by Salesforce. + */ + Salesforce?: SalesforceConnectorProfileProperties; + /** + * The connector-specific properties required by serviceNow. + */ + ServiceNow?: ServiceNowConnectorProfileProperties; + /** + * The connector-specific properties required by Singular. + */ + Singular?: SingularConnectorProfileProperties; + /** + * The connector-specific properties required by Slack. + */ + Slack?: SlackConnectorProfileProperties; + /** + * The connector-specific properties required by Snowflake. + */ + Snowflake?: SnowflakeConnectorProfileProperties; + /** + * The connector-specific properties required by Trend Micro. + */ + Trendmicro?: TrendmicroConnectorProfileProperties; + /** + * The connector-specific properties required by Veeva. + */ + Veeva?: VeevaConnectorProfileProperties; + /** + * The connector-specific properties required by Zendesk. + */ + Zendesk?: ZendeskConnectorProfileProperties; + } + export type ConnectorType = "Salesforce"|"Singular"|"Slack"|"Redshift"|"S3"|"Marketo"|"Googleanalytics"|"Zendesk"|"Servicenow"|"Datadog"|"Trendmicro"|"Snowflake"|"Dynatrace"|"Infornexus"|"Amplitude"|"Veeva"|"EventBridge"|"LookoutMetrics"|"Upsolver"|"Honeycode"|"CustomerProfiles"|string; + export type ConnectorTypeList = ConnectorType[]; + export interface CreateConnectorProfileRequest { + /** + * The name of the connector profile. The name is unique for each ConnectorProfile in your AWS account. + */ + connectorProfileName: ConnectorProfileName; + /** + * The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. + */ + kmsArn?: KMSArn; + /** + * The type of connector, such as Salesforce, Amplitude, and so on. + */ + connectorType: ConnectorType; + /** + * Indicates the connection mode and specifies whether it is public or private. Private flows use AWS PrivateLink to route data over AWS infrastructure without exposing it to the public internet. + */ + connectionMode: ConnectionMode; + /** + * Defines the connector-specific configuration and credentials. + */ + connectorProfileConfig: ConnectorProfileConfig; + } + export interface CreateConnectorProfileResponse { + /** + * The Amazon Resource Name (ARN) of the connector profile. + */ + connectorProfileArn?: ConnectorProfileArn; + } + export interface CreateFlowRequest { + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName: FlowName; + /** + * A description of the flow you want to create. + */ + description?: FlowDescription; + /** + * The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. + */ + kmsArn?: KMSArn; + /** + * The trigger settings that determine how and when the flow runs. + */ + triggerConfig: TriggerConfig; + /** + * The configuration that controls how Amazon AppFlow retrieves data from the source connector. + */ + sourceFlowConfig: SourceFlowConfig; + /** + * The configuration that controls how Amazon AppFlow places data in the destination connector. + */ + destinationFlowConfigList: DestinationFlowConfigList; + /** + * A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. + */ + tasks: Tasks; + /** + * The tags used to organize, track, or control access for your flow. + */ + tags?: TagMap; + } + export interface CreateFlowResponse { + /** + * The flow's Amazon Resource Name (ARN). + */ + flowArn?: FlowArn; + /** + * Indicates the current status of the flow. + */ + flowStatus?: FlowStatus; + } + export type CreatedBy = string; + export interface CustomerProfilesDestinationProperties { + /** + * The unique name of the Amazon Connect Customer Profiles domain. + */ + domainName: DomainName; + /** + * The object specified in the Amazon Connect Customer Profiles flow destination. + */ + objectTypeName?: ObjectTypeName; + } + export interface CustomerProfilesMetadata { + } + export type DataPullMode = "Incremental"|"Complete"|string; + export type DatabaseUrl = string; + export type DatadogConnectorOperator = "PROJECTION"|"BETWEEN"|"EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface DatadogConnectorProfileCredentials { + /** + * A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. + */ + apiKey: ApiKey; + /** + * Application keys, in conjunction with your API key, give you full access to Datadog’s programmatic API. Application keys are associated with the user account that created them. The application key is used to log all requests made to the API. + */ + applicationKey: ApplicationKey; + } + export interface DatadogConnectorProfileProperties { + /** + * The location of the Datadog resource. + */ + instanceUrl: InstanceUrl; + } + export interface DatadogMetadata { + } + export interface DatadogSourceProperties { + /** + * The object specified in the Datadog flow source. + */ + object: Object; + } + export type _Date = Date; + export type DatetimeTypeFieldName = string; + export interface DeleteConnectorProfileRequest { + /** + * The name of the connector profile. The name is unique for each ConnectorProfile in your account. + */ + connectorProfileName: ConnectorProfileName; + /** + * Indicates whether Amazon AppFlow should delete the profile, even if it is currently in use in one or more flows. + */ + forceDelete?: Boolean; + } + export interface DeleteConnectorProfileResponse { + } + export interface DeleteFlowRequest { + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName: FlowName; + /** + * Indicates whether Amazon AppFlow should delete the flow, even if it is currently in use. + */ + forceDelete?: Boolean; + } + export interface DeleteFlowResponse { + } + export interface DescribeConnectorEntityRequest { + /** + * The entity name for that connector. + */ + connectorEntityName: Name; + /** + * The type of connector application, such as Salesforce, Amplitude, and so on. + */ + connectorType?: ConnectorType; + /** + * The name of the connector profile. The name is unique for each ConnectorProfile in the AWS account. + */ + connectorProfileName?: ConnectorProfileName; + } + export interface DescribeConnectorEntityResponse { + /** + * Describes the fields for that connector entity. For example, for an account entity, the fields would be account name, account ID, and so on. + */ + connectorEntityFields: ConnectorEntityFieldList; + } + export interface DescribeConnectorProfilesRequest { + /** + * The name of the connector profile. The name is unique for each ConnectorProfile in the AWS account. + */ + connectorProfileNames?: ConnectorProfileNameList; + /** + * The type of connector, such as Salesforce, Amplitude, and so on. + */ + connectorType?: ConnectorType; + /** + * Specifies the maximum number of items that should be returned in the result set. The default for maxResults is 20 (for all paginated API operations). + */ + maxResults?: MaxResults; + /** + * The pagination token for the next page of data. + */ + nextToken?: NextToken; + } + export interface DescribeConnectorProfilesResponse { + /** + * Returns information about the connector profiles associated with the flow. + */ + connectorProfileDetails?: ConnectorProfileDetailList; + /** + * The pagination token for the next page of data. If nextToken=null, this means that all records have been fetched. + */ + nextToken?: NextToken; + } + export interface DescribeConnectorsRequest { + /** + * The type of connector, such as Salesforce, Amplitude, and so on. + */ + connectorTypes?: ConnectorTypeList; + /** + * The pagination token for the next page of data. + */ + nextToken?: NextToken; + } + export interface DescribeConnectorsResponse { + /** + * The configuration that is applied to the connectors used in the flow. + */ + connectorConfigurations?: ConnectorConfigurationsMap; + /** + * The pagination token for the next page of data. + */ + nextToken?: NextToken; + } + export interface DescribeFlowExecutionRecordsRequest { + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName: FlowName; + /** + * Specifies the maximum number of items that should be returned in the result set. The default for maxResults is 20 (for all paginated API operations). + */ + maxResults?: MaxResults; + /** + * The pagination token for the next page of data. + */ + nextToken?: NextToken; + } + export interface DescribeFlowExecutionRecordsResponse { + /** + * Returns a list of all instances when this flow was run. + */ + flowExecutions?: FlowExecutionList; + /** + * The pagination token for the next page of data. + */ + nextToken?: NextToken; + } + export interface DescribeFlowRequest { + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName: FlowName; + } + export interface DescribeFlowResponse { + /** + * The flow's Amazon Resource Name (ARN). + */ + flowArn?: FlowArn; + /** + * A description of the flow. + */ + description?: FlowDescription; + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName?: FlowName; + /** + * The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key. + */ + kmsArn?: KMSArn; + /** + * Indicates the current status of the flow. + */ + flowStatus?: FlowStatus; + /** + * Contains an error message if the flow status is in a suspended or error state. This applies only to scheduled or event-triggered flows. + */ + flowStatusMessage?: FlowStatusMessage; + /** + * The configuration that controls how Amazon AppFlow retrieves data from the source connector. + */ + sourceFlowConfig?: SourceFlowConfig; + /** + * The configuration that controls how Amazon AppFlow transfers data to the destination connector. + */ + destinationFlowConfigList?: DestinationFlowConfigList; + /** + * Describes the details of the most recent flow run. + */ + lastRunExecutionDetails?: ExecutionDetails; + /** + * The trigger settings that determine how and when the flow runs. + */ + triggerConfig?: TriggerConfig; + /** + * A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. + */ + tasks?: Tasks; + /** + * Specifies when the flow was created. + */ + createdAt?: _Date; + /** + * Specifies when the flow was last updated. + */ + lastUpdatedAt?: _Date; + /** + * The ARN of the user who created the flow. + */ + createdBy?: CreatedBy; + /** + * Specifies the user name of the account that performed the most recent update. + */ + lastUpdatedBy?: UpdatedBy; + /** + * The tags used to organize, track, or control access for your flow. + */ + tags?: TagMap; + } + export type Description = string; + export interface DestinationConnectorProperties { + /** + * The properties required to query Amazon Redshift. + */ + Redshift?: RedshiftDestinationProperties; + /** + * The properties required to query Amazon S3. + */ + S3?: S3DestinationProperties; + /** + * The properties required to query Salesforce. + */ + Salesforce?: SalesforceDestinationProperties; + /** + * The properties required to query Snowflake. + */ + Snowflake?: SnowflakeDestinationProperties; + /** + * The properties required to query Amazon EventBridge. + */ + EventBridge?: EventBridgeDestinationProperties; + /** + * The properties required to query Amazon Lookout for Metrics. + */ + LookoutMetrics?: LookoutMetricsDestinationProperties; + /** + * The properties required to query Upsolver. + */ + Upsolver?: UpsolverDestinationProperties; + /** + * The properties required to query Amazon Honeycode. + */ + Honeycode?: HoneycodeDestinationProperties; + /** + * The properties required to query Amazon Connect Customer Profiles. + */ + CustomerProfiles?: CustomerProfilesDestinationProperties; + /** + * The properties required to query Zendesk. + */ + Zendesk?: ZendeskDestinationProperties; + } + export type DestinationField = string; + export interface DestinationFieldProperties { + /** + * Specifies if the destination field can be created by the current user. + */ + isCreatable?: Boolean; + /** + * Specifies if the destination field can have a null value. + */ + isNullable?: Boolean; + /** + * Specifies if the flow run can either insert new rows in the destination field if they do not already exist, or update them if they do. + */ + isUpsertable?: Boolean; + /** + * Specifies whether the field can be updated during an UPDATE or UPSERT write operation. + */ + isUpdatable?: Boolean; + /** + * A list of supported write operations. For each write operation listed, this field can be used in idFieldNames when that write operation is present as a destination option. + */ + supportedWriteOperations?: SupportedWriteOperationList; + } + export interface DestinationFlowConfig { + /** + * The type of connector, such as Salesforce, Amplitude, and so on. + */ + connectorType: ConnectorType; + /** + * The name of the connector profile. This name must be unique for each connector profile in the AWS account. + */ + connectorProfileName?: ConnectorProfileName; + /** + * This stores the information that is required to query a particular connector. + */ + destinationConnectorProperties: DestinationConnectorProperties; + } + export type DestinationFlowConfigList = DestinationFlowConfig[]; + export type DomainName = string; + export type DynatraceConnectorOperator = "PROJECTION"|"BETWEEN"|"EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface DynatraceConnectorProfileCredentials { + /** + * The API tokens used by Dynatrace API to authenticate various API calls. + */ + apiToken: ApiToken; + } + export interface DynatraceConnectorProfileProperties { + /** + * The location of the Dynatrace resource. + */ + instanceUrl: InstanceUrl; + } + export interface DynatraceMetadata { + } + export interface DynatraceSourceProperties { + /** + * The object specified in the Dynatrace flow source. + */ + object: Object; + } + export type EntitiesPath = string; + export interface ErrorHandlingConfig { + /** + * Specifies if the flow should fail after the first instance of a failure when attempting to place data in the destination. + */ + failOnFirstDestinationError?: Boolean; + /** + * Specifies the Amazon S3 bucket prefix. + */ + bucketPrefix?: BucketPrefix; + /** + * Specifies the name of the Amazon S3 bucket. + */ + bucketName?: BucketName; + } + export interface ErrorInfo { + /** + * Specifies the failure count for the attempted flow. + */ + putFailuresCount?: Long; + /** + * Specifies the error message that appears if a flow fails. + */ + executionMessage?: ExecutionMessage; + } + export interface EventBridgeDestinationProperties { + /** + * The object specified in the Amazon EventBridge flow destination. + */ + object: Object; + errorHandlingConfig?: ErrorHandlingConfig; + } + export interface EventBridgeMetadata { + } + export interface ExecutionDetails { + /** + * Describes the details of the most recent flow run. + */ + mostRecentExecutionMessage?: MostRecentExecutionMessage; + /** + * Specifies the time of the most recent flow run. + */ + mostRecentExecutionTime?: _Date; + /** + * Specifies the status of the most recent flow run. + */ + mostRecentExecutionStatus?: ExecutionStatus; + } + export type ExecutionId = string; + export type ExecutionMessage = string; + export interface ExecutionRecord { + /** + * Specifies the identifier of the given flow run. + */ + executionId?: ExecutionId; + /** + * Specifies the flow run status and whether it is in progress, has completed successfully, or has failed. + */ + executionStatus?: ExecutionStatus; + /** + * Describes the result of the given flow run. + */ + executionResult?: ExecutionResult; + /** + * Specifies the start time of the flow run. + */ + startedAt?: _Date; + /** + * Specifies the time of the most recent update. + */ + lastUpdatedAt?: _Date; + /** + * The timestamp that determines the first new or updated record to be transferred in the flow run. + */ + dataPullStartTime?: _Date; + /** + * The timestamp that indicates the last new or updated record to be transferred in the flow run. + */ + dataPullEndTime?: _Date; + } + export interface ExecutionResult { + /** + * Provides any error message information related to the flow run. + */ + errorInfo?: ErrorInfo; + /** + * The total number of bytes processed by the flow run. + */ + bytesProcessed?: Long; + /** + * The total number of bytes written as a result of the flow run. + */ + bytesWritten?: Long; + /** + * The number of records processed in the flow run. + */ + recordsProcessed?: Long; + } + export type ExecutionStatus = "InProgress"|"Successful"|"Error"|string; + export type FieldType = string; + export interface FieldTypeDetails { + /** + * The type of field, such as string, integer, date, and so on. + */ + fieldType: FieldType; + /** + * The list of operators supported by a field. + */ + filterOperators: FilterOperatorList; + /** + * The list of values that a field can contain. For example, a Boolean fieldType can have two values: "true" and "false". + */ + supportedValues?: SupportedValueList; + } + export type FileType = "CSV"|"JSON"|"PARQUET"|string; + export type FilterOperatorList = Operator[]; + export type FlowArn = string; + export interface FlowDefinition { + /** + * The flow's Amazon Resource Name (ARN). + */ + flowArn?: FlowArn; + /** + * A user-entered description of the flow. + */ + description?: FlowDescription; + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName?: FlowName; + /** + * Indicates the current status of the flow. + */ + flowStatus?: FlowStatus; + /** + * Specifies the source connector type, such as Salesforce, Amazon S3, Amplitude, and so on. + */ + sourceConnectorType?: ConnectorType; + /** + * Specifies the destination connector type, such as Salesforce, Amazon S3, Amplitude, and so on. + */ + destinationConnectorType?: ConnectorType; + /** + * Specifies the type of flow trigger. This can be OnDemand, Scheduled, or Event. + */ + triggerType?: TriggerType; + /** + * Specifies when the flow was created. + */ + createdAt?: _Date; + /** + * Specifies when the flow was last updated. + */ + lastUpdatedAt?: _Date; + /** + * The ARN of the user who created the flow. + */ + createdBy?: CreatedBy; + /** + * Specifies the account user name that most recently updated the flow. + */ + lastUpdatedBy?: UpdatedBy; + /** + * The tags used to organize, track, or control access for your flow. + */ + tags?: TagMap; + /** + * Describes the details of the most recent flow run. + */ + lastRunExecutionDetails?: ExecutionDetails; + } + export type FlowDescription = string; + export type FlowExecutionList = ExecutionRecord[]; + export type FlowList = FlowDefinition[]; + export type FlowName = string; + export type FlowStatus = "Active"|"Deprecated"|"Deleted"|"Draft"|"Errored"|"Suspended"|string; + export type FlowStatusMessage = string; + export type GoogleAnalyticsConnectorOperator = "PROJECTION"|"BETWEEN"|string; + export interface GoogleAnalyticsConnectorProfileCredentials { + /** + * The identifier for the desired client. + */ + clientId: ClientId; + /** + * The client secret used by the OAuth client to authenticate to the authorization server. + */ + clientSecret: ClientSecret; + /** + * The credentials used to access protected Google Analytics resources. + */ + accessToken?: AccessToken; + /** + * The credentials used to acquire new access tokens. This is required only for OAuth2 access tokens, and is not required for OAuth1 access tokens. + */ + refreshToken?: RefreshToken; + /** + * The OAuth requirement needed to request security tokens from the connector endpoint. + */ + oAuthRequest?: ConnectorOAuthRequest; + } + export interface GoogleAnalyticsConnectorProfileProperties { + } + export interface GoogleAnalyticsMetadata { + /** + * The desired authorization scope for the Google Analytics account. + */ + oAuthScopes?: OAuthScopeList; + } + export interface GoogleAnalyticsSourceProperties { + /** + * The object specified in the Google Analytics flow source. + */ + object: Object; + } + export type Group = string; + export interface HoneycodeConnectorProfileCredentials { + /** + * The credentials used to access protected Amazon Honeycode resources. + */ + accessToken?: AccessToken; + /** + * The credentials used to acquire new access tokens. + */ + refreshToken?: RefreshToken; + oAuthRequest?: ConnectorOAuthRequest; + } + export interface HoneycodeConnectorProfileProperties { + } + export interface HoneycodeDestinationProperties { + /** + * The object specified in the Amazon Honeycode flow destination. + */ + object: Object; + errorHandlingConfig?: ErrorHandlingConfig; + } + export interface HoneycodeMetadata { + /** + * The desired authorization scope for the Amazon Honeycode account. + */ + oAuthScopes?: OAuthScopeList; + } + export type IdFieldNameList = Name[]; + export type Identifier = string; + export interface IncrementalPullConfig { + /** + * A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source. + */ + datetimeTypeFieldName?: DatetimeTypeFieldName; + } + export type InforNexusConnectorOperator = "PROJECTION"|"BETWEEN"|"EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface InforNexusConnectorProfileCredentials { + /** + * The Access Key portion of the credentials. + */ + accessKeyId: AccessKeyId; + /** + * The identifier for the user. + */ + userId: Username; + /** + * The secret key used to sign requests. + */ + secretAccessKey: Key; + /** + * The encryption keys used to encrypt data. + */ + datakey: Key; + } + export interface InforNexusConnectorProfileProperties { + /** + * The location of the Infor Nexus resource. + */ + instanceUrl: InstanceUrl; + } + export interface InforNexusMetadata { + } + export interface InforNexusSourceProperties { + /** + * The object specified in the Infor Nexus flow source. + */ + object: Object; + } + export type InstanceUrl = string; + export type KMSArn = string; + export type Key = string; + export type Label = string; + export interface ListConnectorEntitiesRequest { + /** + * The name of the connector profile. The name is unique for each ConnectorProfile in the AWS account, and is used to query the downstream connector. + */ + connectorProfileName?: ConnectorProfileName; + /** + * The type of connector, such as Salesforce, Amplitude, and so on. + */ + connectorType?: ConnectorType; + /** + * This optional parameter is specific to connector implementation. Some connectors support multiple levels or categories of entities. You can find out the list of roots for such providers by sending a request without the entitiesPath parameter. If the connector supports entities at different roots, this initial request returns the list of roots. Otherwise, this request returns all entities supported by the provider. + */ + entitiesPath?: EntitiesPath; + } + export interface ListConnectorEntitiesResponse { + /** + * The response of ListConnectorEntities lists entities grouped by category. This map's key represents the group name, and its value contains the list of entities belonging to that group. + */ + connectorEntityMap: ConnectorEntityMap; + } + export interface ListFlowsRequest { + /** + * Specifies the maximum number of items that should be returned in the result set. + */ + maxResults?: MaxResults; + /** + * The pagination token for next page of data. + */ + nextToken?: NextToken; + } + export interface ListFlowsResponse { + /** + * The list of flows associated with your account. + */ + flows?: FlowList; + /** + * The pagination token for next page of data. + */ + nextToken?: NextToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the specified flow. + */ + resourceArn: ARN; + } + export interface ListTagsForResourceResponse { + /** + * The tags used to organize, track, or control access for your flow. + */ + tags?: TagMap; + } + export type Long = number; + export interface LookoutMetricsDestinationProperties { + } + export type MarketoConnectorOperator = "PROJECTION"|"LESS_THAN"|"GREATER_THAN"|"BETWEEN"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface MarketoConnectorProfileCredentials { + /** + * The identifier for the desired client. + */ + clientId: ClientId; + /** + * The client secret used by the OAuth client to authenticate to the authorization server. + */ + clientSecret: ClientSecret; + /** + * The credentials used to access protected Marketo resources. + */ + accessToken?: AccessToken; + /** + * The OAuth requirement needed to request security tokens from the connector endpoint. + */ + oAuthRequest?: ConnectorOAuthRequest; + } + export interface MarketoConnectorProfileProperties { + /** + * The location of the Marketo resource. + */ + instanceUrl: InstanceUrl; + } + export interface MarketoMetadata { + } + export interface MarketoSourceProperties { + /** + * The object specified in the Marketo flow source. + */ + object: Object; + } + export type MaxResults = number; + export type MostRecentExecutionMessage = string; + export type Name = string; + export type NextToken = string; + export type OAuthScope = string; + export type OAuthScopeList = OAuthScope[]; + export type Object = string; + export type ObjectTypeName = string; + export type Operator = "PROJECTION"|"LESS_THAN"|"GREATER_THAN"|"CONTAINS"|"BETWEEN"|"LESS_THAN_OR_EQUAL_TO"|"GREATER_THAN_OR_EQUAL_TO"|"EQUAL_TO"|"NOT_EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export type OperatorPropertiesKeys = "VALUE"|"VALUES"|"DATA_TYPE"|"UPPER_BOUND"|"LOWER_BOUND"|"SOURCE_DATA_TYPE"|"DESTINATION_DATA_TYPE"|"VALIDATION_ACTION"|"MASK_VALUE"|"MASK_LENGTH"|"TRUNCATE_LENGTH"|"MATH_OPERATION_FIELDS_ORDER"|"CONCAT_FORMAT"|"SUBFIELD_CATEGORY_MAP"|"EXCLUDE_SOURCE_FIELDS_LIST"|string; + export type Password = string; + export interface PrefixConfig { + /** + * Determines the format of the prefix, and whether it applies to the file name, file path, or both. + */ + prefixType?: PrefixType; + /** + * Determines the level of granularity that's included in the prefix. + */ + prefixFormat?: PrefixFormat; + } + export type PrefixFormat = "YEAR"|"MONTH"|"DAY"|"HOUR"|"MINUTE"|string; + export type PrefixType = "FILENAME"|"PATH"|"PATH_AND_FILENAME"|string; + export type PrivateLinkServiceName = string; + export type Property = string; + export type RedirectUri = string; + export interface RedshiftConnectorProfileCredentials { + /** + * The name of the user. + */ + username: Username; + /** + * The password that corresponds to the user name. + */ + password: Password; + } + export interface RedshiftConnectorProfileProperties { + /** + * The JDBC URL of the Amazon Redshift cluster. + */ + databaseUrl: DatabaseUrl; + /** + * A name for the associated Amazon S3 bucket. + */ + bucketName: BucketName; + /** + * The object key for the destination bucket in which Amazon AppFlow places the files. + */ + bucketPrefix?: BucketPrefix; + /** + * The Amazon Resource Name (ARN) of the IAM role. + */ + roleArn: RoleArn; + } + export interface RedshiftDestinationProperties { + /** + * The object specified in the Amazon Redshift flow destination. + */ + object: Object; + /** + * The intermediate bucket that Amazon AppFlow uses when moving data into Amazon Redshift. + */ + intermediateBucketName: BucketName; + /** + * The object key for the bucket in which Amazon AppFlow places the destination files. + */ + bucketPrefix?: BucketPrefix; + /** + * The settings that determine how Amazon AppFlow handles an error when placing data in the Amazon Redshift destination. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure. ErrorHandlingConfig is a part of the destination connector details. + */ + errorHandlingConfig?: ErrorHandlingConfig; + } + export interface RedshiftMetadata { + } + export type RefreshToken = string; + export type Region = string; + export type RegionList = Region[]; + export type RoleArn = string; + export type S3ConnectorOperator = "PROJECTION"|"LESS_THAN"|"GREATER_THAN"|"BETWEEN"|"LESS_THAN_OR_EQUAL_TO"|"GREATER_THAN_OR_EQUAL_TO"|"EQUAL_TO"|"NOT_EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface S3DestinationProperties { + /** + * The Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + */ + bucketName: BucketName; + /** + * The object key for the destination bucket in which Amazon AppFlow places the files. + */ + bucketPrefix?: BucketPrefix; + s3OutputFormatConfig?: S3OutputFormatConfig; + } + export interface S3Metadata { + } + export interface S3OutputFormatConfig { + /** + * Indicates the file type that Amazon AppFlow places in the Amazon S3 bucket. + */ + fileType?: FileType; + /** + * Determines the prefix that Amazon AppFlow applies to the folder name in the Amazon S3 bucket. You can name folders according to the flow frequency and date. + */ + prefixConfig?: PrefixConfig; + aggregationConfig?: AggregationConfig; + } + export interface S3SourceProperties { + /** + * The Amazon S3 bucket name where the source files are stored. + */ + bucketName: BucketName; + /** + * The object key for the Amazon S3 bucket in which the source files are stored. + */ + bucketPrefix?: BucketPrefix; + } + export type SalesforceConnectorOperator = "PROJECTION"|"LESS_THAN"|"CONTAINS"|"GREATER_THAN"|"BETWEEN"|"LESS_THAN_OR_EQUAL_TO"|"GREATER_THAN_OR_EQUAL_TO"|"EQUAL_TO"|"NOT_EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface SalesforceConnectorProfileCredentials { + /** + * The credentials used to access protected Salesforce resources. + */ + accessToken?: AccessToken; + /** + * The credentials used to acquire new access tokens. + */ + refreshToken?: RefreshToken; + /** + * The OAuth requirement needed to request security tokens from the connector endpoint. + */ + oAuthRequest?: ConnectorOAuthRequest; + /** + * The secret manager ARN, which contains the client ID and client secret of the connected app. + */ + clientCredentialsArn?: ClientCredentialsArn; + } + export interface SalesforceConnectorProfileProperties { + /** + * The location of the Salesforce resource. + */ + instanceUrl?: InstanceUrl; + /** + * Indicates whether the connector profile applies to a sandbox or production environment. + */ + isSandboxEnvironment?: Boolean; + } + export interface SalesforceDestinationProperties { + /** + * The object specified in the Salesforce flow destination. + */ + object: Object; + /** + * The name of the field that Amazon AppFlow uses as an ID when performing a write operation such as update or delete. + */ + idFieldNames?: IdFieldNameList; + /** + * The settings that determine how Amazon AppFlow handles an error when placing data in the Salesforce destination. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure. ErrorHandlingConfig is a part of the destination connector details. + */ + errorHandlingConfig?: ErrorHandlingConfig; + /** + * This specifies the type of write operation to be performed in Salesforce. When the value is UPSERT, then idFieldNames is required. + */ + writeOperationType?: WriteOperationType; + } + export interface SalesforceMetadata { + /** + * The desired authorization scope for the Salesforce account. + */ + oAuthScopes?: OAuthScopeList; + } + export interface SalesforceSourceProperties { + /** + * The object specified in the Salesforce flow source. + */ + object: Object; + /** + * The flag that enables dynamic fetching of new (recently added) fields in the Salesforce objects while running a flow. + */ + enableDynamicFieldUpdate?: Boolean; + /** + * Indicates whether Amazon AppFlow includes deleted files in the flow run. + */ + includeDeletedRecords?: Boolean; + } + export type ScheduleExpression = string; + export type ScheduleFrequencyType = "BYMINUTE"|"HOURLY"|"DAILY"|"WEEKLY"|"MONTHLY"|"ONCE"|string; + export type ScheduleOffset = number; + export interface ScheduledTriggerProperties { + /** + * The scheduling expression that determines the rate at which the schedule will run, for example rate(5minutes). + */ + scheduleExpression: ScheduleExpression; + /** + * Specifies whether a scheduled flow has an incremental data transfer or a complete data transfer for each flow run. + */ + dataPullMode?: DataPullMode; + /** + * Specifies the scheduled start time for a schedule-triggered flow. + */ + scheduleStartTime?: _Date; + /** + * Specifies the scheduled end time for a schedule-triggered flow. + */ + scheduleEndTime?: _Date; + /** + * Specifies the time zone used when referring to the date and time of a scheduled-triggered flow, such as America/New_York. + */ + timezone?: Timezone; + /** + * Specifies the optional offset that is added to the time interval for a schedule-triggered flow. + */ + scheduleOffset?: ScheduleOffset; + /** + * Specifies the date range for the records to import from the connector in the first flow run. + */ + firstExecutionFrom?: _Date; + } + export type SchedulingFrequencyTypeList = ScheduleFrequencyType[]; + export type SecretKey = string; + export type ServiceNowConnectorOperator = "PROJECTION"|"CONTAINS"|"LESS_THAN"|"GREATER_THAN"|"BETWEEN"|"LESS_THAN_OR_EQUAL_TO"|"GREATER_THAN_OR_EQUAL_TO"|"EQUAL_TO"|"NOT_EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface ServiceNowConnectorProfileCredentials { + /** + * The name of the user. + */ + username: Username; + /** + * The password that corresponds to the user name. + */ + password: Password; + } + export interface ServiceNowConnectorProfileProperties { + /** + * The location of the ServiceNow resource. + */ + instanceUrl: InstanceUrl; + } + export interface ServiceNowMetadata { + } + export interface ServiceNowSourceProperties { + /** + * The object specified in the ServiceNow flow source. + */ + object: Object; + } + export type SingularConnectorOperator = "PROJECTION"|"EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface SingularConnectorProfileCredentials { + /** + * A unique alphanumeric identifier used to authenticate a user, developer, or calling program to your API. + */ + apiKey: ApiKey; + } + export interface SingularConnectorProfileProperties { + } + export interface SingularMetadata { + } + export interface SingularSourceProperties { + /** + * The object specified in the Singular flow source. + */ + object: Object; + } + export type SlackConnectorOperator = "PROJECTION"|"LESS_THAN"|"GREATER_THAN"|"BETWEEN"|"LESS_THAN_OR_EQUAL_TO"|"GREATER_THAN_OR_EQUAL_TO"|"EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface SlackConnectorProfileCredentials { + /** + * The identifier for the client. + */ + clientId: ClientId; + /** + * The client secret used by the OAuth client to authenticate to the authorization server. + */ + clientSecret: ClientSecret; + /** + * The credentials used to access protected Slack resources. + */ + accessToken?: AccessToken; + /** + * The OAuth requirement needed to request security tokens from the connector endpoint. + */ + oAuthRequest?: ConnectorOAuthRequest; + } + export interface SlackConnectorProfileProperties { + /** + * The location of the Slack resource. + */ + instanceUrl: InstanceUrl; + } + export interface SlackMetadata { + /** + * The desired authorization scope for the Slack account. + */ + oAuthScopes?: OAuthScopeList; + } + export interface SlackSourceProperties { + /** + * The object specified in the Slack flow source. + */ + object: Object; + } + export interface SnowflakeConnectorProfileCredentials { + /** + * The name of the user. + */ + username: Username; + /** + * The password that corresponds to the user name. + */ + password: Password; + } + export interface SnowflakeConnectorProfileProperties { + /** + * The name of the Snowflake warehouse. + */ + warehouse: Warehouse; + /** + * The name of the Amazon S3 stage that was created while setting up an Amazon S3 stage in the Snowflake account. This is written in the following format: < Database>< Schema><Stage Name>. + */ + stage: Stage; + /** + * The name of the Amazon S3 bucket associated with Snowflake. + */ + bucketName: BucketName; + /** + * The bucket path that refers to the Amazon S3 bucket associated with Snowflake. + */ + bucketPrefix?: BucketPrefix; + /** + * The Snowflake Private Link service name to be used for private data transfers. + */ + privateLinkServiceName?: PrivateLinkServiceName; + /** + * The name of the account. + */ + accountName?: AccountName; + /** + * The AWS Region of the Snowflake account. + */ + region?: Region; + } + export interface SnowflakeDestinationProperties { + /** + * The object specified in the Snowflake flow destination. + */ + object: Object; + /** + * The intermediate bucket that Amazon AppFlow uses when moving data into Snowflake. + */ + intermediateBucketName: BucketName; + /** + * The object key for the destination bucket in which Amazon AppFlow places the files. + */ + bucketPrefix?: BucketPrefix; + /** + * The settings that determine how Amazon AppFlow handles an error when placing data in the Snowflake destination. For example, this setting would determine if the flow should fail after one insertion error, or continue and attempt to insert every record regardless of the initial failure. ErrorHandlingConfig is a part of the destination connector details. + */ + errorHandlingConfig?: ErrorHandlingConfig; + } + export interface SnowflakeMetadata { + /** + * Specifies the supported AWS Regions when using Snowflake. + */ + supportedRegions?: RegionList; + } + export interface SourceConnectorProperties { + /** + * Specifies the information that is required for querying Amplitude. + */ + Amplitude?: AmplitudeSourceProperties; + /** + * Specifies the information that is required for querying Datadog. + */ + Datadog?: DatadogSourceProperties; + /** + * Specifies the information that is required for querying Dynatrace. + */ + Dynatrace?: DynatraceSourceProperties; + /** + * Specifies the information that is required for querying Google Analytics. + */ + GoogleAnalytics?: GoogleAnalyticsSourceProperties; + /** + * Specifies the information that is required for querying Infor Nexus. + */ + InforNexus?: InforNexusSourceProperties; + /** + * Specifies the information that is required for querying Marketo. + */ + Marketo?: MarketoSourceProperties; + /** + * Specifies the information that is required for querying Amazon S3. + */ + S3?: S3SourceProperties; + /** + * Specifies the information that is required for querying Salesforce. + */ + Salesforce?: SalesforceSourceProperties; + /** + * Specifies the information that is required for querying ServiceNow. + */ + ServiceNow?: ServiceNowSourceProperties; + /** + * Specifies the information that is required for querying Singular. + */ + Singular?: SingularSourceProperties; + /** + * Specifies the information that is required for querying Slack. + */ + Slack?: SlackSourceProperties; + /** + * Specifies the information that is required for querying Trend Micro. + */ + Trendmicro?: TrendmicroSourceProperties; + /** + * Specifies the information that is required for querying Veeva. + */ + Veeva?: VeevaSourceProperties; + /** + * Specifies the information that is required for querying Zendesk. + */ + Zendesk?: ZendeskSourceProperties; + } + export interface SourceFieldProperties { + /** + * Indicates whether the field can be returned in a search result. + */ + isRetrievable?: Boolean; + /** + * Indicates if the field can be queried. + */ + isQueryable?: Boolean; + } + export type SourceFields = String[]; + export interface SourceFlowConfig { + /** + * The type of connector, such as Salesforce, Amplitude, and so on. + */ + connectorType: ConnectorType; + /** + * The name of the connector profile. This name must be unique for each connector profile in the AWS account. + */ + connectorProfileName?: ConnectorProfileName; + /** + * Specifies the information that is required to query a particular source connector. + */ + sourceConnectorProperties: SourceConnectorProperties; + /** + * Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull. + */ + incrementalPullConfig?: IncrementalPullConfig; + } + export type Stage = string; + export interface StartFlowRequest { + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName: FlowName; + } + export interface StartFlowResponse { + /** + * The flow's Amazon Resource Name (ARN). + */ + flowArn?: FlowArn; + /** + * Indicates the current status of the flow. + */ + flowStatus?: FlowStatus; + /** + * Returns the internal execution ID of an on-demand flow when the flow is started. For scheduled or event-triggered flows, this value is null. + */ + executionId?: ExecutionId; + } + export interface StopFlowRequest { + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName: FlowName; + } + export interface StopFlowResponse { + /** + * The flow's Amazon Resource Name (ARN). + */ + flowArn?: FlowArn; + /** + * Indicates the current status of the flow. + */ + flowStatus?: FlowStatus; + } + export type String = string; + export interface SupportedFieldTypeDetails { + /** + * The initial supported version for fieldType. If this is later changed to a different version, v2 will be introduced. + */ + v1: FieldTypeDetails; + } + export type SupportedValueList = Value[]; + export type SupportedWriteOperationList = WriteOperationType[]; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagMap = {[key: string]: TagValue}; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the flow that you want to tag. + */ + resourceArn: ARN; + /** + * The tags used to organize, track, or control access for your flow. + */ + tags: TagMap; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export interface Task { + /** + * The source fields to which a particular task is applied. + */ + sourceFields: SourceFields; + /** + * The operation to be performed on the provided source fields. + */ + connectorOperator?: ConnectorOperator; + /** + * A field in a destination connector, or a field value against which Amazon AppFlow validates a source field. + */ + destinationField?: DestinationField; + /** + * Specifies the particular task implementation that Amazon AppFlow performs. + */ + taskType: TaskType; + /** + * A map used to store task-related information. The execution service looks for particular information based on the TaskType. + */ + taskProperties?: TaskPropertiesMap; + } + export type TaskPropertiesMap = {[key: string]: Property}; + export type TaskType = "Arithmetic"|"Filter"|"Map"|"Map_all"|"Mask"|"Merge"|"Truncate"|"Validate"|string; + export type Tasks = Task[]; + export type Timezone = string; + export type TrendmicroConnectorOperator = "PROJECTION"|"EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface TrendmicroConnectorProfileCredentials { + /** + * The Secret Access Key portion of the credentials. + */ + apiSecretKey: ApiSecretKey; + } + export interface TrendmicroConnectorProfileProperties { + } + export interface TrendmicroMetadata { + } + export interface TrendmicroSourceProperties { + /** + * The object specified in the Trend Micro flow source. + */ + object: Object; + } + export interface TriggerConfig { + /** + * Specifies the type of flow trigger. This can be OnDemand, Scheduled, or Event. + */ + triggerType: TriggerType; + /** + * Specifies the configuration details of a schedule-triggered flow as defined by the user. Currently, these settings only apply to the Scheduled trigger type. + */ + triggerProperties?: TriggerProperties; + } + export interface TriggerProperties { + /** + * Specifies the configuration details of a schedule-triggered flow as defined by the user. + */ + Scheduled?: ScheduledTriggerProperties; + } + export type TriggerType = "Scheduled"|"Event"|"OnDemand"|string; + export type TriggerTypeList = TriggerType[]; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the flow that you want to untag. + */ + resourceArn: ARN; + /** + * The tag keys associated with the tag that you want to remove from your flow. + */ + tagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateConnectorProfileRequest { + /** + * The name of the connector profile and is unique for each ConnectorProfile in the AWS Account. + */ + connectorProfileName: ConnectorProfileName; + /** + * Indicates the connection mode and if it is public or private. + */ + connectionMode: ConnectionMode; + /** + * Defines the connector-specific profile configuration and credentials. + */ + connectorProfileConfig: ConnectorProfileConfig; + } + export interface UpdateConnectorProfileResponse { + /** + * The Amazon Resource Name (ARN) of the connector profile. + */ + connectorProfileArn?: ConnectorProfileArn; + } + export interface UpdateFlowRequest { + /** + * The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. + */ + flowName: FlowName; + /** + * A description of the flow. + */ + description?: FlowDescription; + /** + * The trigger settings that determine how and when the flow runs. + */ + triggerConfig: TriggerConfig; + sourceFlowConfig?: SourceFlowConfig; + /** + * The configuration that controls how Amazon AppFlow transfers data to the destination connector. + */ + destinationFlowConfigList: DestinationFlowConfigList; + /** + * A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. + */ + tasks: Tasks; + } + export interface UpdateFlowResponse { + /** + * Indicates the current status of the flow. + */ + flowStatus?: FlowStatus; + } + export type UpdatedBy = string; + export type UpsolverBucketName = string; + export interface UpsolverDestinationProperties { + /** + * The Upsolver Amazon S3 bucket name in which Amazon AppFlow places the transferred data. + */ + bucketName: UpsolverBucketName; + /** + * The object key for the destination Upsolver Amazon S3 bucket in which Amazon AppFlow places the files. + */ + bucketPrefix?: BucketPrefix; + /** + * The configuration that determines how data is formatted when Upsolver is used as the flow destination. + */ + s3OutputFormatConfig: UpsolverS3OutputFormatConfig; + } + export interface UpsolverMetadata { + } + export interface UpsolverS3OutputFormatConfig { + /** + * Indicates the file type that Amazon AppFlow places in the Upsolver Amazon S3 bucket. + */ + fileType?: FileType; + prefixConfig: PrefixConfig; + aggregationConfig?: AggregationConfig; + } + export type Username = string; + export type Value = string; + export type VeevaConnectorOperator = "PROJECTION"|"LESS_THAN"|"GREATER_THAN"|"CONTAINS"|"BETWEEN"|"LESS_THAN_OR_EQUAL_TO"|"GREATER_THAN_OR_EQUAL_TO"|"EQUAL_TO"|"NOT_EQUAL_TO"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface VeevaConnectorProfileCredentials { + /** + * The name of the user. + */ + username: Username; + /** + * The password that corresponds to the user name. + */ + password: Password; + } + export interface VeevaConnectorProfileProperties { + /** + * The location of the Veeva resource. + */ + instanceUrl: InstanceUrl; + } + export interface VeevaMetadata { + } + export interface VeevaSourceProperties { + /** + * The object specified in the Veeva flow source. + */ + object: Object; + } + export type Warehouse = string; + export type WriteOperationType = "INSERT"|"UPSERT"|"UPDATE"|string; + export type ZendeskConnectorOperator = "PROJECTION"|"GREATER_THAN"|"ADDITION"|"MULTIPLICATION"|"DIVISION"|"SUBTRACTION"|"MASK_ALL"|"MASK_FIRST_N"|"MASK_LAST_N"|"VALIDATE_NON_NULL"|"VALIDATE_NON_ZERO"|"VALIDATE_NON_NEGATIVE"|"VALIDATE_NUMERIC"|"NO_OP"|string; + export interface ZendeskConnectorProfileCredentials { + /** + * The identifier for the desired client. + */ + clientId: ClientId; + /** + * The client secret used by the OAuth client to authenticate to the authorization server. + */ + clientSecret: ClientSecret; + /** + * The credentials used to access protected Zendesk resources. + */ + accessToken?: AccessToken; + /** + * The OAuth requirement needed to request security tokens from the connector endpoint. + */ + oAuthRequest?: ConnectorOAuthRequest; + } + export interface ZendeskConnectorProfileProperties { + /** + * The location of the Zendesk resource. + */ + instanceUrl: InstanceUrl; + } + export interface ZendeskDestinationProperties { + /** + * The object specified in the Zendesk flow destination. + */ + object: Object; + idFieldNames?: IdFieldNameList; + errorHandlingConfig?: ErrorHandlingConfig; + writeOperationType?: WriteOperationType; + } + export interface ZendeskMetadata { + /** + * The desired authorization scope for the Zendesk account. + */ + oAuthScopes?: OAuthScopeList; + } + export interface ZendeskSourceProperties { + /** + * The object specified in the Zendesk flow source. + */ + object: Object; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2020-08-23"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Appflow client. + */ + export import Types = Appflow; +} +export = Appflow; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appflow.js b/justdanceonline-main/node_modules/aws-sdk/clients/appflow.js new file mode 100644 index 0000000000000000000000000000000000000000..7aa9a336d1246735a71af0c7c7327cb4d657e1af --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appflow.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['appflow'] = {}; +AWS.Appflow = Service.defineService('appflow', ['2020-08-23']); +Object.defineProperty(apiLoader.services['appflow'], '2020-08-23', { + get: function get() { + var model = require('../apis/appflow-2020-08-23.min.json'); + model.paginators = require('../apis/appflow-2020-08-23.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Appflow; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appintegrations.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/appintegrations.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..254205782ae8f1a34c14f3ea1b3ff0e797d4aeb0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appintegrations.d.ts @@ -0,0 +1,345 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AppIntegrations extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AppIntegrations.Types.ClientConfiguration) + config: Config & AppIntegrations.Types.ClientConfiguration; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Creates an EventIntegration, given a specified name, description, and a reference to an Amazon Eventbridge bus in your account and a partner event source that will push events to that bus. No objects are created in the your account, only metadata that is persisted on the EventIntegration control plane. + */ + createEventIntegration(params: AppIntegrations.Types.CreateEventIntegrationRequest, callback?: (err: AWSError, data: AppIntegrations.Types.CreateEventIntegrationResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Creates an EventIntegration, given a specified name, description, and a reference to an Amazon Eventbridge bus in your account and a partner event source that will push events to that bus. No objects are created in the your account, only metadata that is persisted on the EventIntegration control plane. + */ + createEventIntegration(callback?: (err: AWSError, data: AppIntegrations.Types.CreateEventIntegrationResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Deletes the specified existing event integration. If the event integration is associated with clients, the request is rejected. + */ + deleteEventIntegration(params: AppIntegrations.Types.DeleteEventIntegrationRequest, callback?: (err: AWSError, data: AppIntegrations.Types.DeleteEventIntegrationResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Deletes the specified existing event integration. If the event integration is associated with clients, the request is rejected. + */ + deleteEventIntegration(callback?: (err: AWSError, data: AppIntegrations.Types.DeleteEventIntegrationResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Return information about the event integration. + */ + getEventIntegration(params: AppIntegrations.Types.GetEventIntegrationRequest, callback?: (err: AWSError, data: AppIntegrations.Types.GetEventIntegrationResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Return information about the event integration. + */ + getEventIntegration(callback?: (err: AWSError, data: AppIntegrations.Types.GetEventIntegrationResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Returns a paginated list of event integration associations in the account. + */ + listEventIntegrationAssociations(params: AppIntegrations.Types.ListEventIntegrationAssociationsRequest, callback?: (err: AWSError, data: AppIntegrations.Types.ListEventIntegrationAssociationsResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Returns a paginated list of event integration associations in the account. + */ + listEventIntegrationAssociations(callback?: (err: AWSError, data: AppIntegrations.Types.ListEventIntegrationAssociationsResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Returns a paginated list of event integrations in the account. + */ + listEventIntegrations(params: AppIntegrations.Types.ListEventIntegrationsRequest, callback?: (err: AWSError, data: AppIntegrations.Types.ListEventIntegrationsResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Returns a paginated list of event integrations in the account. + */ + listEventIntegrations(callback?: (err: AWSError, data: AppIntegrations.Types.ListEventIntegrationsResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Lists the tags for the specified resource. + */ + listTagsForResource(params: AppIntegrations.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: AppIntegrations.Types.ListTagsForResourceResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Lists the tags for the specified resource. + */ + listTagsForResource(callback?: (err: AWSError, data: AppIntegrations.Types.ListTagsForResourceResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Adds the specified tags to the specified resource. + */ + tagResource(params: AppIntegrations.Types.TagResourceRequest, callback?: (err: AWSError, data: AppIntegrations.Types.TagResourceResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Adds the specified tags to the specified resource. + */ + tagResource(callback?: (err: AWSError, data: AppIntegrations.Types.TagResourceResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Removes the specified tags from the specified resource. + */ + untagResource(params: AppIntegrations.Types.UntagResourceRequest, callback?: (err: AWSError, data: AppIntegrations.Types.UntagResourceResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Removes the specified tags from the specified resource. + */ + untagResource(callback?: (err: AWSError, data: AppIntegrations.Types.UntagResourceResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Updates the description of an event integration. + */ + updateEventIntegration(params: AppIntegrations.Types.UpdateEventIntegrationRequest, callback?: (err: AWSError, data: AppIntegrations.Types.UpdateEventIntegrationResponse) => void): Request; + /** + * The Amazon AppIntegrations APIs are in preview release and are subject to change. Updates the description of an event integration. + */ + updateEventIntegration(callback?: (err: AWSError, data: AppIntegrations.Types.UpdateEventIntegrationResponse) => void): Request; +} +declare namespace AppIntegrations { + export type Arn = string; + export type ClientAssociationMetadata = {[key: string]: NonBlankString}; + export type ClientId = string; + export interface CreateEventIntegrationRequest { + /** + * The name of the event integration. + */ + Name: Name; + /** + * The description of the event integration. + */ + Description?: Description; + /** + * The event filter. + */ + EventFilter: EventFilter; + /** + * The Eventbridge bus. + */ + EventBridgeBus: EventBridgeBus; + /** + * A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. + */ + ClientToken?: IdempotencyToken; + /** + * One or more tags. + */ + Tags?: TagMap; + } + export interface CreateEventIntegrationResponse { + /** + * The Amazon Resource Name (ARN) of the event integration. + */ + EventIntegrationArn?: Arn; + } + export interface DeleteEventIntegrationRequest { + /** + * The name of the event integration. + */ + Name: Name; + } + export interface DeleteEventIntegrationResponse { + } + export type Description = string; + export type EventBridgeBus = string; + export type EventBridgeRuleName = string; + export interface EventFilter { + /** + * The source of the events. + */ + Source: Source; + } + export interface EventIntegration { + /** + * The Amazon Resource Name (ARN) of the event integration. + */ + EventIntegrationArn?: Arn; + /** + * The name of the event integration. + */ + Name?: Name; + /** + * The event integration description. + */ + Description?: Description; + /** + * The event integration filter. + */ + EventFilter?: EventFilter; + /** + * The Amazon Eventbridge bus for the event integration. + */ + EventBridgeBus?: EventBridgeBus; + /** + * The tags. + */ + Tags?: TagMap; + } + export interface EventIntegrationAssociation { + /** + * The Amazon Resource Name (ARN) for the event integration association. + */ + EventIntegrationAssociationArn?: Arn; + /** + * The identifier for the event integration association. + */ + EventIntegrationAssociationId?: UUID; + /** + * The name of the event integration. + */ + EventIntegrationName?: Name; + /** + * The identifier for the client that is associated with the event integration. + */ + ClientId?: ClientId; + /** + * The name of the Eventbridge rule. + */ + EventBridgeRuleName?: EventBridgeRuleName; + /** + * The metadata associated with the client. + */ + ClientAssociationMetadata?: ClientAssociationMetadata; + } + export type EventIntegrationAssociationsList = EventIntegrationAssociation[]; + export type EventIntegrationsList = EventIntegration[]; + export interface GetEventIntegrationRequest { + /** + * The name of the event integration. + */ + Name: Name; + } + export interface GetEventIntegrationResponse { + /** + * The name of the event integration. + */ + Name?: Name; + /** + * The description of the event integration. + */ + Description?: Description; + /** + * The Amazon Resource Name (ARN) for the event integration. + */ + EventIntegrationArn?: Arn; + /** + * The Eventbridge bus. + */ + EventBridgeBus?: EventBridgeBus; + /** + * The event filter. + */ + EventFilter?: EventFilter; + /** + * One or more tags. + */ + Tags?: TagMap; + } + export type IdempotencyToken = string; + export interface ListEventIntegrationAssociationsRequest { + /** + * The name of the event integration. + */ + EventIntegrationName: Name; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return per page. + */ + MaxResults?: MaxResults; + } + export interface ListEventIntegrationAssociationsResponse { + /** + * The event integration associations. + */ + EventIntegrationAssociations?: EventIntegrationAssociationsList; + /** + * If there are additional results, this is the token for the next set of results. + */ + NextToken?: NextToken; + } + export interface ListEventIntegrationsRequest { + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return per page. + */ + MaxResults?: MaxResults; + } + export interface ListEventIntegrationsResponse { + /** + * The event integrations. + */ + EventIntegrations?: EventIntegrationsList; + /** + * If there are additional results, this is the token for the next set of results. + */ + NextToken?: NextToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. + */ + resourceArn: Arn; + } + export interface ListTagsForResourceResponse { + /** + * Information about the tags. + */ + tags?: TagMap; + } + export type MaxResults = number; + export type Name = string; + export type NextToken = string; + export type NonBlankString = string; + export type Source = string; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagMap = {[key: string]: TagValue}; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. + */ + resourceArn: Arn; + /** + * One or more tags. + */ + tags: TagMap; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type UUID = string; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. + */ + resourceArn: Arn; + /** + * The tag keys. + */ + tagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateEventIntegrationRequest { + /** + * The name of the event integration. + */ + Name: Name; + /** + * The description of the event inegration. + */ + Description?: Description; + } + export interface UpdateEventIntegrationResponse { + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2020-07-29"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AppIntegrations client. + */ + export import Types = AppIntegrations; +} +export = AppIntegrations; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appintegrations.js b/justdanceonline-main/node_modules/aws-sdk/clients/appintegrations.js new file mode 100644 index 0000000000000000000000000000000000000000..4bb2721ef2edf344cff8f94b70e875cf362e1718 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appintegrations.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['appintegrations'] = {}; +AWS.AppIntegrations = Service.defineService('appintegrations', ['2020-07-29']); +Object.defineProperty(apiLoader.services['appintegrations'], '2020-07-29', { + get: function get() { + var model = require('../apis/appintegrations-2020-07-29.min.json'); + model.paginators = require('../apis/appintegrations-2020-07-29.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AppIntegrations; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/applicationautoscaling.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/applicationautoscaling.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..2f64dc7e57fc51dc17bc4409de2776d0d79511b3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/applicationautoscaling.d.ts @@ -0,0 +1,755 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class ApplicationAutoScaling extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: ApplicationAutoScaling.Types.ClientConfiguration) + config: Config & ApplicationAutoScaling.Types.ClientConfiguration; + /** + * Deletes the specified scaling policy for an Application Auto Scaling scalable target. Deleting a step scaling policy deletes the underlying alarm action, but does not delete the CloudWatch alarm associated with the scaling policy, even if it no longer has an associated action. For more information, see Delete a step scaling policy and Delete a target tracking scaling policy in the Application Auto Scaling User Guide. + */ + deleteScalingPolicy(params: ApplicationAutoScaling.Types.DeleteScalingPolicyRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DeleteScalingPolicyResponse) => void): Request; + /** + * Deletes the specified scaling policy for an Application Auto Scaling scalable target. Deleting a step scaling policy deletes the underlying alarm action, but does not delete the CloudWatch alarm associated with the scaling policy, even if it no longer has an associated action. For more information, see Delete a step scaling policy and Delete a target tracking scaling policy in the Application Auto Scaling User Guide. + */ + deleteScalingPolicy(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DeleteScalingPolicyResponse) => void): Request; + /** + * Deletes the specified scheduled action for an Application Auto Scaling scalable target. For more information, see Delete a scheduled action in the Application Auto Scaling User Guide. + */ + deleteScheduledAction(params: ApplicationAutoScaling.Types.DeleteScheduledActionRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DeleteScheduledActionResponse) => void): Request; + /** + * Deletes the specified scheduled action for an Application Auto Scaling scalable target. For more information, see Delete a scheduled action in the Application Auto Scaling User Guide. + */ + deleteScheduledAction(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DeleteScheduledActionResponse) => void): Request; + /** + * Deregisters an Application Auto Scaling scalable target when you have finished using it. To see which resources have been registered, use DescribeScalableTargets. Deregistering a scalable target deletes the scaling policies and the scheduled actions that are associated with it. + */ + deregisterScalableTarget(params: ApplicationAutoScaling.Types.DeregisterScalableTargetRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DeregisterScalableTargetResponse) => void): Request; + /** + * Deregisters an Application Auto Scaling scalable target when you have finished using it. To see which resources have been registered, use DescribeScalableTargets. Deregistering a scalable target deletes the scaling policies and the scheduled actions that are associated with it. + */ + deregisterScalableTarget(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DeregisterScalableTargetResponse) => void): Request; + /** + * Gets information about the scalable targets in the specified namespace. You can filter the results using ResourceIds and ScalableDimension. + */ + describeScalableTargets(params: ApplicationAutoScaling.Types.DescribeScalableTargetsRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalableTargetsResponse) => void): Request; + /** + * Gets information about the scalable targets in the specified namespace. You can filter the results using ResourceIds and ScalableDimension. + */ + describeScalableTargets(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalableTargetsResponse) => void): Request; + /** + * Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using ResourceId and ScalableDimension. + */ + describeScalingActivities(params: ApplicationAutoScaling.Types.DescribeScalingActivitiesRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalingActivitiesResponse) => void): Request; + /** + * Provides descriptive information about the scaling activities in the specified namespace from the previous six weeks. You can filter the results using ResourceId and ScalableDimension. + */ + describeScalingActivities(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalingActivitiesResponse) => void): Request; + /** + * Describes the Application Auto Scaling scaling policies for the specified service namespace. You can filter the results using ResourceId, ScalableDimension, and PolicyNames. For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. + */ + describeScalingPolicies(params: ApplicationAutoScaling.Types.DescribeScalingPoliciesRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalingPoliciesResponse) => void): Request; + /** + * Describes the Application Auto Scaling scaling policies for the specified service namespace. You can filter the results using ResourceId, ScalableDimension, and PolicyNames. For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. + */ + describeScalingPolicies(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalingPoliciesResponse) => void): Request; + /** + * Describes the Application Auto Scaling scheduled actions for the specified service namespace. You can filter the results using the ResourceId, ScalableDimension, and ScheduledActionNames parameters. For more information, see Scheduled scaling and Managing scheduled scaling in the Application Auto Scaling User Guide. + */ + describeScheduledActions(params: ApplicationAutoScaling.Types.DescribeScheduledActionsRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScheduledActionsResponse) => void): Request; + /** + * Describes the Application Auto Scaling scheduled actions for the specified service namespace. You can filter the results using the ResourceId, ScalableDimension, and ScheduledActionNames parameters. For more information, see Scheduled scaling and Managing scheduled scaling in the Application Auto Scaling User Guide. + */ + describeScheduledActions(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScheduledActionsResponse) => void): Request; + /** + * Creates or updates a scaling policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you have registered the resource as a scalable target. Multiple scaling policies can be in force at the same time for the same scalable target. You can have one or more target tracking scaling policies, one or more step scaling policies, or both. However, there is a chance that multiple policies could conflict, instructing the scalable target to scale out or in at the same time. Application Auto Scaling gives precedence to the policy that provides the largest capacity for both scale out and scale in. For example, if one policy increases capacity by 3, another policy increases capacity by 200 percent, and the current capacity is 10, Application Auto Scaling uses the policy with the highest calculated capacity (200% of 10 = 20) and scales out to 30. We recommend caution, however, when using target tracking scaling policies with step scaling policies because conflicts between these policies can cause undesirable behavior. For example, if the step scaling policy initiates a scale-in activity before the target tracking policy is ready to scale in, the scale-in activity will not be blocked. After the scale-in activity completes, the target tracking policy could instruct the scalable target to scale out again. For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. If a scalable target is deregistered, the scalable target is no longer available to execute scaling policies. Any scaling policies that were specified for the scalable target are deleted. + */ + putScalingPolicy(params: ApplicationAutoScaling.Types.PutScalingPolicyRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScalingPolicyResponse) => void): Request; + /** + * Creates or updates a scaling policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you have registered the resource as a scalable target. Multiple scaling policies can be in force at the same time for the same scalable target. You can have one or more target tracking scaling policies, one or more step scaling policies, or both. However, there is a chance that multiple policies could conflict, instructing the scalable target to scale out or in at the same time. Application Auto Scaling gives precedence to the policy that provides the largest capacity for both scale out and scale in. For example, if one policy increases capacity by 3, another policy increases capacity by 200 percent, and the current capacity is 10, Application Auto Scaling uses the policy with the highest calculated capacity (200% of 10 = 20) and scales out to 30. We recommend caution, however, when using target tracking scaling policies with step scaling policies because conflicts between these policies can cause undesirable behavior. For example, if the step scaling policy initiates a scale-in activity before the target tracking policy is ready to scale in, the scale-in activity will not be blocked. After the scale-in activity completes, the target tracking policy could instruct the scalable target to scale out again. For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. If a scalable target is deregistered, the scalable target is no longer available to execute scaling policies. Any scaling policies that were specified for the scalable target are deleted. + */ + putScalingPolicy(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScalingPolicyResponse) => void): Request; + /** + * Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you have registered the resource as a scalable target. When start and end times are specified with a recurring schedule using a cron expression or rates, they form the boundaries for when the recurring action starts and stops. To update a scheduled action, specify the parameters that you want to change. If you don't specify start and end times, the old values are deleted. For more information, see Scheduled scaling in the Application Auto Scaling User Guide. If a scalable target is deregistered, the scalable target is no longer available to run scheduled actions. Any scheduled actions that were specified for the scalable target are deleted. + */ + putScheduledAction(params: ApplicationAutoScaling.Types.PutScheduledActionRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScheduledActionResponse) => void): Request; + /** + * Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you have registered the resource as a scalable target. When start and end times are specified with a recurring schedule using a cron expression or rates, they form the boundaries for when the recurring action starts and stops. To update a scheduled action, specify the parameters that you want to change. If you don't specify start and end times, the old values are deleted. For more information, see Scheduled scaling in the Application Auto Scaling User Guide. If a scalable target is deregistered, the scalable target is no longer available to run scheduled actions. Any scheduled actions that were specified for the scalable target are deleted. + */ + putScheduledAction(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScheduledActionResponse) => void): Request; + /** + * Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. When you register a new scalable target, you must specify values for minimum and maximum capacity. Current capacity will be adjusted within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of this range. After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use DescribeScalableTargets. You can also view the scaling policies for a service namespace by using DescribeScalableTargets. If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget. To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request. + */ + registerScalableTarget(params: ApplicationAutoScaling.Types.RegisterScalableTargetRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.RegisterScalableTargetResponse) => void): Request; + /** + * Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out and scale in. Scalable targets are uniquely identified by the combination of resource ID, scalable dimension, and namespace. When you register a new scalable target, you must specify values for minimum and maximum capacity. Current capacity will be adjusted within the specified range when scaling starts. Application Auto Scaling scaling policies will not scale capacity to values that are outside of this range. After you register a scalable target, you do not need to register it again to use other Application Auto Scaling operations. To see which resources have been registered, use DescribeScalableTargets. You can also view the scaling policies for a service namespace by using DescribeScalableTargets. If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget. To update a scalable target, specify the parameters that you want to change. Include the parameters that identify the scalable target: resource ID, scalable dimension, and namespace. Any parameters that you don't specify are not changed by this update request. + */ + registerScalableTarget(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.RegisterScalableTargetResponse) => void): Request; +} +declare namespace ApplicationAutoScaling { + export type AdjustmentType = "ChangeInCapacity"|"PercentChangeInCapacity"|"ExactCapacity"|string; + export interface Alarm { + /** + * The name of the alarm. + */ + AlarmName: ResourceId; + /** + * The Amazon Resource Name (ARN) of the alarm. + */ + AlarmARN: ResourceId; + } + export type Alarms = Alarm[]; + export type Cooldown = number; + export interface CustomizedMetricSpecification { + /** + * The name of the metric. + */ + MetricName: MetricName; + /** + * The namespace of the metric. + */ + Namespace: MetricNamespace; + /** + * The dimensions of the metric. Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. + */ + Dimensions?: MetricDimensions; + /** + * The statistic of the metric. + */ + Statistic: MetricStatistic; + /** + * The unit of the metric. + */ + Unit?: MetricUnit; + } + export interface DeleteScalingPolicyRequest { + /** + * The name of the scaling policy. + */ + PolicyName: ResourceIdMaxLen1600; + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + } + export interface DeleteScalingPolicyResponse { + } + export interface DeleteScheduledActionRequest { + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The name of the scheduled action. + */ + ScheduledActionName: ResourceIdMaxLen1600; + /** + * The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + } + export interface DeleteScheduledActionResponse { + } + export interface DeregisterScalableTargetRequest { + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + } + export interface DeregisterScalableTargetResponse { + } + export interface DescribeScalableTargetsRequest { + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceIds?: ResourceIdsMaxLen1600; + /** + * The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension?: ScalableDimension; + /** + * The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + */ + MaxResults?: MaxResults; + /** + * The token for the next set of results. + */ + NextToken?: XmlString; + } + export interface DescribeScalableTargetsResponse { + /** + * The scalable targets that match the request parameters. + */ + ScalableTargets?: ScalableTargets; + /** + * The token required to get the next set of results. This value is null if there are no more results to return. + */ + NextToken?: XmlString; + } + export interface DescribeScalingActivitiesRequest { + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId?: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension?: ScalableDimension; + /** + * The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + */ + MaxResults?: MaxResults; + /** + * The token for the next set of results. + */ + NextToken?: XmlString; + } + export interface DescribeScalingActivitiesResponse { + /** + * A list of scaling activity objects. + */ + ScalingActivities?: ScalingActivities; + /** + * The token required to get the next set of results. This value is null if there are no more results to return. + */ + NextToken?: XmlString; + } + export interface DescribeScalingPoliciesRequest { + /** + * The names of the scaling policies to describe. + */ + PolicyNames?: ResourceIdsMaxLen1600; + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId?: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension?: ScalableDimension; + /** + * The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + */ + MaxResults?: MaxResults; + /** + * The token for the next set of results. + */ + NextToken?: XmlString; + } + export interface DescribeScalingPoliciesResponse { + /** + * Information about the scaling policies. + */ + ScalingPolicies?: ScalingPolicies; + /** + * The token required to get the next set of results. This value is null if there are no more results to return. + */ + NextToken?: XmlString; + } + export interface DescribeScheduledActionsRequest { + /** + * The names of the scheduled actions to describe. + */ + ScheduledActionNames?: ResourceIdsMaxLen1600; + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId?: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension?: ScalableDimension; + /** + * The maximum number of scheduled action results. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + */ + MaxResults?: MaxResults; + /** + * The token for the next set of results. + */ + NextToken?: XmlString; + } + export interface DescribeScheduledActionsResponse { + /** + * Information about the scheduled actions. + */ + ScheduledActions?: ScheduledActions; + /** + * The token required to get the next set of results. This value is null if there are no more results to return. + */ + NextToken?: XmlString; + } + export type DisableScaleIn = boolean; + export type MaxResults = number; + export type MetricAggregationType = "Average"|"Minimum"|"Maximum"|string; + export interface MetricDimension { + /** + * The name of the dimension. + */ + Name: MetricDimensionName; + /** + * The value of the dimension. + */ + Value: MetricDimensionValue; + } + export type MetricDimensionName = string; + export type MetricDimensionValue = string; + export type MetricDimensions = MetricDimension[]; + export type MetricName = string; + export type MetricNamespace = string; + export type MetricScale = number; + export type MetricStatistic = "Average"|"Minimum"|"Maximum"|"SampleCount"|"Sum"|string; + export type MetricType = "DynamoDBReadCapacityUtilization"|"DynamoDBWriteCapacityUtilization"|"ALBRequestCountPerTarget"|"RDSReaderAverageCPUUtilization"|"RDSReaderAverageDatabaseConnections"|"EC2SpotFleetRequestAverageCPUUtilization"|"EC2SpotFleetRequestAverageNetworkIn"|"EC2SpotFleetRequestAverageNetworkOut"|"SageMakerVariantInvocationsPerInstance"|"ECSServiceAverageCPUUtilization"|"ECSServiceAverageMemoryUtilization"|"AppStreamAverageCapacityUtilization"|"ComprehendInferenceUtilization"|"LambdaProvisionedConcurrencyUtilization"|"CassandraReadCapacityUtilization"|"CassandraWriteCapacityUtilization"|"KafkaBrokerStorageUtilization"|string; + export type MetricUnit = string; + export type MinAdjustmentMagnitude = number; + export type PolicyName = string; + export type PolicyType = "StepScaling"|"TargetTrackingScaling"|string; + export interface PredefinedMetricSpecification { + /** + * The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleet requests and ECS services. + */ + PredefinedMetricType: MetricType; + /** + * Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot Fleet request or ECS service. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. This is an example: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use the DescribeTargetGroups API operation. + */ + ResourceLabel?: ResourceLabel; + } + export interface PutScalingPolicyRequest { + /** + * The name of the scaling policy. + */ + PolicyName: PolicyName; + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + /** + * The policy type. This parameter is required if you are creating a scaling policy. The following policy types are supported: TargetTrackingScaling—Not supported for Amazon EMR StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces (for Apache Cassandra), or Amazon MSK. For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. + */ + PolicyType?: PolicyType; + /** + * A step scaling policy. This parameter is required if you are creating a policy and the policy type is StepScaling. + */ + StepScalingPolicyConfiguration?: StepScalingPolicyConfiguration; + /** + * A target tracking scaling policy. Includes support for predefined or customized metrics. This parameter is required if you are creating a policy and the policy type is TargetTrackingScaling. + */ + TargetTrackingScalingPolicyConfiguration?: TargetTrackingScalingPolicyConfiguration; + } + export interface PutScalingPolicyResponse { + /** + * The Amazon Resource Name (ARN) of the resulting scaling policy. + */ + PolicyARN: ResourceIdMaxLen1600; + /** + * The CloudWatch alarms created for the target tracking scaling policy. + */ + Alarms?: Alarms; + } + export interface PutScheduledActionRequest { + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The schedule for this action. The following formats are supported: At expressions - "at(yyyy-mm-ddThh:mm:ss)" Rate expressions - "rate(value unit)" Cron expressions - "cron(fields)" At expressions are useful for one-time schedules. Cron expressions are useful for scheduled actions that run periodically at a specified date and time, and rate expressions are useful for scheduled actions that run at a regular interval. At and cron expressions use Universal Coordinated Time (UTC) by default. The cron format consists of six fields separated by white spaces: [Minutes] [Hours] [Day_of_Month] [Month] [Day_of_Week] [Year]. For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days. For more information and examples, see Example scheduled actions for Application Auto Scaling in the Application Auto Scaling User Guide. + */ + Schedule?: ResourceIdMaxLen1600; + /** + * Specifies the time zone used when setting a scheduled action by using an at or cron expression. If a time zone is not provided, UTC is used by default. Valid values are the canonical names of the IANA time zones supported by Joda-Time (such as Etc/GMT+9 or Pacific/Tahiti). For more information, see https://www.joda.org/joda-time/timezones.html. + */ + Timezone?: ResourceIdMaxLen1600; + /** + * The name of the scheduled action. This name must be unique among all other scheduled actions on the specified scalable target. + */ + ScheduledActionName: ScheduledActionName; + /** + * The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + /** + * The date and time for this scheduled action to start, in UTC. + */ + StartTime?: TimestampType; + /** + * The date and time for the recurring schedule to end, in UTC. + */ + EndTime?: TimestampType; + /** + * The new minimum and maximum capacity. You can set both values or just one. At the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity. + */ + ScalableTargetAction?: ScalableTargetAction; + } + export interface PutScheduledActionResponse { + } + export interface RegisterScalableTargetRequest { + /** + * The namespace of the AWS service that provides the resource. For a resource provided by your own application or service, use custom-resource instead. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource that is associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + /** + * The minimum value that you plan to scale in to. When a scaling policy is in effect, Application Auto Scaling can scale in (contract) as needed to the minimum capacity limit in response to changing demand. This property is required when registering a new scalable target. For certain resources, the minimum value allowed is 0. This includes Lambda provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom resources. For all other resources, the minimum value allowed is 1. + */ + MinCapacity?: ResourceCapacity; + /** + * The maximum value that you plan to scale out to. When a scaling policy is in effect, Application Auto Scaling can scale out (expand) as needed to the maximum capacity limit in response to changing demand. This property is required when registering a new scalable target. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see Service Endpoints and Quotas in the Amazon Web Services General Reference. + */ + MaxCapacity?: ResourceCapacity; + /** + * This parameter is required for services that do not support service-linked roles (such as Amazon EMR), and it must specify the ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. If the service supports service-linked roles, Application Auto Scaling uses a service-linked role, which it creates if it does not yet exist. For more information, see Application Auto Scaling IAM roles. + */ + RoleARN?: ResourceIdMaxLen1600; + /** + * An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling. Setting the value of an attribute to true suspends the specified scaling activities. Setting it to false (default) resumes the specified scaling activities. Suspension Outcomes For DynamicScalingInSuspended, while a suspension is in effect, all scale-in activities that are triggered by a scaling policy are suspended. For DynamicScalingOutSuspended, while a suspension is in effect, all scale-out activities that are triggered by a scaling policy are suspended. For ScheduledScalingSuspended, while a suspension is in effect, all scaling activities that involve scheduled actions are suspended. For more information, see Suspending and resuming scaling in the Application Auto Scaling User Guide. + */ + SuspendedState?: SuspendedState; + } + export interface RegisterScalableTargetResponse { + } + export type ResourceCapacity = number; + export type ResourceId = string; + export type ResourceIdMaxLen1600 = string; + export type ResourceIdsMaxLen1600 = ResourceIdMaxLen1600[]; + export type ResourceLabel = string; + export type ScalableDimension = "ecs:service:DesiredCount"|"ec2:spot-fleet-request:TargetCapacity"|"elasticmapreduce:instancegroup:InstanceCount"|"appstream:fleet:DesiredCapacity"|"dynamodb:table:ReadCapacityUnits"|"dynamodb:table:WriteCapacityUnits"|"dynamodb:index:ReadCapacityUnits"|"dynamodb:index:WriteCapacityUnits"|"rds:cluster:ReadReplicaCount"|"sagemaker:variant:DesiredInstanceCount"|"custom-resource:ResourceType:Property"|"comprehend:document-classifier-endpoint:DesiredInferenceUnits"|"comprehend:entity-recognizer-endpoint:DesiredInferenceUnits"|"lambda:function:ProvisionedConcurrency"|"cassandra:table:ReadCapacityUnits"|"cassandra:table:WriteCapacityUnits"|"kafka:broker-storage:VolumeSize"|string; + export interface ScalableTarget { + /** + * The namespace of the AWS service that provides the resource, or a custom-resource. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + /** + * The minimum value to scale to in response to a scale-in activity. + */ + MinCapacity: ResourceCapacity; + /** + * The maximum value to scale to in response to a scale-out activity. + */ + MaxCapacity: ResourceCapacity; + /** + * The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. + */ + RoleARN: ResourceIdMaxLen1600; + /** + * The Unix timestamp for when the scalable target was created. + */ + CreationTime: TimestampType; + SuspendedState?: SuspendedState; + } + export interface ScalableTargetAction { + /** + * The minimum capacity. For certain resources, the minimum value allowed is 0. This includes Lambda provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom resources. For all other resources, the minimum value allowed is 1. + */ + MinCapacity?: ResourceCapacity; + /** + * The maximum capacity. Although you can specify a large maximum capacity, note that service quotas may impose lower limits. Each service has its own default quotas for the maximum capacity of the resource. If you want to specify a higher limit, you can request an increase. For more information, consult the documentation for that service. For information about the default quotas for each service, see Service Endpoints and Quotas in the Amazon Web Services General Reference. + */ + MaxCapacity?: ResourceCapacity; + } + export type ScalableTargets = ScalableTarget[]; + export type ScalingActivities = ScalingActivity[]; + export interface ScalingActivity { + /** + * The unique identifier of the scaling activity. + */ + ActivityId: ResourceId; + /** + * The namespace of the AWS service that provides the resource, or a custom-resource. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + /** + * A simple description of what action the scaling activity intends to accomplish. + */ + Description: XmlString; + /** + * A simple description of what caused the scaling activity to happen. + */ + Cause: XmlString; + /** + * The Unix timestamp for when the scaling activity began. + */ + StartTime: TimestampType; + /** + * The Unix timestamp for when the scaling activity ended. + */ + EndTime?: TimestampType; + /** + * Indicates the status of the scaling activity. + */ + StatusCode: ScalingActivityStatusCode; + /** + * A simple message about the current status of the scaling activity. + */ + StatusMessage?: XmlString; + /** + * The details about the scaling activity. + */ + Details?: XmlString; + } + export type ScalingActivityStatusCode = "Pending"|"InProgress"|"Successful"|"Overridden"|"Unfulfilled"|"Failed"|string; + export type ScalingAdjustment = number; + export type ScalingPolicies = ScalingPolicy[]; + export interface ScalingPolicy { + /** + * The Amazon Resource Name (ARN) of the scaling policy. + */ + PolicyARN: ResourceIdMaxLen1600; + /** + * The name of the scaling policy. + */ + PolicyName: PolicyName; + /** + * The namespace of the AWS service that provides the resource, or a custom-resource. + */ + ServiceNamespace: ServiceNamespace; + /** + * The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension: ScalableDimension; + /** + * The scaling policy type. + */ + PolicyType: PolicyType; + /** + * A step scaling policy. + */ + StepScalingPolicyConfiguration?: StepScalingPolicyConfiguration; + /** + * A target tracking scaling policy. + */ + TargetTrackingScalingPolicyConfiguration?: TargetTrackingScalingPolicyConfiguration; + /** + * The CloudWatch alarms associated with the scaling policy. + */ + Alarms?: Alarms; + /** + * The Unix timestamp for when the scaling policy was created. + */ + CreationTime: TimestampType; + } + export type ScalingSuspended = boolean; + export interface ScheduledAction { + /** + * The name of the scheduled action. + */ + ScheduledActionName: ScheduledActionName; + /** + * The Amazon Resource Name (ARN) of the scheduled action. + */ + ScheduledActionARN: ResourceIdMaxLen1600; + /** + * The namespace of the AWS service that provides the resource, or a custom-resource. + */ + ServiceNamespace: ServiceNamespace; + /** + * The schedule for this action. The following formats are supported: At expressions - "at(yyyy-mm-ddThh:mm:ss)" Rate expressions - "rate(value unit)" Cron expressions - "cron(fields)" At expressions are useful for one-time schedules. Cron expressions are useful for scheduled actions that run periodically at a specified date and time, and rate expressions are useful for scheduled actions that run at a regular interval. At and cron expressions use Universal Coordinated Time (UTC) by default. The cron format consists of six fields separated by white spaces: [Minutes] [Hours] [Day_of_Month] [Month] [Day_of_Week] [Year]. For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days. For more information and examples, see Example scheduled actions for Application Auto Scaling in the Application Auto Scaling User Guide. + */ + Schedule: ResourceIdMaxLen1600; + /** + * The time zone used when referring to the date and time of a scheduled action, when the scheduled action uses an at or cron expression. + */ + Timezone?: ResourceIdMaxLen1600; + /** + * The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet. DynamoDB table - The resource type is table and the unique identifier is the table name. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the index name. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. Amazon SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. Custom resources are not supported with a resource type. This parameter must specify the OutputValue from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our GitHub repository. Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. Lambda provisioned concurrency - The resource type is function and the unique identifier is the function name with a function version or alias name suffix that is not $LATEST. Example: function:my-function:prod or function:my-function:1. Amazon Keyspaces table - The resource type is table and the unique identifier is the table name. Example: keyspace/mykeyspace/table/mytable. Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for an Amazon SageMaker model endpoint variant. custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by your own application or service. comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend document classification endpoint. comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an Amazon Comprehend entity recognizer endpoint. lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function. cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table. cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table. kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + */ + ScalableDimension?: ScalableDimension; + /** + * The date and time that the action is scheduled to begin, in UTC. + */ + StartTime?: TimestampType; + /** + * The date and time that the action is scheduled to end, in UTC. + */ + EndTime?: TimestampType; + /** + * The new minimum and maximum capacity. You can set both values or just one. At the scheduled time, if the current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity. + */ + ScalableTargetAction?: ScalableTargetAction; + /** + * The date and time that the scheduled action was created. + */ + CreationTime: TimestampType; + } + export type ScheduledActionName = string; + export type ScheduledActions = ScheduledAction[]; + export type ServiceNamespace = "ecs"|"elasticmapreduce"|"ec2"|"appstream"|"dynamodb"|"rds"|"sagemaker"|"custom-resource"|"comprehend"|"lambda"|"cassandra"|"kafka"|string; + export interface StepAdjustment { + /** + * The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity. + */ + MetricIntervalLowerBound?: MetricScale; + /** + * The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity. The upper bound must be greater than the lower bound. + */ + MetricIntervalUpperBound?: MetricScale; + /** + * The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. + */ + ScalingAdjustment: ScalingAdjustment; + } + export type StepAdjustments = StepAdjustment[]; + export interface StepScalingPolicyConfiguration { + /** + * Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted (for example, an absolute number or a percentage). The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. AdjustmentType is required if you are adding a new step scaling policy configuration. + */ + AdjustmentType?: AdjustmentType; + /** + * A set of adjustments that enable you to scale based on the size of the alarm breach. At least one step adjustment is required if you are adding a new step scaling policy configuration. + */ + StepAdjustments?: StepAdjustments; + /** + * The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a MinAdjustmentMagnitude of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude of 2, Application Auto Scaling scales out the service by 2 tasks. + */ + MinAdjustmentMagnitude?: MinAdjustmentMagnitude; + /** + * The amount of time, in seconds, to wait for a previous scaling activity to take effect. With scale-out policies, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. While the cooldown period is in effect, capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity. Therefore, only 1 is added to the capacity. With scale-in policies, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the cooldown period after a scale-in activity, Application Auto Scaling scales out the target immediately. In this case, the cooldown period for the scale-in activity stops and doesn't complete. Application Auto Scaling provides a default value of 300 for the following scalable targets: ECS services Spot Fleet requests EMR clusters AppStream 2.0 fleets Aurora DB clusters Amazon SageMaker endpoint variants Custom resources For all other scalable targets, the default value is 0: DynamoDB tables DynamoDB global secondary indexes Amazon Comprehend document classification and entity recognizer endpoints Lambda provisioned concurrency Amazon Keyspaces tables Amazon MSK broker storage + */ + Cooldown?: Cooldown; + /** + * The aggregation type for the CloudWatch metrics. Valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average. + */ + MetricAggregationType?: MetricAggregationType; + } + export interface SuspendedState { + /** + * Whether scale in by a target tracking scaling policy or a step scaling policy is suspended. Set the value to true if you don't want Application Auto Scaling to remove capacity when a scaling policy is triggered. The default is false. + */ + DynamicScalingInSuspended?: ScalingSuspended; + /** + * Whether scale out by a target tracking scaling policy or a step scaling policy is suspended. Set the value to true if you don't want Application Auto Scaling to add capacity when a scaling policy is triggered. The default is false. + */ + DynamicScalingOutSuspended?: ScalingSuspended; + /** + * Whether scheduled scaling is suspended. Set the value to true if you don't want Application Auto Scaling to add or remove capacity by initiating scheduled actions. The default is false. + */ + ScheduledScalingSuspended?: ScalingSuspended; + } + export interface TargetTrackingScalingPolicyConfiguration { + /** + * The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out. + */ + TargetValue: MetricScale; + /** + * A predefined metric. You can specify either a predefined metric or a customized metric. + */ + PredefinedMetricSpecification?: PredefinedMetricSpecification; + /** + * A customized metric. You can specify either a predefined metric or a customized metric. + */ + CustomizedMetricSpecification?: CustomizedMetricSpecification; + /** + * The amount of time, in seconds, to wait for a previous scale-out activity to take effect. With the scale-out cooldown period, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. While the cooldown period is in effect, the capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity. Application Auto Scaling provides a default value of 300 for the following scalable targets: ECS services Spot Fleet requests EMR clusters AppStream 2.0 fleets Aurora DB clusters Amazon SageMaker endpoint variants Custom resources For all other scalable targets, the default value is 0: DynamoDB tables DynamoDB global secondary indexes Amazon Comprehend document classification and entity recognizer endpoints Lambda provisioned concurrency Amazon Keyspaces tables Amazon MSK broker storage + */ + ScaleOutCooldown?: Cooldown; + /** + * The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. With the scale-in cooldown period, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the scale-in cooldown period, Application Auto Scaling scales out the target immediately. In this case, the scale-in cooldown period stops and doesn't complete. Application Auto Scaling provides a default value of 300 for the following scalable targets: ECS services Spot Fleet requests EMR clusters AppStream 2.0 fleets Aurora DB clusters Amazon SageMaker endpoint variants Custom resources For all other scalable targets, the default value is 0: DynamoDB tables DynamoDB global secondary indexes Amazon Comprehend document classification and entity recognizer endpoints Lambda provisioned concurrency Amazon Keyspaces tables Amazon MSK broker storage + */ + ScaleInCooldown?: Cooldown; + /** + * Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false. + */ + DisableScaleIn?: DisableScaleIn; + } + export type TimestampType = Date; + export type XmlString = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2016-02-06"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the ApplicationAutoScaling client. + */ + export import Types = ApplicationAutoScaling; +} +export = ApplicationAutoScaling; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/applicationautoscaling.js b/justdanceonline-main/node_modules/aws-sdk/clients/applicationautoscaling.js new file mode 100644 index 0000000000000000000000000000000000000000..4734e97aa943eeb0dacf0f8c274065646eada88a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/applicationautoscaling.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['applicationautoscaling'] = {}; +AWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']); +Object.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', { + get: function get() { + var model = require('../apis/application-autoscaling-2016-02-06.min.json'); + model.paginators = require('../apis/application-autoscaling-2016-02-06.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.ApplicationAutoScaling; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/applicationcostprofiler.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/applicationcostprofiler.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..079dcf1c06ddcedc3d12bc15b02d496a9b0e79a9 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/applicationcostprofiler.d.ts @@ -0,0 +1,283 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class ApplicationCostProfiler extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: ApplicationCostProfiler.Types.ClientConfiguration) + config: Config & ApplicationCostProfiler.Types.ClientConfiguration; + /** + * Deletes the specified report definition in AWS Application Cost Profiler. This stops the report from being generated. + */ + deleteReportDefinition(params: ApplicationCostProfiler.Types.DeleteReportDefinitionRequest, callback?: (err: AWSError, data: ApplicationCostProfiler.Types.DeleteReportDefinitionResult) => void): Request; + /** + * Deletes the specified report definition in AWS Application Cost Profiler. This stops the report from being generated. + */ + deleteReportDefinition(callback?: (err: AWSError, data: ApplicationCostProfiler.Types.DeleteReportDefinitionResult) => void): Request; + /** + * Retrieves the definition of a report already configured in AWS Application Cost Profiler. + */ + getReportDefinition(params: ApplicationCostProfiler.Types.GetReportDefinitionRequest, callback?: (err: AWSError, data: ApplicationCostProfiler.Types.GetReportDefinitionResult) => void): Request; + /** + * Retrieves the definition of a report already configured in AWS Application Cost Profiler. + */ + getReportDefinition(callback?: (err: AWSError, data: ApplicationCostProfiler.Types.GetReportDefinitionResult) => void): Request; + /** + * Ingests application usage data from Amazon Simple Storage Service (Amazon S3). The data must already exist in the S3 location. As part of the action, AWS Application Cost Profiler copies the object from your S3 bucket to an S3 bucket owned by Amazon for processing asynchronously. + */ + importApplicationUsage(params: ApplicationCostProfiler.Types.ImportApplicationUsageRequest, callback?: (err: AWSError, data: ApplicationCostProfiler.Types.ImportApplicationUsageResult) => void): Request; + /** + * Ingests application usage data from Amazon Simple Storage Service (Amazon S3). The data must already exist in the S3 location. As part of the action, AWS Application Cost Profiler copies the object from your S3 bucket to an S3 bucket owned by Amazon for processing asynchronously. + */ + importApplicationUsage(callback?: (err: AWSError, data: ApplicationCostProfiler.Types.ImportApplicationUsageResult) => void): Request; + /** + * Retrieves a list of all reports and their configurations for your AWS account. The maximum number of reports is one. + */ + listReportDefinitions(params: ApplicationCostProfiler.Types.ListReportDefinitionsRequest, callback?: (err: AWSError, data: ApplicationCostProfiler.Types.ListReportDefinitionsResult) => void): Request; + /** + * Retrieves a list of all reports and their configurations for your AWS account. The maximum number of reports is one. + */ + listReportDefinitions(callback?: (err: AWSError, data: ApplicationCostProfiler.Types.ListReportDefinitionsResult) => void): Request; + /** + * Creates the report definition for a report in Application Cost Profiler. + */ + putReportDefinition(params: ApplicationCostProfiler.Types.PutReportDefinitionRequest, callback?: (err: AWSError, data: ApplicationCostProfiler.Types.PutReportDefinitionResult) => void): Request; + /** + * Creates the report definition for a report in Application Cost Profiler. + */ + putReportDefinition(callback?: (err: AWSError, data: ApplicationCostProfiler.Types.PutReportDefinitionResult) => void): Request; + /** + * Updates existing report in AWS Application Cost Profiler. + */ + updateReportDefinition(params: ApplicationCostProfiler.Types.UpdateReportDefinitionRequest, callback?: (err: AWSError, data: ApplicationCostProfiler.Types.UpdateReportDefinitionResult) => void): Request; + /** + * Updates existing report in AWS Application Cost Profiler. + */ + updateReportDefinition(callback?: (err: AWSError, data: ApplicationCostProfiler.Types.UpdateReportDefinitionResult) => void): Request; +} +declare namespace ApplicationCostProfiler { + export interface DeleteReportDefinitionRequest { + /** + * Required. ID of the report to delete. + */ + reportId: ReportId; + } + export interface DeleteReportDefinitionResult { + /** + * ID of the report that was deleted. + */ + reportId?: ReportId; + } + export type Format = "CSV"|"PARQUET"|string; + export interface GetReportDefinitionRequest { + /** + * ID of the report to retrieve. + */ + reportId: ReportId; + } + export interface GetReportDefinitionResult { + /** + * ID of the report retrieved. + */ + reportId: ReportId; + /** + * Description of the report. + */ + reportDescription: ReportDescription; + /** + * Cadence used to generate the report. + */ + reportFrequency: ReportFrequency; + /** + * Format of the generated report. + */ + format: Format; + /** + * Amazon Simple Storage Service (Amazon S3) location where the report is uploaded. + */ + destinationS3Location: S3Location; + /** + * Timestamp (milliseconds) when this report definition was created. + */ + createdAt: Timestamp; + /** + * Timestamp (milliseconds) when this report definition was last updated. + */ + lastUpdated: Timestamp; + } + export interface ImportApplicationUsageRequest { + /** + * Amazon S3 location to import application usage data from. + */ + sourceS3Location: SourceS3Location; + } + export interface ImportApplicationUsageResult { + /** + * ID of the import request. + */ + importId: ImportId; + } + export type ImportId = string; + export type Integer = number; + export interface ListReportDefinitionsRequest { + /** + * The token value from a previous call to access the next page of results. + */ + nextToken?: Token; + /** + * The maximum number of results to return. + */ + maxResults?: Integer; + } + export interface ListReportDefinitionsResult { + /** + * The retrieved reports. + */ + reportDefinitions?: ReportDefinitionList; + /** + * The value of the next token, if it exists. Null if there are no more results. + */ + nextToken?: Token; + } + export interface PutReportDefinitionRequest { + /** + * Required. ID of the report. You can choose any valid string matching the pattern for the ID. + */ + reportId: ReportId; + /** + * Required. Description of the report. + */ + reportDescription: ReportDescription; + /** + * Required. The cadence to generate the report. + */ + reportFrequency: ReportFrequency; + /** + * Required. The format to use for the generated report. + */ + format: Format; + /** + * Required. Amazon Simple Storage Service (Amazon S3) location where Application Cost Profiler uploads the report. + */ + destinationS3Location: S3Location; + } + export interface PutReportDefinitionResult { + /** + * ID of the report. + */ + reportId?: ReportId; + } + export interface ReportDefinition { + /** + * The ID of the report. + */ + reportId?: ReportId; + /** + * Description of the report + */ + reportDescription?: ReportDescription; + /** + * The cadence at which the report is generated. + */ + reportFrequency?: ReportFrequency; + /** + * The format used for the generated reports. + */ + format?: Format; + /** + * The location in Amazon Simple Storage Service (Amazon S3) the reports should be saved to. + */ + destinationS3Location?: S3Location; + /** + * Timestamp (milliseconds) when this report definition was created. + */ + createdAt?: Timestamp; + /** + * Timestamp (milliseconds) when this report definition was last updated. + */ + lastUpdatedAt?: Timestamp; + } + export type ReportDefinitionList = ReportDefinition[]; + export type ReportDescription = string; + export type ReportFrequency = "MONTHLY"|"DAILY"|"ALL"|string; + export type ReportId = string; + export type S3Bucket = string; + export type S3BucketRegion = "ap-east-1"|"me-south-1"|"eu-south-1"|"af-south-1"|string; + export type S3Key = string; + export interface S3Location { + /** + * Name of the S3 bucket. + */ + bucket: S3Bucket; + /** + * Prefix for the location to write to. + */ + prefix: S3Prefix; + } + export type S3Prefix = string; + export interface SourceS3Location { + /** + * Name of the bucket. + */ + bucket: S3Bucket; + /** + * Key of the object. + */ + key: S3Key; + /** + * Region of the bucket. Only required for Regions that are disabled by default. For more infomration about Regions that are disabled by default, see Enabling a Region in the AWS General Reference guide. + */ + region?: S3BucketRegion; + } + export type Timestamp = Date; + export type Token = string; + export interface UpdateReportDefinitionRequest { + /** + * Required. ID of the report to update. + */ + reportId: ReportId; + /** + * Required. Description of the report. + */ + reportDescription: ReportDescription; + /** + * Required. The cadence to generate the report. + */ + reportFrequency: ReportFrequency; + /** + * Required. The format to use for the generated report. + */ + format: Format; + /** + * Required. Amazon Simple Storage Service (Amazon S3) location where Application Cost Profiler uploads the report. + */ + destinationS3Location: S3Location; + } + export interface UpdateReportDefinitionResult { + /** + * ID of the report. + */ + reportId?: ReportId; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2020-09-10"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the ApplicationCostProfiler client. + */ + export import Types = ApplicationCostProfiler; +} +export = ApplicationCostProfiler; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/applicationcostprofiler.js b/justdanceonline-main/node_modules/aws-sdk/clients/applicationcostprofiler.js new file mode 100644 index 0000000000000000000000000000000000000000..1afee6634873c0def224c3949cc68905fdcd0d53 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/applicationcostprofiler.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['applicationcostprofiler'] = {}; +AWS.ApplicationCostProfiler = Service.defineService('applicationcostprofiler', ['2020-09-10']); +Object.defineProperty(apiLoader.services['applicationcostprofiler'], '2020-09-10', { + get: function get() { + var model = require('../apis/applicationcostprofiler-2020-09-10.min.json'); + model.paginators = require('../apis/applicationcostprofiler-2020-09-10.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.ApplicationCostProfiler; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/applicationinsights.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/applicationinsights.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..4dd32383a97e2dc2c441acddeb604084bbdc6938 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/applicationinsights.d.ts @@ -0,0 +1,1243 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class ApplicationInsights extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: ApplicationInsights.Types.ClientConfiguration) + config: Config & ApplicationInsights.Types.ClientConfiguration; + /** + * Adds an application that is created from a resource group. + */ + createApplication(params: ApplicationInsights.Types.CreateApplicationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.CreateApplicationResponse) => void): Request; + /** + * Adds an application that is created from a resource group. + */ + createApplication(callback?: (err: AWSError, data: ApplicationInsights.Types.CreateApplicationResponse) => void): Request; + /** + * Creates a custom component by grouping similar standalone instances to monitor. + */ + createComponent(params: ApplicationInsights.Types.CreateComponentRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.CreateComponentResponse) => void): Request; + /** + * Creates a custom component by grouping similar standalone instances to monitor. + */ + createComponent(callback?: (err: AWSError, data: ApplicationInsights.Types.CreateComponentResponse) => void): Request; + /** + * Adds an log pattern to a LogPatternSet. + */ + createLogPattern(params: ApplicationInsights.Types.CreateLogPatternRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.CreateLogPatternResponse) => void): Request; + /** + * Adds an log pattern to a LogPatternSet. + */ + createLogPattern(callback?: (err: AWSError, data: ApplicationInsights.Types.CreateLogPatternResponse) => void): Request; + /** + * Removes the specified application from monitoring. Does not delete the application. + */ + deleteApplication(params: ApplicationInsights.Types.DeleteApplicationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DeleteApplicationResponse) => void): Request; + /** + * Removes the specified application from monitoring. Does not delete the application. + */ + deleteApplication(callback?: (err: AWSError, data: ApplicationInsights.Types.DeleteApplicationResponse) => void): Request; + /** + * Ungroups a custom component. When you ungroup custom components, all applicable monitors that are set up for the component are removed and the instances revert to their standalone status. + */ + deleteComponent(params: ApplicationInsights.Types.DeleteComponentRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DeleteComponentResponse) => void): Request; + /** + * Ungroups a custom component. When you ungroup custom components, all applicable monitors that are set up for the component are removed and the instances revert to their standalone status. + */ + deleteComponent(callback?: (err: AWSError, data: ApplicationInsights.Types.DeleteComponentResponse) => void): Request; + /** + * Removes the specified log pattern from a LogPatternSet. + */ + deleteLogPattern(params: ApplicationInsights.Types.DeleteLogPatternRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DeleteLogPatternResponse) => void): Request; + /** + * Removes the specified log pattern from a LogPatternSet. + */ + deleteLogPattern(callback?: (err: AWSError, data: ApplicationInsights.Types.DeleteLogPatternResponse) => void): Request; + /** + * Describes the application. + */ + describeApplication(params: ApplicationInsights.Types.DescribeApplicationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeApplicationResponse) => void): Request; + /** + * Describes the application. + */ + describeApplication(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeApplicationResponse) => void): Request; + /** + * Describes a component and lists the resources that are grouped together in a component. + */ + describeComponent(params: ApplicationInsights.Types.DescribeComponentRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeComponentResponse) => void): Request; + /** + * Describes a component and lists the resources that are grouped together in a component. + */ + describeComponent(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeComponentResponse) => void): Request; + /** + * Describes the monitoring configuration of the component. + */ + describeComponentConfiguration(params: ApplicationInsights.Types.DescribeComponentConfigurationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeComponentConfigurationResponse) => void): Request; + /** + * Describes the monitoring configuration of the component. + */ + describeComponentConfiguration(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeComponentConfigurationResponse) => void): Request; + /** + * Describes the recommended monitoring configuration of the component. + */ + describeComponentConfigurationRecommendation(params: ApplicationInsights.Types.DescribeComponentConfigurationRecommendationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeComponentConfigurationRecommendationResponse) => void): Request; + /** + * Describes the recommended monitoring configuration of the component. + */ + describeComponentConfigurationRecommendation(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeComponentConfigurationRecommendationResponse) => void): Request; + /** + * Describe a specific log pattern from a LogPatternSet. + */ + describeLogPattern(params: ApplicationInsights.Types.DescribeLogPatternRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeLogPatternResponse) => void): Request; + /** + * Describe a specific log pattern from a LogPatternSet. + */ + describeLogPattern(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeLogPatternResponse) => void): Request; + /** + * Describes an anomaly or error with the application. + */ + describeObservation(params: ApplicationInsights.Types.DescribeObservationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeObservationResponse) => void): Request; + /** + * Describes an anomaly or error with the application. + */ + describeObservation(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeObservationResponse) => void): Request; + /** + * Describes an application problem. + */ + describeProblem(params: ApplicationInsights.Types.DescribeProblemRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeProblemResponse) => void): Request; + /** + * Describes an application problem. + */ + describeProblem(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeProblemResponse) => void): Request; + /** + * Describes the anomalies or errors associated with the problem. + */ + describeProblemObservations(params: ApplicationInsights.Types.DescribeProblemObservationsRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeProblemObservationsResponse) => void): Request; + /** + * Describes the anomalies or errors associated with the problem. + */ + describeProblemObservations(callback?: (err: AWSError, data: ApplicationInsights.Types.DescribeProblemObservationsResponse) => void): Request; + /** + * Lists the IDs of the applications that you are monitoring. + */ + listApplications(params: ApplicationInsights.Types.ListApplicationsRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.ListApplicationsResponse) => void): Request; + /** + * Lists the IDs of the applications that you are monitoring. + */ + listApplications(callback?: (err: AWSError, data: ApplicationInsights.Types.ListApplicationsResponse) => void): Request; + /** + * Lists the auto-grouped, standalone, and custom components of the application. + */ + listComponents(params: ApplicationInsights.Types.ListComponentsRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.ListComponentsResponse) => void): Request; + /** + * Lists the auto-grouped, standalone, and custom components of the application. + */ + listComponents(callback?: (err: AWSError, data: ApplicationInsights.Types.ListComponentsResponse) => void): Request; + /** + * Lists the INFO, WARN, and ERROR events for periodic configuration updates performed by Application Insights. Examples of events represented are: INFO: creating a new alarm or updating an alarm threshold. WARN: alarm not created due to insufficient data points used to predict thresholds. ERROR: alarm not created due to permission errors or exceeding quotas. + */ + listConfigurationHistory(params: ApplicationInsights.Types.ListConfigurationHistoryRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.ListConfigurationHistoryResponse) => void): Request; + /** + * Lists the INFO, WARN, and ERROR events for periodic configuration updates performed by Application Insights. Examples of events represented are: INFO: creating a new alarm or updating an alarm threshold. WARN: alarm not created due to insufficient data points used to predict thresholds. ERROR: alarm not created due to permission errors or exceeding quotas. + */ + listConfigurationHistory(callback?: (err: AWSError, data: ApplicationInsights.Types.ListConfigurationHistoryResponse) => void): Request; + /** + * Lists the log pattern sets in the specific application. + */ + listLogPatternSets(params: ApplicationInsights.Types.ListLogPatternSetsRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.ListLogPatternSetsResponse) => void): Request; + /** + * Lists the log pattern sets in the specific application. + */ + listLogPatternSets(callback?: (err: AWSError, data: ApplicationInsights.Types.ListLogPatternSetsResponse) => void): Request; + /** + * Lists the log patterns in the specific log LogPatternSet. + */ + listLogPatterns(params: ApplicationInsights.Types.ListLogPatternsRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.ListLogPatternsResponse) => void): Request; + /** + * Lists the log patterns in the specific log LogPatternSet. + */ + listLogPatterns(callback?: (err: AWSError, data: ApplicationInsights.Types.ListLogPatternsResponse) => void): Request; + /** + * Lists the problems with your application. + */ + listProblems(params: ApplicationInsights.Types.ListProblemsRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.ListProblemsResponse) => void): Request; + /** + * Lists the problems with your application. + */ + listProblems(callback?: (err: AWSError, data: ApplicationInsights.Types.ListProblemsResponse) => void): Request; + /** + * Retrieve a list of the tags (keys and values) that are associated with a specified application. A tag is a label that you optionally define and associate with an application. Each tag consists of a required tag key and an optional associated tag value. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key. + */ + listTagsForResource(params: ApplicationInsights.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.ListTagsForResourceResponse) => void): Request; + /** + * Retrieve a list of the tags (keys and values) that are associated with a specified application. A tag is a label that you optionally define and associate with an application. Each tag consists of a required tag key and an optional associated tag value. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key. + */ + listTagsForResource(callback?: (err: AWSError, data: ApplicationInsights.Types.ListTagsForResourceResponse) => void): Request; + /** + * Add one or more tags (keys and values) to a specified application. A tag is a label that you optionally define and associate with an application. Tags can help you categorize and manage application in different ways, such as by purpose, owner, environment, or other criteria. Each tag consists of a required tag key and an associated tag value, both of which you define. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key. + */ + tagResource(params: ApplicationInsights.Types.TagResourceRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.TagResourceResponse) => void): Request; + /** + * Add one or more tags (keys and values) to a specified application. A tag is a label that you optionally define and associate with an application. Tags can help you categorize and manage application in different ways, such as by purpose, owner, environment, or other criteria. Each tag consists of a required tag key and an associated tag value, both of which you define. A tag key is a general label that acts as a category for more specific tag values. A tag value acts as a descriptor within a tag key. + */ + tagResource(callback?: (err: AWSError, data: ApplicationInsights.Types.TagResourceResponse) => void): Request; + /** + * Remove one or more tags (keys and values) from a specified application. + */ + untagResource(params: ApplicationInsights.Types.UntagResourceRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.UntagResourceResponse) => void): Request; + /** + * Remove one or more tags (keys and values) from a specified application. + */ + untagResource(callback?: (err: AWSError, data: ApplicationInsights.Types.UntagResourceResponse) => void): Request; + /** + * Updates the application. + */ + updateApplication(params: ApplicationInsights.Types.UpdateApplicationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateApplicationResponse) => void): Request; + /** + * Updates the application. + */ + updateApplication(callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateApplicationResponse) => void): Request; + /** + * Updates the custom component name and/or the list of resources that make up the component. + */ + updateComponent(params: ApplicationInsights.Types.UpdateComponentRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateComponentResponse) => void): Request; + /** + * Updates the custom component name and/or the list of resources that make up the component. + */ + updateComponent(callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateComponentResponse) => void): Request; + /** + * Updates the monitoring configurations for the component. The configuration input parameter is an escaped JSON of the configuration and should match the schema of what is returned by DescribeComponentConfigurationRecommendation. + */ + updateComponentConfiguration(params: ApplicationInsights.Types.UpdateComponentConfigurationRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateComponentConfigurationResponse) => void): Request; + /** + * Updates the monitoring configurations for the component. The configuration input parameter is an escaped JSON of the configuration and should match the schema of what is returned by DescribeComponentConfigurationRecommendation. + */ + updateComponentConfiguration(callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateComponentConfigurationResponse) => void): Request; + /** + * Adds a log pattern to a LogPatternSet. + */ + updateLogPattern(params: ApplicationInsights.Types.UpdateLogPatternRequest, callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateLogPatternResponse) => void): Request; + /** + * Adds a log pattern to a LogPatternSet. + */ + updateLogPattern(callback?: (err: AWSError, data: ApplicationInsights.Types.UpdateLogPatternResponse) => void): Request; +} +declare namespace ApplicationInsights { + export type AffectedResource = string; + export type AmazonResourceName = string; + export interface ApplicationComponent { + /** + * The name of the component. + */ + ComponentName?: ComponentName; + /** + * If logging is supported for the resource type, indicates whether the component has configured logs to be monitored. + */ + ComponentRemarks?: Remarks; + /** + * The resource type. Supported resource types include EC2 instances, Auto Scaling group, Classic ELB, Application ELB, and SQS Queue. + */ + ResourceType?: ResourceType; + /** + * The operating system of the component. + */ + OsType?: OsType; + /** + * The stack tier of the application component. + */ + Tier?: Tier; + /** + * Indicates whether the application component is monitored. + */ + Monitor?: Monitor; + /** + * Workloads detected in the application component. + */ + DetectedWorkload?: DetectedWorkload; + } + export type ApplicationComponentList = ApplicationComponent[]; + export interface ApplicationInfo { + /** + * The name of the resource group used for the application. + */ + ResourceGroupName?: ResourceGroupName; + /** + * The lifecycle of the application. + */ + LifeCycle?: LifeCycle; + /** + * The SNS topic provided to Application Insights that is associated to the created opsItems to receive SNS notifications for opsItem updates. + */ + OpsItemSNSTopicArn?: OpsItemSNSTopicArn; + /** + * Indicates whether Application Insights will create opsItems for any problem detected by Application Insights for an application. + */ + OpsCenterEnabled?: OpsCenterEnabled; + /** + * Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as instance terminated, failed deployment, and others. + */ + CWEMonitorEnabled?: CWEMonitorEnabled; + /** + * The issues on the user side that block Application Insights from successfully monitoring an application. Example remarks include: “Configuring application, detected 1 Errors, 3 Warnings” “Configuring application, detected 1 Unconfigured Components” + */ + Remarks?: Remarks; + } + export type ApplicationInfoList = ApplicationInfo[]; + export type CWEMonitorEnabled = boolean; + export type CloudWatchEventDetailType = string; + export type CloudWatchEventId = string; + export type CloudWatchEventSource = "EC2"|"CODE_DEPLOY"|"HEALTH"|"RDS"|string; + export type CodeDeployApplication = string; + export type CodeDeployDeploymentGroup = string; + export type CodeDeployDeploymentId = string; + export type CodeDeployInstanceGroupId = string; + export type CodeDeployState = string; + export type ComponentConfiguration = string; + export type ComponentName = string; + export interface ConfigurationEvent { + /** + * The resource monitored by Application Insights. + */ + MonitoredResourceARN?: ConfigurationEventMonitoredResourceARN; + /** + * The status of the configuration update event. Possible values include INFO, WARN, and ERROR. + */ + EventStatus?: ConfigurationEventStatus; + /** + * The resource type that Application Insights attempted to configure, for example, CLOUDWATCH_ALARM. + */ + EventResourceType?: ConfigurationEventResourceType; + /** + * The timestamp of the event. + */ + EventTime?: ConfigurationEventTime; + /** + * The details of the event in plain text. + */ + EventDetail?: ConfigurationEventDetail; + /** + * The name of the resource Application Insights attempted to configure. + */ + EventResourceName?: ConfigurationEventResourceName; + } + export type ConfigurationEventDetail = string; + export type ConfigurationEventList = ConfigurationEvent[]; + export type ConfigurationEventMonitoredResourceARN = string; + export type ConfigurationEventResourceName = string; + export type ConfigurationEventResourceType = "CLOUDWATCH_ALARM"|"CLOUDWATCH_LOG"|"CLOUDFORMATION"|"SSM_ASSOCIATION"|string; + export type ConfigurationEventStatus = "INFO"|"WARN"|"ERROR"|string; + export type ConfigurationEventTime = Date; + export interface CreateApplicationRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * When set to true, creates opsItems for any problems detected on an application. + */ + OpsCenterEnabled?: OpsCenterEnabled; + /** + * Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as instance terminated, failed deployment, and others. + */ + CWEMonitorEnabled?: CWEMonitorEnabled; + /** + * The SNS topic provided to Application Insights that is associated to the created opsItem. Allows you to receive notifications for updates to the opsItem. + */ + OpsItemSNSTopicArn?: OpsItemSNSTopicArn; + /** + * List of tags to add to the application. tag key (Key) and an associated tag value (Value). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters. + */ + Tags?: TagList; + } + export interface CreateApplicationResponse { + /** + * Information about the application. + */ + ApplicationInfo?: ApplicationInfo; + } + export interface CreateComponentRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the component. + */ + ComponentName: CustomComponentName; + /** + * The list of resource ARNs that belong to the component. + */ + ResourceList: ResourceList; + } + export interface CreateComponentResponse { + } + export interface CreateLogPatternRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the log pattern set. + */ + PatternSetName: LogPatternSetName; + /** + * The name of the log pattern. + */ + PatternName: LogPatternName; + /** + * The log pattern. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported. + */ + Pattern: LogPatternRegex; + /** + * Rank of the log pattern. Must be a value between 1 and 1,000,000. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank 1 will be the first to get matched to a log line. A pattern of rank 1,000,000 will be last to get matched. When you configure custom log patterns from the console, a Low severity pattern translates to a 750,000 rank. A Medium severity pattern translates to a 500,000 rank. And a High severity pattern translates to a 250,000 rank. Rank values less than 1 or greater than 1,000,000 are reserved for AWS-provided patterns. + */ + Rank: LogPatternRank; + } + export interface CreateLogPatternResponse { + /** + * The successfully created log pattern. + */ + LogPattern?: LogPattern; + /** + * The name of the resource group. + */ + ResourceGroupName?: ResourceGroupName; + } + export type CustomComponentName = string; + export interface DeleteApplicationRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + } + export interface DeleteApplicationResponse { + } + export interface DeleteComponentRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the component. + */ + ComponentName: CustomComponentName; + } + export interface DeleteComponentResponse { + } + export interface DeleteLogPatternRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the log pattern set. + */ + PatternSetName: LogPatternSetName; + /** + * The name of the log pattern. + */ + PatternName: LogPatternName; + } + export interface DeleteLogPatternResponse { + } + export interface DescribeApplicationRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + } + export interface DescribeApplicationResponse { + /** + * Information about the application. + */ + ApplicationInfo?: ApplicationInfo; + } + export interface DescribeComponentConfigurationRecommendationRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the component. + */ + ComponentName: ComponentName; + /** + * The tier of the application component. Supported tiers include DOT_NET_CORE, DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT. + */ + Tier: Tier; + } + export interface DescribeComponentConfigurationRecommendationResponse { + /** + * The recommended configuration settings of the component. The value is the escaped JSON of the configuration. + */ + ComponentConfiguration?: ComponentConfiguration; + } + export interface DescribeComponentConfigurationRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the component. + */ + ComponentName: ComponentName; + } + export interface DescribeComponentConfigurationResponse { + /** + * Indicates whether the application component is monitored. + */ + Monitor?: Monitor; + /** + * The tier of the application component. Supported tiers include DOT_NET_CORE, DOT_NET_WORKER, DOT_NET_WEB, SQL_SERVER, and DEFAULT + */ + Tier?: Tier; + /** + * The configuration settings of the component. The value is the escaped JSON of the configuration. + */ + ComponentConfiguration?: ComponentConfiguration; + } + export interface DescribeComponentRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the component. + */ + ComponentName: ComponentName; + } + export interface DescribeComponentResponse { + ApplicationComponent?: ApplicationComponent; + /** + * The list of resource ARNs that belong to the component. + */ + ResourceList?: ResourceList; + } + export interface DescribeLogPatternRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the log pattern set. + */ + PatternSetName: LogPatternSetName; + /** + * The name of the log pattern. + */ + PatternName: LogPatternName; + } + export interface DescribeLogPatternResponse { + /** + * The name of the resource group. + */ + ResourceGroupName?: ResourceGroupName; + /** + * The successfully created log pattern. + */ + LogPattern?: LogPattern; + } + export interface DescribeObservationRequest { + /** + * The ID of the observation. + */ + ObservationId: ObservationId; + } + export interface DescribeObservationResponse { + /** + * Information about the observation. + */ + Observation?: Observation; + } + export interface DescribeProblemObservationsRequest { + /** + * The ID of the problem. + */ + ProblemId: ProblemId; + } + export interface DescribeProblemObservationsResponse { + /** + * Observations related to the problem. + */ + RelatedObservations?: RelatedObservations; + } + export interface DescribeProblemRequest { + /** + * The ID of the problem. + */ + ProblemId: ProblemId; + } + export interface DescribeProblemResponse { + /** + * Information about the problem. + */ + Problem?: Problem; + } + export type DetectedWorkload = {[key: string]: WorkloadMetaData}; + export type EbsCause = string; + export type EbsEvent = string; + export type EbsRequestId = string; + export type EbsResult = string; + export type Ec2State = string; + export type EndTime = Date; + export type Feedback = {[key: string]: FeedbackValue}; + export type FeedbackKey = "INSIGHTS_FEEDBACK"|string; + export type FeedbackValue = "NOT_SPECIFIED"|"USEFUL"|"NOT_USEFUL"|string; + export type HealthEventArn = string; + export type HealthEventDescription = string; + export type HealthEventTypeCategory = string; + export type HealthEventTypeCode = string; + export type HealthService = string; + export type Insights = string; + export type LifeCycle = string; + export type LineTime = Date; + export interface ListApplicationsRequest { + /** + * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. + */ + MaxResults?: MaxEntities; + /** + * The token to request the next page of results. + */ + NextToken?: PaginationToken; + } + export interface ListApplicationsResponse { + /** + * The list of applications. + */ + ApplicationInfoList?: ApplicationInfoList; + /** + * The token used to retrieve the next page of results. This value is null when there are no more results to return. + */ + NextToken?: PaginationToken; + } + export interface ListComponentsRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. + */ + MaxResults?: MaxEntities; + /** + * The token to request the next page of results. + */ + NextToken?: PaginationToken; + } + export interface ListComponentsResponse { + /** + * The list of application components. + */ + ApplicationComponentList?: ApplicationComponentList; + /** + * The token to request the next page of results. + */ + NextToken?: PaginationToken; + } + export interface ListConfigurationHistoryRequest { + /** + * Resource group to which the application belongs. + */ + ResourceGroupName?: ResourceGroupName; + /** + * The start time of the event. + */ + StartTime?: StartTime; + /** + * The end time of the event. + */ + EndTime?: EndTime; + /** + * The status of the configuration update event. Possible values include INFO, WARN, and ERROR. + */ + EventStatus?: ConfigurationEventStatus; + /** + * The maximum number of results returned by ListConfigurationHistory in paginated output. When this parameter is used, ListConfigurationHistory returns only MaxResults in a single page along with a NextToken response element. The remaining results of the initial request can be seen by sending another ListConfigurationHistory request with the returned NextToken value. If this parameter is not used, then ListConfigurationHistory returns all results. + */ + MaxResults?: MaxEntities; + /** + * The NextToken value returned from a previous paginated ListConfigurationHistory request where MaxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the NextToken value. This value is null when there are no more results to return. + */ + NextToken?: PaginationToken; + } + export interface ListConfigurationHistoryResponse { + /** + * The list of configuration events and their corresponding details. + */ + EventList?: ConfigurationEventList; + /** + * The NextToken value to include in a future ListConfigurationHistory request. When the results of a ListConfigurationHistory request exceed MaxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + NextToken?: PaginationToken; + } + export interface ListLogPatternSetsRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. + */ + MaxResults?: MaxEntities; + /** + * The token to request the next page of results. + */ + NextToken?: PaginationToken; + } + export interface ListLogPatternSetsResponse { + /** + * The name of the resource group. + */ + ResourceGroupName?: ResourceGroupName; + /** + * The list of log pattern sets. + */ + LogPatternSets?: LogPatternSetList; + /** + * The token used to retrieve the next page of results. This value is null when there are no more results to return. + */ + NextToken?: PaginationToken; + } + export interface ListLogPatternsRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the log pattern set. + */ + PatternSetName?: LogPatternSetName; + /** + * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. + */ + MaxResults?: MaxEntities; + /** + * The token to request the next page of results. + */ + NextToken?: PaginationToken; + } + export interface ListLogPatternsResponse { + /** + * The name of the resource group. + */ + ResourceGroupName?: ResourceGroupName; + /** + * The list of log patterns. + */ + LogPatterns?: LogPatternList; + /** + * The token used to retrieve the next page of results. This value is null when there are no more results to return. + */ + NextToken?: PaginationToken; + } + export interface ListProblemsRequest { + /** + * The name of the resource group. + */ + ResourceGroupName?: ResourceGroupName; + /** + * The time when the problem was detected, in epoch seconds. If you don't specify a time frame for the request, problems within the past seven days are returned. + */ + StartTime?: StartTime; + /** + * The time when the problem ended, in epoch seconds. If not specified, problems within the past seven days are returned. + */ + EndTime?: EndTime; + /** + * The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. + */ + MaxResults?: MaxEntities; + /** + * The token to request the next page of results. + */ + NextToken?: PaginationToken; + } + export interface ListProblemsResponse { + /** + * The list of problems. + */ + ProblemList?: ProblemList; + /** + * The token used to retrieve the next page of results. This value is null when there are no more results to return. + */ + NextToken?: PaginationToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the application that you want to retrieve tag information for. + */ + ResourceARN: AmazonResourceName; + } + export interface ListTagsForResourceResponse { + /** + * An array that lists all the tags that are associated with the application. Each tag consists of a required tag key (Key) and an associated tag value (Value). + */ + Tags?: TagList; + } + export type LogFilter = "ERROR"|"WARN"|"INFO"|string; + export type LogGroup = string; + export interface LogPattern { + /** + * The name of the log pattern. A log pattern name can contain as many as 30 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore. + */ + PatternSetName?: LogPatternSetName; + /** + * The name of the log pattern. A log pattern name can contain as many as 50 characters, and it cannot be empty. The characters can be Unicode letters, digits, or one of the following symbols: period, dash, underscore. + */ + PatternName?: LogPatternName; + /** + * A regular expression that defines the log pattern. A log pattern can contain as many as 50 characters, and it cannot be empty. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported. + */ + Pattern?: LogPatternRegex; + /** + * Rank of the log pattern. Must be a value between 1 and 1,000,000. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank 1 will be the first to get matched to a log line. A pattern of rank 1,000,000 will be last to get matched. When you configure custom log patterns from the console, a Low severity pattern translates to a 750,000 rank. A Medium severity pattern translates to a 500,000 rank. And a High severity pattern translates to a 250,000 rank. Rank values less than 1 or greater than 1,000,000 are reserved for AWS-provided patterns. + */ + Rank?: LogPatternRank; + } + export type LogPatternList = LogPattern[]; + export type LogPatternName = string; + export type LogPatternRank = number; + export type LogPatternRegex = string; + export type LogPatternSetList = LogPatternSetName[]; + export type LogPatternSetName = string; + export type LogText = string; + export type MaxEntities = number; + export type MetaDataKey = string; + export type MetaDataValue = string; + export type MetricName = string; + export type MetricNamespace = string; + export type Monitor = boolean; + export interface Observation { + /** + * The ID of the observation type. + */ + Id?: ObservationId; + /** + * The time when the observation was first detected, in epoch seconds. + */ + StartTime?: StartTime; + /** + * The time when the observation ended, in epoch seconds. + */ + EndTime?: EndTime; + /** + * The source type of the observation. + */ + SourceType?: SourceType; + /** + * The source resource ARN of the observation. + */ + SourceARN?: SourceARN; + /** + * The log group name. + */ + LogGroup?: LogGroup; + /** + * The timestamp in the CloudWatch Logs that specifies when the matched line occurred. + */ + LineTime?: LineTime; + /** + * The log text of the observation. + */ + LogText?: LogText; + /** + * The log filter of the observation. + */ + LogFilter?: LogFilter; + /** + * The namespace of the observation metric. + */ + MetricNamespace?: MetricNamespace; + /** + * The name of the observation metric. + */ + MetricName?: MetricName; + /** + * The unit of the source observation metric. + */ + Unit?: Unit; + /** + * The value of the source observation metric. + */ + Value?: Value; + /** + * The ID of the CloudWatch Event-based observation related to the detected problem. + */ + CloudWatchEventId?: CloudWatchEventId; + /** + * The source of the CloudWatch Event. + */ + CloudWatchEventSource?: CloudWatchEventSource; + /** + * The detail type of the CloudWatch Event-based observation, for example, EC2 Instance State-change Notification. + */ + CloudWatchEventDetailType?: CloudWatchEventDetailType; + /** + * The Amazon Resource Name (ARN) of the AWS Health Event-based observation. + */ + HealthEventArn?: HealthEventArn; + /** + * The service to which the AWS Health Event belongs, such as EC2. + */ + HealthService?: HealthService; + /** + * The type of the AWS Health event, for example, AWS_EC2_POWER_CONNECTIVITY_ISSUE. + */ + HealthEventTypeCode?: HealthEventTypeCode; + /** + * The category of the AWS Health event, such as issue. + */ + HealthEventTypeCategory?: HealthEventTypeCategory; + /** + * The description of the AWS Health event provided by the service, such as Amazon EC2. + */ + HealthEventDescription?: HealthEventDescription; + /** + * The deployment ID of the CodeDeploy-based observation related to the detected problem. + */ + CodeDeployDeploymentId?: CodeDeployDeploymentId; + /** + * The deployment group to which the CodeDeploy deployment belongs. + */ + CodeDeployDeploymentGroup?: CodeDeployDeploymentGroup; + /** + * The status of the CodeDeploy deployment, for example SUCCESS or FAILURE. + */ + CodeDeployState?: CodeDeployState; + /** + * The CodeDeploy application to which the deployment belongs. + */ + CodeDeployApplication?: CodeDeployApplication; + /** + * The instance group to which the CodeDeploy instance belongs. + */ + CodeDeployInstanceGroupId?: CodeDeployInstanceGroupId; + /** + * The state of the instance, such as STOPPING or TERMINATING. + */ + Ec2State?: Ec2State; + /** + * The category of an RDS event. + */ + RdsEventCategories?: RdsEventCategories; + /** + * The message of an RDS event. + */ + RdsEventMessage?: RdsEventMessage; + /** + * The name of the S3 CloudWatch Event-based observation. + */ + S3EventName?: S3EventName; + /** + * The Amazon Resource Name (ARN) of the step function execution-based observation. + */ + StatesExecutionArn?: StatesExecutionArn; + /** + * The Amazon Resource Name (ARN) of the step function-based observation. + */ + StatesArn?: StatesArn; + /** + * The status of the step function-related observation. + */ + StatesStatus?: StatesStatus; + /** + * The input to the step function-based observation. + */ + StatesInput?: StatesInput; + /** + * The type of EBS CloudWatch event, such as createVolume, deleteVolume or attachVolume. + */ + EbsEvent?: EbsEvent; + /** + * The result of an EBS CloudWatch event, such as failed or succeeded. + */ + EbsResult?: EbsResult; + /** + * The cause of an EBS CloudWatch event. + */ + EbsCause?: EbsCause; + /** + * The request ID of an EBS CloudWatch event. + */ + EbsRequestId?: EbsRequestId; + /** + * The X-Ray request fault percentage for this node. + */ + XRayFaultPercent?: XRayFaultPercent; + /** + * The X-Ray request throttle percentage for this node. + */ + XRayThrottlePercent?: XRayThrottlePercent; + /** + * The X-Ray request error percentage for this node. + */ + XRayErrorPercent?: XRayErrorPercent; + /** + * The X-Ray request count for this node. + */ + XRayRequestCount?: XRayRequestCount; + /** + * The X-Ray node request average latency for this node. + */ + XRayRequestAverageLatency?: XRayRequestAverageLatency; + /** + * The name of the X-Ray node. + */ + XRayNodeName?: XRayNodeName; + /** + * The type of the X-Ray node. + */ + XRayNodeType?: XRayNodeType; + } + export type ObservationId = string; + export type ObservationList = Observation[]; + export type OpsCenterEnabled = boolean; + export type OpsItemSNSTopicArn = string; + export type OsType = "WINDOWS"|"LINUX"|string; + export type PaginationToken = string; + export interface Problem { + /** + * The ID of the problem. + */ + Id?: ProblemId; + /** + * The name of the problem. + */ + Title?: Title; + /** + * A detailed analysis of the problem using machine learning. + */ + Insights?: Insights; + /** + * The status of the problem. + */ + Status?: Status; + /** + * The resource affected by the problem. + */ + AffectedResource?: AffectedResource; + /** + * The time when the problem started, in epoch seconds. + */ + StartTime?: StartTime; + /** + * The time when the problem ended, in epoch seconds. + */ + EndTime?: EndTime; + /** + * A measure of the level of impact of the problem. + */ + SeverityLevel?: SeverityLevel; + /** + * The name of the resource group affected by the problem. + */ + ResourceGroupName?: ResourceGroupName; + /** + * Feedback provided by the user about the problem. + */ + Feedback?: Feedback; + } + export type ProblemId = string; + export type ProblemList = Problem[]; + export type RdsEventCategories = string; + export type RdsEventMessage = string; + export interface RelatedObservations { + /** + * The list of observations related to the problem. + */ + ObservationList?: ObservationList; + } + export type Remarks = string; + export type RemoveSNSTopic = boolean; + export type ResourceARN = string; + export type ResourceGroupName = string; + export type ResourceList = ResourceARN[]; + export type ResourceType = string; + export type S3EventName = string; + export type SeverityLevel = "Low"|"Medium"|"High"|string; + export type SourceARN = string; + export type SourceType = string; + export type StartTime = Date; + export type StatesArn = string; + export type StatesExecutionArn = string; + export type StatesInput = string; + export type StatesStatus = string; + export type Status = "IGNORE"|"RESOLVED"|"PENDING"|string; + export interface Tag { + /** + * One part of a key-value pair that defines a tag. The maximum length of a tag key is 128 characters. The minimum length is 1 character. + */ + Key: TagKey; + /** + * The optional part of a key-value pair that defines a tag. The maximum length of a tag value is 256 characters. The minimum length is 0 characters. If you don't want an application to have a specific tag value, don't specify a value for this parameter. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the application that you want to add one or more tags to. + */ + ResourceARN: AmazonResourceName; + /** + * A list of tags that to add to the application. A tag consists of a required tag key (Key) and an associated tag value (Value). The maximum length of a tag key is 128 characters. The maximum length of a tag value is 256 characters. + */ + Tags: TagList; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type Tier = "CUSTOM"|"DEFAULT"|"DOT_NET_CORE"|"DOT_NET_WORKER"|"DOT_NET_WEB_TIER"|"DOT_NET_WEB"|"SQL_SERVER"|"SQL_SERVER_ALWAYSON_AVAILABILITY_GROUP"|"MYSQL"|"POSTGRESQL"|"JAVA_JMX"|"ORACLE"|string; + export type Title = string; + export type Unit = string; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the application that you want to remove one or more tags from. + */ + ResourceARN: AmazonResourceName; + /** + * The tags (tag keys) that you want to remove from the resource. When you specify a tag key, the action removes both that key and its associated tag value. To remove more than one tag from the application, append the TagKeys parameter and argument for each additional tag to remove, separated by an ampersand. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateApplicationRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * When set to true, creates opsItems for any problems detected on an application. + */ + OpsCenterEnabled?: OpsCenterEnabled; + /** + * Indicates whether Application Insights can listen to CloudWatch events for the application resources, such as instance terminated, failed deployment, and others. + */ + CWEMonitorEnabled?: CWEMonitorEnabled; + /** + * The SNS topic provided to Application Insights that is associated to the created opsItem. Allows you to receive notifications for updates to the opsItem. + */ + OpsItemSNSTopicArn?: OpsItemSNSTopicArn; + /** + * Disassociates the SNS topic from the opsItem created for detected problems. + */ + RemoveSNSTopic?: RemoveSNSTopic; + } + export interface UpdateApplicationResponse { + /** + * Information about the application. + */ + ApplicationInfo?: ApplicationInfo; + } + export interface UpdateComponentConfigurationRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the component. + */ + ComponentName: ComponentName; + /** + * Indicates whether the application component is monitored. + */ + Monitor?: Monitor; + /** + * The tier of the application component. Supported tiers include DOT_NET_WORKER, DOT_NET_WEB, DOT_NET_CORE, SQL_SERVER, and DEFAULT. + */ + Tier?: Tier; + /** + * The configuration settings of the component. The value is the escaped JSON of the configuration. For more information about the JSON format, see Working with JSON. You can send a request to DescribeComponentConfigurationRecommendation to see the recommended configuration for a component. For the complete format of the component configuration file, see Component Configuration. + */ + ComponentConfiguration?: ComponentConfiguration; + } + export interface UpdateComponentConfigurationResponse { + } + export interface UpdateComponentRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the component. + */ + ComponentName: CustomComponentName; + /** + * The new name of the component. + */ + NewComponentName?: CustomComponentName; + /** + * The list of resource ARNs that belong to the component. + */ + ResourceList?: ResourceList; + } + export interface UpdateComponentResponse { + } + export interface UpdateLogPatternRequest { + /** + * The name of the resource group. + */ + ResourceGroupName: ResourceGroupName; + /** + * The name of the log pattern set. + */ + PatternSetName: LogPatternSetName; + /** + * The name of the log pattern. + */ + PatternName: LogPatternName; + /** + * The log pattern. The pattern must be DFA compatible. Patterns that utilize forward lookahead or backreference constructions are not supported. + */ + Pattern?: LogPatternRegex; + /** + * Rank of the log pattern. Must be a value between 1 and 1,000,000. The patterns are sorted by rank, so we recommend that you set your highest priority patterns with the lowest rank. A pattern of rank 1 will be the first to get matched to a log line. A pattern of rank 1,000,000 will be last to get matched. When you configure custom log patterns from the console, a Low severity pattern translates to a 750,000 rank. A Medium severity pattern translates to a 500,000 rank. And a High severity pattern translates to a 250,000 rank. Rank values less than 1 or greater than 1,000,000 are reserved for AWS-provided patterns. + */ + Rank?: LogPatternRank; + } + export interface UpdateLogPatternResponse { + /** + * The name of the resource group. + */ + ResourceGroupName?: ResourceGroupName; + /** + * The successfully created log pattern. + */ + LogPattern?: LogPattern; + } + export type Value = number; + export type WorkloadMetaData = {[key: string]: MetaDataValue}; + export type XRayErrorPercent = number; + export type XRayFaultPercent = number; + export type XRayNodeName = string; + export type XRayNodeType = string; + export type XRayRequestAverageLatency = number; + export type XRayRequestCount = number; + export type XRayThrottlePercent = number; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-11-25"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the ApplicationInsights client. + */ + export import Types = ApplicationInsights; +} +export = ApplicationInsights; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/applicationinsights.js b/justdanceonline-main/node_modules/aws-sdk/clients/applicationinsights.js new file mode 100644 index 0000000000000000000000000000000000000000..3a117856a40a4d67a87548ea3d60d001717eca3f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/applicationinsights.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['applicationinsights'] = {}; +AWS.ApplicationInsights = Service.defineService('applicationinsights', ['2018-11-25']); +Object.defineProperty(apiLoader.services['applicationinsights'], '2018-11-25', { + get: function get() { + var model = require('../apis/application-insights-2018-11-25.min.json'); + model.paginators = require('../apis/application-insights-2018-11-25.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.ApplicationInsights; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appmesh.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/appmesh.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1a8f44585e13e50c7c0e6fcedfb19e994196c132 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appmesh.d.ts @@ -0,0 +1,3115 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AppMesh extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AppMesh.Types.ClientConfiguration) + config: Config & AppMesh.Types.ClientConfiguration; + /** + * Creates a gateway route. A gateway route is attached to a virtual gateway and routes traffic to an existing virtual service. If a route matches a request, it can distribute traffic to a target virtual service. For more information about gateway routes, see Gateway routes. + */ + createGatewayRoute(params: AppMesh.Types.CreateGatewayRouteInput, callback?: (err: AWSError, data: AppMesh.Types.CreateGatewayRouteOutput) => void): Request; + /** + * Creates a gateway route. A gateway route is attached to a virtual gateway and routes traffic to an existing virtual service. If a route matches a request, it can distribute traffic to a target virtual service. For more information about gateway routes, see Gateway routes. + */ + createGatewayRoute(callback?: (err: AWSError, data: AppMesh.Types.CreateGatewayRouteOutput) => void): Request; + /** + * Creates a service mesh. A service mesh is a logical boundary for network traffic between services that are represented by resources within the mesh. After you create your service mesh, you can create virtual services, virtual nodes, virtual routers, and routes to distribute traffic between the applications in your mesh. For more information about service meshes, see Service meshes. + */ + createMesh(params: AppMesh.Types.CreateMeshInput, callback?: (err: AWSError, data: AppMesh.Types.CreateMeshOutput) => void): Request; + /** + * Creates a service mesh. A service mesh is a logical boundary for network traffic between services that are represented by resources within the mesh. After you create your service mesh, you can create virtual services, virtual nodes, virtual routers, and routes to distribute traffic between the applications in your mesh. For more information about service meshes, see Service meshes. + */ + createMesh(callback?: (err: AWSError, data: AppMesh.Types.CreateMeshOutput) => void): Request; + /** + * Creates a route that is associated with a virtual router. You can route several different protocols and define a retry policy for a route. Traffic can be routed to one or more virtual nodes. For more information about routes, see Routes. + */ + createRoute(params: AppMesh.Types.CreateRouteInput, callback?: (err: AWSError, data: AppMesh.Types.CreateRouteOutput) => void): Request; + /** + * Creates a route that is associated with a virtual router. You can route several different protocols and define a retry policy for a route. Traffic can be routed to one or more virtual nodes. For more information about routes, see Routes. + */ + createRoute(callback?: (err: AWSError, data: AppMesh.Types.CreateRouteOutput) => void): Request; + /** + * Creates a virtual gateway. A virtual gateway allows resources outside your mesh to communicate to resources that are inside your mesh. The virtual gateway represents an Envoy proxy running in an Amazon ECS task, in a Kubernetes service, or on an Amazon EC2 instance. Unlike a virtual node, which represents an Envoy running with an application, a virtual gateway represents Envoy deployed by itself. For more information about virtual gateways, see Virtual gateways. + */ + createVirtualGateway(params: AppMesh.Types.CreateVirtualGatewayInput, callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualGatewayOutput) => void): Request; + /** + * Creates a virtual gateway. A virtual gateway allows resources outside your mesh to communicate to resources that are inside your mesh. The virtual gateway represents an Envoy proxy running in an Amazon ECS task, in a Kubernetes service, or on an Amazon EC2 instance. Unlike a virtual node, which represents an Envoy running with an application, a virtual gateway represents Envoy deployed by itself. For more information about virtual gateways, see Virtual gateways. + */ + createVirtualGateway(callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualGatewayOutput) => void): Request; + /** + * Creates a virtual node within a service mesh. A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS service or a Kubernetes deployment. When you create a virtual node, you can specify the service discovery information for your task group, and whether the proxy running in a task group will communicate with other proxies using Transport Layer Security (TLS). You define a listener for any inbound traffic that your virtual node expects. Any virtual service that your virtual node expects to communicate to is specified as a backend. The response metadata for your new virtual node contains the arn that is associated with the virtual node. Set this value to the full ARN; for example, arn:aws:appmesh:us-west-2:123456789012:myMesh/default/virtualNode/myApp) as the APPMESH_RESOURCE_ARN environment variable for your task group's Envoy proxy container in your task definition or pod spec. This is then mapped to the node.id and node.cluster Envoy parameters. By default, App Mesh uses the name of the resource you specified in APPMESH_RESOURCE_ARN when Envoy is referring to itself in metrics and traces. You can override this behavior by setting the APPMESH_RESOURCE_CLUSTER environment variable with your own name. For more information about virtual nodes, see Virtual nodes. You must be using 1.15.0 or later of the Envoy image when setting these variables. For more information aboutApp Mesh Envoy variables, see Envoy image in the AWS App Mesh User Guide. + */ + createVirtualNode(params: AppMesh.Types.CreateVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualNodeOutput) => void): Request; + /** + * Creates a virtual node within a service mesh. A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS service or a Kubernetes deployment. When you create a virtual node, you can specify the service discovery information for your task group, and whether the proxy running in a task group will communicate with other proxies using Transport Layer Security (TLS). You define a listener for any inbound traffic that your virtual node expects. Any virtual service that your virtual node expects to communicate to is specified as a backend. The response metadata for your new virtual node contains the arn that is associated with the virtual node. Set this value to the full ARN; for example, arn:aws:appmesh:us-west-2:123456789012:myMesh/default/virtualNode/myApp) as the APPMESH_RESOURCE_ARN environment variable for your task group's Envoy proxy container in your task definition or pod spec. This is then mapped to the node.id and node.cluster Envoy parameters. By default, App Mesh uses the name of the resource you specified in APPMESH_RESOURCE_ARN when Envoy is referring to itself in metrics and traces. You can override this behavior by setting the APPMESH_RESOURCE_CLUSTER environment variable with your own name. For more information about virtual nodes, see Virtual nodes. You must be using 1.15.0 or later of the Envoy image when setting these variables. For more information aboutApp Mesh Envoy variables, see Envoy image in the AWS App Mesh User Guide. + */ + createVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualNodeOutput) => void): Request; + /** + * Creates a virtual router within a service mesh. Specify a listener for any inbound traffic that your virtual router receives. Create a virtual router for each protocol and port that you need to route. Virtual routers handle traffic for one or more virtual services within your mesh. After you create your virtual router, create and associate routes for your virtual router that direct incoming requests to different virtual nodes. For more information about virtual routers, see Virtual routers. + */ + createVirtualRouter(params: AppMesh.Types.CreateVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualRouterOutput) => void): Request; + /** + * Creates a virtual router within a service mesh. Specify a listener for any inbound traffic that your virtual router receives. Create a virtual router for each protocol and port that you need to route. Virtual routers handle traffic for one or more virtual services within your mesh. After you create your virtual router, create and associate routes for your virtual router that direct incoming requests to different virtual nodes. For more information about virtual routers, see Virtual routers. + */ + createVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualRouterOutput) => void): Request; + /** + * Creates a virtual service within a service mesh. A virtual service is an abstraction of a real service that is provided by a virtual node directly or indirectly by means of a virtual router. Dependent services call your virtual service by its virtualServiceName, and those requests are routed to the virtual node or virtual router that is specified as the provider for the virtual service. For more information about virtual services, see Virtual services. + */ + createVirtualService(params: AppMesh.Types.CreateVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualServiceOutput) => void): Request; + /** + * Creates a virtual service within a service mesh. A virtual service is an abstraction of a real service that is provided by a virtual node directly or indirectly by means of a virtual router. Dependent services call your virtual service by its virtualServiceName, and those requests are routed to the virtual node or virtual router that is specified as the provider for the virtual service. For more information about virtual services, see Virtual services. + */ + createVirtualService(callback?: (err: AWSError, data: AppMesh.Types.CreateVirtualServiceOutput) => void): Request; + /** + * Deletes an existing gateway route. + */ + deleteGatewayRoute(params: AppMesh.Types.DeleteGatewayRouteInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteGatewayRouteOutput) => void): Request; + /** + * Deletes an existing gateway route. + */ + deleteGatewayRoute(callback?: (err: AWSError, data: AppMesh.Types.DeleteGatewayRouteOutput) => void): Request; + /** + * Deletes an existing service mesh. You must delete all resources (virtual services, routes, virtual routers, and virtual nodes) in the service mesh before you can delete the mesh itself. + */ + deleteMesh(params: AppMesh.Types.DeleteMeshInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteMeshOutput) => void): Request; + /** + * Deletes an existing service mesh. You must delete all resources (virtual services, routes, virtual routers, and virtual nodes) in the service mesh before you can delete the mesh itself. + */ + deleteMesh(callback?: (err: AWSError, data: AppMesh.Types.DeleteMeshOutput) => void): Request; + /** + * Deletes an existing route. + */ + deleteRoute(params: AppMesh.Types.DeleteRouteInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteRouteOutput) => void): Request; + /** + * Deletes an existing route. + */ + deleteRoute(callback?: (err: AWSError, data: AppMesh.Types.DeleteRouteOutput) => void): Request; + /** + * Deletes an existing virtual gateway. You cannot delete a virtual gateway if any gateway routes are associated to it. + */ + deleteVirtualGateway(params: AppMesh.Types.DeleteVirtualGatewayInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualGatewayOutput) => void): Request; + /** + * Deletes an existing virtual gateway. You cannot delete a virtual gateway if any gateway routes are associated to it. + */ + deleteVirtualGateway(callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualGatewayOutput) => void): Request; + /** + * Deletes an existing virtual node. You must delete any virtual services that list a virtual node as a service provider before you can delete the virtual node itself. + */ + deleteVirtualNode(params: AppMesh.Types.DeleteVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualNodeOutput) => void): Request; + /** + * Deletes an existing virtual node. You must delete any virtual services that list a virtual node as a service provider before you can delete the virtual node itself. + */ + deleteVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualNodeOutput) => void): Request; + /** + * Deletes an existing virtual router. You must delete any routes associated with the virtual router before you can delete the router itself. + */ + deleteVirtualRouter(params: AppMesh.Types.DeleteVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualRouterOutput) => void): Request; + /** + * Deletes an existing virtual router. You must delete any routes associated with the virtual router before you can delete the router itself. + */ + deleteVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualRouterOutput) => void): Request; + /** + * Deletes an existing virtual service. + */ + deleteVirtualService(params: AppMesh.Types.DeleteVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualServiceOutput) => void): Request; + /** + * Deletes an existing virtual service. + */ + deleteVirtualService(callback?: (err: AWSError, data: AppMesh.Types.DeleteVirtualServiceOutput) => void): Request; + /** + * Describes an existing gateway route. + */ + describeGatewayRoute(params: AppMesh.Types.DescribeGatewayRouteInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeGatewayRouteOutput) => void): Request; + /** + * Describes an existing gateway route. + */ + describeGatewayRoute(callback?: (err: AWSError, data: AppMesh.Types.DescribeGatewayRouteOutput) => void): Request; + /** + * Describes an existing service mesh. + */ + describeMesh(params: AppMesh.Types.DescribeMeshInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeMeshOutput) => void): Request; + /** + * Describes an existing service mesh. + */ + describeMesh(callback?: (err: AWSError, data: AppMesh.Types.DescribeMeshOutput) => void): Request; + /** + * Describes an existing route. + */ + describeRoute(params: AppMesh.Types.DescribeRouteInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeRouteOutput) => void): Request; + /** + * Describes an existing route. + */ + describeRoute(callback?: (err: AWSError, data: AppMesh.Types.DescribeRouteOutput) => void): Request; + /** + * Describes an existing virtual gateway. + */ + describeVirtualGateway(params: AppMesh.Types.DescribeVirtualGatewayInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualGatewayOutput) => void): Request; + /** + * Describes an existing virtual gateway. + */ + describeVirtualGateway(callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualGatewayOutput) => void): Request; + /** + * Describes an existing virtual node. + */ + describeVirtualNode(params: AppMesh.Types.DescribeVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualNodeOutput) => void): Request; + /** + * Describes an existing virtual node. + */ + describeVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualNodeOutput) => void): Request; + /** + * Describes an existing virtual router. + */ + describeVirtualRouter(params: AppMesh.Types.DescribeVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualRouterOutput) => void): Request; + /** + * Describes an existing virtual router. + */ + describeVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualRouterOutput) => void): Request; + /** + * Describes an existing virtual service. + */ + describeVirtualService(params: AppMesh.Types.DescribeVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualServiceOutput) => void): Request; + /** + * Describes an existing virtual service. + */ + describeVirtualService(callback?: (err: AWSError, data: AppMesh.Types.DescribeVirtualServiceOutput) => void): Request; + /** + * Returns a list of existing gateway routes that are associated to a virtual gateway. + */ + listGatewayRoutes(params: AppMesh.Types.ListGatewayRoutesInput, callback?: (err: AWSError, data: AppMesh.Types.ListGatewayRoutesOutput) => void): Request; + /** + * Returns a list of existing gateway routes that are associated to a virtual gateway. + */ + listGatewayRoutes(callback?: (err: AWSError, data: AppMesh.Types.ListGatewayRoutesOutput) => void): Request; + /** + * Returns a list of existing service meshes. + */ + listMeshes(params: AppMesh.Types.ListMeshesInput, callback?: (err: AWSError, data: AppMesh.Types.ListMeshesOutput) => void): Request; + /** + * Returns a list of existing service meshes. + */ + listMeshes(callback?: (err: AWSError, data: AppMesh.Types.ListMeshesOutput) => void): Request; + /** + * Returns a list of existing routes in a service mesh. + */ + listRoutes(params: AppMesh.Types.ListRoutesInput, callback?: (err: AWSError, data: AppMesh.Types.ListRoutesOutput) => void): Request; + /** + * Returns a list of existing routes in a service mesh. + */ + listRoutes(callback?: (err: AWSError, data: AppMesh.Types.ListRoutesOutput) => void): Request; + /** + * List the tags for an App Mesh resource. + */ + listTagsForResource(params: AppMesh.Types.ListTagsForResourceInput, callback?: (err: AWSError, data: AppMesh.Types.ListTagsForResourceOutput) => void): Request; + /** + * List the tags for an App Mesh resource. + */ + listTagsForResource(callback?: (err: AWSError, data: AppMesh.Types.ListTagsForResourceOutput) => void): Request; + /** + * Returns a list of existing virtual gateways in a service mesh. + */ + listVirtualGateways(params: AppMesh.Types.ListVirtualGatewaysInput, callback?: (err: AWSError, data: AppMesh.Types.ListVirtualGatewaysOutput) => void): Request; + /** + * Returns a list of existing virtual gateways in a service mesh. + */ + listVirtualGateways(callback?: (err: AWSError, data: AppMesh.Types.ListVirtualGatewaysOutput) => void): Request; + /** + * Returns a list of existing virtual nodes. + */ + listVirtualNodes(params: AppMesh.Types.ListVirtualNodesInput, callback?: (err: AWSError, data: AppMesh.Types.ListVirtualNodesOutput) => void): Request; + /** + * Returns a list of existing virtual nodes. + */ + listVirtualNodes(callback?: (err: AWSError, data: AppMesh.Types.ListVirtualNodesOutput) => void): Request; + /** + * Returns a list of existing virtual routers in a service mesh. + */ + listVirtualRouters(params: AppMesh.Types.ListVirtualRoutersInput, callback?: (err: AWSError, data: AppMesh.Types.ListVirtualRoutersOutput) => void): Request; + /** + * Returns a list of existing virtual routers in a service mesh. + */ + listVirtualRouters(callback?: (err: AWSError, data: AppMesh.Types.ListVirtualRoutersOutput) => void): Request; + /** + * Returns a list of existing virtual services in a service mesh. + */ + listVirtualServices(params: AppMesh.Types.ListVirtualServicesInput, callback?: (err: AWSError, data: AppMesh.Types.ListVirtualServicesOutput) => void): Request; + /** + * Returns a list of existing virtual services in a service mesh. + */ + listVirtualServices(callback?: (err: AWSError, data: AppMesh.Types.ListVirtualServicesOutput) => void): Request; + /** + * Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are also deleted. + */ + tagResource(params: AppMesh.Types.TagResourceInput, callback?: (err: AWSError, data: AppMesh.Types.TagResourceOutput) => void): Request; + /** + * Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are also deleted. + */ + tagResource(callback?: (err: AWSError, data: AppMesh.Types.TagResourceOutput) => void): Request; + /** + * Deletes specified tags from a resource. + */ + untagResource(params: AppMesh.Types.UntagResourceInput, callback?: (err: AWSError, data: AppMesh.Types.UntagResourceOutput) => void): Request; + /** + * Deletes specified tags from a resource. + */ + untagResource(callback?: (err: AWSError, data: AppMesh.Types.UntagResourceOutput) => void): Request; + /** + * Updates an existing gateway route that is associated to a specified virtual gateway in a service mesh. + */ + updateGatewayRoute(params: AppMesh.Types.UpdateGatewayRouteInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateGatewayRouteOutput) => void): Request; + /** + * Updates an existing gateway route that is associated to a specified virtual gateway in a service mesh. + */ + updateGatewayRoute(callback?: (err: AWSError, data: AppMesh.Types.UpdateGatewayRouteOutput) => void): Request; + /** + * Updates an existing service mesh. + */ + updateMesh(params: AppMesh.Types.UpdateMeshInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateMeshOutput) => void): Request; + /** + * Updates an existing service mesh. + */ + updateMesh(callback?: (err: AWSError, data: AppMesh.Types.UpdateMeshOutput) => void): Request; + /** + * Updates an existing route for a specified service mesh and virtual router. + */ + updateRoute(params: AppMesh.Types.UpdateRouteInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateRouteOutput) => void): Request; + /** + * Updates an existing route for a specified service mesh and virtual router. + */ + updateRoute(callback?: (err: AWSError, data: AppMesh.Types.UpdateRouteOutput) => void): Request; + /** + * Updates an existing virtual gateway in a specified service mesh. + */ + updateVirtualGateway(params: AppMesh.Types.UpdateVirtualGatewayInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualGatewayOutput) => void): Request; + /** + * Updates an existing virtual gateway in a specified service mesh. + */ + updateVirtualGateway(callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualGatewayOutput) => void): Request; + /** + * Updates an existing virtual node in a specified service mesh. + */ + updateVirtualNode(params: AppMesh.Types.UpdateVirtualNodeInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualNodeOutput) => void): Request; + /** + * Updates an existing virtual node in a specified service mesh. + */ + updateVirtualNode(callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualNodeOutput) => void): Request; + /** + * Updates an existing virtual router in a specified service mesh. + */ + updateVirtualRouter(params: AppMesh.Types.UpdateVirtualRouterInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualRouterOutput) => void): Request; + /** + * Updates an existing virtual router in a specified service mesh. + */ + updateVirtualRouter(callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualRouterOutput) => void): Request; + /** + * Updates an existing virtual service in a specified service mesh. + */ + updateVirtualService(params: AppMesh.Types.UpdateVirtualServiceInput, callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualServiceOutput) => void): Request; + /** + * Updates an existing virtual service in a specified service mesh. + */ + updateVirtualService(callback?: (err: AWSError, data: AppMesh.Types.UpdateVirtualServiceOutput) => void): Request; +} +declare namespace AppMesh { + export interface AccessLog { + /** + * The file object to send virtual node access logs to. + */ + file?: FileAccessLog; + } + export type AccountId = string; + export type Arn = string; + export interface AwsCloudMapInstanceAttribute { + /** + * The name of an Cloud Map service instance attribute key. Any Cloud Map service instance that contains the specified key and value is returned. + */ + key: AwsCloudMapInstanceAttributeKey; + /** + * The value of an Cloud Map service instance attribute key. Any Cloud Map service instance that contains the specified key and value is returned. + */ + value: AwsCloudMapInstanceAttributeValue; + } + export type AwsCloudMapInstanceAttributeKey = string; + export type AwsCloudMapInstanceAttributeValue = string; + export type AwsCloudMapInstanceAttributes = AwsCloudMapInstanceAttribute[]; + export type AwsCloudMapName = string; + export interface AwsCloudMapServiceDiscovery { + /** + * A string map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance. Only instances that match all of the specified key/value pairs will be returned. + */ + attributes?: AwsCloudMapInstanceAttributes; + /** + * The name of the Cloud Map namespace to use. + */ + namespaceName: AwsCloudMapName; + /** + * The name of the Cloud Map service to use. + */ + serviceName: AwsCloudMapName; + } + export interface Backend { + /** + * Specifies a virtual service to use as a backend. + */ + virtualService?: VirtualServiceBackend; + } + export interface BackendDefaults { + /** + * A reference to an object that represents a client policy. + */ + clientPolicy?: ClientPolicy; + } + export type Backends = Backend[]; + export type Boolean = boolean; + export type CertificateAuthorityArns = Arn[]; + export interface ClientPolicy { + /** + * A reference to an object that represents a Transport Layer Security (TLS) client policy. + */ + tls?: ClientPolicyTls; + } + export interface ClientPolicyTls { + /** + * A reference to an object that represents a client's TLS certificate. + */ + certificate?: ClientTlsCertificate; + /** + * Whether the policy is enforced. The default is True, if a value isn't specified. + */ + enforce?: Boolean; + /** + * One or more ports that the policy is enforced for. + */ + ports?: PortSet; + /** + * A reference to an object that represents a TLS validation context. + */ + validation: TlsValidationContext; + } + export interface ClientTlsCertificate { + /** + * An object that represents a local file certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS). + */ + file?: ListenerTlsFileCertificate; + /** + * A reference to an object that represents a client's TLS Secret Discovery Service certificate. + */ + sds?: ListenerTlsSdsCertificate; + } + export interface CreateGatewayRouteInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name to use for the gateway route. + */ + gatewayRouteName: ResourceName; + /** + * The name of the service mesh to create the gateway route in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The gateway route specification to apply. + */ + spec: GatewayRouteSpec; + /** + * Optional metadata that you can apply to the gateway route to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags?: TagList; + /** + * The name of the virtual gateway to associate the gateway route with. If the virtual gateway is in a shared mesh, then you must be the owner of the virtual gateway resource. + */ + virtualGatewayName: ResourceName; + } + export interface CreateGatewayRouteOutput { + /** + * The full description of your gateway route following the create call. + */ + gatewayRoute: GatewayRouteData; + } + export interface CreateMeshInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name to use for the service mesh. + */ + meshName: ResourceName; + /** + * The service mesh specification to apply. + */ + spec?: MeshSpec; + /** + * Optional metadata that you can apply to the service mesh to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags?: TagList; + } + export interface CreateMeshOutput { + /** + * The full description of your service mesh following the create call. + */ + mesh: MeshData; + } + export interface CreateRouteInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh to create the route in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name to use for the route. + */ + routeName: ResourceName; + /** + * The route specification to apply. + */ + spec: RouteSpec; + /** + * Optional metadata that you can apply to the route to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags?: TagList; + /** + * The name of the virtual router in which to create the route. If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource. + */ + virtualRouterName: ResourceName; + } + export interface CreateRouteOutput { + /** + * The full description of your mesh following the create call. + */ + route: RouteData; + } + export interface CreateVirtualGatewayInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh to create the virtual gateway in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The virtual gateway specification to apply. + */ + spec: VirtualGatewaySpec; + /** + * Optional metadata that you can apply to the virtual gateway to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags?: TagList; + /** + * The name to use for the virtual gateway. + */ + virtualGatewayName: ResourceName; + } + export interface CreateVirtualGatewayOutput { + /** + * The full description of your virtual gateway following the create call. + */ + virtualGateway: VirtualGatewayData; + } + export interface CreateVirtualNodeInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh to create the virtual node in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The virtual node specification to apply. + */ + spec: VirtualNodeSpec; + /** + * Optional metadata that you can apply to the virtual node to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags?: TagList; + /** + * The name to use for the virtual node. + */ + virtualNodeName: ResourceName; + } + export interface CreateVirtualNodeOutput { + /** + * The full description of your virtual node following the create call. + */ + virtualNode: VirtualNodeData; + } + export interface CreateVirtualRouterInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh to create the virtual router in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The virtual router specification to apply. + */ + spec: VirtualRouterSpec; + /** + * Optional metadata that you can apply to the virtual router to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags?: TagList; + /** + * The name to use for the virtual router. + */ + virtualRouterName: ResourceName; + } + export interface CreateVirtualRouterOutput { + /** + * The full description of your virtual router following the create call. + */ + virtualRouter: VirtualRouterData; + } + export interface CreateVirtualServiceInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh to create the virtual service in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The virtual service specification to apply. + */ + spec: VirtualServiceSpec; + /** + * Optional metadata that you can apply to the virtual service to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags?: TagList; + /** + * The name to use for the virtual service. + */ + virtualServiceName: ServiceName; + } + export interface CreateVirtualServiceOutput { + /** + * The full description of your virtual service following the create call. + */ + virtualService: VirtualServiceData; + } + export type DefaultGatewayRouteRewrite = "ENABLED"|"DISABLED"|string; + export interface DeleteGatewayRouteInput { + /** + * The name of the gateway route to delete. + */ + gatewayRouteName: ResourceName; + /** + * The name of the service mesh to delete the gateway route from. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual gateway to delete the route from. + */ + virtualGatewayName: ResourceName; + } + export interface DeleteGatewayRouteOutput { + /** + * The gateway route that was deleted. + */ + gatewayRoute: GatewayRouteData; + } + export interface DeleteMeshInput { + /** + * The name of the service mesh to delete. + */ + meshName: ResourceName; + } + export interface DeleteMeshOutput { + /** + * The service mesh that was deleted. + */ + mesh: MeshData; + } + export interface DeleteRouteInput { + /** + * The name of the service mesh to delete the route in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the route to delete. + */ + routeName: ResourceName; + /** + * The name of the virtual router to delete the route in. + */ + virtualRouterName: ResourceName; + } + export interface DeleteRouteOutput { + /** + * The route that was deleted. + */ + route: RouteData; + } + export interface DeleteVirtualGatewayInput { + /** + * The name of the service mesh to delete the virtual gateway from. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual gateway to delete. + */ + virtualGatewayName: ResourceName; + } + export interface DeleteVirtualGatewayOutput { + /** + * The virtual gateway that was deleted. + */ + virtualGateway: VirtualGatewayData; + } + export interface DeleteVirtualNodeInput { + /** + * The name of the service mesh to delete the virtual node in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual node to delete. + */ + virtualNodeName: ResourceName; + } + export interface DeleteVirtualNodeOutput { + /** + * The virtual node that was deleted. + */ + virtualNode: VirtualNodeData; + } + export interface DeleteVirtualRouterInput { + /** + * The name of the service mesh to delete the virtual router in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual router to delete. + */ + virtualRouterName: ResourceName; + } + export interface DeleteVirtualRouterOutput { + /** + * The virtual router that was deleted. + */ + virtualRouter: VirtualRouterData; + } + export interface DeleteVirtualServiceInput { + /** + * The name of the service mesh to delete the virtual service in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual service to delete. + */ + virtualServiceName: ServiceName; + } + export interface DeleteVirtualServiceOutput { + /** + * The virtual service that was deleted. + */ + virtualService: VirtualServiceData; + } + export interface DescribeGatewayRouteInput { + /** + * The name of the gateway route to describe. + */ + gatewayRouteName: ResourceName; + /** + * The name of the service mesh that the gateway route resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual gateway that the gateway route is associated with. + */ + virtualGatewayName: ResourceName; + } + export interface DescribeGatewayRouteOutput { + /** + * The full description of your gateway route. + */ + gatewayRoute: GatewayRouteData; + } + export interface DescribeMeshInput { + /** + * The name of the service mesh to describe. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + } + export interface DescribeMeshOutput { + /** + * The full description of your service mesh. + */ + mesh: MeshData; + } + export interface DescribeRouteInput { + /** + * The name of the service mesh that the route resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the route to describe. + */ + routeName: ResourceName; + /** + * The name of the virtual router that the route is associated with. + */ + virtualRouterName: ResourceName; + } + export interface DescribeRouteOutput { + /** + * The full description of your route. + */ + route: RouteData; + } + export interface DescribeVirtualGatewayInput { + /** + * The name of the service mesh that the gateway route resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual gateway to describe. + */ + virtualGatewayName: ResourceName; + } + export interface DescribeVirtualGatewayOutput { + /** + * The full description of your virtual gateway. + */ + virtualGateway: VirtualGatewayData; + } + export interface DescribeVirtualNodeInput { + /** + * The name of the service mesh that the virtual node resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual node to describe. + */ + virtualNodeName: ResourceName; + } + export interface DescribeVirtualNodeOutput { + /** + * The full description of your virtual node. + */ + virtualNode: VirtualNodeData; + } + export interface DescribeVirtualRouterInput { + /** + * The name of the service mesh that the virtual router resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual router to describe. + */ + virtualRouterName: ResourceName; + } + export interface DescribeVirtualRouterOutput { + /** + * The full description of your virtual router. + */ + virtualRouter: VirtualRouterData; + } + export interface DescribeVirtualServiceInput { + /** + * The name of the service mesh that the virtual service resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the virtual service to describe. + */ + virtualServiceName: ServiceName; + } + export interface DescribeVirtualServiceOutput { + /** + * The full description of your virtual service. + */ + virtualService: VirtualServiceData; + } + export type DnsResponseType = "LOADBALANCER"|"ENDPOINTS"|string; + export interface DnsServiceDiscovery { + /** + * Specifies the DNS service discovery hostname for the virtual node. + */ + hostname: Hostname; + /** + * Specifies the DNS response type for the virtual node. + */ + responseType?: DnsResponseType; + } + export interface Duration { + /** + * A unit of time. + */ + unit?: DurationUnit; + /** + * A number of time units. + */ + value?: DurationValue; + } + export type DurationUnit = "s"|"ms"|string; + export type DurationValue = number; + export interface EgressFilter { + /** + * The egress filter type. By default, the type is DROP_ALL, which allows egress only from virtual nodes to other defined resources in the service mesh (and any traffic to *.amazonaws.com for Amazon Web Services API calls). You can set the egress filter type to ALLOW_ALL to allow egress to any endpoint inside or outside of the service mesh. + */ + type: EgressFilterType; + } + export type EgressFilterType = "ALLOW_ALL"|"DROP_ALL"|string; + export type ExactHostName = string; + export interface FileAccessLog { + /** + * The file path to write access logs to. You can use /dev/stdout to send access logs to standard out and configure your Envoy container to use a log driver, such as awslogs, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk. The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly. + */ + path: FilePath; + } + export type FilePath = string; + export interface GatewayRouteData { + /** + * The name of the gateway route. + */ + gatewayRouteName: ResourceName; + /** + * The name of the service mesh that the resource resides in. + */ + meshName: ResourceName; + metadata: ResourceMetadata; + /** + * The specifications of the gateway route. + */ + spec: GatewayRouteSpec; + /** + * The status of the gateway route. + */ + status: GatewayRouteStatus; + /** + * The virtual gateway that the gateway route is associated with. + */ + virtualGatewayName: ResourceName; + } + export interface GatewayRouteHostnameMatch { + /** + * The exact host name to match on. + */ + exact?: ExactHostName; + /** + * The specified ending characters of the host name to match on. + */ + suffix?: SuffixHostname; + } + export interface GatewayRouteHostnameRewrite { + /** + * The default target host name to write to. + */ + defaultTargetHostname?: DefaultGatewayRouteRewrite; + } + export type GatewayRouteList = GatewayRouteRef[]; + export type GatewayRoutePriority = number; + export interface GatewayRouteRef { + /** + * The full Amazon Resource Name (ARN) for the gateway route. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The name of the gateway route. + */ + gatewayRouteName: ResourceName; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The name of the service mesh that the resource resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + /** + * The virtual gateway that the gateway route is associated with. + */ + virtualGatewayName: ResourceName; + } + export interface GatewayRouteSpec { + /** + * An object that represents the specification of a gRPC gateway route. + */ + grpcRoute?: GrpcGatewayRoute; + /** + * An object that represents the specification of an HTTP/2 gateway route. + */ + http2Route?: HttpGatewayRoute; + /** + * An object that represents the specification of an HTTP gateway route. + */ + httpRoute?: HttpGatewayRoute; + /** + * The ordering of the gateway routes spec. + */ + priority?: GatewayRoutePriority; + } + export interface GatewayRouteStatus { + /** + * The current status for the gateway route. + */ + status: GatewayRouteStatusCode; + } + export type GatewayRouteStatusCode = "ACTIVE"|"INACTIVE"|"DELETED"|string; + export interface GatewayRouteTarget { + /** + * An object that represents a virtual service gateway route target. + */ + virtualService: GatewayRouteVirtualService; + } + export interface GatewayRouteVirtualService { + /** + * The name of the virtual service that traffic is routed to. + */ + virtualServiceName: ResourceName; + } + export interface GrpcGatewayRoute { + /** + * An object that represents the action to take if a match is determined. + */ + action: GrpcGatewayRouteAction; + /** + * An object that represents the criteria for determining a request match. + */ + match: GrpcGatewayRouteMatch; + } + export interface GrpcGatewayRouteAction { + /** + * The gateway route action to rewrite. + */ + rewrite?: GrpcGatewayRouteRewrite; + /** + * An object that represents the target that traffic is routed to when a request matches the gateway route. + */ + target: GatewayRouteTarget; + } + export interface GrpcGatewayRouteMatch { + /** + * The gateway route host name to be matched on. + */ + hostname?: GatewayRouteHostnameMatch; + /** + * The gateway route metadata to be matched on. + */ + metadata?: GrpcGatewayRouteMetadataList; + /** + * The fully qualified domain name for the service to match from the request. + */ + serviceName?: ServiceName; + } + export interface GrpcGatewayRouteMetadata { + /** + * Specify True to match anything except the match criteria. The default value is False. + */ + invert?: Boolean; + /** + * The criteria for determining a metadata match. + */ + match?: GrpcMetadataMatchMethod; + /** + * A name for the gateway route metadata. + */ + name: HeaderName; + } + export type GrpcGatewayRouteMetadataList = GrpcGatewayRouteMetadata[]; + export interface GrpcGatewayRouteRewrite { + /** + * The host name of the gateway route to rewrite. + */ + hostname?: GatewayRouteHostnameRewrite; + } + export interface GrpcMetadataMatchMethod { + /** + * The exact method header to be matched on. + */ + exact?: HeaderMatch; + /** + * The specified beginning characters of the method header to be matched on. + */ + prefix?: HeaderMatch; + range?: MatchRange; + /** + * The regex used to match the method header. + */ + regex?: HeaderMatch; + /** + * The specified ending characters of the method header to match on. + */ + suffix?: HeaderMatch; + } + export interface GrpcRetryPolicy { + /** + * Specify at least one of the valid values. + */ + grpcRetryEvents?: GrpcRetryPolicyEvents; + /** + * Specify at least one of the following values. server-error – HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511 gateway-error – HTTP status codes 502, 503, and 504 client-error – HTTP status code 409 stream-error – Retry on refused stream + */ + httpRetryEvents?: HttpRetryPolicyEvents; + /** + * The maximum number of retry attempts. + */ + maxRetries: MaxRetries; + /** + * The timeout for each retry attempt. + */ + perRetryTimeout: Duration; + /** + * Specify a valid value. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable. + */ + tcpRetryEvents?: TcpRetryPolicyEvents; + } + export type GrpcRetryPolicyEvent = "cancelled"|"deadline-exceeded"|"internal"|"resource-exhausted"|"unavailable"|string; + export type GrpcRetryPolicyEvents = GrpcRetryPolicyEvent[]; + export interface GrpcRoute { + /** + * An object that represents the action to take if a match is determined. + */ + action: GrpcRouteAction; + /** + * An object that represents the criteria for determining a request match. + */ + match: GrpcRouteMatch; + /** + * An object that represents a retry policy. + */ + retryPolicy?: GrpcRetryPolicy; + /** + * An object that represents types of timeouts. + */ + timeout?: GrpcTimeout; + } + export interface GrpcRouteAction { + /** + * An object that represents the targets that traffic is routed to when a request matches the route. + */ + weightedTargets: WeightedTargets; + } + export interface GrpcRouteMatch { + /** + * An object that represents the data to match from the request. + */ + metadata?: GrpcRouteMetadataList; + /** + * The method name to match from the request. If you specify a name, you must also specify a serviceName. + */ + methodName?: MethodName; + /** + * The fully qualified domain name for the service to match from the request. + */ + serviceName?: ServiceName; + } + export interface GrpcRouteMetadata { + /** + * Specify True to match anything except the match criteria. The default value is False. + */ + invert?: Boolean; + /** + * An object that represents the data to match from the request. + */ + match?: GrpcRouteMetadataMatchMethod; + /** + * The name of the route. + */ + name: HeaderName; + } + export type GrpcRouteMetadataList = GrpcRouteMetadata[]; + export interface GrpcRouteMetadataMatchMethod { + /** + * The value sent by the client must match the specified value exactly. + */ + exact?: HeaderMatch; + /** + * The value sent by the client must begin with the specified characters. + */ + prefix?: HeaderMatch; + /** + * An object that represents the range of values to match on. + */ + range?: MatchRange; + /** + * The value sent by the client must include the specified characters. + */ + regex?: HeaderMatch; + /** + * The value sent by the client must end with the specified characters. + */ + suffix?: HeaderMatch; + } + export interface GrpcTimeout { + /** + * An object that represents an idle timeout. An idle timeout bounds the amount of time that a connection may be idle. The default value is none. + */ + idle?: Duration; + /** + * An object that represents a per request timeout. The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route. + */ + perRequest?: Duration; + } + export type HeaderMatch = string; + export interface HeaderMatchMethod { + /** + * The value sent by the client must match the specified value exactly. + */ + exact?: HeaderMatch; + /** + * The value sent by the client must begin with the specified characters. + */ + prefix?: HeaderMatch; + /** + * An object that represents the range of values to match on. + */ + range?: MatchRange; + /** + * The value sent by the client must include the specified characters. + */ + regex?: HeaderMatch; + /** + * The value sent by the client must end with the specified characters. + */ + suffix?: HeaderMatch; + } + export type HeaderName = string; + export type HealthCheckIntervalMillis = number; + export interface HealthCheckPolicy { + /** + * The number of consecutive successful health checks that must occur before declaring listener healthy. + */ + healthyThreshold: HealthCheckThreshold; + /** + * The time period in milliseconds between each health check execution. + */ + intervalMillis: HealthCheckIntervalMillis; + /** + * The destination path for the health check request. This value is only used if the specified protocol is HTTP or HTTP/2. For any other protocol, this value is ignored. + */ + path?: String; + /** + * The destination port for the health check request. This port must match the port defined in the PortMapping for the listener. + */ + port?: PortNumber; + /** + * The protocol for the health check request. If you specify grpc, then your service must conform to the GRPC Health Checking Protocol. + */ + protocol: PortProtocol; + /** + * The amount of time to wait when receiving a response from the health check, in milliseconds. + */ + timeoutMillis: HealthCheckTimeoutMillis; + /** + * The number of consecutive failed health checks that must occur before declaring a virtual node unhealthy. + */ + unhealthyThreshold: HealthCheckThreshold; + } + export type HealthCheckThreshold = number; + export type HealthCheckTimeoutMillis = number; + export type Hostname = string; + export interface HttpGatewayRoute { + /** + * An object that represents the action to take if a match is determined. + */ + action: HttpGatewayRouteAction; + /** + * An object that represents the criteria for determining a request match. + */ + match: HttpGatewayRouteMatch; + } + export interface HttpGatewayRouteAction { + /** + * The gateway route action to rewrite. + */ + rewrite?: HttpGatewayRouteRewrite; + /** + * An object that represents the target that traffic is routed to when a request matches the gateway route. + */ + target: GatewayRouteTarget; + } + export interface HttpGatewayRouteHeader { + /** + * Specify True to match anything except the match criteria. The default value is False. + */ + invert?: Boolean; + match?: HeaderMatchMethod; + /** + * A name for the HTTP header in the gateway route that will be matched on. + */ + name: HeaderName; + } + export type HttpGatewayRouteHeaders = HttpGatewayRouteHeader[]; + export interface HttpGatewayRouteMatch { + /** + * The client request headers to match on. + */ + headers?: HttpGatewayRouteHeaders; + /** + * The host name to match on. + */ + hostname?: GatewayRouteHostnameMatch; + /** + * The method to match on. + */ + method?: HttpMethod; + /** + * The path to match on. + */ + path?: HttpPathMatch; + /** + * Specifies the path to match requests with. This parameter must always start with /, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is my-service.local and you want the route to match requests to my-service.local/metrics, your prefix should be /metrics. + */ + prefix?: String; + /** + * The query parameter to match on. + */ + queryParameters?: HttpQueryParameters; + } + export interface HttpGatewayRoutePathRewrite { + /** + * The exact path to rewrite. + */ + exact?: HttpPathExact; + } + export type HttpGatewayRoutePrefix = string; + export interface HttpGatewayRoutePrefixRewrite { + /** + * The default prefix used to replace the incoming route prefix when rewritten. + */ + defaultPrefix?: DefaultGatewayRouteRewrite; + /** + * The value used to replace the incoming route prefix when rewritten. + */ + value?: HttpGatewayRoutePrefix; + } + export interface HttpGatewayRouteRewrite { + /** + * The host name to rewrite. + */ + hostname?: GatewayRouteHostnameRewrite; + /** + * The path to rewrite. + */ + path?: HttpGatewayRoutePathRewrite; + /** + * The specified beginning characters to rewrite. + */ + prefix?: HttpGatewayRoutePrefixRewrite; + } + export type HttpMethod = "GET"|"HEAD"|"POST"|"PUT"|"DELETE"|"CONNECT"|"OPTIONS"|"TRACE"|"PATCH"|string; + export type HttpPathExact = string; + export interface HttpPathMatch { + /** + * The exact path to match on. + */ + exact?: HttpPathExact; + /** + * The regex used to match the path. + */ + regex?: HttpPathRegex; + } + export type HttpPathRegex = string; + export interface HttpQueryParameter { + /** + * The query parameter to match on. + */ + match?: QueryParameterMatch; + /** + * A name for the query parameter that will be matched on. + */ + name: QueryParameterName; + } + export type HttpQueryParameters = HttpQueryParameter[]; + export interface HttpRetryPolicy { + /** + * Specify at least one of the following values. server-error – HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511 gateway-error – HTTP status codes 502, 503, and 504 client-error – HTTP status code 409 stream-error – Retry on refused stream + */ + httpRetryEvents?: HttpRetryPolicyEvents; + /** + * The maximum number of retry attempts. + */ + maxRetries: MaxRetries; + /** + * The timeout for each retry attempt. + */ + perRetryTimeout: Duration; + /** + * Specify a valid value. The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable. + */ + tcpRetryEvents?: TcpRetryPolicyEvents; + } + export type HttpRetryPolicyEvent = string; + export type HttpRetryPolicyEvents = HttpRetryPolicyEvent[]; + export interface HttpRoute { + /** + * An object that represents the action to take if a match is determined. + */ + action: HttpRouteAction; + /** + * An object that represents the criteria for determining a request match. + */ + match: HttpRouteMatch; + /** + * An object that represents a retry policy. + */ + retryPolicy?: HttpRetryPolicy; + /** + * An object that represents types of timeouts. + */ + timeout?: HttpTimeout; + } + export interface HttpRouteAction { + /** + * An object that represents the targets that traffic is routed to when a request matches the route. + */ + weightedTargets: WeightedTargets; + } + export interface HttpRouteHeader { + /** + * Specify True to match anything except the match criteria. The default value is False. + */ + invert?: Boolean; + /** + * The HeaderMatchMethod object. + */ + match?: HeaderMatchMethod; + /** + * A name for the HTTP header in the client request that will be matched on. + */ + name: HeaderName; + } + export type HttpRouteHeaders = HttpRouteHeader[]; + export interface HttpRouteMatch { + /** + * The client request headers to match on. + */ + headers?: HttpRouteHeaders; + /** + * The client request method to match on. Specify only one. + */ + method?: HttpMethod; + /** + * The client request path to match on. + */ + path?: HttpPathMatch; + /** + * Specifies the path to match requests with. This parameter must always start with /, which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is my-service.local and you want the route to match requests to my-service.local/metrics, your prefix should be /metrics. + */ + prefix?: String; + /** + * The client request query parameters to match on. + */ + queryParameters?: HttpQueryParameters; + /** + * The client request scheme to match on. Specify only one. Applicable only for HTTP2 routes. + */ + scheme?: HttpScheme; + } + export type HttpScheme = "http"|"https"|string; + export interface HttpTimeout { + /** + * An object that represents an idle timeout. An idle timeout bounds the amount of time that a connection may be idle. The default value is none. + */ + idle?: Duration; + /** + * An object that represents a per request timeout. The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route. + */ + perRequest?: Duration; + } + export interface ListGatewayRoutesInput { + /** + * The maximum number of results returned by ListGatewayRoutes in paginated output. When you use this parameter, ListGatewayRoutes returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListGatewayRoutes request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListGatewayRoutes returns up to 100 results and a nextToken value if applicable. + */ + limit?: ListGatewayRoutesLimit; + /** + * The name of the service mesh to list gateway routes in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The nextToken value returned from a previous paginated ListGatewayRoutes request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. + */ + nextToken?: String; + /** + * The name of the virtual gateway to list gateway routes in. + */ + virtualGatewayName: ResourceName; + } + export type ListGatewayRoutesLimit = number; + export interface ListGatewayRoutesOutput { + /** + * The list of existing gateway routes for the specified service mesh and virtual gateway. + */ + gatewayRoutes: GatewayRouteList; + /** + * The nextToken value to include in a future ListGatewayRoutes request. When the results of a ListGatewayRoutes request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + } + export interface ListMeshesInput { + /** + * The maximum number of results returned by ListMeshes in paginated output. When you use this parameter, ListMeshes returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListMeshes request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListMeshes returns up to 100 results and a nextToken value if applicable. + */ + limit?: ListMeshesLimit; + /** + * The nextToken value returned from a previous paginated ListMeshes request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: String; + } + export type ListMeshesLimit = number; + export interface ListMeshesOutput { + /** + * The list of existing service meshes. + */ + meshes: MeshList; + /** + * The nextToken value to include in a future ListMeshes request. When the results of a ListMeshes request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + } + export interface ListRoutesInput { + /** + * The maximum number of results returned by ListRoutes in paginated output. When you use this parameter, ListRoutes returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListRoutes request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListRoutes returns up to 100 results and a nextToken value if applicable. + */ + limit?: ListRoutesLimit; + /** + * The name of the service mesh to list routes in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The nextToken value returned from a previous paginated ListRoutes request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. + */ + nextToken?: String; + /** + * The name of the virtual router to list routes in. + */ + virtualRouterName: ResourceName; + } + export type ListRoutesLimit = number; + export interface ListRoutesOutput { + /** + * The nextToken value to include in a future ListRoutes request. When the results of a ListRoutes request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + /** + * The list of existing routes for the specified service mesh and virtual router. + */ + routes: RouteList; + } + export interface ListTagsForResourceInput { + /** + * The maximum number of tag results returned by ListTagsForResource in paginated output. When this parameter is used, ListTagsForResource returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListTagsForResource request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListTagsForResource returns up to 100 results and a nextToken value if applicable. + */ + limit?: TagsLimit; + /** + * The nextToken value returned from a previous paginated ListTagsForResource request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. + */ + nextToken?: String; + /** + * The Amazon Resource Name (ARN) that identifies the resource to list the tags for. + */ + resourceArn: Arn; + } + export interface ListTagsForResourceOutput { + /** + * The nextToken value to include in a future ListTagsForResource request. When the results of a ListTagsForResource request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + /** + * The tags for the resource. + */ + tags: TagList; + } + export interface ListVirtualGatewaysInput { + /** + * The maximum number of results returned by ListVirtualGateways in paginated output. When you use this parameter, ListVirtualGateways returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListVirtualGateways request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListVirtualGateways returns up to 100 results and a nextToken value if applicable. + */ + limit?: ListVirtualGatewaysLimit; + /** + * The name of the service mesh to list virtual gateways in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The nextToken value returned from a previous paginated ListVirtualGateways request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. + */ + nextToken?: String; + } + export type ListVirtualGatewaysLimit = number; + export interface ListVirtualGatewaysOutput { + /** + * The nextToken value to include in a future ListVirtualGateways request. When the results of a ListVirtualGateways request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + /** + * The list of existing virtual gateways for the specified service mesh. + */ + virtualGateways: VirtualGatewayList; + } + export interface ListVirtualNodesInput { + /** + * The maximum number of results returned by ListVirtualNodes in paginated output. When you use this parameter, ListVirtualNodes returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListVirtualNodes request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListVirtualNodes returns up to 100 results and a nextToken value if applicable. + */ + limit?: ListVirtualNodesLimit; + /** + * The name of the service mesh to list virtual nodes in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The nextToken value returned from a previous paginated ListVirtualNodes request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. + */ + nextToken?: String; + } + export type ListVirtualNodesLimit = number; + export interface ListVirtualNodesOutput { + /** + * The nextToken value to include in a future ListVirtualNodes request. When the results of a ListVirtualNodes request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + /** + * The list of existing virtual nodes for the specified service mesh. + */ + virtualNodes: VirtualNodeList; + } + export interface ListVirtualRoutersInput { + /** + * The maximum number of results returned by ListVirtualRouters in paginated output. When you use this parameter, ListVirtualRouters returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListVirtualRouters request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListVirtualRouters returns up to 100 results and a nextToken value if applicable. + */ + limit?: ListVirtualRoutersLimit; + /** + * The name of the service mesh to list virtual routers in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The nextToken value returned from a previous paginated ListVirtualRouters request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. + */ + nextToken?: String; + } + export type ListVirtualRoutersLimit = number; + export interface ListVirtualRoutersOutput { + /** + * The nextToken value to include in a future ListVirtualRouters request. When the results of a ListVirtualRouters request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + /** + * The list of existing virtual routers for the specified service mesh. + */ + virtualRouters: VirtualRouterList; + } + export interface ListVirtualServicesInput { + /** + * The maximum number of results returned by ListVirtualServices in paginated output. When you use this parameter, ListVirtualServices returns only limit results in a single page along with a nextToken response element. You can see the remaining results of the initial request by sending another ListVirtualServices request with the returned nextToken value. This value can be between 1 and 100. If you don't use this parameter, ListVirtualServices returns up to 100 results and a nextToken value if applicable. + */ + limit?: ListVirtualServicesLimit; + /** + * The name of the service mesh to list virtual services in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The nextToken value returned from a previous paginated ListVirtualServices request where limit was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. + */ + nextToken?: String; + } + export type ListVirtualServicesLimit = number; + export interface ListVirtualServicesOutput { + /** + * The nextToken value to include in a future ListVirtualServices request. When the results of a ListVirtualServices request exceed limit, you can use this value to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + /** + * The list of existing virtual services for the specified service mesh. + */ + virtualServices: VirtualServiceList; + } + export interface Listener { + /** + * The connection pool information for the listener. + */ + connectionPool?: VirtualNodeConnectionPool; + /** + * The health check information for the listener. + */ + healthCheck?: HealthCheckPolicy; + /** + * The outlier detection information for the listener. + */ + outlierDetection?: OutlierDetection; + /** + * The port mapping information for the listener. + */ + portMapping: PortMapping; + /** + * An object that represents timeouts for different protocols. + */ + timeout?: ListenerTimeout; + /** + * A reference to an object that represents the Transport Layer Security (TLS) properties for a listener. + */ + tls?: ListenerTls; + } + export interface ListenerTimeout { + /** + * An object that represents types of timeouts. + */ + grpc?: GrpcTimeout; + /** + * An object that represents types of timeouts. + */ + http?: HttpTimeout; + /** + * An object that represents types of timeouts. + */ + http2?: HttpTimeout; + /** + * An object that represents types of timeouts. + */ + tcp?: TcpTimeout; + } + export interface ListenerTls { + /** + * A reference to an object that represents a listener's Transport Layer Security (TLS) certificate. + */ + certificate: ListenerTlsCertificate; + /** + * Specify one of the following modes. STRICT – Listener only accepts connections with TLS enabled. PERMISSIVE – Listener accepts connections with or without TLS enabled. DISABLED – Listener only accepts connections without TLS. + */ + mode: ListenerTlsMode; + /** + * A reference to an object that represents a listener's Transport Layer Security (TLS) validation context. + */ + validation?: ListenerTlsValidationContext; + } + export interface ListenerTlsAcmCertificate { + /** + * The Amazon Resource Name (ARN) for the certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS). + */ + certificateArn: Arn; + } + export interface ListenerTlsCertificate { + /** + * A reference to an object that represents an AWS Certicate Manager (ACM) certificate. + */ + acm?: ListenerTlsAcmCertificate; + /** + * A reference to an object that represents a local file certificate. + */ + file?: ListenerTlsFileCertificate; + /** + * A reference to an object that represents a listener's Secret Discovery Service certificate. + */ + sds?: ListenerTlsSdsCertificate; + } + export interface ListenerTlsFileCertificate { + /** + * The certificate chain for the certificate. + */ + certificateChain: FilePath; + /** + * The private key for a certificate stored on the file system of the virtual node that the proxy is running on. + */ + privateKey: FilePath; + } + export type ListenerTlsMode = "STRICT"|"PERMISSIVE"|"DISABLED"|string; + export interface ListenerTlsSdsCertificate { + /** + * A reference to an object that represents the name of the secret requested from the Secret Discovery Service provider representing Transport Layer Security (TLS) materials like a certificate or certificate chain. + */ + secretName: SdsSecretName; + } + export interface ListenerTlsValidationContext { + /** + * A reference to an object that represents the SANs for a listener's Transport Layer Security (TLS) validation context. + */ + subjectAlternativeNames?: SubjectAlternativeNames; + /** + * A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. + */ + trust: ListenerTlsValidationContextTrust; + } + export interface ListenerTlsValidationContextTrust { + /** + * An object that represents a Transport Layer Security (TLS) validation context trust for a local file. + */ + file?: TlsValidationContextFileTrust; + /** + * A reference to an object that represents a listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust. + */ + sds?: TlsValidationContextSdsTrust; + } + export type Listeners = Listener[]; + export interface Logging { + /** + * The access log configuration for a virtual node. + */ + accessLog?: AccessLog; + } + export type Long = number; + export interface MatchRange { + /** + * The end of the range. + */ + end: Long; + /** + * The start of the range. + */ + start: Long; + } + export type MaxConnections = number; + export type MaxPendingRequests = number; + export type MaxRequests = number; + export type MaxRetries = number; + export interface MeshData { + /** + * The name of the service mesh. + */ + meshName: ResourceName; + /** + * The associated metadata for the service mesh. + */ + metadata: ResourceMetadata; + /** + * The associated specification for the service mesh. + */ + spec: MeshSpec; + /** + * The status of the service mesh. + */ + status: MeshStatus; + } + export type MeshList = MeshRef[]; + export interface MeshRef { + /** + * The full Amazon Resource Name (ARN) of the service mesh. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The name of the service mesh. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + } + export interface MeshSpec { + /** + * The egress filter rules for the service mesh. + */ + egressFilter?: EgressFilter; + } + export interface MeshStatus { + /** + * The current mesh status. + */ + status?: MeshStatusCode; + } + export type MeshStatusCode = "ACTIVE"|"INACTIVE"|"DELETED"|string; + export type MethodName = string; + export interface OutlierDetection { + /** + * The base amount of time for which a host is ejected. + */ + baseEjectionDuration: Duration; + /** + * The time interval between ejection sweep analysis. + */ + interval: Duration; + /** + * Maximum percentage of hosts in load balancing pool for upstream service that can be ejected. Will eject at least one host regardless of the value. + */ + maxEjectionPercent: OutlierDetectionMaxEjectionPercent; + /** + * Number of consecutive 5xx errors required for ejection. + */ + maxServerErrors: OutlierDetectionMaxServerErrors; + } + export type OutlierDetectionMaxEjectionPercent = number; + export type OutlierDetectionMaxServerErrors = number; + export type PercentInt = number; + export interface PortMapping { + /** + * The port used for the port mapping. + */ + port: PortNumber; + /** + * The protocol used for the port mapping. Specify one protocol. + */ + protocol: PortProtocol; + } + export type PortNumber = number; + export type PortProtocol = "http"|"tcp"|"http2"|"grpc"|string; + export type PortSet = PortNumber[]; + export interface QueryParameterMatch { + /** + * The exact query parameter to match on. + */ + exact?: String; + } + export type QueryParameterName = string; + export interface ResourceMetadata { + /** + * The full Amazon Resource Name (ARN) for the resource. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The unique identifier for the resource. + */ + uid: String; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + } + export type ResourceName = string; + export interface RouteData { + /** + * The name of the service mesh that the route resides in. + */ + meshName: ResourceName; + /** + * The associated metadata for the route. + */ + metadata: ResourceMetadata; + /** + * The name of the route. + */ + routeName: ResourceName; + /** + * The specifications of the route. + */ + spec: RouteSpec; + /** + * The status of the route. + */ + status: RouteStatus; + /** + * The virtual router that the route is associated with. + */ + virtualRouterName: ResourceName; + } + export type RouteList = RouteRef[]; + export type RoutePriority = number; + export interface RouteRef { + /** + * The full Amazon Resource Name (ARN) for the route. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The name of the service mesh that the route resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The name of the route. + */ + routeName: ResourceName; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + /** + * The virtual router that the route is associated with. + */ + virtualRouterName: ResourceName; + } + export interface RouteSpec { + /** + * An object that represents the specification of a gRPC route. + */ + grpcRoute?: GrpcRoute; + /** + * An object that represents the specification of an HTTP/2 route. + */ + http2Route?: HttpRoute; + /** + * An object that represents the specification of an HTTP route. + */ + httpRoute?: HttpRoute; + /** + * The priority for the route. Routes are matched based on the specified value, where 0 is the highest priority. + */ + priority?: RoutePriority; + /** + * An object that represents the specification of a TCP route. + */ + tcpRoute?: TcpRoute; + } + export interface RouteStatus { + /** + * The current status for the route. + */ + status: RouteStatusCode; + } + export type RouteStatusCode = "ACTIVE"|"INACTIVE"|"DELETED"|string; + export type SdsSecretName = string; + export interface ServiceDiscovery { + /** + * Specifies any Cloud Map information for the virtual node. + */ + awsCloudMap?: AwsCloudMapServiceDiscovery; + /** + * Specifies the DNS information for the virtual node. + */ + dns?: DnsServiceDiscovery; + } + export type ServiceName = string; + export type String = string; + export type SubjectAlternativeName = string; + export type SubjectAlternativeNameList = SubjectAlternativeName[]; + export interface SubjectAlternativeNameMatchers { + /** + * The values sent must match the specified values exactly. + */ + exact: SubjectAlternativeNameList; + } + export interface SubjectAlternativeNames { + /** + * An object that represents the criteria for determining a SANs match. + */ + match: SubjectAlternativeNameMatchers; + } + export type SuffixHostname = string; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = TagRef[]; + export interface TagRef { + /** + * One part of a key-value pair that make up a tag. A key is a general label that acts like a category for more specific tag values. + */ + key: TagKey; + /** + * The optional part of a key-value pair that make up a tag. A value acts as a descriptor within a tag category (key). + */ + value: TagValue; + } + export interface TagResourceInput { + /** + * The Amazon Resource Name (ARN) of the resource to add tags to. + */ + resourceArn: Arn; + /** + * The tags to add to the resource. A tag is an array of key-value pairs. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. + */ + tags: TagList; + } + export interface TagResourceOutput { + } + export type TagValue = string; + export type TagsLimit = number; + export type TcpRetryPolicyEvent = "connection-error"|string; + export type TcpRetryPolicyEvents = TcpRetryPolicyEvent[]; + export interface TcpRoute { + /** + * The action to take if a match is determined. + */ + action: TcpRouteAction; + /** + * An object that represents types of timeouts. + */ + timeout?: TcpTimeout; + } + export interface TcpRouteAction { + /** + * An object that represents the targets that traffic is routed to when a request matches the route. + */ + weightedTargets: WeightedTargets; + } + export interface TcpTimeout { + /** + * An object that represents an idle timeout. An idle timeout bounds the amount of time that a connection may be idle. The default value is none. + */ + idle?: Duration; + } + export type Timestamp = Date; + export interface TlsValidationContext { + /** + * A reference to an object that represents the SANs for a Transport Layer Security (TLS) validation context. + */ + subjectAlternativeNames?: SubjectAlternativeNames; + /** + * A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. + */ + trust: TlsValidationContextTrust; + } + export interface TlsValidationContextAcmTrust { + /** + * One or more ACM Amazon Resource Name (ARN)s. + */ + certificateAuthorityArns: CertificateAuthorityArns; + } + export interface TlsValidationContextFileTrust { + /** + * The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on. + */ + certificateChain: FilePath; + } + export interface TlsValidationContextSdsTrust { + /** + * A reference to an object that represents the name of the secret for a Transport Layer Security (TLS) Secret Discovery Service validation context trust. + */ + secretName: SdsSecretName; + } + export interface TlsValidationContextTrust { + /** + * A reference to an object that represents a Transport Layer Security (TLS) validation context trust for an Certificate Manager certificate. + */ + acm?: TlsValidationContextAcmTrust; + /** + * An object that represents a Transport Layer Security (TLS) validation context trust for a local file. + */ + file?: TlsValidationContextFileTrust; + /** + * A reference to an object that represents a Transport Layer Security (TLS) Secret Discovery Service validation context trust. + */ + sds?: TlsValidationContextSdsTrust; + } + export interface UntagResourceInput { + /** + * The Amazon Resource Name (ARN) of the resource to delete tags from. + */ + resourceArn: Arn; + /** + * The keys of the tags to be removed. + */ + tagKeys: TagKeyList; + } + export interface UntagResourceOutput { + } + export interface UpdateGatewayRouteInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the gateway route to update. + */ + gatewayRouteName: ResourceName; + /** + * The name of the service mesh that the gateway route resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The new gateway route specification to apply. This overwrites the existing data. + */ + spec: GatewayRouteSpec; + /** + * The name of the virtual gateway that the gateway route is associated with. + */ + virtualGatewayName: ResourceName; + } + export interface UpdateGatewayRouteOutput { + /** + * A full description of the gateway route that was updated. + */ + gatewayRoute: GatewayRouteData; + } + export interface UpdateMeshInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh to update. + */ + meshName: ResourceName; + /** + * The service mesh specification to apply. + */ + spec?: MeshSpec; + } + export interface UpdateMeshOutput { + mesh: MeshData; + } + export interface UpdateRouteInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh that the route resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The name of the route to update. + */ + routeName: ResourceName; + /** + * The new route specification to apply. This overwrites the existing data. + */ + spec: RouteSpec; + /** + * The name of the virtual router that the route is associated with. + */ + virtualRouterName: ResourceName; + } + export interface UpdateRouteOutput { + /** + * A full description of the route that was updated. + */ + route: RouteData; + } + export interface UpdateVirtualGatewayInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh that the virtual gateway resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The new virtual gateway specification to apply. This overwrites the existing data. + */ + spec: VirtualGatewaySpec; + /** + * The name of the virtual gateway to update. + */ + virtualGatewayName: ResourceName; + } + export interface UpdateVirtualGatewayOutput { + /** + * A full description of the virtual gateway that was updated. + */ + virtualGateway: VirtualGatewayData; + } + export interface UpdateVirtualNodeInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh that the virtual node resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The new virtual node specification to apply. This overwrites the existing data. + */ + spec: VirtualNodeSpec; + /** + * The name of the virtual node to update. + */ + virtualNodeName: ResourceName; + } + export interface UpdateVirtualNodeOutput { + /** + * A full description of the virtual node that was updated. + */ + virtualNode: VirtualNodeData; + } + export interface UpdateVirtualRouterInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh that the virtual router resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The new virtual router specification to apply. This overwrites the existing data. + */ + spec: VirtualRouterSpec; + /** + * The name of the virtual router to update. + */ + virtualRouterName: ResourceName; + } + export interface UpdateVirtualRouterOutput { + /** + * A full description of the virtual router that was updated. + */ + virtualRouter: VirtualRouterData; + } + export interface UpdateVirtualServiceInput { + /** + * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed. + */ + clientToken?: String; + /** + * The name of the service mesh that the virtual service resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner?: AccountId; + /** + * The new virtual service specification to apply. This overwrites the existing data. + */ + spec: VirtualServiceSpec; + /** + * The name of the virtual service to update. + */ + virtualServiceName: ServiceName; + } + export interface UpdateVirtualServiceOutput { + /** + * A full description of the virtual service that was updated. + */ + virtualService: VirtualServiceData; + } + export interface VirtualGatewayAccessLog { + /** + * The file object to send virtual gateway access logs to. + */ + file?: VirtualGatewayFileAccessLog; + } + export interface VirtualGatewayBackendDefaults { + /** + * A reference to an object that represents a client policy. + */ + clientPolicy?: VirtualGatewayClientPolicy; + } + export type VirtualGatewayCertificateAuthorityArns = Arn[]; + export interface VirtualGatewayClientPolicy { + /** + * A reference to an object that represents a Transport Layer Security (TLS) client policy. + */ + tls?: VirtualGatewayClientPolicyTls; + } + export interface VirtualGatewayClientPolicyTls { + /** + * A reference to an object that represents a virtual gateway's client's Transport Layer Security (TLS) certificate. + */ + certificate?: VirtualGatewayClientTlsCertificate; + /** + * Whether the policy is enforced. The default is True, if a value isn't specified. + */ + enforce?: Boolean; + /** + * One or more ports that the policy is enforced for. + */ + ports?: PortSet; + /** + * A reference to an object that represents a Transport Layer Security (TLS) validation context. + */ + validation: VirtualGatewayTlsValidationContext; + } + export interface VirtualGatewayClientTlsCertificate { + /** + * An object that represents a local file certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS) . + */ + file?: VirtualGatewayListenerTlsFileCertificate; + /** + * A reference to an object that represents a virtual gateway's client's Secret Discovery Service certificate. + */ + sds?: VirtualGatewayListenerTlsSdsCertificate; + } + export interface VirtualGatewayConnectionPool { + /** + * An object that represents a type of connection pool. + */ + grpc?: VirtualGatewayGrpcConnectionPool; + /** + * An object that represents a type of connection pool. + */ + http?: VirtualGatewayHttpConnectionPool; + /** + * An object that represents a type of connection pool. + */ + http2?: VirtualGatewayHttp2ConnectionPool; + } + export interface VirtualGatewayData { + /** + * The name of the service mesh that the virtual gateway resides in. + */ + meshName: ResourceName; + metadata: ResourceMetadata; + /** + * The specifications of the virtual gateway. + */ + spec: VirtualGatewaySpec; + /** + * The current status of the virtual gateway. + */ + status: VirtualGatewayStatus; + /** + * The name of the virtual gateway. + */ + virtualGatewayName: ResourceName; + } + export interface VirtualGatewayFileAccessLog { + /** + * The file path to write access logs to. You can use /dev/stdout to send access logs to standard out and configure your Envoy container to use a log driver, such as awslogs, to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk. + */ + path: FilePath; + } + export interface VirtualGatewayGrpcConnectionPool { + /** + * Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. + */ + maxRequests: MaxRequests; + } + export type VirtualGatewayHealthCheckIntervalMillis = number; + export interface VirtualGatewayHealthCheckPolicy { + /** + * The number of consecutive successful health checks that must occur before declaring the listener healthy. + */ + healthyThreshold: VirtualGatewayHealthCheckThreshold; + /** + * The time period in milliseconds between each health check execution. + */ + intervalMillis: VirtualGatewayHealthCheckIntervalMillis; + /** + * The destination path for the health check request. This value is only used if the specified protocol is HTTP or HTTP/2. For any other protocol, this value is ignored. + */ + path?: String; + /** + * The destination port for the health check request. This port must match the port defined in the PortMapping for the listener. + */ + port?: PortNumber; + /** + * The protocol for the health check request. If you specify grpc, then your service must conform to the GRPC Health Checking Protocol. + */ + protocol: VirtualGatewayPortProtocol; + /** + * The amount of time to wait when receiving a response from the health check, in milliseconds. + */ + timeoutMillis: VirtualGatewayHealthCheckTimeoutMillis; + /** + * The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + */ + unhealthyThreshold: VirtualGatewayHealthCheckThreshold; + } + export type VirtualGatewayHealthCheckThreshold = number; + export type VirtualGatewayHealthCheckTimeoutMillis = number; + export interface VirtualGatewayHttp2ConnectionPool { + /** + * Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. + */ + maxRequests: MaxRequests; + } + export interface VirtualGatewayHttpConnectionPool { + /** + * Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. + */ + maxConnections: MaxConnections; + /** + * Number of overflowing requests after max_connections Envoy will queue to upstream cluster. + */ + maxPendingRequests?: MaxPendingRequests; + } + export type VirtualGatewayList = VirtualGatewayRef[]; + export interface VirtualGatewayListener { + /** + * The connection pool information for the virtual gateway listener. + */ + connectionPool?: VirtualGatewayConnectionPool; + /** + * The health check information for the listener. + */ + healthCheck?: VirtualGatewayHealthCheckPolicy; + /** + * The port mapping information for the listener. + */ + portMapping: VirtualGatewayPortMapping; + /** + * A reference to an object that represents the Transport Layer Security (TLS) properties for the listener. + */ + tls?: VirtualGatewayListenerTls; + } + export interface VirtualGatewayListenerTls { + /** + * An object that represents a Transport Layer Security (TLS) certificate. + */ + certificate: VirtualGatewayListenerTlsCertificate; + /** + * Specify one of the following modes. STRICT – Listener only accepts connections with TLS enabled. PERMISSIVE – Listener accepts connections with or without TLS enabled. DISABLED – Listener only accepts connections without TLS. + */ + mode: VirtualGatewayListenerTlsMode; + /** + * A reference to an object that represents a virtual gateway's listener's Transport Layer Security (TLS) validation context. + */ + validation?: VirtualGatewayListenerTlsValidationContext; + } + export interface VirtualGatewayListenerTlsAcmCertificate { + /** + * The Amazon Resource Name (ARN) for the certificate. The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see Transport Layer Security (TLS). + */ + certificateArn: Arn; + } + export interface VirtualGatewayListenerTlsCertificate { + /** + * A reference to an object that represents an Certificate Manager certificate. + */ + acm?: VirtualGatewayListenerTlsAcmCertificate; + /** + * A reference to an object that represents a local file certificate. + */ + file?: VirtualGatewayListenerTlsFileCertificate; + /** + * A reference to an object that represents a virtual gateway's listener's Secret Discovery Service certificate. + */ + sds?: VirtualGatewayListenerTlsSdsCertificate; + } + export interface VirtualGatewayListenerTlsFileCertificate { + /** + * The certificate chain for the certificate. + */ + certificateChain: FilePath; + /** + * The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + */ + privateKey: FilePath; + } + export type VirtualGatewayListenerTlsMode = "STRICT"|"PERMISSIVE"|"DISABLED"|string; + export interface VirtualGatewayListenerTlsSdsCertificate { + /** + * A reference to an object that represents the name of the secret secret requested from the Secret Discovery Service provider representing Transport Layer Security (TLS) materials like a certificate or certificate chain. + */ + secretName: VirtualGatewaySdsSecretName; + } + export interface VirtualGatewayListenerTlsValidationContext { + /** + * A reference to an object that represents the SANs for a virtual gateway listener's Transport Layer Security (TLS) validation context. + */ + subjectAlternativeNames?: SubjectAlternativeNames; + /** + * A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. + */ + trust: VirtualGatewayListenerTlsValidationContextTrust; + } + export interface VirtualGatewayListenerTlsValidationContextTrust { + /** + * An object that represents a Transport Layer Security (TLS) validation context trust for a local file. + */ + file?: VirtualGatewayTlsValidationContextFileTrust; + /** + * A reference to an object that represents a virtual gateway's listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust. + */ + sds?: VirtualGatewayTlsValidationContextSdsTrust; + } + export type VirtualGatewayListeners = VirtualGatewayListener[]; + export interface VirtualGatewayLogging { + /** + * The access log configuration. + */ + accessLog?: VirtualGatewayAccessLog; + } + export interface VirtualGatewayPortMapping { + /** + * The port used for the port mapping. Specify one protocol. + */ + port: PortNumber; + /** + * The protocol used for the port mapping. + */ + protocol: VirtualGatewayPortProtocol; + } + export type VirtualGatewayPortProtocol = "http"|"http2"|"grpc"|string; + export interface VirtualGatewayRef { + /** + * The full Amazon Resource Name (ARN) for the resource. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The name of the service mesh that the resource resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + /** + * The name of the resource. + */ + virtualGatewayName: ResourceName; + } + export type VirtualGatewaySdsSecretName = string; + export interface VirtualGatewaySpec { + /** + * A reference to an object that represents the defaults for backends. + */ + backendDefaults?: VirtualGatewayBackendDefaults; + /** + * The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + */ + listeners: VirtualGatewayListeners; + logging?: VirtualGatewayLogging; + } + export interface VirtualGatewayStatus { + /** + * The current status. + */ + status: VirtualGatewayStatusCode; + } + export type VirtualGatewayStatusCode = "ACTIVE"|"INACTIVE"|"DELETED"|string; + export interface VirtualGatewayTlsValidationContext { + /** + * A reference to an object that represents the SANs for a virtual gateway's listener's Transport Layer Security (TLS) validation context. + */ + subjectAlternativeNames?: SubjectAlternativeNames; + /** + * A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. + */ + trust: VirtualGatewayTlsValidationContextTrust; + } + export interface VirtualGatewayTlsValidationContextAcmTrust { + /** + * One or more ACM Amazon Resource Name (ARN)s. + */ + certificateAuthorityArns: VirtualGatewayCertificateAuthorityArns; + } + export interface VirtualGatewayTlsValidationContextFileTrust { + /** + * The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on. + */ + certificateChain: FilePath; + } + export interface VirtualGatewayTlsValidationContextSdsTrust { + /** + * A reference to an object that represents the name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. + */ + secretName: VirtualGatewaySdsSecretName; + } + export interface VirtualGatewayTlsValidationContextTrust { + /** + * A reference to an object that represents a Transport Layer Security (TLS) validation context trust for an Certificate Manager certificate. + */ + acm?: VirtualGatewayTlsValidationContextAcmTrust; + /** + * An object that represents a Transport Layer Security (TLS) validation context trust for a local file. + */ + file?: VirtualGatewayTlsValidationContextFileTrust; + /** + * A reference to an object that represents a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. + */ + sds?: VirtualGatewayTlsValidationContextSdsTrust; + } + export interface VirtualNodeConnectionPool { + /** + * An object that represents a type of connection pool. + */ + grpc?: VirtualNodeGrpcConnectionPool; + /** + * An object that represents a type of connection pool. + */ + http?: VirtualNodeHttpConnectionPool; + /** + * An object that represents a type of connection pool. + */ + http2?: VirtualNodeHttp2ConnectionPool; + /** + * An object that represents a type of connection pool. + */ + tcp?: VirtualNodeTcpConnectionPool; + } + export interface VirtualNodeData { + /** + * The name of the service mesh that the virtual node resides in. + */ + meshName: ResourceName; + /** + * The associated metadata for the virtual node. + */ + metadata: ResourceMetadata; + /** + * The specifications of the virtual node. + */ + spec: VirtualNodeSpec; + /** + * The current status for the virtual node. + */ + status: VirtualNodeStatus; + /** + * The name of the virtual node. + */ + virtualNodeName: ResourceName; + } + export interface VirtualNodeGrpcConnectionPool { + /** + * Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. + */ + maxRequests: MaxRequests; + } + export interface VirtualNodeHttp2ConnectionPool { + /** + * Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. + */ + maxRequests: MaxRequests; + } + export interface VirtualNodeHttpConnectionPool { + /** + * Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. + */ + maxConnections: MaxConnections; + /** + * Number of overflowing requests after max_connections Envoy will queue to upstream cluster. + */ + maxPendingRequests?: MaxPendingRequests; + } + export type VirtualNodeList = VirtualNodeRef[]; + export interface VirtualNodeRef { + /** + * The full Amazon Resource Name (ARN) for the virtual node. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The name of the service mesh that the virtual node resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + /** + * The name of the virtual node. + */ + virtualNodeName: ResourceName; + } + export interface VirtualNodeServiceProvider { + /** + * The name of the virtual node that is acting as a service provider. + */ + virtualNodeName: ResourceName; + } + export interface VirtualNodeSpec { + /** + * A reference to an object that represents the defaults for backends. + */ + backendDefaults?: BackendDefaults; + /** + * The backends that the virtual node is expected to send outbound traffic to. + */ + backends?: Backends; + /** + * The listener that the virtual node is expected to receive inbound traffic from. You can specify one listener. + */ + listeners?: Listeners; + /** + * The inbound and outbound access logging information for the virtual node. + */ + logging?: Logging; + /** + * The service discovery information for the virtual node. If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a listener, then you must specify service discovery information. + */ + serviceDiscovery?: ServiceDiscovery; + } + export interface VirtualNodeStatus { + /** + * The current status of the virtual node. + */ + status: VirtualNodeStatusCode; + } + export type VirtualNodeStatusCode = "ACTIVE"|"INACTIVE"|"DELETED"|string; + export interface VirtualNodeTcpConnectionPool { + /** + * Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. + */ + maxConnections: MaxConnections; + } + export interface VirtualRouterData { + /** + * The name of the service mesh that the virtual router resides in. + */ + meshName: ResourceName; + /** + * The associated metadata for the virtual router. + */ + metadata: ResourceMetadata; + /** + * The specifications of the virtual router. + */ + spec: VirtualRouterSpec; + /** + * The current status of the virtual router. + */ + status: VirtualRouterStatus; + /** + * The name of the virtual router. + */ + virtualRouterName: ResourceName; + } + export type VirtualRouterList = VirtualRouterRef[]; + export interface VirtualRouterListener { + portMapping: PortMapping; + } + export type VirtualRouterListeners = VirtualRouterListener[]; + export interface VirtualRouterRef { + /** + * The full Amazon Resource Name (ARN) for the virtual router. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The name of the service mesh that the virtual router resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + /** + * The name of the virtual router. + */ + virtualRouterName: ResourceName; + } + export interface VirtualRouterServiceProvider { + /** + * The name of the virtual router that is acting as a service provider. + */ + virtualRouterName: ResourceName; + } + export interface VirtualRouterSpec { + /** + * The listeners that the virtual router is expected to receive inbound traffic from. You can specify one listener. + */ + listeners?: VirtualRouterListeners; + } + export interface VirtualRouterStatus { + /** + * The current status of the virtual router. + */ + status: VirtualRouterStatusCode; + } + export type VirtualRouterStatusCode = "ACTIVE"|"INACTIVE"|"DELETED"|string; + export interface VirtualServiceBackend { + /** + * A reference to an object that represents the client policy for a backend. + */ + clientPolicy?: ClientPolicy; + /** + * The name of the virtual service that is acting as a virtual node backend. + */ + virtualServiceName: ServiceName; + } + export interface VirtualServiceData { + /** + * The name of the service mesh that the virtual service resides in. + */ + meshName: ResourceName; + metadata: ResourceMetadata; + /** + * The specifications of the virtual service. + */ + spec: VirtualServiceSpec; + /** + * The current status of the virtual service. + */ + status: VirtualServiceStatus; + /** + * The name of the virtual service. + */ + virtualServiceName: ServiceName; + } + export type VirtualServiceList = VirtualServiceRef[]; + export interface VirtualServiceProvider { + /** + * The virtual node associated with a virtual service. + */ + virtualNode?: VirtualNodeServiceProvider; + /** + * The virtual router associated with a virtual service. + */ + virtualRouter?: VirtualRouterServiceProvider; + } + export interface VirtualServiceRef { + /** + * The full Amazon Resource Name (ARN) for the virtual service. + */ + arn: Arn; + /** + * The Unix epoch timestamp in seconds for when the resource was created. + */ + createdAt: Timestamp; + /** + * The Unix epoch timestamp in seconds for when the resource was last updated. + */ + lastUpdatedAt: Timestamp; + /** + * The name of the service mesh that the virtual service resides in. + */ + meshName: ResourceName; + /** + * The AWS IAM account ID of the service mesh owner. If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with shared meshes. + */ + meshOwner: AccountId; + /** + * The AWS IAM account ID of the resource owner. If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with shared meshes. + */ + resourceOwner: AccountId; + /** + * The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated. + */ + version: Long; + /** + * The name of the virtual service. + */ + virtualServiceName: ServiceName; + } + export interface VirtualServiceSpec { + /** + * The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router. + */ + provider?: VirtualServiceProvider; + } + export interface VirtualServiceStatus { + /** + * The current status of the virtual service. + */ + status: VirtualServiceStatusCode; + } + export type VirtualServiceStatusCode = "ACTIVE"|"INACTIVE"|"DELETED"|string; + export interface WeightedTarget { + /** + * The virtual node to associate with the weighted target. + */ + virtualNode: ResourceName; + /** + * The relative weight of the weighted target. + */ + weight: PercentInt; + } + export type WeightedTargets = WeightedTarget[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-10-01"|"2018-10-01"|"2019-01-25"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AppMesh client. + */ + export import Types = AppMesh; +} +export = AppMesh; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appmesh.js b/justdanceonline-main/node_modules/aws-sdk/clients/appmesh.js new file mode 100644 index 0000000000000000000000000000000000000000..6ef1c5e0d3d69afeef34b242e7a9a00b02040645 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appmesh.js @@ -0,0 +1,27 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['appmesh'] = {}; +AWS.AppMesh = Service.defineService('appmesh', ['2018-10-01', '2018-10-01*', '2019-01-25']); +Object.defineProperty(apiLoader.services['appmesh'], '2018-10-01', { + get: function get() { + var model = require('../apis/appmesh-2018-10-01.min.json'); + model.paginators = require('../apis/appmesh-2018-10-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['appmesh'], '2019-01-25', { + get: function get() { + var model = require('../apis/appmesh-2019-01-25.min.json'); + model.paginators = require('../apis/appmesh-2019-01-25.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AppMesh; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apprunner.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/apprunner.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..b3417e41e63ab628ef577150fa8bf6116fb15cd3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apprunner.d.ts @@ -0,0 +1,1127 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AppRunner extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AppRunner.Types.ClientConfiguration) + config: Config & AppRunner.Types.ClientConfiguration; + /** + * Associate your own domain name with the AWS App Runner subdomain URL of your App Runner service. After you call AssociateCustomDomain and receive a successful response, use the information in the CustomDomain record that's returned to add CNAME records to your Domain Name System (DNS). For each mapped domain name, add a mapping to the target App Runner subdomain and one or more certificate validation records. App Runner then performs DNS validation to verify that you own or control the domain name that you associated. App Runner tracks domain validity in a certificate stored in AWS Certificate Manager (ACM). + */ + associateCustomDomain(params: AppRunner.Types.AssociateCustomDomainRequest, callback?: (err: AWSError, data: AppRunner.Types.AssociateCustomDomainResponse) => void): Request; + /** + * Associate your own domain name with the AWS App Runner subdomain URL of your App Runner service. After you call AssociateCustomDomain and receive a successful response, use the information in the CustomDomain record that's returned to add CNAME records to your Domain Name System (DNS). For each mapped domain name, add a mapping to the target App Runner subdomain and one or more certificate validation records. App Runner then performs DNS validation to verify that you own or control the domain name that you associated. App Runner tracks domain validity in a certificate stored in AWS Certificate Manager (ACM). + */ + associateCustomDomain(callback?: (err: AWSError, data: AppRunner.Types.AssociateCustomDomainResponse) => void): Request; + /** + * Create an AWS App Runner automatic scaling configuration resource. App Runner requires this resource when you create App Runner services that require non-default auto scaling settings. You can share an auto scaling configuration across multiple services. Create multiple revisions of a configuration by using the same AutoScalingConfigurationName and different AutoScalingConfigurationRevision values. When you create a service, you can set it to use the latest active revision of an auto scaling configuration or a specific revision. Configure a higher MinSize to increase the spread of your App Runner service over more Availability Zones in the AWS Region. The tradeoff is a higher minimal cost. Configure a lower MaxSize to control your cost. The tradeoff is lower responsiveness during peak demand. + */ + createAutoScalingConfiguration(params: AppRunner.Types.CreateAutoScalingConfigurationRequest, callback?: (err: AWSError, data: AppRunner.Types.CreateAutoScalingConfigurationResponse) => void): Request; + /** + * Create an AWS App Runner automatic scaling configuration resource. App Runner requires this resource when you create App Runner services that require non-default auto scaling settings. You can share an auto scaling configuration across multiple services. Create multiple revisions of a configuration by using the same AutoScalingConfigurationName and different AutoScalingConfigurationRevision values. When you create a service, you can set it to use the latest active revision of an auto scaling configuration or a specific revision. Configure a higher MinSize to increase the spread of your App Runner service over more Availability Zones in the AWS Region. The tradeoff is a higher minimal cost. Configure a lower MaxSize to control your cost. The tradeoff is lower responsiveness during peak demand. + */ + createAutoScalingConfiguration(callback?: (err: AWSError, data: AppRunner.Types.CreateAutoScalingConfigurationResponse) => void): Request; + /** + * Create an AWS App Runner connection resource. App Runner requires a connection resource when you create App Runner services that access private repositories from certain third-party providers. You can share a connection across multiple services. A connection resource is needed to access GitHub repositories. GitHub requires a user interface approval process through the App Runner console before you can use the connection. + */ + createConnection(params: AppRunner.Types.CreateConnectionRequest, callback?: (err: AWSError, data: AppRunner.Types.CreateConnectionResponse) => void): Request; + /** + * Create an AWS App Runner connection resource. App Runner requires a connection resource when you create App Runner services that access private repositories from certain third-party providers. You can share a connection across multiple services. A connection resource is needed to access GitHub repositories. GitHub requires a user interface approval process through the App Runner console before you can use the connection. + */ + createConnection(callback?: (err: AWSError, data: AppRunner.Types.CreateConnectionResponse) => void): Request; + /** + * Create an AWS App Runner service. After the service is created, the action also automatically starts a deployment. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + createService(params: AppRunner.Types.CreateServiceRequest, callback?: (err: AWSError, data: AppRunner.Types.CreateServiceResponse) => void): Request; + /** + * Create an AWS App Runner service. After the service is created, the action also automatically starts a deployment. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + createService(callback?: (err: AWSError, data: AppRunner.Types.CreateServiceResponse) => void): Request; + /** + * Delete an AWS App Runner automatic scaling configuration resource. You can delete a specific revision or the latest active revision. You can't delete a configuration that's used by one or more App Runner services. + */ + deleteAutoScalingConfiguration(params: AppRunner.Types.DeleteAutoScalingConfigurationRequest, callback?: (err: AWSError, data: AppRunner.Types.DeleteAutoScalingConfigurationResponse) => void): Request; + /** + * Delete an AWS App Runner automatic scaling configuration resource. You can delete a specific revision or the latest active revision. You can't delete a configuration that's used by one or more App Runner services. + */ + deleteAutoScalingConfiguration(callback?: (err: AWSError, data: AppRunner.Types.DeleteAutoScalingConfigurationResponse) => void): Request; + /** + * Delete an AWS App Runner connection. You must first ensure that there are no running App Runner services that use this connection. If there are any, the DeleteConnection action fails. + */ + deleteConnection(params: AppRunner.Types.DeleteConnectionRequest, callback?: (err: AWSError, data: AppRunner.Types.DeleteConnectionResponse) => void): Request; + /** + * Delete an AWS App Runner connection. You must first ensure that there are no running App Runner services that use this connection. If there are any, the DeleteConnection action fails. + */ + deleteConnection(callback?: (err: AWSError, data: AppRunner.Types.DeleteConnectionResponse) => void): Request; + /** + * Delete an AWS App Runner service. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + deleteService(params: AppRunner.Types.DeleteServiceRequest, callback?: (err: AWSError, data: AppRunner.Types.DeleteServiceResponse) => void): Request; + /** + * Delete an AWS App Runner service. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + deleteService(callback?: (err: AWSError, data: AppRunner.Types.DeleteServiceResponse) => void): Request; + /** + * Return a full description of an AWS App Runner automatic scaling configuration resource. + */ + describeAutoScalingConfiguration(params: AppRunner.Types.DescribeAutoScalingConfigurationRequest, callback?: (err: AWSError, data: AppRunner.Types.DescribeAutoScalingConfigurationResponse) => void): Request; + /** + * Return a full description of an AWS App Runner automatic scaling configuration resource. + */ + describeAutoScalingConfiguration(callback?: (err: AWSError, data: AppRunner.Types.DescribeAutoScalingConfigurationResponse) => void): Request; + /** + * Return a description of custom domain names that are associated with an AWS App Runner service. + */ + describeCustomDomains(params: AppRunner.Types.DescribeCustomDomainsRequest, callback?: (err: AWSError, data: AppRunner.Types.DescribeCustomDomainsResponse) => void): Request; + /** + * Return a description of custom domain names that are associated with an AWS App Runner service. + */ + describeCustomDomains(callback?: (err: AWSError, data: AppRunner.Types.DescribeCustomDomainsResponse) => void): Request; + /** + * Return a full description of an AWS App Runner service. + */ + describeService(params: AppRunner.Types.DescribeServiceRequest, callback?: (err: AWSError, data: AppRunner.Types.DescribeServiceResponse) => void): Request; + /** + * Return a full description of an AWS App Runner service. + */ + describeService(callback?: (err: AWSError, data: AppRunner.Types.DescribeServiceResponse) => void): Request; + /** + * Disassociate a custom domain name from an AWS App Runner service. Certificates tracking domain validity are associated with a custom domain and are stored in AWS Certificate Manager (ACM). These certificates aren't deleted as part of this action. App Runner delays certificate deletion for 30 days after a domain is disassociated from your service. + */ + disassociateCustomDomain(params: AppRunner.Types.DisassociateCustomDomainRequest, callback?: (err: AWSError, data: AppRunner.Types.DisassociateCustomDomainResponse) => void): Request; + /** + * Disassociate a custom domain name from an AWS App Runner service. Certificates tracking domain validity are associated with a custom domain and are stored in AWS Certificate Manager (ACM). These certificates aren't deleted as part of this action. App Runner delays certificate deletion for 30 days after a domain is disassociated from your service. + */ + disassociateCustomDomain(callback?: (err: AWSError, data: AppRunner.Types.DisassociateCustomDomainResponse) => void): Request; + /** + * Returns a list of AWS App Runner automatic scaling configurations in your AWS account. You can query the revisions for a specific configuration name or the revisions for all configurations in your account. You can optionally query only the latest revision of each requested name. + */ + listAutoScalingConfigurations(params: AppRunner.Types.ListAutoScalingConfigurationsRequest, callback?: (err: AWSError, data: AppRunner.Types.ListAutoScalingConfigurationsResponse) => void): Request; + /** + * Returns a list of AWS App Runner automatic scaling configurations in your AWS account. You can query the revisions for a specific configuration name or the revisions for all configurations in your account. You can optionally query only the latest revision of each requested name. + */ + listAutoScalingConfigurations(callback?: (err: AWSError, data: AppRunner.Types.ListAutoScalingConfigurationsResponse) => void): Request; + /** + * Returns a list of AWS App Runner connections that are associated with your AWS account. + */ + listConnections(params: AppRunner.Types.ListConnectionsRequest, callback?: (err: AWSError, data: AppRunner.Types.ListConnectionsResponse) => void): Request; + /** + * Returns a list of AWS App Runner connections that are associated with your AWS account. + */ + listConnections(callback?: (err: AWSError, data: AppRunner.Types.ListConnectionsResponse) => void): Request; + /** + * Return a list of operations that occurred on an AWS App Runner service. The resulting list of OperationSummary objects is sorted in reverse chronological order. The first object on the list represents the last started operation. + */ + listOperations(params: AppRunner.Types.ListOperationsRequest, callback?: (err: AWSError, data: AppRunner.Types.ListOperationsResponse) => void): Request; + /** + * Return a list of operations that occurred on an AWS App Runner service. The resulting list of OperationSummary objects is sorted in reverse chronological order. The first object on the list represents the last started operation. + */ + listOperations(callback?: (err: AWSError, data: AppRunner.Types.ListOperationsResponse) => void): Request; + /** + * Returns a list of running AWS App Runner services in your AWS account. + */ + listServices(params: AppRunner.Types.ListServicesRequest, callback?: (err: AWSError, data: AppRunner.Types.ListServicesResponse) => void): Request; + /** + * Returns a list of running AWS App Runner services in your AWS account. + */ + listServices(callback?: (err: AWSError, data: AppRunner.Types.ListServicesResponse) => void): Request; + /** + * List tags that are associated with for an AWS App Runner resource. The response contains a list of tag key-value pairs. + */ + listTagsForResource(params: AppRunner.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: AppRunner.Types.ListTagsForResourceResponse) => void): Request; + /** + * List tags that are associated with for an AWS App Runner resource. The response contains a list of tag key-value pairs. + */ + listTagsForResource(callback?: (err: AWSError, data: AppRunner.Types.ListTagsForResourceResponse) => void): Request; + /** + * Pause an active AWS App Runner service. App Runner reduces compute capacity for the service to zero and loses state (for example, ephemeral storage is removed). This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + pauseService(params: AppRunner.Types.PauseServiceRequest, callback?: (err: AWSError, data: AppRunner.Types.PauseServiceResponse) => void): Request; + /** + * Pause an active AWS App Runner service. App Runner reduces compute capacity for the service to zero and loses state (for example, ephemeral storage is removed). This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + pauseService(callback?: (err: AWSError, data: AppRunner.Types.PauseServiceResponse) => void): Request; + /** + * Resume an active AWS App Runner service. App Runner provisions compute capacity for the service. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + resumeService(params: AppRunner.Types.ResumeServiceRequest, callback?: (err: AWSError, data: AppRunner.Types.ResumeServiceResponse) => void): Request; + /** + * Resume an active AWS App Runner service. App Runner provisions compute capacity for the service. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + resumeService(callback?: (err: AWSError, data: AppRunner.Types.ResumeServiceResponse) => void): Request; + /** + * Initiate a manual deployment of the latest commit in a source code repository or the latest image in a source image repository to an AWS App Runner service. For a source code repository, App Runner retrieves the commit and builds a Docker image. For a source image repository, App Runner retrieves the latest Docker image. In both cases, App Runner then deploys the new image to your service and starts a new container instance. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + startDeployment(params: AppRunner.Types.StartDeploymentRequest, callback?: (err: AWSError, data: AppRunner.Types.StartDeploymentResponse) => void): Request; + /** + * Initiate a manual deployment of the latest commit in a source code repository or the latest image in a source image repository to an AWS App Runner service. For a source code repository, App Runner retrieves the commit and builds a Docker image. For a source image repository, App Runner retrieves the latest Docker image. In both cases, App Runner then deploys the new image to your service and starts a new container instance. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + startDeployment(callback?: (err: AWSError, data: AppRunner.Types.StartDeploymentResponse) => void): Request; + /** + * Add tags to, or update the tag values of, an App Runner resource. A tag is a key-value pair. + */ + tagResource(params: AppRunner.Types.TagResourceRequest, callback?: (err: AWSError, data: AppRunner.Types.TagResourceResponse) => void): Request; + /** + * Add tags to, or update the tag values of, an App Runner resource. A tag is a key-value pair. + */ + tagResource(callback?: (err: AWSError, data: AppRunner.Types.TagResourceResponse) => void): Request; + /** + * Remove tags from an App Runner resource. + */ + untagResource(params: AppRunner.Types.UntagResourceRequest, callback?: (err: AWSError, data: AppRunner.Types.UntagResourceResponse) => void): Request; + /** + * Remove tags from an App Runner resource. + */ + untagResource(callback?: (err: AWSError, data: AppRunner.Types.UntagResourceResponse) => void): Request; + /** + * Update an AWS App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service. These can be set only when you create the service. To update the tags applied to your service, use the separate actions TagResource and UntagResource. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + updateService(params: AppRunner.Types.UpdateServiceRequest, callback?: (err: AWSError, data: AppRunner.Types.UpdateServiceResponse) => void): Request; + /** + * Update an AWS App Runner service. You can update the source configuration and instance configuration of the service. You can also update the ARN of the auto scaling configuration resource that's associated with the service. However, you can't change the name or the encryption configuration of the service. These can be set only when you create the service. To update the tags applied to your service, use the separate actions TagResource and UntagResource. This is an asynchronous operation. On a successful call, you can use the returned OperationId and the ListOperations call to track the operation's progress. + */ + updateService(callback?: (err: AWSError, data: AppRunner.Types.UpdateServiceResponse) => void): Request; +} +declare namespace AppRunner { + export type ASConfigMaxConcurrency = number; + export type ASConfigMaxSize = number; + export type ASConfigMinSize = number; + export type AppRunnerResourceArn = string; + export interface AssociateCustomDomainRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want to associate a custom domain name with. + */ + ServiceArn: AppRunnerResourceArn; + /** + * A custom domain endpoint to associate. Specify a root domain (for example, example.com), a subdomain (for example, login.example.com or admin.login.example.com), or a wildcard (for example, *.example.com). + */ + DomainName: DomainName; + /** + * Set to true to associate the subdomain www.DomainName with the App Runner service in addition to the base domain. Default: true + */ + EnableWWWSubdomain?: NullableBoolean; + } + export interface AssociateCustomDomainResponse { + /** + * The App Runner subdomain of the App Runner service. The custom domain name is mapped to this target name. + */ + DNSTarget: String; + /** + * The Amazon Resource Name (ARN) of the App Runner service with which a custom domain name is associated. + */ + ServiceArn: AppRunnerResourceArn; + /** + * A description of the domain name that's being associated. + */ + CustomDomain: CustomDomain; + } + export interface AuthenticationConfiguration { + /** + * The Amazon Resource Name (ARN) of the App Runner connection that enables the App Runner service to connect to a source repository. It's required for GitHub code repositories. + */ + ConnectionArn?: AppRunnerResourceArn; + /** + * The Amazon Resource Name (ARN) of the IAM role that grants the App Runner service access to a source repository. It's required for ECR image repositories (but not for ECR Public repositories). + */ + AccessRoleArn?: RoleArn; + } + export interface AutoScalingConfiguration { + /** + * The Amazon Resource Name (ARN) of this auto scaling configuration. + */ + AutoScalingConfigurationArn?: AppRunnerResourceArn; + /** + * The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration. + */ + AutoScalingConfigurationName?: AutoScalingConfigurationName; + /** + * The revision of this auto scaling configuration. It's unique among all the active configurations ("Status": "ACTIVE") that share the same AutoScalingConfigurationName. + */ + AutoScalingConfigurationRevision?: Integer; + /** + * It's set to true for the configuration with the highest Revision among all configurations that share the same Name. It's set to false otherwise. + */ + Latest?: Boolean; + /** + * The current state of the auto scaling configuration. If the status of a configuration revision is INACTIVE, it was deleted and can't be used. Inactive configuration revisions are permanently removed some time after they are deleted. + */ + Status?: AutoScalingConfigurationStatus; + /** + * The maximum number of concurrent requests that an instance processes. If the number of concurrent requests exceeds this limit, App Runner scales the service up. + */ + MaxConcurrency?: Integer; + /** + * The minimum number of instances that App Runner provisions for a service. The service always has at least MinSize provisioned instances. Some of them actively serve traffic. The rest of them (provisioned and inactive instances) are a cost-effective compute capacity reserve and are ready to be quickly activated. You pay for memory usage of all the provisioned instances. You pay for CPU usage of only the active subset. App Runner temporarily doubles the number of provisioned instances during deployments, to maintain the same capacity for both old and new code. + */ + MinSize?: Integer; + /** + * The maximum number of instances that a service scales up to. At most MaxSize instances actively serve traffic for your service. + */ + MaxSize?: Integer; + /** + * The time when the auto scaling configuration was created. It's in Unix time stamp format. + */ + CreatedAt?: Timestamp; + /** + * The time when the auto scaling configuration was deleted. It's in Unix time stamp format. + */ + DeletedAt?: Timestamp; + } + export type AutoScalingConfigurationName = string; + export type AutoScalingConfigurationStatus = "ACTIVE"|"INACTIVE"|string; + export interface AutoScalingConfigurationSummary { + /** + * The Amazon Resource Name (ARN) of this auto scaling configuration. + */ + AutoScalingConfigurationArn?: AppRunnerResourceArn; + /** + * The customer-provided auto scaling configuration name. It can be used in multiple revisions of a configuration. + */ + AutoScalingConfigurationName?: AutoScalingConfigurationName; + /** + * The revision of this auto scaling configuration. It's unique among all the active configurations ("Status": "ACTIVE") with the same AutoScalingConfigurationName. + */ + AutoScalingConfigurationRevision?: Integer; + } + export type AutoScalingConfigurationSummaryList = AutoScalingConfigurationSummary[]; + export type Boolean = boolean; + export type BuildCommand = string; + export interface CertificateValidationRecord { + /** + * The certificate CNAME record name. + */ + Name?: String; + /** + * The record type, always CNAME. + */ + Type?: String; + /** + * The certificate CNAME record value. + */ + Value?: String; + /** + * The current state of the certificate CNAME record validation. It should change to SUCCESS after App Runner completes validation with your DNS. + */ + Status?: CertificateValidationRecordStatus; + } + export type CertificateValidationRecordList = CertificateValidationRecord[]; + export type CertificateValidationRecordStatus = "PENDING_VALIDATION"|"SUCCESS"|"FAILED"|string; + export interface CodeConfiguration { + /** + * The source of the App Runner configuration. Values are interpreted as follows: REPOSITORY – App Runner reads configuration values from the apprunner.yaml file in the source code repository and ignores CodeConfigurationValues. API – App Runner uses configuration values provided in CodeConfigurationValues and ignores the apprunner.yaml file in the source code repository. + */ + ConfigurationSource: ConfigurationSource; + /** + * The basic configuration for building and running the App Runner service. Use it to quickly launch an App Runner service without providing a apprunner.yaml file in the source code repository (or ignoring the file if it exists). + */ + CodeConfigurationValues?: CodeConfigurationValues; + } + export interface CodeConfigurationValues { + /** + * A runtime environment type for building and running an App Runner service. It represents a programming language runtime. + */ + Runtime: Runtime; + /** + * The command App Runner runs to build your application. + */ + BuildCommand?: BuildCommand; + /** + * The command App Runner runs to start your application. + */ + StartCommand?: StartCommand; + /** + * The port that your application listens to in the container. Default: 8080 + */ + Port?: String; + /** + * The environment variables that are available to your running App Runner service. An array of key-value pairs. Keys with a prefix of AWSAPPRUNNER are reserved for system use and aren't valid. + */ + RuntimeEnvironmentVariables?: RuntimeEnvironmentVariables; + } + export interface CodeRepository { + /** + * The location of the repository that contains the source code. + */ + RepositoryUrl: String; + /** + * The version that should be used within the source code repository. + */ + SourceCodeVersion: SourceCodeVersion; + /** + * Configuration for building and running the service from a source code repository. + */ + CodeConfiguration?: CodeConfiguration; + } + export type ConfigurationSource = "REPOSITORY"|"API"|string; + export interface Connection { + /** + * The customer-provided connection name. + */ + ConnectionName?: ConnectionName; + /** + * The Amazon Resource Name (ARN) of this connection. + */ + ConnectionArn?: AppRunnerResourceArn; + /** + * The source repository provider. + */ + ProviderType?: ProviderType; + /** + * The current state of the App Runner connection. When the state is AVAILABLE, you can use the connection to create an App Runner service. + */ + Status?: ConnectionStatus; + /** + * The App Runner connection creation time, expressed as a Unix time stamp. + */ + CreatedAt?: Timestamp; + } + export type ConnectionName = string; + export type ConnectionStatus = "PENDING_HANDSHAKE"|"AVAILABLE"|"ERROR"|"DELETED"|string; + export interface ConnectionSummary { + /** + * The customer-provided connection name. + */ + ConnectionName?: ConnectionName; + /** + * The Amazon Resource Name (ARN) of this connection. + */ + ConnectionArn?: AppRunnerResourceArn; + /** + * The source repository provider. + */ + ProviderType?: ProviderType; + /** + * The current state of the App Runner connection. When the state is AVAILABLE, you can use the connection to create an App Runner service. + */ + Status?: ConnectionStatus; + /** + * The App Runner connection creation time, expressed as a Unix time stamp. + */ + CreatedAt?: Timestamp; + } + export type ConnectionSummaryList = ConnectionSummary[]; + export type Cpu = string; + export interface CreateAutoScalingConfigurationRequest { + /** + * A name for the auto scaling configuration. When you use it for the first time in an AWS Region, App Runner creates revision number 1 of this name. When you use the same name in subsequent calls, App Runner creates incremental revisions of the configuration. + */ + AutoScalingConfigurationName: AutoScalingConfigurationName; + /** + * The maximum number of concurrent requests that you want an instance to process. If the number of concurrent requests exceeds this limit, App Runner scales up your service. Default: 100 + */ + MaxConcurrency?: ASConfigMaxConcurrency; + /** + * The minimum number of instances that App Runner provisions for your service. The service always has at least MinSize provisioned instances. Some of them actively serve traffic. The rest of them (provisioned and inactive instances) are a cost-effective compute capacity reserve and are ready to be quickly activated. You pay for memory usage of all the provisioned instances. You pay for CPU usage of only the active subset. App Runner temporarily doubles the number of provisioned instances during deployments, to maintain the same capacity for both old and new code. Default: 1 + */ + MinSize?: ASConfigMinSize; + /** + * The maximum number of instances that your service scales up to. At most MaxSize instances actively serve traffic for your service. Default: 25 + */ + MaxSize?: ASConfigMaxSize; + /** + * A list of metadata items that you can associate with your auto scaling configuration resource. A tag is a key-value pair. + */ + Tags?: TagList; + } + export interface CreateAutoScalingConfigurationResponse { + /** + * A description of the App Runner auto scaling configuration that's created by this request. + */ + AutoScalingConfiguration: AutoScalingConfiguration; + } + export interface CreateConnectionRequest { + /** + * A name for the new connection. It must be unique across all App Runner connections for the AWS account in the AWS Region. + */ + ConnectionName: ConnectionName; + /** + * The source repository provider. + */ + ProviderType: ProviderType; + /** + * A list of metadata items that you can associate with your connection resource. A tag is a key-value pair. + */ + Tags?: TagList; + } + export interface CreateConnectionResponse { + /** + * A description of the App Runner connection that's created by this request. + */ + Connection: Connection; + } + export interface CreateServiceRequest { + /** + * A name for the new service. It must be unique across all the running App Runner services in your AWS account in the AWS Region. + */ + ServiceName: ServiceName; + /** + * The source to deploy to the App Runner service. It can be a code or an image repository. + */ + SourceConfiguration: SourceConfiguration; + /** + * The runtime configuration of instances (scaling units) of the App Runner service. + */ + InstanceConfiguration?: InstanceConfiguration; + /** + * An optional list of metadata items that you can associate with your service resource. A tag is a key-value pair. + */ + Tags?: TagList; + /** + * An optional custom encryption key that App Runner uses to encrypt the copy of your source repository that it maintains and your service logs. By default, App Runner uses an AWS managed CMK. + */ + EncryptionConfiguration?: EncryptionConfiguration; + /** + * The settings for the health check that AWS App Runner performs to monitor the health of your service. + */ + HealthCheckConfiguration?: HealthCheckConfiguration; + /** + * The Amazon Resource Name (ARN) of an App Runner automatic scaling configuration resource that you want to associate with your service. If not provided, App Runner associates the latest revision of a default auto scaling configuration. + */ + AutoScalingConfigurationArn?: AppRunnerResourceArn; + } + export interface CreateServiceResponse { + /** + * A description of the App Runner service that's created by this request. + */ + Service: Service; + /** + * The unique ID of the asynchronous operation that this request started. You can use it combined with the ListOperations call to track the operation's progress. + */ + OperationId: UUID; + } + export interface CustomDomain { + /** + * An associated custom domain endpoint. It can be a root domain (for example, example.com), a subdomain (for example, login.example.com or admin.login.example.com), or a wildcard (for example, *.example.com). + */ + DomainName: DomainName; + /** + * When true, the subdomain www.DomainName is associated with the App Runner service in addition to the base domain. + */ + EnableWWWSubdomain: NullableBoolean; + /** + * A list of certificate CNAME records that's used for this domain name. + */ + CertificateValidationRecords?: CertificateValidationRecordList; + /** + * The current state of the domain name association. + */ + Status: CustomDomainAssociationStatus; + } + export type CustomDomainAssociationStatus = "CREATING"|"CREATE_FAILED"|"ACTIVE"|"DELETING"|"DELETE_FAILED"|"PENDING_CERTIFICATE_DNS_VALIDATION"|"BINDING_CERTIFICATE"|string; + export type CustomDomainList = CustomDomain[]; + export interface DeleteAutoScalingConfigurationRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner auto scaling configuration that you want to delete. The ARN can be a full auto scaling configuration ARN, or a partial ARN ending with either .../name or .../name/revision . If a revision isn't specified, the latest active revision is deleted. + */ + AutoScalingConfigurationArn: AppRunnerResourceArn; + } + export interface DeleteAutoScalingConfigurationResponse { + /** + * A description of the App Runner auto scaling configuration that this request just deleted. + */ + AutoScalingConfiguration: AutoScalingConfiguration; + } + export interface DeleteConnectionRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner connection that you want to delete. + */ + ConnectionArn: AppRunnerResourceArn; + } + export interface DeleteConnectionResponse { + /** + * A description of the App Runner connection that this request just deleted. + */ + Connection?: Connection; + } + export interface DeleteServiceRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want to delete. + */ + ServiceArn: AppRunnerResourceArn; + } + export interface DeleteServiceResponse { + /** + * A description of the App Runner service that this request just deleted. + */ + Service: Service; + /** + * The unique ID of the asynchronous operation that this request started. You can use it combined with the ListOperations call to track the operation's progress. + */ + OperationId: UUID; + } + export interface DescribeAutoScalingConfigurationRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner auto scaling configuration that you want a description for. The ARN can be a full auto scaling configuration ARN, or a partial ARN ending with either .../name or .../name/revision . If a revision isn't specified, the latest active revision is described. + */ + AutoScalingConfigurationArn: AppRunnerResourceArn; + } + export interface DescribeAutoScalingConfigurationResponse { + /** + * A full description of the App Runner auto scaling configuration that you specified in this request. + */ + AutoScalingConfiguration: AutoScalingConfiguration; + } + export type DescribeCustomDomainsMaxResults = number; + export interface DescribeCustomDomainsRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want associated custom domain names to be described for. + */ + ServiceArn: AppRunnerResourceArn; + /** + * A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request. If you don't specify NextToken, the request retrieves the first result page. + */ + NextToken?: String; + /** + * The maximum number of results that each response (result page) can include. It's used for a paginated request. If you don't specify MaxResults, the request retrieves all available results in a single response. + */ + MaxResults?: DescribeCustomDomainsMaxResults; + } + export interface DescribeCustomDomainsResponse { + /** + * The App Runner subdomain of the App Runner service. The associated custom domain names are mapped to this target name. + */ + DNSTarget: String; + /** + * The Amazon Resource Name (ARN) of the App Runner service whose associated custom domain names you want to describe. + */ + ServiceArn: AppRunnerResourceArn; + /** + * A list of descriptions of custom domain names that are associated with the service. In a paginated request, the request returns up to MaxResults records per call. + */ + CustomDomains: CustomDomainList; + /** + * The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request. + */ + NextToken?: String; + } + export interface DescribeServiceRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want a description for. + */ + ServiceArn: AppRunnerResourceArn; + } + export interface DescribeServiceResponse { + /** + * A full description of the App Runner service that you specified in this request. + */ + Service: Service; + } + export interface DisassociateCustomDomainRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want to disassociate a custom domain name from. + */ + ServiceArn: AppRunnerResourceArn; + /** + * The domain name that you want to disassociate from the App Runner service. + */ + DomainName: DomainName; + } + export interface DisassociateCustomDomainResponse { + /** + * The App Runner subdomain of the App Runner service. The disassociated custom domain name was mapped to this target name. + */ + DNSTarget: String; + /** + * The Amazon Resource Name (ARN) of the App Runner service that a custom domain name is disassociated from. + */ + ServiceArn: AppRunnerResourceArn; + /** + * A description of the domain name that's being disassociated. + */ + CustomDomain: CustomDomain; + } + export type DomainName = string; + export interface EncryptionConfiguration { + /** + * The ARN of the KMS key that's used for encryption. + */ + KmsKey: KmsKeyArn; + } + export interface HealthCheckConfiguration { + /** + * The IP protocol that App Runner uses to perform health checks for your service. If you set Protocol to HTTP, App Runner sends health check requests to the HTTP path specified by Path. Default: TCP + */ + Protocol?: HealthCheckProtocol; + /** + * The URL that health check requests are sent to. Path is only applicable when you set Protocol to HTTP. Default: "/" + */ + Path?: String; + /** + * The time interval, in seconds, between health checks. Default: 5 + */ + Interval?: HealthCheckInterval; + /** + * The time, in seconds, to wait for a health check response before deciding it failed. Default: 2 + */ + Timeout?: HealthCheckTimeout; + /** + * The number of consecutive checks that must succeed before App Runner decides that the service is healthy. Default: 3 + */ + HealthyThreshold?: HealthCheckHealthyThreshold; + /** + * The number of consecutive checks that must fail before App Runner decides that the service is unhealthy. Default: 3 + */ + UnhealthyThreshold?: HealthCheckUnhealthyThreshold; + } + export type HealthCheckHealthyThreshold = number; + export type HealthCheckInterval = number; + export type HealthCheckProtocol = "TCP"|"HTTP"|string; + export type HealthCheckTimeout = number; + export type HealthCheckUnhealthyThreshold = number; + export interface ImageConfiguration { + /** + * Environment variables that are available to your running App Runner service. An array of key-value pairs. Keys with a prefix of AWSAPPRUNNER are reserved for system use and aren't valid. + */ + RuntimeEnvironmentVariables?: RuntimeEnvironmentVariables; + /** + * An optional command that App Runner runs to start the application in the source image. If specified, this command overrides the Docker image’s default start command. + */ + StartCommand?: String; + /** + * The port that your application listens to in the container. Default: 8080 + */ + Port?: String; + } + export type ImageIdentifier = string; + export interface ImageRepository { + /** + * The identifier of an image. For an image in Amazon Elastic Container Registry (Amazon ECR), this is an image name. For the image name format, see Pulling an image in the Amazon ECR User Guide. + */ + ImageIdentifier: ImageIdentifier; + /** + * Configuration for running the identified image. + */ + ImageConfiguration?: ImageConfiguration; + /** + * The type of the image repository. This reflects the repository provider and whether the repository is private or public. + */ + ImageRepositoryType: ImageRepositoryType; + } + export type ImageRepositoryType = "ECR"|"ECR_PUBLIC"|string; + export interface InstanceConfiguration { + /** + * The number of CPU units reserved for each instance of your App Runner service. Default: 1 vCPU + */ + Cpu?: Cpu; + /** + * The amount of memory, in MB or GB, reserved for each instance of your App Runner service. Default: 2 GB + */ + Memory?: Memory; + /** + * The Amazon Resource Name (ARN) of an IAM role that provides permissions to your App Runner service. These are permissions that your code needs when it calls any AWS APIs. + */ + InstanceRoleArn?: RoleArn; + } + export type Integer = number; + export type KmsKeyArn = string; + export interface ListAutoScalingConfigurationsRequest { + /** + * The name of the App Runner auto scaling configuration that you want to list. If specified, App Runner lists revisions that share this name. If not specified, App Runner returns revisions of all configurations. + */ + AutoScalingConfigurationName?: AutoScalingConfigurationName; + /** + * Set to true to list only the latest revision for each requested configuration name. Keep as false to list all revisions for each requested configuration name. Default: false + */ + LatestOnly?: Boolean; + /** + * The maximum number of results to include in each response (result page). It's used for a paginated request. If you don't specify MaxResults, the request retrieves all available results in a single response. + */ + MaxResults?: MaxResults; + /** + * A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones that are specified in the initial request. If you don't specify NextToken, the request retrieves the first result page. + */ + NextToken?: NextToken; + } + export interface ListAutoScalingConfigurationsResponse { + /** + * A list of summary information records for auto scaling configurations. In a paginated request, the request returns up to MaxResults records for each call. + */ + AutoScalingConfigurationSummaryList: AutoScalingConfigurationSummaryList; + /** + * The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request. + */ + NextToken?: NextToken; + } + export interface ListConnectionsRequest { + /** + * If specified, only this connection is returned. If not specified, the result isn't filtered by name. + */ + ConnectionName?: ConnectionName; + /** + * The maximum number of results to include in each response (result page). Used for a paginated request. If you don't specify MaxResults, the request retrieves all available results in a single response. + */ + MaxResults?: MaxResults; + /** + * A token from a previous result page. Used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request. If you don't specify NextToken, the request retrieves the first result page. + */ + NextToken?: NextToken; + } + export interface ListConnectionsResponse { + /** + * A list of summary information records for connections. In a paginated request, the request returns up to MaxResults records for each call. + */ + ConnectionSummaryList: ConnectionSummaryList; + /** + * The token that you can pass in a subsequent request to get the next result page. Returned in a paginated request. + */ + NextToken?: NextToken; + } + export type ListOperationsMaxResults = number; + export interface ListOperationsRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want a list of operations for. + */ + ServiceArn: AppRunnerResourceArn; + /** + * A token from a previous result page. It's used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request. If you don't specify NextToken, the request retrieves the first result page. + */ + NextToken?: String; + /** + * The maximum number of results to include in each response (result page). It's used for a paginated request. If you don't specify MaxResults, the request retrieves all available results in a single response. + */ + MaxResults?: ListOperationsMaxResults; + } + export interface ListOperationsResponse { + /** + * A list of operation summary information records. In a paginated request, the request returns up to MaxResults records for each call. + */ + OperationSummaryList?: OperationSummaryList; + /** + * The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request. + */ + NextToken?: String; + } + export interface ListServicesRequest { + /** + * A token from a previous result page. Used for a paginated request. The request retrieves the next result page. All other parameter values must be identical to the ones specified in the initial request. If you don't specify NextToken, the request retrieves the first result page. + */ + NextToken?: String; + /** + * The maximum number of results to include in each response (result page). It's used for a paginated request. If you don't specify MaxResults, the request retrieves all available results in a single response. + */ + MaxResults?: ServiceMaxResults; + } + export interface ListServicesResponse { + /** + * A list of service summary information records. In a paginated request, the request returns up to MaxResults records for each call. + */ + ServiceSummaryList: ServiceSummaryList; + /** + * The token that you can pass in a subsequent request to get the next result page. It's returned in a paginated request. + */ + NextToken?: String; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that a tag list is requested for. It must be the ARN of an App Runner resource. + */ + ResourceArn: AppRunnerResourceArn; + } + export interface ListTagsForResourceResponse { + /** + * A list of the tag key-value pairs that are associated with the resource. + */ + Tags?: TagList; + } + export type MaxResults = number; + export type Memory = string; + export type NextToken = string; + export type NullableBoolean = boolean; + export type OperationStatus = "PENDING"|"IN_PROGRESS"|"FAILED"|"SUCCEEDED"|"ROLLBACK_IN_PROGRESS"|"ROLLBACK_FAILED"|"ROLLBACK_SUCCEEDED"|string; + export interface OperationSummary { + /** + * A unique ID of this operation. It's unique in the scope of the App Runner service. + */ + Id?: UUID; + /** + * The type of operation. It indicates a specific action that occured. + */ + Type?: OperationType; + /** + * The current state of the operation. + */ + Status?: OperationStatus; + /** + * The Amazon Resource Name (ARN) of the resource that the operation acted on (for example, an App Runner service). + */ + TargetArn?: AppRunnerResourceArn; + /** + * The time when the operation started. It's in the Unix time stamp format. + */ + StartedAt?: Timestamp; + /** + * The time when the operation ended. It's in the Unix time stamp format. + */ + EndedAt?: Timestamp; + /** + * The time when the operation was last updated. It's in the Unix time stamp format. + */ + UpdatedAt?: Timestamp; + } + export type OperationSummaryList = OperationSummary[]; + export type OperationType = "START_DEPLOYMENT"|"CREATE_SERVICE"|"PAUSE_SERVICE"|"RESUME_SERVICE"|"DELETE_SERVICE"|string; + export interface PauseServiceRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want to pause. + */ + ServiceArn: AppRunnerResourceArn; + } + export interface PauseServiceResponse { + /** + * A description of the App Runner service that this request just paused. + */ + Service: Service; + /** + * The unique ID of the asynchronous operation that this request started. You can use it combined with the ListOperations call to track the operation's progress. + */ + OperationId?: UUID; + } + export type ProviderType = "GITHUB"|string; + export interface ResumeServiceRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want to resume. + */ + ServiceArn: AppRunnerResourceArn; + } + export interface ResumeServiceResponse { + /** + * A description of the App Runner service that this request just resumed. + */ + Service: Service; + /** + * The unique ID of the asynchronous operation that this request started. You can use it combined with the ListOperations call to track the operation's progress. + */ + OperationId?: UUID; + } + export type RoleArn = string; + export type Runtime = "PYTHON_3"|"NODEJS_12"|string; + export type RuntimeEnvironmentVariables = {[key: string]: RuntimeEnvironmentVariablesValue}; + export type RuntimeEnvironmentVariablesKey = string; + export type RuntimeEnvironmentVariablesValue = string; + export interface Service { + /** + * The customer-provided service name. + */ + ServiceName: ServiceName; + /** + * An ID that App Runner generated for this service. It's unique within the AWS Region. + */ + ServiceId: ServiceId; + /** + * The Amazon Resource Name (ARN) of this service. + */ + ServiceArn: AppRunnerResourceArn; + /** + * A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application. + */ + ServiceUrl: String; + /** + * The time when the App Runner service was created. It's in the Unix time stamp format. + */ + CreatedAt: Timestamp; + /** + * The time when the App Runner service was last updated at. It's in the Unix time stamp format. + */ + UpdatedAt: Timestamp; + /** + * The time when the App Runner service was deleted. It's in the Unix time stamp format. + */ + DeletedAt?: Timestamp; + /** + * The current state of the App Runner service. These particular values mean the following. CREATE_FAILED – The service failed to create. To troubleshoot this failure, read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. DELETE_FAILED – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. + */ + Status: ServiceStatus; + /** + * The source deployed to the App Runner service. It can be a code or an image repository. + */ + SourceConfiguration: SourceConfiguration; + /** + * The runtime configuration of instances (scaling units) of this service. + */ + InstanceConfiguration: InstanceConfiguration; + /** + * The encryption key that App Runner uses to encrypt the service logs and the copy of the source repository that App Runner maintains for the service. It can be either a customer-provided encryption key or an AWS managed CMK. + */ + EncryptionConfiguration?: EncryptionConfiguration; + /** + * The settings for the health check that App Runner performs to monitor the health of this service. + */ + HealthCheckConfiguration?: HealthCheckConfiguration; + /** + * Summary information for the App Runner automatic scaling configuration resource that's associated with this service. + */ + AutoScalingConfigurationSummary: AutoScalingConfigurationSummary; + } + export type ServiceId = string; + export type ServiceMaxResults = number; + export type ServiceName = string; + export type ServiceStatus = "CREATE_FAILED"|"RUNNING"|"DELETED"|"DELETE_FAILED"|"PAUSED"|"OPERATION_IN_PROGRESS"|string; + export interface ServiceSummary { + /** + * The customer-provided service name. + */ + ServiceName?: ServiceName; + /** + * An ID that App Runner generated for this service. It's unique within the AWS Region. + */ + ServiceId?: ServiceId; + /** + * The Amazon Resource Name (ARN) of this service. + */ + ServiceArn?: AppRunnerResourceArn; + /** + * A subdomain URL that App Runner generated for this service. You can use this URL to access your service web application. + */ + ServiceUrl?: String; + /** + * The time when the App Runner service was created. It's in the Unix time stamp format. + */ + CreatedAt?: Timestamp; + /** + * The time when the App Runner service was last updated. It's in theUnix time stamp format. + */ + UpdatedAt?: Timestamp; + /** + * The current state of the App Runner service. These particular values mean the following. CREATE_FAILED – The service failed to create. Read the failure events and logs, change any parameters that need to be fixed, and retry the call to create the service. The failed service isn't usable, and still counts towards your service quota. When you're done analyzing the failure, delete the service. DELETE_FAILED – The service failed to delete and can't be successfully recovered. Retry the service deletion call to ensure that all related resources are removed. + */ + Status?: ServiceStatus; + } + export type ServiceSummaryList = ServiceSummary[]; + export interface SourceCodeVersion { + /** + * The type of version identifier. For a git-based repository, branches represent versions. + */ + Type: SourceCodeVersionType; + /** + * A source code version. For a git-based repository, a branch name maps to a specific version. App Runner uses the most recent commit to the branch. + */ + Value: String; + } + export type SourceCodeVersionType = "BRANCH"|string; + export interface SourceConfiguration { + /** + * The description of a source code repository. You must provide either this member or ImageRepository (but not both). + */ + CodeRepository?: CodeRepository; + /** + * The description of a source image repository. You must provide either this member or CodeRepository (but not both). + */ + ImageRepository?: ImageRepository; + /** + * If true, continuous integration from the source repository is enabled for the App Runner service. Each repository change (source code commit or new image version) starts a deployment. Default: true + */ + AutoDeploymentsEnabled?: NullableBoolean; + /** + * Describes the resources that are needed to authenticate access to some source repositories. + */ + AuthenticationConfiguration?: AuthenticationConfiguration; + } + export type StartCommand = string; + export interface StartDeploymentRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want to manually deploy to. + */ + ServiceArn: AppRunnerResourceArn; + } + export interface StartDeploymentResponse { + /** + * The unique ID of the asynchronous operation that this request started. You can use it combined with the ListOperations call to track the operation's progress. + */ + OperationId: UUID; + } + export type String = string; + export interface Tag { + /** + * The key of the tag. + */ + Key?: TagKey; + /** + * The value of the tag. + */ + Value?: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that you want to update tags for. It must be the ARN of an App Runner resource. + */ + ResourceArn: AppRunnerResourceArn; + /** + * A list of tag key-value pairs to add or update. If a key is new to the resource, the tag is added with the provided value. If a key is already associated with the resource, the value of the tag is updated. + */ + Tags: TagList; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type Timestamp = Date; + export type UUID = string; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that you want to remove tags from. It must be the ARN of an App Runner resource. + */ + ResourceArn: AppRunnerResourceArn; + /** + * A list of tag keys that you want to remove. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateServiceRequest { + /** + * The Amazon Resource Name (ARN) of the App Runner service that you want to update. + */ + ServiceArn: AppRunnerResourceArn; + /** + * The source configuration to apply to the App Runner service. You can change the configuration of the code or image repository that the service uses. However, you can't switch from code to image or the other way around. This means that you must provide the same structure member of SourceConfiguration that you originally included when you created the service. Specifically, you can include either CodeRepository or ImageRepository. To update the source configuration, set the values to members of the structure that you include. + */ + SourceConfiguration?: SourceConfiguration; + /** + * The runtime configuration to apply to instances (scaling units) of the App Runner service. + */ + InstanceConfiguration?: InstanceConfiguration; + /** + * The Amazon Resource Name (ARN) of an App Runner automatic scaling configuration resource that you want to associate with your service. + */ + AutoScalingConfigurationArn?: AppRunnerResourceArn; + /** + * The settings for the health check that AWS App Runner performs to monitor the health of your service. + */ + HealthCheckConfiguration?: HealthCheckConfiguration; + } + export interface UpdateServiceResponse { + /** + * A description of the App Runner service updated by this request. All configuration values in the returned Service structure reflect configuration changes that are being applied by this request. + */ + Service: Service; + /** + * The unique ID of the asynchronous operation that this request started. You can use it combined with the ListOperations call to track the operation's progress. + */ + OperationId: UUID; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2020-05-15"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AppRunner client. + */ + export import Types = AppRunner; +} +export = AppRunner; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/apprunner.js b/justdanceonline-main/node_modules/aws-sdk/clients/apprunner.js new file mode 100644 index 0000000000000000000000000000000000000000..892e469f6c573e0323daf48dd379fd8aea9cece7 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/apprunner.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['apprunner'] = {}; +AWS.AppRunner = Service.defineService('apprunner', ['2020-05-15']); +Object.defineProperty(apiLoader.services['apprunner'], '2020-05-15', { + get: function get() { + var model = require('../apis/apprunner-2020-05-15.min.json'); + model.paginators = require('../apis/apprunner-2020-05-15.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AppRunner; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appstream.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/appstream.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..69b42b491c08b47459ea71a8de450094b4e76c7a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appstream.d.ts @@ -0,0 +1,2243 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {WaiterConfiguration} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AppStream extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AppStream.Types.ClientConfiguration) + config: Config & AppStream.Types.ClientConfiguration; + /** + * Associates the specified fleet with the specified stack. + */ + associateFleet(params: AppStream.Types.AssociateFleetRequest, callback?: (err: AWSError, data: AppStream.Types.AssociateFleetResult) => void): Request; + /** + * Associates the specified fleet with the specified stack. + */ + associateFleet(callback?: (err: AWSError, data: AppStream.Types.AssociateFleetResult) => void): Request; + /** + * Associates the specified users with the specified stacks. Users in a user pool cannot be assigned to stacks with fleets that are joined to an Active Directory domain. + */ + batchAssociateUserStack(params: AppStream.Types.BatchAssociateUserStackRequest, callback?: (err: AWSError, data: AppStream.Types.BatchAssociateUserStackResult) => void): Request; + /** + * Associates the specified users with the specified stacks. Users in a user pool cannot be assigned to stacks with fleets that are joined to an Active Directory domain. + */ + batchAssociateUserStack(callback?: (err: AWSError, data: AppStream.Types.BatchAssociateUserStackResult) => void): Request; + /** + * Disassociates the specified users from the specified stacks. + */ + batchDisassociateUserStack(params: AppStream.Types.BatchDisassociateUserStackRequest, callback?: (err: AWSError, data: AppStream.Types.BatchDisassociateUserStackResult) => void): Request; + /** + * Disassociates the specified users from the specified stacks. + */ + batchDisassociateUserStack(callback?: (err: AWSError, data: AppStream.Types.BatchDisassociateUserStackResult) => void): Request; + /** + * Copies the image within the same region or to a new region within the same AWS account. Note that any tags you added to the image will not be copied. + */ + copyImage(params: AppStream.Types.CopyImageRequest, callback?: (err: AWSError, data: AppStream.Types.CopyImageResponse) => void): Request; + /** + * Copies the image within the same region or to a new region within the same AWS account. Note that any tags you added to the image will not be copied. + */ + copyImage(callback?: (err: AWSError, data: AppStream.Types.CopyImageResponse) => void): Request; + /** + * Creates a Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains. + */ + createDirectoryConfig(params: AppStream.Types.CreateDirectoryConfigRequest, callback?: (err: AWSError, data: AppStream.Types.CreateDirectoryConfigResult) => void): Request; + /** + * Creates a Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains. + */ + createDirectoryConfig(callback?: (err: AWSError, data: AppStream.Types.CreateDirectoryConfigResult) => void): Request; + /** + * Creates a fleet. A fleet consists of streaming instances that run a specified image. + */ + createFleet(params: AppStream.Types.CreateFleetRequest, callback?: (err: AWSError, data: AppStream.Types.CreateFleetResult) => void): Request; + /** + * Creates a fleet. A fleet consists of streaming instances that run a specified image. + */ + createFleet(callback?: (err: AWSError, data: AppStream.Types.CreateFleetResult) => void): Request; + /** + * Creates an image builder. An image builder is a virtual machine that is used to create an image. The initial state of the builder is PENDING. When it is ready, the state is RUNNING. + */ + createImageBuilder(params: AppStream.Types.CreateImageBuilderRequest, callback?: (err: AWSError, data: AppStream.Types.CreateImageBuilderResult) => void): Request; + /** + * Creates an image builder. An image builder is a virtual machine that is used to create an image. The initial state of the builder is PENDING. When it is ready, the state is RUNNING. + */ + createImageBuilder(callback?: (err: AWSError, data: AppStream.Types.CreateImageBuilderResult) => void): Request; + /** + * Creates a URL to start an image builder streaming session. + */ + createImageBuilderStreamingURL(params: AppStream.Types.CreateImageBuilderStreamingURLRequest, callback?: (err: AWSError, data: AppStream.Types.CreateImageBuilderStreamingURLResult) => void): Request; + /** + * Creates a URL to start an image builder streaming session. + */ + createImageBuilderStreamingURL(callback?: (err: AWSError, data: AppStream.Types.CreateImageBuilderStreamingURLResult) => void): Request; + /** + * Creates a stack to start streaming applications to users. A stack consists of an associated fleet, user access policies, and storage configurations. + */ + createStack(params: AppStream.Types.CreateStackRequest, callback?: (err: AWSError, data: AppStream.Types.CreateStackResult) => void): Request; + /** + * Creates a stack to start streaming applications to users. A stack consists of an associated fleet, user access policies, and storage configurations. + */ + createStack(callback?: (err: AWSError, data: AppStream.Types.CreateStackResult) => void): Request; + /** + * Creates a temporary URL to start an AppStream 2.0 streaming session for the specified user. A streaming URL enables application streaming to be tested without user setup. + */ + createStreamingURL(params: AppStream.Types.CreateStreamingURLRequest, callback?: (err: AWSError, data: AppStream.Types.CreateStreamingURLResult) => void): Request; + /** + * Creates a temporary URL to start an AppStream 2.0 streaming session for the specified user. A streaming URL enables application streaming to be tested without user setup. + */ + createStreamingURL(callback?: (err: AWSError, data: AppStream.Types.CreateStreamingURLResult) => void): Request; + /** + * Creates a new image with the latest Windows operating system updates, driver updates, and AppStream 2.0 agent software. For more information, see the "Update an Image by Using Managed AppStream 2.0 Image Updates" section in Administer Your AppStream 2.0 Images, in the Amazon AppStream 2.0 Administration Guide. + */ + createUpdatedImage(params: AppStream.Types.CreateUpdatedImageRequest, callback?: (err: AWSError, data: AppStream.Types.CreateUpdatedImageResult) => void): Request; + /** + * Creates a new image with the latest Windows operating system updates, driver updates, and AppStream 2.0 agent software. For more information, see the "Update an Image by Using Managed AppStream 2.0 Image Updates" section in Administer Your AppStream 2.0 Images, in the Amazon AppStream 2.0 Administration Guide. + */ + createUpdatedImage(callback?: (err: AWSError, data: AppStream.Types.CreateUpdatedImageResult) => void): Request; + /** + * Creates a usage report subscription. Usage reports are generated daily. + */ + createUsageReportSubscription(params: AppStream.Types.CreateUsageReportSubscriptionRequest, callback?: (err: AWSError, data: AppStream.Types.CreateUsageReportSubscriptionResult) => void): Request; + /** + * Creates a usage report subscription. Usage reports are generated daily. + */ + createUsageReportSubscription(callback?: (err: AWSError, data: AppStream.Types.CreateUsageReportSubscriptionResult) => void): Request; + /** + * Creates a new user in the user pool. + */ + createUser(params: AppStream.Types.CreateUserRequest, callback?: (err: AWSError, data: AppStream.Types.CreateUserResult) => void): Request; + /** + * Creates a new user in the user pool. + */ + createUser(callback?: (err: AWSError, data: AppStream.Types.CreateUserResult) => void): Request; + /** + * Deletes the specified Directory Config object from AppStream 2.0. This object includes the information required to join streaming instances to an Active Directory domain. + */ + deleteDirectoryConfig(params: AppStream.Types.DeleteDirectoryConfigRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteDirectoryConfigResult) => void): Request; + /** + * Deletes the specified Directory Config object from AppStream 2.0. This object includes the information required to join streaming instances to an Active Directory domain. + */ + deleteDirectoryConfig(callback?: (err: AWSError, data: AppStream.Types.DeleteDirectoryConfigResult) => void): Request; + /** + * Deletes the specified fleet. + */ + deleteFleet(params: AppStream.Types.DeleteFleetRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteFleetResult) => void): Request; + /** + * Deletes the specified fleet. + */ + deleteFleet(callback?: (err: AWSError, data: AppStream.Types.DeleteFleetResult) => void): Request; + /** + * Deletes the specified image. You cannot delete an image when it is in use. After you delete an image, you cannot provision new capacity using the image. + */ + deleteImage(params: AppStream.Types.DeleteImageRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteImageResult) => void): Request; + /** + * Deletes the specified image. You cannot delete an image when it is in use. After you delete an image, you cannot provision new capacity using the image. + */ + deleteImage(callback?: (err: AWSError, data: AppStream.Types.DeleteImageResult) => void): Request; + /** + * Deletes the specified image builder and releases the capacity. + */ + deleteImageBuilder(params: AppStream.Types.DeleteImageBuilderRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteImageBuilderResult) => void): Request; + /** + * Deletes the specified image builder and releases the capacity. + */ + deleteImageBuilder(callback?: (err: AWSError, data: AppStream.Types.DeleteImageBuilderResult) => void): Request; + /** + * Deletes permissions for the specified private image. After you delete permissions for an image, AWS accounts to which you previously granted these permissions can no longer use the image. + */ + deleteImagePermissions(params: AppStream.Types.DeleteImagePermissionsRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteImagePermissionsResult) => void): Request; + /** + * Deletes permissions for the specified private image. After you delete permissions for an image, AWS accounts to which you previously granted these permissions can no longer use the image. + */ + deleteImagePermissions(callback?: (err: AWSError, data: AppStream.Types.DeleteImagePermissionsResult) => void): Request; + /** + * Deletes the specified stack. After the stack is deleted, the application streaming environment provided by the stack is no longer available to users. Also, any reservations made for application streaming sessions for the stack are released. + */ + deleteStack(params: AppStream.Types.DeleteStackRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteStackResult) => void): Request; + /** + * Deletes the specified stack. After the stack is deleted, the application streaming environment provided by the stack is no longer available to users. Also, any reservations made for application streaming sessions for the stack are released. + */ + deleteStack(callback?: (err: AWSError, data: AppStream.Types.DeleteStackResult) => void): Request; + /** + * Disables usage report generation. + */ + deleteUsageReportSubscription(params: AppStream.Types.DeleteUsageReportSubscriptionRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteUsageReportSubscriptionResult) => void): Request; + /** + * Disables usage report generation. + */ + deleteUsageReportSubscription(callback?: (err: AWSError, data: AppStream.Types.DeleteUsageReportSubscriptionResult) => void): Request; + /** + * Deletes a user from the user pool. + */ + deleteUser(params: AppStream.Types.DeleteUserRequest, callback?: (err: AWSError, data: AppStream.Types.DeleteUserResult) => void): Request; + /** + * Deletes a user from the user pool. + */ + deleteUser(callback?: (err: AWSError, data: AppStream.Types.DeleteUserResult) => void): Request; + /** + * Retrieves a list that describes one or more specified Directory Config objects for AppStream 2.0, if the names for these objects are provided. Otherwise, all Directory Config objects in the account are described. These objects include the configuration information required to join fleets and image builders to Microsoft Active Directory domains. Although the response syntax in this topic includes the account password, this password is not returned in the actual response. + */ + describeDirectoryConfigs(params: AppStream.Types.DescribeDirectoryConfigsRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeDirectoryConfigsResult) => void): Request; + /** + * Retrieves a list that describes one or more specified Directory Config objects for AppStream 2.0, if the names for these objects are provided. Otherwise, all Directory Config objects in the account are described. These objects include the configuration information required to join fleets and image builders to Microsoft Active Directory domains. Although the response syntax in this topic includes the account password, this password is not returned in the actual response. + */ + describeDirectoryConfigs(callback?: (err: AWSError, data: AppStream.Types.DescribeDirectoryConfigsResult) => void): Request; + /** + * Retrieves a list that describes one or more specified fleets, if the fleet names are provided. Otherwise, all fleets in the account are described. + */ + describeFleets(params: AppStream.Types.DescribeFleetsRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeFleetsResult) => void): Request; + /** + * Retrieves a list that describes one or more specified fleets, if the fleet names are provided. Otherwise, all fleets in the account are described. + */ + describeFleets(callback?: (err: AWSError, data: AppStream.Types.DescribeFleetsResult) => void): Request; + /** + * Retrieves a list that describes one or more specified image builders, if the image builder names are provided. Otherwise, all image builders in the account are described. + */ + describeImageBuilders(params: AppStream.Types.DescribeImageBuildersRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeImageBuildersResult) => void): Request; + /** + * Retrieves a list that describes one or more specified image builders, if the image builder names are provided. Otherwise, all image builders in the account are described. + */ + describeImageBuilders(callback?: (err: AWSError, data: AppStream.Types.DescribeImageBuildersResult) => void): Request; + /** + * Retrieves a list that describes the permissions for shared AWS account IDs on a private image that you own. + */ + describeImagePermissions(params: AppStream.Types.DescribeImagePermissionsRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeImagePermissionsResult) => void): Request; + /** + * Retrieves a list that describes the permissions for shared AWS account IDs on a private image that you own. + */ + describeImagePermissions(callback?: (err: AWSError, data: AppStream.Types.DescribeImagePermissionsResult) => void): Request; + /** + * Retrieves a list that describes one or more specified images, if the image names or image ARNs are provided. Otherwise, all images in the account are described. + */ + describeImages(params: AppStream.Types.DescribeImagesRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeImagesResult) => void): Request; + /** + * Retrieves a list that describes one or more specified images, if the image names or image ARNs are provided. Otherwise, all images in the account are described. + */ + describeImages(callback?: (err: AWSError, data: AppStream.Types.DescribeImagesResult) => void): Request; + /** + * Retrieves a list that describes the streaming sessions for a specified stack and fleet. If a UserId is provided for the stack and fleet, only streaming sessions for that user are described. If an authentication type is not provided, the default is to authenticate users using a streaming URL. + */ + describeSessions(params: AppStream.Types.DescribeSessionsRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeSessionsResult) => void): Request; + /** + * Retrieves a list that describes the streaming sessions for a specified stack and fleet. If a UserId is provided for the stack and fleet, only streaming sessions for that user are described. If an authentication type is not provided, the default is to authenticate users using a streaming URL. + */ + describeSessions(callback?: (err: AWSError, data: AppStream.Types.DescribeSessionsResult) => void): Request; + /** + * Retrieves a list that describes one or more specified stacks, if the stack names are provided. Otherwise, all stacks in the account are described. + */ + describeStacks(params: AppStream.Types.DescribeStacksRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeStacksResult) => void): Request; + /** + * Retrieves a list that describes one or more specified stacks, if the stack names are provided. Otherwise, all stacks in the account are described. + */ + describeStacks(callback?: (err: AWSError, data: AppStream.Types.DescribeStacksResult) => void): Request; + /** + * Retrieves a list that describes one or more usage report subscriptions. + */ + describeUsageReportSubscriptions(params: AppStream.Types.DescribeUsageReportSubscriptionsRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeUsageReportSubscriptionsResult) => void): Request; + /** + * Retrieves a list that describes one or more usage report subscriptions. + */ + describeUsageReportSubscriptions(callback?: (err: AWSError, data: AppStream.Types.DescribeUsageReportSubscriptionsResult) => void): Request; + /** + * Retrieves a list that describes the UserStackAssociation objects. You must specify either or both of the following: The stack name The user name (email address of the user associated with the stack) and the authentication type for the user + */ + describeUserStackAssociations(params: AppStream.Types.DescribeUserStackAssociationsRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeUserStackAssociationsResult) => void): Request; + /** + * Retrieves a list that describes the UserStackAssociation objects. You must specify either or both of the following: The stack name The user name (email address of the user associated with the stack) and the authentication type for the user + */ + describeUserStackAssociations(callback?: (err: AWSError, data: AppStream.Types.DescribeUserStackAssociationsResult) => void): Request; + /** + * Retrieves a list that describes one or more specified users in the user pool. + */ + describeUsers(params: AppStream.Types.DescribeUsersRequest, callback?: (err: AWSError, data: AppStream.Types.DescribeUsersResult) => void): Request; + /** + * Retrieves a list that describes one or more specified users in the user pool. + */ + describeUsers(callback?: (err: AWSError, data: AppStream.Types.DescribeUsersResult) => void): Request; + /** + * Disables the specified user in the user pool. Users can't sign in to AppStream 2.0 until they are re-enabled. This action does not delete the user. + */ + disableUser(params: AppStream.Types.DisableUserRequest, callback?: (err: AWSError, data: AppStream.Types.DisableUserResult) => void): Request; + /** + * Disables the specified user in the user pool. Users can't sign in to AppStream 2.0 until they are re-enabled. This action does not delete the user. + */ + disableUser(callback?: (err: AWSError, data: AppStream.Types.DisableUserResult) => void): Request; + /** + * Disassociates the specified fleet from the specified stack. + */ + disassociateFleet(params: AppStream.Types.DisassociateFleetRequest, callback?: (err: AWSError, data: AppStream.Types.DisassociateFleetResult) => void): Request; + /** + * Disassociates the specified fleet from the specified stack. + */ + disassociateFleet(callback?: (err: AWSError, data: AppStream.Types.DisassociateFleetResult) => void): Request; + /** + * Enables a user in the user pool. After being enabled, users can sign in to AppStream 2.0 and open applications from the stacks to which they are assigned. + */ + enableUser(params: AppStream.Types.EnableUserRequest, callback?: (err: AWSError, data: AppStream.Types.EnableUserResult) => void): Request; + /** + * Enables a user in the user pool. After being enabled, users can sign in to AppStream 2.0 and open applications from the stacks to which they are assigned. + */ + enableUser(callback?: (err: AWSError, data: AppStream.Types.EnableUserResult) => void): Request; + /** + * Immediately stops the specified streaming session. + */ + expireSession(params: AppStream.Types.ExpireSessionRequest, callback?: (err: AWSError, data: AppStream.Types.ExpireSessionResult) => void): Request; + /** + * Immediately stops the specified streaming session. + */ + expireSession(callback?: (err: AWSError, data: AppStream.Types.ExpireSessionResult) => void): Request; + /** + * Retrieves the name of the fleet that is associated with the specified stack. + */ + listAssociatedFleets(params: AppStream.Types.ListAssociatedFleetsRequest, callback?: (err: AWSError, data: AppStream.Types.ListAssociatedFleetsResult) => void): Request; + /** + * Retrieves the name of the fleet that is associated with the specified stack. + */ + listAssociatedFleets(callback?: (err: AWSError, data: AppStream.Types.ListAssociatedFleetsResult) => void): Request; + /** + * Retrieves the name of the stack with which the specified fleet is associated. + */ + listAssociatedStacks(params: AppStream.Types.ListAssociatedStacksRequest, callback?: (err: AWSError, data: AppStream.Types.ListAssociatedStacksResult) => void): Request; + /** + * Retrieves the name of the stack with which the specified fleet is associated. + */ + listAssociatedStacks(callback?: (err: AWSError, data: AppStream.Types.ListAssociatedStacksResult) => void): Request; + /** + * Retrieves a list of all tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + listTagsForResource(params: AppStream.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: AppStream.Types.ListTagsForResourceResponse) => void): Request; + /** + * Retrieves a list of all tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + listTagsForResource(callback?: (err: AWSError, data: AppStream.Types.ListTagsForResourceResponse) => void): Request; + /** + * Starts the specified fleet. + */ + startFleet(params: AppStream.Types.StartFleetRequest, callback?: (err: AWSError, data: AppStream.Types.StartFleetResult) => void): Request; + /** + * Starts the specified fleet. + */ + startFleet(callback?: (err: AWSError, data: AppStream.Types.StartFleetResult) => void): Request; + /** + * Starts the specified image builder. + */ + startImageBuilder(params: AppStream.Types.StartImageBuilderRequest, callback?: (err: AWSError, data: AppStream.Types.StartImageBuilderResult) => void): Request; + /** + * Starts the specified image builder. + */ + startImageBuilder(callback?: (err: AWSError, data: AppStream.Types.StartImageBuilderResult) => void): Request; + /** + * Stops the specified fleet. + */ + stopFleet(params: AppStream.Types.StopFleetRequest, callback?: (err: AWSError, data: AppStream.Types.StopFleetResult) => void): Request; + /** + * Stops the specified fleet. + */ + stopFleet(callback?: (err: AWSError, data: AppStream.Types.StopFleetResult) => void): Request; + /** + * Stops the specified image builder. + */ + stopImageBuilder(params: AppStream.Types.StopImageBuilderRequest, callback?: (err: AWSError, data: AppStream.Types.StopImageBuilderResult) => void): Request; + /** + * Stops the specified image builder. + */ + stopImageBuilder(callback?: (err: AWSError, data: AppStream.Types.StopImageBuilderResult) => void): Request; + /** + * Adds or overwrites one or more tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks. Each tag consists of a key and an optional value. If a resource already has a tag with the same key, this operation updates its value. To list the current tags for your resources, use ListTagsForResource. To disassociate tags from your resources, use UntagResource. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + tagResource(params: AppStream.Types.TagResourceRequest, callback?: (err: AWSError, data: AppStream.Types.TagResourceResponse) => void): Request; + /** + * Adds or overwrites one or more tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks. Each tag consists of a key and an optional value. If a resource already has a tag with the same key, this operation updates its value. To list the current tags for your resources, use ListTagsForResource. To disassociate tags from your resources, use UntagResource. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + tagResource(callback?: (err: AWSError, data: AppStream.Types.TagResourceResponse) => void): Request; + /** + * Disassociates one or more specified tags from the specified AppStream 2.0 resource. To list the current tags for your resources, use ListTagsForResource. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + untagResource(params: AppStream.Types.UntagResourceRequest, callback?: (err: AWSError, data: AppStream.Types.UntagResourceResponse) => void): Request; + /** + * Disassociates one or more specified tags from the specified AppStream 2.0 resource. To list the current tags for your resources, use ListTagsForResource. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + untagResource(callback?: (err: AWSError, data: AppStream.Types.UntagResourceResponse) => void): Request; + /** + * Updates the specified Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains. + */ + updateDirectoryConfig(params: AppStream.Types.UpdateDirectoryConfigRequest, callback?: (err: AWSError, data: AppStream.Types.UpdateDirectoryConfigResult) => void): Request; + /** + * Updates the specified Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains. + */ + updateDirectoryConfig(callback?: (err: AWSError, data: AppStream.Types.UpdateDirectoryConfigResult) => void): Request; + /** + * Updates the specified fleet. If the fleet is in the STOPPED state, you can update any attribute except the fleet name. If the fleet is in the RUNNING state, you can update the DisplayName, ComputeCapacity, ImageARN, ImageName, IdleDisconnectTimeoutInSeconds, and DisconnectTimeoutInSeconds attributes. If the fleet is in the STARTING or STOPPING state, you can't update it. + */ + updateFleet(params: AppStream.Types.UpdateFleetRequest, callback?: (err: AWSError, data: AppStream.Types.UpdateFleetResult) => void): Request; + /** + * Updates the specified fleet. If the fleet is in the STOPPED state, you can update any attribute except the fleet name. If the fleet is in the RUNNING state, you can update the DisplayName, ComputeCapacity, ImageARN, ImageName, IdleDisconnectTimeoutInSeconds, and DisconnectTimeoutInSeconds attributes. If the fleet is in the STARTING or STOPPING state, you can't update it. + */ + updateFleet(callback?: (err: AWSError, data: AppStream.Types.UpdateFleetResult) => void): Request; + /** + * Adds or updates permissions for the specified private image. + */ + updateImagePermissions(params: AppStream.Types.UpdateImagePermissionsRequest, callback?: (err: AWSError, data: AppStream.Types.UpdateImagePermissionsResult) => void): Request; + /** + * Adds or updates permissions for the specified private image. + */ + updateImagePermissions(callback?: (err: AWSError, data: AppStream.Types.UpdateImagePermissionsResult) => void): Request; + /** + * Updates the specified fields for the specified stack. + */ + updateStack(params: AppStream.Types.UpdateStackRequest, callback?: (err: AWSError, data: AppStream.Types.UpdateStackResult) => void): Request; + /** + * Updates the specified fields for the specified stack. + */ + updateStack(callback?: (err: AWSError, data: AppStream.Types.UpdateStackResult) => void): Request; + /** + * Waits for the fleetStarted state by periodically calling the underlying AppStream.describeFleetsoperation every 30 seconds (at most 40 times). + */ + waitFor(state: "fleetStarted", params: AppStream.Types.DescribeFleetsRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: AppStream.Types.DescribeFleetsResult) => void): Request; + /** + * Waits for the fleetStarted state by periodically calling the underlying AppStream.describeFleetsoperation every 30 seconds (at most 40 times). + */ + waitFor(state: "fleetStarted", callback?: (err: AWSError, data: AppStream.Types.DescribeFleetsResult) => void): Request; + /** + * Waits for the fleetStopped state by periodically calling the underlying AppStream.describeFleetsoperation every 30 seconds (at most 40 times). + */ + waitFor(state: "fleetStopped", params: AppStream.Types.DescribeFleetsRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: AppStream.Types.DescribeFleetsResult) => void): Request; + /** + * Waits for the fleetStopped state by periodically calling the underlying AppStream.describeFleetsoperation every 30 seconds (at most 40 times). + */ + waitFor(state: "fleetStopped", callback?: (err: AWSError, data: AppStream.Types.DescribeFleetsResult) => void): Request; +} +declare namespace AppStream { + export interface AccessEndpoint { + /** + * The type of interface endpoint. + */ + EndpointType: AccessEndpointType; + /** + * The identifier (ID) of the VPC in which the interface endpoint is used. + */ + VpceId?: String; + } + export type AccessEndpointList = AccessEndpoint[]; + export type AccessEndpointType = "STREAMING"|string; + export type AccountName = string; + export type AccountPassword = string; + export type Action = "CLIPBOARD_COPY_FROM_LOCAL_DEVICE"|"CLIPBOARD_COPY_TO_LOCAL_DEVICE"|"FILE_UPLOAD"|"FILE_DOWNLOAD"|"PRINTING_TO_LOCAL_DEVICE"|"DOMAIN_PASSWORD_SIGNIN"|"DOMAIN_SMART_CARD_SIGNIN"|string; + export interface Application { + /** + * The name of the application. + */ + Name?: String; + /** + * The application name to display. + */ + DisplayName?: String; + /** + * The URL for the application icon. This URL might be time-limited. + */ + IconURL?: String; + /** + * The path to the application executable in the instance. + */ + LaunchPath?: String; + /** + * The arguments that are passed to the application at launch. + */ + LaunchParameters?: String; + /** + * If there is a problem, the application can be disabled after image creation. + */ + Enabled?: Boolean; + /** + * Additional attributes that describe the application. + */ + Metadata?: Metadata; + } + export interface ApplicationSettings { + /** + * Enables or disables persistent application settings for users during their streaming sessions. + */ + Enabled: Boolean; + /** + * The path prefix for the S3 bucket where users’ persistent application settings are stored. You can allow the same persistent application settings to be used across multiple stacks by specifying the same settings group for each stack. + */ + SettingsGroup?: SettingsGroup; + } + export interface ApplicationSettingsResponse { + /** + * Specifies whether persistent application settings are enabled for users during their streaming sessions. + */ + Enabled?: Boolean; + /** + * The path prefix for the S3 bucket where users’ persistent application settings are stored. + */ + SettingsGroup?: SettingsGroup; + /** + * The S3 bucket where users’ persistent application settings are stored. When persistent application settings are enabled for the first time for an account in an AWS Region, an S3 bucket is created. The bucket is unique to the AWS account and the Region. + */ + S3BucketName?: String; + } + export type Applications = Application[]; + export type AppstreamAgentVersion = string; + export type Arn = string; + export type ArnList = Arn[]; + export interface AssociateFleetRequest { + /** + * The name of the fleet. + */ + FleetName: String; + /** + * The name of the stack. + */ + StackName: String; + } + export interface AssociateFleetResult { + } + export type AuthenticationType = "API"|"SAML"|"USERPOOL"|string; + export type AwsAccountId = string; + export type AwsAccountIdList = AwsAccountId[]; + export interface BatchAssociateUserStackRequest { + /** + * The list of UserStackAssociation objects. + */ + UserStackAssociations: UserStackAssociationList; + } + export interface BatchAssociateUserStackResult { + /** + * The list of UserStackAssociationError objects. + */ + errors?: UserStackAssociationErrorList; + } + export interface BatchDisassociateUserStackRequest { + /** + * The list of UserStackAssociation objects. + */ + UserStackAssociations: UserStackAssociationList; + } + export interface BatchDisassociateUserStackResult { + /** + * The list of UserStackAssociationError objects. + */ + errors?: UserStackAssociationErrorList; + } + export type Boolean = boolean; + export type BooleanObject = boolean; + export interface ComputeCapacity { + /** + * The desired number of streaming instances. + */ + DesiredInstances: Integer; + } + export interface ComputeCapacityStatus { + /** + * The desired number of streaming instances. + */ + Desired: Integer; + /** + * The total number of simultaneous streaming instances that are running. + */ + Running?: Integer; + /** + * The number of instances in use for streaming. + */ + InUse?: Integer; + /** + * The number of currently available instances that can be used to stream sessions. + */ + Available?: Integer; + } + export interface CopyImageRequest { + /** + * The name of the image to copy. + */ + SourceImageName: Name; + /** + * The name that the image will have when it is copied to the destination. + */ + DestinationImageName: Name; + /** + * The destination region to which the image will be copied. This parameter is required, even if you are copying an image within the same region. + */ + DestinationRegion: RegionName; + /** + * The description that the image will have when it is copied to the destination. + */ + DestinationImageDescription?: Description; + } + export interface CopyImageResponse { + /** + * The name of the destination image. + */ + DestinationImageName?: Name; + } + export interface CreateDirectoryConfigRequest { + /** + * The fully qualified name of the directory (for example, corp.example.com). + */ + DirectoryName: DirectoryName; + /** + * The distinguished names of the organizational units for computer accounts. + */ + OrganizationalUnitDistinguishedNames: OrganizationalUnitDistinguishedNamesList; + /** + * The credentials for the service account used by the fleet or image builder to connect to the directory. + */ + ServiceAccountCredentials?: ServiceAccountCredentials; + } + export interface CreateDirectoryConfigResult { + /** + * Information about the directory configuration. + */ + DirectoryConfig?: DirectoryConfig; + } + export interface CreateFleetRequest { + /** + * A unique name for the fleet. + */ + Name: Name; + /** + * The name of the image used to create the fleet. + */ + ImageName?: String; + /** + * The ARN of the public, private, or shared image to use. + */ + ImageArn?: Arn; + /** + * The instance type to use when launching fleet instances. The following instance types are available: stream.standard.small stream.standard.medium stream.standard.large stream.compute.large stream.compute.xlarge stream.compute.2xlarge stream.compute.4xlarge stream.compute.8xlarge stream.memory.large stream.memory.xlarge stream.memory.2xlarge stream.memory.4xlarge stream.memory.8xlarge stream.memory.z1d.large stream.memory.z1d.xlarge stream.memory.z1d.2xlarge stream.memory.z1d.3xlarge stream.memory.z1d.6xlarge stream.memory.z1d.12xlarge stream.graphics-design.large stream.graphics-design.xlarge stream.graphics-design.2xlarge stream.graphics-design.4xlarge stream.graphics-desktop.2xlarge stream.graphics.g4dn.xlarge stream.graphics.g4dn.2xlarge stream.graphics.g4dn.4xlarge stream.graphics.g4dn.8xlarge stream.graphics.g4dn.12xlarge stream.graphics.g4dn.16xlarge stream.graphics-pro.4xlarge stream.graphics-pro.8xlarge stream.graphics-pro.16xlarge + */ + InstanceType: String; + /** + * The fleet type. ALWAYS_ON Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps. ON_DEMAND Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps. + */ + FleetType?: FleetType; + /** + * The desired capacity for the fleet. + */ + ComputeCapacity: ComputeCapacity; + /** + * The VPC configuration for the fleet. + */ + VpcConfig?: VpcConfig; + /** + * The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance. Specify a value between 600 and 360000. + */ + MaxUserDurationInSeconds?: Integer; + /** + * The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance. Specify a value between 60 and 360000. + */ + DisconnectTimeoutInSeconds?: Integer; + /** + * The description to display. + */ + Description?: Description; + /** + * The fleet name to display. + */ + DisplayName?: DisplayName; + /** + * Enables or disables default internet access for the fleet. + */ + EnableDefaultInternetAccess?: BooleanObject; + /** + * The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. + */ + DomainJoinInfo?: DomainJoinInfo; + /** + * The tags to associate with the fleet. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=. If you do not specify a value, the value is set to an empty string. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters: _ . : / = + \ - @ For more information, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + Tags?: Tags; + /** + * The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the DisconnectTimeoutInSeconds time interval begins. Users are notified before they are disconnected due to inactivity. If they try to reconnect to the streaming session before the time interval specified in DisconnectTimeoutInSeconds elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds elapses, they are disconnected. To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0. If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity. + */ + IdleDisconnectTimeoutInSeconds?: Integer; + /** + * The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance. For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide. + */ + IamRoleArn?: Arn; + /** + * The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When APP is specified, only the windows of applications opened by users display. When DESKTOP is specified, the standard desktop that is provided by the operating system displays. The default value is APP. + */ + StreamView?: StreamView; + } + export interface CreateFleetResult { + /** + * Information about the fleet. + */ + Fleet?: Fleet; + } + export interface CreateImageBuilderRequest { + /** + * A unique name for the image builder. + */ + Name: Name; + /** + * The name of the image used to create the image builder. + */ + ImageName?: String; + /** + * The ARN of the public, private, or shared image to use. + */ + ImageArn?: Arn; + /** + * The instance type to use when launching the image builder. The following instance types are available: stream.standard.small stream.standard.medium stream.standard.large stream.compute.large stream.compute.xlarge stream.compute.2xlarge stream.compute.4xlarge stream.compute.8xlarge stream.memory.large stream.memory.xlarge stream.memory.2xlarge stream.memory.4xlarge stream.memory.8xlarge stream.memory.z1d.large stream.memory.z1d.xlarge stream.memory.z1d.2xlarge stream.memory.z1d.3xlarge stream.memory.z1d.6xlarge stream.memory.z1d.12xlarge stream.graphics-design.large stream.graphics-design.xlarge stream.graphics-design.2xlarge stream.graphics-design.4xlarge stream.graphics-desktop.2xlarge stream.graphics.g4dn.xlarge stream.graphics.g4dn.2xlarge stream.graphics.g4dn.4xlarge stream.graphics.g4dn.8xlarge stream.graphics.g4dn.12xlarge stream.graphics.g4dn.16xlarge stream.graphics-pro.4xlarge stream.graphics-pro.8xlarge stream.graphics-pro.16xlarge + */ + InstanceType: String; + /** + * The description to display. + */ + Description?: Description; + /** + * The image builder name to display. + */ + DisplayName?: DisplayName; + /** + * The VPC configuration for the image builder. You can specify only one subnet. + */ + VpcConfig?: VpcConfig; + /** + * The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance. For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide. + */ + IamRoleArn?: Arn; + /** + * Enables or disables default internet access for the image builder. + */ + EnableDefaultInternetAccess?: BooleanObject; + /** + * The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. + */ + DomainJoinInfo?: DomainJoinInfo; + /** + * The version of the AppStream 2.0 agent to use for this image builder. To use the latest version of the AppStream 2.0 agent, specify [LATEST]. + */ + AppstreamAgentVersion?: AppstreamAgentVersion; + /** + * The tags to associate with the image builder. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters: _ . : / = + \ - @ If you do not specify a value, the value is set to an empty string. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + Tags?: Tags; + /** + * The list of interface VPC endpoint (interface endpoint) objects. Administrators can connect to the image builder only through the specified endpoints. + */ + AccessEndpoints?: AccessEndpointList; + } + export interface CreateImageBuilderResult { + /** + * Information about the image builder. + */ + ImageBuilder?: ImageBuilder; + } + export interface CreateImageBuilderStreamingURLRequest { + /** + * The name of the image builder. + */ + Name: String; + /** + * The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. The default is 3600 seconds. + */ + Validity?: Long; + } + export interface CreateImageBuilderStreamingURLResult { + /** + * The URL to start the AppStream 2.0 streaming session. + */ + StreamingURL?: String; + /** + * The elapsed time, in seconds after the Unix epoch, when this URL expires. + */ + Expires?: Timestamp; + } + export interface CreateStackRequest { + /** + * The name of the stack. + */ + Name: Name; + /** + * The description to display. + */ + Description?: Description; + /** + * The stack name to display. + */ + DisplayName?: DisplayName; + /** + * The storage connectors to enable. + */ + StorageConnectors?: StorageConnectorList; + /** + * The URL that users are redirected to after their streaming session ends. + */ + RedirectURL?: RedirectURL; + /** + * The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed. + */ + FeedbackURL?: FeedbackURL; + /** + * The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled. + */ + UserSettings?: UserSettingList; + /** + * The persistent application settings for users of a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session. + */ + ApplicationSettings?: ApplicationSettings; + /** + * The tags to associate with the stack. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=. If you do not specify a value, the value is set to an empty string. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters: _ . : / = + \ - @ For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + Tags?: Tags; + /** + * The list of interface VPC endpoint (interface endpoint) objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints. + */ + AccessEndpoints?: AccessEndpointList; + /** + * The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions. + */ + EmbedHostDomains?: EmbedHostDomains; + } + export interface CreateStackResult { + /** + * Information about the stack. + */ + Stack?: Stack; + } + export interface CreateStreamingURLRequest { + /** + * The name of the stack. + */ + StackName: String; + /** + * The name of the fleet. + */ + FleetName: String; + /** + * The identifier of the user. + */ + UserId: StreamingUrlUserId; + /** + * The name of the application to launch after the session starts. This is the name that you specified as Name in the Image Assistant. If your fleet is enabled for the Desktop stream view, you can also choose to launch directly to the operating system desktop. To do so, specify Desktop. + */ + ApplicationId?: String; + /** + * The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. The default is 60 seconds. + */ + Validity?: Long; + /** + * The session context. For more information, see Session Context in the Amazon AppStream 2.0 Administration Guide. + */ + SessionContext?: String; + } + export interface CreateStreamingURLResult { + /** + * The URL to start the AppStream 2.0 streaming session. + */ + StreamingURL?: String; + /** + * The elapsed time, in seconds after the Unix epoch, when this URL expires. + */ + Expires?: Timestamp; + } + export interface CreateUpdatedImageRequest { + /** + * The name of the image to update. + */ + existingImageName: Name; + /** + * The name of the new image. The name must be unique within the AWS account and Region. + */ + newImageName: Name; + /** + * The description to display for the new image. + */ + newImageDescription?: Description; + /** + * The name to display for the new image. + */ + newImageDisplayName?: DisplayName; + /** + * The tags to associate with the new image. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters: _ . : / = + \ - @ If you do not specify a value, the value is set to an empty string. For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide. + */ + newImageTags?: Tags; + /** + * Indicates whether to display the status of image update availability before AppStream 2.0 initiates the process of creating a new updated image. If this value is set to true, AppStream 2.0 displays whether image updates are available. If this value is set to false, AppStream 2.0 initiates the process of creating a new updated image without displaying whether image updates are available. + */ + dryRun?: Boolean; + } + export interface CreateUpdatedImageResult { + image?: Image; + /** + * Indicates whether a new image can be created. + */ + canUpdateImage?: Boolean; + } + export interface CreateUsageReportSubscriptionRequest { + } + export interface CreateUsageReportSubscriptionResult { + /** + * The Amazon S3 bucket where generated reports are stored. If you enabled on-instance session scripts and Amazon S3 logging for your session script configuration, AppStream 2.0 created an S3 bucket to store the script output. The bucket is unique to your account and Region. When you enable usage reporting in this case, AppStream 2.0 uses the same bucket to store your usage reports. If you haven't already enabled on-instance session scripts, when you enable usage reports, AppStream 2.0 creates a new S3 bucket. + */ + S3BucketName?: String; + /** + * The schedule for generating usage reports. + */ + Schedule?: UsageReportSchedule; + } + export interface CreateUserRequest { + /** + * The email address of the user. Users' email addresses are case-sensitive. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a "user does not exist" error message displays. + */ + UserName: Username; + /** + * The action to take for the welcome email that is sent to a user after the user is created in the user pool. If you specify SUPPRESS, no email is sent. If you specify RESEND, do not specify the first name or last name of the user. If the value is null, the email is sent. The temporary password in the welcome email is valid for only 7 days. If users don’t set their passwords within 7 days, you must send them a new welcome email. + */ + MessageAction?: MessageAction; + /** + * The first name, or given name, of the user. + */ + FirstName?: UserAttributeValue; + /** + * The last name, or surname, of the user. + */ + LastName?: UserAttributeValue; + /** + * The authentication type for the user. You must specify USERPOOL. + */ + AuthenticationType: AuthenticationType; + } + export interface CreateUserResult { + } + export interface DeleteDirectoryConfigRequest { + /** + * The name of the directory configuration. + */ + DirectoryName: DirectoryName; + } + export interface DeleteDirectoryConfigResult { + } + export interface DeleteFleetRequest { + /** + * The name of the fleet. + */ + Name: String; + } + export interface DeleteFleetResult { + } + export interface DeleteImageBuilderRequest { + /** + * The name of the image builder. + */ + Name: Name; + } + export interface DeleteImageBuilderResult { + /** + * Information about the image builder. + */ + ImageBuilder?: ImageBuilder; + } + export interface DeleteImagePermissionsRequest { + /** + * The name of the private image. + */ + Name: Name; + /** + * The 12-digit identifier of the AWS account for which to delete image permissions. + */ + SharedAccountId: AwsAccountId; + } + export interface DeleteImagePermissionsResult { + } + export interface DeleteImageRequest { + /** + * The name of the image. + */ + Name: Name; + } + export interface DeleteImageResult { + /** + * Information about the image. + */ + Image?: Image; + } + export interface DeleteStackRequest { + /** + * The name of the stack. + */ + Name: String; + } + export interface DeleteStackResult { + } + export interface DeleteUsageReportSubscriptionRequest { + } + export interface DeleteUsageReportSubscriptionResult { + } + export interface DeleteUserRequest { + /** + * The email address of the user. Users' email addresses are case-sensitive. + */ + UserName: Username; + /** + * The authentication type for the user. You must specify USERPOOL. + */ + AuthenticationType: AuthenticationType; + } + export interface DeleteUserResult { + } + export interface DescribeDirectoryConfigsRequest { + /** + * The directory names. + */ + DirectoryNames?: DirectoryNameList; + /** + * The maximum size of each page of results. + */ + MaxResults?: Integer; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeDirectoryConfigsResult { + /** + * Information about the directory configurations. Note that although the response syntax in this topic includes the account password, this password is not returned in the actual response. + */ + DirectoryConfigs?: DirectoryConfigList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeFleetsRequest { + /** + * The names of the fleets to describe. + */ + Names?: StringList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeFleetsResult { + /** + * Information about the fleets. + */ + Fleets?: FleetList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeImageBuildersRequest { + /** + * The names of the image builders to describe. + */ + Names?: StringList; + /** + * The maximum size of each page of results. + */ + MaxResults?: Integer; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeImageBuildersResult { + /** + * Information about the image builders. + */ + ImageBuilders?: ImageBuilderList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeImagePermissionsRequest { + /** + * The name of the private image for which to describe permissions. The image must be one that you own. + */ + Name: Name; + /** + * The maximum size of each page of results. + */ + MaxResults?: MaxResults; + /** + * The 12-digit identifier of one or more AWS accounts with which the image is shared. + */ + SharedAwsAccountIds?: AwsAccountIdList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeImagePermissionsResult { + /** + * The name of the private image. + */ + Name?: Name; + /** + * The permissions for a private image that you own. + */ + SharedImagePermissionsList?: SharedImagePermissionsList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export type DescribeImagesMaxResults = number; + export interface DescribeImagesRequest { + /** + * The names of the public or private images to describe. + */ + Names?: StringList; + /** + * The ARNs of the public, private, and shared images to describe. + */ + Arns?: ArnList; + /** + * The type of image (public, private, or shared) to describe. + */ + Type?: VisibilityType; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + /** + * The maximum size of each page of results. + */ + MaxResults?: DescribeImagesMaxResults; + } + export interface DescribeImagesResult { + /** + * Information about the images. + */ + Images?: ImageList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeSessionsRequest { + /** + * The name of the stack. This value is case-sensitive. + */ + StackName: String; + /** + * The name of the fleet. This value is case-sensitive. + */ + FleetName: String; + /** + * The user identifier (ID). If you specify a user ID, you must also specify the authentication type. + */ + UserId?: UserId; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + /** + * The size of each page of results. The default value is 20 and the maximum value is 50. + */ + Limit?: Integer; + /** + * The authentication method. Specify API for a user authenticated using a streaming URL or SAML for a SAML federated user. The default is to authenticate users using a streaming URL. + */ + AuthenticationType?: AuthenticationType; + } + export interface DescribeSessionsResult { + /** + * Information about the streaming sessions. + */ + Sessions?: SessionList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeStacksRequest { + /** + * The names of the stacks to describe. + */ + Names?: StringList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeStacksResult { + /** + * Information about the stacks. + */ + Stacks?: StackList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeUsageReportSubscriptionsRequest { + /** + * The maximum size of each page of results. + */ + MaxResults?: Integer; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeUsageReportSubscriptionsResult { + /** + * Information about the usage report subscription. + */ + UsageReportSubscriptions?: UsageReportSubscriptionList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeUserStackAssociationsRequest { + /** + * The name of the stack that is associated with the user. + */ + StackName?: String; + /** + * The email address of the user who is associated with the stack. Users' email addresses are case-sensitive. + */ + UserName?: Username; + /** + * The authentication type for the user who is associated with the stack. You must specify USERPOOL. + */ + AuthenticationType?: AuthenticationType; + /** + * The maximum size of each page of results. + */ + MaxResults?: MaxResults; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeUserStackAssociationsResult { + /** + * The UserStackAssociation objects. + */ + UserStackAssociations?: UserStackAssociationList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface DescribeUsersRequest { + /** + * The authentication type for the users in the user pool to describe. You must specify USERPOOL. + */ + AuthenticationType: AuthenticationType; + /** + * The maximum size of each page of results. + */ + MaxResults?: Integer; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface DescribeUsersResult { + /** + * Information about users in the user pool. + */ + Users?: UserList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export type Description = string; + export interface DirectoryConfig { + /** + * The fully qualified name of the directory (for example, corp.example.com). + */ + DirectoryName: DirectoryName; + /** + * The distinguished names of the organizational units for computer accounts. + */ + OrganizationalUnitDistinguishedNames?: OrganizationalUnitDistinguishedNamesList; + /** + * The credentials for the service account used by the fleet or image builder to connect to the directory. + */ + ServiceAccountCredentials?: ServiceAccountCredentials; + /** + * The time the directory configuration was created. + */ + CreatedTime?: Timestamp; + } + export type DirectoryConfigList = DirectoryConfig[]; + export type DirectoryName = string; + export type DirectoryNameList = DirectoryName[]; + export interface DisableUserRequest { + /** + * The email address of the user. Users' email addresses are case-sensitive. + */ + UserName: Username; + /** + * The authentication type for the user. You must specify USERPOOL. + */ + AuthenticationType: AuthenticationType; + } + export interface DisableUserResult { + } + export interface DisassociateFleetRequest { + /** + * The name of the fleet. + */ + FleetName: String; + /** + * The name of the stack. + */ + StackName: String; + } + export interface DisassociateFleetResult { + } + export type DisplayName = string; + export type Domain = string; + export interface DomainJoinInfo { + /** + * The fully qualified name of the directory (for example, corp.example.com). + */ + DirectoryName?: DirectoryName; + /** + * The distinguished name of the organizational unit for computer accounts. + */ + OrganizationalUnitDistinguishedName?: OrganizationalUnitDistinguishedName; + } + export type DomainList = Domain[]; + export type EmbedHostDomain = string; + export type EmbedHostDomains = EmbedHostDomain[]; + export interface EnableUserRequest { + /** + * The email address of the user. Users' email addresses are case-sensitive. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a "user does not exist" error message displays. + */ + UserName: Username; + /** + * The authentication type for the user. You must specify USERPOOL. + */ + AuthenticationType: AuthenticationType; + } + export interface EnableUserResult { + } + export interface ExpireSessionRequest { + /** + * The identifier of the streaming session. + */ + SessionId: String; + } + export interface ExpireSessionResult { + } + export type FeedbackURL = string; + export interface Fleet { + /** + * The Amazon Resource Name (ARN) for the fleet. + */ + Arn: Arn; + /** + * The name of the fleet. + */ + Name: String; + /** + * The fleet name to display. + */ + DisplayName?: String; + /** + * The description to display. + */ + Description?: String; + /** + * The name of the image used to create the fleet. + */ + ImageName?: String; + /** + * The ARN for the public, private, or shared image. + */ + ImageArn?: Arn; + /** + * The instance type to use when launching fleet instances. The following instance types are available: stream.standard.small stream.standard.medium stream.standard.large stream.compute.large stream.compute.xlarge stream.compute.2xlarge stream.compute.4xlarge stream.compute.8xlarge stream.memory.large stream.memory.xlarge stream.memory.2xlarge stream.memory.4xlarge stream.memory.8xlarge stream.memory.z1d.large stream.memory.z1d.xlarge stream.memory.z1d.2xlarge stream.memory.z1d.3xlarge stream.memory.z1d.6xlarge stream.memory.z1d.12xlarge stream.graphics-design.large stream.graphics-design.xlarge stream.graphics-design.2xlarge stream.graphics-design.4xlarge stream.graphics-desktop.2xlarge stream.graphics.g4dn.xlarge stream.graphics.g4dn.2xlarge stream.graphics.g4dn.4xlarge stream.graphics.g4dn.8xlarge stream.graphics.g4dn.12xlarge stream.graphics.g4dn.16xlarge stream.graphics-pro.4xlarge stream.graphics-pro.8xlarge stream.graphics-pro.16xlarge + */ + InstanceType: String; + /** + * The fleet type. ALWAYS_ON Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps. ON_DEMAND Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps. + */ + FleetType?: FleetType; + /** + * The capacity status for the fleet. + */ + ComputeCapacityStatus: ComputeCapacityStatus; + /** + * The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance. Specify a value between 600 and 360000. + */ + MaxUserDurationInSeconds?: Integer; + /** + * The amount of time that a streaming session remains active after users disconnect. If they try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance. Specify a value between 60 and 360000. + */ + DisconnectTimeoutInSeconds?: Integer; + /** + * The current state for the fleet. + */ + State: FleetState; + /** + * The VPC configuration for the fleet. + */ + VpcConfig?: VpcConfig; + /** + * The time the fleet was created. + */ + CreatedTime?: Timestamp; + /** + * The fleet errors. + */ + FleetErrors?: FleetErrors; + /** + * Indicates whether default internet access is enabled for the fleet. + */ + EnableDefaultInternetAccess?: BooleanObject; + /** + * The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. + */ + DomainJoinInfo?: DomainJoinInfo; + /** + * The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the DisconnectTimeoutInSeconds time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in DisconnectTimeoutInSeconds elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds elapses, they are disconnected. To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0. If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity. + */ + IdleDisconnectTimeoutInSeconds?: Integer; + /** + * The ARN of the IAM role that is applied to the fleet. To assume a role, the fleet instance calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance. For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide. + */ + IamRoleArn?: Arn; + /** + * The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When APP is specified, only the windows of applications opened by users display. When DESKTOP is specified, the standard desktop that is provided by the operating system displays. The default value is APP. + */ + StreamView?: StreamView; + } + export type FleetAttribute = "VPC_CONFIGURATION"|"VPC_CONFIGURATION_SECURITY_GROUP_IDS"|"DOMAIN_JOIN_INFO"|"IAM_ROLE_ARN"|string; + export type FleetAttributes = FleetAttribute[]; + export interface FleetError { + /** + * The error code. + */ + ErrorCode?: FleetErrorCode; + /** + * The error message. + */ + ErrorMessage?: String; + } + export type FleetErrorCode = "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION"|"IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION"|"IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION"|"NETWORK_INTERFACE_LIMIT_EXCEEDED"|"INTERNAL_SERVICE_ERROR"|"IAM_SERVICE_ROLE_IS_MISSING"|"MACHINE_ROLE_IS_MISSING"|"STS_DISABLED_IN_REGION"|"SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES"|"IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION"|"SUBNET_NOT_FOUND"|"IMAGE_NOT_FOUND"|"INVALID_SUBNET_CONFIGURATION"|"SECURITY_GROUPS_NOT_FOUND"|"IGW_NOT_ATTACHED"|"IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION"|"FLEET_STOPPED"|"FLEET_INSTANCE_PROVISIONING_FAILURE"|"DOMAIN_JOIN_ERROR_FILE_NOT_FOUND"|"DOMAIN_JOIN_ERROR_ACCESS_DENIED"|"DOMAIN_JOIN_ERROR_LOGON_FAILURE"|"DOMAIN_JOIN_ERROR_INVALID_PARAMETER"|"DOMAIN_JOIN_ERROR_MORE_DATA"|"DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN"|"DOMAIN_JOIN_ERROR_NOT_SUPPORTED"|"DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME"|"DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED"|"DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED"|"DOMAIN_JOIN_NERR_PASSWORD_EXPIRED"|"DOMAIN_JOIN_INTERNAL_SERVICE_ERROR"|string; + export type FleetErrors = FleetError[]; + export type FleetList = Fleet[]; + export type FleetState = "STARTING"|"RUNNING"|"STOPPING"|"STOPPED"|string; + export type FleetType = "ALWAYS_ON"|"ON_DEMAND"|string; + export interface Image { + /** + * The name of the image. + */ + Name: String; + /** + * The ARN of the image. + */ + Arn?: Arn; + /** + * The ARN of the image from which this image was created. + */ + BaseImageArn?: Arn; + /** + * The image name to display. + */ + DisplayName?: String; + /** + * The image starts in the PENDING state. If image creation succeeds, the state is AVAILABLE. If image creation fails, the state is FAILED. + */ + State?: ImageState; + /** + * Indicates whether the image is public or private. + */ + Visibility?: VisibilityType; + /** + * Indicates whether an image builder can be launched from this image. + */ + ImageBuilderSupported?: Boolean; + /** + * The name of the image builder that was used to create the private image. If the image is shared, this value is null. + */ + ImageBuilderName?: String; + /** + * The operating system platform of the image. + */ + Platform?: PlatformType; + /** + * The description to display. + */ + Description?: String; + /** + * The reason why the last state change occurred. + */ + StateChangeReason?: ImageStateChangeReason; + /** + * The applications associated with the image. + */ + Applications?: Applications; + /** + * The time the image was created. + */ + CreatedTime?: Timestamp; + /** + * The release date of the public base image. For private images, this date is the release date of the base image from which the image was created. + */ + PublicBaseImageReleasedDate?: Timestamp; + /** + * The version of the AppStream 2.0 agent to use for instances that are launched from this image. + */ + AppstreamAgentVersion?: AppstreamAgentVersion; + /** + * The permissions to provide to the destination AWS account for the specified image. + */ + ImagePermissions?: ImagePermissions; + /** + * Describes the errors that are returned when a new image can't be created. + */ + ImageErrors?: ResourceErrors; + } + export interface ImageBuilder { + /** + * The name of the image builder. + */ + Name: String; + /** + * The ARN for the image builder. + */ + Arn?: Arn; + /** + * The ARN of the image from which this builder was created. + */ + ImageArn?: Arn; + /** + * The description to display. + */ + Description?: String; + /** + * The image builder name to display. + */ + DisplayName?: String; + /** + * The VPC configuration of the image builder. + */ + VpcConfig?: VpcConfig; + /** + * The instance type for the image builder. The following instance types are available: stream.standard.small stream.standard.medium stream.standard.large stream.compute.large stream.compute.xlarge stream.compute.2xlarge stream.compute.4xlarge stream.compute.8xlarge stream.memory.large stream.memory.xlarge stream.memory.2xlarge stream.memory.4xlarge stream.memory.8xlarge stream.memory.z1d.large stream.memory.z1d.xlarge stream.memory.z1d.2xlarge stream.memory.z1d.3xlarge stream.memory.z1d.6xlarge stream.memory.z1d.12xlarge stream.graphics-design.large stream.graphics-design.xlarge stream.graphics-design.2xlarge stream.graphics-design.4xlarge stream.graphics-desktop.2xlarge stream.graphics.g4dn.xlarge stream.graphics.g4dn.2xlarge stream.graphics.g4dn.4xlarge stream.graphics.g4dn.8xlarge stream.graphics.g4dn.12xlarge stream.graphics.g4dn.16xlarge stream.graphics-pro.4xlarge stream.graphics-pro.8xlarge stream.graphics-pro.16xlarge + */ + InstanceType?: String; + /** + * The operating system platform of the image builder. + */ + Platform?: PlatformType; + /** + * The ARN of the IAM role that is applied to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance. For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide. + */ + IamRoleArn?: Arn; + /** + * The state of the image builder. + */ + State?: ImageBuilderState; + /** + * The reason why the last state change occurred. + */ + StateChangeReason?: ImageBuilderStateChangeReason; + /** + * The time stamp when the image builder was created. + */ + CreatedTime?: Timestamp; + /** + * Enables or disables default internet access for the image builder. + */ + EnableDefaultInternetAccess?: BooleanObject; + /** + * The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain. + */ + DomainJoinInfo?: DomainJoinInfo; + NetworkAccessConfiguration?: NetworkAccessConfiguration; + /** + * The image builder errors. + */ + ImageBuilderErrors?: ResourceErrors; + /** + * The version of the AppStream 2.0 agent that is currently being used by the image builder. + */ + AppstreamAgentVersion?: AppstreamAgentVersion; + /** + * The list of virtual private cloud (VPC) interface endpoint objects. Administrators can connect to the image builder only through the specified endpoints. + */ + AccessEndpoints?: AccessEndpointList; + } + export type ImageBuilderList = ImageBuilder[]; + export type ImageBuilderState = "PENDING"|"UPDATING_AGENT"|"RUNNING"|"STOPPING"|"STOPPED"|"REBOOTING"|"SNAPSHOTTING"|"DELETING"|"FAILED"|"UPDATING"|"PENDING_QUALIFICATION"|string; + export interface ImageBuilderStateChangeReason { + /** + * The state change reason code. + */ + Code?: ImageBuilderStateChangeReasonCode; + /** + * The state change reason message. + */ + Message?: String; + } + export type ImageBuilderStateChangeReasonCode = "INTERNAL_ERROR"|"IMAGE_UNAVAILABLE"|string; + export type ImageList = Image[]; + export interface ImagePermissions { + /** + * Indicates whether the image can be used for a fleet. + */ + allowFleet?: BooleanObject; + /** + * Indicates whether the image can be used for an image builder. + */ + allowImageBuilder?: BooleanObject; + } + export type ImageState = "PENDING"|"AVAILABLE"|"FAILED"|"COPYING"|"DELETING"|"CREATING"|"IMPORTING"|string; + export interface ImageStateChangeReason { + /** + * The state change reason code. + */ + Code?: ImageStateChangeReasonCode; + /** + * The state change reason message. + */ + Message?: String; + } + export type ImageStateChangeReasonCode = "INTERNAL_ERROR"|"IMAGE_BUILDER_NOT_AVAILABLE"|"IMAGE_COPY_FAILURE"|string; + export type Integer = number; + export interface LastReportGenerationExecutionError { + /** + * The error code for the error that is returned when a usage report can't be generated. + */ + ErrorCode?: UsageReportExecutionErrorCode; + /** + * The error message for the error that is returned when a usage report can't be generated. + */ + ErrorMessage?: String; + } + export type LastReportGenerationExecutionErrors = LastReportGenerationExecutionError[]; + export interface ListAssociatedFleetsRequest { + /** + * The name of the stack. + */ + StackName: String; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface ListAssociatedFleetsResult { + /** + * The name of the fleet. + */ + Names?: StringList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface ListAssociatedStacksRequest { + /** + * The name of the fleet. + */ + FleetName: String; + /** + * The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page. + */ + NextToken?: String; + } + export interface ListAssociatedStacksResult { + /** + * The name of the stack. + */ + Names?: StringList; + /** + * The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null. + */ + NextToken?: String; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. + */ + ResourceArn: Arn; + } + export interface ListTagsForResourceResponse { + /** + * The information about the tags. + */ + Tags?: Tags; + } + export type Long = number; + export type MaxResults = number; + export type MessageAction = "SUPPRESS"|"RESEND"|string; + export type Metadata = {[key: string]: String}; + export type Name = string; + export interface NetworkAccessConfiguration { + /** + * The private IP address of the elastic network interface that is attached to instances in your VPC. + */ + EniPrivateIpAddress?: String; + /** + * The resource identifier of the elastic network interface that is attached to instances in your VPC. All network interfaces have the eni-xxxxxxxx resource identifier. + */ + EniId?: String; + } + export type OrganizationalUnitDistinguishedName = string; + export type OrganizationalUnitDistinguishedNamesList = OrganizationalUnitDistinguishedName[]; + export type Permission = "ENABLED"|"DISABLED"|string; + export type PlatformType = "WINDOWS"|"WINDOWS_SERVER_2016"|"WINDOWS_SERVER_2019"|string; + export type RedirectURL = string; + export type RegionName = string; + export interface ResourceError { + /** + * The error code. + */ + ErrorCode?: FleetErrorCode; + /** + * The error message. + */ + ErrorMessage?: String; + /** + * The time the error occurred. + */ + ErrorTimestamp?: Timestamp; + } + export type ResourceErrors = ResourceError[]; + export type ResourceIdentifier = string; + export type SecurityGroupIdList = String[]; + export interface ServiceAccountCredentials { + /** + * The user name of the account. This account must have the following privileges: create computer objects, join computers to the domain, and change/reset the password on descendant computer objects for the organizational units specified. + */ + AccountName: AccountName; + /** + * The password for the account. + */ + AccountPassword: AccountPassword; + } + export interface Session { + /** + * The identifier of the streaming session. + */ + Id: String; + /** + * The identifier of the user for whom the session was created. + */ + UserId: UserId; + /** + * The name of the stack for the streaming session. + */ + StackName: String; + /** + * The name of the fleet for the streaming session. + */ + FleetName: String; + /** + * The current state of the streaming session. + */ + State: SessionState; + /** + * Specifies whether a user is connected to the streaming session. + */ + ConnectionState?: SessionConnectionState; + /** + * The time when a streaming instance is dedicated for the user. + */ + StartTime?: Timestamp; + /** + * The time when the streaming session is set to expire. This time is based on the MaxUserDurationinSeconds value, which determines the maximum length of time that a streaming session can run. A streaming session might end earlier than the time specified in SessionMaxExpirationTime, when the DisconnectTimeOutInSeconds elapses or the user chooses to end his or her session. If the DisconnectTimeOutInSeconds elapses, or the user chooses to end his or her session, the streaming instance is terminated and the streaming session ends. + */ + MaxExpirationTime?: Timestamp; + /** + * The authentication method. The user is authenticated using a streaming URL (API) or SAML 2.0 federation (SAML). + */ + AuthenticationType?: AuthenticationType; + /** + * The network details for the streaming session. + */ + NetworkAccessConfiguration?: NetworkAccessConfiguration; + } + export type SessionConnectionState = "CONNECTED"|"NOT_CONNECTED"|string; + export type SessionList = Session[]; + export type SessionState = "ACTIVE"|"PENDING"|"EXPIRED"|string; + export type SettingsGroup = string; + export interface SharedImagePermissions { + /** + * The 12-digit identifier of the AWS account with which the image is shared. + */ + sharedAccountId: AwsAccountId; + /** + * Describes the permissions for a shared image. + */ + imagePermissions: ImagePermissions; + } + export type SharedImagePermissionsList = SharedImagePermissions[]; + export interface Stack { + /** + * The ARN of the stack. + */ + Arn?: Arn; + /** + * The name of the stack. + */ + Name: String; + /** + * The description to display. + */ + Description?: String; + /** + * The stack name to display. + */ + DisplayName?: String; + /** + * The time the stack was created. + */ + CreatedTime?: Timestamp; + /** + * The storage connectors to enable. + */ + StorageConnectors?: StorageConnectorList; + /** + * The URL that users are redirected to after their streaming session ends. + */ + RedirectURL?: RedirectURL; + /** + * The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed. + */ + FeedbackURL?: FeedbackURL; + /** + * The errors for the stack. + */ + StackErrors?: StackErrors; + /** + * The actions that are enabled or disabled for users during their streaming sessions. By default these actions are enabled. + */ + UserSettings?: UserSettingList; + /** + * The persistent application settings for users of the stack. + */ + ApplicationSettings?: ApplicationSettingsResponse; + /** + * The list of virtual private cloud (VPC) interface endpoint objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints. + */ + AccessEndpoints?: AccessEndpointList; + /** + * The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions. + */ + EmbedHostDomains?: EmbedHostDomains; + } + export type StackAttribute = "STORAGE_CONNECTORS"|"STORAGE_CONNECTOR_HOMEFOLDERS"|"STORAGE_CONNECTOR_GOOGLE_DRIVE"|"STORAGE_CONNECTOR_ONE_DRIVE"|"REDIRECT_URL"|"FEEDBACK_URL"|"THEME_NAME"|"USER_SETTINGS"|"EMBED_HOST_DOMAINS"|"IAM_ROLE_ARN"|"ACCESS_ENDPOINTS"|string; + export type StackAttributes = StackAttribute[]; + export interface StackError { + /** + * The error code. + */ + ErrorCode?: StackErrorCode; + /** + * The error message. + */ + ErrorMessage?: String; + } + export type StackErrorCode = "STORAGE_CONNECTOR_ERROR"|"INTERNAL_SERVICE_ERROR"|string; + export type StackErrors = StackError[]; + export type StackList = Stack[]; + export interface StartFleetRequest { + /** + * The name of the fleet. + */ + Name: String; + } + export interface StartFleetResult { + } + export interface StartImageBuilderRequest { + /** + * The name of the image builder. + */ + Name: String; + /** + * The version of the AppStream 2.0 agent to use for this image builder. To use the latest version of the AppStream 2.0 agent, specify [LATEST]. + */ + AppstreamAgentVersion?: AppstreamAgentVersion; + } + export interface StartImageBuilderResult { + /** + * Information about the image builder. + */ + ImageBuilder?: ImageBuilder; + } + export interface StopFleetRequest { + /** + * The name of the fleet. + */ + Name: String; + } + export interface StopFleetResult { + } + export interface StopImageBuilderRequest { + /** + * The name of the image builder. + */ + Name: String; + } + export interface StopImageBuilderResult { + /** + * Information about the image builder. + */ + ImageBuilder?: ImageBuilder; + } + export interface StorageConnector { + /** + * The type of storage connector. + */ + ConnectorType: StorageConnectorType; + /** + * The ARN of the storage connector. + */ + ResourceIdentifier?: ResourceIdentifier; + /** + * The names of the domains for the account. + */ + Domains?: DomainList; + } + export type StorageConnectorList = StorageConnector[]; + export type StorageConnectorType = "HOMEFOLDERS"|"GOOGLE_DRIVE"|"ONE_DRIVE"|string; + export type StreamView = "APP"|"DESKTOP"|string; + export type StreamingUrlUserId = string; + export type String = string; + export type StringList = String[]; + export type SubnetIdList = String[]; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. + */ + ResourceArn: Arn; + /** + * The tags to associate. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=. If you do not specify a value, the value is set to an empty string. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters: _ . : / = + \ - @ + */ + Tags: Tags; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type Tags = {[key: string]: TagValue}; + export type Timestamp = Date; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. + */ + ResourceArn: Arn; + /** + * The tag keys for the tags to disassociate. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateDirectoryConfigRequest { + /** + * The name of the Directory Config object. + */ + DirectoryName: DirectoryName; + /** + * The distinguished names of the organizational units for computer accounts. + */ + OrganizationalUnitDistinguishedNames?: OrganizationalUnitDistinguishedNamesList; + /** + * The credentials for the service account used by the fleet or image builder to connect to the directory. + */ + ServiceAccountCredentials?: ServiceAccountCredentials; + } + export interface UpdateDirectoryConfigResult { + /** + * Information about the Directory Config object. + */ + DirectoryConfig?: DirectoryConfig; + } + export interface UpdateFleetRequest { + /** + * The name of the image used to create the fleet. + */ + ImageName?: String; + /** + * The ARN of the public, private, or shared image to use. + */ + ImageArn?: Arn; + /** + * A unique name for the fleet. + */ + Name?: String; + /** + * The instance type to use when launching fleet instances. The following instance types are available: stream.standard.small stream.standard.medium stream.standard.large stream.compute.large stream.compute.xlarge stream.compute.2xlarge stream.compute.4xlarge stream.compute.8xlarge stream.memory.large stream.memory.xlarge stream.memory.2xlarge stream.memory.4xlarge stream.memory.8xlarge stream.memory.z1d.large stream.memory.z1d.xlarge stream.memory.z1d.2xlarge stream.memory.z1d.3xlarge stream.memory.z1d.6xlarge stream.memory.z1d.12xlarge stream.graphics-design.large stream.graphics-design.xlarge stream.graphics-design.2xlarge stream.graphics-design.4xlarge stream.graphics-desktop.2xlarge stream.graphics.g4dn.xlarge stream.graphics.g4dn.2xlarge stream.graphics.g4dn.4xlarge stream.graphics.g4dn.8xlarge stream.graphics.g4dn.12xlarge stream.graphics.g4dn.16xlarge stream.graphics-pro.4xlarge stream.graphics-pro.8xlarge stream.graphics-pro.16xlarge + */ + InstanceType?: String; + /** + * The desired capacity for the fleet. + */ + ComputeCapacity?: ComputeCapacity; + /** + * The VPC configuration for the fleet. + */ + VpcConfig?: VpcConfig; + /** + * The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance. Specify a value between 600 and 360000. + */ + MaxUserDurationInSeconds?: Integer; + /** + * The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance. Specify a value between 60 and 360000. + */ + DisconnectTimeoutInSeconds?: Integer; + /** + * Deletes the VPC association for the specified fleet. + */ + DeleteVpcConfig?: Boolean; + /** + * The description to display. + */ + Description?: Description; + /** + * The fleet name to display. + */ + DisplayName?: DisplayName; + /** + * Enables or disables default internet access for the fleet. + */ + EnableDefaultInternetAccess?: BooleanObject; + /** + * The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. + */ + DomainJoinInfo?: DomainJoinInfo; + /** + * The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the DisconnectTimeoutInSeconds time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in DisconnectTimeoutInSeconds elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds elapses, they are disconnected. To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0. If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity. + */ + IdleDisconnectTimeoutInSeconds?: Integer; + /** + * The fleet attributes to delete. + */ + AttributesToDelete?: FleetAttributes; + /** + * The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance. For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide. + */ + IamRoleArn?: Arn; + /** + * The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When APP is specified, only the windows of applications opened by users display. When DESKTOP is specified, the standard desktop that is provided by the operating system displays. The default value is APP. + */ + StreamView?: StreamView; + } + export interface UpdateFleetResult { + /** + * Information about the fleet. + */ + Fleet?: Fleet; + } + export interface UpdateImagePermissionsRequest { + /** + * The name of the private image. + */ + Name: Name; + /** + * The 12-digit identifier of the AWS account for which you want add or update image permissions. + */ + SharedAccountId: AwsAccountId; + /** + * The permissions for the image. + */ + ImagePermissions: ImagePermissions; + } + export interface UpdateImagePermissionsResult { + } + export interface UpdateStackRequest { + /** + * The stack name to display. + */ + DisplayName?: DisplayName; + /** + * The description to display. + */ + Description?: Description; + /** + * The name of the stack. + */ + Name: String; + /** + * The storage connectors to enable. + */ + StorageConnectors?: StorageConnectorList; + /** + * Deletes the storage connectors currently enabled for the stack. + */ + DeleteStorageConnectors?: Boolean; + /** + * The URL that users are redirected to after their streaming session ends. + */ + RedirectURL?: RedirectURL; + /** + * The URL that users are redirected to after they choose the Send Feedback link. If no URL is specified, no Send Feedback link is displayed. + */ + FeedbackURL?: FeedbackURL; + /** + * The stack attributes to delete. + */ + AttributesToDelete?: StackAttributes; + /** + * The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled. + */ + UserSettings?: UserSettingList; + /** + * The persistent application settings for users of a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session. + */ + ApplicationSettings?: ApplicationSettings; + /** + * The list of interface VPC endpoint (interface endpoint) objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints. + */ + AccessEndpoints?: AccessEndpointList; + /** + * The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions. + */ + EmbedHostDomains?: EmbedHostDomains; + } + export interface UpdateStackResult { + /** + * Information about the stack. + */ + Stack?: Stack; + } + export type UsageReportExecutionErrorCode = "RESOURCE_NOT_FOUND"|"ACCESS_DENIED"|"INTERNAL_SERVICE_ERROR"|string; + export type UsageReportSchedule = "DAILY"|string; + export interface UsageReportSubscription { + /** + * The Amazon S3 bucket where generated reports are stored. If you enabled on-instance session scripts and Amazon S3 logging for your session script configuration, AppStream 2.0 created an S3 bucket to store the script output. The bucket is unique to your account and Region. When you enable usage reporting in this case, AppStream 2.0 uses the same bucket to store your usage reports. If you haven't already enabled on-instance session scripts, when you enable usage reports, AppStream 2.0 creates a new S3 bucket. + */ + S3BucketName?: String; + /** + * The schedule for generating usage reports. + */ + Schedule?: UsageReportSchedule; + /** + * The time when the last usage report was generated. + */ + LastGeneratedReportDate?: Timestamp; + /** + * The errors that were returned if usage reports couldn't be generated. + */ + SubscriptionErrors?: LastReportGenerationExecutionErrors; + } + export type UsageReportSubscriptionList = UsageReportSubscription[]; + export interface User { + /** + * The ARN of the user. + */ + Arn?: Arn; + /** + * The email address of the user. Users' email addresses are case-sensitive. + */ + UserName?: Username; + /** + * Specifies whether the user in the user pool is enabled. + */ + Enabled?: Boolean; + /** + * The status of the user in the user pool. The status can be one of the following: UNCONFIRMED – The user is created but not confirmed. CONFIRMED – The user is confirmed. ARCHIVED – The user is no longer active. COMPROMISED – The user is disabled because of a potential security threat. UNKNOWN – The user status is not known. + */ + Status?: String; + /** + * The first name, or given name, of the user. + */ + FirstName?: UserAttributeValue; + /** + * The last name, or surname, of the user. + */ + LastName?: UserAttributeValue; + /** + * The date and time the user was created in the user pool. + */ + CreatedTime?: Timestamp; + /** + * The authentication type for the user. + */ + AuthenticationType: AuthenticationType; + } + export type UserAttributeValue = string; + export type UserId = string; + export type UserList = User[]; + export interface UserSetting { + /** + * The action that is enabled or disabled. + */ + Action: Action; + /** + * Indicates whether the action is enabled or disabled. + */ + Permission: Permission; + } + export type UserSettingList = UserSetting[]; + export interface UserStackAssociation { + /** + * The name of the stack that is associated with the user. + */ + StackName: String; + /** + * The email address of the user who is associated with the stack. Users' email addresses are case-sensitive. + */ + UserName: Username; + /** + * The authentication type for the user. + */ + AuthenticationType: AuthenticationType; + /** + * Specifies whether a welcome email is sent to a user after the user is created in the user pool. + */ + SendEmailNotification?: Boolean; + } + export interface UserStackAssociationError { + /** + * Information about the user and associated stack. + */ + UserStackAssociation?: UserStackAssociation; + /** + * The error code for the error that is returned when a user can’t be associated with or disassociated from a stack. + */ + ErrorCode?: UserStackAssociationErrorCode; + /** + * The error message for the error that is returned when a user can’t be associated with or disassociated from a stack. + */ + ErrorMessage?: String; + } + export type UserStackAssociationErrorCode = "STACK_NOT_FOUND"|"USER_NAME_NOT_FOUND"|"DIRECTORY_NOT_FOUND"|"INTERNAL_ERROR"|string; + export type UserStackAssociationErrorList = UserStackAssociationError[]; + export type UserStackAssociationList = UserStackAssociation[]; + export type Username = string; + export type VisibilityType = "PUBLIC"|"PRIVATE"|"SHARED"|string; + export interface VpcConfig { + /** + * The identifiers of the subnets to which a network interface is attached from the fleet instance or image builder instance. Fleet instances use one or more subnets. Image builder instances use one subnet. + */ + SubnetIds?: SubnetIdList; + /** + * The identifiers of the security groups for the fleet or image builder. + */ + SecurityGroupIds?: SecurityGroupIdList; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2016-12-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AppStream client. + */ + export import Types = AppStream; +} +export = AppStream; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appstream.js b/justdanceonline-main/node_modules/aws-sdk/clients/appstream.js new file mode 100644 index 0000000000000000000000000000000000000000..6313e4081320d27c90400061618c391db1755a2b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appstream.js @@ -0,0 +1,19 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['appstream'] = {}; +AWS.AppStream = Service.defineService('appstream', ['2016-12-01']); +Object.defineProperty(apiLoader.services['appstream'], '2016-12-01', { + get: function get() { + var model = require('../apis/appstream-2016-12-01.min.json'); + model.paginators = require('../apis/appstream-2016-12-01.paginators.json').pagination; + model.waiters = require('../apis/appstream-2016-12-01.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AppStream; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appsync.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/appsync.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..923fb1b9030278cbbfff03e8444d7bc81868dacc --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appsync.d.ts @@ -0,0 +1,1804 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AppSync extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AppSync.Types.ClientConfiguration) + config: Config & AppSync.Types.ClientConfiguration; + /** + * Creates a cache for the GraphQL API. + */ + createApiCache(params: AppSync.Types.CreateApiCacheRequest, callback?: (err: AWSError, data: AppSync.Types.CreateApiCacheResponse) => void): Request; + /** + * Creates a cache for the GraphQL API. + */ + createApiCache(callback?: (err: AWSError, data: AppSync.Types.CreateApiCacheResponse) => void): Request; + /** + * Creates a unique key that you can distribute to clients who are executing your API. + */ + createApiKey(params: AppSync.Types.CreateApiKeyRequest, callback?: (err: AWSError, data: AppSync.Types.CreateApiKeyResponse) => void): Request; + /** + * Creates a unique key that you can distribute to clients who are executing your API. + */ + createApiKey(callback?: (err: AWSError, data: AppSync.Types.CreateApiKeyResponse) => void): Request; + /** + * Creates a DataSource object. + */ + createDataSource(params: AppSync.Types.CreateDataSourceRequest, callback?: (err: AWSError, data: AppSync.Types.CreateDataSourceResponse) => void): Request; + /** + * Creates a DataSource object. + */ + createDataSource(callback?: (err: AWSError, data: AppSync.Types.CreateDataSourceResponse) => void): Request; + /** + * Creates a Function object. A function is a reusable entity. Multiple functions can be used to compose the resolver logic. + */ + createFunction(params: AppSync.Types.CreateFunctionRequest, callback?: (err: AWSError, data: AppSync.Types.CreateFunctionResponse) => void): Request; + /** + * Creates a Function object. A function is a reusable entity. Multiple functions can be used to compose the resolver logic. + */ + createFunction(callback?: (err: AWSError, data: AppSync.Types.CreateFunctionResponse) => void): Request; + /** + * Creates a GraphqlApi object. + */ + createGraphqlApi(params: AppSync.Types.CreateGraphqlApiRequest, callback?: (err: AWSError, data: AppSync.Types.CreateGraphqlApiResponse) => void): Request; + /** + * Creates a GraphqlApi object. + */ + createGraphqlApi(callback?: (err: AWSError, data: AppSync.Types.CreateGraphqlApiResponse) => void): Request; + /** + * Creates a Resolver object. A resolver converts incoming requests into a format that a data source can understand and converts the data source's responses into GraphQL. + */ + createResolver(params: AppSync.Types.CreateResolverRequest, callback?: (err: AWSError, data: AppSync.Types.CreateResolverResponse) => void): Request; + /** + * Creates a Resolver object. A resolver converts incoming requests into a format that a data source can understand and converts the data source's responses into GraphQL. + */ + createResolver(callback?: (err: AWSError, data: AppSync.Types.CreateResolverResponse) => void): Request; + /** + * Creates a Type object. + */ + createType(params: AppSync.Types.CreateTypeRequest, callback?: (err: AWSError, data: AppSync.Types.CreateTypeResponse) => void): Request; + /** + * Creates a Type object. + */ + createType(callback?: (err: AWSError, data: AppSync.Types.CreateTypeResponse) => void): Request; + /** + * Deletes an ApiCache object. + */ + deleteApiCache(params: AppSync.Types.DeleteApiCacheRequest, callback?: (err: AWSError, data: AppSync.Types.DeleteApiCacheResponse) => void): Request; + /** + * Deletes an ApiCache object. + */ + deleteApiCache(callback?: (err: AWSError, data: AppSync.Types.DeleteApiCacheResponse) => void): Request; + /** + * Deletes an API key. + */ + deleteApiKey(params: AppSync.Types.DeleteApiKeyRequest, callback?: (err: AWSError, data: AppSync.Types.DeleteApiKeyResponse) => void): Request; + /** + * Deletes an API key. + */ + deleteApiKey(callback?: (err: AWSError, data: AppSync.Types.DeleteApiKeyResponse) => void): Request; + /** + * Deletes a DataSource object. + */ + deleteDataSource(params: AppSync.Types.DeleteDataSourceRequest, callback?: (err: AWSError, data: AppSync.Types.DeleteDataSourceResponse) => void): Request; + /** + * Deletes a DataSource object. + */ + deleteDataSource(callback?: (err: AWSError, data: AppSync.Types.DeleteDataSourceResponse) => void): Request; + /** + * Deletes a Function. + */ + deleteFunction(params: AppSync.Types.DeleteFunctionRequest, callback?: (err: AWSError, data: AppSync.Types.DeleteFunctionResponse) => void): Request; + /** + * Deletes a Function. + */ + deleteFunction(callback?: (err: AWSError, data: AppSync.Types.DeleteFunctionResponse) => void): Request; + /** + * Deletes a GraphqlApi object. + */ + deleteGraphqlApi(params: AppSync.Types.DeleteGraphqlApiRequest, callback?: (err: AWSError, data: AppSync.Types.DeleteGraphqlApiResponse) => void): Request; + /** + * Deletes a GraphqlApi object. + */ + deleteGraphqlApi(callback?: (err: AWSError, data: AppSync.Types.DeleteGraphqlApiResponse) => void): Request; + /** + * Deletes a Resolver object. + */ + deleteResolver(params: AppSync.Types.DeleteResolverRequest, callback?: (err: AWSError, data: AppSync.Types.DeleteResolverResponse) => void): Request; + /** + * Deletes a Resolver object. + */ + deleteResolver(callback?: (err: AWSError, data: AppSync.Types.DeleteResolverResponse) => void): Request; + /** + * Deletes a Type object. + */ + deleteType(params: AppSync.Types.DeleteTypeRequest, callback?: (err: AWSError, data: AppSync.Types.DeleteTypeResponse) => void): Request; + /** + * Deletes a Type object. + */ + deleteType(callback?: (err: AWSError, data: AppSync.Types.DeleteTypeResponse) => void): Request; + /** + * Flushes an ApiCache object. + */ + flushApiCache(params: AppSync.Types.FlushApiCacheRequest, callback?: (err: AWSError, data: AppSync.Types.FlushApiCacheResponse) => void): Request; + /** + * Flushes an ApiCache object. + */ + flushApiCache(callback?: (err: AWSError, data: AppSync.Types.FlushApiCacheResponse) => void): Request; + /** + * Retrieves an ApiCache object. + */ + getApiCache(params: AppSync.Types.GetApiCacheRequest, callback?: (err: AWSError, data: AppSync.Types.GetApiCacheResponse) => void): Request; + /** + * Retrieves an ApiCache object. + */ + getApiCache(callback?: (err: AWSError, data: AppSync.Types.GetApiCacheResponse) => void): Request; + /** + * Retrieves a DataSource object. + */ + getDataSource(params: AppSync.Types.GetDataSourceRequest, callback?: (err: AWSError, data: AppSync.Types.GetDataSourceResponse) => void): Request; + /** + * Retrieves a DataSource object. + */ + getDataSource(callback?: (err: AWSError, data: AppSync.Types.GetDataSourceResponse) => void): Request; + /** + * Get a Function. + */ + getFunction(params: AppSync.Types.GetFunctionRequest, callback?: (err: AWSError, data: AppSync.Types.GetFunctionResponse) => void): Request; + /** + * Get a Function. + */ + getFunction(callback?: (err: AWSError, data: AppSync.Types.GetFunctionResponse) => void): Request; + /** + * Retrieves a GraphqlApi object. + */ + getGraphqlApi(params: AppSync.Types.GetGraphqlApiRequest, callback?: (err: AWSError, data: AppSync.Types.GetGraphqlApiResponse) => void): Request; + /** + * Retrieves a GraphqlApi object. + */ + getGraphqlApi(callback?: (err: AWSError, data: AppSync.Types.GetGraphqlApiResponse) => void): Request; + /** + * Retrieves the introspection schema for a GraphQL API. + */ + getIntrospectionSchema(params: AppSync.Types.GetIntrospectionSchemaRequest, callback?: (err: AWSError, data: AppSync.Types.GetIntrospectionSchemaResponse) => void): Request; + /** + * Retrieves the introspection schema for a GraphQL API. + */ + getIntrospectionSchema(callback?: (err: AWSError, data: AppSync.Types.GetIntrospectionSchemaResponse) => void): Request; + /** + * Retrieves a Resolver object. + */ + getResolver(params: AppSync.Types.GetResolverRequest, callback?: (err: AWSError, data: AppSync.Types.GetResolverResponse) => void): Request; + /** + * Retrieves a Resolver object. + */ + getResolver(callback?: (err: AWSError, data: AppSync.Types.GetResolverResponse) => void): Request; + /** + * Retrieves the current status of a schema creation operation. + */ + getSchemaCreationStatus(params: AppSync.Types.GetSchemaCreationStatusRequest, callback?: (err: AWSError, data: AppSync.Types.GetSchemaCreationStatusResponse) => void): Request; + /** + * Retrieves the current status of a schema creation operation. + */ + getSchemaCreationStatus(callback?: (err: AWSError, data: AppSync.Types.GetSchemaCreationStatusResponse) => void): Request; + /** + * Retrieves a Type object. + */ + getType(params: AppSync.Types.GetTypeRequest, callback?: (err: AWSError, data: AppSync.Types.GetTypeResponse) => void): Request; + /** + * Retrieves a Type object. + */ + getType(callback?: (err: AWSError, data: AppSync.Types.GetTypeResponse) => void): Request; + /** + * Lists the API keys for a given API. API keys are deleted automatically 60 days after they expire. However, they may still be included in the response until they have actually been deleted. You can safely call DeleteApiKey to manually delete a key before it's automatically deleted. + */ + listApiKeys(params: AppSync.Types.ListApiKeysRequest, callback?: (err: AWSError, data: AppSync.Types.ListApiKeysResponse) => void): Request; + /** + * Lists the API keys for a given API. API keys are deleted automatically 60 days after they expire. However, they may still be included in the response until they have actually been deleted. You can safely call DeleteApiKey to manually delete a key before it's automatically deleted. + */ + listApiKeys(callback?: (err: AWSError, data: AppSync.Types.ListApiKeysResponse) => void): Request; + /** + * Lists the data sources for a given API. + */ + listDataSources(params: AppSync.Types.ListDataSourcesRequest, callback?: (err: AWSError, data: AppSync.Types.ListDataSourcesResponse) => void): Request; + /** + * Lists the data sources for a given API. + */ + listDataSources(callback?: (err: AWSError, data: AppSync.Types.ListDataSourcesResponse) => void): Request; + /** + * List multiple functions. + */ + listFunctions(params: AppSync.Types.ListFunctionsRequest, callback?: (err: AWSError, data: AppSync.Types.ListFunctionsResponse) => void): Request; + /** + * List multiple functions. + */ + listFunctions(callback?: (err: AWSError, data: AppSync.Types.ListFunctionsResponse) => void): Request; + /** + * Lists your GraphQL APIs. + */ + listGraphqlApis(params: AppSync.Types.ListGraphqlApisRequest, callback?: (err: AWSError, data: AppSync.Types.ListGraphqlApisResponse) => void): Request; + /** + * Lists your GraphQL APIs. + */ + listGraphqlApis(callback?: (err: AWSError, data: AppSync.Types.ListGraphqlApisResponse) => void): Request; + /** + * Lists the resolvers for a given API and type. + */ + listResolvers(params: AppSync.Types.ListResolversRequest, callback?: (err: AWSError, data: AppSync.Types.ListResolversResponse) => void): Request; + /** + * Lists the resolvers for a given API and type. + */ + listResolvers(callback?: (err: AWSError, data: AppSync.Types.ListResolversResponse) => void): Request; + /** + * List the resolvers that are associated with a specific function. + */ + listResolversByFunction(params: AppSync.Types.ListResolversByFunctionRequest, callback?: (err: AWSError, data: AppSync.Types.ListResolversByFunctionResponse) => void): Request; + /** + * List the resolvers that are associated with a specific function. + */ + listResolversByFunction(callback?: (err: AWSError, data: AppSync.Types.ListResolversByFunctionResponse) => void): Request; + /** + * Lists the tags for a resource. + */ + listTagsForResource(params: AppSync.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: AppSync.Types.ListTagsForResourceResponse) => void): Request; + /** + * Lists the tags for a resource. + */ + listTagsForResource(callback?: (err: AWSError, data: AppSync.Types.ListTagsForResourceResponse) => void): Request; + /** + * Lists the types for a given API. + */ + listTypes(params: AppSync.Types.ListTypesRequest, callback?: (err: AWSError, data: AppSync.Types.ListTypesResponse) => void): Request; + /** + * Lists the types for a given API. + */ + listTypes(callback?: (err: AWSError, data: AppSync.Types.ListTypesResponse) => void): Request; + /** + * Adds a new schema to your GraphQL API. This operation is asynchronous. Use to determine when it has completed. + */ + startSchemaCreation(params: AppSync.Types.StartSchemaCreationRequest, callback?: (err: AWSError, data: AppSync.Types.StartSchemaCreationResponse) => void): Request; + /** + * Adds a new schema to your GraphQL API. This operation is asynchronous. Use to determine when it has completed. + */ + startSchemaCreation(callback?: (err: AWSError, data: AppSync.Types.StartSchemaCreationResponse) => void): Request; + /** + * Tags a resource with user-supplied tags. + */ + tagResource(params: AppSync.Types.TagResourceRequest, callback?: (err: AWSError, data: AppSync.Types.TagResourceResponse) => void): Request; + /** + * Tags a resource with user-supplied tags. + */ + tagResource(callback?: (err: AWSError, data: AppSync.Types.TagResourceResponse) => void): Request; + /** + * Untags a resource. + */ + untagResource(params: AppSync.Types.UntagResourceRequest, callback?: (err: AWSError, data: AppSync.Types.UntagResourceResponse) => void): Request; + /** + * Untags a resource. + */ + untagResource(callback?: (err: AWSError, data: AppSync.Types.UntagResourceResponse) => void): Request; + /** + * Updates the cache for the GraphQL API. + */ + updateApiCache(params: AppSync.Types.UpdateApiCacheRequest, callback?: (err: AWSError, data: AppSync.Types.UpdateApiCacheResponse) => void): Request; + /** + * Updates the cache for the GraphQL API. + */ + updateApiCache(callback?: (err: AWSError, data: AppSync.Types.UpdateApiCacheResponse) => void): Request; + /** + * Updates an API key. The key can be updated while it is not deleted. + */ + updateApiKey(params: AppSync.Types.UpdateApiKeyRequest, callback?: (err: AWSError, data: AppSync.Types.UpdateApiKeyResponse) => void): Request; + /** + * Updates an API key. The key can be updated while it is not deleted. + */ + updateApiKey(callback?: (err: AWSError, data: AppSync.Types.UpdateApiKeyResponse) => void): Request; + /** + * Updates a DataSource object. + */ + updateDataSource(params: AppSync.Types.UpdateDataSourceRequest, callback?: (err: AWSError, data: AppSync.Types.UpdateDataSourceResponse) => void): Request; + /** + * Updates a DataSource object. + */ + updateDataSource(callback?: (err: AWSError, data: AppSync.Types.UpdateDataSourceResponse) => void): Request; + /** + * Updates a Function object. + */ + updateFunction(params: AppSync.Types.UpdateFunctionRequest, callback?: (err: AWSError, data: AppSync.Types.UpdateFunctionResponse) => void): Request; + /** + * Updates a Function object. + */ + updateFunction(callback?: (err: AWSError, data: AppSync.Types.UpdateFunctionResponse) => void): Request; + /** + * Updates a GraphqlApi object. + */ + updateGraphqlApi(params: AppSync.Types.UpdateGraphqlApiRequest, callback?: (err: AWSError, data: AppSync.Types.UpdateGraphqlApiResponse) => void): Request; + /** + * Updates a GraphqlApi object. + */ + updateGraphqlApi(callback?: (err: AWSError, data: AppSync.Types.UpdateGraphqlApiResponse) => void): Request; + /** + * Updates a Resolver object. + */ + updateResolver(params: AppSync.Types.UpdateResolverRequest, callback?: (err: AWSError, data: AppSync.Types.UpdateResolverResponse) => void): Request; + /** + * Updates a Resolver object. + */ + updateResolver(callback?: (err: AWSError, data: AppSync.Types.UpdateResolverResponse) => void): Request; + /** + * Updates a Type object. + */ + updateType(params: AppSync.Types.UpdateTypeRequest, callback?: (err: AWSError, data: AppSync.Types.UpdateTypeResponse) => void): Request; + /** + * Updates a Type object. + */ + updateType(callback?: (err: AWSError, data: AppSync.Types.UpdateTypeResponse) => void): Request; +} +declare namespace AppSync { + export interface AdditionalAuthenticationProvider { + /** + * The authentication type: API key, AWS IAM, OIDC, or Amazon Cognito user pools. + */ + authenticationType?: AuthenticationType; + /** + * The OpenID Connect configuration. + */ + openIDConnectConfig?: OpenIDConnectConfig; + /** + * The Amazon Cognito user pool configuration. + */ + userPoolConfig?: CognitoUserPoolConfig; + } + export type AdditionalAuthenticationProviders = AdditionalAuthenticationProvider[]; + export interface ApiCache { + /** + * TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds. + */ + ttl?: Long; + /** + * Caching behavior. FULL_REQUEST_CACHING: All requests are fully cached. PER_RESOLVER_CACHING: Individual resolvers that you specify are cached. + */ + apiCachingBehavior?: ApiCachingBehavior; + /** + * Transit encryption flag when connecting to cache. This setting cannot be updated after creation. + */ + transitEncryptionEnabled?: Boolean; + /** + * At rest encryption flag for cache. This setting cannot be updated after creation. + */ + atRestEncryptionEnabled?: Boolean; + /** + * The cache instance type. Valid values are SMALL MEDIUM LARGE XLARGE LARGE_2X LARGE_4X LARGE_8X (not available in all regions) LARGE_12X Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: T2_SMALL: A t2.small instance type. T2_MEDIUM: A t2.medium instance type. R4_LARGE: A r4.large instance type. R4_XLARGE: A r4.xlarge instance type. R4_2XLARGE: A r4.2xlarge instance type. R4_4XLARGE: A r4.4xlarge instance type. R4_8XLARGE: A r4.8xlarge instance type. + */ + type?: ApiCacheType; + /** + * The cache instance status. AVAILABLE: The instance is available for use. CREATING: The instance is currently creating. DELETING: The instance is currently deleting. MODIFYING: The instance is currently modifying. FAILED: The instance has failed creation. + */ + status?: ApiCacheStatus; + } + export type ApiCacheStatus = "AVAILABLE"|"CREATING"|"DELETING"|"MODIFYING"|"FAILED"|string; + export type ApiCacheType = "T2_SMALL"|"T2_MEDIUM"|"R4_LARGE"|"R4_XLARGE"|"R4_2XLARGE"|"R4_4XLARGE"|"R4_8XLARGE"|"SMALL"|"MEDIUM"|"LARGE"|"XLARGE"|"LARGE_2X"|"LARGE_4X"|"LARGE_8X"|"LARGE_12X"|string; + export type ApiCachingBehavior = "FULL_REQUEST_CACHING"|"PER_RESOLVER_CACHING"|string; + export interface ApiKey { + /** + * The API key ID. + */ + id?: String; + /** + * A description of the purpose of the API key. + */ + description?: String; + /** + * The time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour. + */ + expires?: Long; + /** + * The time after which the API key is deleted. The date is represented as seconds since the epoch, rounded down to the nearest hour. + */ + deletes?: Long; + } + export type ApiKeys = ApiKey[]; + export type AuthenticationType = "API_KEY"|"AWS_IAM"|"AMAZON_COGNITO_USER_POOLS"|"OPENID_CONNECT"|string; + export interface AuthorizationConfig { + /** + * The authorization type required by the HTTP endpoint. AWS_IAM: The authorization type is Sigv4. + */ + authorizationType: AuthorizationType; + /** + * The AWS IAM settings. + */ + awsIamConfig?: AwsIamConfig; + } + export type AuthorizationType = "AWS_IAM"|string; + export interface AwsIamConfig { + /** + * The signing region for AWS IAM authorization. + */ + signingRegion?: String; + /** + * The signing service name for AWS IAM authorization. + */ + signingServiceName?: String; + } + export type _Blob = Buffer|Uint8Array|Blob|string; + export type Boolean = boolean; + export type BooleanValue = boolean; + export interface CachingConfig { + /** + * The TTL in seconds for a resolver that has caching enabled. Valid values are between 1 and 3600 seconds. + */ + ttl?: Long; + /** + * The caching keys for a resolver that has caching enabled. Valid values are entries from the $context.arguments, $context.source, and $context.identity maps. + */ + cachingKeys?: CachingKeys; + } + export type CachingKeys = String[]; + export interface CognitoUserPoolConfig { + /** + * The user pool ID. + */ + userPoolId: String; + /** + * The AWS Region in which the user pool was created. + */ + awsRegion: String; + /** + * A regular expression for validating the incoming Amazon Cognito user pool app client ID. + */ + appIdClientRegex?: String; + } + export type ConflictDetectionType = "VERSION"|"NONE"|string; + export type ConflictHandlerType = "OPTIMISTIC_CONCURRENCY"|"LAMBDA"|"AUTOMERGE"|"NONE"|string; + export interface CreateApiCacheRequest { + /** + * The GraphQL API Id. + */ + apiId: String; + /** + * TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds. + */ + ttl: Long; + /** + * Transit encryption flag when connecting to cache. This setting cannot be updated after creation. + */ + transitEncryptionEnabled?: Boolean; + /** + * At rest encryption flag for cache. This setting cannot be updated after creation. + */ + atRestEncryptionEnabled?: Boolean; + /** + * Caching behavior. FULL_REQUEST_CACHING: All requests are fully cached. PER_RESOLVER_CACHING: Individual resolvers that you specify are cached. + */ + apiCachingBehavior: ApiCachingBehavior; + /** + * The cache instance type. Valid values are SMALL MEDIUM LARGE XLARGE LARGE_2X LARGE_4X LARGE_8X (not available in all regions) LARGE_12X Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: T2_SMALL: A t2.small instance type. T2_MEDIUM: A t2.medium instance type. R4_LARGE: A r4.large instance type. R4_XLARGE: A r4.xlarge instance type. R4_2XLARGE: A r4.2xlarge instance type. R4_4XLARGE: A r4.4xlarge instance type. R4_8XLARGE: A r4.8xlarge instance type. + */ + type: ApiCacheType; + } + export interface CreateApiCacheResponse { + /** + * The ApiCache object. + */ + apiCache?: ApiCache; + } + export interface CreateApiKeyRequest { + /** + * The ID for your GraphQL API. + */ + apiId: String; + /** + * A description of the purpose of the API key. + */ + description?: String; + /** + * The time from creation time after which the API key expires. The date is represented as seconds since the epoch, rounded down to the nearest hour. The default value for this parameter is 7 days from creation time. For more information, see . + */ + expires?: Long; + } + export interface CreateApiKeyResponse { + /** + * The API key. + */ + apiKey?: ApiKey; + } + export interface CreateDataSourceRequest { + /** + * The API ID for the GraphQL API for the DataSource. + */ + apiId: String; + /** + * A user-supplied name for the DataSource. + */ + name: ResourceName; + /** + * A description of the DataSource. + */ + description?: String; + /** + * The type of the DataSource. + */ + type: DataSourceType; + /** + * The AWS IAM service role ARN for the data source. The system assumes this role when accessing the data source. + */ + serviceRoleArn?: String; + /** + * Amazon DynamoDB settings. + */ + dynamodbConfig?: DynamodbDataSourceConfig; + /** + * AWS Lambda settings. + */ + lambdaConfig?: LambdaDataSourceConfig; + /** + * Amazon Elasticsearch Service settings. + */ + elasticsearchConfig?: ElasticsearchDataSourceConfig; + /** + * HTTP endpoint settings. + */ + httpConfig?: HttpDataSourceConfig; + /** + * Relational database settings. + */ + relationalDatabaseConfig?: RelationalDatabaseDataSourceConfig; + } + export interface CreateDataSourceResponse { + /** + * The DataSource object. + */ + dataSource?: DataSource; + } + export interface CreateFunctionRequest { + /** + * The GraphQL API ID. + */ + apiId: String; + /** + * The Function name. The function name does not have to be unique. + */ + name: ResourceName; + /** + * The Function description. + */ + description?: String; + /** + * The Function DataSource name. + */ + dataSourceName: ResourceName; + /** + * The Function request mapping template. Functions support only the 2018-05-29 version of the request mapping template. + */ + requestMappingTemplate?: MappingTemplate; + /** + * The Function response mapping template. + */ + responseMappingTemplate?: MappingTemplate; + /** + * The version of the request mapping template. Currently the supported value is 2018-05-29. + */ + functionVersion: String; + syncConfig?: SyncConfig; + } + export interface CreateFunctionResponse { + /** + * The Function object. + */ + functionConfiguration?: FunctionConfiguration; + } + export interface CreateGraphqlApiRequest { + /** + * A user-supplied name for the GraphqlApi. + */ + name: String; + /** + * The Amazon CloudWatch Logs configuration. + */ + logConfig?: LogConfig; + /** + * The authentication type: API key, AWS IAM, OIDC, or Amazon Cognito user pools. + */ + authenticationType: AuthenticationType; + /** + * The Amazon Cognito user pool configuration. + */ + userPoolConfig?: UserPoolConfig; + /** + * The OpenID Connect configuration. + */ + openIDConnectConfig?: OpenIDConnectConfig; + /** + * A TagMap object. + */ + tags?: TagMap; + /** + * A list of additional authentication providers for the GraphqlApi API. + */ + additionalAuthenticationProviders?: AdditionalAuthenticationProviders; + /** + * A flag indicating whether to enable X-Ray tracing for the GraphqlApi. + */ + xrayEnabled?: Boolean; + } + export interface CreateGraphqlApiResponse { + /** + * The GraphqlApi. + */ + graphqlApi?: GraphqlApi; + } + export interface CreateResolverRequest { + /** + * The ID for the GraphQL API for which the resolver is being created. + */ + apiId: String; + /** + * The name of the Type. + */ + typeName: ResourceName; + /** + * The name of the field to attach the resolver to. + */ + fieldName: ResourceName; + /** + * The name of the data source for which the resolver is being created. + */ + dataSourceName?: ResourceName; + /** + * The mapping template to be used for requests. A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL). VTL request mapping templates are optional when using a Lambda data source. For all other data sources, VTL request and response mapping templates are required. + */ + requestMappingTemplate?: MappingTemplate; + /** + * The mapping template to be used for responses from the data source. + */ + responseMappingTemplate?: MappingTemplate; + /** + * The resolver type. UNIT: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. PIPELINE: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of Function in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. + */ + kind?: ResolverKind; + /** + * The PipelineConfig. + */ + pipelineConfig?: PipelineConfig; + /** + * The SyncConfig for a resolver attached to a versioned datasource. + */ + syncConfig?: SyncConfig; + /** + * The caching configuration for the resolver. + */ + cachingConfig?: CachingConfig; + } + export interface CreateResolverResponse { + /** + * The Resolver object. + */ + resolver?: Resolver; + } + export interface CreateTypeRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The type definition, in GraphQL Schema Definition Language (SDL) format. For more information, see the GraphQL SDL documentation. + */ + definition: String; + /** + * The type format: SDL or JSON. + */ + format: TypeDefinitionFormat; + } + export interface CreateTypeResponse { + /** + * The Type object. + */ + type?: Type; + } + export interface DataSource { + /** + * The data source ARN. + */ + dataSourceArn?: String; + /** + * The name of the data source. + */ + name?: ResourceName; + /** + * The description of the data source. + */ + description?: String; + /** + * The type of the data source. AMAZON_DYNAMODB: The data source is an Amazon DynamoDB table. AMAZON_ELASTICSEARCH: The data source is an Amazon Elasticsearch Service domain. AWS_LAMBDA: The data source is an AWS Lambda function. NONE: There is no data source. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation. HTTP: The data source is an HTTP endpoint. RELATIONAL_DATABASE: The data source is a relational database. + */ + type?: DataSourceType; + /** + * The AWS IAM service role ARN for the data source. The system assumes this role when accessing the data source. + */ + serviceRoleArn?: String; + /** + * Amazon DynamoDB settings. + */ + dynamodbConfig?: DynamodbDataSourceConfig; + /** + * AWS Lambda settings. + */ + lambdaConfig?: LambdaDataSourceConfig; + /** + * Amazon Elasticsearch Service settings. + */ + elasticsearchConfig?: ElasticsearchDataSourceConfig; + /** + * HTTP endpoint settings. + */ + httpConfig?: HttpDataSourceConfig; + /** + * Relational database settings. + */ + relationalDatabaseConfig?: RelationalDatabaseDataSourceConfig; + } + export type DataSourceType = "AWS_LAMBDA"|"AMAZON_DYNAMODB"|"AMAZON_ELASTICSEARCH"|"NONE"|"HTTP"|"RELATIONAL_DATABASE"|string; + export type DataSources = DataSource[]; + export type DefaultAction = "ALLOW"|"DENY"|string; + export interface DeleteApiCacheRequest { + /** + * The API ID. + */ + apiId: String; + } + export interface DeleteApiCacheResponse { + } + export interface DeleteApiKeyRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The ID for the API key. + */ + id: String; + } + export interface DeleteApiKeyResponse { + } + export interface DeleteDataSourceRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The name of the data source. + */ + name: ResourceName; + } + export interface DeleteDataSourceResponse { + } + export interface DeleteFunctionRequest { + /** + * The GraphQL API ID. + */ + apiId: String; + /** + * The Function ID. + */ + functionId: ResourceName; + } + export interface DeleteFunctionResponse { + } + export interface DeleteGraphqlApiRequest { + /** + * The API ID. + */ + apiId: String; + } + export interface DeleteGraphqlApiResponse { + } + export interface DeleteResolverRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The name of the resolver type. + */ + typeName: ResourceName; + /** + * The resolver field name. + */ + fieldName: ResourceName; + } + export interface DeleteResolverResponse { + } + export interface DeleteTypeRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The type name. + */ + typeName: ResourceName; + } + export interface DeleteTypeResponse { + } + export interface DeltaSyncConfig { + /** + * The number of minutes an Item is stored in the datasource. + */ + baseTableTTL?: Long; + /** + * The Delta Sync table name. + */ + deltaSyncTableName?: String; + /** + * The number of minutes a Delta Sync log entry is stored in the Delta Sync table. + */ + deltaSyncTableTTL?: Long; + } + export interface DynamodbDataSourceConfig { + /** + * The table name. + */ + tableName: String; + /** + * The AWS Region. + */ + awsRegion: String; + /** + * Set to TRUE to use Amazon Cognito credentials with this data source. + */ + useCallerCredentials?: Boolean; + /** + * The DeltaSyncConfig for a versioned datasource. + */ + deltaSyncConfig?: DeltaSyncConfig; + /** + * Set to TRUE to use Conflict Detection and Resolution with this data source. + */ + versioned?: Boolean; + } + export interface ElasticsearchDataSourceConfig { + /** + * The endpoint. + */ + endpoint: String; + /** + * The AWS Region. + */ + awsRegion: String; + } + export type FieldLogLevel = "NONE"|"ERROR"|"ALL"|string; + export interface FlushApiCacheRequest { + /** + * The API ID. + */ + apiId: String; + } + export interface FlushApiCacheResponse { + } + export interface FunctionConfiguration { + /** + * A unique ID representing the Function object. + */ + functionId?: String; + /** + * The ARN of the Function object. + */ + functionArn?: String; + /** + * The name of the Function object. + */ + name?: ResourceName; + /** + * The Function description. + */ + description?: String; + /** + * The name of the DataSource. + */ + dataSourceName?: ResourceName; + /** + * The Function request mapping template. Functions support only the 2018-05-29 version of the request mapping template. + */ + requestMappingTemplate?: MappingTemplate; + /** + * The Function response mapping template. + */ + responseMappingTemplate?: MappingTemplate; + /** + * The version of the request mapping template. Currently only the 2018-05-29 version of the template is supported. + */ + functionVersion?: String; + syncConfig?: SyncConfig; + } + export type Functions = FunctionConfiguration[]; + export type FunctionsIds = String[]; + export interface GetApiCacheRequest { + /** + * The API ID. + */ + apiId: String; + } + export interface GetApiCacheResponse { + /** + * The ApiCache object. + */ + apiCache?: ApiCache; + } + export interface GetDataSourceRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The name of the data source. + */ + name: ResourceName; + } + export interface GetDataSourceResponse { + /** + * The DataSource object. + */ + dataSource?: DataSource; + } + export interface GetFunctionRequest { + /** + * The GraphQL API ID. + */ + apiId: String; + /** + * The Function ID. + */ + functionId: ResourceName; + } + export interface GetFunctionResponse { + /** + * The Function object. + */ + functionConfiguration?: FunctionConfiguration; + } + export interface GetGraphqlApiRequest { + /** + * The API ID for the GraphQL API. + */ + apiId: String; + } + export interface GetGraphqlApiResponse { + /** + * The GraphqlApi object. + */ + graphqlApi?: GraphqlApi; + } + export interface GetIntrospectionSchemaRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The schema format: SDL or JSON. + */ + format: OutputType; + /** + * A flag that specifies whether the schema introspection should contain directives. + */ + includeDirectives?: BooleanValue; + } + export interface GetIntrospectionSchemaResponse { + /** + * The schema, in GraphQL Schema Definition Language (SDL) format. For more information, see the GraphQL SDL documentation. + */ + schema?: _Blob; + } + export interface GetResolverRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The resolver type name. + */ + typeName: ResourceName; + /** + * The resolver field name. + */ + fieldName: ResourceName; + } + export interface GetResolverResponse { + /** + * The Resolver object. + */ + resolver?: Resolver; + } + export interface GetSchemaCreationStatusRequest { + /** + * The API ID. + */ + apiId: String; + } + export interface GetSchemaCreationStatusResponse { + /** + * The current state of the schema (PROCESSING, FAILED, SUCCESS, or NOT_APPLICABLE). When the schema is in the ACTIVE state, you can add data. + */ + status?: SchemaStatus; + /** + * Detailed information about the status of the schema creation operation. + */ + details?: String; + } + export interface GetTypeRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The type name. + */ + typeName: ResourceName; + /** + * The type format: SDL or JSON. + */ + format: TypeDefinitionFormat; + } + export interface GetTypeResponse { + /** + * The Type object. + */ + type?: Type; + } + export interface GraphqlApi { + /** + * The API name. + */ + name?: ResourceName; + /** + * The API ID. + */ + apiId?: String; + /** + * The authentication type. + */ + authenticationType?: AuthenticationType; + /** + * The Amazon CloudWatch Logs configuration. + */ + logConfig?: LogConfig; + /** + * The Amazon Cognito user pool configuration. + */ + userPoolConfig?: UserPoolConfig; + /** + * The OpenID Connect configuration. + */ + openIDConnectConfig?: OpenIDConnectConfig; + /** + * The ARN. + */ + arn?: String; + /** + * The URIs. + */ + uris?: MapOfStringToString; + /** + * The tags. + */ + tags?: TagMap; + /** + * A list of additional authentication providers for the GraphqlApi API. + */ + additionalAuthenticationProviders?: AdditionalAuthenticationProviders; + /** + * A flag representing whether X-Ray tracing is enabled for this GraphqlApi. + */ + xrayEnabled?: Boolean; + /** + * The ARN of the AWS Web Application Firewall (WAF) ACL associated with this GraphqlApi, if one exists. + */ + wafWebAclArn?: String; + } + export type GraphqlApis = GraphqlApi[]; + export interface HttpDataSourceConfig { + /** + * The HTTP URL endpoint. You can either specify the domain name or IP, and port combination, and the URL scheme must be HTTP or HTTPS. If the port is not specified, AWS AppSync uses the default port 80 for the HTTP endpoint and port 443 for HTTPS endpoints. + */ + endpoint?: String; + /** + * The authorization config in case the HTTP endpoint requires authorization. + */ + authorizationConfig?: AuthorizationConfig; + } + export interface LambdaConflictHandlerConfig { + /** + * The Arn for the Lambda function to use as the Conflict Handler. + */ + lambdaConflictHandlerArn?: String; + } + export interface LambdaDataSourceConfig { + /** + * The ARN for the Lambda function. + */ + lambdaFunctionArn: String; + } + export interface ListApiKeysRequest { + /** + * The API ID. + */ + apiId: String; + /** + * An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + /** + * The maximum number of results you want the request to return. + */ + maxResults?: MaxResults; + } + export interface ListApiKeysResponse { + /** + * The ApiKey objects. + */ + apiKeys?: ApiKeys; + /** + * An identifier to be passed in the next request to this operation to return the next set of items in the list. + */ + nextToken?: PaginationToken; + } + export interface ListDataSourcesRequest { + /** + * The API ID. + */ + apiId: String; + /** + * An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + /** + * The maximum number of results you want the request to return. + */ + maxResults?: MaxResults; + } + export interface ListDataSourcesResponse { + /** + * The DataSource objects. + */ + dataSources?: DataSources; + /** + * An identifier to be passed in the next request to this operation to return the next set of items in the list. + */ + nextToken?: PaginationToken; + } + export interface ListFunctionsRequest { + /** + * The GraphQL API ID. + */ + apiId: String; + /** + * An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + /** + * The maximum number of results you want the request to return. + */ + maxResults?: MaxResults; + } + export interface ListFunctionsResponse { + /** + * A list of Function objects. + */ + functions?: Functions; + /** + * An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + } + export interface ListGraphqlApisRequest { + /** + * An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + /** + * The maximum number of results you want the request to return. + */ + maxResults?: MaxResults; + } + export interface ListGraphqlApisResponse { + /** + * The GraphqlApi objects. + */ + graphqlApis?: GraphqlApis; + /** + * An identifier to be passed in the next request to this operation to return the next set of items in the list. + */ + nextToken?: PaginationToken; + } + export interface ListResolversByFunctionRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The Function ID. + */ + functionId: String; + /** + * An identifier that was returned from the previous call to this operation, which you can use to return the next set of items in the list. + */ + nextToken?: PaginationToken; + /** + * The maximum number of results you want the request to return. + */ + maxResults?: MaxResults; + } + export interface ListResolversByFunctionResponse { + /** + * The list of resolvers. + */ + resolvers?: Resolvers; + /** + * An identifier that can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + } + export interface ListResolversRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The type name. + */ + typeName: String; + /** + * An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + /** + * The maximum number of results you want the request to return. + */ + maxResults?: MaxResults; + } + export interface ListResolversResponse { + /** + * The Resolver objects. + */ + resolvers?: Resolvers; + /** + * An identifier to be passed in the next request to this operation to return the next set of items in the list. + */ + nextToken?: PaginationToken; + } + export interface ListTagsForResourceRequest { + /** + * The GraphqlApi ARN. + */ + resourceArn: ResourceArn; + } + export interface ListTagsForResourceResponse { + /** + * A TagMap object. + */ + tags?: TagMap; + } + export interface ListTypesRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The type format: SDL or JSON. + */ + format: TypeDefinitionFormat; + /** + * An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. + */ + nextToken?: PaginationToken; + /** + * The maximum number of results you want the request to return. + */ + maxResults?: MaxResults; + } + export interface ListTypesResponse { + /** + * The Type objects. + */ + types?: TypeList; + /** + * An identifier to be passed in the next request to this operation to return the next set of items in the list. + */ + nextToken?: PaginationToken; + } + export interface LogConfig { + /** + * The field logging level. Values can be NONE, ERROR, or ALL. NONE: No field-level logs are captured. ERROR: Logs the following information only for the fields that are in error: The error section in the server response. Field-level errors. The generated request/response functions that got resolved for error fields. ALL: The following information is logged for all fields in the query: Field-level tracing information. The generated request/response functions that got resolved for each field. + */ + fieldLogLevel: FieldLogLevel; + /** + * The service role that AWS AppSync will assume to publish to Amazon CloudWatch logs in your account. + */ + cloudWatchLogsRoleArn: String; + /** + * Set to TRUE to exclude sections that contain information such as headers, context, and evaluated mapping templates, regardless of logging level. + */ + excludeVerboseContent?: Boolean; + } + export type Long = number; + export type MapOfStringToString = {[key: string]: String}; + export type MappingTemplate = string; + export type MaxResults = number; + export interface OpenIDConnectConfig { + /** + * The issuer for the OpenID Connect configuration. The issuer returned by discovery must exactly match the value of iss in the ID token. + */ + issuer: String; + /** + * The client identifier of the Relying party at the OpenID identity provider. This identifier is typically obtained when the Relying party is registered with the OpenID identity provider. You can specify a regular expression so the AWS AppSync can validate against multiple client identifiers at a time. + */ + clientId?: String; + /** + * The number of milliseconds a token is valid after being issued to a user. + */ + iatTTL?: Long; + /** + * The number of milliseconds a token is valid after being authenticated. + */ + authTTL?: Long; + } + export type OutputType = "SDL"|"JSON"|string; + export type PaginationToken = string; + export interface PipelineConfig { + /** + * A list of Function objects. + */ + functions?: FunctionsIds; + } + export interface RdsHttpEndpointConfig { + /** + * AWS Region for RDS HTTP endpoint. + */ + awsRegion?: String; + /** + * Amazon RDS cluster ARN. + */ + dbClusterIdentifier?: String; + /** + * Logical database name. + */ + databaseName?: String; + /** + * Logical schema name. + */ + schema?: String; + /** + * AWS secret store ARN for database credentials. + */ + awsSecretStoreArn?: String; + } + export interface RelationalDatabaseDataSourceConfig { + /** + * Source type for the relational database. RDS_HTTP_ENDPOINT: The relational database source type is an Amazon RDS HTTP endpoint. + */ + relationalDatabaseSourceType?: RelationalDatabaseSourceType; + /** + * Amazon RDS HTTP endpoint settings. + */ + rdsHttpEndpointConfig?: RdsHttpEndpointConfig; + } + export type RelationalDatabaseSourceType = "RDS_HTTP_ENDPOINT"|string; + export interface Resolver { + /** + * The resolver type name. + */ + typeName?: ResourceName; + /** + * The resolver field name. + */ + fieldName?: ResourceName; + /** + * The resolver data source name. + */ + dataSourceName?: ResourceName; + /** + * The resolver ARN. + */ + resolverArn?: String; + /** + * The request mapping template. + */ + requestMappingTemplate?: MappingTemplate; + /** + * The response mapping template. + */ + responseMappingTemplate?: MappingTemplate; + /** + * The resolver type. UNIT: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. PIPELINE: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of Function in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. + */ + kind?: ResolverKind; + /** + * The PipelineConfig. + */ + pipelineConfig?: PipelineConfig; + /** + * The SyncConfig for a resolver attached to a versioned datasource. + */ + syncConfig?: SyncConfig; + /** + * The caching configuration for the resolver. + */ + cachingConfig?: CachingConfig; + } + export type ResolverKind = "UNIT"|"PIPELINE"|string; + export type Resolvers = Resolver[]; + export type ResourceArn = string; + export type ResourceName = string; + export type SchemaStatus = "PROCESSING"|"ACTIVE"|"DELETING"|"FAILED"|"SUCCESS"|"NOT_APPLICABLE"|string; + export interface StartSchemaCreationRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The schema definition, in GraphQL schema language format. + */ + definition: _Blob; + } + export interface StartSchemaCreationResponse { + /** + * The current state of the schema (PROCESSING, FAILED, SUCCESS, or NOT_APPLICABLE). When the schema is in the ACTIVE state, you can add data. + */ + status?: SchemaStatus; + } + export type String = string; + export interface SyncConfig { + /** + * The Conflict Resolution strategy to perform in the event of a conflict. OPTIMISTIC_CONCURRENCY: Resolve conflicts by rejecting mutations when versions do not match the latest version at the server. AUTOMERGE: Resolve conflicts with the Automerge conflict resolution strategy. LAMBDA: Resolve conflicts with a Lambda function supplied in the LambdaConflictHandlerConfig. + */ + conflictHandler?: ConflictHandlerType; + /** + * The Conflict Detection strategy to use. VERSION: Detect conflicts based on object versions for this resolver. NONE: Do not detect conflicts when executing this resolver. + */ + conflictDetection?: ConflictDetectionType; + /** + * The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict Handler. + */ + lambdaConflictHandlerConfig?: LambdaConflictHandlerConfig; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagMap = {[key: string]: TagValue}; + export interface TagResourceRequest { + /** + * The GraphqlApi ARN. + */ + resourceArn: ResourceArn; + /** + * A TagMap object. + */ + tags: TagMap; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export interface Type { + /** + * The type name. + */ + name?: ResourceName; + /** + * The type description. + */ + description?: String; + /** + * The type ARN. + */ + arn?: String; + /** + * The type definition. + */ + definition?: String; + /** + * The type format: SDL or JSON. + */ + format?: TypeDefinitionFormat; + } + export type TypeDefinitionFormat = "SDL"|"JSON"|string; + export type TypeList = Type[]; + export interface UntagResourceRequest { + /** + * The GraphqlApi ARN. + */ + resourceArn: ResourceArn; + /** + * A list of TagKey objects. + */ + tagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateApiCacheRequest { + /** + * The GraphQL API Id. + */ + apiId: String; + /** + * TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds. + */ + ttl: Long; + /** + * Caching behavior. FULL_REQUEST_CACHING: All requests are fully cached. PER_RESOLVER_CACHING: Individual resolvers that you specify are cached. + */ + apiCachingBehavior: ApiCachingBehavior; + /** + * The cache instance type. Valid values are SMALL MEDIUM LARGE XLARGE LARGE_2X LARGE_4X LARGE_8X (not available in all regions) LARGE_12X Historically, instance types were identified by an EC2-style value. As of July 2020, this is deprecated, and the generic identifiers above should be used. The following legacy instance types are available, but their use is discouraged: T2_SMALL: A t2.small instance type. T2_MEDIUM: A t2.medium instance type. R4_LARGE: A r4.large instance type. R4_XLARGE: A r4.xlarge instance type. R4_2XLARGE: A r4.2xlarge instance type. R4_4XLARGE: A r4.4xlarge instance type. R4_8XLARGE: A r4.8xlarge instance type. + */ + type: ApiCacheType; + } + export interface UpdateApiCacheResponse { + /** + * The ApiCache object. + */ + apiCache?: ApiCache; + } + export interface UpdateApiKeyRequest { + /** + * The ID for the GraphQL API. + */ + apiId: String; + /** + * The API key ID. + */ + id: String; + /** + * A description of the purpose of the API key. + */ + description?: String; + /** + * The time from update time after which the API key expires. The date is represented as seconds since the epoch. For more information, see . + */ + expires?: Long; + } + export interface UpdateApiKeyResponse { + /** + * The API key. + */ + apiKey?: ApiKey; + } + export interface UpdateDataSourceRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The new name for the data source. + */ + name: ResourceName; + /** + * The new description for the data source. + */ + description?: String; + /** + * The new data source type. + */ + type: DataSourceType; + /** + * The new service role ARN for the data source. + */ + serviceRoleArn?: String; + /** + * The new Amazon DynamoDB configuration. + */ + dynamodbConfig?: DynamodbDataSourceConfig; + /** + * The new AWS Lambda configuration. + */ + lambdaConfig?: LambdaDataSourceConfig; + /** + * The new Elasticsearch Service configuration. + */ + elasticsearchConfig?: ElasticsearchDataSourceConfig; + /** + * The new HTTP endpoint configuration. + */ + httpConfig?: HttpDataSourceConfig; + /** + * The new relational database configuration. + */ + relationalDatabaseConfig?: RelationalDatabaseDataSourceConfig; + } + export interface UpdateDataSourceResponse { + /** + * The updated DataSource object. + */ + dataSource?: DataSource; + } + export interface UpdateFunctionRequest { + /** + * The GraphQL API ID. + */ + apiId: String; + /** + * The Function name. + */ + name: ResourceName; + /** + * The Function description. + */ + description?: String; + /** + * The function ID. + */ + functionId: ResourceName; + /** + * The Function DataSource name. + */ + dataSourceName: ResourceName; + /** + * The Function request mapping template. Functions support only the 2018-05-29 version of the request mapping template. + */ + requestMappingTemplate?: MappingTemplate; + /** + * The Function request mapping template. + */ + responseMappingTemplate?: MappingTemplate; + /** + * The version of the request mapping template. Currently the supported value is 2018-05-29. + */ + functionVersion: String; + syncConfig?: SyncConfig; + } + export interface UpdateFunctionResponse { + /** + * The Function object. + */ + functionConfiguration?: FunctionConfiguration; + } + export interface UpdateGraphqlApiRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The new name for the GraphqlApi object. + */ + name: String; + /** + * The Amazon CloudWatch Logs configuration for the GraphqlApi object. + */ + logConfig?: LogConfig; + /** + * The new authentication type for the GraphqlApi object. + */ + authenticationType?: AuthenticationType; + /** + * The new Amazon Cognito user pool configuration for the GraphqlApi object. + */ + userPoolConfig?: UserPoolConfig; + /** + * The OpenID Connect configuration for the GraphqlApi object. + */ + openIDConnectConfig?: OpenIDConnectConfig; + /** + * A list of additional authentication providers for the GraphqlApi API. + */ + additionalAuthenticationProviders?: AdditionalAuthenticationProviders; + /** + * A flag indicating whether to enable X-Ray tracing for the GraphqlApi. + */ + xrayEnabled?: Boolean; + } + export interface UpdateGraphqlApiResponse { + /** + * The updated GraphqlApi object. + */ + graphqlApi?: GraphqlApi; + } + export interface UpdateResolverRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The new type name. + */ + typeName: ResourceName; + /** + * The new field name. + */ + fieldName: ResourceName; + /** + * The new data source name. + */ + dataSourceName?: ResourceName; + /** + * The new request mapping template. A resolver uses a request mapping template to convert a GraphQL expression into a format that a data source can understand. Mapping templates are written in Apache Velocity Template Language (VTL). VTL request mapping templates are optional when using a Lambda data source. For all other data sources, VTL request and response mapping templates are required. + */ + requestMappingTemplate?: MappingTemplate; + /** + * The new response mapping template. + */ + responseMappingTemplate?: MappingTemplate; + /** + * The resolver type. UNIT: A UNIT resolver type. A UNIT resolver is the default resolver type. A UNIT resolver enables you to execute a GraphQL query against a single data source. PIPELINE: A PIPELINE resolver type. A PIPELINE resolver enables you to execute a series of Function in a serial manner. You can use a pipeline resolver to execute a GraphQL query against multiple data sources. + */ + kind?: ResolverKind; + /** + * The PipelineConfig. + */ + pipelineConfig?: PipelineConfig; + /** + * The SyncConfig for a resolver attached to a versioned datasource. + */ + syncConfig?: SyncConfig; + /** + * The caching configuration for the resolver. + */ + cachingConfig?: CachingConfig; + } + export interface UpdateResolverResponse { + /** + * The updated Resolver object. + */ + resolver?: Resolver; + } + export interface UpdateTypeRequest { + /** + * The API ID. + */ + apiId: String; + /** + * The new type name. + */ + typeName: ResourceName; + /** + * The new definition. + */ + definition?: String; + /** + * The new type format: SDL or JSON. + */ + format: TypeDefinitionFormat; + } + export interface UpdateTypeResponse { + /** + * The updated Type object. + */ + type?: Type; + } + export interface UserPoolConfig { + /** + * The user pool ID. + */ + userPoolId: String; + /** + * The AWS Region in which the user pool was created. + */ + awsRegion: String; + /** + * The action that you want your GraphQL API to take when a request that uses Amazon Cognito user pool authentication doesn't match the Amazon Cognito user pool configuration. + */ + defaultAction: DefaultAction; + /** + * A regular expression for validating the incoming Amazon Cognito user pool app client ID. + */ + appIdClientRegex?: String; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-07-25"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AppSync client. + */ + export import Types = AppSync; +} +export = AppSync; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/appsync.js b/justdanceonline-main/node_modules/aws-sdk/clients/appsync.js new file mode 100644 index 0000000000000000000000000000000000000000..44f088fbc173f206d74d8efcbd6a87a3ae7d6315 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/appsync.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['appsync'] = {}; +AWS.AppSync = Service.defineService('appsync', ['2017-07-25']); +Object.defineProperty(apiLoader.services['appsync'], '2017-07-25', { + get: function get() { + var model = require('../apis/appsync-2017-07-25.min.json'); + model.paginators = require('../apis/appsync-2017-07-25.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AppSync; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/athena.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/athena.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..679616aba3c50dd1b5e6042192169e1670966266 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/athena.d.ts @@ -0,0 +1,1495 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Athena extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Athena.Types.ClientConfiguration) + config: Config & Athena.Types.ClientConfiguration; + /** + * Returns the details of a single named query or a list of up to 50 queries, which you provide as an array of query ID strings. Requires you to have access to the workgroup in which the queries were saved. Use ListNamedQueriesInput to get the list of named query IDs in the specified workgroup. If information could not be retrieved for a submitted query ID, information about the query ID submitted is listed under UnprocessedNamedQueryId. Named queries differ from executed queries. Use BatchGetQueryExecutionInput to get details about each unique query execution, and ListQueryExecutionsInput to get a list of query execution IDs. + */ + batchGetNamedQuery(params: Athena.Types.BatchGetNamedQueryInput, callback?: (err: AWSError, data: Athena.Types.BatchGetNamedQueryOutput) => void): Request; + /** + * Returns the details of a single named query or a list of up to 50 queries, which you provide as an array of query ID strings. Requires you to have access to the workgroup in which the queries were saved. Use ListNamedQueriesInput to get the list of named query IDs in the specified workgroup. If information could not be retrieved for a submitted query ID, information about the query ID submitted is listed under UnprocessedNamedQueryId. Named queries differ from executed queries. Use BatchGetQueryExecutionInput to get details about each unique query execution, and ListQueryExecutionsInput to get a list of query execution IDs. + */ + batchGetNamedQuery(callback?: (err: AWSError, data: Athena.Types.BatchGetNamedQueryOutput) => void): Request; + /** + * Returns the details of a single query execution or a list of up to 50 query executions, which you provide as an array of query execution ID strings. Requires you to have access to the workgroup in which the queries ran. To get a list of query execution IDs, use ListQueryExecutionsInput$WorkGroup. Query executions differ from named (saved) queries. Use BatchGetNamedQueryInput to get details about named queries. + */ + batchGetQueryExecution(params: Athena.Types.BatchGetQueryExecutionInput, callback?: (err: AWSError, data: Athena.Types.BatchGetQueryExecutionOutput) => void): Request; + /** + * Returns the details of a single query execution or a list of up to 50 query executions, which you provide as an array of query execution ID strings. Requires you to have access to the workgroup in which the queries ran. To get a list of query execution IDs, use ListQueryExecutionsInput$WorkGroup. Query executions differ from named (saved) queries. Use BatchGetNamedQueryInput to get details about named queries. + */ + batchGetQueryExecution(callback?: (err: AWSError, data: Athena.Types.BatchGetQueryExecutionOutput) => void): Request; + /** + * Creates (registers) a data catalog with the specified name and properties. Catalogs created are visible to all users of the same AWS account. + */ + createDataCatalog(params: Athena.Types.CreateDataCatalogInput, callback?: (err: AWSError, data: Athena.Types.CreateDataCatalogOutput) => void): Request; + /** + * Creates (registers) a data catalog with the specified name and properties. Catalogs created are visible to all users of the same AWS account. + */ + createDataCatalog(callback?: (err: AWSError, data: Athena.Types.CreateDataCatalogOutput) => void): Request; + /** + * Creates a named query in the specified workgroup. Requires that you have access to the workgroup. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + createNamedQuery(params: Athena.Types.CreateNamedQueryInput, callback?: (err: AWSError, data: Athena.Types.CreateNamedQueryOutput) => void): Request; + /** + * Creates a named query in the specified workgroup. Requires that you have access to the workgroup. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + createNamedQuery(callback?: (err: AWSError, data: Athena.Types.CreateNamedQueryOutput) => void): Request; + /** + * Creates a prepared statement for use with SQL queries in Athena. + */ + createPreparedStatement(params: Athena.Types.CreatePreparedStatementInput, callback?: (err: AWSError, data: Athena.Types.CreatePreparedStatementOutput) => void): Request; + /** + * Creates a prepared statement for use with SQL queries in Athena. + */ + createPreparedStatement(callback?: (err: AWSError, data: Athena.Types.CreatePreparedStatementOutput) => void): Request; + /** + * Creates a workgroup with the specified name. + */ + createWorkGroup(params: Athena.Types.CreateWorkGroupInput, callback?: (err: AWSError, data: Athena.Types.CreateWorkGroupOutput) => void): Request; + /** + * Creates a workgroup with the specified name. + */ + createWorkGroup(callback?: (err: AWSError, data: Athena.Types.CreateWorkGroupOutput) => void): Request; + /** + * Deletes a data catalog. + */ + deleteDataCatalog(params: Athena.Types.DeleteDataCatalogInput, callback?: (err: AWSError, data: Athena.Types.DeleteDataCatalogOutput) => void): Request; + /** + * Deletes a data catalog. + */ + deleteDataCatalog(callback?: (err: AWSError, data: Athena.Types.DeleteDataCatalogOutput) => void): Request; + /** + * Deletes the named query if you have access to the workgroup in which the query was saved. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + deleteNamedQuery(params: Athena.Types.DeleteNamedQueryInput, callback?: (err: AWSError, data: Athena.Types.DeleteNamedQueryOutput) => void): Request; + /** + * Deletes the named query if you have access to the workgroup in which the query was saved. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + deleteNamedQuery(callback?: (err: AWSError, data: Athena.Types.DeleteNamedQueryOutput) => void): Request; + /** + * Deletes the prepared statement with the specified name from the specified workgroup. + */ + deletePreparedStatement(params: Athena.Types.DeletePreparedStatementInput, callback?: (err: AWSError, data: Athena.Types.DeletePreparedStatementOutput) => void): Request; + /** + * Deletes the prepared statement with the specified name from the specified workgroup. + */ + deletePreparedStatement(callback?: (err: AWSError, data: Athena.Types.DeletePreparedStatementOutput) => void): Request; + /** + * Deletes the workgroup with the specified name. The primary workgroup cannot be deleted. + */ + deleteWorkGroup(params: Athena.Types.DeleteWorkGroupInput, callback?: (err: AWSError, data: Athena.Types.DeleteWorkGroupOutput) => void): Request; + /** + * Deletes the workgroup with the specified name. The primary workgroup cannot be deleted. + */ + deleteWorkGroup(callback?: (err: AWSError, data: Athena.Types.DeleteWorkGroupOutput) => void): Request; + /** + * Returns the specified data catalog. + */ + getDataCatalog(params: Athena.Types.GetDataCatalogInput, callback?: (err: AWSError, data: Athena.Types.GetDataCatalogOutput) => void): Request; + /** + * Returns the specified data catalog. + */ + getDataCatalog(callback?: (err: AWSError, data: Athena.Types.GetDataCatalogOutput) => void): Request; + /** + * Returns a database object for the specified database and data catalog. + */ + getDatabase(params: Athena.Types.GetDatabaseInput, callback?: (err: AWSError, data: Athena.Types.GetDatabaseOutput) => void): Request; + /** + * Returns a database object for the specified database and data catalog. + */ + getDatabase(callback?: (err: AWSError, data: Athena.Types.GetDatabaseOutput) => void): Request; + /** + * Returns information about a single query. Requires that you have access to the workgroup in which the query was saved. + */ + getNamedQuery(params: Athena.Types.GetNamedQueryInput, callback?: (err: AWSError, data: Athena.Types.GetNamedQueryOutput) => void): Request; + /** + * Returns information about a single query. Requires that you have access to the workgroup in which the query was saved. + */ + getNamedQuery(callback?: (err: AWSError, data: Athena.Types.GetNamedQueryOutput) => void): Request; + /** + * Retrieves the prepared statement with the specified name from the specified workgroup. + */ + getPreparedStatement(params: Athena.Types.GetPreparedStatementInput, callback?: (err: AWSError, data: Athena.Types.GetPreparedStatementOutput) => void): Request; + /** + * Retrieves the prepared statement with the specified name from the specified workgroup. + */ + getPreparedStatement(callback?: (err: AWSError, data: Athena.Types.GetPreparedStatementOutput) => void): Request; + /** + * Returns information about a single execution of a query if you have access to the workgroup in which the query ran. Each time a query executes, information about the query execution is saved with a unique ID. + */ + getQueryExecution(params: Athena.Types.GetQueryExecutionInput, callback?: (err: AWSError, data: Athena.Types.GetQueryExecutionOutput) => void): Request; + /** + * Returns information about a single execution of a query if you have access to the workgroup in which the query ran. Each time a query executes, information about the query execution is saved with a unique ID. + */ + getQueryExecution(callback?: (err: AWSError, data: Athena.Types.GetQueryExecutionOutput) => void): Request; + /** + * Streams the results of a single query execution specified by QueryExecutionId from the Athena query results location in Amazon S3. For more information, see Query Results in the Amazon Athena User Guide. This request does not execute the query but returns results. Use StartQueryExecution to run a query. To stream query results successfully, the IAM principal with permission to call GetQueryResults also must have permissions to the Amazon S3 GetObject action for the Athena query results location. IAM principals with permission to the Amazon S3 GetObject action for the query results location are able to retrieve query results from Amazon S3 even if permission to the GetQueryResults action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied. + */ + getQueryResults(params: Athena.Types.GetQueryResultsInput, callback?: (err: AWSError, data: Athena.Types.GetQueryResultsOutput) => void): Request; + /** + * Streams the results of a single query execution specified by QueryExecutionId from the Athena query results location in Amazon S3. For more information, see Query Results in the Amazon Athena User Guide. This request does not execute the query but returns results. Use StartQueryExecution to run a query. To stream query results successfully, the IAM principal with permission to call GetQueryResults also must have permissions to the Amazon S3 GetObject action for the Athena query results location. IAM principals with permission to the Amazon S3 GetObject action for the query results location are able to retrieve query results from Amazon S3 even if permission to the GetQueryResults action is denied. To restrict user or role access, ensure that Amazon S3 permissions to the Athena query location are denied. + */ + getQueryResults(callback?: (err: AWSError, data: Athena.Types.GetQueryResultsOutput) => void): Request; + /** + * Returns table metadata for the specified catalog, database, and table. + */ + getTableMetadata(params: Athena.Types.GetTableMetadataInput, callback?: (err: AWSError, data: Athena.Types.GetTableMetadataOutput) => void): Request; + /** + * Returns table metadata for the specified catalog, database, and table. + */ + getTableMetadata(callback?: (err: AWSError, data: Athena.Types.GetTableMetadataOutput) => void): Request; + /** + * Returns information about the workgroup with the specified name. + */ + getWorkGroup(params: Athena.Types.GetWorkGroupInput, callback?: (err: AWSError, data: Athena.Types.GetWorkGroupOutput) => void): Request; + /** + * Returns information about the workgroup with the specified name. + */ + getWorkGroup(callback?: (err: AWSError, data: Athena.Types.GetWorkGroupOutput) => void): Request; + /** + * Lists the data catalogs in the current AWS account. + */ + listDataCatalogs(params: Athena.Types.ListDataCatalogsInput, callback?: (err: AWSError, data: Athena.Types.ListDataCatalogsOutput) => void): Request; + /** + * Lists the data catalogs in the current AWS account. + */ + listDataCatalogs(callback?: (err: AWSError, data: Athena.Types.ListDataCatalogsOutput) => void): Request; + /** + * Lists the databases in the specified data catalog. + */ + listDatabases(params: Athena.Types.ListDatabasesInput, callback?: (err: AWSError, data: Athena.Types.ListDatabasesOutput) => void): Request; + /** + * Lists the databases in the specified data catalog. + */ + listDatabases(callback?: (err: AWSError, data: Athena.Types.ListDatabasesOutput) => void): Request; + /** + * Returns a list of engine versions that are available to choose from, including the Auto option. + */ + listEngineVersions(params: Athena.Types.ListEngineVersionsInput, callback?: (err: AWSError, data: Athena.Types.ListEngineVersionsOutput) => void): Request; + /** + * Returns a list of engine versions that are available to choose from, including the Auto option. + */ + listEngineVersions(callback?: (err: AWSError, data: Athena.Types.ListEngineVersionsOutput) => void): Request; + /** + * Provides a list of available query IDs only for queries saved in the specified workgroup. Requires that you have access to the specified workgroup. If a workgroup is not specified, lists the saved queries for the primary workgroup. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + listNamedQueries(params: Athena.Types.ListNamedQueriesInput, callback?: (err: AWSError, data: Athena.Types.ListNamedQueriesOutput) => void): Request; + /** + * Provides a list of available query IDs only for queries saved in the specified workgroup. Requires that you have access to the specified workgroup. If a workgroup is not specified, lists the saved queries for the primary workgroup. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + listNamedQueries(callback?: (err: AWSError, data: Athena.Types.ListNamedQueriesOutput) => void): Request; + /** + * Lists the prepared statements in the specfied workgroup. + */ + listPreparedStatements(params: Athena.Types.ListPreparedStatementsInput, callback?: (err: AWSError, data: Athena.Types.ListPreparedStatementsOutput) => void): Request; + /** + * Lists the prepared statements in the specfied workgroup. + */ + listPreparedStatements(callback?: (err: AWSError, data: Athena.Types.ListPreparedStatementsOutput) => void): Request; + /** + * Provides a list of available query execution IDs for the queries in the specified workgroup. If a workgroup is not specified, returns a list of query execution IDs for the primary workgroup. Requires you to have access to the workgroup in which the queries ran. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + listQueryExecutions(params: Athena.Types.ListQueryExecutionsInput, callback?: (err: AWSError, data: Athena.Types.ListQueryExecutionsOutput) => void): Request; + /** + * Provides a list of available query execution IDs for the queries in the specified workgroup. If a workgroup is not specified, returns a list of query execution IDs for the primary workgroup. Requires you to have access to the workgroup in which the queries ran. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + listQueryExecutions(callback?: (err: AWSError, data: Athena.Types.ListQueryExecutionsOutput) => void): Request; + /** + * Lists the metadata for the tables in the specified data catalog database. + */ + listTableMetadata(params: Athena.Types.ListTableMetadataInput, callback?: (err: AWSError, data: Athena.Types.ListTableMetadataOutput) => void): Request; + /** + * Lists the metadata for the tables in the specified data catalog database. + */ + listTableMetadata(callback?: (err: AWSError, data: Athena.Types.ListTableMetadataOutput) => void): Request; + /** + * Lists the tags associated with an Athena workgroup or data catalog resource. + */ + listTagsForResource(params: Athena.Types.ListTagsForResourceInput, callback?: (err: AWSError, data: Athena.Types.ListTagsForResourceOutput) => void): Request; + /** + * Lists the tags associated with an Athena workgroup or data catalog resource. + */ + listTagsForResource(callback?: (err: AWSError, data: Athena.Types.ListTagsForResourceOutput) => void): Request; + /** + * Lists available workgroups for the account. + */ + listWorkGroups(params: Athena.Types.ListWorkGroupsInput, callback?: (err: AWSError, data: Athena.Types.ListWorkGroupsOutput) => void): Request; + /** + * Lists available workgroups for the account. + */ + listWorkGroups(callback?: (err: AWSError, data: Athena.Types.ListWorkGroupsOutput) => void): Request; + /** + * Runs the SQL query statements contained in the Query. Requires you to have access to the workgroup in which the query ran. Running queries against an external catalog requires GetDataCatalog permission to the catalog. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + startQueryExecution(params: Athena.Types.StartQueryExecutionInput, callback?: (err: AWSError, data: Athena.Types.StartQueryExecutionOutput) => void): Request; + /** + * Runs the SQL query statements contained in the Query. Requires you to have access to the workgroup in which the query ran. Running queries against an external catalog requires GetDataCatalog permission to the catalog. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + startQueryExecution(callback?: (err: AWSError, data: Athena.Types.StartQueryExecutionOutput) => void): Request; + /** + * Stops a query execution. Requires you to have access to the workgroup in which the query ran. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + stopQueryExecution(params: Athena.Types.StopQueryExecutionInput, callback?: (err: AWSError, data: Athena.Types.StopQueryExecutionOutput) => void): Request; + /** + * Stops a query execution. Requires you to have access to the workgroup in which the query ran. For code samples using the AWS SDK for Java, see Examples and Code Samples in the Amazon Athena User Guide. + */ + stopQueryExecution(callback?: (err: AWSError, data: Athena.Types.StopQueryExecutionOutput) => void): Request; + /** + * Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas. + */ + tagResource(params: Athena.Types.TagResourceInput, callback?: (err: AWSError, data: Athena.Types.TagResourceOutput) => void): Request; + /** + * Adds one or more tags to an Athena resource. A tag is a label that you assign to a resource. In Athena, a resource can be a workgroup or data catalog. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena workgroups or data catalogs by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter workgroups or data catalogs in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas. + */ + tagResource(callback?: (err: AWSError, data: Athena.Types.TagResourceOutput) => void): Request; + /** + * Removes one or more tags from a data catalog or workgroup resource. + */ + untagResource(params: Athena.Types.UntagResourceInput, callback?: (err: AWSError, data: Athena.Types.UntagResourceOutput) => void): Request; + /** + * Removes one or more tags from a data catalog or workgroup resource. + */ + untagResource(callback?: (err: AWSError, data: Athena.Types.UntagResourceOutput) => void): Request; + /** + * Updates the data catalog that has the specified name. + */ + updateDataCatalog(params: Athena.Types.UpdateDataCatalogInput, callback?: (err: AWSError, data: Athena.Types.UpdateDataCatalogOutput) => void): Request; + /** + * Updates the data catalog that has the specified name. + */ + updateDataCatalog(callback?: (err: AWSError, data: Athena.Types.UpdateDataCatalogOutput) => void): Request; + /** + * Updates a prepared statement. + */ + updatePreparedStatement(params: Athena.Types.UpdatePreparedStatementInput, callback?: (err: AWSError, data: Athena.Types.UpdatePreparedStatementOutput) => void): Request; + /** + * Updates a prepared statement. + */ + updatePreparedStatement(callback?: (err: AWSError, data: Athena.Types.UpdatePreparedStatementOutput) => void): Request; + /** + * Updates the workgroup with the specified name. The workgroup's name cannot be changed. + */ + updateWorkGroup(params: Athena.Types.UpdateWorkGroupInput, callback?: (err: AWSError, data: Athena.Types.UpdateWorkGroupOutput) => void): Request; + /** + * Updates the workgroup with the specified name. The workgroup's name cannot be changed. + */ + updateWorkGroup(callback?: (err: AWSError, data: Athena.Types.UpdateWorkGroupOutput) => void): Request; +} +declare namespace Athena { + export type AmazonResourceName = string; + export interface BatchGetNamedQueryInput { + /** + * An array of query IDs. + */ + NamedQueryIds: NamedQueryIdList; + } + export interface BatchGetNamedQueryOutput { + /** + * Information about the named query IDs submitted. + */ + NamedQueries?: NamedQueryList; + /** + * Information about provided query IDs. + */ + UnprocessedNamedQueryIds?: UnprocessedNamedQueryIdList; + } + export interface BatchGetQueryExecutionInput { + /** + * An array of query execution IDs. + */ + QueryExecutionIds: QueryExecutionIdList; + } + export interface BatchGetQueryExecutionOutput { + /** + * Information about a query execution. + */ + QueryExecutions?: QueryExecutionList; + /** + * Information about the query executions that failed to run. + */ + UnprocessedQueryExecutionIds?: UnprocessedQueryExecutionIdList; + } + export type Boolean = boolean; + export type BoxedBoolean = boolean; + export type BytesScannedCutoffValue = number; + export type CatalogNameString = string; + export interface Column { + /** + * The name of the column. + */ + Name: NameString; + /** + * The data type of the column. + */ + Type?: TypeString; + /** + * Optional information about the column. + */ + Comment?: CommentString; + } + export interface ColumnInfo { + /** + * The catalog to which the query results belong. + */ + CatalogName?: String; + /** + * The schema name (database name) to which the query results belong. + */ + SchemaName?: String; + /** + * The table name for the query results. + */ + TableName?: String; + /** + * The name of the column. + */ + Name: String; + /** + * A column label. + */ + Label?: String; + /** + * The data type of the column. + */ + Type: String; + /** + * For DECIMAL data types, specifies the total number of digits, up to 38. For performance reasons, we recommend up to 18 digits. + */ + Precision?: Integer; + /** + * For DECIMAL data types, specifies the total number of digits in the fractional part of the value. Defaults to 0. + */ + Scale?: Integer; + /** + * Indicates the column's nullable status. + */ + Nullable?: ColumnNullable; + /** + * Indicates whether values in the column are case-sensitive. + */ + CaseSensitive?: Boolean; + } + export type ColumnInfoList = ColumnInfo[]; + export type ColumnList = Column[]; + export type ColumnNullable = "NOT_NULL"|"NULLABLE"|"UNKNOWN"|string; + export type CommentString = string; + export interface CreateDataCatalogInput { + /** + * The name of the data catalog to create. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. + */ + Name: CatalogNameString; + /** + * The type of data catalog to create: LAMBDA for a federated catalog or HIVE for an external hive metastore. Do not use the GLUE type. This refers to the AwsDataCatalog that already exists in your account, of which you can have only one. Specifying the GLUE type will result in an INVALID_INPUT error. + */ + Type: DataCatalogType; + /** + * A description of the data catalog to be created. + */ + Description?: DescriptionString; + /** + * Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. For the HIVE data catalog type, use the following syntax. The metadata-function parameter is required. The sdk-version parameter is optional and defaults to the currently supported version. metadata-function=lambda_arn, sdk-version=version_number For the LAMBDA data catalog type, use one of the following sets of required parameters, but not both. If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required. metadata-function=lambda_arn, record-function=lambda_arn If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function. function=lambda_arn + */ + Parameters?: ParametersMap; + /** + * A list of comma separated tags to add to the data catalog that is created. + */ + Tags?: TagList; + } + export interface CreateDataCatalogOutput { + } + export interface CreateNamedQueryInput { + /** + * The query name. + */ + Name: NameString; + /** + * The query description. + */ + Description?: DescriptionString; + /** + * The database to which the query belongs. + */ + Database: DatabaseString; + /** + * The contents of the query with all query statements. + */ + QueryString: QueryString; + /** + * A unique case-sensitive string used to ensure the request to create the query is idempotent (executes only once). If another CreateNamedQuery request is received, the same response is returned and another query is not created. If a parameter has changed, for example, the QueryString, an error is returned. This token is listed as not required because AWS SDKs (for example the AWS SDK for Java) auto-generate the token for users. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the action will fail. + */ + ClientRequestToken?: IdempotencyToken; + /** + * The name of the workgroup in which the named query is being created. + */ + WorkGroup?: WorkGroupName; + } + export interface CreateNamedQueryOutput { + /** + * The unique ID of the query. + */ + NamedQueryId?: NamedQueryId; + } + export interface CreatePreparedStatementInput { + /** + * The name of the prepared statement. + */ + StatementName: StatementName; + /** + * The name of the workgroup to which the prepared statement belongs. + */ + WorkGroup: WorkGroupName; + /** + * The query string for the prepared statement. + */ + QueryStatement: QueryString; + /** + * The description of the prepared statement. + */ + Description?: DescriptionString; + } + export interface CreatePreparedStatementOutput { + } + export interface CreateWorkGroupInput { + /** + * The workgroup name. + */ + Name: WorkGroupName; + /** + * The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration. + */ + Configuration?: WorkGroupConfiguration; + /** + * The workgroup description. + */ + Description?: WorkGroupDescriptionString; + /** + * A list of comma separated tags to add to the workgroup that is created. + */ + Tags?: TagList; + } + export interface CreateWorkGroupOutput { + } + export interface DataCatalog { + /** + * The name of the data catalog. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. + */ + Name: CatalogNameString; + /** + * An optional description of the data catalog. + */ + Description?: DescriptionString; + /** + * The type of data catalog: LAMBDA for a federated catalog or HIVE for an external hive metastore. GLUE refers to the AwsDataCatalog that already exists in your account, of which you can have only one. + */ + Type: DataCatalogType; + /** + * Specifies the Lambda function or functions to use for the data catalog. This is a mapping whose values depend on the catalog type. For the HIVE data catalog type, use the following syntax. The metadata-function parameter is required. The sdk-version parameter is optional and defaults to the currently supported version. metadata-function=lambda_arn, sdk-version=version_number For the LAMBDA data catalog type, use one of the following sets of required parameters, but not both. If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required. metadata-function=lambda_arn, record-function=lambda_arn If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function. function=lambda_arn + */ + Parameters?: ParametersMap; + } + export interface DataCatalogSummary { + /** + * The name of the data catalog. + */ + CatalogName?: CatalogNameString; + /** + * The data catalog type. + */ + Type?: DataCatalogType; + } + export type DataCatalogSummaryList = DataCatalogSummary[]; + export type DataCatalogType = "LAMBDA"|"GLUE"|"HIVE"|string; + export interface Database { + /** + * The name of the database. + */ + Name: NameString; + /** + * An optional description of the database. + */ + Description?: DescriptionString; + /** + * A set of custom key/value pairs. + */ + Parameters?: ParametersMap; + } + export type DatabaseList = Database[]; + export type DatabaseString = string; + export type _Date = Date; + export interface Datum { + /** + * The value of the datum. + */ + VarCharValue?: datumString; + } + export interface DeleteDataCatalogInput { + /** + * The name of the data catalog to delete. + */ + Name: CatalogNameString; + } + export interface DeleteDataCatalogOutput { + } + export interface DeleteNamedQueryInput { + /** + * The unique ID of the query to delete. + */ + NamedQueryId: NamedQueryId; + } + export interface DeleteNamedQueryOutput { + } + export interface DeletePreparedStatementInput { + /** + * The name of the prepared statement to delete. + */ + StatementName: StatementName; + /** + * The workgroup to which the statement to be deleted belongs. + */ + WorkGroup: WorkGroupName; + } + export interface DeletePreparedStatementOutput { + } + export interface DeleteWorkGroupInput { + /** + * The unique name of the workgroup to delete. + */ + WorkGroup: WorkGroupName; + /** + * The option to delete the workgroup and its contents even if the workgroup contains any named queries or query executions. + */ + RecursiveDeleteOption?: BoxedBoolean; + } + export interface DeleteWorkGroupOutput { + } + export type DescriptionString = string; + export interface EncryptionConfiguration { + /** + * Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys (SSE-S3), server-side encryption with KMS-managed keys (SSE-KMS), or client-side encryption with KMS-managed keys (CSE-KMS) is used. If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup. + */ + EncryptionOption: EncryptionOption; + /** + * For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID. + */ + KmsKey?: String; + } + export type EncryptionOption = "SSE_S3"|"SSE_KMS"|"CSE_KMS"|string; + export interface EngineVersion { + /** + * The engine version requested by the user. Possible values are determined by the output of ListEngineVersions, including Auto. The default is Auto. + */ + SelectedEngineVersion?: NameString; + /** + * Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a CreateWorkGroup or UpdateWorkGroup operation, the EffectiveEngineVersion field is ignored. + */ + EffectiveEngineVersion?: NameString; + } + export type EngineVersionsList = EngineVersion[]; + export type ErrorCode = string; + export type ErrorMessage = string; + export type ExpressionString = string; + export interface GetDataCatalogInput { + /** + * The name of the data catalog to return. + */ + Name: CatalogNameString; + } + export interface GetDataCatalogOutput { + /** + * The data catalog returned. + */ + DataCatalog?: DataCatalog; + } + export interface GetDatabaseInput { + /** + * The name of the data catalog that contains the database to return. + */ + CatalogName: CatalogNameString; + /** + * The name of the database to return. + */ + DatabaseName: NameString; + } + export interface GetDatabaseOutput { + /** + * The database returned. + */ + Database?: Database; + } + export interface GetNamedQueryInput { + /** + * The unique ID of the query. Use ListNamedQueries to get query IDs. + */ + NamedQueryId: NamedQueryId; + } + export interface GetNamedQueryOutput { + /** + * Information about the query. + */ + NamedQuery?: NamedQuery; + } + export interface GetPreparedStatementInput { + /** + * The name of the prepared statement to retrieve. + */ + StatementName: StatementName; + /** + * The workgroup to which the statement to be retrieved belongs. + */ + WorkGroup: WorkGroupName; + } + export interface GetPreparedStatementOutput { + /** + * The name of the prepared statement that was retrieved. + */ + PreparedStatement?: PreparedStatement; + } + export interface GetQueryExecutionInput { + /** + * The unique ID of the query execution. + */ + QueryExecutionId: QueryExecutionId; + } + export interface GetQueryExecutionOutput { + /** + * Information about the query execution. + */ + QueryExecution?: QueryExecution; + } + export interface GetQueryResultsInput { + /** + * The unique ID of the query execution. + */ + QueryExecutionId: QueryExecutionId; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * The maximum number of results (rows) to return in this request. + */ + MaxResults?: MaxQueryResults; + } + export interface GetQueryResultsOutput { + /** + * The number of rows inserted with a CREATE TABLE AS SELECT statement. + */ + UpdateCount?: Long; + /** + * The results of the query execution. + */ + ResultSet?: ResultSet; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export interface GetTableMetadataInput { + /** + * The name of the data catalog that contains the database and table metadata to return. + */ + CatalogName: CatalogNameString; + /** + * The name of the database that contains the table metadata to return. + */ + DatabaseName: NameString; + /** + * The name of the table for which metadata is returned. + */ + TableName: NameString; + } + export interface GetTableMetadataOutput { + /** + * An object that contains table metadata. + */ + TableMetadata?: TableMetadata; + } + export interface GetWorkGroupInput { + /** + * The name of the workgroup. + */ + WorkGroup: WorkGroupName; + } + export interface GetWorkGroupOutput { + /** + * Information about the workgroup. + */ + WorkGroup?: WorkGroup; + } + export type IdempotencyToken = string; + export type Integer = number; + export type KeyString = string; + export interface ListDataCatalogsInput { + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * Specifies the maximum number of data catalogs to return. + */ + MaxResults?: MaxDataCatalogsCount; + } + export interface ListDataCatalogsOutput { + /** + * A summary list of data catalogs. + */ + DataCatalogsSummary?: DataCatalogSummaryList; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export interface ListDatabasesInput { + /** + * The name of the data catalog that contains the databases to return. + */ + CatalogName: CatalogNameString; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * Specifies the maximum number of results to return. + */ + MaxResults?: MaxDatabasesCount; + } + export interface ListDatabasesOutput { + /** + * A list of databases from a data catalog. + */ + DatabaseList?: DatabaseList; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export interface ListEngineVersionsInput { + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * The maximum number of engine versions to return in this request. + */ + MaxResults?: MaxEngineVersionsCount; + } + export interface ListEngineVersionsOutput { + /** + * A list of engine versions that are available to choose from. + */ + EngineVersions?: EngineVersionsList; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export interface ListNamedQueriesInput { + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * The maximum number of queries to return in this request. + */ + MaxResults?: MaxNamedQueriesCount; + /** + * The name of the workgroup from which the named queries are being returned. If a workgroup is not specified, the saved queries for the primary workgroup are returned. + */ + WorkGroup?: WorkGroupName; + } + export interface ListNamedQueriesOutput { + /** + * The list of unique query IDs. + */ + NamedQueryIds?: NamedQueryIdList; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export interface ListPreparedStatementsInput { + /** + * The workgroup to list the prepared statements for. + */ + WorkGroup: WorkGroupName; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * The maximum number of results to return in this request. + */ + MaxResults?: MaxPreparedStatementsCount; + } + export interface ListPreparedStatementsOutput { + /** + * The list of prepared statements for the workgroup. + */ + PreparedStatements?: PreparedStatementsList; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export interface ListQueryExecutionsInput { + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * The maximum number of query executions to return in this request. + */ + MaxResults?: MaxQueryExecutionsCount; + /** + * The name of the workgroup from which queries are being returned. If a workgroup is not specified, a list of available query execution IDs for the queries in the primary workgroup is returned. + */ + WorkGroup?: WorkGroupName; + } + export interface ListQueryExecutionsOutput { + /** + * The unique IDs of each query execution as an array of strings. + */ + QueryExecutionIds?: QueryExecutionIdList; + /** + * A token to be used by the next request if this request is truncated. + */ + NextToken?: Token; + } + export interface ListTableMetadataInput { + /** + * The name of the data catalog for which table metadata should be returned. + */ + CatalogName: CatalogNameString; + /** + * The name of the database for which table metadata should be returned. + */ + DatabaseName: NameString; + /** + * A regex filter that pattern-matches table names. If no expression is supplied, metadata for all tables are listed. + */ + Expression?: ExpressionString; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * Specifies the maximum number of results to return. + */ + MaxResults?: MaxTableMetadataCount; + } + export interface ListTableMetadataOutput { + /** + * A list of table metadata. + */ + TableMetadataList?: TableMetadataList; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export interface ListTagsForResourceInput { + /** + * Lists the tags for the resource with the specified ARN. + */ + ResourceARN: AmazonResourceName; + /** + * The token for the next set of results, or null if there are no additional results for this request, where the request lists the tags for the resource with the specified ARN. + */ + NextToken?: Token; + /** + * The maximum number of results to be returned per request that lists the tags for the resource. + */ + MaxResults?: MaxTagsCount; + } + export interface ListTagsForResourceOutput { + /** + * The list of tags associated with the specified resource. + */ + Tags?: TagList; + /** + * A token to be used by the next request if this request is truncated. + */ + NextToken?: Token; + } + export interface ListWorkGroupsInput { + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + /** + * The maximum number of workgroups to return in this request. + */ + MaxResults?: MaxWorkGroupsCount; + } + export interface ListWorkGroupsOutput { + /** + * A list of WorkGroupSummary objects that include the names, descriptions, creation times, and states for each workgroup. + */ + WorkGroups?: WorkGroupsList; + /** + * A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call. + */ + NextToken?: Token; + } + export type Long = number; + export type MaxDataCatalogsCount = number; + export type MaxDatabasesCount = number; + export type MaxEngineVersionsCount = number; + export type MaxNamedQueriesCount = number; + export type MaxPreparedStatementsCount = number; + export type MaxQueryExecutionsCount = number; + export type MaxQueryResults = number; + export type MaxTableMetadataCount = number; + export type MaxTagsCount = number; + export type MaxWorkGroupsCount = number; + export type NameString = string; + export interface NamedQuery { + /** + * The query name. + */ + Name: NameString; + /** + * The query description. + */ + Description?: DescriptionString; + /** + * The database to which the query belongs. + */ + Database: DatabaseString; + /** + * The SQL query statements that comprise the query. + */ + QueryString: QueryString; + /** + * The unique identifier of the query. + */ + NamedQueryId?: NamedQueryId; + /** + * The name of the workgroup that contains the named query. + */ + WorkGroup?: WorkGroupName; + } + export type NamedQueryId = string; + export type NamedQueryIdList = NamedQueryId[]; + export type NamedQueryList = NamedQuery[]; + export type ParametersMap = {[key: string]: ParametersMapValue}; + export type ParametersMapValue = string; + export interface PreparedStatement { + /** + * The name of the prepared statement. + */ + StatementName?: StatementName; + /** + * The query string for the prepared statement. + */ + QueryStatement?: QueryString; + /** + * The name of the workgroup to which the prepared statement belongs. + */ + WorkGroupName?: WorkGroupName; + /** + * The description of the prepared statement. + */ + Description?: DescriptionString; + /** + * The last modified time of the prepared statement. + */ + LastModifiedTime?: _Date; + } + export interface PreparedStatementSummary { + /** + * The name of the prepared statement. + */ + StatementName?: StatementName; + /** + * The last modified time of the prepared statement. + */ + LastModifiedTime?: _Date; + } + export type PreparedStatementsList = PreparedStatementSummary[]; + export interface QueryExecution { + /** + * The unique identifier for each query execution. + */ + QueryExecutionId?: QueryExecutionId; + /** + * The SQL query statements which the query execution ran. + */ + Query?: QueryString; + /** + * The type of query statement that was run. DDL indicates DDL query statements. DML indicates DML (Data Manipulation Language) query statements, such as CREATE TABLE AS SELECT. UTILITY indicates query statements other than DDL and DML, such as SHOW CREATE TABLE, or DESCRIBE <table>. + */ + StatementType?: StatementType; + /** + * The location in Amazon S3 where query results were stored and the encryption option, if any, used for query results. These are known as "client-side settings". If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. + */ + ResultConfiguration?: ResultConfiguration; + /** + * The database in which the query execution occurred. + */ + QueryExecutionContext?: QueryExecutionContext; + /** + * The completion date, current state, submission time, and state change reason (if applicable) for the query execution. + */ + Status?: QueryExecutionStatus; + /** + * Query execution statistics, such as the amount of data scanned, the amount of time that the query took to process, and the type of statement that was run. + */ + Statistics?: QueryExecutionStatistics; + /** + * The name of the workgroup in which the query ran. + */ + WorkGroup?: WorkGroupName; + /** + * The engine version that executed the query. + */ + EngineVersion?: EngineVersion; + } + export interface QueryExecutionContext { + /** + * The name of the database used in the query execution. + */ + Database?: DatabaseString; + /** + * The name of the data catalog used in the query execution. + */ + Catalog?: CatalogNameString; + } + export type QueryExecutionId = string; + export type QueryExecutionIdList = QueryExecutionId[]; + export type QueryExecutionList = QueryExecution[]; + export type QueryExecutionState = "QUEUED"|"RUNNING"|"SUCCEEDED"|"FAILED"|"CANCELLED"|string; + export interface QueryExecutionStatistics { + /** + * The number of milliseconds that the query took to execute. + */ + EngineExecutionTimeInMillis?: Long; + /** + * The number of bytes in the data that was queried. + */ + DataScannedInBytes?: Long; + /** + * The location and file name of a data manifest file. The manifest file is saved to the Athena query results location in Amazon S3. The manifest file tracks files that the query wrote to Amazon S3. If the query fails, the manifest file also tracks files that the query intended to write. The manifest is useful for identifying orphaned files resulting from a failed query. For more information, see Working with Query Results, Output Files, and Query History in the Amazon Athena User Guide. + */ + DataManifestLocation?: String; + /** + * The number of milliseconds that Athena took to run the query. + */ + TotalExecutionTimeInMillis?: Long; + /** + * The number of milliseconds that the query was in your query queue waiting for resources. Note that if transient errors occur, Athena might automatically add the query back to the queue. + */ + QueryQueueTimeInMillis?: Long; + /** + * The number of milliseconds that Athena took to plan the query processing flow. This includes the time spent retrieving table partitions from the data source. Note that because the query engine performs the query planning, query planning time is a subset of engine processing time. + */ + QueryPlanningTimeInMillis?: Long; + /** + * The number of milliseconds that Athena took to finalize and publish the query results after the query engine finished running the query. + */ + ServiceProcessingTimeInMillis?: Long; + } + export interface QueryExecutionStatus { + /** + * The state of query execution. QUEUED indicates that the query has been submitted to the service, and Athena will execute the query as soon as resources are available. RUNNING indicates that the query is in execution phase. SUCCEEDED indicates that the query completed without errors. FAILED indicates that the query experienced an error and did not complete processing. CANCELLED indicates that a user input interrupted query execution. Athena automatically retries your queries in cases of certain transient errors. As a result, you may see the query state transition from RUNNING or FAILED to QUEUED. + */ + State?: QueryExecutionState; + /** + * Further detail about the status of the query. + */ + StateChangeReason?: String; + /** + * The date and time that the query was submitted. + */ + SubmissionDateTime?: _Date; + /** + * The date and time that the query completed. + */ + CompletionDateTime?: _Date; + } + export type QueryString = string; + export interface ResultConfiguration { + /** + * The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration. + */ + OutputLocation?: String; + /** + * If query results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE-KMS or CSE-KMS) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings. + */ + EncryptionConfiguration?: EncryptionConfiguration; + } + export interface ResultConfigurationUpdates { + /** + * The location in Amazon S3 where your query results are stored, such as s3://path/to/query/bucket/. For more information, see Query Results If workgroup settings override client-side settings, then the query uses the location for the query results and the encryption configuration that are specified for the workgroup. The "workgroup settings override" is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration. + */ + OutputLocation?: String; + /** + * If set to "true", indicates that the previously-specified query results location (also known as a client-side setting) for queries in this workgroup should be ignored and set to null. If set to "false" or not set, and a value is present in the OutputLocation in ResultConfigurationUpdates (the client-side setting), the OutputLocation in the workgroup's ResultConfiguration will be updated with the new value. For more information, see Workgroup Settings Override Client-Side Settings. + */ + RemoveOutputLocation?: BoxedBoolean; + /** + * The encryption configuration for the query results. + */ + EncryptionConfiguration?: EncryptionConfiguration; + /** + * If set to "true", indicates that the previously-specified encryption configuration (also known as the client-side setting) for queries in this workgroup should be ignored and set to null. If set to "false" or not set, and a value is present in the EncryptionConfiguration in ResultConfigurationUpdates (the client-side setting), the EncryptionConfiguration in the workgroup's ResultConfiguration will be updated with the new value. For more information, see Workgroup Settings Override Client-Side Settings. + */ + RemoveEncryptionConfiguration?: BoxedBoolean; + } + export interface ResultSet { + /** + * The rows in the table. + */ + Rows?: RowList; + /** + * The metadata that describes the column structure and data types of a table of query results. + */ + ResultSetMetadata?: ResultSetMetadata; + } + export interface ResultSetMetadata { + /** + * Information about the columns returned in a query result metadata. + */ + ColumnInfo?: ColumnInfoList; + } + export interface Row { + /** + * The data that populates a row in a query result table. + */ + Data?: datumList; + } + export type RowList = Row[]; + export interface StartQueryExecutionInput { + /** + * The SQL query statements to be executed. + */ + QueryString: QueryString; + /** + * A unique case-sensitive string used to ensure the request to create the query is idempotent (executes only once). If another StartQueryExecution request is received, the same response is returned and another query is not created. If a parameter has changed, for example, the QueryString, an error is returned. This token is listed as not required because AWS SDKs (for example the AWS SDK for Java) auto-generate the token for users. If you are not using the AWS SDK or the AWS CLI, you must provide this token or the action will fail. + */ + ClientRequestToken?: IdempotencyToken; + /** + * The database within which the query executes. + */ + QueryExecutionContext?: QueryExecutionContext; + /** + * Specifies information about where and how to save the results of the query execution. If the query runs in a workgroup, then workgroup's settings may override query settings. This affects the query results location. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration. + */ + ResultConfiguration?: ResultConfiguration; + /** + * The name of the workgroup in which the query is being started. + */ + WorkGroup?: WorkGroupName; + } + export interface StartQueryExecutionOutput { + /** + * The unique ID of the query that ran as a result of this request. + */ + QueryExecutionId?: QueryExecutionId; + } + export type StatementName = string; + export type StatementType = "DDL"|"DML"|"UTILITY"|string; + export interface StopQueryExecutionInput { + /** + * The unique ID of the query execution to stop. + */ + QueryExecutionId: QueryExecutionId; + } + export interface StopQueryExecutionOutput { + } + export type String = string; + export interface TableMetadata { + /** + * The name of the table. + */ + Name: NameString; + /** + * The time that the table was created. + */ + CreateTime?: Timestamp; + /** + * The last time the table was accessed. + */ + LastAccessTime?: Timestamp; + /** + * The type of table. In Athena, only EXTERNAL_TABLE is supported. + */ + TableType?: TableTypeString; + /** + * A list of the columns in the table. + */ + Columns?: ColumnList; + /** + * A list of the partition keys in the table. + */ + PartitionKeys?: ColumnList; + /** + * A set of custom key/value pairs for table properties. + */ + Parameters?: ParametersMap; + } + export type TableMetadataList = TableMetadata[]; + export type TableTypeString = string; + export interface Tag { + /** + * A tag key. The tag key length is from 1 to 128 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys are case-sensitive and must be unique per resource. + */ + Key?: TagKey; + /** + * A tag value. The tag value length is from 0 to 256 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag values are case-sensitive. + */ + Value?: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceInput { + /** + * Specifies the ARN of the Athena resource (workgroup or data catalog) to which tags are to be added. + */ + ResourceARN: AmazonResourceName; + /** + * A collection of one or more tags, separated by commas, to be added to an Athena workgroup or data catalog resource. + */ + Tags: TagList; + } + export interface TagResourceOutput { + } + export type TagValue = string; + export type Timestamp = Date; + export type Token = string; + export type TypeString = string; + export interface UnprocessedNamedQueryId { + /** + * The unique identifier of the named query. + */ + NamedQueryId?: NamedQueryId; + /** + * The error code returned when the processing request for the named query failed, if applicable. + */ + ErrorCode?: ErrorCode; + /** + * The error message returned when the processing request for the named query failed, if applicable. + */ + ErrorMessage?: ErrorMessage; + } + export type UnprocessedNamedQueryIdList = UnprocessedNamedQueryId[]; + export interface UnprocessedQueryExecutionId { + /** + * The unique identifier of the query execution. + */ + QueryExecutionId?: QueryExecutionId; + /** + * The error code returned when the query execution failed to process, if applicable. + */ + ErrorCode?: ErrorCode; + /** + * The error message returned when the query execution failed to process, if applicable. + */ + ErrorMessage?: ErrorMessage; + } + export type UnprocessedQueryExecutionIdList = UnprocessedQueryExecutionId[]; + export interface UntagResourceInput { + /** + * Specifies the ARN of the resource from which tags are to be removed. + */ + ResourceARN: AmazonResourceName; + /** + * A comma-separated list of one or more tag keys whose tags are to be removed from the specified resource. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceOutput { + } + export interface UpdateDataCatalogInput { + /** + * The name of the data catalog to update. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters. + */ + Name: CatalogNameString; + /** + * Specifies the type of data catalog to update. Specify LAMBDA for a federated catalog or HIVE for an external hive metastore. Do not use the GLUE type. This refers to the AwsDataCatalog that already exists in your account, of which you can have only one. Specifying the GLUE type will result in an INVALID_INPUT error. + */ + Type: DataCatalogType; + /** + * New or modified text that describes the data catalog. + */ + Description?: DescriptionString; + /** + * Specifies the Lambda function or functions to use for updating the data catalog. This is a mapping whose values depend on the catalog type. For the HIVE data catalog type, use the following syntax. The metadata-function parameter is required. The sdk-version parameter is optional and defaults to the currently supported version. metadata-function=lambda_arn, sdk-version=version_number For the LAMBDA data catalog type, use one of the following sets of required parameters, but not both. If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required. metadata-function=lambda_arn, record-function=lambda_arn If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function. function=lambda_arn + */ + Parameters?: ParametersMap; + } + export interface UpdateDataCatalogOutput { + } + export interface UpdatePreparedStatementInput { + /** + * The name of the prepared statement. + */ + StatementName: StatementName; + /** + * The workgroup for the prepared statement. + */ + WorkGroup: WorkGroupName; + /** + * The query string for the prepared statement. + */ + QueryStatement: QueryString; + /** + * The description of the prepared statement. + */ + Description?: DescriptionString; + } + export interface UpdatePreparedStatementOutput { + } + export interface UpdateWorkGroupInput { + /** + * The specified workgroup that will be updated. + */ + WorkGroup: WorkGroupName; + /** + * The workgroup description. + */ + Description?: WorkGroupDescriptionString; + /** + * The workgroup configuration that will be updated for the given workgroup. + */ + ConfigurationUpdates?: WorkGroupConfigurationUpdates; + /** + * The workgroup state that will be updated for the given workgroup. + */ + State?: WorkGroupState; + } + export interface UpdateWorkGroupOutput { + } + export interface WorkGroup { + /** + * The workgroup name. + */ + Name: WorkGroupName; + /** + * The state of the workgroup: ENABLED or DISABLED. + */ + State?: WorkGroupState; + /** + * The configuration of the workgroup, which includes the location in Amazon S3 where query results are stored, the encryption configuration, if any, used for query results; whether the Amazon CloudWatch Metrics are enabled for the workgroup; whether workgroup settings override client-side settings; and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration. + */ + Configuration?: WorkGroupConfiguration; + /** + * The workgroup description. + */ + Description?: WorkGroupDescriptionString; + /** + * The date and time the workgroup was created. + */ + CreationTime?: _Date; + } + export interface WorkGroupConfiguration { + /** + * The configuration for the workgroup, which includes the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena issues an error that no output location is provided. For more information, see Query Results. + */ + ResultConfiguration?: ResultConfiguration; + /** + * If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. For more information, see Workgroup Settings Override Client-Side Settings. + */ + EnforceWorkGroupConfiguration?: BoxedBoolean; + /** + * Indicates that the Amazon CloudWatch metrics are enabled for the workgroup. + */ + PublishCloudWatchMetricsEnabled?: BoxedBoolean; + /** + * The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. + */ + BytesScannedCutoffPerQuery?: BytesScannedCutoffValue; + /** + * If set to true, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to false, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false. For more information about Requester Pays buckets, see Requester Pays Buckets in the Amazon Simple Storage Service Developer Guide. + */ + RequesterPaysEnabled?: BoxedBoolean; + /** + * The engine version that all queries running on the workgroup use. Queries on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless of this setting. + */ + EngineVersion?: EngineVersion; + } + export interface WorkGroupConfigurationUpdates { + /** + * If set to "true", the settings for the workgroup override client-side settings. If set to "false" client-side settings are used. For more information, see Workgroup Settings Override Client-Side Settings. + */ + EnforceWorkGroupConfiguration?: BoxedBoolean; + /** + * The result configuration information about the queries in this workgroup that will be updated. Includes the updated results location and an updated option for encrypting query results. + */ + ResultConfigurationUpdates?: ResultConfigurationUpdates; + /** + * Indicates whether this workgroup enables publishing metrics to Amazon CloudWatch. + */ + PublishCloudWatchMetricsEnabled?: BoxedBoolean; + /** + * The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. + */ + BytesScannedCutoffPerQuery?: BytesScannedCutoffValue; + /** + * Indicates that the data usage control limit per query is removed. WorkGroupConfiguration$BytesScannedCutoffPerQuery + */ + RemoveBytesScannedCutoffPerQuery?: BoxedBoolean; + /** + * If set to true, allows members assigned to a workgroup to specify Amazon S3 Requester Pays buckets in queries. If set to false, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false. For more information about Requester Pays buckets, see Requester Pays Buckets in the Amazon Simple Storage Service Developer Guide. + */ + RequesterPaysEnabled?: BoxedBoolean; + /** + * The engine version requested when a workgroup is updated. After the update, all queries on the workgroup run on the requested engine version. If no value was previously set, the default is Auto. Queries on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless of this setting. + */ + EngineVersion?: EngineVersion; + } + export type WorkGroupDescriptionString = string; + export type WorkGroupName = string; + export type WorkGroupState = "ENABLED"|"DISABLED"|string; + export interface WorkGroupSummary { + /** + * The name of the workgroup. + */ + Name?: WorkGroupName; + /** + * The state of the workgroup. + */ + State?: WorkGroupState; + /** + * The workgroup description. + */ + Description?: WorkGroupDescriptionString; + /** + * The workgroup creation date and time. + */ + CreationTime?: _Date; + /** + * The engine version setting for all queries on the workgroup. Queries on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless of this setting. + */ + EngineVersion?: EngineVersion; + } + export type WorkGroupsList = WorkGroupSummary[]; + export type datumList = Datum[]; + export type datumString = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-05-18"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Athena client. + */ + export import Types = Athena; +} +export = Athena; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/athena.js b/justdanceonline-main/node_modules/aws-sdk/clients/athena.js new file mode 100644 index 0000000000000000000000000000000000000000..52910165c2b7fa9927b9d8d9b39c32e24f6f576d --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/athena.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['athena'] = {}; +AWS.Athena = Service.defineService('athena', ['2017-05-18']); +Object.defineProperty(apiLoader.services['athena'], '2017-05-18', { + get: function get() { + var model = require('../apis/athena-2017-05-18.min.json'); + model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Athena; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/auditmanager.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/auditmanager.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e9a9391e65779db8941451f95eea096bbb8b7458 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/auditmanager.d.ts @@ -0,0 +1,2596 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AuditManager extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AuditManager.Types.ClientConfiguration) + config: Config & AuditManager.Types.ClientConfiguration; + /** + * Associates an evidence folder to the specified assessment report in AWS Audit Manager. + */ + associateAssessmentReportEvidenceFolder(params: AuditManager.Types.AssociateAssessmentReportEvidenceFolderRequest, callback?: (err: AWSError, data: AuditManager.Types.AssociateAssessmentReportEvidenceFolderResponse) => void): Request; + /** + * Associates an evidence folder to the specified assessment report in AWS Audit Manager. + */ + associateAssessmentReportEvidenceFolder(callback?: (err: AWSError, data: AuditManager.Types.AssociateAssessmentReportEvidenceFolderResponse) => void): Request; + /** + * Associates a list of evidence to an assessment report in an AWS Audit Manager assessment. + */ + batchAssociateAssessmentReportEvidence(params: AuditManager.Types.BatchAssociateAssessmentReportEvidenceRequest, callback?: (err: AWSError, data: AuditManager.Types.BatchAssociateAssessmentReportEvidenceResponse) => void): Request; + /** + * Associates a list of evidence to an assessment report in an AWS Audit Manager assessment. + */ + batchAssociateAssessmentReportEvidence(callback?: (err: AWSError, data: AuditManager.Types.BatchAssociateAssessmentReportEvidenceResponse) => void): Request; + /** + * Create a batch of delegations for a specified assessment in AWS Audit Manager. + */ + batchCreateDelegationByAssessment(params: AuditManager.Types.BatchCreateDelegationByAssessmentRequest, callback?: (err: AWSError, data: AuditManager.Types.BatchCreateDelegationByAssessmentResponse) => void): Request; + /** + * Create a batch of delegations for a specified assessment in AWS Audit Manager. + */ + batchCreateDelegationByAssessment(callback?: (err: AWSError, data: AuditManager.Types.BatchCreateDelegationByAssessmentResponse) => void): Request; + /** + * Deletes the delegations in the specified AWS Audit Manager assessment. + */ + batchDeleteDelegationByAssessment(params: AuditManager.Types.BatchDeleteDelegationByAssessmentRequest, callback?: (err: AWSError, data: AuditManager.Types.BatchDeleteDelegationByAssessmentResponse) => void): Request; + /** + * Deletes the delegations in the specified AWS Audit Manager assessment. + */ + batchDeleteDelegationByAssessment(callback?: (err: AWSError, data: AuditManager.Types.BatchDeleteDelegationByAssessmentResponse) => void): Request; + /** + * Disassociates a list of evidence from the specified assessment report in AWS Audit Manager. + */ + batchDisassociateAssessmentReportEvidence(params: AuditManager.Types.BatchDisassociateAssessmentReportEvidenceRequest, callback?: (err: AWSError, data: AuditManager.Types.BatchDisassociateAssessmentReportEvidenceResponse) => void): Request; + /** + * Disassociates a list of evidence from the specified assessment report in AWS Audit Manager. + */ + batchDisassociateAssessmentReportEvidence(callback?: (err: AWSError, data: AuditManager.Types.BatchDisassociateAssessmentReportEvidenceResponse) => void): Request; + /** + * Uploads one or more pieces of evidence to the specified control in the assessment in AWS Audit Manager. + */ + batchImportEvidenceToAssessmentControl(params: AuditManager.Types.BatchImportEvidenceToAssessmentControlRequest, callback?: (err: AWSError, data: AuditManager.Types.BatchImportEvidenceToAssessmentControlResponse) => void): Request; + /** + * Uploads one or more pieces of evidence to the specified control in the assessment in AWS Audit Manager. + */ + batchImportEvidenceToAssessmentControl(callback?: (err: AWSError, data: AuditManager.Types.BatchImportEvidenceToAssessmentControlResponse) => void): Request; + /** + * Creates an assessment in AWS Audit Manager. + */ + createAssessment(params: AuditManager.Types.CreateAssessmentRequest, callback?: (err: AWSError, data: AuditManager.Types.CreateAssessmentResponse) => void): Request; + /** + * Creates an assessment in AWS Audit Manager. + */ + createAssessment(callback?: (err: AWSError, data: AuditManager.Types.CreateAssessmentResponse) => void): Request; + /** + * Creates a custom framework in AWS Audit Manager. + */ + createAssessmentFramework(params: AuditManager.Types.CreateAssessmentFrameworkRequest, callback?: (err: AWSError, data: AuditManager.Types.CreateAssessmentFrameworkResponse) => void): Request; + /** + * Creates a custom framework in AWS Audit Manager. + */ + createAssessmentFramework(callback?: (err: AWSError, data: AuditManager.Types.CreateAssessmentFrameworkResponse) => void): Request; + /** + * Creates an assessment report for the specified assessment. + */ + createAssessmentReport(params: AuditManager.Types.CreateAssessmentReportRequest, callback?: (err: AWSError, data: AuditManager.Types.CreateAssessmentReportResponse) => void): Request; + /** + * Creates an assessment report for the specified assessment. + */ + createAssessmentReport(callback?: (err: AWSError, data: AuditManager.Types.CreateAssessmentReportResponse) => void): Request; + /** + * Creates a new custom control in AWS Audit Manager. + */ + createControl(params: AuditManager.Types.CreateControlRequest, callback?: (err: AWSError, data: AuditManager.Types.CreateControlResponse) => void): Request; + /** + * Creates a new custom control in AWS Audit Manager. + */ + createControl(callback?: (err: AWSError, data: AuditManager.Types.CreateControlResponse) => void): Request; + /** + * Deletes an assessment in AWS Audit Manager. + */ + deleteAssessment(params: AuditManager.Types.DeleteAssessmentRequest, callback?: (err: AWSError, data: AuditManager.Types.DeleteAssessmentResponse) => void): Request; + /** + * Deletes an assessment in AWS Audit Manager. + */ + deleteAssessment(callback?: (err: AWSError, data: AuditManager.Types.DeleteAssessmentResponse) => void): Request; + /** + * Deletes a custom framework in AWS Audit Manager. + */ + deleteAssessmentFramework(params: AuditManager.Types.DeleteAssessmentFrameworkRequest, callback?: (err: AWSError, data: AuditManager.Types.DeleteAssessmentFrameworkResponse) => void): Request; + /** + * Deletes a custom framework in AWS Audit Manager. + */ + deleteAssessmentFramework(callback?: (err: AWSError, data: AuditManager.Types.DeleteAssessmentFrameworkResponse) => void): Request; + /** + * Deletes an assessment report from an assessment in AWS Audit Manager. + */ + deleteAssessmentReport(params: AuditManager.Types.DeleteAssessmentReportRequest, callback?: (err: AWSError, data: AuditManager.Types.DeleteAssessmentReportResponse) => void): Request; + /** + * Deletes an assessment report from an assessment in AWS Audit Manager. + */ + deleteAssessmentReport(callback?: (err: AWSError, data: AuditManager.Types.DeleteAssessmentReportResponse) => void): Request; + /** + * Deletes a custom control in AWS Audit Manager. + */ + deleteControl(params: AuditManager.Types.DeleteControlRequest, callback?: (err: AWSError, data: AuditManager.Types.DeleteControlResponse) => void): Request; + /** + * Deletes a custom control in AWS Audit Manager. + */ + deleteControl(callback?: (err: AWSError, data: AuditManager.Types.DeleteControlResponse) => void): Request; + /** + * Deregisters an account in AWS Audit Manager. + */ + deregisterAccount(params: AuditManager.Types.DeregisterAccountRequest, callback?: (err: AWSError, data: AuditManager.Types.DeregisterAccountResponse) => void): Request; + /** + * Deregisters an account in AWS Audit Manager. + */ + deregisterAccount(callback?: (err: AWSError, data: AuditManager.Types.DeregisterAccountResponse) => void): Request; + /** + * Deregisters the delegated AWS administrator account from the AWS organization. + */ + deregisterOrganizationAdminAccount(params: AuditManager.Types.DeregisterOrganizationAdminAccountRequest, callback?: (err: AWSError, data: AuditManager.Types.DeregisterOrganizationAdminAccountResponse) => void): Request; + /** + * Deregisters the delegated AWS administrator account from the AWS organization. + */ + deregisterOrganizationAdminAccount(callback?: (err: AWSError, data: AuditManager.Types.DeregisterOrganizationAdminAccountResponse) => void): Request; + /** + * Disassociates an evidence folder from the specified assessment report in AWS Audit Manager. + */ + disassociateAssessmentReportEvidenceFolder(params: AuditManager.Types.DisassociateAssessmentReportEvidenceFolderRequest, callback?: (err: AWSError, data: AuditManager.Types.DisassociateAssessmentReportEvidenceFolderResponse) => void): Request; + /** + * Disassociates an evidence folder from the specified assessment report in AWS Audit Manager. + */ + disassociateAssessmentReportEvidenceFolder(callback?: (err: AWSError, data: AuditManager.Types.DisassociateAssessmentReportEvidenceFolderResponse) => void): Request; + /** + * Returns the registration status of an account in AWS Audit Manager. + */ + getAccountStatus(params: AuditManager.Types.GetAccountStatusRequest, callback?: (err: AWSError, data: AuditManager.Types.GetAccountStatusResponse) => void): Request; + /** + * Returns the registration status of an account in AWS Audit Manager. + */ + getAccountStatus(callback?: (err: AWSError, data: AuditManager.Types.GetAccountStatusResponse) => void): Request; + /** + * Returns an assessment from AWS Audit Manager. + */ + getAssessment(params: AuditManager.Types.GetAssessmentRequest, callback?: (err: AWSError, data: AuditManager.Types.GetAssessmentResponse) => void): Request; + /** + * Returns an assessment from AWS Audit Manager. + */ + getAssessment(callback?: (err: AWSError, data: AuditManager.Types.GetAssessmentResponse) => void): Request; + /** + * Returns a framework from AWS Audit Manager. + */ + getAssessmentFramework(params: AuditManager.Types.GetAssessmentFrameworkRequest, callback?: (err: AWSError, data: AuditManager.Types.GetAssessmentFrameworkResponse) => void): Request; + /** + * Returns a framework from AWS Audit Manager. + */ + getAssessmentFramework(callback?: (err: AWSError, data: AuditManager.Types.GetAssessmentFrameworkResponse) => void): Request; + /** + * Returns the URL of a specified assessment report in AWS Audit Manager. + */ + getAssessmentReportUrl(params: AuditManager.Types.GetAssessmentReportUrlRequest, callback?: (err: AWSError, data: AuditManager.Types.GetAssessmentReportUrlResponse) => void): Request; + /** + * Returns the URL of a specified assessment report in AWS Audit Manager. + */ + getAssessmentReportUrl(callback?: (err: AWSError, data: AuditManager.Types.GetAssessmentReportUrlResponse) => void): Request; + /** + * Returns a list of changelogs from AWS Audit Manager. + */ + getChangeLogs(params: AuditManager.Types.GetChangeLogsRequest, callback?: (err: AWSError, data: AuditManager.Types.GetChangeLogsResponse) => void): Request; + /** + * Returns a list of changelogs from AWS Audit Manager. + */ + getChangeLogs(callback?: (err: AWSError, data: AuditManager.Types.GetChangeLogsResponse) => void): Request; + /** + * Returns a control from AWS Audit Manager. + */ + getControl(params: AuditManager.Types.GetControlRequest, callback?: (err: AWSError, data: AuditManager.Types.GetControlResponse) => void): Request; + /** + * Returns a control from AWS Audit Manager. + */ + getControl(callback?: (err: AWSError, data: AuditManager.Types.GetControlResponse) => void): Request; + /** + * Returns a list of delegations from an audit owner to a delegate. + */ + getDelegations(params: AuditManager.Types.GetDelegationsRequest, callback?: (err: AWSError, data: AuditManager.Types.GetDelegationsResponse) => void): Request; + /** + * Returns a list of delegations from an audit owner to a delegate. + */ + getDelegations(callback?: (err: AWSError, data: AuditManager.Types.GetDelegationsResponse) => void): Request; + /** + * Returns evidence from AWS Audit Manager. + */ + getEvidence(params: AuditManager.Types.GetEvidenceRequest, callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceResponse) => void): Request; + /** + * Returns evidence from AWS Audit Manager. + */ + getEvidence(callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceResponse) => void): Request; + /** + * Returns all evidence from a specified evidence folder in AWS Audit Manager. + */ + getEvidenceByEvidenceFolder(params: AuditManager.Types.GetEvidenceByEvidenceFolderRequest, callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceByEvidenceFolderResponse) => void): Request; + /** + * Returns all evidence from a specified evidence folder in AWS Audit Manager. + */ + getEvidenceByEvidenceFolder(callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceByEvidenceFolderResponse) => void): Request; + /** + * Returns an evidence folder from the specified assessment in AWS Audit Manager. + */ + getEvidenceFolder(params: AuditManager.Types.GetEvidenceFolderRequest, callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceFolderResponse) => void): Request; + /** + * Returns an evidence folder from the specified assessment in AWS Audit Manager. + */ + getEvidenceFolder(callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceFolderResponse) => void): Request; + /** + * Returns the evidence folders from a specified assessment in AWS Audit Manager. + */ + getEvidenceFoldersByAssessment(params: AuditManager.Types.GetEvidenceFoldersByAssessmentRequest, callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceFoldersByAssessmentResponse) => void): Request; + /** + * Returns the evidence folders from a specified assessment in AWS Audit Manager. + */ + getEvidenceFoldersByAssessment(callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceFoldersByAssessmentResponse) => void): Request; + /** + * Returns a list of evidence folders associated with a specified control of an assessment in AWS Audit Manager. + */ + getEvidenceFoldersByAssessmentControl(params: AuditManager.Types.GetEvidenceFoldersByAssessmentControlRequest, callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceFoldersByAssessmentControlResponse) => void): Request; + /** + * Returns a list of evidence folders associated with a specified control of an assessment in AWS Audit Manager. + */ + getEvidenceFoldersByAssessmentControl(callback?: (err: AWSError, data: AuditManager.Types.GetEvidenceFoldersByAssessmentControlResponse) => void): Request; + /** + * Returns the name of the delegated AWS administrator account for the AWS organization. + */ + getOrganizationAdminAccount(params: AuditManager.Types.GetOrganizationAdminAccountRequest, callback?: (err: AWSError, data: AuditManager.Types.GetOrganizationAdminAccountResponse) => void): Request; + /** + * Returns the name of the delegated AWS administrator account for the AWS organization. + */ + getOrganizationAdminAccount(callback?: (err: AWSError, data: AuditManager.Types.GetOrganizationAdminAccountResponse) => void): Request; + /** + * Returns a list of the in-scope AWS services for the specified assessment. + */ + getServicesInScope(params: AuditManager.Types.GetServicesInScopeRequest, callback?: (err: AWSError, data: AuditManager.Types.GetServicesInScopeResponse) => void): Request; + /** + * Returns a list of the in-scope AWS services for the specified assessment. + */ + getServicesInScope(callback?: (err: AWSError, data: AuditManager.Types.GetServicesInScopeResponse) => void): Request; + /** + * Returns the settings for the specified AWS account. + */ + getSettings(params: AuditManager.Types.GetSettingsRequest, callback?: (err: AWSError, data: AuditManager.Types.GetSettingsResponse) => void): Request; + /** + * Returns the settings for the specified AWS account. + */ + getSettings(callback?: (err: AWSError, data: AuditManager.Types.GetSettingsResponse) => void): Request; + /** + * Returns a list of the frameworks available in the AWS Audit Manager framework library. + */ + listAssessmentFrameworks(params: AuditManager.Types.ListAssessmentFrameworksRequest, callback?: (err: AWSError, data: AuditManager.Types.ListAssessmentFrameworksResponse) => void): Request; + /** + * Returns a list of the frameworks available in the AWS Audit Manager framework library. + */ + listAssessmentFrameworks(callback?: (err: AWSError, data: AuditManager.Types.ListAssessmentFrameworksResponse) => void): Request; + /** + * Returns a list of assessment reports created in AWS Audit Manager. + */ + listAssessmentReports(params: AuditManager.Types.ListAssessmentReportsRequest, callback?: (err: AWSError, data: AuditManager.Types.ListAssessmentReportsResponse) => void): Request; + /** + * Returns a list of assessment reports created in AWS Audit Manager. + */ + listAssessmentReports(callback?: (err: AWSError, data: AuditManager.Types.ListAssessmentReportsResponse) => void): Request; + /** + * Returns a list of current and past assessments from AWS Audit Manager. + */ + listAssessments(params: AuditManager.Types.ListAssessmentsRequest, callback?: (err: AWSError, data: AuditManager.Types.ListAssessmentsResponse) => void): Request; + /** + * Returns a list of current and past assessments from AWS Audit Manager. + */ + listAssessments(callback?: (err: AWSError, data: AuditManager.Types.ListAssessmentsResponse) => void): Request; + /** + * Returns a list of controls from AWS Audit Manager. + */ + listControls(params: AuditManager.Types.ListControlsRequest, callback?: (err: AWSError, data: AuditManager.Types.ListControlsResponse) => void): Request; + /** + * Returns a list of controls from AWS Audit Manager. + */ + listControls(callback?: (err: AWSError, data: AuditManager.Types.ListControlsResponse) => void): Request; + /** + * Returns a list of keywords that pre-mapped to the specified control data source. + */ + listKeywordsForDataSource(params: AuditManager.Types.ListKeywordsForDataSourceRequest, callback?: (err: AWSError, data: AuditManager.Types.ListKeywordsForDataSourceResponse) => void): Request; + /** + * Returns a list of keywords that pre-mapped to the specified control data source. + */ + listKeywordsForDataSource(callback?: (err: AWSError, data: AuditManager.Types.ListKeywordsForDataSourceResponse) => void): Request; + /** + * Returns a list of all AWS Audit Manager notifications. + */ + listNotifications(params: AuditManager.Types.ListNotificationsRequest, callback?: (err: AWSError, data: AuditManager.Types.ListNotificationsResponse) => void): Request; + /** + * Returns a list of all AWS Audit Manager notifications. + */ + listNotifications(callback?: (err: AWSError, data: AuditManager.Types.ListNotificationsResponse) => void): Request; + /** + * Returns a list of tags for the specified resource in AWS Audit Manager. + */ + listTagsForResource(params: AuditManager.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: AuditManager.Types.ListTagsForResourceResponse) => void): Request; + /** + * Returns a list of tags for the specified resource in AWS Audit Manager. + */ + listTagsForResource(callback?: (err: AWSError, data: AuditManager.Types.ListTagsForResourceResponse) => void): Request; + /** + * Enables AWS Audit Manager for the specified AWS account. + */ + registerAccount(params: AuditManager.Types.RegisterAccountRequest, callback?: (err: AWSError, data: AuditManager.Types.RegisterAccountResponse) => void): Request; + /** + * Enables AWS Audit Manager for the specified AWS account. + */ + registerAccount(callback?: (err: AWSError, data: AuditManager.Types.RegisterAccountResponse) => void): Request; + /** + * Enables an AWS account within the organization as the delegated administrator for AWS Audit Manager. + */ + registerOrganizationAdminAccount(params: AuditManager.Types.RegisterOrganizationAdminAccountRequest, callback?: (err: AWSError, data: AuditManager.Types.RegisterOrganizationAdminAccountResponse) => void): Request; + /** + * Enables an AWS account within the organization as the delegated administrator for AWS Audit Manager. + */ + registerOrganizationAdminAccount(callback?: (err: AWSError, data: AuditManager.Types.RegisterOrganizationAdminAccountResponse) => void): Request; + /** + * Tags the specified resource in AWS Audit Manager. + */ + tagResource(params: AuditManager.Types.TagResourceRequest, callback?: (err: AWSError, data: AuditManager.Types.TagResourceResponse) => void): Request; + /** + * Tags the specified resource in AWS Audit Manager. + */ + tagResource(callback?: (err: AWSError, data: AuditManager.Types.TagResourceResponse) => void): Request; + /** + * Removes a tag from a resource in AWS Audit Manager. + */ + untagResource(params: AuditManager.Types.UntagResourceRequest, callback?: (err: AWSError, data: AuditManager.Types.UntagResourceResponse) => void): Request; + /** + * Removes a tag from a resource in AWS Audit Manager. + */ + untagResource(callback?: (err: AWSError, data: AuditManager.Types.UntagResourceResponse) => void): Request; + /** + * Edits an AWS Audit Manager assessment. + */ + updateAssessment(params: AuditManager.Types.UpdateAssessmentRequest, callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentResponse) => void): Request; + /** + * Edits an AWS Audit Manager assessment. + */ + updateAssessment(callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentResponse) => void): Request; + /** + * Updates a control within an assessment in AWS Audit Manager. + */ + updateAssessmentControl(params: AuditManager.Types.UpdateAssessmentControlRequest, callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentControlResponse) => void): Request; + /** + * Updates a control within an assessment in AWS Audit Manager. + */ + updateAssessmentControl(callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentControlResponse) => void): Request; + /** + * Updates the status of a control set in an AWS Audit Manager assessment. + */ + updateAssessmentControlSetStatus(params: AuditManager.Types.UpdateAssessmentControlSetStatusRequest, callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentControlSetStatusResponse) => void): Request; + /** + * Updates the status of a control set in an AWS Audit Manager assessment. + */ + updateAssessmentControlSetStatus(callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentControlSetStatusResponse) => void): Request; + /** + * Updates a custom framework in AWS Audit Manager. + */ + updateAssessmentFramework(params: AuditManager.Types.UpdateAssessmentFrameworkRequest, callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentFrameworkResponse) => void): Request; + /** + * Updates a custom framework in AWS Audit Manager. + */ + updateAssessmentFramework(callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentFrameworkResponse) => void): Request; + /** + * Updates the status of an assessment in AWS Audit Manager. + */ + updateAssessmentStatus(params: AuditManager.Types.UpdateAssessmentStatusRequest, callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentStatusResponse) => void): Request; + /** + * Updates the status of an assessment in AWS Audit Manager. + */ + updateAssessmentStatus(callback?: (err: AWSError, data: AuditManager.Types.UpdateAssessmentStatusResponse) => void): Request; + /** + * Updates a custom control in AWS Audit Manager. + */ + updateControl(params: AuditManager.Types.UpdateControlRequest, callback?: (err: AWSError, data: AuditManager.Types.UpdateControlResponse) => void): Request; + /** + * Updates a custom control in AWS Audit Manager. + */ + updateControl(callback?: (err: AWSError, data: AuditManager.Types.UpdateControlResponse) => void): Request; + /** + * Updates AWS Audit Manager settings for the current user account. + */ + updateSettings(params: AuditManager.Types.UpdateSettingsRequest, callback?: (err: AWSError, data: AuditManager.Types.UpdateSettingsResponse) => void): Request; + /** + * Updates AWS Audit Manager settings for the current user account. + */ + updateSettings(callback?: (err: AWSError, data: AuditManager.Types.UpdateSettingsResponse) => void): Request; + /** + * Validates the integrity of an assessment report in AWS Audit Manager. + */ + validateAssessmentReportIntegrity(params: AuditManager.Types.ValidateAssessmentReportIntegrityRequest, callback?: (err: AWSError, data: AuditManager.Types.ValidateAssessmentReportIntegrityResponse) => void): Request; + /** + * Validates the integrity of an assessment report in AWS Audit Manager. + */ + validateAssessmentReportIntegrity(callback?: (err: AWSError, data: AuditManager.Types.ValidateAssessmentReportIntegrityResponse) => void): Request; +} +declare namespace AuditManager { + export interface AWSAccount { + /** + * The identifier for the specified AWS account. + */ + id?: AccountId; + /** + * The email address associated with the specified AWS account. + */ + emailAddress?: EmailAddress; + /** + * The name of the specified AWS account. + */ + name?: AccountName; + } + export type AWSAccounts = AWSAccount[]; + export interface AWSService { + /** + * The name of the AWS service. + */ + serviceName?: AWSServiceName; + } + export type AWSServiceName = string; + export type AWSServices = AWSService[]; + export type AccountId = string; + export type AccountName = string; + export type AccountStatus = "ACTIVE"|"INACTIVE"|"PENDING_ACTIVATION"|string; + export type ActionEnum = "CREATE"|"UPDATE_METADATA"|"ACTIVE"|"INACTIVE"|"DELETE"|"UNDER_REVIEW"|"REVIEWED"|"IMPORT_EVIDENCE"|string; + export type ActionPlanInstructions = string; + export type ActionPlanTitle = string; + export interface Assessment { + /** + * The Amazon Resource Name (ARN) of the assessment. + */ + arn?: AuditManagerArn; + /** + * The AWS account associated with the assessment. + */ + awsAccount?: AWSAccount; + /** + * The metadata for the specified assessment. + */ + metadata?: AssessmentMetadata; + /** + * The framework from which the assessment was created. + */ + framework?: AssessmentFramework; + /** + * The tags associated with the assessment. + */ + tags?: TagMap; + } + export interface AssessmentControl { + /** + * The identifier for the specified control. + */ + id?: UUID; + /** + * The name of the specified control. + */ + name?: ControlName; + /** + * The description of the specified control. + */ + description?: ControlDescription; + /** + * The status of the specified control. + */ + status?: ControlStatus; + /** + * The response of the specified control. + */ + response?: ControlResponse; + /** + * The list of comments attached to the specified control. + */ + comments?: ControlComments; + /** + * The list of data sources for the specified evidence. + */ + evidenceSources?: EvidenceSources; + /** + * The amount of evidence generated for the control. + */ + evidenceCount?: Integer; + /** + * The amount of evidence in the assessment report. + */ + assessmentReportEvidenceCount?: Integer; + } + export interface AssessmentControlSet { + /** + * The identifier of the control set in the assessment. This is the control set name in a plain string format. + */ + id?: ControlSetId; + /** + * The description for the control set. + */ + description?: NonEmptyString; + /** + * Specifies the current status of the control set. + */ + status?: ControlSetStatus; + /** + * The roles associated with the control set. + */ + roles?: Roles; + /** + * The list of controls contained with the control set. + */ + controls?: AssessmentControls; + /** + * The delegations associated with the control set. + */ + delegations?: Delegations; + /** + * The total number of evidence objects retrieved automatically for the control set. + */ + systemEvidenceCount?: Integer; + /** + * The total number of evidence objects uploaded manually to the control set. + */ + manualEvidenceCount?: Integer; + } + export type AssessmentControlSets = AssessmentControlSet[]; + export type AssessmentControls = AssessmentControl[]; + export type AssessmentDescription = string; + export interface AssessmentEvidenceFolder { + /** + * The name of the specified evidence folder. + */ + name?: AssessmentEvidenceFolderName; + /** + * The date when the first evidence was added to the evidence folder. + */ + date?: Timestamp; + /** + * The identifier for the specified assessment. + */ + assessmentId?: UUID; + /** + * The identifier for the control set. + */ + controlSetId?: ControlSetId; + /** + * The unique identifier for the specified control. + */ + controlId?: UUID; + /** + * The identifier for the folder in which evidence is stored. + */ + id?: UUID; + /** + * The AWS service from which the evidence was collected. + */ + dataSource?: String; + /** + * The name of the user who created the evidence folder. + */ + author?: String; + /** + * The total amount of evidence in the evidence folder. + */ + totalEvidence?: Integer; + /** + * The total count of evidence included in the assessment report. + */ + assessmentReportSelectionCount?: Integer; + /** + * The name of the control. + */ + controlName?: ControlName; + /** + * The amount of evidence included in the evidence folder. + */ + evidenceResourcesIncludedCount?: Integer; + /** + * The number of evidence that falls under the configuration data category. This evidence is collected from configuration snapshots of other AWS services such as Amazon EC2, Amazon S3, or IAM. + */ + evidenceByTypeConfigurationDataCount?: Integer; + /** + * The number of evidence that falls under the manual category. This evidence is imported manually. + */ + evidenceByTypeManualCount?: Integer; + /** + * The number of evidence that falls under the compliance check category. This evidence is collected from AWS Config or AWS Security Hub. + */ + evidenceByTypeComplianceCheckCount?: Integer; + /** + * The total number of issues that were reported directly from AWS Security Hub, AWS Config, or both. + */ + evidenceByTypeComplianceCheckIssuesCount?: Integer; + /** + * The number of evidence that falls under the user activity category. This evidence is collected from AWS CloudTrail logs. + */ + evidenceByTypeUserActivityCount?: Integer; + /** + * The total number of AWS resources assessed to generate the evidence. + */ + evidenceAwsServiceSourceCount?: Integer; + } + export type AssessmentEvidenceFolderName = string; + export type AssessmentEvidenceFolders = AssessmentEvidenceFolder[]; + export interface AssessmentFramework { + /** + * The unique identifier for the framework. + */ + id?: UUID; + /** + * The Amazon Resource Name (ARN) of the specified framework. + */ + arn?: AuditManagerArn; + metadata?: FrameworkMetadata; + /** + * The control sets associated with the framework. + */ + controlSets?: AssessmentControlSets; + } + export type AssessmentFrameworkDescription = string; + export interface AssessmentFrameworkMetadata { + /** + * The Amazon Resource Name (ARN) of the framework. + */ + arn?: AuditManagerArn; + /** + * The unique identified for the specified framework. + */ + id?: UUID; + /** + * The framework type, such as standard or custom. + */ + type?: FrameworkType; + /** + * The name of the specified framework. + */ + name?: FrameworkName; + /** + * The description of the specified framework. + */ + description?: FrameworkDescription; + /** + * The logo associated with the framework. + */ + logo?: Filename; + /** + * The compliance type that the new custom framework supports, such as CIS or HIPAA. + */ + complianceType?: ComplianceType; + /** + * The number of controls associated with the specified framework. + */ + controlsCount?: ControlsCount; + /** + * The number of control sets associated with the specified framework. + */ + controlSetsCount?: ControlSetsCount; + /** + * Specifies when the framework was created. + */ + createdAt?: Timestamp; + /** + * Specifies when the framework was most recently updated. + */ + lastUpdatedAt?: Timestamp; + } + export interface AssessmentMetadata { + /** + * The name of the assessment. + */ + name?: AssessmentName; + /** + * The unique identifier for the assessment. + */ + id?: UUID; + /** + * The description of the assessment. + */ + description?: AssessmentDescription; + /** + * The name of a compliance standard related to the assessment, such as PCI-DSS. + */ + complianceType?: ComplianceType; + /** + * The overall status of the assessment. + */ + status?: AssessmentStatus; + /** + * The destination in which evidence reports are stored for the specified assessment. + */ + assessmentReportsDestination?: AssessmentReportsDestination; + /** + * The wrapper of AWS accounts and services in scope for the assessment. + */ + scope?: Scope; + /** + * The roles associated with the assessment. + */ + roles?: Roles; + /** + * The delegations associated with the assessment. + */ + delegations?: Delegations; + /** + * Specifies when the assessment was created. + */ + creationTime?: Timestamp; + /** + * The time of the most recent update. + */ + lastUpdated?: Timestamp; + } + export interface AssessmentMetadataItem { + /** + * The name of the assessment. + */ + name?: AssessmentName; + /** + * The unique identifier for the assessment. + */ + id?: UUID; + /** + * The name of the compliance standard related to the assessment, such as PCI-DSS. + */ + complianceType?: ComplianceType; + /** + * The current status of the assessment. + */ + status?: AssessmentStatus; + /** + * The roles associated with the assessment. + */ + roles?: Roles; + /** + * The delegations associated with the assessment. + */ + delegations?: Delegations; + /** + * Specifies when the assessment was created. + */ + creationTime?: Timestamp; + /** + * The time of the most recent update. + */ + lastUpdated?: Timestamp; + } + export type AssessmentName = string; + export interface AssessmentReport { + /** + * The unique identifier for the specified assessment report. + */ + id?: UUID; + /** + * The name given to the assessment report. + */ + name?: AssessmentReportName; + /** + * The description of the specified assessment report. + */ + description?: AssessmentReportDescription; + /** + * The identifier for the specified AWS account. + */ + awsAccountId?: AccountId; + /** + * The identifier for the specified assessment. + */ + assessmentId?: UUID; + /** + * The name of the associated assessment. + */ + assessmentName?: AssessmentName; + /** + * The name of the user who created the assessment report. + */ + author?: Username; + /** + * The current status of the specified assessment report. + */ + status?: AssessmentReportStatus; + /** + * Specifies when the assessment report was created. + */ + creationTime?: Timestamp; + } + export type AssessmentReportDescription = string; + export type AssessmentReportDestinationType = "S3"|string; + export interface AssessmentReportEvidenceError { + /** + * The identifier for the evidence. + */ + evidenceId?: UUID; + /** + * The error code returned by the AssessmentReportEvidence API. + */ + errorCode?: ErrorCode; + /** + * The error message returned by the AssessmentReportEvidence API. + */ + errorMessage?: ErrorMessage; + } + export type AssessmentReportEvidenceErrors = AssessmentReportEvidenceError[]; + export interface AssessmentReportMetadata { + /** + * The unique identifier for the assessment report. + */ + id?: UUID; + /** + * The name of the assessment report. + */ + name?: AssessmentReportName; + /** + * The description of the specified assessment report. + */ + description?: AssessmentReportDescription; + /** + * The unique identifier for the associated assessment. + */ + assessmentId?: UUID; + /** + * The name of the associated assessment. + */ + assessmentName?: AssessmentName; + /** + * The name of the user who created the assessment report. + */ + author?: Username; + /** + * The current status of the assessment report. + */ + status?: AssessmentReportStatus; + /** + * Specifies when the assessment report was created. + */ + creationTime?: Timestamp; + } + export type AssessmentReportName = string; + export type AssessmentReportStatus = "COMPLETE"|"IN_PROGRESS"|"FAILED"|string; + export interface AssessmentReportsDestination { + /** + * The destination type, such as Amazon S3. + */ + destinationType?: AssessmentReportDestinationType; + /** + * The destination of the assessment report. + */ + destination?: S3Url; + } + export type AssessmentReportsMetadata = AssessmentReportMetadata[]; + export type AssessmentStatus = "ACTIVE"|"INACTIVE"|string; + export interface AssociateAssessmentReportEvidenceFolderRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the folder in which evidence is stored. + */ + evidenceFolderId: UUID; + } + export interface AssociateAssessmentReportEvidenceFolderResponse { + } + export type AuditManagerArn = string; + export interface BatchAssociateAssessmentReportEvidenceRequest { + /** + * The unique identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the folder in which the evidence is stored. + */ + evidenceFolderId: UUID; + /** + * The list of evidence identifiers. + */ + evidenceIds: EvidenceIds; + } + export interface BatchAssociateAssessmentReportEvidenceResponse { + /** + * The identifier for the evidence. + */ + evidenceIds?: EvidenceIds; + /** + * A list of errors returned by the BatchAssociateAssessmentReportEvidence API. + */ + errors?: AssessmentReportEvidenceErrors; + } + export interface BatchCreateDelegationByAssessmentError { + /** + * The API request to batch create delegations in AWS Audit Manager. + */ + createDelegationRequest?: CreateDelegationRequest; + /** + * The error code returned by the BatchCreateDelegationByAssessment API. + */ + errorCode?: ErrorCode; + /** + * The error message returned by the BatchCreateDelegationByAssessment API. + */ + errorMessage?: ErrorMessage; + } + export type BatchCreateDelegationByAssessmentErrors = BatchCreateDelegationByAssessmentError[]; + export interface BatchCreateDelegationByAssessmentRequest { + /** + * The API request to batch create delegations in AWS Audit Manager. + */ + createDelegationRequests: CreateDelegationRequests; + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + } + export interface BatchCreateDelegationByAssessmentResponse { + /** + * The delegations associated with the assessment. + */ + delegations?: Delegations; + /** + * A list of errors returned by the BatchCreateDelegationByAssessment API. + */ + errors?: BatchCreateDelegationByAssessmentErrors; + } + export interface BatchDeleteDelegationByAssessmentError { + /** + * The identifier for the specified delegation. + */ + delegationId?: UUID; + /** + * The error code returned by the BatchDeleteDelegationByAssessment API. + */ + errorCode?: ErrorCode; + /** + * The error message returned by the BatchDeleteDelegationByAssessment API. + */ + errorMessage?: ErrorMessage; + } + export type BatchDeleteDelegationByAssessmentErrors = BatchDeleteDelegationByAssessmentError[]; + export interface BatchDeleteDelegationByAssessmentRequest { + /** + * The identifiers for the specified delegations. + */ + delegationIds: DelegationIds; + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + } + export interface BatchDeleteDelegationByAssessmentResponse { + /** + * A list of errors returned by the BatchDeleteDelegationByAssessment API. + */ + errors?: BatchDeleteDelegationByAssessmentErrors; + } + export interface BatchDisassociateAssessmentReportEvidenceRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the folder in which evidence is stored. + */ + evidenceFolderId: UUID; + /** + * The list of evidence identifiers. + */ + evidenceIds: EvidenceIds; + } + export interface BatchDisassociateAssessmentReportEvidenceResponse { + /** + * The identifier for the evidence. + */ + evidenceIds?: EvidenceIds; + /** + * A list of errors returned by the BatchDisassociateAssessmentReportEvidence API. + */ + errors?: AssessmentReportEvidenceErrors; + } + export interface BatchImportEvidenceToAssessmentControlError { + /** + * Manual evidence that cannot be collected automatically by AWS Audit Manager. + */ + manualEvidence?: ManualEvidence; + /** + * The error code returned by the BatchImportEvidenceToAssessmentControl API. + */ + errorCode?: ErrorCode; + /** + * The error message returned by the BatchImportEvidenceToAssessmentControl API. + */ + errorMessage?: ErrorMessage; + } + export type BatchImportEvidenceToAssessmentControlErrors = BatchImportEvidenceToAssessmentControlError[]; + export interface BatchImportEvidenceToAssessmentControlRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the specified control set. + */ + controlSetId: ControlSetId; + /** + * The identifier for the specified control. + */ + controlId: UUID; + /** + * The list of manual evidence objects. + */ + manualEvidence: ManualEvidenceList; + } + export interface BatchImportEvidenceToAssessmentControlResponse { + /** + * A list of errors returned by the BatchImportEvidenceToAssessmentControl API. + */ + errors?: BatchImportEvidenceToAssessmentControlErrors; + } + export type Boolean = boolean; + export interface ChangeLog { + /** + * The changelog object type, such as an assessment, control, or control set. + */ + objectType?: ObjectTypeEnum; + /** + * The name of the changelog object. + */ + objectName?: NonEmptyString; + /** + * The action performed. + */ + action?: ActionEnum; + /** + * The time of creation for the changelog object. + */ + createdAt?: Timestamp; + /** + * The IAM user or role that performed the action. + */ + createdBy?: IamArn; + } + export type ChangeLogs = ChangeLog[]; + export type ComplianceType = string; + export interface Control { + /** + * The Amazon Resource Name (ARN) of the specified control. + */ + arn?: AuditManagerArn; + /** + * The unique identifier for the control. + */ + id?: UUID; + /** + * The type of control, such as custom or standard. + */ + type?: ControlType; + /** + * The name of the specified control. + */ + name?: ControlName; + /** + * The description of the specified control. + */ + description?: ControlDescription; + /** + * The steps to follow to determine if the control has been satisfied. + */ + testingInformation?: TestingInformation; + /** + * The title of the action plan for remediating the control. + */ + actionPlanTitle?: ActionPlanTitle; + /** + * The recommended actions to carry out if the control is not fulfilled. + */ + actionPlanInstructions?: ActionPlanInstructions; + /** + * The data source that determines from where AWS Audit Manager collects evidence for the control. + */ + controlSources?: ControlSources; + /** + * The data mapping sources for the specified control. + */ + controlMappingSources?: ControlMappingSources; + /** + * Specifies when the control was created. + */ + createdAt?: Timestamp; + /** + * Specifies when the control was most recently updated. + */ + lastUpdatedAt?: Timestamp; + /** + * The IAM user or role that created the control. + */ + createdBy?: CreatedBy; + /** + * The IAM user or role that most recently updated the control. + */ + lastUpdatedBy?: LastUpdatedBy; + /** + * The tags associated with the control. + */ + tags?: TagMap; + } + export interface ControlComment { + /** + * The name of the user who authored the comment. + */ + authorName?: Username; + /** + * The body text of a control comment. + */ + commentBody?: ControlCommentBody; + /** + * The time when the comment was posted. + */ + postedDate?: Timestamp; + } + export type ControlCommentBody = string; + export type ControlComments = ControlComment[]; + export type ControlDescription = string; + export interface ControlMappingSource { + /** + * The unique identifier for the specified source. + */ + sourceId?: UUID; + /** + * The name of the specified source. + */ + sourceName?: SourceName; + /** + * The description of the specified source. + */ + sourceDescription?: SourceDescription; + /** + * The setup option for the data source, which reflects if the evidence collection is automated or manual. + */ + sourceSetUpOption?: SourceSetUpOption; + /** + * Specifies one of the five types of data sources for evidence collection. + */ + sourceType?: SourceType; + sourceKeyword?: SourceKeyword; + /** + * The frequency of evidence collection for the specified control mapping source. + */ + sourceFrequency?: SourceFrequency; + /** + * The instructions for troubleshooting the specified control. + */ + troubleshootingText?: TroubleshootingText; + } + export type ControlMappingSources = ControlMappingSource[]; + export interface ControlMetadata { + /** + * The Amazon Resource Name (ARN) of the specified control. + */ + arn?: AuditManagerArn; + /** + * The unique identifier for the specified control. + */ + id?: UUID; + /** + * The name of the specified control. + */ + name?: ControlName; + /** + * The data source that determines from where AWS Audit Manager collects evidence for the control. + */ + controlSources?: ControlSources; + /** + * Specifies when the control was created. + */ + createdAt?: Timestamp; + /** + * Specifies when the control was most recently updated. + */ + lastUpdatedAt?: Timestamp; + } + export type ControlMetadataList = ControlMetadata[]; + export type ControlName = string; + export type ControlResponse = "MANUAL"|"AUTOMATE"|"DEFER"|"IGNORE"|string; + export interface ControlSet { + /** + * The identifier of the control set in the assessment. This is the control set name in a plain string format. + */ + id?: UUID; + /** + * The name of the control set. + */ + name?: ControlSetName; + /** + * The list of controls within the control set. + */ + controls?: Controls; + } + export type ControlSetId = string; + export type ControlSetName = string; + export type ControlSetStatus = "ACTIVE"|"UNDER_REVIEW"|"REVIEWED"|string; + export type ControlSets = ControlSet[]; + export type ControlSetsCount = number; + export type ControlSources = string; + export type ControlStatus = "UNDER_REVIEW"|"REVIEWED"|"INACTIVE"|string; + export type ControlType = "Standard"|"Custom"|string; + export type Controls = Control[]; + export type ControlsCount = number; + export interface CreateAssessmentFrameworkControl { + /** + * The unique identifier of the control. + */ + id?: UUID; + } + export interface CreateAssessmentFrameworkControlSet { + /** + * The name of the specified control set. + */ + name: ControlSetName; + /** + * The list of controls within the control set. This does not contain the control set ID. + */ + controls?: CreateAssessmentFrameworkControls; + } + export type CreateAssessmentFrameworkControlSets = CreateAssessmentFrameworkControlSet[]; + export type CreateAssessmentFrameworkControls = CreateAssessmentFrameworkControl[]; + export interface CreateAssessmentFrameworkRequest { + /** + * The name of the new custom framework. + */ + name: FrameworkName; + /** + * An optional description for the new custom framework. + */ + description?: FrameworkDescription; + /** + * The compliance type that the new custom framework supports, such as CIS or HIPAA. + */ + complianceType?: ComplianceType; + /** + * The control sets to be associated with the framework. + */ + controlSets: CreateAssessmentFrameworkControlSets; + /** + * The tags associated with the framework. + */ + tags?: TagMap; + } + export interface CreateAssessmentFrameworkResponse { + /** + * The name of the new framework returned by the CreateAssessmentFramework API. + */ + framework?: Framework; + } + export interface CreateAssessmentReportRequest { + /** + * The name of the new assessment report. + */ + name: AssessmentReportName; + /** + * The description of the assessment report. + */ + description?: AssessmentReportDescription; + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + } + export interface CreateAssessmentReportResponse { + /** + * The new assessment report returned by the CreateAssessmentReport API. + */ + assessmentReport?: AssessmentReport; + } + export interface CreateAssessmentRequest { + /** + * The name of the assessment to be created. + */ + name: AssessmentName; + /** + * The optional description of the assessment to be created. + */ + description?: AssessmentDescription; + /** + * The assessment report storage destination for the specified assessment that is being created. + */ + assessmentReportsDestination: AssessmentReportsDestination; + scope: Scope; + /** + * The list of roles for the specified assessment. + */ + roles: Roles; + /** + * The identifier for the specified framework. + */ + frameworkId: UUID; + /** + * The tags associated with the assessment. + */ + tags?: TagMap; + } + export interface CreateAssessmentResponse { + assessment?: Assessment; + } + export interface CreateControlMappingSource { + /** + * The name of the control mapping data source. + */ + sourceName?: SourceName; + /** + * The description of the data source that determines from where AWS Audit Manager collects evidence for the control. + */ + sourceDescription?: SourceDescription; + /** + * The setup option for the data source, which reflects if the evidence collection is automated or manual. + */ + sourceSetUpOption?: SourceSetUpOption; + /** + * Specifies one of the five types of data sources for evidence collection. + */ + sourceType?: SourceType; + sourceKeyword?: SourceKeyword; + /** + * The frequency of evidence collection for the specified control mapping source. + */ + sourceFrequency?: SourceFrequency; + /** + * The instructions for troubleshooting the specified control. + */ + troubleshootingText?: TroubleshootingText; + } + export type CreateControlMappingSources = CreateControlMappingSource[]; + export interface CreateControlRequest { + /** + * The name of the control. + */ + name: ControlName; + /** + * The description of the control. + */ + description?: ControlDescription; + /** + * The steps to follow to determine if the control has been satisfied. + */ + testingInformation?: TestingInformation; + /** + * The title of the action plan for remediating the control. + */ + actionPlanTitle?: ActionPlanTitle; + /** + * The recommended actions to carry out if the control is not fulfilled. + */ + actionPlanInstructions?: ActionPlanInstructions; + /** + * The data mapping sources for the specified control. + */ + controlMappingSources: CreateControlMappingSources; + /** + * The tags associated with the control. + */ + tags?: TagMap; + } + export interface CreateControlResponse { + /** + * The new control returned by the CreateControl API. + */ + control?: Control; + } + export interface CreateDelegationRequest { + /** + * A comment related to the delegation request. + */ + comment?: DelegationComment; + /** + * The unique identifier for the control set. + */ + controlSetId?: ControlSetId; + /** + * The Amazon Resource Name (ARN) of the IAM role. + */ + roleArn?: IamArn; + /** + * The type of customer persona. In CreateAssessment, roleType can only be PROCESS_OWNER. In UpdateSettings, roleType can only be PROCESS_OWNER. In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER. + */ + roleType?: RoleType; + } + export type CreateDelegationRequests = CreateDelegationRequest[]; + export type CreatedBy = string; + export interface Delegation { + /** + * The unique identifier for the delegation. + */ + id?: UUID; + /** + * The name of the associated assessment. + */ + assessmentName?: AssessmentName; + /** + * The identifier for the associated assessment. + */ + assessmentId?: UUID; + /** + * The status of the delegation. + */ + status?: DelegationStatus; + /** + * The Amazon Resource Name (ARN) of the IAM role. + */ + roleArn?: IamArn; + /** + * The type of customer persona. In CreateAssessment, roleType can only be PROCESS_OWNER. In UpdateSettings, roleType can only be PROCESS_OWNER. In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER. + */ + roleType?: RoleType; + /** + * Specifies when the delegation was created. + */ + creationTime?: Timestamp; + /** + * Specifies when the delegation was last updated. + */ + lastUpdated?: Timestamp; + /** + * The identifier for the associated control set. + */ + controlSetId?: ControlSetId; + /** + * The comment related to the delegation. + */ + comment?: DelegationComment; + /** + * The IAM user or role that created the delegation. + */ + createdBy?: CreatedBy; + } + export type DelegationComment = string; + export type DelegationIds = UUID[]; + export interface DelegationMetadata { + /** + * The unique identifier for the delegation. + */ + id?: UUID; + /** + * The name of the associated assessment. + */ + assessmentName?: AssessmentName; + /** + * The unique identifier for the specified assessment. + */ + assessmentId?: UUID; + /** + * The current status of the delgation. + */ + status?: DelegationStatus; + /** + * The Amazon Resource Name (ARN) of the IAM role. + */ + roleArn?: IamArn; + /** + * Specifies when the delegation was created. + */ + creationTime?: Timestamp; + /** + * Specifies the name of the control set delegated for review. + */ + controlSetName?: NonEmptyString; + } + export type DelegationMetadataList = DelegationMetadata[]; + export type DelegationStatus = "IN_PROGRESS"|"UNDER_REVIEW"|"COMPLETE"|string; + export type Delegations = Delegation[]; + export interface DeleteAssessmentFrameworkRequest { + /** + * The identifier for the specified framework. + */ + frameworkId: UUID; + } + export interface DeleteAssessmentFrameworkResponse { + } + export interface DeleteAssessmentReportRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The unique identifier for the assessment report. + */ + assessmentReportId: UUID; + } + export interface DeleteAssessmentReportResponse { + } + export interface DeleteAssessmentRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + } + export interface DeleteAssessmentResponse { + } + export interface DeleteControlRequest { + /** + * The identifier for the specified control. + */ + controlId: UUID; + } + export interface DeleteControlResponse { + } + export interface DeregisterAccountRequest { + } + export interface DeregisterAccountResponse { + /** + * The registration status of the account. + */ + status?: AccountStatus; + } + export interface DeregisterOrganizationAdminAccountRequest { + /** + * The identifier for the specified administrator account. + */ + adminAccountId?: AccountId; + } + export interface DeregisterOrganizationAdminAccountResponse { + } + export interface DisassociateAssessmentReportEvidenceFolderRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the folder in which evidence is stored. + */ + evidenceFolderId: UUID; + } + export interface DisassociateAssessmentReportEvidenceFolderResponse { + } + export type EmailAddress = string; + export type ErrorCode = string; + export type ErrorMessage = string; + export type EventName = string; + export interface Evidence { + /** + * The data source from which the specified evidence was collected. + */ + dataSource?: String; + /** + * The identifier for the specified AWS account. + */ + evidenceAwsAccountId?: AccountId; + /** + * The timestamp that represents when the evidence was collected. + */ + time?: Timestamp; + /** + * The AWS service from which the evidence is collected. + */ + eventSource?: AWSServiceName; + /** + * The name of the specified evidence event. + */ + eventName?: EventName; + /** + * The type of automated evidence. + */ + evidenceByType?: String; + /** + * The list of resources assessed to generate the evidence. + */ + resourcesIncluded?: Resources; + /** + * The names and values used by the evidence event, including an attribute name (such as allowUsersToChangePassword) and value (such as true or false). + */ + attributes?: EvidenceAttributes; + /** + * The unique identifier for the IAM user or role associated with the evidence. + */ + iamId?: IamArn; + /** + * The evaluation status for evidence that falls under the compliance check category. For evidence collected from AWS Security Hub, a Pass or Fail result is shown. For evidence collected from AWS Config, a Compliant or Noncompliant result is shown. + */ + complianceCheck?: String; + /** + * The AWS account from which the evidence is collected, and its AWS organization path. + */ + awsOrganization?: String; + /** + * The identifier for the specified AWS account. + */ + awsAccountId?: AccountId; + /** + * The identifier for the folder in which the evidence is stored. + */ + evidenceFolderId?: UUID; + /** + * The identifier for the evidence. + */ + id?: UUID; + /** + * Specifies whether the evidence is included in the assessment report. + */ + assessmentReportSelection?: String; + } + export type EvidenceAttributeKey = string; + export type EvidenceAttributeValue = string; + export type EvidenceAttributes = {[key: string]: EvidenceAttributeValue}; + export type EvidenceIds = UUID[]; + export type EvidenceList = Evidence[]; + export type EvidenceSources = NonEmptyString[]; + export type Filename = string; + export interface Framework { + /** + * The Amazon Resource Name (ARN) of the specified framework. + */ + arn?: AuditManagerArn; + /** + * The unique identifier for the specified framework. + */ + id?: UUID; + /** + * The name of the specified framework. + */ + name?: FrameworkName; + /** + * The framework type, such as custom or standard. + */ + type?: FrameworkType; + /** + * The compliance type that the new custom framework supports, such as CIS or HIPAA. + */ + complianceType?: ComplianceType; + /** + * The description of the specified framework. + */ + description?: FrameworkDescription; + /** + * The logo associated with the framework. + */ + logo?: Filename; + /** + * The sources from which AWS Audit Manager collects evidence for the control. + */ + controlSources?: ControlSources; + /** + * The control sets associated with the framework. + */ + controlSets?: ControlSets; + /** + * Specifies when the framework was created. + */ + createdAt?: Timestamp; + /** + * Specifies when the framework was most recently updated. + */ + lastUpdatedAt?: Timestamp; + /** + * The IAM user or role that created the framework. + */ + createdBy?: CreatedBy; + /** + * The IAM user or role that most recently updated the framework. + */ + lastUpdatedBy?: LastUpdatedBy; + /** + * The tags associated with the framework. + */ + tags?: TagMap; + } + export type FrameworkDescription = string; + export interface FrameworkMetadata { + /** + * The name of the framework. + */ + name?: AssessmentName; + /** + * The description of the framework. + */ + description?: AssessmentFrameworkDescription; + /** + * The logo associated with the framework. + */ + logo?: Filename; + /** + * The compliance standard associated with the framework, such as PCI-DSS or HIPAA. + */ + complianceType?: ComplianceType; + } + export type FrameworkMetadataList = AssessmentFrameworkMetadata[]; + export type FrameworkName = string; + export type FrameworkType = "Standard"|"Custom"|string; + export type GenericArn = string; + export interface GetAccountStatusRequest { + } + export interface GetAccountStatusResponse { + /** + * The status of the specified AWS account. + */ + status?: AccountStatus; + } + export interface GetAssessmentFrameworkRequest { + /** + * The identifier for the specified framework. + */ + frameworkId: UUID; + } + export interface GetAssessmentFrameworkResponse { + /** + * The framework returned by the GetAssessmentFramework API. + */ + framework?: Framework; + } + export interface GetAssessmentReportUrlRequest { + /** + * The identifier for the assessment report. + */ + assessmentReportId: UUID; + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + } + export interface GetAssessmentReportUrlResponse { + preSignedUrl?: URL; + } + export interface GetAssessmentRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + } + export interface GetAssessmentResponse { + assessment?: Assessment; + userRole?: Role; + } + export interface GetChangeLogsRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the specified control set. + */ + controlSetId?: ControlSetId; + /** + * The identifier for the specified control. + */ + controlId?: UUID; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface GetChangeLogsResponse { + /** + * The list of user activity for the control. + */ + changeLogs?: ChangeLogs; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface GetControlRequest { + /** + * The identifier for the specified control. + */ + controlId: UUID; + } + export interface GetControlResponse { + /** + * The name of the control returned by the GetControl API. + */ + control?: Control; + } + export interface GetDelegationsRequest { + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface GetDelegationsResponse { + /** + * The list of delegations returned by the GetDelegations API. + */ + delegations?: DelegationMetadataList; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface GetEvidenceByEvidenceFolderRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the control set. + */ + controlSetId: ControlSetId; + /** + * The unique identifier for the folder in which the evidence is stored. + */ + evidenceFolderId: UUID; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface GetEvidenceByEvidenceFolderResponse { + /** + * The list of evidence returned by the GetEvidenceByEvidenceFolder API. + */ + evidence?: EvidenceList; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface GetEvidenceFolderRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the specified control set. + */ + controlSetId: ControlSetId; + /** + * The identifier for the folder in which the evidence is stored. + */ + evidenceFolderId: UUID; + } + export interface GetEvidenceFolderResponse { + /** + * The folder in which evidence is stored. + */ + evidenceFolder?: AssessmentEvidenceFolder; + } + export interface GetEvidenceFoldersByAssessmentControlRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the specified control set. + */ + controlSetId: ControlSetId; + /** + * The identifier for the specified control. + */ + controlId: UUID; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface GetEvidenceFoldersByAssessmentControlResponse { + /** + * The list of evidence folders returned by the GetEvidenceFoldersByAssessmentControl API. + */ + evidenceFolders?: AssessmentEvidenceFolders; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface GetEvidenceFoldersByAssessmentRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface GetEvidenceFoldersByAssessmentResponse { + /** + * The list of evidence folders returned by the GetEvidenceFoldersByAssessment API. + */ + evidenceFolders?: AssessmentEvidenceFolders; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface GetEvidenceRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the specified control set. + */ + controlSetId: ControlSetId; + /** + * The identifier for the folder in which the evidence is stored. + */ + evidenceFolderId: UUID; + /** + * The identifier for the evidence. + */ + evidenceId: UUID; + } + export interface GetEvidenceResponse { + /** + * The evidence returned by the GetEvidenceResponse API. + */ + evidence?: Evidence; + } + export interface GetOrganizationAdminAccountRequest { + } + export interface GetOrganizationAdminAccountResponse { + /** + * The identifier for the specified administrator account. + */ + adminAccountId?: AccountId; + /** + * The identifier for the specified organization. + */ + organizationId?: organizationId; + } + export interface GetServicesInScopeRequest { + } + export interface GetServicesInScopeResponse { + /** + * The metadata associated with the aAWS service. + */ + serviceMetadata?: ServiceMetadataList; + } + export interface GetSettingsRequest { + /** + * The list of SettingAttribute enum values. + */ + attribute: SettingAttribute; + } + export interface GetSettingsResponse { + /** + * The settings object that holds all supported AWS Audit Manager settings. + */ + settings?: Settings; + } + export type HyperlinkName = string; + export type IamArn = string; + export type Integer = number; + export type KeywordInputType = "SELECT_FROM_LIST"|string; + export type KeywordValue = string; + export type Keywords = KeywordValue[]; + export type KmsKey = string; + export type LastUpdatedBy = string; + export interface ListAssessmentFrameworksRequest { + /** + * The type of framework, such as standard or custom. + */ + frameworkType: FrameworkType; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface ListAssessmentFrameworksResponse { + /** + * The list of metadata objects for the specified framework. + */ + frameworkMetadataList?: FrameworkMetadataList; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export type ListAssessmentMetadata = AssessmentMetadataItem[]; + export interface ListAssessmentReportsRequest { + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface ListAssessmentReportsResponse { + /** + * The list of assessment reports returned by the ListAssessmentReports API. + */ + assessmentReports?: AssessmentReportsMetadata; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface ListAssessmentsRequest { + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface ListAssessmentsResponse { + /** + * The metadata associated with the assessment. + */ + assessmentMetadata?: ListAssessmentMetadata; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface ListControlsRequest { + /** + * The type of control, such as standard or custom. + */ + controlType: ControlType; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface ListControlsResponse { + /** + * The list of control metadata objects returned by the ListControls API. + */ + controlMetadataList?: ControlMetadataList; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface ListKeywordsForDataSourceRequest { + /** + * The control mapping data source to which the keywords apply. + */ + source: SourceType; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface ListKeywordsForDataSourceResponse { + /** + * The list of keywords for the specified event mapping source. + */ + keywords?: Keywords; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface ListNotificationsRequest { + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + /** + * Represents the maximum number of results per page, or per API request call. + */ + maxResults?: MaxResults; + } + export interface ListNotificationsResponse { + /** + * The returned list of notifications. + */ + notifications?: Notifications; + /** + * The pagination token used to fetch the next set of results. + */ + nextToken?: Token; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the specified resource. + */ + resourceArn: AuditManagerArn; + } + export interface ListTagsForResourceResponse { + /** + * The list of tags returned by the ListTagsForResource API. + */ + tags?: TagMap; + } + export interface ManualEvidence { + /** + * The Amazon S3 URL that points to a manual evidence object. + */ + s3ResourcePath?: S3Url; + } + export type ManualEvidenceList = ManualEvidence[]; + export type MaxResults = number; + export type NonEmptyString = string; + export interface Notification { + /** + * The unique identifier for the notification. + */ + id?: TimestampUUID; + /** + * The identifier for the specified assessment. + */ + assessmentId?: UUID; + /** + * The name of the related assessment. + */ + assessmentName?: AssessmentName; + /** + * The identifier for the specified control set. + */ + controlSetId?: ControlSetId; + /** + * Specifies the name of the control set that the notification is about. + */ + controlSetName?: NonEmptyString; + /** + * The description of the notification. + */ + description?: NonEmptyString; + /** + * The time when the notification was sent. + */ + eventTime?: Timestamp; + /** + * The sender of the notification. + */ + source?: NonEmptyString; + } + export type Notifications = Notification[]; + export type ObjectTypeEnum = "ASSESSMENT"|"CONTROL_SET"|"CONTROL"|"DELEGATION"|"ASSESSMENT_REPORT"|string; + export interface RegisterAccountRequest { + /** + * The AWS KMS key details. + */ + kmsKey?: KmsKey; + /** + * The delegated administrator account for AWS Audit Manager. + */ + delegatedAdminAccount?: AccountId; + } + export interface RegisterAccountResponse { + /** + * The status of the account registration request. + */ + status?: AccountStatus; + } + export interface RegisterOrganizationAdminAccountRequest { + /** + * The identifier for the specified delegated administrator account. + */ + adminAccountId: AccountId; + } + export interface RegisterOrganizationAdminAccountResponse { + /** + * The identifier for the specified delegated administrator account. + */ + adminAccountId?: AccountId; + /** + * The identifier for the specified AWS organization. + */ + organizationId?: organizationId; + } + export interface Resource { + /** + * The Amazon Resource Name (ARN) for the specified resource. + */ + arn?: GenericArn; + /** + * The value of the specified resource. + */ + value?: String; + } + export type Resources = Resource[]; + export interface Role { + /** + * The type of customer persona. In CreateAssessment, roleType can only be PROCESS_OWNER. In UpdateSettings, roleType can only be PROCESS_OWNER. In BatchCreateDelegationByAssessment, roleType can only be RESOURCE_OWNER. + */ + roleType?: RoleType; + /** + * The Amazon Resource Name (ARN) of the IAM role. + */ + roleArn?: IamArn; + } + export type RoleType = "PROCESS_OWNER"|"RESOURCE_OWNER"|string; + export type Roles = Role[]; + export type S3Url = string; + export type SNSTopic = string; + export interface Scope { + /** + * The AWS accounts included in the scope of the assessment. + */ + awsAccounts?: AWSAccounts; + /** + * The AWS services included in the scope of the assessment. + */ + awsServices?: AWSServices; + } + export interface ServiceMetadata { + /** + * The name of the AWS service. + */ + name?: AWSServiceName; + /** + * The display name of the AWS service. + */ + displayName?: NonEmptyString; + /** + * The description of the specified AWS service. + */ + description?: NonEmptyString; + /** + * The category in which the AWS service belongs, such as compute, storage, database, and so on. + */ + category?: NonEmptyString; + } + export type ServiceMetadataList = ServiceMetadata[]; + export type SettingAttribute = "ALL"|"IS_AWS_ORG_ENABLED"|"SNS_TOPIC"|"DEFAULT_ASSESSMENT_REPORTS_DESTINATION"|"DEFAULT_PROCESS_OWNERS"|string; + export interface Settings { + /** + * Specifies whether AWS Organizations is enabled. + */ + isAwsOrgEnabled?: Boolean; + /** + * The designated Amazon Simple Notification Service (Amazon SNS) topic. + */ + snsTopic?: SNSTopic; + /** + * The default storage destination for assessment reports. + */ + defaultAssessmentReportsDestination?: AssessmentReportsDestination; + /** + * The designated default audit owners. + */ + defaultProcessOwners?: Roles; + /** + * The AWS KMS key details. + */ + kmsKey?: KmsKey; + } + export type SnsArn = string; + export type SourceDescription = string; + export type SourceFrequency = "DAILY"|"WEEKLY"|"MONTHLY"|string; + export interface SourceKeyword { + /** + * The method of input for the specified keyword. + */ + keywordInputType?: KeywordInputType; + /** + * The value of the keyword used to search AWS CloudTrail logs, AWS Config rules, AWS Security Hub checks, and AWS API names when mapping a control data source. + */ + keywordValue?: KeywordValue; + } + export type SourceName = string; + export type SourceSetUpOption = "System_Controls_Mapping"|"Procedural_Controls_Mapping"|string; + export type SourceType = "AWS_Cloudtrail"|"AWS_Config"|"AWS_Security_Hub"|"AWS_API_Call"|"MANUAL"|string; + export type String = string; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagMap = {[key: string]: TagValue}; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the specified resource. + */ + resourceArn: AuditManagerArn; + /** + * The tags to be associated with the resource. + */ + tags: TagMap; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type TestingInformation = string; + export type Timestamp = Date; + export type TimestampUUID = string; + export type Token = string; + export type TroubleshootingText = string; + export interface URL { + /** + * The name or word used as a hyperlink to the URL. + */ + hyperlinkName?: HyperlinkName; + /** + * The unique identifier for the internet resource. + */ + link?: UrlLink; + } + export type UUID = string; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the specified resource. + */ + resourceArn: AuditManagerArn; + /** + * The name or key of the tag. + */ + tagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateAssessmentControlRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the specified control set. + */ + controlSetId: ControlSetId; + /** + * The identifier for the specified control. + */ + controlId: UUID; + /** + * The status of the specified control. + */ + controlStatus?: ControlStatus; + /** + * The comment body text for the specified control. + */ + commentBody?: ControlCommentBody; + } + export interface UpdateAssessmentControlResponse { + /** + * The name of the updated control set returned by the UpdateAssessmentControl API. + */ + control?: AssessmentControl; + } + export interface UpdateAssessmentControlSetStatusRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The identifier for the specified control set. + */ + controlSetId: String; + /** + * The status of the control set that is being updated. + */ + status: ControlSetStatus; + /** + * The comment related to the status update. + */ + comment: DelegationComment; + } + export interface UpdateAssessmentControlSetStatusResponse { + /** + * The name of the updated control set returned by the UpdateAssessmentControlSetStatus API. + */ + controlSet?: AssessmentControlSet; + } + export interface UpdateAssessmentFrameworkControlSet { + /** + * The unique identifier for the control set. + */ + id?: ControlSetName; + /** + * The name of the control set. + */ + name: ControlSetName; + /** + * The list of controls contained within the control set. + */ + controls?: CreateAssessmentFrameworkControls; + } + export type UpdateAssessmentFrameworkControlSets = UpdateAssessmentFrameworkControlSet[]; + export interface UpdateAssessmentFrameworkRequest { + /** + * The identifier for the specified framework. + */ + frameworkId: UUID; + /** + * The name of the framework to be updated. + */ + name: FrameworkName; + /** + * The description of the framework that is to be updated. + */ + description?: FrameworkDescription; + /** + * The compliance type that the new custom framework supports, such as CIS or HIPAA. + */ + complianceType?: ComplianceType; + /** + * The control sets associated with the framework. + */ + controlSets: UpdateAssessmentFrameworkControlSets; + } + export interface UpdateAssessmentFrameworkResponse { + /** + * The name of the specified framework. + */ + framework?: Framework; + } + export interface UpdateAssessmentRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The name of the specified assessment to be updated. + */ + assessmentName?: AssessmentName; + /** + * The description of the specified assessment. + */ + assessmentDescription?: AssessmentDescription; + /** + * The scope of the specified assessment. + */ + scope: Scope; + /** + * The assessment report storage destination for the specified assessment that is being updated. + */ + assessmentReportsDestination?: AssessmentReportsDestination; + /** + * The list of roles for the specified assessment. + */ + roles?: Roles; + } + export interface UpdateAssessmentResponse { + /** + * The response object (name of the updated assessment) for the UpdateAssessmentRequest API. + */ + assessment?: Assessment; + } + export interface UpdateAssessmentStatusRequest { + /** + * The identifier for the specified assessment. + */ + assessmentId: UUID; + /** + * The current status of the specified assessment. + */ + status: AssessmentStatus; + } + export interface UpdateAssessmentStatusResponse { + /** + * The name of the updated assessment returned by the UpdateAssessmentStatus API. + */ + assessment?: Assessment; + } + export interface UpdateControlRequest { + /** + * The identifier for the specified control. + */ + controlId: UUID; + /** + * The name of the control to be updated. + */ + name: ControlName; + /** + * The optional description of the control. + */ + description?: ControlDescription; + /** + * The steps that to follow to determine if the control has been satisfied. + */ + testingInformation?: TestingInformation; + /** + * The title of the action plan for remediating the control. + */ + actionPlanTitle?: ActionPlanTitle; + /** + * The recommended actions to carry out if the control is not fulfilled. + */ + actionPlanInstructions?: ActionPlanInstructions; + /** + * The data mapping sources for the specified control. + */ + controlMappingSources: ControlMappingSources; + } + export interface UpdateControlResponse { + /** + * The name of the updated control set returned by the UpdateControl API. + */ + control?: Control; + } + export interface UpdateSettingsRequest { + /** + * The Amazon Simple Notification Service (Amazon SNS) topic to which AWS Audit Manager sends notifications. + */ + snsTopic?: SnsArn; + /** + * The default storage destination for assessment reports. + */ + defaultAssessmentReportsDestination?: AssessmentReportsDestination; + /** + * A list of the default audit owners. + */ + defaultProcessOwners?: Roles; + /** + * The AWS KMS key details. + */ + kmsKey?: KmsKey; + } + export interface UpdateSettingsResponse { + /** + * The current list of settings. + */ + settings?: Settings; + } + export type UrlLink = string; + export type Username = string; + export interface ValidateAssessmentReportIntegrityRequest { + /** + * The relative path of the specified Amazon S3 bucket in which the assessment report is stored. + */ + s3RelativePath: S3Url; + } + export interface ValidateAssessmentReportIntegrityResponse { + /** + * Specifies whether the signature key is valid. + */ + signatureValid?: Boolean; + /** + * The signature algorithm used to code sign the assessment report file. + */ + signatureAlgorithm?: String; + /** + * The date and time signature that specifies when the assessment report was created. + */ + signatureDateTime?: String; + /** + * The unique identifier for the validation signature key. + */ + signatureKeyId?: String; + /** + * Represents any errors that occurred when validating the assessment report. + */ + validationErrors?: ValidationErrors; + } + export type ValidationErrors = NonEmptyString[]; + export type organizationId = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-07-25"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AuditManager client. + */ + export import Types = AuditManager; +} +export = AuditManager; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/auditmanager.js b/justdanceonline-main/node_modules/aws-sdk/clients/auditmanager.js new file mode 100644 index 0000000000000000000000000000000000000000..34a643132b388131d9ecbb2fd72de88712acb7c2 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/auditmanager.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['auditmanager'] = {}; +AWS.AuditManager = Service.defineService('auditmanager', ['2017-07-25']); +Object.defineProperty(apiLoader.services['auditmanager'], '2017-07-25', { + get: function get() { + var model = require('../apis/auditmanager-2017-07-25.min.json'); + model.paginators = require('../apis/auditmanager-2017-07-25.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AuditManager; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/augmentedairuntime.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/augmentedairuntime.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..f2f1b1bf16347584c9ff6d46056a9ecb9628ae63 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/augmentedairuntime.d.ts @@ -0,0 +1,242 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AugmentedAIRuntime extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AugmentedAIRuntime.Types.ClientConfiguration) + config: Config & AugmentedAIRuntime.Types.ClientConfiguration; + /** + * Deletes the specified human loop for a flow definition. If the human loop was deleted, this operation will return a ResourceNotFoundException. + */ + deleteHumanLoop(params: AugmentedAIRuntime.Types.DeleteHumanLoopRequest, callback?: (err: AWSError, data: AugmentedAIRuntime.Types.DeleteHumanLoopResponse) => void): Request; + /** + * Deletes the specified human loop for a flow definition. If the human loop was deleted, this operation will return a ResourceNotFoundException. + */ + deleteHumanLoop(callback?: (err: AWSError, data: AugmentedAIRuntime.Types.DeleteHumanLoopResponse) => void): Request; + /** + * Returns information about the specified human loop. If the human loop was deleted, this operation will return a ResourceNotFoundException error. + */ + describeHumanLoop(params: AugmentedAIRuntime.Types.DescribeHumanLoopRequest, callback?: (err: AWSError, data: AugmentedAIRuntime.Types.DescribeHumanLoopResponse) => void): Request; + /** + * Returns information about the specified human loop. If the human loop was deleted, this operation will return a ResourceNotFoundException error. + */ + describeHumanLoop(callback?: (err: AWSError, data: AugmentedAIRuntime.Types.DescribeHumanLoopResponse) => void): Request; + /** + * Returns information about human loops, given the specified parameters. If a human loop was deleted, it will not be included. + */ + listHumanLoops(params: AugmentedAIRuntime.Types.ListHumanLoopsRequest, callback?: (err: AWSError, data: AugmentedAIRuntime.Types.ListHumanLoopsResponse) => void): Request; + /** + * Returns information about human loops, given the specified parameters. If a human loop was deleted, it will not be included. + */ + listHumanLoops(callback?: (err: AWSError, data: AugmentedAIRuntime.Types.ListHumanLoopsResponse) => void): Request; + /** + * Starts a human loop, provided that at least one activation condition is met. + */ + startHumanLoop(params: AugmentedAIRuntime.Types.StartHumanLoopRequest, callback?: (err: AWSError, data: AugmentedAIRuntime.Types.StartHumanLoopResponse) => void): Request; + /** + * Starts a human loop, provided that at least one activation condition is met. + */ + startHumanLoop(callback?: (err: AWSError, data: AugmentedAIRuntime.Types.StartHumanLoopResponse) => void): Request; + /** + * Stops the specified human loop. + */ + stopHumanLoop(params: AugmentedAIRuntime.Types.StopHumanLoopRequest, callback?: (err: AWSError, data: AugmentedAIRuntime.Types.StopHumanLoopResponse) => void): Request; + /** + * Stops the specified human loop. + */ + stopHumanLoop(callback?: (err: AWSError, data: AugmentedAIRuntime.Types.StopHumanLoopResponse) => void): Request; +} +declare namespace AugmentedAIRuntime { + export type ContentClassifier = "FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent"|string; + export type ContentClassifiers = ContentClassifier[]; + export interface DeleteHumanLoopRequest { + /** + * The name of the human loop that you want to delete. + */ + HumanLoopName: HumanLoopName; + } + export interface DeleteHumanLoopResponse { + } + export interface DescribeHumanLoopRequest { + /** + * The name of the human loop that you want information about. + */ + HumanLoopName: HumanLoopName; + } + export interface DescribeHumanLoopResponse { + /** + * The creation time when Amazon Augmented AI created the human loop. + */ + CreationTime: Timestamp; + /** + * The reason why a human loop failed. The failure reason is returned when the status of the human loop is Failed. + */ + FailureReason?: String; + /** + * A failure code that identifies the type of failure. Possible values: ValidationError, Expired, InternalError + */ + FailureCode?: String; + /** + * The status of the human loop. + */ + HumanLoopStatus: HumanLoopStatus; + /** + * The name of the human loop. The name must be lowercase, unique within the Region in your account, and can have up to 63 characters. Valid characters: a-z, 0-9, and - (hyphen). + */ + HumanLoopName: HumanLoopName; + /** + * The Amazon Resource Name (ARN) of the human loop. + */ + HumanLoopArn: HumanLoopArn; + /** + * The Amazon Resource Name (ARN) of the flow definition. + */ + FlowDefinitionArn: FlowDefinitionArn; + /** + * An object that contains information about the output of the human loop. + */ + HumanLoopOutput?: HumanLoopOutput; + } + export type FailureReason = string; + export type FlowDefinitionArn = string; + export type HumanLoopArn = string; + export interface HumanLoopDataAttributes { + /** + * Declares that your content is free of personally identifiable information or adult content. Amazon SageMaker can restrict the Amazon Mechanical Turk workers who can view your task based on this information. + */ + ContentClassifiers: ContentClassifiers; + } + export interface HumanLoopInput { + /** + * Serialized input from the human loop. The input must be a string representation of a file in JSON format. + */ + InputContent: InputContent; + } + export type HumanLoopName = string; + export interface HumanLoopOutput { + /** + * The location of the Amazon S3 object where Amazon Augmented AI stores your human loop output. + */ + OutputS3Uri: String; + } + export type HumanLoopStatus = "InProgress"|"Failed"|"Completed"|"Stopped"|"Stopping"|string; + export type HumanLoopSummaries = HumanLoopSummary[]; + export interface HumanLoopSummary { + /** + * The name of the human loop. + */ + HumanLoopName?: HumanLoopName; + /** + * The status of the human loop. + */ + HumanLoopStatus?: HumanLoopStatus; + /** + * When Amazon Augmented AI created the human loop. + */ + CreationTime?: Timestamp; + /** + * The reason why the human loop failed. A failure reason is returned when the status of the human loop is Failed. + */ + FailureReason?: FailureReason; + /** + * The Amazon Resource Name (ARN) of the flow definition used to configure the human loop. + */ + FlowDefinitionArn?: FlowDefinitionArn; + } + export type InputContent = string; + export interface ListHumanLoopsRequest { + /** + * (Optional) The timestamp of the date when you want the human loops to begin in ISO 8601 format. For example, 2020-02-24. + */ + CreationTimeAfter?: Timestamp; + /** + * (Optional) The timestamp of the date before which you want the human loops to begin in ISO 8601 format. For example, 2020-02-24. + */ + CreationTimeBefore?: Timestamp; + /** + * The Amazon Resource Name (ARN) of a flow definition. + */ + FlowDefinitionArn: FlowDefinitionArn; + /** + * Optional. The order for displaying results. Valid values: Ascending and Descending. + */ + SortOrder?: SortOrder; + /** + * A token to display the next page of results. + */ + NextToken?: NextToken; + /** + * The total number of items to return. If the total number of available items is more than the value specified in MaxResults, then a NextToken is returned in the output. You can use this token to display the next page of results. + */ + MaxResults?: MaxResults; + } + export interface ListHumanLoopsResponse { + /** + * An array of objects that contain information about the human loops. + */ + HumanLoopSummaries: HumanLoopSummaries; + /** + * A token to display the next page of results. + */ + NextToken?: NextToken; + } + export type MaxResults = number; + export type NextToken = string; + export type SortOrder = "Ascending"|"Descending"|string; + export interface StartHumanLoopRequest { + /** + * The name of the human loop. + */ + HumanLoopName: HumanLoopName; + /** + * The Amazon Resource Name (ARN) of the flow definition associated with this human loop. + */ + FlowDefinitionArn: FlowDefinitionArn; + /** + * An object that contains information about the human loop. + */ + HumanLoopInput: HumanLoopInput; + /** + * Attributes of the specified data. Use DataAttributes to specify if your data is free of personally identifiable information and/or free of adult content. + */ + DataAttributes?: HumanLoopDataAttributes; + } + export interface StartHumanLoopResponse { + /** + * The Amazon Resource Name (ARN) of the human loop. + */ + HumanLoopArn?: HumanLoopArn; + } + export interface StopHumanLoopRequest { + /** + * The name of the human loop that you want to stop. + */ + HumanLoopName: HumanLoopName; + } + export interface StopHumanLoopResponse { + } + export type String = string; + export type Timestamp = Date; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2019-11-07"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AugmentedAIRuntime client. + */ + export import Types = AugmentedAIRuntime; +} +export = AugmentedAIRuntime; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/augmentedairuntime.js b/justdanceonline-main/node_modules/aws-sdk/clients/augmentedairuntime.js new file mode 100644 index 0000000000000000000000000000000000000000..99d866f7d8bf01c6b90f375df8fa6aa214b3490f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/augmentedairuntime.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['augmentedairuntime'] = {}; +AWS.AugmentedAIRuntime = Service.defineService('augmentedairuntime', ['2019-11-07']); +Object.defineProperty(apiLoader.services['augmentedairuntime'], '2019-11-07', { + get: function get() { + var model = require('../apis/sagemaker-a2i-runtime-2019-11-07.min.json'); + model.paginators = require('../apis/sagemaker-a2i-runtime-2019-11-07.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AugmentedAIRuntime; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/autoscaling.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/autoscaling.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..85790082cab135936b408ab466430ae412f48144 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/autoscaling.d.ts @@ -0,0 +1,3037 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AutoScaling extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AutoScaling.Types.ClientConfiguration) + config: Config & AutoScaling.Types.ClientConfiguration; + /** + * Attaches one or more EC2 instances to the specified Auto Scaling group. When you attach instances, Amazon EC2 Auto Scaling increases the desired capacity of the group by the number of instances being attached. If the number of instances being attached plus the desired capacity of the group exceeds the maximum size of the group, the operation fails. If there is a Classic Load Balancer attached to your Auto Scaling group, the instances are also registered with the load balancer. If there are target groups attached to your Auto Scaling group, the instances are also registered with the target groups. For more information, see Attach EC2 instances to your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + attachInstances(params: AutoScaling.Types.AttachInstancesQuery, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Attaches one or more EC2 instances to the specified Auto Scaling group. When you attach instances, Amazon EC2 Auto Scaling increases the desired capacity of the group by the number of instances being attached. If the number of instances being attached plus the desired capacity of the group exceeds the maximum size of the group, the operation fails. If there is a Classic Load Balancer attached to your Auto Scaling group, the instances are also registered with the load balancer. If there are target groups attached to your Auto Scaling group, the instances are also registered with the target groups. For more information, see Attach EC2 instances to your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + attachInstances(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Attaches one or more target groups to the specified Auto Scaling group. This operation is used with the following load balancer types: Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS. Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP. Gateway Load Balancer - Operates at the network layer (layer 3). To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + attachLoadBalancerTargetGroups(params: AutoScaling.Types.AttachLoadBalancerTargetGroupsType, callback?: (err: AWSError, data: AutoScaling.Types.AttachLoadBalancerTargetGroupsResultType) => void): Request; + /** + * Attaches one or more target groups to the specified Auto Scaling group. This operation is used with the following load balancer types: Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS. Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP. Gateway Load Balancer - Operates at the network layer (layer 3). To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + attachLoadBalancerTargetGroups(callback?: (err: AWSError, data: AutoScaling.Types.AttachLoadBalancerTargetGroupsResultType) => void): Request; + /** + * To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead. Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers. To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers API. To detach the load balancer from the Auto Scaling group, call the DetachLoadBalancers API. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + attachLoadBalancers(params: AutoScaling.Types.AttachLoadBalancersType, callback?: (err: AWSError, data: AutoScaling.Types.AttachLoadBalancersResultType) => void): Request; + /** + * To attach an Application Load Balancer, Network Load Balancer, or Gateway Load Balancer, use the AttachLoadBalancerTargetGroups API operation instead. Attaches one or more Classic Load Balancers to the specified Auto Scaling group. Amazon EC2 Auto Scaling registers the running instances with these Classic Load Balancers. To describe the load balancers for an Auto Scaling group, call the DescribeLoadBalancers API. To detach the load balancer from the Auto Scaling group, call the DetachLoadBalancers API. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + attachLoadBalancers(callback?: (err: AWSError, data: AutoScaling.Types.AttachLoadBalancersResultType) => void): Request; + /** + * Deletes one or more scheduled actions for the specified Auto Scaling group. + */ + batchDeleteScheduledAction(params: AutoScaling.Types.BatchDeleteScheduledActionType, callback?: (err: AWSError, data: AutoScaling.Types.BatchDeleteScheduledActionAnswer) => void): Request; + /** + * Deletes one or more scheduled actions for the specified Auto Scaling group. + */ + batchDeleteScheduledAction(callback?: (err: AWSError, data: AutoScaling.Types.BatchDeleteScheduledActionAnswer) => void): Request; + /** + * Creates or updates one or more scheduled scaling actions for an Auto Scaling group. + */ + batchPutScheduledUpdateGroupAction(params: AutoScaling.Types.BatchPutScheduledUpdateGroupActionType, callback?: (err: AWSError, data: AutoScaling.Types.BatchPutScheduledUpdateGroupActionAnswer) => void): Request; + /** + * Creates or updates one or more scheduled scaling actions for an Auto Scaling group. + */ + batchPutScheduledUpdateGroupAction(callback?: (err: AWSError, data: AutoScaling.Types.BatchPutScheduledUpdateGroupActionAnswer) => void): Request; + /** + * Cancels an instance refresh operation in progress. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started. This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. + */ + cancelInstanceRefresh(params: AutoScaling.Types.CancelInstanceRefreshType, callback?: (err: AWSError, data: AutoScaling.Types.CancelInstanceRefreshAnswer) => void): Request; + /** + * Cancels an instance refresh operation in progress. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started. This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. + */ + cancelInstanceRefresh(callback?: (err: AWSError, data: AutoScaling.Types.CancelInstanceRefreshAnswer) => void): Request; + /** + * Completes the lifecycle action for the specified token or instance with the specified result. This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state. If you finish before the timeout period ends, complete the lifecycle action. For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide. + */ + completeLifecycleAction(params: AutoScaling.Types.CompleteLifecycleActionType, callback?: (err: AWSError, data: AutoScaling.Types.CompleteLifecycleActionAnswer) => void): Request; + /** + * Completes the lifecycle action for the specified token or instance with the specified result. This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state. If you finish before the timeout period ends, complete the lifecycle action. For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide. + */ + completeLifecycleAction(callback?: (err: AWSError, data: AutoScaling.Types.CompleteLifecycleActionAnswer) => void): Request; + /** + * We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. Creates an Auto Scaling group with the specified name and attributes. If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide. For introductory exercises for creating an Auto Scaling group, see Getting started with Amazon EC2 Auto Scaling and Tutorial: Set up a scaled and load-balanced application in the Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling groups in the Amazon EC2 Auto Scaling User Guide. Every Auto Scaling group has three size parameters (DesiredCapacity, MaxSize, and MinSize). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances. + */ + createAutoScalingGroup(params: AutoScaling.Types.CreateAutoScalingGroupType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * We strongly recommend using a launch template when calling this operation to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. Creates an Auto Scaling group with the specified name and attributes. If you exceed your maximum limit of Auto Scaling groups, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide. For introductory exercises for creating an Auto Scaling group, see Getting started with Amazon EC2 Auto Scaling and Tutorial: Set up a scaled and load-balanced application in the Amazon EC2 Auto Scaling User Guide. For more information, see Auto Scaling groups in the Amazon EC2 Auto Scaling User Guide. Every Auto Scaling group has three size parameters (DesiredCapacity, MaxSize, and MinSize). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances. + */ + createAutoScalingGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a launch configuration. If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide. For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide. + */ + createLaunchConfiguration(params: AutoScaling.Types.CreateLaunchConfigurationType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a launch configuration. If you exceed your maximum limit of launch configurations, the call fails. To query this limit, call the DescribeAccountLimits API. For information about updating this limit, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide. For more information, see Launch configurations in the Amazon EC2 Auto Scaling User Guide. + */ + createLaunchConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates tags for the specified Auto Scaling group. When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message. For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide. + */ + createOrUpdateTags(params: AutoScaling.Types.CreateOrUpdateTagsType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates tags for the specified Auto Scaling group. When you specify a tag with a key that already exists, the operation overwrites the previous tag definition, and you do not get an error message. For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide. + */ + createOrUpdateTags(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Auto Scaling group. If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed. If the group has policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action. To remove instances from the Auto Scaling group before deleting it, call the DetachInstances API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances. To terminate all instances before deleting the Auto Scaling group, call the UpdateAutoScalingGroup API and set the minimum size and desired capacity of the Auto Scaling group to zero. + */ + deleteAutoScalingGroup(params: AutoScaling.Types.DeleteAutoScalingGroupType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Auto Scaling group. If the group has instances or scaling activities in progress, you must specify the option to force the deletion in order for it to succeed. If the group has policies, deleting the group deletes the policies, the underlying alarm actions, and any alarm that no longer has an associated action. To remove instances from the Auto Scaling group before deleting it, call the DetachInstances API with the list of instances and the option to decrement the desired capacity. This ensures that Amazon EC2 Auto Scaling does not launch replacement instances. To terminate all instances before deleting the Auto Scaling group, call the UpdateAutoScalingGroup API and set the minimum size and desired capacity of the Auto Scaling group to zero. + */ + deleteAutoScalingGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified launch configuration. The launch configuration must not be attached to an Auto Scaling group. When this call completes, the launch configuration is no longer available for use. + */ + deleteLaunchConfiguration(params: AutoScaling.Types.LaunchConfigurationNameType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified launch configuration. The launch configuration must not be attached to an Auto Scaling group. When this call completes, the launch configuration is no longer available for use. + */ + deleteLaunchConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified lifecycle hook. If there are any outstanding lifecycle actions, they are completed first (ABANDON for launching instances, CONTINUE for terminating instances). + */ + deleteLifecycleHook(params: AutoScaling.Types.DeleteLifecycleHookType, callback?: (err: AWSError, data: AutoScaling.Types.DeleteLifecycleHookAnswer) => void): Request; + /** + * Deletes the specified lifecycle hook. If there are any outstanding lifecycle actions, they are completed first (ABANDON for launching instances, CONTINUE for terminating instances). + */ + deleteLifecycleHook(callback?: (err: AWSError, data: AutoScaling.Types.DeleteLifecycleHookAnswer) => void): Request; + /** + * Deletes the specified notification. + */ + deleteNotificationConfiguration(params: AutoScaling.Types.DeleteNotificationConfigurationType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified notification. + */ + deleteNotificationConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified scaling policy. Deleting either a step scaling policy or a simple scaling policy deletes the underlying alarm action, but does not delete the alarm, even if it no longer has an associated action. For more information, see Deleting a scaling policy in the Amazon EC2 Auto Scaling User Guide. + */ + deletePolicy(params: AutoScaling.Types.DeletePolicyType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified scaling policy. Deleting either a step scaling policy or a simple scaling policy deletes the underlying alarm action, but does not delete the alarm, even if it no longer has an associated action. For more information, see Deleting a scaling policy in the Amazon EC2 Auto Scaling User Guide. + */ + deletePolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified scheduled action. + */ + deleteScheduledAction(params: AutoScaling.Types.DeleteScheduledActionType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified scheduled action. + */ + deleteScheduledAction(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified tags. + */ + deleteTags(params: AutoScaling.Types.DeleteTagsType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified tags. + */ + deleteTags(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the warm pool for the specified Auto Scaling group. For more information, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + deleteWarmPool(params: AutoScaling.Types.DeleteWarmPoolType, callback?: (err: AWSError, data: AutoScaling.Types.DeleteWarmPoolAnswer) => void): Request; + /** + * Deletes the warm pool for the specified Auto Scaling group. For more information, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + deleteWarmPool(callback?: (err: AWSError, data: AutoScaling.Types.DeleteWarmPoolAnswer) => void): Request; + /** + * Describes the current Amazon EC2 Auto Scaling resource quotas for your account. For information about requesting an increase, see Amazon EC2 Auto Scaling service quotas in the Amazon EC2 Auto Scaling User Guide. + */ + describeAccountLimits(callback?: (err: AWSError, data: AutoScaling.Types.DescribeAccountLimitsAnswer) => void): Request; + /** + * Describes the available adjustment types for step scaling and simple scaling policies. The following adjustment types are supported: ChangeInCapacity ExactCapacity PercentChangeInCapacity + */ + describeAdjustmentTypes(callback?: (err: AWSError, data: AutoScaling.Types.DescribeAdjustmentTypesAnswer) => void): Request; + /** + * Gets information about the Auto Scaling groups in the account and Region. This operation returns information about instances in Auto Scaling groups. To retrieve information about the instances in a warm pool, you must call the DescribeWarmPool API. + */ + describeAutoScalingGroups(params: AutoScaling.Types.AutoScalingGroupNamesType, callback?: (err: AWSError, data: AutoScaling.Types.AutoScalingGroupsType) => void): Request; + /** + * Gets information about the Auto Scaling groups in the account and Region. This operation returns information about instances in Auto Scaling groups. To retrieve information about the instances in a warm pool, you must call the DescribeWarmPool API. + */ + describeAutoScalingGroups(callback?: (err: AWSError, data: AutoScaling.Types.AutoScalingGroupsType) => void): Request; + /** + * Gets information about the Auto Scaling instances in the account and Region. + */ + describeAutoScalingInstances(params: AutoScaling.Types.DescribeAutoScalingInstancesType, callback?: (err: AWSError, data: AutoScaling.Types.AutoScalingInstancesType) => void): Request; + /** + * Gets information about the Auto Scaling instances in the account and Region. + */ + describeAutoScalingInstances(callback?: (err: AWSError, data: AutoScaling.Types.AutoScalingInstancesType) => void): Request; + /** + * Describes the notification types that are supported by Amazon EC2 Auto Scaling. + */ + describeAutoScalingNotificationTypes(callback?: (err: AWSError, data: AutoScaling.Types.DescribeAutoScalingNotificationTypesAnswer) => void): Request; + /** + * Gets information about the instance refreshes for the specified Auto Scaling group. This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. To help you determine the status of an instance refresh, this operation returns information about the instance refreshes you previously initiated, including their status, end time, the percentage of the instance refresh that is complete, and the number of instances remaining to update before the instance refresh is complete. The following are the possible statuses: Pending - The request was created, but the operation has not started. InProgress - The operation is in progress. Successful - The operation completed successfully. Failed - The operation failed to complete. You can troubleshoot using the status reason and the scaling activities. Cancelling - An ongoing operation is being cancelled. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started. Cancelled - The operation is cancelled. + */ + describeInstanceRefreshes(params: AutoScaling.Types.DescribeInstanceRefreshesType, callback?: (err: AWSError, data: AutoScaling.Types.DescribeInstanceRefreshesAnswer) => void): Request; + /** + * Gets information about the instance refreshes for the specified Auto Scaling group. This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. To help you determine the status of an instance refresh, this operation returns information about the instance refreshes you previously initiated, including their status, end time, the percentage of the instance refresh that is complete, and the number of instances remaining to update before the instance refresh is complete. The following are the possible statuses: Pending - The request was created, but the operation has not started. InProgress - The operation is in progress. Successful - The operation completed successfully. Failed - The operation failed to complete. You can troubleshoot using the status reason and the scaling activities. Cancelling - An ongoing operation is being cancelled. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started. Cancelled - The operation is cancelled. + */ + describeInstanceRefreshes(callback?: (err: AWSError, data: AutoScaling.Types.DescribeInstanceRefreshesAnswer) => void): Request; + /** + * Gets information about the launch configurations in the account and Region. + */ + describeLaunchConfigurations(params: AutoScaling.Types.LaunchConfigurationNamesType, callback?: (err: AWSError, data: AutoScaling.Types.LaunchConfigurationsType) => void): Request; + /** + * Gets information about the launch configurations in the account and Region. + */ + describeLaunchConfigurations(callback?: (err: AWSError, data: AutoScaling.Types.LaunchConfigurationsType) => void): Request; + /** + * Describes the available types of lifecycle hooks. The following hook types are supported: autoscaling:EC2_INSTANCE_LAUNCHING autoscaling:EC2_INSTANCE_TERMINATING + */ + describeLifecycleHookTypes(callback?: (err: AWSError, data: AutoScaling.Types.DescribeLifecycleHookTypesAnswer) => void): Request; + /** + * Gets information about the lifecycle hooks for the specified Auto Scaling group. + */ + describeLifecycleHooks(params: AutoScaling.Types.DescribeLifecycleHooksType, callback?: (err: AWSError, data: AutoScaling.Types.DescribeLifecycleHooksAnswer) => void): Request; + /** + * Gets information about the lifecycle hooks for the specified Auto Scaling group. + */ + describeLifecycleHooks(callback?: (err: AWSError, data: AutoScaling.Types.DescribeLifecycleHooksAnswer) => void): Request; + /** + * Gets information about the load balancer target groups for the specified Auto Scaling group. To determine the availability of registered instances, use the State element in the response. When you attach a target group to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the target group is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the InService state. Target groups also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your target group state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary. For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeLoadBalancerTargetGroups(params: AutoScaling.Types.DescribeLoadBalancerTargetGroupsRequest, callback?: (err: AWSError, data: AutoScaling.Types.DescribeLoadBalancerTargetGroupsResponse) => void): Request; + /** + * Gets information about the load balancer target groups for the specified Auto Scaling group. To determine the availability of registered instances, use the State element in the response. When you attach a target group to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the target group. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the target group is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the target group doesn't enter the InService state. Target groups also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your target group state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary. For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeLoadBalancerTargetGroups(callback?: (err: AWSError, data: AutoScaling.Types.DescribeLoadBalancerTargetGroupsResponse) => void): Request; + /** + * Gets information about the load balancers for the specified Auto Scaling group. This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DescribeLoadBalancerTargetGroups API instead. To determine the availability of registered instances, use the State element in the response. When you attach a load balancer to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the load balancer is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the InService state. Load balancers also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your load balancer state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary. For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeLoadBalancers(params: AutoScaling.Types.DescribeLoadBalancersRequest, callback?: (err: AWSError, data: AutoScaling.Types.DescribeLoadBalancersResponse) => void): Request; + /** + * Gets information about the load balancers for the specified Auto Scaling group. This operation describes only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DescribeLoadBalancerTargetGroups API instead. To determine the availability of registered instances, use the State element in the response. When you attach a load balancer to an Auto Scaling group, the initial State value is Adding. The state transitions to Added after all Auto Scaling instances are registered with the load balancer. If Elastic Load Balancing health checks are enabled for the Auto Scaling group, the state transitions to InService after at least one Auto Scaling instance passes the health check. When the load balancer is in the InService state, Amazon EC2 Auto Scaling can terminate and replace any instances that are reported as unhealthy. If no registered instances pass the health checks, the load balancer doesn't enter the InService state. Load balancers also have an InService state if you attach them in the CreateAutoScalingGroup API call. If your load balancer state is InService, but it is not working properly, check the scaling activities by calling DescribeScalingActivities and take any corrective actions necessary. For help with failed health checks, see Troubleshooting Amazon EC2 Auto Scaling: Health checks in the Amazon EC2 Auto Scaling User Guide. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeLoadBalancers(callback?: (err: AWSError, data: AutoScaling.Types.DescribeLoadBalancersResponse) => void): Request; + /** + * Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling. The GroupStandbyInstances metric is not returned by default. You must explicitly request this metric when calling the EnableMetricsCollection API. + */ + describeMetricCollectionTypes(callback?: (err: AWSError, data: AutoScaling.Types.DescribeMetricCollectionTypesAnswer) => void): Request; + /** + * Gets information about the Amazon SNS notifications that are configured for one or more Auto Scaling groups. + */ + describeNotificationConfigurations(params: AutoScaling.Types.DescribeNotificationConfigurationsType, callback?: (err: AWSError, data: AutoScaling.Types.DescribeNotificationConfigurationsAnswer) => void): Request; + /** + * Gets information about the Amazon SNS notifications that are configured for one or more Auto Scaling groups. + */ + describeNotificationConfigurations(callback?: (err: AWSError, data: AutoScaling.Types.DescribeNotificationConfigurationsAnswer) => void): Request; + /** + * Gets information about the scaling policies in the account and Region. + */ + describePolicies(params: AutoScaling.Types.DescribePoliciesType, callback?: (err: AWSError, data: AutoScaling.Types.PoliciesType) => void): Request; + /** + * Gets information about the scaling policies in the account and Region. + */ + describePolicies(callback?: (err: AWSError, data: AutoScaling.Types.PoliciesType) => void): Request; + /** + * Gets information about the scaling activities in the account and Region. When scaling events occur, you see a record of the scaling activity in the scaling activities. For more information, see Verifying a scaling activity for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. If the scaling event succeeds, the value of the StatusCode element in the response is Successful. If an attempt to launch instances failed, the StatusCode value is Failed or Cancelled and the StatusMessage element in the response indicates the cause of the failure. For help interpreting the StatusMessage, see Troubleshooting Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeScalingActivities(params: AutoScaling.Types.DescribeScalingActivitiesType, callback?: (err: AWSError, data: AutoScaling.Types.ActivitiesType) => void): Request; + /** + * Gets information about the scaling activities in the account and Region. When scaling events occur, you see a record of the scaling activity in the scaling activities. For more information, see Verifying a scaling activity for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. If the scaling event succeeds, the value of the StatusCode element in the response is Successful. If an attempt to launch instances failed, the StatusCode value is Failed or Cancelled and the StatusMessage element in the response indicates the cause of the failure. For help interpreting the StatusMessage, see Troubleshooting Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeScalingActivities(callback?: (err: AWSError, data: AutoScaling.Types.ActivitiesType) => void): Request; + /** + * Describes the scaling process types for use with the ResumeProcesses and SuspendProcesses APIs. + */ + describeScalingProcessTypes(callback?: (err: AWSError, data: AutoScaling.Types.ProcessesType) => void): Request; + /** + * Gets information about the scheduled actions that haven't run or that have not reached their end time. To describe the scaling activities for scheduled actions that have already run, call the DescribeScalingActivities API. + */ + describeScheduledActions(params: AutoScaling.Types.DescribeScheduledActionsType, callback?: (err: AWSError, data: AutoScaling.Types.ScheduledActionsType) => void): Request; + /** + * Gets information about the scheduled actions that haven't run or that have not reached their end time. To describe the scaling activities for scheduled actions that have already run, call the DescribeScalingActivities API. + */ + describeScheduledActions(callback?: (err: AWSError, data: AutoScaling.Types.ScheduledActionsType) => void): Request; + /** + * Describes the specified tags. You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results. You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned. For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide. + */ + describeTags(params: AutoScaling.Types.DescribeTagsType, callback?: (err: AWSError, data: AutoScaling.Types.TagsType) => void): Request; + /** + * Describes the specified tags. You can use filters to limit the results. For example, you can query for the tags for a specific Auto Scaling group. You can specify multiple values for a filter. A tag must match at least one of the specified values for it to be included in the results. You can also specify multiple filters. The result includes information for a particular tag only if it matches all the filters. If there's no match, no special message is returned. For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide. + */ + describeTags(callback?: (err: AWSError, data: AutoScaling.Types.TagsType) => void): Request; + /** + * Describes the termination policies supported by Amazon EC2 Auto Scaling. For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide. + */ + describeTerminationPolicyTypes(callback?: (err: AWSError, data: AutoScaling.Types.DescribeTerminationPolicyTypesAnswer) => void): Request; + /** + * Gets information about a warm pool and its instances. For more information, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeWarmPool(params: AutoScaling.Types.DescribeWarmPoolType, callback?: (err: AWSError, data: AutoScaling.Types.DescribeWarmPoolAnswer) => void): Request; + /** + * Gets information about a warm pool and its instances. For more information, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + describeWarmPool(callback?: (err: AWSError, data: AutoScaling.Types.DescribeWarmPoolAnswer) => void): Request; + /** + * Removes one or more instances from the specified Auto Scaling group. After the instances are detached, you can manage them independent of the Auto Scaling group. If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are detached. If there is a Classic Load Balancer attached to the Auto Scaling group, the instances are deregistered from the load balancer. If there are target groups attached to the Auto Scaling group, the instances are deregistered from the target groups. For more information, see Detach EC2 instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + detachInstances(params: AutoScaling.Types.DetachInstancesQuery, callback?: (err: AWSError, data: AutoScaling.Types.DetachInstancesAnswer) => void): Request; + /** + * Removes one or more instances from the specified Auto Scaling group. After the instances are detached, you can manage them independent of the Auto Scaling group. If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are detached. If there is a Classic Load Balancer attached to the Auto Scaling group, the instances are deregistered from the load balancer. If there are target groups attached to the Auto Scaling group, the instances are deregistered from the target groups. For more information, see Detach EC2 instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + detachInstances(callback?: (err: AWSError, data: AutoScaling.Types.DetachInstancesAnswer) => void): Request; + /** + * Detaches one or more target groups from the specified Auto Scaling group. + */ + detachLoadBalancerTargetGroups(params: AutoScaling.Types.DetachLoadBalancerTargetGroupsType, callback?: (err: AWSError, data: AutoScaling.Types.DetachLoadBalancerTargetGroupsResultType) => void): Request; + /** + * Detaches one or more target groups from the specified Auto Scaling group. + */ + detachLoadBalancerTargetGroups(callback?: (err: AWSError, data: AutoScaling.Types.DetachLoadBalancerTargetGroupsResultType) => void): Request; + /** + * Detaches one or more Classic Load Balancers from the specified Auto Scaling group. This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DetachLoadBalancerTargetGroups API instead. When you detach a load balancer, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the DescribeLoadBalancers API call. The instances remain running. + */ + detachLoadBalancers(params: AutoScaling.Types.DetachLoadBalancersType, callback?: (err: AWSError, data: AutoScaling.Types.DetachLoadBalancersResultType) => void): Request; + /** + * Detaches one or more Classic Load Balancers from the specified Auto Scaling group. This operation detaches only Classic Load Balancers. If you have Application Load Balancers, Network Load Balancers, or Gateway Load Balancers, use the DetachLoadBalancerTargetGroups API instead. When you detach a load balancer, it enters the Removing state while deregistering the instances in the group. When all instances are deregistered, then you can no longer describe the load balancer using the DescribeLoadBalancers API call. The instances remain running. + */ + detachLoadBalancers(callback?: (err: AWSError, data: AutoScaling.Types.DetachLoadBalancersResultType) => void): Request; + /** + * Disables group metrics for the specified Auto Scaling group. + */ + disableMetricsCollection(params: AutoScaling.Types.DisableMetricsCollectionQuery, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Disables group metrics for the specified Auto Scaling group. + */ + disableMetricsCollection(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring CloudWatch metrics for your Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide. + */ + enableMetricsCollection(params: AutoScaling.Types.EnableMetricsCollectionQuery, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Enables group metrics for the specified Auto Scaling group. For more information, see Monitoring CloudWatch metrics for your Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide. + */ + enableMetricsCollection(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Moves the specified instances into the standby state. If you choose to decrement the desired capacity of the Auto Scaling group, the instances can enter standby as long as the desired capacity of the Auto Scaling group after the instances are placed into standby is equal to or greater than the minimum capacity of the group. If you choose not to decrement the desired capacity of the Auto Scaling group, the Auto Scaling group launches new instances to replace the instances on standby. For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + enterStandby(params: AutoScaling.Types.EnterStandbyQuery, callback?: (err: AWSError, data: AutoScaling.Types.EnterStandbyAnswer) => void): Request; + /** + * Moves the specified instances into the standby state. If you choose to decrement the desired capacity of the Auto Scaling group, the instances can enter standby as long as the desired capacity of the Auto Scaling group after the instances are placed into standby is equal to or greater than the minimum capacity of the group. If you choose not to decrement the desired capacity of the Auto Scaling group, the Auto Scaling group launches new instances to replace the instances on standby. For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + enterStandby(callback?: (err: AWSError, data: AutoScaling.Types.EnterStandbyAnswer) => void): Request; + /** + * Executes the specified policy. This can be useful for testing the design of your scaling policy. + */ + executePolicy(params: AutoScaling.Types.ExecutePolicyType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Executes the specified policy. This can be useful for testing the design of your scaling policy. + */ + executePolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Moves the specified instances out of the standby state. After you put the instances back in service, the desired capacity is incremented. For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + exitStandby(params: AutoScaling.Types.ExitStandbyQuery, callback?: (err: AWSError, data: AutoScaling.Types.ExitStandbyAnswer) => void): Request; + /** + * Moves the specified instances out of the standby state. After you put the instances back in service, the desired capacity is incremented. For more information, see Temporarily removing instances from your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + exitStandby(callback?: (err: AWSError, data: AutoScaling.Types.ExitStandbyAnswer) => void): Request; + /** + * Retrieves the forecast data for a predictive scaling policy. Load forecasts are predictions of the hourly load values using historical load data from CloudWatch and an analysis of historical trends. Capacity forecasts are represented as predicted values for the minimum capacity that is needed on an hourly basis, based on the hourly load forecast. A minimum of 24 hours of data is required to create the initial forecasts. However, having a full 14 days of historical data results in more accurate forecasts. For more information, see Predictive scaling for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + getPredictiveScalingForecast(params: AutoScaling.Types.GetPredictiveScalingForecastType, callback?: (err: AWSError, data: AutoScaling.Types.GetPredictiveScalingForecastAnswer) => void): Request; + /** + * Retrieves the forecast data for a predictive scaling policy. Load forecasts are predictions of the hourly load values using historical load data from CloudWatch and an analysis of historical trends. Capacity forecasts are represented as predicted values for the minimum capacity that is needed on an hourly basis, based on the hourly load forecast. A minimum of 24 hours of data is required to create the initial forecasts. However, having a full 14 days of historical data results in more accurate forecasts. For more information, see Predictive scaling for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + getPredictiveScalingForecast(callback?: (err: AWSError, data: AutoScaling.Types.GetPredictiveScalingForecastAnswer) => void): Request; + /** + * Creates or updates a lifecycle hook for the specified Auto Scaling group. A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an instance when the instance launches (before it is put into service) or as the instance terminates (before it is fully terminated). This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state using the RecordLifecycleActionHeartbeat API call. If you finish before the timeout period ends, complete the lifecycle action using the CompleteLifecycleAction API call. For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide. If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling group, the call fails. You can view the lifecycle hooks for an Auto Scaling group using the DescribeLifecycleHooks API call. If you are no longer using a lifecycle hook, you can delete it by calling the DeleteLifecycleHook API. + */ + putLifecycleHook(params: AutoScaling.Types.PutLifecycleHookType, callback?: (err: AWSError, data: AutoScaling.Types.PutLifecycleHookAnswer) => void): Request; + /** + * Creates or updates a lifecycle hook for the specified Auto Scaling group. A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an instance when the instance launches (before it is put into service) or as the instance terminates (before it is fully terminated). This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state using the RecordLifecycleActionHeartbeat API call. If you finish before the timeout period ends, complete the lifecycle action using the CompleteLifecycleAction API call. For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide. If you exceed your maximum limit of lifecycle hooks, which by default is 50 per Auto Scaling group, the call fails. You can view the lifecycle hooks for an Auto Scaling group using the DescribeLifecycleHooks API call. If you are no longer using a lifecycle hook, you can delete it by calling the DeleteLifecycleHook API. + */ + putLifecycleHook(callback?: (err: AWSError, data: AutoScaling.Types.PutLifecycleHookAnswer) => void): Request; + /** + * Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to the specified topic can have messages delivered to an endpoint such as a web server or an email address. This configuration overwrites any existing configuration. For more information, see Getting Amazon SNS notifications when your Auto Scaling group scales in the Amazon EC2 Auto Scaling User Guide. If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling group, the call fails. + */ + putNotificationConfiguration(params: AutoScaling.Types.PutNotificationConfigurationType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Configures an Auto Scaling group to send notifications when specified events take place. Subscribers to the specified topic can have messages delivered to an endpoint such as a web server or an email address. This configuration overwrites any existing configuration. For more information, see Getting Amazon SNS notifications when your Auto Scaling group scales in the Amazon EC2 Auto Scaling User Guide. If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling group, the call fails. + */ + putNotificationConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a scaling policy for an Auto Scaling group. Scaling policies are used to scale an Auto Scaling group based on configurable metrics. If no policies are defined, the dynamic scaling and predictive scaling features are not used. For more information about using dynamic scaling, see Target tracking scaling policies and Step and simple scaling policies in the Amazon EC2 Auto Scaling User Guide. For more information about using predictive scaling, see Predictive scaling for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. You can view the scaling policies for an Auto Scaling group using the DescribePolicies API call. If you are no longer using a scaling policy, you can delete it by calling the DeletePolicy API. + */ + putScalingPolicy(params: AutoScaling.Types.PutScalingPolicyType, callback?: (err: AWSError, data: AutoScaling.Types.PolicyARNType) => void): Request; + /** + * Creates or updates a scaling policy for an Auto Scaling group. Scaling policies are used to scale an Auto Scaling group based on configurable metrics. If no policies are defined, the dynamic scaling and predictive scaling features are not used. For more information about using dynamic scaling, see Target tracking scaling policies and Step and simple scaling policies in the Amazon EC2 Auto Scaling User Guide. For more information about using predictive scaling, see Predictive scaling for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. You can view the scaling policies for an Auto Scaling group using the DescribePolicies API call. If you are no longer using a scaling policy, you can delete it by calling the DeletePolicy API. + */ + putScalingPolicy(callback?: (err: AWSError, data: AutoScaling.Types.PolicyARNType) => void): Request; + /** + * Creates or updates a scheduled scaling action for an Auto Scaling group. For more information, see Scheduled scaling in the Amazon EC2 Auto Scaling User Guide. You can view the scheduled actions for an Auto Scaling group using the DescribeScheduledActions API call. If you are no longer using a scheduled action, you can delete it by calling the DeleteScheduledAction API. + */ + putScheduledUpdateGroupAction(params: AutoScaling.Types.PutScheduledUpdateGroupActionType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a scheduled scaling action for an Auto Scaling group. For more information, see Scheduled scaling in the Amazon EC2 Auto Scaling User Guide. You can view the scheduled actions for an Auto Scaling group using the DescribeScheduledActions API call. If you are no longer using a scheduled action, you can delete it by calling the DeleteScheduledAction API. + */ + putScheduledUpdateGroupAction(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a warm pool for the specified Auto Scaling group. A warm pool is a pool of pre-initialized EC2 instances that sits alongside the Auto Scaling group. Whenever your application needs to scale out, the Auto Scaling group can draw on the warm pool to meet its new desired capacity. For more information and example configurations, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. This operation must be called from the Region in which the Auto Scaling group was created. This operation cannot be called on an Auto Scaling group that has a mixed instances policy or a launch template or launch configuration that requests Spot Instances. You can view the instances in the warm pool using the DescribeWarmPool API call. If you are no longer using a warm pool, you can delete it by calling the DeleteWarmPool API. + */ + putWarmPool(params: AutoScaling.Types.PutWarmPoolType, callback?: (err: AWSError, data: AutoScaling.Types.PutWarmPoolAnswer) => void): Request; + /** + * Creates or updates a warm pool for the specified Auto Scaling group. A warm pool is a pool of pre-initialized EC2 instances that sits alongside the Auto Scaling group. Whenever your application needs to scale out, the Auto Scaling group can draw on the warm pool to meet its new desired capacity. For more information and example configurations, see Warm pools for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. This operation must be called from the Region in which the Auto Scaling group was created. This operation cannot be called on an Auto Scaling group that has a mixed instances policy or a launch template or launch configuration that requests Spot Instances. You can view the instances in the warm pool using the DescribeWarmPool API call. If you are no longer using a warm pool, you can delete it by calling the DeleteWarmPool API. + */ + putWarmPool(callback?: (err: AWSError, data: AutoScaling.Types.PutWarmPoolAnswer) => void): Request; + /** + * Records a heartbeat for the lifecycle action associated with the specified token or instance. This extends the timeout by the length of time defined using the PutLifecycleHook API call. This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state. If you finish before the timeout period ends, complete the lifecycle action. For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide. + */ + recordLifecycleActionHeartbeat(params: AutoScaling.Types.RecordLifecycleActionHeartbeatType, callback?: (err: AWSError, data: AutoScaling.Types.RecordLifecycleActionHeartbeatAnswer) => void): Request; + /** + * Records a heartbeat for the lifecycle action associated with the specified token or instance. This extends the timeout by the length of time defined using the PutLifecycleHook API call. This step is a part of the procedure for adding a lifecycle hook to an Auto Scaling group: (Optional) Create a Lambda function and a rule that allows CloudWatch Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or terminates instances. (Optional) Create a notification target and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle notifications to the target. Create the lifecycle hook. Specify whether the hook is used when the instances launch or terminate. If you need more time, record the lifecycle action heartbeat to keep the instance in a pending state. If you finish before the timeout period ends, complete the lifecycle action. For more information, see Amazon EC2 Auto Scaling lifecycle hooks in the Amazon EC2 Auto Scaling User Guide. + */ + recordLifecycleActionHeartbeat(callback?: (err: AWSError, data: AutoScaling.Types.RecordLifecycleActionHeartbeatAnswer) => void): Request; + /** + * Resumes the specified suspended auto scaling processes, or all suspended process, for the specified Auto Scaling group. For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide. + */ + resumeProcesses(params: AutoScaling.Types.ScalingProcessQuery, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Resumes the specified suspended auto scaling processes, or all suspended process, for the specified Auto Scaling group. For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide. + */ + resumeProcesses(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets the size of the specified Auto Scaling group. If a scale-in activity occurs as a result of a new DesiredCapacity value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate. For more information, see Manual scaling in the Amazon EC2 Auto Scaling User Guide. + */ + setDesiredCapacity(params: AutoScaling.Types.SetDesiredCapacityType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets the size of the specified Auto Scaling group. If a scale-in activity occurs as a result of a new DesiredCapacity value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate. For more information, see Manual scaling in the Amazon EC2 Auto Scaling User Guide. + */ + setDesiredCapacity(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets the health status of the specified instance. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide. + */ + setInstanceHealth(params: AutoScaling.Types.SetInstanceHealthQuery, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets the health status of the specified instance. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide. + */ + setInstanceHealth(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the instance protection settings of the specified instances. This operation cannot be called on instances in a warm pool. For more information about preventing instances that are part of an Auto Scaling group from terminating on scale in, see Instance scale-in protection in the Amazon EC2 Auto Scaling User Guide. If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling group, the call fails. + */ + setInstanceProtection(params: AutoScaling.Types.SetInstanceProtectionQuery, callback?: (err: AWSError, data: AutoScaling.Types.SetInstanceProtectionAnswer) => void): Request; + /** + * Updates the instance protection settings of the specified instances. This operation cannot be called on instances in a warm pool. For more information about preventing instances that are part of an Auto Scaling group from terminating on scale in, see Instance scale-in protection in the Amazon EC2 Auto Scaling User Guide. If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling group, the call fails. + */ + setInstanceProtection(callback?: (err: AWSError, data: AutoScaling.Types.SetInstanceProtectionAnswer) => void): Request; + /** + * Starts a new instance refresh operation, which triggers a rolling replacement of previously launched instances in the Auto Scaling group with a new group of instances. This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. If the call succeeds, it creates a new instance refresh request with a unique ID that you can use to track its progress. To query its status, call the DescribeInstanceRefreshes API. To describe the instance refreshes that have already run, call the DescribeInstanceRefreshes API. To cancel an instance refresh operation in progress, use the CancelInstanceRefresh API. + */ + startInstanceRefresh(params: AutoScaling.Types.StartInstanceRefreshType, callback?: (err: AWSError, data: AutoScaling.Types.StartInstanceRefreshAnswer) => void): Request; + /** + * Starts a new instance refresh operation, which triggers a rolling replacement of previously launched instances in the Auto Scaling group with a new group of instances. This operation is part of the instance refresh feature in Amazon EC2 Auto Scaling, which helps you update instances in your Auto Scaling group after you make configuration changes. If the call succeeds, it creates a new instance refresh request with a unique ID that you can use to track its progress. To query its status, call the DescribeInstanceRefreshes API. To describe the instance refreshes that have already run, call the DescribeInstanceRefreshes API. To cancel an instance refresh operation in progress, use the CancelInstanceRefresh API. + */ + startInstanceRefresh(callback?: (err: AWSError, data: AutoScaling.Types.StartInstanceRefreshAnswer) => void): Request; + /** + * Suspends the specified auto scaling processes, or all processes, for the specified Auto Scaling group. If you suspend either the Launch or Terminate process types, it can prevent other process types from functioning properly. For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide. To resume processes that have been suspended, call the ResumeProcesses API. + */ + suspendProcesses(params: AutoScaling.Types.ScalingProcessQuery, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Suspends the specified auto scaling processes, or all processes, for the specified Auto Scaling group. If you suspend either the Launch or Terminate process types, it can prevent other process types from functioning properly. For more information, see Suspending and resuming scaling processes in the Amazon EC2 Auto Scaling User Guide. To resume processes that have been suspended, call the ResumeProcesses API. + */ + suspendProcesses(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Terminates the specified instance and optionally adjusts the desired group size. This operation cannot be called on instances in a warm pool. This call simply makes a termination request. The instance is not terminated immediately. When an instance is terminated, the instance status changes to terminated. You can't connect to or start an instance after you've terminated it. If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are terminated. By default, Amazon EC2 Auto Scaling balances instances across all Availability Zones. If you decrement the desired capacity, your Auto Scaling group can become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate instances in other zones. For more information, see Rebalancing activities in the Amazon EC2 Auto Scaling User Guide. + */ + terminateInstanceInAutoScalingGroup(params: AutoScaling.Types.TerminateInstanceInAutoScalingGroupType, callback?: (err: AWSError, data: AutoScaling.Types.ActivityType) => void): Request; + /** + * Terminates the specified instance and optionally adjusts the desired group size. This operation cannot be called on instances in a warm pool. This call simply makes a termination request. The instance is not terminated immediately. When an instance is terminated, the instance status changes to terminated. You can't connect to or start an instance after you've terminated it. If you do not specify the option to decrement the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that are terminated. By default, Amazon EC2 Auto Scaling balances instances across all Availability Zones. If you decrement the desired capacity, your Auto Scaling group can become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate instances in other zones. For more information, see Rebalancing activities in the Amazon EC2 Auto Scaling User Guide. + */ + terminateInstanceInAutoScalingGroup(callback?: (err: AWSError, data: AutoScaling.Types.ActivityType) => void): Request; + /** + * We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. Updates the configuration for the specified Auto Scaling group. To update an Auto Scaling group, specify the name of the group and the parameter that you want to change. Any parameters that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns. If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application. Note the following about changing DesiredCapacity, MaxSize, or MinSize: If a scale-in activity occurs as a result of a new DesiredCapacity value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate. If you specify a new value for MinSize without specifying a value for DesiredCapacity, and the new MinSize is larger than the current size of the group, this sets the group's DesiredCapacity to the new MinSize value. If you specify a new value for MaxSize without specifying a value for DesiredCapacity, and the new MaxSize is smaller than the current size of the group, this sets the group's DesiredCapacity to the new MaxSize value. To see which parameters have been set, call the DescribeAutoScalingGroups API. To view the scaling policies for an Auto Scaling group, call the DescribePolicies API. If the group has scaling policies, you can update them by calling the PutScalingPolicy API. + */ + updateAutoScalingGroup(params: AutoScaling.Types.UpdateAutoScalingGroupType, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * We strongly recommend that all Auto Scaling groups use launch templates to ensure full functionality for Amazon EC2 Auto Scaling and Amazon EC2. Updates the configuration for the specified Auto Scaling group. To update an Auto Scaling group, specify the name of the group and the parameter that you want to change. Any parameters that you don't specify are not changed by this update request. The new settings take effect on any scaling activities after this call returns. If you associate a new launch configuration or template with an Auto Scaling group, all new instances will get the updated configuration. Existing instances continue to run with the configuration that they were originally launched with. When you update a group to specify a mixed instances policy instead of a launch configuration or template, existing instances may be replaced to match the new purchasing options that you specified in the policy. For example, if the group currently has 100% On-Demand capacity and the policy specifies 50% Spot capacity, this means that half of your instances will be gradually terminated and relaunched as Spot Instances. When replacing instances, Amazon EC2 Auto Scaling launches new instances before terminating the old ones, so that updating your group does not compromise the performance or availability of your application. Note the following about changing DesiredCapacity, MaxSize, or MinSize: If a scale-in activity occurs as a result of a new DesiredCapacity value that is lower than the current size of the group, the Auto Scaling group uses its termination policy to determine which instances to terminate. If you specify a new value for MinSize without specifying a value for DesiredCapacity, and the new MinSize is larger than the current size of the group, this sets the group's DesiredCapacity to the new MinSize value. If you specify a new value for MaxSize without specifying a value for DesiredCapacity, and the new MaxSize is smaller than the current size of the group, this sets the group's DesiredCapacity to the new MaxSize value. To see which parameters have been set, call the DescribeAutoScalingGroups API. To view the scaling policies for an Auto Scaling group, call the DescribePolicies API. If the group has scaling policies, you can update them by calling the PutScalingPolicy API. + */ + updateAutoScalingGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; +} +declare namespace AutoScaling { + export type Activities = Activity[]; + export interface ActivitiesType { + /** + * The scaling activities. Activities are sorted by start time. Activities still in progress are described first. + */ + Activities: Activities; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface Activity { + /** + * The ID of the activity. + */ + ActivityId: XmlString; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * A friendly, more verbose description of the activity. + */ + Description?: XmlString; + /** + * The reason the activity began. + */ + Cause: XmlStringMaxLen1023; + /** + * The start time of the activity. + */ + StartTime: TimestampType; + /** + * The end time of the activity. + */ + EndTime?: TimestampType; + /** + * The current status of the activity. + */ + StatusCode: ScalingActivityStatusCode; + /** + * A friendly, more verbose description of the activity status. + */ + StatusMessage?: XmlStringMaxLen255; + /** + * A value between 0 and 100 that indicates the progress of the activity. + */ + Progress?: Progress; + /** + * The details about the activity. + */ + Details?: XmlString; + /** + * The state of the Auto Scaling group, which is either InService or Deleted. + */ + AutoScalingGroupState?: AutoScalingGroupState; + /** + * The Amazon Resource Name (ARN) of the Auto Scaling group. + */ + AutoScalingGroupARN?: ResourceName; + } + export type ActivityIds = XmlString[]; + export interface ActivityType { + /** + * A scaling activity. + */ + Activity?: Activity; + } + export interface AdjustmentType { + /** + * The policy adjustment type. The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. + */ + AdjustmentType?: XmlStringMaxLen255; + } + export type AdjustmentTypes = AdjustmentType[]; + export interface Alarm { + /** + * The name of the alarm. + */ + AlarmName?: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the alarm. + */ + AlarmARN?: ResourceName; + } + export type Alarms = Alarm[]; + export type AsciiStringMaxLen255 = string; + export type AssociatePublicIpAddress = boolean; + export interface AttachInstancesQuery { + /** + * The IDs of the instances. You can specify up to 20 instances. + */ + InstanceIds?: InstanceIds; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + } + export interface AttachLoadBalancerTargetGroupsResultType { + } + export interface AttachLoadBalancerTargetGroupsType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The Amazon Resource Names (ARN) of the target groups. You can specify up to 10 target groups. To get the ARN of a target group, use the Elastic Load Balancing DescribeTargetGroups API operation. + */ + TargetGroupARNs: TargetGroupARNs; + } + export interface AttachLoadBalancersResultType { + } + export interface AttachLoadBalancersType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The names of the load balancers. You can specify up to 10 load balancers. + */ + LoadBalancerNames: LoadBalancerNames; + } + export interface AutoScalingGroup { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the Auto Scaling group. + */ + AutoScalingGroupARN?: ResourceName; + /** + * The name of the associated launch configuration. + */ + LaunchConfigurationName?: XmlStringMaxLen255; + /** + * The launch template for the group. + */ + LaunchTemplate?: LaunchTemplateSpecification; + /** + * The mixed instances policy for the group. + */ + MixedInstancesPolicy?: MixedInstancesPolicy; + /** + * The minimum size of the group. + */ + MinSize: AutoScalingGroupMinSize; + /** + * The maximum size of the group. + */ + MaxSize: AutoScalingGroupMaxSize; + /** + * The desired size of the group. + */ + DesiredCapacity: AutoScalingGroupDesiredCapacity; + /** + * The predicted capacity of the group when it has a predictive scaling policy. + */ + PredictedCapacity?: AutoScalingGroupPredictedCapacity; + /** + * The duration of the default cooldown period, in seconds. + */ + DefaultCooldown: Cooldown; + /** + * One or more Availability Zones for the group. + */ + AvailabilityZones: AvailabilityZones; + /** + * One or more load balancers associated with the group. + */ + LoadBalancerNames?: LoadBalancerNames; + /** + * The Amazon Resource Names (ARN) of the target groups for your load balancer. + */ + TargetGroupARNs?: TargetGroupARNs; + /** + * The service to use for the health checks. The valid values are EC2 and ELB. If you configure an Auto Scaling group to use ELB health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. + */ + HealthCheckType: XmlStringMaxLen32; + /** + * The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service. + */ + HealthCheckGracePeriod?: HealthCheckGracePeriod; + /** + * The EC2 instances associated with the group. + */ + Instances?: Instances; + /** + * The date and time the group was created. + */ + CreatedTime: TimestampType; + /** + * The suspended processes associated with the group. + */ + SuspendedProcesses?: SuspendedProcesses; + /** + * The name of the placement group into which to launch your instances, if any. + */ + PlacementGroup?: XmlStringMaxLen255; + /** + * One or more subnet IDs, if applicable, separated by commas. + */ + VPCZoneIdentifier?: XmlStringMaxLen2047; + /** + * The metrics enabled for the group. + */ + EnabledMetrics?: EnabledMetrics; + /** + * The current state of the group when the DeleteAutoScalingGroup operation is in progress. + */ + Status?: XmlStringMaxLen255; + /** + * The tags for the group. + */ + Tags?: TagDescriptionList; + /** + * The termination policies for the group. + */ + TerminationPolicies?: TerminationPolicies; + /** + * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. + */ + NewInstancesProtectedFromScaleIn?: InstanceProtected; + /** + * The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. + */ + ServiceLinkedRoleARN?: ResourceName; + /** + * The maximum amount of time, in seconds, that an instance can be in service. Valid Range: Minimum value of 0. + */ + MaxInstanceLifetime?: MaxInstanceLifetime; + /** + * Indicates whether Capacity Rebalancing is enabled. + */ + CapacityRebalance?: CapacityRebalanceEnabled; + /** + * The warm pool for the group. + */ + WarmPoolConfiguration?: WarmPoolConfiguration; + /** + * The current size of the warm pool. + */ + WarmPoolSize?: WarmPoolSize; + } + export type AutoScalingGroupDesiredCapacity = number; + export type AutoScalingGroupMaxSize = number; + export type AutoScalingGroupMinSize = number; + export type AutoScalingGroupNames = XmlStringMaxLen255[]; + export interface AutoScalingGroupNamesType { + /** + * The names of the Auto Scaling groups. By default, you can only specify up to 50 names. You can optionally increase this limit using the MaxRecords parameter. If you omit this parameter, all Auto Scaling groups are described. + */ + AutoScalingGroupNames?: AutoScalingGroupNames; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 50 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export type AutoScalingGroupPredictedCapacity = number; + export type AutoScalingGroupState = string; + export type AutoScalingGroups = AutoScalingGroup[]; + export interface AutoScalingGroupsType { + /** + * The groups. + */ + AutoScalingGroups: AutoScalingGroups; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface AutoScalingInstanceDetails { + /** + * The ID of the instance. + */ + InstanceId: XmlStringMaxLen19; + /** + * The instance type of the EC2 instance. + */ + InstanceType?: XmlStringMaxLen255; + /** + * The name of the Auto Scaling group for the instance. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The Availability Zone for the instance. + */ + AvailabilityZone: XmlStringMaxLen255; + /** + * The lifecycle state for the instance. The Quarantined state is not used. For information about lifecycle states, see Instance lifecycle in the Amazon EC2 Auto Scaling User Guide. Valid Values: Pending | Pending:Wait | Pending:Proceed | Quarantined | InService | Terminating | Terminating:Wait | Terminating:Proceed | Terminated | Detaching | Detached | EnteringStandby | Standby | Warmed:Pending | Warmed:Pending:Wait | Warmed:Pending:Proceed | Warmed:Terminating | Warmed:Terminating:Wait | Warmed:Terminating:Proceed | Warmed:Terminated | Warmed:Stopped | Warmed:Running + */ + LifecycleState: XmlStringMaxLen32; + /** + * The last reported health status of this instance. "Healthy" means that the instance is healthy and should remain in service. "Unhealthy" means that the instance is unhealthy and Amazon EC2 Auto Scaling should terminate and replace it. + */ + HealthStatus: XmlStringMaxLen32; + /** + * The launch configuration used to launch the instance. This value is not available if you attached the instance to the Auto Scaling group. + */ + LaunchConfigurationName?: XmlStringMaxLen255; + /** + * The launch template for the instance. + */ + LaunchTemplate?: LaunchTemplateSpecification; + /** + * Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling in. + */ + ProtectedFromScaleIn: InstanceProtected; + /** + * The number of capacity units contributed by the instance based on its instance type. Valid Range: Minimum value of 1. Maximum value of 999. + */ + WeightedCapacity?: XmlStringMaxLen32; + } + export type AutoScalingInstances = AutoScalingInstanceDetails[]; + export interface AutoScalingInstancesType { + /** + * The instances. + */ + AutoScalingInstances?: AutoScalingInstances; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export type AutoScalingNotificationTypes = XmlStringMaxLen255[]; + export type AvailabilityZones = XmlStringMaxLen255[]; + export interface BatchDeleteScheduledActionAnswer { + /** + * The names of the scheduled actions that could not be deleted, including an error message. + */ + FailedScheduledActions?: FailedScheduledUpdateGroupActionRequests; + } + export interface BatchDeleteScheduledActionType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The names of the scheduled actions to delete. The maximum number allowed is 50. + */ + ScheduledActionNames: ScheduledActionNames; + } + export interface BatchPutScheduledUpdateGroupActionAnswer { + /** + * The names of the scheduled actions that could not be created or updated, including an error message. + */ + FailedScheduledUpdateGroupActions?: FailedScheduledUpdateGroupActionRequests; + } + export interface BatchPutScheduledUpdateGroupActionType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * One or more scheduled actions. The maximum number allowed is 50. + */ + ScheduledUpdateGroupActions: ScheduledUpdateGroupActionRequests; + } + export type BlockDeviceEbsDeleteOnTermination = boolean; + export type BlockDeviceEbsEncrypted = boolean; + export type BlockDeviceEbsIops = number; + export type BlockDeviceEbsThroughput = number; + export type BlockDeviceEbsVolumeSize = number; + export type BlockDeviceEbsVolumeType = string; + export interface BlockDeviceMapping { + /** + * The name of the virtual device (for example, ephemeral0). You can specify either VirtualName or Ebs, but not both. + */ + VirtualName?: XmlStringMaxLen255; + /** + * The device name exposed to the EC2 instance (for example, /dev/sdh or xvdh). For more information, see Device Naming on Linux Instances in the Amazon EC2 User Guide for Linux Instances. + */ + DeviceName: XmlStringMaxLen255; + /** + * Parameters used to automatically set up EBS volumes when an instance is launched. You can specify either VirtualName or Ebs, but not both. + */ + Ebs?: Ebs; + /** + * Setting this value to true suppresses the specified device included in the block device mapping of the AMI. If NoDevice is true for the root device, instances might fail the EC2 health check. In that case, Amazon EC2 Auto Scaling launches replacement instances. If you specify NoDevice, you cannot specify Ebs. + */ + NoDevice?: NoDevice; + } + export type BlockDeviceMappings = BlockDeviceMapping[]; + export interface CancelInstanceRefreshAnswer { + /** + * The instance refresh ID. + */ + InstanceRefreshId?: XmlStringMaxLen255; + } + export interface CancelInstanceRefreshType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + } + export interface CapacityForecast { + /** + * The time stamps for the data points, in UTC format. + */ + Timestamps: PredictiveScalingForecastTimestamps; + /** + * The values of the data points. + */ + Values: PredictiveScalingForecastValues; + } + export type CapacityRebalanceEnabled = boolean; + export type CheckpointDelay = number; + export type CheckpointPercentages = NonZeroIntPercent[]; + export type ClassicLinkVPCSecurityGroups = XmlStringMaxLen255[]; + export interface CompleteLifecycleActionAnswer { + } + export interface CompleteLifecycleActionType { + /** + * The name of the lifecycle hook. + */ + LifecycleHookName: AsciiStringMaxLen255; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: ResourceName; + /** + * A universally unique identifier (UUID) that identifies a specific lifecycle action associated with an instance. Amazon EC2 Auto Scaling sends this token to the notification target you specified when you created the lifecycle hook. + */ + LifecycleActionToken?: LifecycleActionToken; + /** + * The action for the group to take. This parameter can be either CONTINUE or ABANDON. + */ + LifecycleActionResult: LifecycleActionResult; + /** + * The ID of the instance. + */ + InstanceId?: XmlStringMaxLen19; + } + export type Cooldown = number; + export interface CreateAutoScalingGroupType { + /** + * The name of the Auto Scaling group. This name must be unique per Region per account. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The name of the launch configuration to use to launch instances. Conditional: You must specify either a launch template (LaunchTemplate or MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName or InstanceId). + */ + LaunchConfigurationName?: XmlStringMaxLen255; + /** + * Parameters used to specify the launch template and version to use to launch instances. Conditional: You must specify either a launch template (LaunchTemplate or MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName or InstanceId). The launch template that is specified must be configured for use with an Auto Scaling group. For more information, see Creating a launch template for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + LaunchTemplate?: LaunchTemplateSpecification; + /** + * An embedded object that specifies a mixed instances policy. The required properties must be specified. If optional properties are unspecified, their default values are used. The policy includes properties that not only define the distribution of On-Demand Instances and Spot Instances, the maximum price to pay for Spot Instances, and how the Auto Scaling group allocates instance types to fulfill On-Demand and Spot capacities, but also the properties that specify the instance configuration information—the launch template and instance types. The policy can also include a weight for each instance type and different launch templates for individual instance types. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide. + */ + MixedInstancesPolicy?: MixedInstancesPolicy; + /** + * The ID of the instance used to base the launch configuration on. If specified, Amazon EC2 Auto Scaling uses the configuration values from the specified instance to create a new launch configuration. To get the instance ID, use the Amazon EC2 DescribeInstances API operation. For more information, see Creating an Auto Scaling group using an EC2 instance in the Amazon EC2 Auto Scaling User Guide. + */ + InstanceId?: XmlStringMaxLen19; + /** + * The minimum size of the group. + */ + MinSize: AutoScalingGroupMinSize; + /** + * The maximum size of the group. With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above MaxSize to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above MaxSize by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group). + */ + MaxSize: AutoScalingGroupMaxSize; + /** + * The desired capacity is the initial capacity of the Auto Scaling group at the time of its creation and the capacity it attempts to maintain. It can scale beyond this capacity if you configure auto scaling. This number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group. If you do not specify a desired capacity, the default is the minimum size of the group. + */ + DesiredCapacity?: AutoScalingGroupDesiredCapacity; + /** + * The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default value is 300. This setting applies when using simple scaling policies, but not when using other scaling policies or scheduled scaling. For more information, see Scaling cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + DefaultCooldown?: Cooldown; + /** + * A list of Availability Zones where instances in the Auto Scaling group can be created. This parameter is optional if you specify one or more subnets for VPCZoneIdentifier. Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into EC2-Classic. + */ + AvailabilityZones?: AvailabilityZones; + /** + * A list of Classic Load Balancers associated with this Auto Scaling group. For Application Load Balancers, Network Load Balancers, and Gateway Load Balancers, specify the TargetGroupARNs property instead. + */ + LoadBalancerNames?: LoadBalancerNames; + /** + * The Amazon Resource Names (ARN) of the target groups to associate with the Auto Scaling group. Instances are registered as targets in a target group, and traffic is routed to the target group. For more information, see Elastic Load Balancing and Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + TargetGroupARNs?: TargetGroupARNs; + /** + * The service to use for the health checks. The valid values are EC2 (default) and ELB. If you configure an Auto Scaling group to use load balancer (ELB) health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide. + */ + HealthCheckType?: XmlStringMaxLen32; + /** + * The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service. During this time, any health check failures for the instance are ignored. The default value is 0. For more information, see Health check grace period in the Amazon EC2 Auto Scaling User Guide. Conditional: Required if you are adding an ELB health check. + */ + HealthCheckGracePeriod?: HealthCheckGracePeriod; + /** + * The name of an existing placement group into which to launch your instances, if any. A placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a placement group. For more information, see Placement Groups in the Amazon EC2 User Guide for Linux Instances. + */ + PlacementGroup?: XmlStringMaxLen255; + /** + * A comma-separated list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you specify for this parameter must reside in those Availability Zones. Conditional: If your account supports EC2-Classic and VPC, this parameter is required to launch instances into a VPC. + */ + VPCZoneIdentifier?: XmlStringMaxLen2047; + /** + * A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide. + */ + TerminationPolicies?: TerminationPolicies; + /** + * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Instance scale-in protection in the Amazon EC2 Auto Scaling User Guide. + */ + NewInstancesProtectedFromScaleIn?: InstanceProtected; + /** + * Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see Amazon EC2 Auto Scaling Capacity Rebalancing in the Amazon EC2 Auto Scaling User Guide. + */ + CapacityRebalance?: CapacityRebalanceEnabled; + /** + * One or more lifecycle hooks for the group, which specify actions to perform when Amazon EC2 Auto Scaling launches or terminates instances. + */ + LifecycleHookSpecificationList?: LifecycleHookSpecifications; + /** + * One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see Tagging Auto Scaling groups and instances in the Amazon EC2 Auto Scaling User Guide. + */ + Tags?: Tags; + /** + * The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named AWSServiceRoleForAutoScaling, which it creates if it does not exist. For more information, see Service-linked roles in the Amazon EC2 Auto Scaling User Guide. + */ + ServiceLinkedRoleARN?: ResourceName; + /** + * The maximum amount of time, in seconds, that an instance can be in service. The default is null. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds (1 day). For more information, see Replacing Auto Scaling instances based on maximum instance lifetime in the Amazon EC2 Auto Scaling User Guide. + */ + MaxInstanceLifetime?: MaxInstanceLifetime; + } + export interface CreateLaunchConfigurationType { + /** + * The name of the launch configuration. This name must be unique per Region per account. + */ + LaunchConfigurationName: XmlStringMaxLen255; + /** + * The ID of the Amazon Machine Image (AMI) that was assigned during registration. For more information, see Finding an AMI in the Amazon EC2 User Guide for Linux Instances. If you do not specify InstanceId, you must specify ImageId. + */ + ImageId?: XmlStringMaxLen255; + /** + * The name of the key pair. For more information, see Amazon EC2 Key Pairs in the Amazon EC2 User Guide for Linux Instances. + */ + KeyName?: XmlStringMaxLen255; + /** + * A list that contains the security groups to assign to the instances in the Auto Scaling group. [EC2-VPC] Specify the security group IDs. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. [EC2-Classic] Specify either the security group names or the security group IDs. For more information, see Amazon EC2 Security Groups in the Amazon EC2 User Guide for Linux Instances. + */ + SecurityGroups?: SecurityGroups; + /** + * The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic instances to a VPC in the Amazon EC2 Auto Scaling User Guide. This parameter can only be used if you are launching EC2-Classic instances. + */ + ClassicLinkVPCId?: XmlStringMaxLen255; + /** + * The IDs of one or more security groups for the specified ClassicLink-enabled VPC. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic instances to a VPC in the Amazon EC2 Auto Scaling User Guide. If you specify the ClassicLinkVPCId parameter, you must specify this parameter. + */ + ClassicLinkVPCSecurityGroups?: ClassicLinkVPCSecurityGroups; + /** + * The user data to make available to the launched EC2 instances. For more information, see Instance metadata and user data (Linux) and Instance metadata and user data (Windows). If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. User data is limited to 16 KB. + */ + UserData?: XmlStringUserData; + /** + * The ID of the instance to use to create the launch configuration. The new launch configuration derives attributes from the instance, except for the block device mapping. To create a launch configuration with a block device mapping or override any other instance attributes, specify them as part of the same request. For more information, see Creating a launch configuration using an EC2 instance in the Amazon EC2 Auto Scaling User Guide. If you do not specify InstanceId, you must specify both ImageId and InstanceType. + */ + InstanceId?: XmlStringMaxLen19; + /** + * Specifies the instance type of the EC2 instance. For information about available instance types, see Available Instance Types in the Amazon EC2 User Guide for Linux Instances. If you do not specify InstanceId, you must specify InstanceType. + */ + InstanceType?: XmlStringMaxLen255; + /** + * The ID of the kernel associated with the AMI. + */ + KernelId?: XmlStringMaxLen255; + /** + * The ID of the RAM disk to select. + */ + RamdiskId?: XmlStringMaxLen255; + /** + * A block device mapping, which specifies the block devices for the instance. You can specify virtual devices and EBS volumes. For more information, see Block Device Mapping in the Amazon EC2 User Guide for Linux Instances. + */ + BlockDeviceMappings?: BlockDeviceMappings; + /** + * Controls whether instances in this group are launched with detailed (true) or basic (false) monitoring. The default value is true (enabled). When detailed monitoring is enabled, Amazon CloudWatch generates metrics every minute and your account is charged a fee. When you disable detailed monitoring, CloudWatch generates metrics every 5 minutes. For more information, see Configure Monitoring for Auto Scaling Instances in the Amazon EC2 Auto Scaling User Guide. + */ + InstanceMonitoring?: InstanceMonitoring; + /** + * The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see Requesting Spot Instances in the Amazon EC2 Auto Scaling User Guide. When you change your maximum price by creating a new launch configuration, running instances will continue to run as long as the maximum price for those running instances is higher than the current Spot price. + */ + SpotPrice?: SpotPrice; + /** + * The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role. For more information, see IAM role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto Scaling User Guide. + */ + IamInstanceProfile?: XmlStringMaxLen1600; + /** + * Specifies whether the launch configuration is optimized for EBS I/O (true) or not (false). The optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal I/O performance. This optimization is not available with all instance types. Additional fees are incurred when you enable EBS optimization for an instance type that is not EBS-optimized by default. For more information, see Amazon EBS-Optimized Instances in the Amazon EC2 User Guide for Linux Instances. The default value is false. + */ + EbsOptimized?: EbsOptimized; + /** + * For Auto Scaling groups that are running in a virtual private cloud (VPC), specifies whether to assign a public IP address to the group's instances. If you specify true, each instance in the Auto Scaling group receives a unique public IP address. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide. If you specify this parameter, you must specify at least one subnet for VPCZoneIdentifier when you create your group. If the instance is launched into a default subnet, the default is to assign a public IP address, unless you disabled the option to assign a public IP address on the subnet. If the instance is launched into a nondefault subnet, the default is not to assign a public IP address, unless you enabled the option to assign a public IP address on the subnet. + */ + AssociatePublicIpAddress?: AssociatePublicIpAddress; + /** + * The tenancy of the instance. An instance with dedicated tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC. To launch dedicated instances into a shared tenancy VPC (a VPC with the instance placement tenancy attribute set to default), you must set the value of this parameter to dedicated. If you specify PlacementTenancy, you must specify at least one subnet for VPCZoneIdentifier when you create your group. For more information, see Configuring instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. Valid Values: default | dedicated + */ + PlacementTenancy?: XmlStringMaxLen64; + /** + * The metadata options for the instances. For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide. + */ + MetadataOptions?: InstanceMetadataOptions; + } + export interface CreateOrUpdateTagsType { + /** + * One or more tags. + */ + Tags: Tags; + } + export interface CustomizedMetricSpecification { + /** + * The name of the metric. + */ + MetricName: MetricName; + /** + * The namespace of the metric. + */ + Namespace: MetricNamespace; + /** + * The dimensions of the metric. Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. + */ + Dimensions?: MetricDimensions; + /** + * The statistic of the metric. + */ + Statistic: MetricStatistic; + /** + * The unit of the metric. + */ + Unit?: MetricUnit; + } + export interface DeleteAutoScalingGroupType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Specifies that the group is to be deleted along with all instances associated with the group, without waiting for all instances to be terminated. This parameter also deletes any outstanding lifecycle actions associated with the group. + */ + ForceDelete?: ForceDelete; + } + export interface DeleteLifecycleHookAnswer { + } + export interface DeleteLifecycleHookType { + /** + * The name of the lifecycle hook. + */ + LifecycleHookName: AsciiStringMaxLen255; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + } + export interface DeleteNotificationConfigurationType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic. + */ + TopicARN: XmlStringMaxLen255; + } + export interface DeletePolicyType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The name or Amazon Resource Name (ARN) of the policy. + */ + PolicyName: ResourceName; + } + export interface DeleteScheduledActionType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The name of the action to delete. + */ + ScheduledActionName: XmlStringMaxLen255; + } + export interface DeleteTagsType { + /** + * One or more tags. + */ + Tags: Tags; + } + export interface DeleteWarmPoolAnswer { + } + export interface DeleteWarmPoolType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Specifies that the warm pool is to be deleted along with all of its associated instances, without waiting for all instances to be terminated. This parameter also deletes any outstanding lifecycle actions associated with the warm pool instances. + */ + ForceDelete?: ForceDelete; + } + export interface DescribeAccountLimitsAnswer { + /** + * The maximum number of groups allowed for your account. The default is 200 groups per Region. + */ + MaxNumberOfAutoScalingGroups?: MaxNumberOfAutoScalingGroups; + /** + * The maximum number of launch configurations allowed for your account. The default is 200 launch configurations per Region. + */ + MaxNumberOfLaunchConfigurations?: MaxNumberOfLaunchConfigurations; + /** + * The current number of groups for your account. + */ + NumberOfAutoScalingGroups?: NumberOfAutoScalingGroups; + /** + * The current number of launch configurations for your account. + */ + NumberOfLaunchConfigurations?: NumberOfLaunchConfigurations; + } + export interface DescribeAdjustmentTypesAnswer { + /** + * The policy adjustment types. + */ + AdjustmentTypes?: AdjustmentTypes; + } + export interface DescribeAutoScalingInstancesType { + /** + * The IDs of the instances. If you omit this parameter, all Auto Scaling instances are described. If you specify an ID that does not exist, it is ignored with no error. Array Members: Maximum number of 50 items. + */ + InstanceIds?: InstanceIds; + /** + * The maximum number of items to return with this call. The default value is 50 and the maximum value is 50. + */ + MaxRecords?: MaxRecords; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + } + export interface DescribeAutoScalingNotificationTypesAnswer { + /** + * The notification types. + */ + AutoScalingNotificationTypes?: AutoScalingNotificationTypes; + } + export interface DescribeInstanceRefreshesAnswer { + /** + * The instance refreshes for the specified group. + */ + InstanceRefreshes?: InstanceRefreshes; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface DescribeInstanceRefreshesType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * One or more instance refresh IDs. + */ + InstanceRefreshIds?: InstanceRefreshIds; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 50 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export interface DescribeLifecycleHookTypesAnswer { + /** + * The lifecycle hook types. + */ + LifecycleHookTypes?: AutoScalingNotificationTypes; + } + export interface DescribeLifecycleHooksAnswer { + /** + * The lifecycle hooks for the specified group. + */ + LifecycleHooks?: LifecycleHooks; + } + export interface DescribeLifecycleHooksType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The names of one or more lifecycle hooks. If you omit this parameter, all lifecycle hooks are described. + */ + LifecycleHookNames?: LifecycleHookNames; + } + export interface DescribeLoadBalancerTargetGroupsRequest { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 100 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export interface DescribeLoadBalancerTargetGroupsResponse { + /** + * Information about the target groups. + */ + LoadBalancerTargetGroups?: LoadBalancerTargetGroupStates; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface DescribeLoadBalancersRequest { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 100 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export interface DescribeLoadBalancersResponse { + /** + * The load balancers. + */ + LoadBalancers?: LoadBalancerStates; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface DescribeMetricCollectionTypesAnswer { + /** + * One or more metrics. + */ + Metrics?: MetricCollectionTypes; + /** + * The granularities for the metrics. + */ + Granularities?: MetricGranularityTypes; + } + export interface DescribeNotificationConfigurationsAnswer { + /** + * The notification configurations. + */ + NotificationConfigurations: NotificationConfigurations; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface DescribeNotificationConfigurationsType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupNames?: AutoScalingGroupNames; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 50 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export interface DescribePoliciesType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The names of one or more policies. If you omit this parameter, all policies are described. If a group name is provided, the results are limited to that group. If you specify an unknown policy name, it is ignored with no error. Array Members: Maximum number of 50 items. + */ + PolicyNames?: PolicyNames; + /** + * One or more policy types. The valid values are SimpleScaling, StepScaling, TargetTrackingScaling, and PredictiveScaling. + */ + PolicyTypes?: PolicyTypes; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to be returned with each call. The default value is 50 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export interface DescribeScalingActivitiesType { + /** + * The activity IDs of the desired scaling activities. If you omit this parameter, all activities for the past six weeks are described. If unknown activities are requested, they are ignored with no error. If you specify an Auto Scaling group, the results are limited to that group. Array Members: Maximum number of 50 IDs. + */ + ActivityIds?: ActivityIds; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * Indicates whether to include scaling activity from deleted Auto Scaling groups. + */ + IncludeDeletedGroups?: IncludeDeletedGroups; + /** + * The maximum number of items to return with this call. The default value is 100 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + } + export interface DescribeScheduledActionsType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The names of one or more scheduled actions. If you omit this parameter, all scheduled actions are described. If you specify an unknown scheduled action, it is ignored with no error. Array Members: Maximum number of 50 actions. + */ + ScheduledActionNames?: ScheduledActionNames; + /** + * The earliest scheduled start time to return. If scheduled action names are provided, this parameter is ignored. + */ + StartTime?: TimestampType; + /** + * The latest scheduled start time to return. If scheduled action names are provided, this parameter is ignored. + */ + EndTime?: TimestampType; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 50 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export interface DescribeTagsType { + /** + * One or more filters to scope the tags to return. The maximum number of filters per filter type (for example, auto-scaling-group) is 1000. + */ + Filters?: Filters; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 50 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export interface DescribeTerminationPolicyTypesAnswer { + /** + * The termination policies supported by Amazon EC2 Auto Scaling: OldestInstance, OldestLaunchConfiguration, NewestInstance, ClosestToNextInstanceHour, Default, OldestLaunchTemplate, and AllocationStrategy. + */ + TerminationPolicyTypes?: TerminationPolicies; + } + export interface DescribeWarmPoolAnswer { + /** + * The warm pool configuration details. + */ + WarmPoolConfiguration?: WarmPoolConfiguration; + /** + * The instances that are currently in the warm pool. + */ + Instances?: Instances; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + } + export interface DescribeWarmPoolType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The maximum number of instances to return with this call. The maximum value is 50. + */ + MaxRecords?: MaxRecords; + /** + * The token for the next set of instances to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + } + export interface DetachInstancesAnswer { + /** + * The activities related to detaching the instances from the Auto Scaling group. + */ + Activities?: Activities; + } + export interface DetachInstancesQuery { + /** + * The IDs of the instances. You can specify up to 20 instances. + */ + InstanceIds?: InstanceIds; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Indicates whether the Auto Scaling group decrements the desired capacity value by the number of instances detached. + */ + ShouldDecrementDesiredCapacity: ShouldDecrementDesiredCapacity; + } + export interface DetachLoadBalancerTargetGroupsResultType { + } + export interface DetachLoadBalancerTargetGroupsType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The Amazon Resource Names (ARN) of the target groups. You can specify up to 10 target groups. + */ + TargetGroupARNs: TargetGroupARNs; + } + export interface DetachLoadBalancersResultType { + } + export interface DetachLoadBalancersType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The names of the load balancers. You can specify up to 10 load balancers. + */ + LoadBalancerNames: LoadBalancerNames; + } + export interface DisableMetricsCollectionQuery { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Specifies one or more of the following metrics: GroupMinSize GroupMaxSize GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances GroupInServiceCapacity GroupPendingCapacity GroupStandbyCapacity GroupTerminatingCapacity GroupTotalCapacity WarmPoolDesiredCapacity WarmPoolWarmedCapacity WarmPoolPendingCapacity WarmPoolTerminatingCapacity WarmPoolTotalCapacity GroupAndWarmPoolDesiredCapacity GroupAndWarmPoolTotalCapacity If you omit this parameter, all metrics are disabled. + */ + Metrics?: Metrics; + } + export type DisableScaleIn = boolean; + export interface Ebs { + /** + * The snapshot ID of the volume to use. You must specify either a VolumeSize or a SnapshotId. + */ + SnapshotId?: XmlStringMaxLen255; + /** + * The volume size, in GiBs. The following are the supported volumes sizes for each volume type: gp2 and gp3: 1-16,384 io1: 4-16,384 st1 and sc1: 125-16,384 standard: 1-1,024 You must specify either a SnapshotId or a VolumeSize. If you specify both SnapshotId and VolumeSize, the volume size must be equal or greater than the size of the snapshot. + */ + VolumeSize?: BlockDeviceEbsVolumeSize; + /** + * The volume type. For more information, see Amazon EBS Volume Types in the Amazon EC2 User Guide for Linux Instances. Valid Values: standard | io1 | gp2 | st1 | sc1 | gp3 + */ + VolumeType?: BlockDeviceEbsVolumeType; + /** + * Indicates whether the volume is deleted on instance termination. For Amazon EC2 Auto Scaling, the default value is true. + */ + DeleteOnTermination?: BlockDeviceEbsDeleteOnTermination; + /** + * The number of input/output (I/O) operations per second (IOPS) to provision for the volume. For gp3 and io1 volumes, this represents the number of IOPS that are provisioned for the volume. For gp2 volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. The following are the supported values for each volume type: gp3: 3,000-16,000 IOPS io1: 100-64,000 IOPS For io1 volumes, we guarantee 64,000 IOPS only for Instances built on the Nitro System. Other instance families guarantee performance up to 32,000 IOPS. Iops is supported when the volume type is gp3 or io1 and required only when the volume type is io1. (Not used with standard, gp2, st1, or sc1 volumes.) + */ + Iops?: BlockDeviceEbsIops; + /** + * Specifies whether the volume should be encrypted. Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption. For more information, see Supported Instance Types. If your AMI uses encrypted volumes, you can also only launch it on supported instance types. If you are creating a volume from a snapshot, you cannot specify an encryption value. Volumes that are created from encrypted snapshots are automatically encrypted, and volumes that are created from unencrypted snapshots are automatically unencrypted. By default, encrypted snapshots use the AWS managed CMK that is used for EBS encryption, but you can specify a custom CMK when you create the snapshot. The ability to encrypt a snapshot during copying also allows you to apply a new CMK to an already-encrypted snapshot. Volumes restored from the resulting copy are only accessible using the new CMK. Enabling encryption by default results in all EBS volumes being encrypted with the AWS managed CMK or a customer managed CMK, whether or not the snapshot was encrypted. For more information, see Using Encryption with EBS-Backed AMIs in the Amazon EC2 User Guide for Linux Instances and Required CMK key policy for use with encrypted volumes in the Amazon EC2 Auto Scaling User Guide. + */ + Encrypted?: BlockDeviceEbsEncrypted; + /** + * The throughput (MiBps) to provision for a gp3 volume. + */ + Throughput?: BlockDeviceEbsThroughput; + } + export type EbsOptimized = boolean; + export interface EnableMetricsCollectionQuery { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Specifies which group-level metrics to start collecting. You can specify one or more of the following metrics: GroupMinSize GroupMaxSize GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances The instance weighting feature supports the following additional metrics: GroupInServiceCapacity GroupPendingCapacity GroupStandbyCapacity GroupTerminatingCapacity GroupTotalCapacity The warm pools feature supports the following additional metrics: WarmPoolDesiredCapacity WarmPoolWarmedCapacity WarmPoolPendingCapacity WarmPoolTerminatingCapacity WarmPoolTotalCapacity GroupAndWarmPoolDesiredCapacity GroupAndWarmPoolTotalCapacity If you omit this parameter, all metrics are enabled. + */ + Metrics?: Metrics; + /** + * The granularity to associate with the metrics to collect. The only valid value is 1Minute. + */ + Granularity: XmlStringMaxLen255; + } + export interface EnabledMetric { + /** + * One of the following metrics: GroupMinSize GroupMaxSize GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances GroupInServiceCapacity GroupPendingCapacity GroupStandbyCapacity GroupTerminatingCapacity GroupTotalCapacity WarmPoolDesiredCapacity WarmPoolWarmedCapacity WarmPoolPendingCapacity WarmPoolTerminatingCapacity WarmPoolTotalCapacity GroupAndWarmPoolDesiredCapacity GroupAndWarmPoolTotalCapacity + */ + Metric?: XmlStringMaxLen255; + /** + * The granularity of the metric. The only valid value is 1Minute. + */ + Granularity?: XmlStringMaxLen255; + } + export type EnabledMetrics = EnabledMetric[]; + export interface EnterStandbyAnswer { + /** + * The activities related to moving instances into Standby mode. + */ + Activities?: Activities; + } + export interface EnterStandbyQuery { + /** + * The IDs of the instances. You can specify up to 20 instances. + */ + InstanceIds?: InstanceIds; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Indicates whether to decrement the desired capacity of the Auto Scaling group by the number of instances moved to Standby mode. + */ + ShouldDecrementDesiredCapacity: ShouldDecrementDesiredCapacity; + } + export type EstimatedInstanceWarmup = number; + export interface ExecutePolicyType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The name or ARN of the policy. + */ + PolicyName: ResourceName; + /** + * Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to complete before executing the policy. Valid only if the policy type is SimpleScaling. For more information, see Scaling cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + HonorCooldown?: HonorCooldown; + /** + * The metric value to compare to BreachThreshold. This enables you to execute a policy of type StepScaling and determine which step adjustment to use. For example, if the breach threshold is 50 and you want to use a step adjustment with a lower bound of 0 and an upper bound of 10, you can set the metric value to 59. If you specify a metric value that doesn't correspond to a step adjustment for the policy, the call returns an error. Required if the policy type is StepScaling and not supported otherwise. + */ + MetricValue?: MetricScale; + /** + * The breach threshold for the alarm. Required if the policy type is StepScaling and not supported otherwise. + */ + BreachThreshold?: MetricScale; + } + export interface ExitStandbyAnswer { + /** + * The activities related to moving instances out of Standby mode. + */ + Activities?: Activities; + } + export interface ExitStandbyQuery { + /** + * The IDs of the instances. You can specify up to 20 instances. + */ + InstanceIds?: InstanceIds; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + } + export interface FailedScheduledUpdateGroupActionRequest { + /** + * The name of the scheduled action. + */ + ScheduledActionName: XmlStringMaxLen255; + /** + * The error code. + */ + ErrorCode?: XmlStringMaxLen64; + /** + * The error message accompanying the error code. + */ + ErrorMessage?: XmlString; + } + export type FailedScheduledUpdateGroupActionRequests = FailedScheduledUpdateGroupActionRequest[]; + export interface Filter { + /** + * The name of the filter. The valid values are: auto-scaling-group, key, value, and propagate-at-launch. + */ + Name?: XmlString; + /** + * One or more filter values. Filter values are case-sensitive. + */ + Values?: Values; + } + export type Filters = Filter[]; + export type ForceDelete = boolean; + export interface GetPredictiveScalingForecastAnswer { + /** + * The load forecast. + */ + LoadForecast: LoadForecasts; + /** + * The capacity forecast. + */ + CapacityForecast: CapacityForecast; + /** + * The time the forecast was made. + */ + UpdateTime: TimestampType; + } + export interface GetPredictiveScalingForecastType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The name of the policy. + */ + PolicyName: XmlStringMaxLen255; + /** + * The inclusive start time of the time range for the forecast data to get. At most, the date and time can be one year before the current date and time. + */ + StartTime: TimestampType; + /** + * The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is 30 days. Although this parameter can accept a date and time that is more than two days in the future, the availability of forecast data has limits. Amazon EC2 Auto Scaling only issues forecasts for periods of two days in advance. + */ + EndTime: TimestampType; + } + export type GlobalTimeout = number; + export type HealthCheckGracePeriod = number; + export type HeartbeatTimeout = number; + export type HonorCooldown = boolean; + export type IncludeDeletedGroups = boolean; + export interface Instance { + /** + * The ID of the instance. + */ + InstanceId: XmlStringMaxLen19; + /** + * The instance type of the EC2 instance. + */ + InstanceType?: XmlStringMaxLen255; + /** + * The Availability Zone in which the instance is running. + */ + AvailabilityZone: XmlStringMaxLen255; + /** + * A description of the current lifecycle state. The Quarantined state is not used. For information about lifecycle states, see Instance lifecycle in the Amazon EC2 Auto Scaling User Guide. + */ + LifecycleState: LifecycleState; + /** + * The last reported health status of the instance. "Healthy" means that the instance is healthy and should remain in service. "Unhealthy" means that the instance is unhealthy and that Amazon EC2 Auto Scaling should terminate and replace it. + */ + HealthStatus: XmlStringMaxLen32; + /** + * The launch configuration associated with the instance. + */ + LaunchConfigurationName?: XmlStringMaxLen255; + /** + * The launch template for the instance. + */ + LaunchTemplate?: LaunchTemplateSpecification; + /** + * Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling in. + */ + ProtectedFromScaleIn: InstanceProtected; + /** + * The number of capacity units contributed by the instance based on its instance type. Valid Range: Minimum value of 1. Maximum value of 999. + */ + WeightedCapacity?: XmlStringMaxLen32; + } + export type InstanceIds = XmlStringMaxLen19[]; + export type InstanceMetadataEndpointState = "disabled"|"enabled"|string; + export type InstanceMetadataHttpPutResponseHopLimit = number; + export type InstanceMetadataHttpTokensState = "optional"|"required"|string; + export interface InstanceMetadataOptions { + /** + * The state of token usage for your instance metadata requests. If the parameter is not specified in the request, the default state is optional. If the state is optional, you can choose to retrieve instance metadata with or without a signed token header on your request. If you retrieve the IAM role credentials without a token, the version 1.0 role credentials are returned. If you retrieve the IAM role credentials using a valid signed token, the version 2.0 role credentials are returned. If the state is required, you must send a signed token header with any instance metadata retrieval requests. In this state, retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available. + */ + HttpTokens?: InstanceMetadataHttpTokensState; + /** + * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Default: 1 + */ + HttpPutResponseHopLimit?: InstanceMetadataHttpPutResponseHopLimit; + /** + * This parameter enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled. If you specify a value of disabled, you will not be able to access your instance metadata. + */ + HttpEndpoint?: InstanceMetadataEndpointState; + } + export interface InstanceMonitoring { + /** + * If true, detailed monitoring is enabled. Otherwise, basic monitoring is enabled. + */ + Enabled?: MonitoringEnabled; + } + export type InstanceProtected = boolean; + export interface InstanceRefresh { + /** + * The instance refresh ID. + */ + InstanceRefreshId?: XmlStringMaxLen255; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The current status for the instance refresh operation: Pending - The request was created, but the operation has not started. InProgress - The operation is in progress. Successful - The operation completed successfully. Failed - The operation failed to complete. You can troubleshoot using the status reason and the scaling activities. Cancelling - An ongoing operation is being cancelled. Cancellation does not roll back any replacements that have already been completed, but it prevents new replacements from being started. Cancelled - The operation is cancelled. + */ + Status?: InstanceRefreshStatus; + /** + * Provides more details about the current status of the instance refresh. + */ + StatusReason?: XmlStringMaxLen1023; + /** + * The date and time at which the instance refresh began. + */ + StartTime?: TimestampType; + /** + * The date and time at which the instance refresh ended. + */ + EndTime?: TimestampType; + /** + * The percentage of the instance refresh that is complete. For each instance replacement, Amazon EC2 Auto Scaling tracks the instance's health status and warm-up time. When the instance's health status changes to healthy and the specified warm-up time passes, the instance is considered updated and is added to the percentage complete. + */ + PercentageComplete?: IntPercent; + /** + * The number of instances remaining to update before the instance refresh is complete. + */ + InstancesToUpdate?: InstancesToUpdate; + /** + * Additional progress details for an Auto Scaling group that has a warm pool. + */ + ProgressDetails?: InstanceRefreshProgressDetails; + } + export type InstanceRefreshIds = XmlStringMaxLen255[]; + export interface InstanceRefreshLivePoolProgress { + /** + * The percentage of instances in the Auto Scaling group that have been replaced. For each instance replacement, Amazon EC2 Auto Scaling tracks the instance's health status and warm-up time. When the instance's health status changes to healthy and the specified warm-up time passes, the instance is considered updated and is added to the percentage complete. + */ + PercentageComplete?: IntPercent; + /** + * The number of instances remaining to update. + */ + InstancesToUpdate?: InstancesToUpdate; + } + export interface InstanceRefreshProgressDetails { + /** + * Indicates the progress of an instance refresh on instances that are in the Auto Scaling group. + */ + LivePoolProgress?: InstanceRefreshLivePoolProgress; + /** + * Indicates the progress of an instance refresh on instances that are in the warm pool. + */ + WarmPoolProgress?: InstanceRefreshWarmPoolProgress; + } + export type InstanceRefreshStatus = "Pending"|"InProgress"|"Successful"|"Failed"|"Cancelling"|"Cancelled"|string; + export interface InstanceRefreshWarmPoolProgress { + /** + * The percentage of instances in the warm pool that have been replaced. For each instance replacement, Amazon EC2 Auto Scaling tracks the instance's health status and warm-up time. When the instance's health status changes to healthy and the specified warm-up time passes, the instance is considered updated and is added to the percentage complete. + */ + PercentageComplete?: IntPercent; + /** + * The number of instances remaining to update. + */ + InstancesToUpdate?: InstancesToUpdate; + } + export type InstanceRefreshes = InstanceRefresh[]; + export type Instances = Instance[]; + export interface InstancesDistribution { + /** + * Indicates how to allocate instance types to fulfill On-Demand capacity. The only valid value is prioritized, which is also the default value. This strategy uses the order of instance types in the LaunchTemplateOverrides to define the launch priority of each instance type. The first instance type in the array is prioritized higher than the last. If all your On-Demand capacity cannot be fulfilled using your highest priority instance, then the Auto Scaling groups launches the remaining capacity using the second priority instance type, and so on. + */ + OnDemandAllocationStrategy?: XmlString; + /** + * The minimum amount of the Auto Scaling group's capacity that must be fulfilled by On-Demand Instances. This base portion is provisioned first as your group scales. Defaults to 0 if not specified. If you specify weights for the instance types in the overrides, set the value of OnDemandBaseCapacity in terms of the number of capacity units, and not the number of instances. + */ + OnDemandBaseCapacity?: OnDemandBaseCapacity; + /** + * Controls the percentages of On-Demand Instances and Spot Instances for your additional capacity beyond OnDemandBaseCapacity. Expressed as a number (for example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). Defaults to 100 if not specified. If set to 100, only On-Demand Instances are provisioned. + */ + OnDemandPercentageAboveBaseCapacity?: OnDemandPercentageAboveBaseCapacity; + /** + * Indicates how to allocate instances across Spot Instance pools. If the allocation strategy is lowest-price, the Auto Scaling group launches instances using the Spot pools with the lowest price, and evenly allocates your instances across the number of Spot pools that you specify. Defaults to lowest-price if not specified. If the allocation strategy is capacity-optimized (recommended), the Auto Scaling group launches instances using Spot pools that are optimally chosen based on the available Spot capacity. Alternatively, you can use capacity-optimized-prioritized and set the order of instance types in the list of launch template overrides from highest to lowest priority (from first to last in the list). Amazon EC2 Auto Scaling honors the instance type priorities on a best-effort basis but optimizes for capacity first. + */ + SpotAllocationStrategy?: XmlString; + /** + * The number of Spot Instance pools across which to allocate your Spot Instances. The Spot pools are determined from the different instance types in the overrides. Valid only when the Spot allocation strategy is lowest-price. Value must be in the range of 1 to 20. Defaults to 2 if not specified. + */ + SpotInstancePools?: SpotInstancePools; + /** + * The maximum price per unit hour that you are willing to pay for a Spot Instance. If you leave the value at its default (empty), Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot price. To remove a value that you previously set, include the property but specify an empty string ("") for the value. + */ + SpotMaxPrice?: MixedInstanceSpotPrice; + } + export type InstancesToUpdate = number; + export type IntPercent = number; + export interface LaunchConfiguration { + /** + * The name of the launch configuration. + */ + LaunchConfigurationName: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the launch configuration. + */ + LaunchConfigurationARN?: ResourceName; + /** + * The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. For more information, see Finding an AMI in the Amazon EC2 User Guide for Linux Instances. + */ + ImageId: XmlStringMaxLen255; + /** + * The name of the key pair. For more information, see Amazon EC2 Key Pairs in the Amazon EC2 User Guide for Linux Instances. + */ + KeyName?: XmlStringMaxLen255; + /** + * A list that contains the security groups to assign to the instances in the Auto Scaling group. For more information, see Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide. + */ + SecurityGroups?: SecurityGroups; + /** + * The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic instances to a VPC in the Amazon EC2 Auto Scaling User Guide. + */ + ClassicLinkVPCId?: XmlStringMaxLen255; + /** + * The IDs of one or more security groups for the VPC specified in ClassicLinkVPCId. For more information, see ClassicLink in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic instances to a VPC in the Amazon EC2 Auto Scaling User Guide. + */ + ClassicLinkVPCSecurityGroups?: ClassicLinkVPCSecurityGroups; + /** + * The user data to make available to the launched EC2 instances. For more information, see Instance metadata and user data (Linux) and Instance metadata and user data (Windows). If you are using a command line tool, base64-encoding is performed for you, and you can load the text from a file. Otherwise, you must provide base64-encoded text. User data is limited to 16 KB. + */ + UserData?: XmlStringUserData; + /** + * The instance type for the instances. For information about available instance types, see Available Instance Types in the Amazon EC2 User Guide for Linux Instances. + */ + InstanceType: XmlStringMaxLen255; + /** + * The ID of the kernel associated with the AMI. + */ + KernelId?: XmlStringMaxLen255; + /** + * The ID of the RAM disk associated with the AMI. + */ + RamdiskId?: XmlStringMaxLen255; + /** + * A block device mapping, which specifies the block devices for the instance. For more information, see Block Device Mapping in the Amazon EC2 User Guide for Linux Instances. + */ + BlockDeviceMappings?: BlockDeviceMappings; + /** + * Controls whether instances in this group are launched with detailed (true) or basic (false) monitoring. For more information, see Configure Monitoring for Auto Scaling Instances in the Amazon EC2 Auto Scaling User Guide. + */ + InstanceMonitoring?: InstanceMonitoring; + /** + * The maximum hourly price to be paid for any Spot Instance launched to fulfill the request. Spot Instances are launched when the price you specify exceeds the current Spot price. For more information, see Requesting Spot Instances in the Amazon EC2 Auto Scaling User Guide. + */ + SpotPrice?: SpotPrice; + /** + * The name or the Amazon Resource Name (ARN) of the instance profile associated with the IAM role for the instance. The instance profile contains the IAM role. For more information, see IAM role for applications that run on Amazon EC2 instances in the Amazon EC2 Auto Scaling User Guide. + */ + IamInstanceProfile?: XmlStringMaxLen1600; + /** + * The creation date and time for the launch configuration. + */ + CreatedTime: TimestampType; + /** + * Specifies whether the launch configuration is optimized for EBS I/O (true) or not (false). For more information, see Amazon EBS-Optimized Instances in the Amazon EC2 User Guide for Linux Instances. + */ + EbsOptimized?: EbsOptimized; + /** + * For Auto Scaling groups that are running in a VPC, specifies whether to assign a public IP address to the group's instances. For more information, see Launching Auto Scaling instances in a VPC in the Amazon EC2 Auto Scaling User Guide. + */ + AssociatePublicIpAddress?: AssociatePublicIpAddress; + /** + * The tenancy of the instance, either default or dedicated. An instance with dedicated tenancy runs on isolated, single-tenant hardware and can only be launched into a VPC. For more information, see Configuring instance tenancy with Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + PlacementTenancy?: XmlStringMaxLen64; + /** + * The metadata options for the instances. For more information, see Configuring the Instance Metadata Options in the Amazon EC2 Auto Scaling User Guide. + */ + MetadataOptions?: InstanceMetadataOptions; + } + export interface LaunchConfigurationNameType { + /** + * The name of the launch configuration. + */ + LaunchConfigurationName: XmlStringMaxLen255; + } + export type LaunchConfigurationNames = XmlStringMaxLen255[]; + export interface LaunchConfigurationNamesType { + /** + * The launch configuration names. If you omit this parameter, all launch configurations are described. Array Members: Maximum number of 50 items. + */ + LaunchConfigurationNames?: LaunchConfigurationNames; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + NextToken?: XmlString; + /** + * The maximum number of items to return with this call. The default value is 50 and the maximum value is 100. + */ + MaxRecords?: MaxRecords; + } + export type LaunchConfigurations = LaunchConfiguration[]; + export interface LaunchConfigurationsType { + /** + * The launch configurations. + */ + LaunchConfigurations: LaunchConfigurations; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface LaunchTemplate { + /** + * The launch template to use. + */ + LaunchTemplateSpecification?: LaunchTemplateSpecification; + /** + * Any properties that you specify override the same properties in the launch template. If not provided, Amazon EC2 Auto Scaling uses the instance type specified in the launch template when it launches an instance. + */ + Overrides?: Overrides; + } + export type LaunchTemplateName = string; + export interface LaunchTemplateOverrides { + /** + * The instance type, such as m3.xlarge. You must use an instance type that is supported in your requested Region and Availability Zones. For more information, see Instance types in the Amazon Elastic Compute Cloud User Guide. + */ + InstanceType?: XmlStringMaxLen255; + /** + * The number of capacity units provided by the specified instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is provisioned, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling provisions instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are 2 units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only provision an instance with a WeightedCapacity of 5 units, the instance is provisioned, and the desired capacity is exceeded by 3 units. For more information, see Instance weighting for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. Value must be in the range of 1 to 999. + */ + WeightedCapacity?: XmlStringMaxLen32; + /** + * Provides the launch template to be used when launching the instance type. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's defined for your mixed instances policy. For more information, see Specifying a different launch template for an instance type in the Amazon EC2 Auto Scaling User Guide. + */ + LaunchTemplateSpecification?: LaunchTemplateSpecification; + } + export interface LaunchTemplateSpecification { + /** + * The ID of the launch template. To get the template ID, use the Amazon EC2 DescribeLaunchTemplates API operation. New launch templates can be created using the Amazon EC2 CreateLaunchTemplate API. Conditional: You must specify either a LaunchTemplateId or a LaunchTemplateName. + */ + LaunchTemplateId?: XmlStringMaxLen255; + /** + * The name of the launch template. To get the template name, use the Amazon EC2 DescribeLaunchTemplates API operation. New launch templates can be created using the Amazon EC2 CreateLaunchTemplate API. Conditional: You must specify either a LaunchTemplateId or a LaunchTemplateName. + */ + LaunchTemplateName?: LaunchTemplateName; + /** + * The version number, $Latest, or $Default. To get the version number, use the Amazon EC2 DescribeLaunchTemplateVersions API operation. New launch template versions can be created using the Amazon EC2 CreateLaunchTemplateVersion API. If the value is $Latest, Amazon EC2 Auto Scaling selects the latest version of the launch template when launching instances. If the value is $Default, Amazon EC2 Auto Scaling selects the default version of the launch template when launching instances. The default value is $Default. + */ + Version?: XmlStringMaxLen255; + } + export type LifecycleActionResult = string; + export type LifecycleActionToken = string; + export interface LifecycleHook { + /** + * The name of the lifecycle hook. + */ + LifecycleHookName?: AsciiStringMaxLen255; + /** + * The name of the Auto Scaling group for the lifecycle hook. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The state of the EC2 instance to which to attach the lifecycle hook. The following are possible values: autoscaling:EC2_INSTANCE_LAUNCHING autoscaling:EC2_INSTANCE_TERMINATING + */ + LifecycleTransition?: LifecycleTransition; + /** + * The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic. + */ + NotificationTargetARN?: NotificationTargetResourceName; + /** + * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. + */ + RoleARN?: XmlStringMaxLen255; + /** + * Additional information that is included any time Amazon EC2 Auto Scaling sends a message to the notification target. + */ + NotificationMetadata?: XmlStringMaxLen1023; + /** + * The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the DefaultResult parameter. + */ + HeartbeatTimeout?: HeartbeatTimeout; + /** + * The maximum time, in seconds, that an instance can remain in a Pending:Wait or Terminating:Wait state. The maximum is 172800 seconds (48 hours) or 100 times HeartbeatTimeout, whichever is smaller. + */ + GlobalTimeout?: GlobalTimeout; + /** + * Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The possible values are CONTINUE and ABANDON. + */ + DefaultResult?: LifecycleActionResult; + } + export type LifecycleHookNames = AsciiStringMaxLen255[]; + export interface LifecycleHookSpecification { + /** + * The name of the lifecycle hook. + */ + LifecycleHookName: AsciiStringMaxLen255; + /** + * The state of the EC2 instance to which you want to attach the lifecycle hook. The valid values are: autoscaling:EC2_INSTANCE_LAUNCHING autoscaling:EC2_INSTANCE_TERMINATING + */ + LifecycleTransition: LifecycleTransition; + /** + * Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target. + */ + NotificationMetadata?: XmlStringMaxLen1023; + /** + * The maximum time, in seconds, that can elapse before the lifecycle hook times out. If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the DefaultResult parameter. You can prevent the lifecycle hook from timing out by calling RecordLifecycleActionHeartbeat. + */ + HeartbeatTimeout?: HeartbeatTimeout; + /** + * Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. The valid values are CONTINUE and ABANDON. The default value is ABANDON. + */ + DefaultResult?: LifecycleActionResult; + /** + * The ARN of the target that Amazon EC2 Auto Scaling sends notifications to when an instance is in the transition state for the lifecycle hook. The notification target can be either an SQS queue or an SNS topic. + */ + NotificationTargetARN?: NotificationTargetResourceName; + /** + * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue. + */ + RoleARN?: XmlStringMaxLen255; + } + export type LifecycleHookSpecifications = LifecycleHookSpecification[]; + export type LifecycleHooks = LifecycleHook[]; + export type LifecycleState = "Pending"|"Pending:Wait"|"Pending:Proceed"|"Quarantined"|"InService"|"Terminating"|"Terminating:Wait"|"Terminating:Proceed"|"Terminated"|"Detaching"|"Detached"|"EnteringStandby"|"Standby"|"Warmed:Pending"|"Warmed:Pending:Wait"|"Warmed:Pending:Proceed"|"Warmed:Terminating"|"Warmed:Terminating:Wait"|"Warmed:Terminating:Proceed"|"Warmed:Terminated"|"Warmed:Stopped"|"Warmed:Running"|string; + export type LifecycleTransition = string; + export type LoadBalancerNames = XmlStringMaxLen255[]; + export interface LoadBalancerState { + /** + * The name of the load balancer. + */ + LoadBalancerName?: XmlStringMaxLen255; + /** + * One of the following load balancer states: Adding - The Auto Scaling instances are being registered with the load balancer. Added - All Auto Scaling instances are registered with the load balancer. InService - At least one Auto Scaling instance passed an ELB health check. Removing - The Auto Scaling instances are being deregistered from the load balancer. If connection draining is enabled, Elastic Load Balancing waits for in-flight requests to complete before deregistering the instances. Removed - All Auto Scaling instances are deregistered from the load balancer. + */ + State?: XmlStringMaxLen255; + } + export type LoadBalancerStates = LoadBalancerState[]; + export interface LoadBalancerTargetGroupState { + /** + * The Amazon Resource Name (ARN) of the target group. + */ + LoadBalancerTargetGroupARN?: XmlStringMaxLen511; + /** + * The state of the target group. Adding - The Auto Scaling instances are being registered with the target group. Added - All Auto Scaling instances are registered with the target group. InService - At least one Auto Scaling instance passed an ELB health check. Removing - The Auto Scaling instances are being deregistered from the target group. If connection draining is enabled, Elastic Load Balancing waits for in-flight requests to complete before deregistering the instances. Removed - All Auto Scaling instances are deregistered from the target group. + */ + State?: XmlStringMaxLen255; + } + export type LoadBalancerTargetGroupStates = LoadBalancerTargetGroupState[]; + export interface LoadForecast { + /** + * The time stamps for the data points, in UTC format. + */ + Timestamps: PredictiveScalingForecastTimestamps; + /** + * The values of the data points. + */ + Values: PredictiveScalingForecastValues; + /** + * The metric specification for the load forecast. + */ + MetricSpecification: PredictiveScalingMetricSpecification; + } + export type LoadForecasts = LoadForecast[]; + export type MaxGroupPreparedCapacity = number; + export type MaxInstanceLifetime = number; + export type MaxNumberOfAutoScalingGroups = number; + export type MaxNumberOfLaunchConfigurations = number; + export type MaxRecords = number; + export interface MetricCollectionType { + /** + * One of the following metrics: GroupMinSize GroupMaxSize GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances GroupInServiceCapacity GroupPendingCapacity GroupStandbyCapacity GroupTerminatingCapacity GroupTotalCapacity WarmPoolDesiredCapacity WarmPoolWarmedCapacity WarmPoolPendingCapacity WarmPoolTerminatingCapacity WarmPoolTotalCapacity GroupAndWarmPoolDesiredCapacity GroupAndWarmPoolTotalCapacity + */ + Metric?: XmlStringMaxLen255; + } + export type MetricCollectionTypes = MetricCollectionType[]; + export interface MetricDimension { + /** + * The name of the dimension. + */ + Name: MetricDimensionName; + /** + * The value of the dimension. + */ + Value: MetricDimensionValue; + } + export type MetricDimensionName = string; + export type MetricDimensionValue = string; + export type MetricDimensions = MetricDimension[]; + export interface MetricGranularityType { + /** + * The granularity. The only valid value is 1Minute. + */ + Granularity?: XmlStringMaxLen255; + } + export type MetricGranularityTypes = MetricGranularityType[]; + export type MetricName = string; + export type MetricNamespace = string; + export type MetricScale = number; + export type MetricStatistic = "Average"|"Minimum"|"Maximum"|"SampleCount"|"Sum"|string; + export type MetricType = "ASGAverageCPUUtilization"|"ASGAverageNetworkIn"|"ASGAverageNetworkOut"|"ALBRequestCountPerTarget"|string; + export type MetricUnit = string; + export type Metrics = XmlStringMaxLen255[]; + export type MinAdjustmentMagnitude = number; + export type MinAdjustmentStep = number; + export type MixedInstanceSpotPrice = string; + export interface MixedInstancesPolicy { + /** + * Specifies the launch template to use and optionally the instance types (overrides) that are used to provision EC2 instances to fulfill On-Demand and Spot capacities. Required when creating a mixed instances policy. + */ + LaunchTemplate?: LaunchTemplate; + /** + * Specifies the instances distribution. If not provided, the value for each property in InstancesDistribution uses a default value. + */ + InstancesDistribution?: InstancesDistribution; + } + export type MonitoringEnabled = boolean; + export type NoDevice = boolean; + export type NonZeroIntPercent = number; + export interface NotificationConfiguration { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic. + */ + TopicARN?: XmlStringMaxLen255; + /** + * One of the following event notification types: autoscaling:EC2_INSTANCE_LAUNCH autoscaling:EC2_INSTANCE_LAUNCH_ERROR autoscaling:EC2_INSTANCE_TERMINATE autoscaling:EC2_INSTANCE_TERMINATE_ERROR autoscaling:TEST_NOTIFICATION + */ + NotificationType?: XmlStringMaxLen255; + } + export type NotificationConfigurations = NotificationConfiguration[]; + export type NotificationTargetResourceName = string; + export type NumberOfAutoScalingGroups = number; + export type NumberOfLaunchConfigurations = number; + export type OnDemandBaseCapacity = number; + export type OnDemandPercentageAboveBaseCapacity = number; + export type Overrides = LaunchTemplateOverrides[]; + export interface PoliciesType { + /** + * The scaling policies. + */ + ScalingPolicies?: ScalingPolicies; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface PolicyARNType { + /** + * The Amazon Resource Name (ARN) of the policy. + */ + PolicyARN?: ResourceName; + /** + * The CloudWatch alarms created for the target tracking scaling policy. + */ + Alarms?: Alarms; + } + export type PolicyIncrement = number; + export type PolicyNames = ResourceName[]; + export type PolicyTypes = XmlStringMaxLen64[]; + export type PredefinedLoadMetricType = "ASGTotalCPUUtilization"|"ASGTotalNetworkIn"|"ASGTotalNetworkOut"|"ALBTargetGroupRequestCount"|string; + export type PredefinedMetricPairType = "ASGCPUUtilization"|"ASGNetworkIn"|"ASGNetworkOut"|"ALBRequestCount"|string; + export interface PredefinedMetricSpecification { + /** + * The metric type. The following predefined metrics are available: ASGAverageCPUUtilization - Average CPU utilization of the Auto Scaling group. ASGAverageNetworkIn - Average number of bytes received on all network interfaces by the Auto Scaling group. ASGAverageNetworkOut - Average number of bytes sent out on all network interfaces by the Auto Scaling group. ALBRequestCountPerTarget - Number of requests completed per target in an Application Load Balancer target group. + */ + PredefinedMetricType: MetricType; + /** + * Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. This is an example: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use the DescribeTargetGroups API operation. + */ + ResourceLabel?: XmlStringMaxLen1023; + } + export type PredefinedScalingMetricType = "ASGAverageCPUUtilization"|"ASGAverageNetworkIn"|"ASGAverageNetworkOut"|"ALBRequestCountPerTarget"|string; + export interface PredictiveScalingConfiguration { + /** + * This structure includes the metrics and target utilization to use for predictive scaling. This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric. + */ + MetricSpecifications: PredictiveScalingMetricSpecifications; + /** + * The predictive scaling mode. Defaults to ForecastOnly if not specified. + */ + Mode?: PredictiveScalingMode; + /** + * The amount of time, in seconds, by which the instance launch time can be advanced. For example, the forecast says to add capacity at 10:00 AM, and you choose to pre-launch instances by 5 minutes. In that case, the instances will be launched at 9:55 AM. The intention is to give resources time to be provisioned. It can take a few minutes to launch an EC2 instance. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete. The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified. + */ + SchedulingBufferTime?: PredictiveScalingSchedulingBufferTime; + /** + * Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity of the Auto Scaling group. Defaults to HonorMaxCapacity if not specified. The following are possible values: HonorMaxCapacity - Amazon EC2 Auto Scaling cannot scale out capacity higher than the maximum capacity. The maximum capacity is enforced as a hard limit. IncreaseMaxCapacity - Amazon EC2 Auto Scaling can scale out capacity higher than the maximum capacity when the forecast capacity is close to or exceeds the maximum capacity. The upper limit is determined by the forecasted capacity and the value for MaxCapacityBuffer. + */ + MaxCapacityBreachBehavior?: PredictiveScalingMaxCapacityBreachBehavior; + /** + * The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. If set to 0, Amazon EC2 Auto Scaling may scale capacity higher than the maximum capacity to equal but not exceed forecast capacity. Required if the MaxCapacityBreachBehavior property is set to IncreaseMaxCapacity, and cannot be used otherwise. + */ + MaxCapacityBuffer?: PredictiveScalingMaxCapacityBuffer; + } + export type PredictiveScalingForecastTimestamps = TimestampType[]; + export type PredictiveScalingForecastValues = MetricScale[]; + export type PredictiveScalingMaxCapacityBreachBehavior = "HonorMaxCapacity"|"IncreaseMaxCapacity"|string; + export type PredictiveScalingMaxCapacityBuffer = number; + export interface PredictiveScalingMetricSpecification { + /** + * Specifies the target utilization. + */ + TargetValue: MetricScale; + /** + * The metric pair specification from which Amazon EC2 Auto Scaling determines the appropriate scaling metric and load metric to use. + */ + PredefinedMetricPairSpecification?: PredictiveScalingPredefinedMetricPair; + /** + * The scaling metric specification. + */ + PredefinedScalingMetricSpecification?: PredictiveScalingPredefinedScalingMetric; + /** + * The load metric specification. + */ + PredefinedLoadMetricSpecification?: PredictiveScalingPredefinedLoadMetric; + } + export type PredictiveScalingMetricSpecifications = PredictiveScalingMetricSpecification[]; + export type PredictiveScalingMode = "ForecastAndScale"|"ForecastOnly"|string; + export interface PredictiveScalingPredefinedLoadMetric { + /** + * The metric type. + */ + PredefinedMetricType: PredefinedLoadMetricType; + /** + * A label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You can't specify a resource label unless the target group is attached to the Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. Where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use the DescribeTargetGroups API operation. + */ + ResourceLabel?: XmlStringMaxLen1023; + } + export interface PredictiveScalingPredefinedMetricPair { + /** + * Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. For example, if the metric type is ASGCPUUtilization, the Auto Scaling group's total CPU metric is used as the load metric, and the average CPU metric is used for the scaling metric. + */ + PredefinedMetricType: PredefinedMetricPairType; + /** + * A label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You can't specify a resource label unless the target group is attached to the Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. Where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use the DescribeTargetGroups API operation. + */ + ResourceLabel?: XmlStringMaxLen1023; + } + export interface PredictiveScalingPredefinedScalingMetric { + /** + * The metric type. + */ + PredefinedMetricType: PredefinedScalingMetricType; + /** + * A label that uniquely identifies a specific Application Load Balancer target group from which to determine the request count served by your Auto Scaling group. You can't specify a resource label unless the target group is attached to the Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. Where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use the DescribeTargetGroups API operation. + */ + ResourceLabel?: XmlStringMaxLen1023; + } + export type PredictiveScalingSchedulingBufferTime = number; + export type ProcessNames = XmlStringMaxLen255[]; + export interface ProcessType { + /** + * One of the following processes: Launch Terminate AddToLoadBalancer AlarmNotification AZRebalance HealthCheck InstanceRefresh ReplaceUnhealthy ScheduledActions + */ + ProcessName: XmlStringMaxLen255; + } + export type Processes = ProcessType[]; + export interface ProcessesType { + /** + * The names of the process types. + */ + Processes?: Processes; + } + export type Progress = number; + export type PropagateAtLaunch = boolean; + export type ProtectedFromScaleIn = boolean; + export interface PutLifecycleHookAnswer { + } + export interface PutLifecycleHookType { + /** + * The name of the lifecycle hook. + */ + LifecycleHookName: AsciiStringMaxLen255; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The instance state to which you want to attach the lifecycle hook. The valid values are: autoscaling:EC2_INSTANCE_LAUNCHING autoscaling:EC2_INSTANCE_TERMINATING Required for new lifecycle hooks, but optional when updating existing hooks. + */ + LifecycleTransition?: LifecycleTransition; + /** + * The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target, for example, an Amazon SNS topic or an Amazon SQS queue. Required for new lifecycle hooks, but optional when updating existing hooks. + */ + RoleARN?: XmlStringMaxLen255; + /** + * The ARN of the notification target that Amazon EC2 Auto Scaling uses to notify you when an instance is in the transition state for the lifecycle hook. This target can be either an SQS queue or an SNS topic. If you specify an empty string, this overrides the current ARN. This operation uses the JSON format when sending notifications to an Amazon SQS queue, and an email key-value pair format when sending notifications to an Amazon SNS topic. When you specify a notification target, Amazon EC2 Auto Scaling sends it a test message. Test messages contain the following additional key-value pair: "Event": "autoscaling:TEST_NOTIFICATION". + */ + NotificationTargetARN?: NotificationTargetResourceName; + /** + * Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target. + */ + NotificationMetadata?: XmlStringMaxLen1023; + /** + * The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from 30 to 7200 seconds. The default value is 3600 seconds (1 hour). If the lifecycle hook times out, Amazon EC2 Auto Scaling performs the action that you specified in the DefaultResult parameter. You can prevent the lifecycle hook from timing out by calling the RecordLifecycleActionHeartbeat API. + */ + HeartbeatTimeout?: HeartbeatTimeout; + /** + * Defines the action the Auto Scaling group should take when the lifecycle hook timeout elapses or if an unexpected failure occurs. This parameter can be either CONTINUE or ABANDON. The default value is ABANDON. + */ + DefaultResult?: LifecycleActionResult; + } + export interface PutNotificationConfigurationType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (Amazon SNS) topic. + */ + TopicARN: XmlStringMaxLen255; + /** + * The type of event that causes the notification to be sent. To query the notification types supported by Amazon EC2 Auto Scaling, call the DescribeAutoScalingNotificationTypes API. + */ + NotificationTypes: AutoScalingNotificationTypes; + } + export interface PutScalingPolicyType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The name of the policy. + */ + PolicyName: XmlStringMaxLen255; + /** + * One of the following policy types: TargetTrackingScaling StepScaling SimpleScaling (default) PredictiveScaling + */ + PolicyType?: XmlStringMaxLen64; + /** + * Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage). The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. Required if the policy type is StepScaling or SimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide. + */ + AdjustmentType?: XmlStringMaxLen255; + /** + * Available for backward compatibility. Use MinAdjustmentMagnitude instead. + */ + MinAdjustmentStep?: MinAdjustmentStep; + /** + * The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a MinAdjustmentMagnitude of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances. Valid only if the policy type is StepScaling or SimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide. Some Auto Scaling groups use instance weights. In this case, set the MinAdjustmentMagnitude to a value that is at least as large as your largest instance weight. + */ + MinAdjustmentMagnitude?: MinAdjustmentMagnitude; + /** + * The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. Required if the policy type is SimpleScaling. (Not used with any other policy type.) + */ + ScalingAdjustment?: PolicyIncrement; + /** + * The duration of the policy's cooldown period, in seconds. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group. Valid only if the policy type is SimpleScaling. For more information, see Scaling cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + Cooldown?: Cooldown; + /** + * The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average. Valid only if the policy type is StepScaling. + */ + MetricAggregationType?: XmlStringMaxLen32; + /** + * A set of adjustments that enable you to scale based on the size of the alarm breach. Required if the policy type is StepScaling. (Not used with any other policy type.) + */ + StepAdjustments?: StepAdjustments; + /** + * The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group. Valid only if the policy type is TargetTrackingScaling or StepScaling. + */ + EstimatedInstanceWarmup?: EstimatedInstanceWarmup; + /** + * A target tracking scaling policy. Provides support for predefined or customized metrics. The following predefined metrics are available: ASGAverageCPUUtilization ASGAverageNetworkIn ASGAverageNetworkOut ALBRequestCountPerTarget If you specify ALBRequestCountPerTarget for the metric, you must specify the ResourceLabel parameter with the PredefinedMetricSpecification. For more information, see TargetTrackingConfiguration in the Amazon EC2 Auto Scaling API Reference. Required if the policy type is TargetTrackingScaling. + */ + TargetTrackingConfiguration?: TargetTrackingConfiguration; + /** + * Indicates whether the scaling policy is enabled or disabled. The default is enabled. For more information, see Disabling a scaling policy for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. + */ + Enabled?: ScalingPolicyEnabled; + /** + * A predictive scaling policy. Provides support for only predefined metrics. Predictive scaling works with CPU utilization, network in/out, and the Application Load Balancer request count. For more information, see PredictiveScalingConfiguration in the Amazon EC2 Auto Scaling API Reference. Required if the policy type is PredictiveScaling. + */ + PredictiveScalingConfiguration?: PredictiveScalingConfiguration; + } + export interface PutScheduledUpdateGroupActionType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The name of this scaling action. + */ + ScheduledActionName: XmlStringMaxLen255; + /** + * This parameter is no longer used. + */ + Time?: TimestampType; + /** + * The date and time for this action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT only and in quotes (for example, "2019-06-01T00:00:00Z"). If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence. If you try to schedule your action in the past, Amazon EC2 Auto Scaling returns an error message. + */ + StartTime?: TimestampType; + /** + * The date and time for the recurring schedule to end, in UTC. + */ + EndTime?: TimestampType; + /** + * The recurring schedule for this action. This format consists of five fields separated by white spaces: [Minute] [Hour] [Day_of_Month] [Month_of_Year] [Day_of_Week]. The value must be in quotes (for example, "30 0 1 1,6,12 *"). For more information about this format, see Crontab. When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action starts and stops. Cron expressions use Universal Coordinated Time (UTC) by default. + */ + Recurrence?: XmlStringMaxLen255; + /** + * The minimum size of the Auto Scaling group. + */ + MinSize?: AutoScalingGroupMinSize; + /** + * The maximum size of the Auto Scaling group. + */ + MaxSize?: AutoScalingGroupMaxSize; + /** + * The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. It can scale beyond this capacity if you add more scaling conditions. + */ + DesiredCapacity?: AutoScalingGroupDesiredCapacity; + /** + * Specifies the time zone for a cron expression. If a time zone is not provided, UTC is used by default. Valid values are the canonical names of the IANA time zones, derived from the IANA Time Zone Database (such as Etc/GMT+9 or Pacific/Tahiti). For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. + */ + TimeZone?: XmlStringMaxLen255; + } + export interface PutWarmPoolAnswer { + } + export interface PutWarmPoolType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Specifies the maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group. This is an optional property. Specify it only if you do not want the warm pool size to be determined by the difference between the group's maximum capacity and its desired capacity. If a value for MaxGroupPreparedCapacity is not specified, Amazon EC2 Auto Scaling launches and maintains the difference between the group's maximum capacity and its desired capacity. If you specify a value for MaxGroupPreparedCapacity, Amazon EC2 Auto Scaling uses the difference between the MaxGroupPreparedCapacity and the desired capacity instead. The size of the warm pool is dynamic. Only when MaxGroupPreparedCapacity and MinSize are set to the same value does the warm pool have an absolute size. If the desired capacity of the Auto Scaling group is higher than the MaxGroupPreparedCapacity, the capacity of the warm pool is 0, unless you specify a value for MinSize. To remove a value that you previously set, include the property but specify -1 for the value. + */ + MaxGroupPreparedCapacity?: MaxGroupPreparedCapacity; + /** + * Specifies the minimum number of instances to maintain in the warm pool. This helps you to ensure that there is always a certain number of warmed instances available to handle traffic spikes. Defaults to 0 if not specified. + */ + MinSize?: WarmPoolMinSize; + /** + * Sets the instance state to transition to after the lifecycle actions are complete. Default is Stopped. + */ + PoolState?: WarmPoolState; + } + export interface RecordLifecycleActionHeartbeatAnswer { + } + export interface RecordLifecycleActionHeartbeatType { + /** + * The name of the lifecycle hook. + */ + LifecycleHookName: AsciiStringMaxLen255; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: ResourceName; + /** + * A token that uniquely identifies a specific lifecycle action associated with an instance. Amazon EC2 Auto Scaling sends this token to the notification target that you specified when you created the lifecycle hook. + */ + LifecycleActionToken?: LifecycleActionToken; + /** + * The ID of the instance. + */ + InstanceId?: XmlStringMaxLen19; + } + export type RefreshInstanceWarmup = number; + export interface RefreshPreferences { + /** + * The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group (rounded up to the nearest integer). The default is 90. + */ + MinHealthyPercentage?: IntPercent; + /** + * The number of seconds until a newly launched instance is configured and ready to use. During this time, Amazon EC2 Auto Scaling does not immediately move on to the next replacement. The default is to use the value for the health check grace period defined for the group. + */ + InstanceWarmup?: RefreshInstanceWarmup; + /** + * Threshold values for each checkpoint in ascending order. Each number must be unique. To replace all instances in the Auto Scaling group, the last number in the array must be 100. For usage examples, see Adding checkpoints to an instance refresh in the Amazon EC2 Auto Scaling User Guide. + */ + CheckpointPercentages?: CheckpointPercentages; + /** + * The amount of time, in seconds, to wait after a checkpoint before continuing. This property is optional, but if you specify a value for it, you must also specify a value for CheckpointPercentages. If you specify a value for CheckpointPercentages and not for CheckpointDelay, the CheckpointDelay defaults to 3600 (1 hour). + */ + CheckpointDelay?: CheckpointDelay; + } + export type RefreshStrategy = "Rolling"|string; + export type ResourceName = string; + export type ScalingActivityStatusCode = "PendingSpotBidPlacement"|"WaitingForSpotInstanceRequestId"|"WaitingForSpotInstanceId"|"WaitingForInstanceId"|"PreInService"|"InProgress"|"WaitingForELBConnectionDraining"|"MidLifecycleAction"|"WaitingForInstanceWarmup"|"Successful"|"Failed"|"Cancelled"|string; + export type ScalingPolicies = ScalingPolicy[]; + export interface ScalingPolicy { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The name of the scaling policy. + */ + PolicyName?: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the policy. + */ + PolicyARN?: ResourceName; + /** + * One of the following policy types: TargetTrackingScaling StepScaling SimpleScaling (default) PredictiveScaling For more information, see Target tracking scaling policies and Step and simple scaling policies in the Amazon EC2 Auto Scaling User Guide. + */ + PolicyType?: XmlStringMaxLen64; + /** + * Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage). The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. + */ + AdjustmentType?: XmlStringMaxLen255; + /** + * Available for backward compatibility. Use MinAdjustmentMagnitude instead. + */ + MinAdjustmentStep?: MinAdjustmentStep; + /** + * The minimum value to scale by when the adjustment type is PercentChangeInCapacity. + */ + MinAdjustmentMagnitude?: MinAdjustmentMagnitude; + /** + * The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. + */ + ScalingAdjustment?: PolicyIncrement; + /** + * The duration of the policy's cooldown period, in seconds. + */ + Cooldown?: Cooldown; + /** + * A set of adjustments that enable you to scale based on the size of the alarm breach. + */ + StepAdjustments?: StepAdjustments; + /** + * The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. + */ + MetricAggregationType?: XmlStringMaxLen32; + /** + * The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. + */ + EstimatedInstanceWarmup?: EstimatedInstanceWarmup; + /** + * The CloudWatch alarms related to the policy. + */ + Alarms?: Alarms; + /** + * A target tracking scaling policy. + */ + TargetTrackingConfiguration?: TargetTrackingConfiguration; + /** + * Indicates whether the policy is enabled (true) or disabled (false). + */ + Enabled?: ScalingPolicyEnabled; + /** + * A predictive scaling policy. + */ + PredictiveScalingConfiguration?: PredictiveScalingConfiguration; + } + export type ScalingPolicyEnabled = boolean; + export interface ScalingProcessQuery { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * One or more of the following processes: Launch Terminate AddToLoadBalancer AlarmNotification AZRebalance HealthCheck InstanceRefresh ReplaceUnhealthy ScheduledActions If you omit this parameter, all processes are specified. + */ + ScalingProcesses?: ProcessNames; + } + export type ScheduledActionNames = XmlStringMaxLen255[]; + export interface ScheduledActionsType { + /** + * The scheduled actions. + */ + ScheduledUpdateGroupActions?: ScheduledUpdateGroupActions; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export interface ScheduledUpdateGroupAction { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName?: XmlStringMaxLen255; + /** + * The name of the scheduled action. + */ + ScheduledActionName?: XmlStringMaxLen255; + /** + * The Amazon Resource Name (ARN) of the scheduled action. + */ + ScheduledActionARN?: ResourceName; + /** + * This parameter is no longer used. + */ + Time?: TimestampType; + /** + * The date and time in UTC for this action to start. For example, "2019-06-01T00:00:00Z". + */ + StartTime?: TimestampType; + /** + * The date and time in UTC for the recurring schedule to end. For example, "2019-06-01T00:00:00Z". + */ + EndTime?: TimestampType; + /** + * The recurring schedule for the action, in Unix cron syntax format. When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action starts and stops. + */ + Recurrence?: XmlStringMaxLen255; + /** + * The minimum size of the Auto Scaling group. + */ + MinSize?: AutoScalingGroupMinSize; + /** + * The maximum size of the Auto Scaling group. + */ + MaxSize?: AutoScalingGroupMaxSize; + /** + * The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. + */ + DesiredCapacity?: AutoScalingGroupDesiredCapacity; + /** + * The time zone for the cron expression. + */ + TimeZone?: XmlStringMaxLen255; + } + export interface ScheduledUpdateGroupActionRequest { + /** + * The name of the scaling action. + */ + ScheduledActionName: XmlStringMaxLen255; + /** + * The date and time for the action to start, in YYYY-MM-DDThh:mm:ssZ format in UTC/GMT only and in quotes (for example, "2019-06-01T00:00:00Z"). If you specify Recurrence and StartTime, Amazon EC2 Auto Scaling performs the action at this time, and then performs the action based on the specified recurrence. If you try to schedule the action in the past, Amazon EC2 Auto Scaling returns an error message. + */ + StartTime?: TimestampType; + /** + * The date and time for the recurring schedule to end, in UTC. + */ + EndTime?: TimestampType; + /** + * The recurring schedule for the action, in Unix cron syntax format. This format consists of five fields separated by white spaces: [Minute] [Hour] [Day_of_Month] [Month_of_Year] [Day_of_Week]. The value must be in quotes (for example, "30 0 1 1,6,12 *"). For more information about this format, see Crontab. When StartTime and EndTime are specified with Recurrence, they form the boundaries of when the recurring action starts and stops. Cron expressions use Universal Coordinated Time (UTC) by default. + */ + Recurrence?: XmlStringMaxLen255; + /** + * The minimum size of the Auto Scaling group. + */ + MinSize?: AutoScalingGroupMinSize; + /** + * The maximum size of the Auto Scaling group. + */ + MaxSize?: AutoScalingGroupMaxSize; + /** + * The desired capacity is the initial capacity of the Auto Scaling group after the scheduled action runs and the capacity it attempts to maintain. + */ + DesiredCapacity?: AutoScalingGroupDesiredCapacity; + /** + * Specifies the time zone for a cron expression. If a time zone is not provided, UTC is used by default. Valid values are the canonical names of the IANA time zones, derived from the IANA Time Zone Database (such as Etc/GMT+9 or Pacific/Tahiti). For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. + */ + TimeZone?: XmlStringMaxLen255; + } + export type ScheduledUpdateGroupActionRequests = ScheduledUpdateGroupActionRequest[]; + export type ScheduledUpdateGroupActions = ScheduledUpdateGroupAction[]; + export type SecurityGroups = XmlString[]; + export interface SetDesiredCapacityType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The desired capacity is the initial capacity of the Auto Scaling group after this operation completes and the capacity it attempts to maintain. + */ + DesiredCapacity: AutoScalingGroupDesiredCapacity; + /** + * Indicates whether Amazon EC2 Auto Scaling waits for the cooldown period to complete before initiating a scaling activity to set your Auto Scaling group to its new capacity. By default, Amazon EC2 Auto Scaling does not honor the cooldown period during manual scaling activities. + */ + HonorCooldown?: HonorCooldown; + } + export interface SetInstanceHealthQuery { + /** + * The ID of the instance. + */ + InstanceId: XmlStringMaxLen19; + /** + * The health status of the instance. Set to Healthy to have the instance remain in service. Set to Unhealthy to have the instance be out of service. Amazon EC2 Auto Scaling terminates and replaces the unhealthy instance. + */ + HealthStatus: XmlStringMaxLen32; + /** + * If the Auto Scaling group of the specified instance has a HealthCheckGracePeriod specified for the group, by default, this call respects the grace period. Set this to False, to have the call not respect the grace period associated with the group. For more information about the health check grace period, see CreateAutoScalingGroup in the Amazon EC2 Auto Scaling API Reference. + */ + ShouldRespectGracePeriod?: ShouldRespectGracePeriod; + } + export interface SetInstanceProtectionAnswer { + } + export interface SetInstanceProtectionQuery { + /** + * One or more instance IDs. You can specify up to 50 instances. + */ + InstanceIds: InstanceIds; + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * Indicates whether the instance is protected from termination by Amazon EC2 Auto Scaling when scaling in. + */ + ProtectedFromScaleIn: ProtectedFromScaleIn; + } + export type ShouldDecrementDesiredCapacity = boolean; + export type ShouldRespectGracePeriod = boolean; + export type SpotInstancePools = number; + export type SpotPrice = string; + export interface StartInstanceRefreshAnswer { + /** + * A unique ID for tracking the progress of the request. + */ + InstanceRefreshId?: XmlStringMaxLen255; + } + export interface StartInstanceRefreshType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The strategy to use for the instance refresh. The only valid value is Rolling. A rolling update is an update that is applied to all instances in an Auto Scaling group until all instances have been updated. A rolling update can fail due to failed health checks or if instances are on standby or are protected from scale in. If the rolling update process fails, any instances that were already replaced are not rolled back to their previous configuration. + */ + Strategy?: RefreshStrategy; + /** + * Set of preferences associated with the instance refresh request. If not provided, the default values are used. For MinHealthyPercentage, the default value is 90. For InstanceWarmup, the default is to use the value specified for the health check grace period for the Auto Scaling group. For more information, see RefreshPreferences in the Amazon EC2 Auto Scaling API Reference. + */ + Preferences?: RefreshPreferences; + } + export interface StepAdjustment { + /** + * The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity. + */ + MetricIntervalLowerBound?: MetricScale; + /** + * The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity. The upper bound must be greater than the lower bound. + */ + MetricIntervalUpperBound?: MetricScale; + /** + * The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. + */ + ScalingAdjustment: PolicyIncrement; + } + export type StepAdjustments = StepAdjustment[]; + export interface SuspendedProcess { + /** + * The name of the suspended process. + */ + ProcessName?: XmlStringMaxLen255; + /** + * The reason that the process was suspended. + */ + SuspensionReason?: XmlStringMaxLen255; + } + export type SuspendedProcesses = SuspendedProcess[]; + export interface Tag { + /** + * The name of the Auto Scaling group. + */ + ResourceId?: XmlString; + /** + * The type of resource. The only supported value is auto-scaling-group. + */ + ResourceType?: XmlString; + /** + * The tag key. + */ + Key: TagKey; + /** + * The tag value. + */ + Value?: TagValue; + /** + * Determines whether the tag is added to new instances as they are launched in the group. + */ + PropagateAtLaunch?: PropagateAtLaunch; + } + export interface TagDescription { + /** + * The name of the group. + */ + ResourceId?: XmlString; + /** + * The type of resource. The only supported value is auto-scaling-group. + */ + ResourceType?: XmlString; + /** + * The tag key. + */ + Key?: TagKey; + /** + * The tag value. + */ + Value?: TagValue; + /** + * Determines whether the tag is added to new instances as they are launched in the group. + */ + PropagateAtLaunch?: PropagateAtLaunch; + } + export type TagDescriptionList = TagDescription[]; + export type TagKey = string; + export type TagValue = string; + export type Tags = Tag[]; + export interface TagsType { + /** + * One or more tags. + */ + Tags?: TagDescriptionList; + /** + * A string that indicates that the response contains more items than can be returned in a single response. To receive additional items, specify this string for the NextToken value when requesting the next set of items. This value is null when there are no more items to return. + */ + NextToken?: XmlString; + } + export type TargetGroupARNs = XmlStringMaxLen511[]; + export interface TargetTrackingConfiguration { + /** + * A predefined metric. You must specify either a predefined metric or a customized metric. + */ + PredefinedMetricSpecification?: PredefinedMetricSpecification; + /** + * A customized metric. You must specify either a predefined metric or a customized metric. + */ + CustomizedMetricSpecification?: CustomizedMetricSpecification; + /** + * The target value for the metric. + */ + TargetValue: MetricScale; + /** + * Indicates whether scaling in by the target tracking scaling policy is disabled. If scaling in is disabled, the target tracking scaling policy doesn't remove instances from the Auto Scaling group. Otherwise, the target tracking scaling policy can remove instances from the Auto Scaling group. The default is false. + */ + DisableScaleIn?: DisableScaleIn; + } + export interface TerminateInstanceInAutoScalingGroupType { + /** + * The ID of the instance. + */ + InstanceId: XmlStringMaxLen19; + /** + * Indicates whether terminating the instance also decrements the size of the Auto Scaling group. + */ + ShouldDecrementDesiredCapacity: ShouldDecrementDesiredCapacity; + } + export type TerminationPolicies = XmlStringMaxLen1600[]; + export type TimestampType = Date; + export interface UpdateAutoScalingGroupType { + /** + * The name of the Auto Scaling group. + */ + AutoScalingGroupName: XmlStringMaxLen255; + /** + * The name of the launch configuration. If you specify LaunchConfigurationName in your update request, you can't specify LaunchTemplate or MixedInstancesPolicy. + */ + LaunchConfigurationName?: XmlStringMaxLen255; + /** + * The launch template and version to use to specify the updates. If you specify LaunchTemplate in your update request, you can't specify LaunchConfigurationName or MixedInstancesPolicy. + */ + LaunchTemplate?: LaunchTemplateSpecification; + /** + * An embedded object that specifies a mixed instances policy. When you make changes to an existing policy, all optional properties are left unchanged if not specified. For more information, see Auto Scaling groups with multiple instance types and purchase options in the Amazon EC2 Auto Scaling User Guide. + */ + MixedInstancesPolicy?: MixedInstancesPolicy; + /** + * The minimum size of the Auto Scaling group. + */ + MinSize?: AutoScalingGroupMinSize; + /** + * The maximum size of the Auto Scaling group. With a mixed instances policy that uses instance weighting, Amazon EC2 Auto Scaling may need to go above MaxSize to meet your capacity requirements. In this event, Amazon EC2 Auto Scaling will never go above MaxSize by more than your largest instance weight (weights that define how many units each instance contributes to the desired capacity of the group). + */ + MaxSize?: AutoScalingGroupMaxSize; + /** + * The desired capacity is the initial capacity of the Auto Scaling group after this operation completes and the capacity it attempts to maintain. This number must be greater than or equal to the minimum size of the group and less than or equal to the maximum size of the group. + */ + DesiredCapacity?: AutoScalingGroupDesiredCapacity; + /** + * The amount of time, in seconds, after a scaling activity completes before another scaling activity can start. The default value is 300. This setting applies when using simple scaling policies, but not when using other scaling policies or scheduled scaling. For more information, see Scaling cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide. + */ + DefaultCooldown?: Cooldown; + /** + * One or more Availability Zones for the group. + */ + AvailabilityZones?: AvailabilityZones; + /** + * The service to use for the health checks. The valid values are EC2 and ELB. If you configure an Auto Scaling group to use ELB health checks, it considers the instance unhealthy if it fails either the EC2 status checks or the load balancer health checks. + */ + HealthCheckType?: XmlStringMaxLen32; + /** + * The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before checking the health status of an EC2 instance that has come into service. The default value is 0. For more information, see Health check grace period in the Amazon EC2 Auto Scaling User Guide. Conditional: Required if you are adding an ELB health check. + */ + HealthCheckGracePeriod?: HealthCheckGracePeriod; + /** + * The name of an existing placement group into which to launch your instances, if any. A placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a placement group. For more information, see Placement Groups in the Amazon EC2 User Guide for Linux Instances. + */ + PlacementGroup?: XmlStringMaxLen255; + /** + * A comma-separated list of subnet IDs for a virtual private cloud (VPC). If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you specify for this parameter must reside in those Availability Zones. + */ + VPCZoneIdentifier?: XmlStringMaxLen2047; + /** + * A policy or a list of policies that are used to select the instances to terminate. The policies are executed in the order that you list them. For more information, see Controlling which Auto Scaling instances terminate during scale in in the Amazon EC2 Auto Scaling User Guide. + */ + TerminationPolicies?: TerminationPolicies; + /** + * Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see Instance scale-in protection in the Amazon EC2 Auto Scaling User Guide. + */ + NewInstancesProtectedFromScaleIn?: InstanceProtected; + /** + * The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other Amazon Web Services on your behalf. For more information, see Service-linked roles in the Amazon EC2 Auto Scaling User Guide. + */ + ServiceLinkedRoleARN?: ResourceName; + /** + * The maximum amount of time, in seconds, that an instance can be in service. The default is null. If specified, the value must be either 0 or a number equal to or greater than 86,400 seconds (1 day). To clear a previously set value, specify a new value of 0. For more information, see Replacing Auto Scaling instances based on maximum instance lifetime in the Amazon EC2 Auto Scaling User Guide. + */ + MaxInstanceLifetime?: MaxInstanceLifetime; + /** + * Enables or disables Capacity Rebalancing. For more information, see Amazon EC2 Auto Scaling Capacity Rebalancing in the Amazon EC2 Auto Scaling User Guide. + */ + CapacityRebalance?: CapacityRebalanceEnabled; + } + export type Values = XmlString[]; + export interface WarmPoolConfiguration { + /** + * The maximum number of instances that are allowed to be in the warm pool or in any state except Terminated for the Auto Scaling group. + */ + MaxGroupPreparedCapacity?: MaxGroupPreparedCapacity; + /** + * The minimum number of instances to maintain in the warm pool. + */ + MinSize?: WarmPoolMinSize; + /** + * The instance state to transition to after the lifecycle actions are complete. + */ + PoolState?: WarmPoolState; + /** + * The status of a warm pool that is marked for deletion. + */ + Status?: WarmPoolStatus; + } + export type WarmPoolMinSize = number; + export type WarmPoolSize = number; + export type WarmPoolState = "Stopped"|"Running"|string; + export type WarmPoolStatus = "PendingDelete"|string; + export type XmlString = string; + export type XmlStringMaxLen1023 = string; + export type XmlStringMaxLen1600 = string; + export type XmlStringMaxLen19 = string; + export type XmlStringMaxLen2047 = string; + export type XmlStringMaxLen255 = string; + export type XmlStringMaxLen32 = string; + export type XmlStringMaxLen511 = string; + export type XmlStringMaxLen64 = string; + export type XmlStringUserData = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2011-01-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AutoScaling client. + */ + export import Types = AutoScaling; +} +export = AutoScaling; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/autoscaling.js b/justdanceonline-main/node_modules/aws-sdk/clients/autoscaling.js new file mode 100644 index 0000000000000000000000000000000000000000..fd0921658d3b5ffc3f1e86feaa3a3d534fcaf6ee --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/autoscaling.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['autoscaling'] = {}; +AWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']); +Object.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', { + get: function get() { + var model = require('../apis/autoscaling-2011-01-01.min.json'); + model.paginators = require('../apis/autoscaling-2011-01-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AutoScaling; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/autoscalingplans.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/autoscalingplans.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ec13db166ce9bca3c0c5a59d02c4dcc81691b75e --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/autoscalingplans.d.ts @@ -0,0 +1,551 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class AutoScalingPlans extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AutoScalingPlans.Types.ClientConfiguration) + config: Config & AutoScalingPlans.Types.ClientConfiguration; + /** + * Creates a scaling plan. + */ + createScalingPlan(params: AutoScalingPlans.Types.CreateScalingPlanRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.CreateScalingPlanResponse) => void): Request; + /** + * Creates a scaling plan. + */ + createScalingPlan(callback?: (err: AWSError, data: AutoScalingPlans.Types.CreateScalingPlanResponse) => void): Request; + /** + * Deletes the specified scaling plan. Deleting a scaling plan deletes the underlying ScalingInstruction for all of the scalable resources that are covered by the plan. If the plan has launched resources or has scaling activities in progress, you must delete those resources separately. + */ + deleteScalingPlan(params: AutoScalingPlans.Types.DeleteScalingPlanRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.DeleteScalingPlanResponse) => void): Request; + /** + * Deletes the specified scaling plan. Deleting a scaling plan deletes the underlying ScalingInstruction for all of the scalable resources that are covered by the plan. If the plan has launched resources or has scaling activities in progress, you must delete those resources separately. + */ + deleteScalingPlan(callback?: (err: AWSError, data: AutoScalingPlans.Types.DeleteScalingPlanResponse) => void): Request; + /** + * Describes the scalable resources in the specified scaling plan. + */ + describeScalingPlanResources(params: AutoScalingPlans.Types.DescribeScalingPlanResourcesRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlanResourcesResponse) => void): Request; + /** + * Describes the scalable resources in the specified scaling plan. + */ + describeScalingPlanResources(callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlanResourcesResponse) => void): Request; + /** + * Describes one or more of your scaling plans. + */ + describeScalingPlans(params: AutoScalingPlans.Types.DescribeScalingPlansRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlansResponse) => void): Request; + /** + * Describes one or more of your scaling plans. + */ + describeScalingPlans(callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlansResponse) => void): Request; + /** + * Retrieves the forecast data for a scalable resource. Capacity forecasts are represented as predicted values, or data points, that are calculated using historical data points from a specified CloudWatch load metric. Data points are available for up to 56 days. + */ + getScalingPlanResourceForecastData(params: AutoScalingPlans.Types.GetScalingPlanResourceForecastDataRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.GetScalingPlanResourceForecastDataResponse) => void): Request; + /** + * Retrieves the forecast data for a scalable resource. Capacity forecasts are represented as predicted values, or data points, that are calculated using historical data points from a specified CloudWatch load metric. Data points are available for up to 56 days. + */ + getScalingPlanResourceForecastData(callback?: (err: AWSError, data: AutoScalingPlans.Types.GetScalingPlanResourceForecastDataResponse) => void): Request; + /** + * Updates the specified scaling plan. You cannot update a scaling plan if it is in the process of being created, updated, or deleted. + */ + updateScalingPlan(params: AutoScalingPlans.Types.UpdateScalingPlanRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.UpdateScalingPlanResponse) => void): Request; + /** + * Updates the specified scaling plan. You cannot update a scaling plan if it is in the process of being created, updated, or deleted. + */ + updateScalingPlan(callback?: (err: AWSError, data: AutoScalingPlans.Types.UpdateScalingPlanResponse) => void): Request; +} +declare namespace AutoScalingPlans { + export interface ApplicationSource { + /** + * The Amazon Resource Name (ARN) of a AWS CloudFormation stack. + */ + CloudFormationStackARN?: XmlString; + /** + * A set of tags (up to 50). + */ + TagFilters?: TagFilters; + } + export type ApplicationSources = ApplicationSource[]; + export type Cooldown = number; + export interface CreateScalingPlanRequest { + /** + * The name of the scaling plan. Names cannot contain vertical bars, colons, or forward slashes. + */ + ScalingPlanName: ScalingPlanName; + /** + * A CloudFormation stack or set of tags. You can create one scaling plan per application source. For more information, see ApplicationSource in the AWS Auto Scaling API Reference. + */ + ApplicationSource: ApplicationSource; + /** + * The scaling instructions. For more information, see ScalingInstruction in the AWS Auto Scaling API Reference. + */ + ScalingInstructions: ScalingInstructions; + } + export interface CreateScalingPlanResponse { + /** + * The version number of the scaling plan. This value is always 1. Currently, you cannot have multiple scaling plan versions. + */ + ScalingPlanVersion: ScalingPlanVersion; + } + export interface CustomizedLoadMetricSpecification { + /** + * The name of the metric. + */ + MetricName: MetricName; + /** + * The namespace of the metric. + */ + Namespace: MetricNamespace; + /** + * The dimensions of the metric. Conditional: If you published your metric with dimensions, you must specify the same dimensions in your customized load metric specification. + */ + Dimensions?: MetricDimensions; + /** + * The statistic of the metric. The only valid value is Sum. + */ + Statistic: MetricStatistic; + /** + * The unit of the metric. + */ + Unit?: MetricUnit; + } + export interface CustomizedScalingMetricSpecification { + /** + * The name of the metric. + */ + MetricName: MetricName; + /** + * The namespace of the metric. + */ + Namespace: MetricNamespace; + /** + * The dimensions of the metric. Conditional: If you published your metric with dimensions, you must specify the same dimensions in your customized scaling metric specification. + */ + Dimensions?: MetricDimensions; + /** + * The statistic of the metric. + */ + Statistic: MetricStatistic; + /** + * The unit of the metric. + */ + Unit?: MetricUnit; + } + export interface Datapoint { + /** + * The time stamp for the data point in UTC format. + */ + Timestamp?: TimestampType; + /** + * The value of the data point. + */ + Value?: MetricScale; + } + export type Datapoints = Datapoint[]; + export interface DeleteScalingPlanRequest { + /** + * The name of the scaling plan. + */ + ScalingPlanName: ScalingPlanName; + /** + * The version number of the scaling plan. Currently, the only valid value is 1. + */ + ScalingPlanVersion: ScalingPlanVersion; + } + export interface DeleteScalingPlanResponse { + } + export interface DescribeScalingPlanResourcesRequest { + /** + * The name of the scaling plan. + */ + ScalingPlanName: ScalingPlanName; + /** + * The version number of the scaling plan. Currently, the only valid value is 1. + */ + ScalingPlanVersion: ScalingPlanVersion; + /** + * The maximum number of scalable resources to return. The value must be between 1 and 50. The default value is 50. + */ + MaxResults?: MaxResults; + /** + * The token for the next set of results. + */ + NextToken?: NextToken; + } + export interface DescribeScalingPlanResourcesResponse { + /** + * Information about the scalable resources. + */ + ScalingPlanResources?: ScalingPlanResources; + /** + * The token required to get the next set of results. This value is null if there are no more results to return. + */ + NextToken?: NextToken; + } + export interface DescribeScalingPlansRequest { + /** + * The names of the scaling plans (up to 10). If you specify application sources, you cannot specify scaling plan names. + */ + ScalingPlanNames?: ScalingPlanNames; + /** + * The version number of the scaling plan. Currently, the only valid value is 1. If you specify a scaling plan version, you must also specify a scaling plan name. + */ + ScalingPlanVersion?: ScalingPlanVersion; + /** + * The sources for the applications (up to 10). If you specify scaling plan names, you cannot specify application sources. + */ + ApplicationSources?: ApplicationSources; + /** + * The maximum number of scalable resources to return. This value can be between 1 and 50. The default value is 50. + */ + MaxResults?: MaxResults; + /** + * The token for the next set of results. + */ + NextToken?: NextToken; + } + export interface DescribeScalingPlansResponse { + /** + * Information about the scaling plans. + */ + ScalingPlans?: ScalingPlans; + /** + * The token required to get the next set of results. This value is null if there are no more results to return. + */ + NextToken?: NextToken; + } + export type DisableDynamicScaling = boolean; + export type DisableScaleIn = boolean; + export type ForecastDataType = "CapacityForecast"|"LoadForecast"|"ScheduledActionMinCapacity"|"ScheduledActionMaxCapacity"|string; + export interface GetScalingPlanResourceForecastDataRequest { + /** + * The name of the scaling plan. + */ + ScalingPlanName: ScalingPlanName; + /** + * The version number of the scaling plan. Currently, the only valid value is 1. + */ + ScalingPlanVersion: ScalingPlanVersion; + /** + * The namespace of the AWS service. The only valid value is autoscaling. + */ + ServiceNamespace: ServiceNamespace; + /** + * The ID of the resource. This string consists of a prefix (autoScalingGroup) followed by the name of a specified Auto Scaling group (my-asg). Example: autoScalingGroup/my-asg. + */ + ResourceId: XmlString; + /** + * The scalable dimension for the resource. The only valid value is autoscaling:autoScalingGroup:DesiredCapacity. + */ + ScalableDimension: ScalableDimension; + /** + * The type of forecast data to get. LoadForecast: The load metric forecast. CapacityForecast: The capacity forecast. ScheduledActionMinCapacity: The minimum capacity for each scheduled scaling action. This data is calculated as the larger of two values: the capacity forecast or the minimum capacity in the scaling instruction. ScheduledActionMaxCapacity: The maximum capacity for each scheduled scaling action. The calculation used is determined by the predictive scaling maximum capacity behavior setting in the scaling instruction. + */ + ForecastDataType: ForecastDataType; + /** + * The inclusive start time of the time range for the forecast data to get. The date and time can be at most 56 days before the current date and time. + */ + StartTime: TimestampType; + /** + * The exclusive end time of the time range for the forecast data to get. The maximum time duration between the start and end time is seven days. Although this parameter can accept a date and time that is more than two days in the future, the availability of forecast data has limits. AWS Auto Scaling only issues forecasts for periods of two days in advance. + */ + EndTime: TimestampType; + } + export interface GetScalingPlanResourceForecastDataResponse { + /** + * The data points to return. + */ + Datapoints: Datapoints; + } + export type LoadMetricType = "ASGTotalCPUUtilization"|"ASGTotalNetworkIn"|"ASGTotalNetworkOut"|"ALBTargetGroupRequestCount"|string; + export type MaxResults = number; + export interface MetricDimension { + /** + * The name of the dimension. + */ + Name: MetricDimensionName; + /** + * The value of the dimension. + */ + Value: MetricDimensionValue; + } + export type MetricDimensionName = string; + export type MetricDimensionValue = string; + export type MetricDimensions = MetricDimension[]; + export type MetricName = string; + export type MetricNamespace = string; + export type MetricScale = number; + export type MetricStatistic = "Average"|"Minimum"|"Maximum"|"SampleCount"|"Sum"|string; + export type MetricUnit = string; + export type NextToken = string; + export type PolicyName = string; + export type PolicyType = "TargetTrackingScaling"|string; + export interface PredefinedLoadMetricSpecification { + /** + * The metric type. + */ + PredefinedLoadMetricType: LoadMetricType; + /** + * Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBTargetGroupRequestCount and there is a target group for an Application Load Balancer attached to the Auto Scaling group. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. This is an example: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use the DescribeTargetGroups API operation. + */ + ResourceLabel?: ResourceLabel; + } + export interface PredefinedScalingMetricSpecification { + /** + * The metric type. The ALBRequestCountPerTarget metric type applies only to Auto Scaling groups, Spot Fleet requests, and ECS services. + */ + PredefinedScalingMetricType: ScalingMetricType; + /** + * Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group for an Application Load Balancer attached to the Auto Scaling group, Spot Fleet request, or ECS service. You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. This is an example: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers API operation. To find the ARN for the target group, use the DescribeTargetGroups API operation. + */ + ResourceLabel?: ResourceLabel; + } + export type PredictiveScalingMaxCapacityBehavior = "SetForecastCapacityToMaxCapacity"|"SetMaxCapacityToForecastCapacity"|"SetMaxCapacityAboveForecastCapacity"|string; + export type PredictiveScalingMode = "ForecastAndScale"|"ForecastOnly"|string; + export type ResourceCapacity = number; + export type ResourceIdMaxLen1600 = string; + export type ResourceLabel = string; + export type ScalableDimension = "autoscaling:autoScalingGroup:DesiredCapacity"|"ecs:service:DesiredCount"|"ec2:spot-fleet-request:TargetCapacity"|"rds:cluster:ReadReplicaCount"|"dynamodb:table:ReadCapacityUnits"|"dynamodb:table:WriteCapacityUnits"|"dynamodb:index:ReadCapacityUnits"|"dynamodb:index:WriteCapacityUnits"|string; + export interface ScalingInstruction { + /** + * The namespace of the AWS service. + */ + ServiceNamespace: ServiceNamespace; + /** + * The ID of the resource. This string consists of the resource type and unique identifier. Auto Scaling group - The resource type is autoScalingGroup and the unique identifier is the name of the Auto Scaling group. Example: autoScalingGroup/my-asg. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension associated with the resource. autoscaling:autoScalingGroup:DesiredCapacity - The desired capacity of an Auto Scaling group. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. + */ + ScalableDimension: ScalableDimension; + /** + * The minimum capacity of the resource. + */ + MinCapacity: ResourceCapacity; + /** + * The maximum capacity of the resource. The exception to this upper limit is if you specify a non-default setting for PredictiveScalingMaxCapacityBehavior. + */ + MaxCapacity: ResourceCapacity; + /** + * The target tracking configurations (up to 10). Each of these structures must specify a unique scaling metric and a target value for the metric. + */ + TargetTrackingConfigurations: TargetTrackingConfigurations; + /** + * The predefined load metric to use for predictive scaling. This parameter or a CustomizedLoadMetricSpecification is required when configuring predictive scaling, and cannot be used otherwise. + */ + PredefinedLoadMetricSpecification?: PredefinedLoadMetricSpecification; + /** + * The customized load metric to use for predictive scaling. This parameter or a PredefinedLoadMetricSpecification is required when configuring predictive scaling, and cannot be used otherwise. + */ + CustomizedLoadMetricSpecification?: CustomizedLoadMetricSpecification; + /** + * The amount of time, in seconds, to buffer the run time of scheduled scaling actions when scaling out. For example, if the forecast says to add capacity at 10:00 AM, and the buffer time is 5 minutes, then the run time of the corresponding scheduled scaling action will be 9:55 AM. The intention is to give resources time to be provisioned. For example, it can take a few minutes to launch an EC2 instance. The actual amount of time required depends on several factors, such as the size of the instance and whether there are startup scripts to complete. The value must be less than the forecast interval duration of 3600 seconds (60 minutes). The default is 300 seconds. Only valid when configuring predictive scaling. + */ + ScheduledActionBufferTime?: ScheduledActionBufferTime; + /** + * Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity specified for the resource. The default value is SetForecastCapacityToMaxCapacity. The following are possible values: SetForecastCapacityToMaxCapacity - AWS Auto Scaling cannot scale resource capacity higher than the maximum capacity. The maximum capacity is enforced as a hard limit. SetMaxCapacityToForecastCapacity - AWS Auto Scaling may scale resource capacity higher than the maximum capacity to equal but not exceed forecast capacity. SetMaxCapacityAboveForecastCapacity - AWS Auto Scaling may scale resource capacity higher than the maximum capacity by a specified buffer value. The intention is to give the target tracking scaling policy extra capacity if unexpected traffic occurs. Only valid when configuring predictive scaling. + */ + PredictiveScalingMaxCapacityBehavior?: PredictiveScalingMaxCapacityBehavior; + /** + * The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. Only valid when configuring predictive scaling. Required if the PredictiveScalingMaxCapacityBehavior is set to SetMaxCapacityAboveForecastCapacity, and cannot be used otherwise. The range is 1-100. + */ + PredictiveScalingMaxCapacityBuffer?: ResourceCapacity; + /** + * The predictive scaling mode. The default value is ForecastAndScale. Otherwise, AWS Auto Scaling forecasts capacity but does not create any scheduled scaling actions based on the capacity forecast. + */ + PredictiveScalingMode?: PredictiveScalingMode; + /** + * Controls whether a resource's externally created scaling policies are kept or replaced. The default value is KeepExternalPolicies. If the parameter is set to ReplaceExternalPolicies, any scaling policies that are external to AWS Auto Scaling are deleted and new target tracking scaling policies created. Only valid when configuring dynamic scaling. Condition: The number of existing policies to be replaced must be less than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto Scaling keeps all existing policies and does not create new ones. + */ + ScalingPolicyUpdateBehavior?: ScalingPolicyUpdateBehavior; + /** + * Controls whether dynamic scaling by AWS Auto Scaling is disabled. When dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling policies based on the specified target tracking configurations. The default is enabled (false). + */ + DisableDynamicScaling?: DisableDynamicScaling; + } + export type ScalingInstructions = ScalingInstruction[]; + export type ScalingMetricType = "ASGAverageCPUUtilization"|"ASGAverageNetworkIn"|"ASGAverageNetworkOut"|"DynamoDBReadCapacityUtilization"|"DynamoDBWriteCapacityUtilization"|"ECSServiceAverageCPUUtilization"|"ECSServiceAverageMemoryUtilization"|"ALBRequestCountPerTarget"|"RDSReaderAverageCPUUtilization"|"RDSReaderAverageDatabaseConnections"|"EC2SpotFleetRequestAverageCPUUtilization"|"EC2SpotFleetRequestAverageNetworkIn"|"EC2SpotFleetRequestAverageNetworkOut"|string; + export interface ScalingPlan { + /** + * The name of the scaling plan. + */ + ScalingPlanName: ScalingPlanName; + /** + * The version number of the scaling plan. + */ + ScalingPlanVersion: ScalingPlanVersion; + /** + * A CloudFormation stack or a set of tags. You can create one scaling plan per application source. + */ + ApplicationSource: ApplicationSource; + /** + * The scaling instructions. + */ + ScalingInstructions: ScalingInstructions; + /** + * The status of the scaling plan. Active - The scaling plan is active. ActiveWithProblems - The scaling plan is active, but the scaling configuration for one or more resources could not be applied. CreationInProgress - The scaling plan is being created. CreationFailed - The scaling plan could not be created. DeletionInProgress - The scaling plan is being deleted. DeletionFailed - The scaling plan could not be deleted. UpdateInProgress - The scaling plan is being updated. UpdateFailed - The scaling plan could not be updated. + */ + StatusCode: ScalingPlanStatusCode; + /** + * A simple message about the current status of the scaling plan. + */ + StatusMessage?: XmlString; + /** + * The Unix time stamp when the scaling plan entered the current status. + */ + StatusStartTime?: TimestampType; + /** + * The Unix time stamp when the scaling plan was created. + */ + CreationTime?: TimestampType; + } + export type ScalingPlanName = string; + export type ScalingPlanNames = ScalingPlanName[]; + export interface ScalingPlanResource { + /** + * The name of the scaling plan. + */ + ScalingPlanName: ScalingPlanName; + /** + * The version number of the scaling plan. + */ + ScalingPlanVersion: ScalingPlanVersion; + /** + * The namespace of the AWS service. + */ + ServiceNamespace: ServiceNamespace; + /** + * The ID of the resource. This string consists of the resource type and unique identifier. Auto Scaling group - The resource type is autoScalingGroup and the unique identifier is the name of the Auto Scaling group. Example: autoScalingGroup/my-asg. ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp. Spot Fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. DynamoDB table - The resource type is table and the unique identifier is the resource ID. Example: table/my-table. DynamoDB global secondary index - The resource type is index and the unique identifier is the resource ID. Example: table/my-table/index/my-table-index. Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name. Example: cluster:my-db-cluster. + */ + ResourceId: ResourceIdMaxLen1600; + /** + * The scalable dimension for the resource. autoscaling:autoScalingGroup:DesiredCapacity - The desired capacity of an Auto Scaling group. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet request. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. + */ + ScalableDimension: ScalableDimension; + /** + * The scaling policies. + */ + ScalingPolicies?: ScalingPolicies; + /** + * The scaling status of the resource. Active - The scaling configuration is active. Inactive - The scaling configuration is not active because the scaling plan is being created or the scaling configuration could not be applied. Check the status message for more information. PartiallyActive - The scaling configuration is partially active because the scaling plan is being created or deleted or the scaling configuration could not be fully applied. Check the status message for more information. + */ + ScalingStatusCode: ScalingStatusCode; + /** + * A simple message about the current scaling status of the resource. + */ + ScalingStatusMessage?: XmlString; + } + export type ScalingPlanResources = ScalingPlanResource[]; + export type ScalingPlanStatusCode = "Active"|"ActiveWithProblems"|"CreationInProgress"|"CreationFailed"|"DeletionInProgress"|"DeletionFailed"|"UpdateInProgress"|"UpdateFailed"|string; + export type ScalingPlanVersion = number; + export type ScalingPlans = ScalingPlan[]; + export type ScalingPolicies = ScalingPolicy[]; + export interface ScalingPolicy { + /** + * The name of the scaling policy. + */ + PolicyName: PolicyName; + /** + * The type of scaling policy. + */ + PolicyType: PolicyType; + /** + * The target tracking scaling policy. Includes support for predefined or customized metrics. + */ + TargetTrackingConfiguration?: TargetTrackingConfiguration; + } + export type ScalingPolicyUpdateBehavior = "KeepExternalPolicies"|"ReplaceExternalPolicies"|string; + export type ScalingStatusCode = "Inactive"|"PartiallyActive"|"Active"|string; + export type ScheduledActionBufferTime = number; + export type ServiceNamespace = "autoscaling"|"ecs"|"ec2"|"rds"|"dynamodb"|string; + export interface TagFilter { + /** + * The tag key. + */ + Key?: XmlStringMaxLen128; + /** + * The tag values (0 to 20). + */ + Values?: TagValues; + } + export type TagFilters = TagFilter[]; + export type TagValues = XmlStringMaxLen256[]; + export interface TargetTrackingConfiguration { + /** + * A predefined metric. You can specify either a predefined metric or a customized metric. + */ + PredefinedScalingMetricSpecification?: PredefinedScalingMetricSpecification; + /** + * A customized metric. You can specify either a predefined metric or a customized metric. + */ + CustomizedScalingMetricSpecification?: CustomizedScalingMetricSpecification; + /** + * The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. + */ + TargetValue: MetricScale; + /** + * Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy doesn't remove capacity from the scalable resource. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable resource. The default value is false. + */ + DisableScaleIn?: DisableScaleIn; + /** + * The amount of time, in seconds, to wait for a previous scale-out activity to take effect. This property is not used if the scalable resource is an Auto Scaling group. With the scale-out cooldown period, the intention is to continuously (but not excessively) scale out. After Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. + */ + ScaleOutCooldown?: Cooldown; + /** + * The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. This property is not used if the scalable resource is an Auto Scaling group. With the scale-in cooldown period, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the scale-in cooldown period, Auto Scaling scales out the target immediately. In this case, the scale-in cooldown period stops and doesn't complete. + */ + ScaleInCooldown?: Cooldown; + /** + * The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. This value is used only if the resource is an Auto Scaling group. + */ + EstimatedInstanceWarmup?: Cooldown; + } + export type TargetTrackingConfigurations = TargetTrackingConfiguration[]; + export type TimestampType = Date; + export interface UpdateScalingPlanRequest { + /** + * The name of the scaling plan. + */ + ScalingPlanName: ScalingPlanName; + /** + * The version number of the scaling plan. The only valid value is 1. Currently, you cannot have multiple scaling plan versions. + */ + ScalingPlanVersion: ScalingPlanVersion; + /** + * A CloudFormation stack or set of tags. For more information, see ApplicationSource in the AWS Auto Scaling API Reference. + */ + ApplicationSource?: ApplicationSource; + /** + * The scaling instructions. For more information, see ScalingInstruction in the AWS Auto Scaling API Reference. + */ + ScalingInstructions?: ScalingInstructions; + } + export interface UpdateScalingPlanResponse { + } + export type XmlString = string; + export type XmlStringMaxLen128 = string; + export type XmlStringMaxLen256 = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-01-06"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AutoScalingPlans client. + */ + export import Types = AutoScalingPlans; +} +export = AutoScalingPlans; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/autoscalingplans.js b/justdanceonline-main/node_modules/aws-sdk/clients/autoscalingplans.js new file mode 100644 index 0000000000000000000000000000000000000000..aaf48ebb0d387ce6fbc37fb60c80b3643f5f1052 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/autoscalingplans.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['autoscalingplans'] = {}; +AWS.AutoScalingPlans = Service.defineService('autoscalingplans', ['2018-01-06']); +Object.defineProperty(apiLoader.services['autoscalingplans'], '2018-01-06', { + get: function get() { + var model = require('../apis/autoscaling-plans-2018-01-06.min.json'); + model.paginators = require('../apis/autoscaling-plans-2018-01-06.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AutoScalingPlans; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/backup.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/backup.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d1f7d4e2bbcc4cb57ea780493a0af20901973961 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/backup.d.ts @@ -0,0 +1,2365 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Backup extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Backup.Types.ClientConfiguration) + config: Config & Backup.Types.ClientConfiguration; + /** + * Creates a backup plan using a backup plan name and backup rules. A backup plan is a document that contains information that AWS Backup uses to schedule tasks that create recovery points for resources. If you call CreateBackupPlan with a plan that already exists, an AlreadyExistsException is returned. + */ + createBackupPlan(params: Backup.Types.CreateBackupPlanInput, callback?: (err: AWSError, data: Backup.Types.CreateBackupPlanOutput) => void): Request; + /** + * Creates a backup plan using a backup plan name and backup rules. A backup plan is a document that contains information that AWS Backup uses to schedule tasks that create recovery points for resources. If you call CreateBackupPlan with a plan that already exists, an AlreadyExistsException is returned. + */ + createBackupPlan(callback?: (err: AWSError, data: Backup.Types.CreateBackupPlanOutput) => void): Request; + /** + * Creates a JSON document that specifies a set of resources to assign to a backup plan. Resources can be included by specifying patterns for a ListOfTags and selected Resources. For example, consider the following patterns: Resources: "arn:aws:ec2:region:account-id:volume/volume-id" ConditionKey:"department" ConditionValue:"finance" ConditionType:"StringEquals" ConditionKey:"importance" ConditionValue:"critical" ConditionType:"StringEquals" Using these patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that are tagged as "department=finance", "importance=critical", in addition to an EBS volume with the specified volume ID. Resources and conditions are additive in that all resources that match the pattern are selected. This shouldn't be confused with a logical AND, where all conditions must match. The matching patterns are logically put together using the OR operator. In other words, all patterns that match are selected for backup. + */ + createBackupSelection(params: Backup.Types.CreateBackupSelectionInput, callback?: (err: AWSError, data: Backup.Types.CreateBackupSelectionOutput) => void): Request; + /** + * Creates a JSON document that specifies a set of resources to assign to a backup plan. Resources can be included by specifying patterns for a ListOfTags and selected Resources. For example, consider the following patterns: Resources: "arn:aws:ec2:region:account-id:volume/volume-id" ConditionKey:"department" ConditionValue:"finance" ConditionType:"StringEquals" ConditionKey:"importance" ConditionValue:"critical" ConditionType:"StringEquals" Using these patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that are tagged as "department=finance", "importance=critical", in addition to an EBS volume with the specified volume ID. Resources and conditions are additive in that all resources that match the pattern are selected. This shouldn't be confused with a logical AND, where all conditions must match. The matching patterns are logically put together using the OR operator. In other words, all patterns that match are selected for backup. + */ + createBackupSelection(callback?: (err: AWSError, data: Backup.Types.CreateBackupSelectionOutput) => void): Request; + /** + * Creates a logical container where backups are stored. A CreateBackupVault request includes a name, optionally one or more resource tags, an encryption key, and a request ID. Sensitive data, such as passport numbers, should not be included the name of a backup vault. + */ + createBackupVault(params: Backup.Types.CreateBackupVaultInput, callback?: (err: AWSError, data: Backup.Types.CreateBackupVaultOutput) => void): Request; + /** + * Creates a logical container where backups are stored. A CreateBackupVault request includes a name, optionally one or more resource tags, an encryption key, and a request ID. Sensitive data, such as passport numbers, should not be included the name of a backup vault. + */ + createBackupVault(callback?: (err: AWSError, data: Backup.Types.CreateBackupVaultOutput) => void): Request; + /** + * Deletes a backup plan. A backup plan can only be deleted after all associated selections of resources have been deleted. Deleting a backup plan deletes the current version of a backup plan. Previous versions, if any, will still exist. + */ + deleteBackupPlan(params: Backup.Types.DeleteBackupPlanInput, callback?: (err: AWSError, data: Backup.Types.DeleteBackupPlanOutput) => void): Request; + /** + * Deletes a backup plan. A backup plan can only be deleted after all associated selections of resources have been deleted. Deleting a backup plan deletes the current version of a backup plan. Previous versions, if any, will still exist. + */ + deleteBackupPlan(callback?: (err: AWSError, data: Backup.Types.DeleteBackupPlanOutput) => void): Request; + /** + * Deletes the resource selection associated with a backup plan that is specified by the SelectionId. + */ + deleteBackupSelection(params: Backup.Types.DeleteBackupSelectionInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the resource selection associated with a backup plan that is specified by the SelectionId. + */ + deleteBackupSelection(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the backup vault identified by its name. A vault can be deleted only if it is empty. + */ + deleteBackupVault(params: Backup.Types.DeleteBackupVaultInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the backup vault identified by its name. A vault can be deleted only if it is empty. + */ + deleteBackupVault(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the policy document that manages permissions on a backup vault. + */ + deleteBackupVaultAccessPolicy(params: Backup.Types.DeleteBackupVaultAccessPolicyInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the policy document that manages permissions on a backup vault. + */ + deleteBackupVaultAccessPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes event notifications for the specified backup vault. + */ + deleteBackupVaultNotifications(params: Backup.Types.DeleteBackupVaultNotificationsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes event notifications for the specified backup vault. + */ + deleteBackupVaultNotifications(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the recovery point specified by a recovery point ID. If the recovery point ID belongs to a continuous backup, calling this endpoint deletes the existing continuous backup and stops future continuous backup. + */ + deleteRecoveryPoint(params: Backup.Types.DeleteRecoveryPointInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the recovery point specified by a recovery point ID. If the recovery point ID belongs to a continuous backup, calling this endpoint deletes the existing continuous backup and stops future continuous backup. + */ + deleteRecoveryPoint(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Returns backup job details for the specified BackupJobId. + */ + describeBackupJob(params: Backup.Types.DescribeBackupJobInput, callback?: (err: AWSError, data: Backup.Types.DescribeBackupJobOutput) => void): Request; + /** + * Returns backup job details for the specified BackupJobId. + */ + describeBackupJob(callback?: (err: AWSError, data: Backup.Types.DescribeBackupJobOutput) => void): Request; + /** + * Returns metadata about a backup vault specified by its name. + */ + describeBackupVault(params: Backup.Types.DescribeBackupVaultInput, callback?: (err: AWSError, data: Backup.Types.DescribeBackupVaultOutput) => void): Request; + /** + * Returns metadata about a backup vault specified by its name. + */ + describeBackupVault(callback?: (err: AWSError, data: Backup.Types.DescribeBackupVaultOutput) => void): Request; + /** + * Returns metadata associated with creating a copy of a resource. + */ + describeCopyJob(params: Backup.Types.DescribeCopyJobInput, callback?: (err: AWSError, data: Backup.Types.DescribeCopyJobOutput) => void): Request; + /** + * Returns metadata associated with creating a copy of a resource. + */ + describeCopyJob(callback?: (err: AWSError, data: Backup.Types.DescribeCopyJobOutput) => void): Request; + /** + * Describes the global settings of the AWS account, including whether it is opted in to cross-account backup. + */ + describeGlobalSettings(params: Backup.Types.DescribeGlobalSettingsInput, callback?: (err: AWSError, data: Backup.Types.DescribeGlobalSettingsOutput) => void): Request; + /** + * Describes the global settings of the AWS account, including whether it is opted in to cross-account backup. + */ + describeGlobalSettings(callback?: (err: AWSError, data: Backup.Types.DescribeGlobalSettingsOutput) => void): Request; + /** + * Returns information about a saved resource, including the last time it was backed up, its Amazon Resource Name (ARN), and the AWS service type of the saved resource. + */ + describeProtectedResource(params: Backup.Types.DescribeProtectedResourceInput, callback?: (err: AWSError, data: Backup.Types.DescribeProtectedResourceOutput) => void): Request; + /** + * Returns information about a saved resource, including the last time it was backed up, its Amazon Resource Name (ARN), and the AWS service type of the saved resource. + */ + describeProtectedResource(callback?: (err: AWSError, data: Backup.Types.DescribeProtectedResourceOutput) => void): Request; + /** + * Returns metadata associated with a recovery point, including ID, status, encryption, and lifecycle. + */ + describeRecoveryPoint(params: Backup.Types.DescribeRecoveryPointInput, callback?: (err: AWSError, data: Backup.Types.DescribeRecoveryPointOutput) => void): Request; + /** + * Returns metadata associated with a recovery point, including ID, status, encryption, and lifecycle. + */ + describeRecoveryPoint(callback?: (err: AWSError, data: Backup.Types.DescribeRecoveryPointOutput) => void): Request; + /** + * Returns the current service opt-in settings for the Region. If service-opt-in is enabled for a service, AWS Backup tries to protect that service's resources in this Region, when the resource is included in an on-demand backup or scheduled backup plan. Otherwise, AWS Backup does not try to protect that service's resources in this Region, AWS Backup does not try to protect that service's resources in this Region. + */ + describeRegionSettings(params: Backup.Types.DescribeRegionSettingsInput, callback?: (err: AWSError, data: Backup.Types.DescribeRegionSettingsOutput) => void): Request; + /** + * Returns the current service opt-in settings for the Region. If service-opt-in is enabled for a service, AWS Backup tries to protect that service's resources in this Region, when the resource is included in an on-demand backup or scheduled backup plan. Otherwise, AWS Backup does not try to protect that service's resources in this Region, AWS Backup does not try to protect that service's resources in this Region. + */ + describeRegionSettings(callback?: (err: AWSError, data: Backup.Types.DescribeRegionSettingsOutput) => void): Request; + /** + * Returns metadata associated with a restore job that is specified by a job ID. + */ + describeRestoreJob(params: Backup.Types.DescribeRestoreJobInput, callback?: (err: AWSError, data: Backup.Types.DescribeRestoreJobOutput) => void): Request; + /** + * Returns metadata associated with a restore job that is specified by a job ID. + */ + describeRestoreJob(callback?: (err: AWSError, data: Backup.Types.DescribeRestoreJobOutput) => void): Request; + /** + * Deletes the specified continuous backup recovery point from AWS Backup and releases control of that continuous backup to the source service, such as Amazon RDS. The source service will continue to create and retain continuous backups using the lifecycle that you specified in your original backup plan. Does not support snapshot backup recovery points. + */ + disassociateRecoveryPoint(params: Backup.Types.DisassociateRecoveryPointInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified continuous backup recovery point from AWS Backup and releases control of that continuous backup to the source service, such as Amazon RDS. The source service will continue to create and retain continuous backups using the lifecycle that you specified in your original backup plan. Does not support snapshot backup recovery points. + */ + disassociateRecoveryPoint(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Returns the backup plan that is specified by the plan ID as a backup template. + */ + exportBackupPlanTemplate(params: Backup.Types.ExportBackupPlanTemplateInput, callback?: (err: AWSError, data: Backup.Types.ExportBackupPlanTemplateOutput) => void): Request; + /** + * Returns the backup plan that is specified by the plan ID as a backup template. + */ + exportBackupPlanTemplate(callback?: (err: AWSError, data: Backup.Types.ExportBackupPlanTemplateOutput) => void): Request; + /** + * Returns BackupPlan details for the specified BackupPlanId. The details are the body of a backup plan in JSON format, in addition to plan metadata. + */ + getBackupPlan(params: Backup.Types.GetBackupPlanInput, callback?: (err: AWSError, data: Backup.Types.GetBackupPlanOutput) => void): Request; + /** + * Returns BackupPlan details for the specified BackupPlanId. The details are the body of a backup plan in JSON format, in addition to plan metadata. + */ + getBackupPlan(callback?: (err: AWSError, data: Backup.Types.GetBackupPlanOutput) => void): Request; + /** + * Returns a valid JSON document specifying a backup plan or an error. + */ + getBackupPlanFromJSON(params: Backup.Types.GetBackupPlanFromJSONInput, callback?: (err: AWSError, data: Backup.Types.GetBackupPlanFromJSONOutput) => void): Request; + /** + * Returns a valid JSON document specifying a backup plan or an error. + */ + getBackupPlanFromJSON(callback?: (err: AWSError, data: Backup.Types.GetBackupPlanFromJSONOutput) => void): Request; + /** + * Returns the template specified by its templateId as a backup plan. + */ + getBackupPlanFromTemplate(params: Backup.Types.GetBackupPlanFromTemplateInput, callback?: (err: AWSError, data: Backup.Types.GetBackupPlanFromTemplateOutput) => void): Request; + /** + * Returns the template specified by its templateId as a backup plan. + */ + getBackupPlanFromTemplate(callback?: (err: AWSError, data: Backup.Types.GetBackupPlanFromTemplateOutput) => void): Request; + /** + * Returns selection metadata and a document in JSON format that specifies a list of resources that are associated with a backup plan. + */ + getBackupSelection(params: Backup.Types.GetBackupSelectionInput, callback?: (err: AWSError, data: Backup.Types.GetBackupSelectionOutput) => void): Request; + /** + * Returns selection metadata and a document in JSON format that specifies a list of resources that are associated with a backup plan. + */ + getBackupSelection(callback?: (err: AWSError, data: Backup.Types.GetBackupSelectionOutput) => void): Request; + /** + * Returns the access policy document that is associated with the named backup vault. + */ + getBackupVaultAccessPolicy(params: Backup.Types.GetBackupVaultAccessPolicyInput, callback?: (err: AWSError, data: Backup.Types.GetBackupVaultAccessPolicyOutput) => void): Request; + /** + * Returns the access policy document that is associated with the named backup vault. + */ + getBackupVaultAccessPolicy(callback?: (err: AWSError, data: Backup.Types.GetBackupVaultAccessPolicyOutput) => void): Request; + /** + * Returns event notifications for the specified backup vault. + */ + getBackupVaultNotifications(params: Backup.Types.GetBackupVaultNotificationsInput, callback?: (err: AWSError, data: Backup.Types.GetBackupVaultNotificationsOutput) => void): Request; + /** + * Returns event notifications for the specified backup vault. + */ + getBackupVaultNotifications(callback?: (err: AWSError, data: Backup.Types.GetBackupVaultNotificationsOutput) => void): Request; + /** + * Returns a set of metadata key-value pairs that were used to create the backup. + */ + getRecoveryPointRestoreMetadata(params: Backup.Types.GetRecoveryPointRestoreMetadataInput, callback?: (err: AWSError, data: Backup.Types.GetRecoveryPointRestoreMetadataOutput) => void): Request; + /** + * Returns a set of metadata key-value pairs that were used to create the backup. + */ + getRecoveryPointRestoreMetadata(callback?: (err: AWSError, data: Backup.Types.GetRecoveryPointRestoreMetadataOutput) => void): Request; + /** + * Returns the AWS resource types supported by AWS Backup. + */ + getSupportedResourceTypes(callback?: (err: AWSError, data: Backup.Types.GetSupportedResourceTypesOutput) => void): Request; + /** + * Returns a list of existing backup jobs for an authenticated account for the last 30 days. For a longer period of time, consider using these monitoring tools. + */ + listBackupJobs(params: Backup.Types.ListBackupJobsInput, callback?: (err: AWSError, data: Backup.Types.ListBackupJobsOutput) => void): Request; + /** + * Returns a list of existing backup jobs for an authenticated account for the last 30 days. For a longer period of time, consider using these monitoring tools. + */ + listBackupJobs(callback?: (err: AWSError, data: Backup.Types.ListBackupJobsOutput) => void): Request; + /** + * Returns metadata of your saved backup plan templates, including the template ID, name, and the creation and deletion dates. + */ + listBackupPlanTemplates(params: Backup.Types.ListBackupPlanTemplatesInput, callback?: (err: AWSError, data: Backup.Types.ListBackupPlanTemplatesOutput) => void): Request; + /** + * Returns metadata of your saved backup plan templates, including the template ID, name, and the creation and deletion dates. + */ + listBackupPlanTemplates(callback?: (err: AWSError, data: Backup.Types.ListBackupPlanTemplatesOutput) => void): Request; + /** + * Returns version metadata of your backup plans, including Amazon Resource Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and version IDs. + */ + listBackupPlanVersions(params: Backup.Types.ListBackupPlanVersionsInput, callback?: (err: AWSError, data: Backup.Types.ListBackupPlanVersionsOutput) => void): Request; + /** + * Returns version metadata of your backup plans, including Amazon Resource Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and version IDs. + */ + listBackupPlanVersions(callback?: (err: AWSError, data: Backup.Types.ListBackupPlanVersionsOutput) => void): Request; + /** + * Returns a list of existing backup plans for an authenticated account. The list is populated only if the advanced option is set for the backup plan. The list contains information such as Amazon Resource Names (ARNs), plan IDs, creation and deletion dates, version IDs, plan names, and creator request IDs. + */ + listBackupPlans(params: Backup.Types.ListBackupPlansInput, callback?: (err: AWSError, data: Backup.Types.ListBackupPlansOutput) => void): Request; + /** + * Returns a list of existing backup plans for an authenticated account. The list is populated only if the advanced option is set for the backup plan. The list contains information such as Amazon Resource Names (ARNs), plan IDs, creation and deletion dates, version IDs, plan names, and creator request IDs. + */ + listBackupPlans(callback?: (err: AWSError, data: Backup.Types.ListBackupPlansOutput) => void): Request; + /** + * Returns an array containing metadata of the resources associated with the target backup plan. + */ + listBackupSelections(params: Backup.Types.ListBackupSelectionsInput, callback?: (err: AWSError, data: Backup.Types.ListBackupSelectionsOutput) => void): Request; + /** + * Returns an array containing metadata of the resources associated with the target backup plan. + */ + listBackupSelections(callback?: (err: AWSError, data: Backup.Types.ListBackupSelectionsOutput) => void): Request; + /** + * Returns a list of recovery point storage containers along with information about them. + */ + listBackupVaults(params: Backup.Types.ListBackupVaultsInput, callback?: (err: AWSError, data: Backup.Types.ListBackupVaultsOutput) => void): Request; + /** + * Returns a list of recovery point storage containers along with information about them. + */ + listBackupVaults(callback?: (err: AWSError, data: Backup.Types.ListBackupVaultsOutput) => void): Request; + /** + * Returns metadata about your copy jobs. + */ + listCopyJobs(params: Backup.Types.ListCopyJobsInput, callback?: (err: AWSError, data: Backup.Types.ListCopyJobsOutput) => void): Request; + /** + * Returns metadata about your copy jobs. + */ + listCopyJobs(callback?: (err: AWSError, data: Backup.Types.ListCopyJobsOutput) => void): Request; + /** + * Returns an array of resources successfully backed up by AWS Backup, including the time the resource was saved, an Amazon Resource Name (ARN) of the resource, and a resource type. + */ + listProtectedResources(params: Backup.Types.ListProtectedResourcesInput, callback?: (err: AWSError, data: Backup.Types.ListProtectedResourcesOutput) => void): Request; + /** + * Returns an array of resources successfully backed up by AWS Backup, including the time the resource was saved, an Amazon Resource Name (ARN) of the resource, and a resource type. + */ + listProtectedResources(callback?: (err: AWSError, data: Backup.Types.ListProtectedResourcesOutput) => void): Request; + /** + * Returns detailed information about the recovery points stored in a backup vault. + */ + listRecoveryPointsByBackupVault(params: Backup.Types.ListRecoveryPointsByBackupVaultInput, callback?: (err: AWSError, data: Backup.Types.ListRecoveryPointsByBackupVaultOutput) => void): Request; + /** + * Returns detailed information about the recovery points stored in a backup vault. + */ + listRecoveryPointsByBackupVault(callback?: (err: AWSError, data: Backup.Types.ListRecoveryPointsByBackupVaultOutput) => void): Request; + /** + * Returns detailed information about recovery points of the type specified by a resource Amazon Resource Name (ARN). + */ + listRecoveryPointsByResource(params: Backup.Types.ListRecoveryPointsByResourceInput, callback?: (err: AWSError, data: Backup.Types.ListRecoveryPointsByResourceOutput) => void): Request; + /** + * Returns detailed information about recovery points of the type specified by a resource Amazon Resource Name (ARN). + */ + listRecoveryPointsByResource(callback?: (err: AWSError, data: Backup.Types.ListRecoveryPointsByResourceOutput) => void): Request; + /** + * Returns a list of jobs that AWS Backup initiated to restore a saved resource, including metadata about the recovery process. + */ + listRestoreJobs(params: Backup.Types.ListRestoreJobsInput, callback?: (err: AWSError, data: Backup.Types.ListRestoreJobsOutput) => void): Request; + /** + * Returns a list of jobs that AWS Backup initiated to restore a saved resource, including metadata about the recovery process. + */ + listRestoreJobs(callback?: (err: AWSError, data: Backup.Types.ListRestoreJobsOutput) => void): Request; + /** + * Returns a list of key-value pairs assigned to a target recovery point, backup plan, or backup vault. ListTags are currently only supported with Amazon EFS backups. + */ + listTags(params: Backup.Types.ListTagsInput, callback?: (err: AWSError, data: Backup.Types.ListTagsOutput) => void): Request; + /** + * Returns a list of key-value pairs assigned to a target recovery point, backup plan, or backup vault. ListTags are currently only supported with Amazon EFS backups. + */ + listTags(callback?: (err: AWSError, data: Backup.Types.ListTagsOutput) => void): Request; + /** + * Sets a resource-based policy that is used to manage access permissions on the target backup vault. Requires a backup vault name and an access policy document in JSON format. + */ + putBackupVaultAccessPolicy(params: Backup.Types.PutBackupVaultAccessPolicyInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets a resource-based policy that is used to manage access permissions on the target backup vault. Requires a backup vault name and an access policy document in JSON format. + */ + putBackupVaultAccessPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Turns on notifications on a backup vault for the specified topic and events. + */ + putBackupVaultNotifications(params: Backup.Types.PutBackupVaultNotificationsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Turns on notifications on a backup vault for the specified topic and events. + */ + putBackupVaultNotifications(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Starts an on-demand backup job for the specified resource. + */ + startBackupJob(params: Backup.Types.StartBackupJobInput, callback?: (err: AWSError, data: Backup.Types.StartBackupJobOutput) => void): Request; + /** + * Starts an on-demand backup job for the specified resource. + */ + startBackupJob(callback?: (err: AWSError, data: Backup.Types.StartBackupJobOutput) => void): Request; + /** + * Starts a job to create a one-time copy of the specified resource. Does not support continuous backups. + */ + startCopyJob(params: Backup.Types.StartCopyJobInput, callback?: (err: AWSError, data: Backup.Types.StartCopyJobOutput) => void): Request; + /** + * Starts a job to create a one-time copy of the specified resource. Does not support continuous backups. + */ + startCopyJob(callback?: (err: AWSError, data: Backup.Types.StartCopyJobOutput) => void): Request; + /** + * Recovers the saved resource identified by an Amazon Resource Name (ARN). + */ + startRestoreJob(params: Backup.Types.StartRestoreJobInput, callback?: (err: AWSError, data: Backup.Types.StartRestoreJobOutput) => void): Request; + /** + * Recovers the saved resource identified by an Amazon Resource Name (ARN). + */ + startRestoreJob(callback?: (err: AWSError, data: Backup.Types.StartRestoreJobOutput) => void): Request; + /** + * Attempts to cancel a job to create a one-time backup of a resource. + */ + stopBackupJob(params: Backup.Types.StopBackupJobInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Attempts to cancel a job to create a one-time backup of a resource. + */ + stopBackupJob(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Assigns a set of key-value pairs to a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN). + */ + tagResource(params: Backup.Types.TagResourceInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Assigns a set of key-value pairs to a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN). + */ + tagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a set of key-value pairs from a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN) + */ + untagResource(params: Backup.Types.UntagResourceInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a set of key-value pairs from a recovery point, backup plan, or backup vault identified by an Amazon Resource Name (ARN) + */ + untagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates an existing backup plan identified by its backupPlanId with the input document in JSON format. The new version is uniquely identified by a VersionId. + */ + updateBackupPlan(params: Backup.Types.UpdateBackupPlanInput, callback?: (err: AWSError, data: Backup.Types.UpdateBackupPlanOutput) => void): Request; + /** + * Updates an existing backup plan identified by its backupPlanId with the input document in JSON format. The new version is uniquely identified by a VersionId. + */ + updateBackupPlan(callback?: (err: AWSError, data: Backup.Types.UpdateBackupPlanOutput) => void): Request; + /** + * Updates the current global settings for the AWS account. Use the DescribeGlobalSettings API to determine the current settings. + */ + updateGlobalSettings(params: Backup.Types.UpdateGlobalSettingsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the current global settings for the AWS account. Use the DescribeGlobalSettings API to determine the current settings. + */ + updateGlobalSettings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets the transition lifecycle of a recovery point. The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. Does not support continuous backups. + */ + updateRecoveryPointLifecycle(params: Backup.Types.UpdateRecoveryPointLifecycleInput, callback?: (err: AWSError, data: Backup.Types.UpdateRecoveryPointLifecycleOutput) => void): Request; + /** + * Sets the transition lifecycle of a recovery point. The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. Does not support continuous backups. + */ + updateRecoveryPointLifecycle(callback?: (err: AWSError, data: Backup.Types.UpdateRecoveryPointLifecycleOutput) => void): Request; + /** + * Updates the current service opt-in settings for the Region. If service-opt-in is enabled for a service, AWS Backup tries to protect that service's resources in this Region, when the resource is included in an on-demand backup or scheduled backup plan. Otherwise, AWS Backup does not try to protect that service's resources in this Region. Use the DescribeRegionSettings API to determine the resource types that are supported. + */ + updateRegionSettings(params: Backup.Types.UpdateRegionSettingsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the current service opt-in settings for the Region. If service-opt-in is enabled for a service, AWS Backup tries to protect that service's resources in this Region, when the resource is included in an on-demand backup or scheduled backup plan. Otherwise, AWS Backup does not try to protect that service's resources in this Region. Use the DescribeRegionSettings API to determine the resource types that are supported. + */ + updateRegionSettings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; +} +declare namespace Backup { + export type ARN = string; + export type AccountId = string; + export interface AdvancedBackupSetting { + /** + * Specifies an object containing resource type and backup options. The only supported resource type is Amazon EC2 instances with Windows VSS. For an CloudFormation example, see the sample CloudFormation template to enable Windows VSS in the AWS Backup User Guide. Valid values: EC2. + */ + ResourceType?: ResourceType; + /** + * Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Valid values: Set to "WindowsVSS":"enabled" to enable the WindowsVSS backup option and create a VSS Windows backup. Set to "WindowsVSS":"disabled" to create a regular backup. The WindowsVSS option is not enabled by default. If you specify an invalid option, you get an InvalidParameterValueException exception. For more information about Windows VSS backups, see Creating a VSS-Enabled Windows Backup. + */ + BackupOptions?: BackupOptions; + } + export type AdvancedBackupSettings = AdvancedBackupSetting[]; + export interface BackupJob { + /** + * The account ID that owns the backup job. + */ + AccountId?: AccountId; + /** + * Uniquely identifies a request to AWS Backup to back up a resource. + */ + BackupJobId?: string; + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * An ARN that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + ResourceArn?: ARN; + /** + * The date and time a backup job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time a job to create a backup job is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CompletionDate?: timestamp; + /** + * The current state of a resource recovery point. + */ + State?: BackupJobState; + /** + * A detailed message explaining the status of the job to back up a resource. + */ + StatusMessage?: string; + /** + * Contains an estimated percentage complete of a job at the time the job status was queried. + */ + PercentDone?: string; + /** + * The size, in bytes, of a backup. + */ + BackupSizeInBytes?: Long; + /** + * Specifies the IAM role ARN used to create the target recovery point. IAM roles other than the default role must include either AWSBackup or AwsBackup in the role name. For example, arn:aws:iam::123456789012:role/AWSBackupRDSAccess. Role names without those strings lack permissions to perform backup jobs. + */ + IamRoleArn?: IAMRoleArn; + /** + * Contains identifying information about the creation of a backup job, including the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId of the backup plan used to create it. + */ + CreatedBy?: RecoveryPointCreator; + /** + * The date and time a job to back up resources is expected to be completed, in Unix format and Coordinated Universal Time (UTC). The value of ExpectedCompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + ExpectedCompletionDate?: timestamp; + /** + * Specifies the time in Unix format and Coordinated Universal Time (UTC) when a backup job must be started before it is canceled. The value is calculated by adding the start window to the scheduled time. So if the scheduled time were 6:00 PM and the start window is 2 hours, the StartBy time would be 8:00 PM on the date specified. The value of StartBy is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + StartBy?: timestamp; + /** + * The type of AWS resource to be backed up; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2. + */ + ResourceType?: ResourceType; + /** + * The size in bytes transferred to a backup vault at the time that the job status was queried. + */ + BytesTransferred?: Long; + /** + * Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Valid values: Set to "WindowsVSS”:“enabled" to enable WindowsVSS backup option and create a VSS Windows backup. Set to “WindowsVSS”:”disabled” to create a regular backup. If you specify an invalid option, you get an InvalidParameterValueException exception. + */ + BackupOptions?: BackupOptions; + /** + * Represents the type of backup for a backup job. + */ + BackupType?: string; + } + export type BackupJobState = "CREATED"|"PENDING"|"RUNNING"|"ABORTING"|"ABORTED"|"COMPLETED"|"FAILED"|"EXPIRED"|string; + export type BackupJobsList = BackupJob[]; + export type BackupOptionKey = string; + export type BackupOptionValue = string; + export type BackupOptions = {[key: string]: BackupOptionValue}; + export interface BackupPlan { + /** + * The display name of a backup plan. + */ + BackupPlanName: BackupPlanName; + /** + * An array of BackupRule objects, each of which specifies a scheduled task that is used to back up a selection of resources. + */ + Rules: BackupRules; + /** + * Contains a list of BackupOptions for each resource type. + */ + AdvancedBackupSettings?: AdvancedBackupSettings; + } + export interface BackupPlanInput { + /** + * The optional display name of a backup plan. + */ + BackupPlanName: BackupPlanName; + /** + * An array of BackupRule objects, each of which specifies a scheduled task that is used to back up a selection of resources. + */ + Rules: BackupRulesInput; + /** + * Specifies a list of BackupOptions for each resource type. These settings are only available for Windows VSS backup jobs. + */ + AdvancedBackupSettings?: AdvancedBackupSettings; + } + export type BackupPlanName = string; + export type BackupPlanTemplatesList = BackupPlanTemplatesListMember[]; + export interface BackupPlanTemplatesListMember { + /** + * Uniquely identifies a stored backup plan template. + */ + BackupPlanTemplateId?: string; + /** + * The optional display name of a backup plan template. + */ + BackupPlanTemplateName?: string; + } + export type BackupPlanVersionsList = BackupPlansListMember[]; + export type BackupPlansList = BackupPlansListMember[]; + export interface BackupPlansListMember { + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. + */ + BackupPlanArn?: ARN; + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * The date and time a resource backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time a backup plan is deleted, in Unix format and Coordinated Universal Time (UTC). The value of DeletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + DeletionDate?: timestamp; + /** + * Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited. + */ + VersionId?: string; + /** + * The display name of a saved backup plan. + */ + BackupPlanName?: BackupPlanName; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + /** + * The last time a job to back up resources was run with this rule. A date and time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + LastExecutionDate?: timestamp; + /** + * Contains a list of BackupOptions for a resource type. + */ + AdvancedBackupSettings?: AdvancedBackupSettings; + } + export interface BackupRule { + /** + * An optional display name for a backup rule. + */ + RuleName: BackupRuleName; + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + TargetBackupVaultName: BackupVaultName; + /** + * A CRON expression specifying when AWS Backup initiates a backup job. For more information about cron expressions, see Schedule Expressions for Rules in the Amazon CloudWatch Events User Guide.. Prior to specifying a value for this parameter, we recommend testing your cron expression using one of the many available cron generator and testing tools. + */ + ScheduleExpression?: CronExpression; + /** + * A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional. + */ + StartWindowMinutes?: WindowMinutes; + /** + * A value in minutes after a backup job is successfully started before it must be completed or it will be canceled by AWS Backup. This value is optional. + */ + CompletionWindowMinutes?: WindowMinutes; + /** + * The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. + */ + Lifecycle?: Lifecycle; + /** + * An array of key-value pair strings that are assigned to resources that are associated with this rule when restored from backup. + */ + RecoveryPointTags?: Tags; + /** + * Uniquely identifies a rule that is used to schedule the backup of a selection of resources. + */ + RuleId?: string; + /** + * An array of CopyAction objects, which contains the details of the copy operation. + */ + CopyActions?: CopyActions; + /** + * Specifies whether AWS Backup creates continuous backups. True causes AWS Backup to create continuous backups capable of point-in-time restore (PITR). False (or not specified) causes AWS Backup to create snapshot backups. + */ + EnableContinuousBackup?: Boolean; + } + export interface BackupRuleInput { + /** + * An optional display name for a backup rule. + */ + RuleName: BackupRuleName; + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + TargetBackupVaultName: BackupVaultName; + /** + * A CRON expression specifying when AWS Backup initiates a backup job. + */ + ScheduleExpression?: CronExpression; + /** + * A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional. + */ + StartWindowMinutes?: WindowMinutes; + /** + * A value in minutes after a backup job is successfully started before it must be completed or it will be canceled by AWS Backup. This value is optional. + */ + CompletionWindowMinutes?: WindowMinutes; + /** + * The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup will transition and expire backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. + */ + Lifecycle?: Lifecycle; + /** + * To help organize your resources, you can assign your own metadata to the resources that you create. Each tag is a key-value pair. + */ + RecoveryPointTags?: Tags; + /** + * An array of CopyAction objects, which contains the details of the copy operation. + */ + CopyActions?: CopyActions; + /** + * Specifies whether AWS Backup creates continuous backups. True causes AWS Backup to create continuous backups capable of point-in-time restore (PITR). False (or not specified) causes AWS Backup to create snapshot backups. + */ + EnableContinuousBackup?: Boolean; + } + export type BackupRuleName = string; + export type BackupRules = BackupRule[]; + export type BackupRulesInput = BackupRuleInput[]; + export interface BackupSelection { + /** + * The display name of a resource selection document. + */ + SelectionName: BackupSelectionName; + /** + * The ARN of the IAM role that AWS Backup uses to authenticate when backing up the target resource; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn: IAMRoleArn; + /** + * An array of strings that contain Amazon Resource Names (ARNs) of resources to assign to a backup plan. + */ + Resources?: ResourceArns; + /** + * An array of conditions used to specify a set of resources to assign to a backup plan; for example, "StringEquals": {"ec2:ResourceTag/Department": "accounting". Assigns the backup plan to every resource with at least one matching tag. + */ + ListOfTags?: ListOfTags; + } + export type BackupSelectionName = string; + export type BackupSelectionsList = BackupSelectionsListMember[]; + export interface BackupSelectionsListMember { + /** + * Uniquely identifies a request to assign a set of resources to a backup plan. + */ + SelectionId?: string; + /** + * The display name of a resource selection document. + */ + SelectionName?: BackupSelectionName; + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * The date and time a backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + /** + * Specifies the IAM role Amazon Resource Name (ARN) to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn?: IAMRoleArn; + } + export type BackupVaultEvent = "BACKUP_JOB_STARTED"|"BACKUP_JOB_COMPLETED"|"BACKUP_JOB_SUCCESSFUL"|"BACKUP_JOB_FAILED"|"BACKUP_JOB_EXPIRED"|"RESTORE_JOB_STARTED"|"RESTORE_JOB_COMPLETED"|"RESTORE_JOB_SUCCESSFUL"|"RESTORE_JOB_FAILED"|"COPY_JOB_STARTED"|"COPY_JOB_SUCCESSFUL"|"COPY_JOB_FAILED"|"RECOVERY_POINT_MODIFIED"|"BACKUP_PLAN_CREATED"|"BACKUP_PLAN_MODIFIED"|string; + export type BackupVaultEvents = BackupVaultEvent[]; + export type BackupVaultList = BackupVaultListMember[]; + export interface BackupVaultListMember { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * The date and time a resource backup is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The server-side encryption key that is used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. + */ + EncryptionKeyArn?: ARN; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + /** + * The number of recovery points that are stored in a backup vault. + */ + NumberOfRecoveryPoints?: long; + } + export type BackupVaultName = string; + export type Boolean = boolean; + export interface CalculatedLifecycle { + /** + * A timestamp that specifies when to transition a recovery point to cold storage. + */ + MoveToColdStorageAt?: timestamp; + /** + * A timestamp that specifies when to delete a recovery point. + */ + DeleteAt?: timestamp; + } + export interface Condition { + /** + * An operation, such as StringEquals, that is applied to a key-value pair used to filter resources in a selection. + */ + ConditionType: ConditionType; + /** + * The key in a key-value pair. For example, in "ec2:ResourceTag/Department": "accounting", "ec2:ResourceTag/Department" is the key. + */ + ConditionKey: ConditionKey; + /** + * The value in a key-value pair. For example, in "ec2:ResourceTag/Department": "accounting", "accounting" is the value. + */ + ConditionValue: ConditionValue; + } + export type ConditionKey = string; + export type ConditionType = "STRINGEQUALS"|string; + export type ConditionValue = string; + export interface CopyAction { + Lifecycle?: Lifecycle; + /** + * An Amazon Resource Name (ARN) that uniquely identifies the destination backup vault for the copied backup. For example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + DestinationBackupVaultArn: ARN; + } + export type CopyActions = CopyAction[]; + export interface CopyJob { + /** + * The account ID that owns the copy job. + */ + AccountId?: AccountId; + /** + * Uniquely identifies a copy job. + */ + CopyJobId?: string; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a source copy vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + SourceBackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies a source recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + SourceRecoveryPointArn?: ARN; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a destination copy vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + DestinationBackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies a destination recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + DestinationRecoveryPointArn?: ARN; + /** + * The AWS resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. + */ + ResourceArn?: ARN; + /** + * The date and time a copy job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time a copy job is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CompletionDate?: timestamp; + /** + * The current state of a copy job. + */ + State?: CopyJobState; + /** + * A detailed message explaining the status of the job to copy a resource. + */ + StatusMessage?: string; + /** + * The size, in bytes, of a copy job. + */ + BackupSizeInBytes?: Long; + /** + * Specifies the IAM role ARN used to copy the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn?: IAMRoleArn; + CreatedBy?: RecoveryPointCreator; + /** + * The type of AWS resource to be copied; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. + */ + ResourceType?: ResourceType; + } + export type CopyJobState = "CREATED"|"RUNNING"|"COMPLETED"|"FAILED"|string; + export type CopyJobsList = CopyJob[]; + export interface CreateBackupPlanInput { + /** + * Specifies the body of a backup plan. Includes a BackupPlanName and one or more sets of Rules. + */ + BackupPlan: BackupPlanInput; + /** + * To help organize your resources, you can assign your own metadata to the resources that you create. Each tag is a key-value pair. The specified tags are assigned to all backups created with this plan. + */ + BackupPlanTags?: Tags; + /** + * Identifies the request and allows failed requests to be retried without the risk of running the operation twice. If the request includes a CreatorRequestId that matches an existing backup plan, that plan is returned. This parameter is optional. + */ + CreatorRequestId?: string; + } + export interface CreateBackupPlanOutput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. + */ + BackupPlanArn?: ARN; + /** + * The date and time that a backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. They cannot be edited. + */ + VersionId?: string; + /** + * A list of BackupOptions settings for a resource type. This option is only available for Windows VSS backup jobs. + */ + AdvancedBackupSettings?: AdvancedBackupSettings; + } + export interface CreateBackupSelectionInput { + /** + * Uniquely identifies the backup plan to be associated with the selection of resources. + */ + BackupPlanId: string; + /** + * Specifies the body of a request to assign a set of resources to a backup plan. + */ + BackupSelection: BackupSelection; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + } + export interface CreateBackupSelectionOutput { + /** + * Uniquely identifies the body of a request to assign a set of resources to a backup plan. + */ + SelectionId?: string; + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * The date and time a backup selection is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + } + export interface CreateBackupVaultInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * Metadata that you can assign to help organize the resources that you create. Each tag is a key-value pair. + */ + BackupVaultTags?: Tags; + /** + * The server-side encryption key that is used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. + */ + EncryptionKeyArn?: ARN; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + } + export interface CreateBackupVaultOutput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * The date and time a backup vault is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + } + export type CronExpression = string; + export interface DeleteBackupPlanInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + } + export interface DeleteBackupPlanOutput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. + */ + BackupPlanArn?: ARN; + /** + * The date and time a backup plan is deleted, in Unix format and Coordinated Universal Time (UTC). The value of DeletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + DeletionDate?: timestamp; + /** + * Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited. + */ + VersionId?: string; + } + export interface DeleteBackupSelectionInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + /** + * Uniquely identifies the body of a request to assign a set of resources to a backup plan. + */ + SelectionId: string; + } + export interface DeleteBackupVaultAccessPolicyInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + } + export interface DeleteBackupVaultInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: string; + } + export interface DeleteBackupVaultNotificationsInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + } + export interface DeleteRecoveryPointInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn: ARN; + } + export interface DescribeBackupJobInput { + /** + * Uniquely identifies a request to AWS Backup to back up a resource. + */ + BackupJobId: string; + } + export interface DescribeBackupJobOutput { + /** + * Returns the account ID that owns the backup job. + */ + AccountId?: AccountId; + /** + * Uniquely identifies a request to AWS Backup to back up a resource. + */ + BackupJobId?: string; + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * An ARN that uniquely identifies a saved resource. The format of the ARN depends on the resource type. + */ + ResourceArn?: ARN; + /** + * The date and time that a backup job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time that a job to create a backup job is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CompletionDate?: timestamp; + /** + * The current state of a resource recovery point. + */ + State?: BackupJobState; + /** + * A detailed message explaining the status of the job to back up a resource. + */ + StatusMessage?: string; + /** + * Contains an estimated percentage that is complete of a job at the time the job status was queried. + */ + PercentDone?: string; + /** + * The size, in bytes, of a backup. + */ + BackupSizeInBytes?: Long; + /** + * Specifies the IAM role ARN used to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn?: IAMRoleArn; + /** + * Contains identifying information about the creation of a backup job, including the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId of the backup plan that is used to create it. + */ + CreatedBy?: RecoveryPointCreator; + /** + * The type of AWS resource to be backed up; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. + */ + ResourceType?: ResourceType; + /** + * The size in bytes transferred to a backup vault at the time that the job status was queried. + */ + BytesTransferred?: Long; + /** + * The date and time that a job to back up resources is expected to be completed, in Unix format and Coordinated Universal Time (UTC). The value of ExpectedCompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + ExpectedCompletionDate?: timestamp; + /** + * Specifies the time in Unix format and Coordinated Universal Time (UTC) when a backup job must be started before it is canceled. The value is calculated by adding the start window to the scheduled time. So if the scheduled time were 6:00 PM and the start window is 2 hours, the StartBy time would be 8:00 PM on the date specified. The value of StartBy is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + StartBy?: timestamp; + /** + * Represents the options specified as part of backup plan or on-demand backup job. + */ + BackupOptions?: BackupOptions; + /** + * Represents the actual backup type selected for a backup job. For example, if a successful WindowsVSS backup was taken, BackupType returns "WindowsVSS". If BackupType is empty, then the backup type that was is a regular backup. + */ + BackupType?: string; + } + export interface DescribeBackupVaultInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: string; + } + export interface DescribeBackupVaultOutput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: string; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * The server-side encryption key that is used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. + */ + EncryptionKeyArn?: ARN; + /** + * The date and time that a backup vault is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + /** + * The number of recovery points that are stored in a backup vault. + */ + NumberOfRecoveryPoints?: long; + } + export interface DescribeCopyJobInput { + /** + * Uniquely identifies a copy job. + */ + CopyJobId: string; + } + export interface DescribeCopyJobOutput { + /** + * Contains detailed information about a copy job. + */ + CopyJob?: CopyJob; + } + export interface DescribeGlobalSettingsInput { + } + export interface DescribeGlobalSettingsOutput { + /** + * A list of resources along with the opt-in preferences for the account. + */ + GlobalSettings?: GlobalSettings; + /** + * The date and time that the global settings were last updated. This update is in Unix format and Coordinated Universal Time (UTC). The value of LastUpdateTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + LastUpdateTime?: timestamp; + } + export interface DescribeProtectedResourceInput { + /** + * An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + ResourceArn: ARN; + } + export interface DescribeProtectedResourceOutput { + /** + * An ARN that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + ResourceArn?: ARN; + /** + * The type of AWS resource saved as a recovery point; for example, an EBS volume or an Amazon RDS database. + */ + ResourceType?: ResourceType; + /** + * The date and time that a resource was last backed up, in Unix format and Coordinated Universal Time (UTC). The value of LastBackupTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + LastBackupTime?: timestamp; + } + export interface DescribeRecoveryPointInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn: ARN; + } + export interface DescribeRecoveryPointOutput { + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * An Amazon Resource Name (ARN) that uniquely identifies the source vault where the resource was originally backed up in; for example, arn:aws:backup:us-east-1:123456789012:vault:BackupVault. If the recovery is restored to the same AWS account or Region, this value will be null. + */ + SourceBackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies a saved resource. The format of the ARN depends on the resource type. + */ + ResourceArn?: ARN; + /** + * The type of AWS resource to save as a recovery point; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. + */ + ResourceType?: ResourceType; + /** + * Contains identifying information about the creation of a recovery point, including the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId of the backup plan used to create it. + */ + CreatedBy?: RecoveryPointCreator; + /** + * Specifies the IAM role ARN used to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn?: IAMRoleArn; + /** + * A status code specifying the state of the recovery point. A partial status indicates that the recovery point was not successfully re-created and must be retried. + */ + Status?: RecoveryPointStatus; + /** + * The date and time that a recovery point is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time that a job to create a recovery point is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CompletionDate?: timestamp; + /** + * The size, in bytes, of a backup. + */ + BackupSizeInBytes?: Long; + /** + * A CalculatedLifecycle object containing DeleteAt and MoveToColdStorageAt timestamps. + */ + CalculatedLifecycle?: CalculatedLifecycle; + /** + * The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups that are transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. + */ + Lifecycle?: Lifecycle; + /** + * The server-side encryption key used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. + */ + EncryptionKeyArn?: ARN; + /** + * A Boolean value that is returned as TRUE if the specified recovery point is encrypted, or FALSE if the recovery point is not encrypted. + */ + IsEncrypted?: boolean; + /** + * Specifies the storage class of the recovery point. Valid values are WARM or COLD. + */ + StorageClass?: StorageClass; + /** + * The date and time that a recovery point was last restored, in Unix format and Coordinated Universal Time (UTC). The value of LastRestoreTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + LastRestoreTime?: timestamp; + } + export interface DescribeRegionSettingsInput { + } + export interface DescribeRegionSettingsOutput { + /** + * Returns a list of all services along with the opt-in preferences in the Region. + */ + ResourceTypeOptInPreference?: ResourceTypeOptInPreference; + } + export interface DescribeRestoreJobInput { + /** + * Uniquely identifies the job that restores a recovery point. + */ + RestoreJobId: RestoreJobId; + } + export interface DescribeRestoreJobOutput { + /** + * Returns the account ID that owns the restore job. + */ + AccountId?: AccountId; + /** + * Uniquely identifies the job that restores a recovery point. + */ + RestoreJobId?: string; + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The date and time that a restore job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time that a job to restore a recovery point is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CompletionDate?: timestamp; + /** + * Status code specifying the state of the job that is initiated by AWS Backup to restore a recovery point. + */ + Status?: RestoreJobStatus; + /** + * A message showing the status of a job to restore a recovery point. + */ + StatusMessage?: string; + /** + * Contains an estimated percentage that is complete of a job at the time the job status was queried. + */ + PercentDone?: string; + /** + * The size, in bytes, of the restored resource. + */ + BackupSizeInBytes?: Long; + /** + * Specifies the IAM role ARN used to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn?: IAMRoleArn; + /** + * The amount of time in minutes that a job restoring a recovery point is expected to take. + */ + ExpectedCompletionTimeMinutes?: Long; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a resource whose recovery point is being restored. The format of the ARN depends on the resource type of the backed-up resource. + */ + CreatedResourceArn?: ARN; + /** + * Returns metadata associated with a restore job listed by resource type. + */ + ResourceType?: ResourceType; + } + export interface DisassociateRecoveryPointInput { + /** + * The unique name of an AWS Backup vault. Required. + */ + BackupVaultName: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies an AWS Backup recovery point. Required. + */ + RecoveryPointArn: ARN; + } + export interface ExportBackupPlanTemplateInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + } + export interface ExportBackupPlanTemplateOutput { + /** + * The body of a backup plan template in JSON format. This is a signed JSON document that cannot be modified before being passed to GetBackupPlanFromJSON. + */ + BackupPlanTemplateJson?: string; + } + export interface GetBackupPlanFromJSONInput { + /** + * A customer-supplied backup plan document in JSON format. + */ + BackupPlanTemplateJson: string; + } + export interface GetBackupPlanFromJSONOutput { + /** + * Specifies the body of a backup plan. Includes a BackupPlanName and one or more sets of Rules. + */ + BackupPlan?: BackupPlan; + } + export interface GetBackupPlanFromTemplateInput { + /** + * Uniquely identifies a stored backup plan template. + */ + BackupPlanTemplateId: string; + } + export interface GetBackupPlanFromTemplateOutput { + /** + * Returns the body of a backup plan based on the target template, including the name, rules, and backup vault of the plan. + */ + BackupPlanDocument?: BackupPlan; + } + export interface GetBackupPlanInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + /** + * Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited. + */ + VersionId?: string; + } + export interface GetBackupPlanOutput { + /** + * Specifies the body of a backup plan. Includes a BackupPlanName and one or more sets of Rules. + */ + BackupPlan?: BackupPlan; + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. + */ + BackupPlanArn?: ARN; + /** + * Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version IDs cannot be edited. + */ + VersionId?: string; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + /** + * The date and time that a backup plan is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time that a backup plan is deleted, in Unix format and Coordinated Universal Time (UTC). The value of DeletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + DeletionDate?: timestamp; + /** + * The last time a job to back up resources was run with this backup plan. A date and time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + LastExecutionDate?: timestamp; + /** + * Contains a list of BackupOptions for each resource type. The list is populated only if the advanced option is set for the backup plan. + */ + AdvancedBackupSettings?: AdvancedBackupSettings; + } + export interface GetBackupSelectionInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + /** + * Uniquely identifies the body of a request to assign a set of resources to a backup plan. + */ + SelectionId: string; + } + export interface GetBackupSelectionOutput { + /** + * Specifies the body of a request to assign a set of resources to a backup plan. + */ + BackupSelection?: BackupSelection; + /** + * Uniquely identifies the body of a request to assign a set of resources to a backup plan. + */ + SelectionId?: string; + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * The date and time a backup selection is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * A unique string that identifies the request and allows failed requests to be retried without the risk of running the operation twice. + */ + CreatorRequestId?: string; + } + export interface GetBackupVaultAccessPolicyInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + } + export interface GetBackupVaultAccessPolicyOutput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * The backup vault access policy document in JSON format. + */ + Policy?: IAMPolicy; + } + export interface GetBackupVaultNotificationsInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + } + export interface GetBackupVaultNotificationsOutput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies an Amazon Simple Notification Service (Amazon SNS) topic; for example, arn:aws:sns:us-west-2:111122223333:MyTopic. + */ + SNSTopicArn?: ARN; + /** + * An array of events that indicate the status of jobs to back up resources to the backup vault. + */ + BackupVaultEvents?: BackupVaultEvents; + } + export interface GetRecoveryPointRestoreMetadataInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn: ARN; + } + export interface GetRecoveryPointRestoreMetadataOutput { + /** + * An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The set of metadata key-value pairs that describe the original configuration of the backed-up resource. These values vary depending on the service that is being restored. + */ + RestoreMetadata?: Metadata; + } + export interface GetSupportedResourceTypesOutput { + /** + * Contains a string with the supported AWS resource types: DynamoDB for Amazon DynamoDB EBS for Amazon Elastic Block Store EC2 for Amazon Elastic Compute Cloud EFS for Amazon Elastic File System RDS for Amazon Relational Database Service Aurora for Amazon Aurora Storage Gateway for AWS Storage Gateway + */ + ResourceTypes?: ResourceTypes; + } + export type GlobalSettings = {[key: string]: GlobalSettingsValue}; + export type GlobalSettingsName = string; + export type GlobalSettingsValue = string; + export type IAMPolicy = string; + export type IAMRoleArn = string; + export type IsEnabled = boolean; + export interface Lifecycle { + /** + * Specifies the number of days after creation that a recovery point is moved to cold storage. + */ + MoveToColdStorageAfterDays?: Long; + /** + * Specifies the number of days after creation that a recovery point is deleted. Must be greater than 90 days plus MoveToColdStorageAfterDays. + */ + DeleteAfterDays?: Long; + } + export interface ListBackupJobsInput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + /** + * Returns only backup jobs that match the specified resource Amazon Resource Name (ARN). + */ + ByResourceArn?: ARN; + /** + * Returns only backup jobs that are in the specified state. + */ + ByState?: BackupJobState; + /** + * Returns only backup jobs that will be stored in the specified backup vault. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + ByBackupVaultName?: BackupVaultName; + /** + * Returns only backup jobs that were created before the specified date. + */ + ByCreatedBefore?: timestamp; + /** + * Returns only backup jobs that were created after the specified date. + */ + ByCreatedAfter?: timestamp; + /** + * Returns only backup jobs for the specified resources: DynamoDB for Amazon DynamoDB EBS for Amazon Elastic Block Store EC2 for Amazon Elastic Compute Cloud EFS for Amazon Elastic File System RDS for Amazon Relational Database Service Aurora for Amazon Aurora Storage Gateway for AWS Storage Gateway + */ + ByResourceType?: ResourceType; + /** + * The account ID to list the jobs from. Returns only backup jobs associated with the specified account ID. If used from an AWS Organizations management account, passing * returns all jobs across the organization. + */ + ByAccountId?: AccountId; + } + export interface ListBackupJobsOutput { + /** + * An array of structures containing metadata about your backup jobs returned in JSON format. + */ + BackupJobs?: BackupJobsList; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + } + export interface ListBackupPlanTemplatesInput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + } + export interface ListBackupPlanTemplatesOutput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * An array of template list items containing metadata about your saved templates. + */ + BackupPlanTemplatesList?: BackupPlanTemplatesList; + } + export interface ListBackupPlanVersionsInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + } + export interface ListBackupPlanVersionsOutput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * An array of version list items containing metadata about your backup plans. + */ + BackupPlanVersionsList?: BackupPlanVersionsList; + } + export interface ListBackupPlansInput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + /** + * A Boolean value with a default value of FALSE that returns deleted backup plans when set to TRUE. + */ + IncludeDeleted?: Boolean; + } + export interface ListBackupPlansOutput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * An array of backup plan list items containing metadata about your saved backup plans. + */ + BackupPlansList?: BackupPlansList; + } + export interface ListBackupSelectionsInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + } + export interface ListBackupSelectionsOutput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * An array of backup selection list items containing metadata about each resource in the list. + */ + BackupSelectionsList?: BackupSelectionsList; + } + export interface ListBackupVaultsInput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + } + export interface ListBackupVaultsOutput { + /** + * An array of backup vault list members containing vault metadata, including Amazon Resource Name (ARN), display name, creation date, number of saved recovery points, and encryption information if the resources saved in the backup vault are encrypted. + */ + BackupVaultList?: BackupVaultList; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + } + export interface ListCopyJobsInput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + /** + * Returns only copy jobs that match the specified resource Amazon Resource Name (ARN). + */ + ByResourceArn?: ARN; + /** + * Returns only copy jobs that are in the specified state. + */ + ByState?: CopyJobState; + /** + * Returns only copy jobs that were created before the specified date. + */ + ByCreatedBefore?: timestamp; + /** + * Returns only copy jobs that were created after the specified date. + */ + ByCreatedAfter?: timestamp; + /** + * Returns only backup jobs for the specified resources: DynamoDB for Amazon DynamoDB EBS for Amazon Elastic Block Store EC2 for Amazon Elastic Compute Cloud EFS for Amazon Elastic File System RDS for Amazon Relational Database Service Aurora for Amazon Aurora Storage Gateway for AWS Storage Gateway + */ + ByResourceType?: ResourceType; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a source backup vault to copy from; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + ByDestinationVaultArn?: string; + /** + * The account ID to list the jobs from. Returns only copy jobs associated with the specified account ID. + */ + ByAccountId?: AccountId; + } + export interface ListCopyJobsOutput { + /** + * An array of structures containing metadata about your copy jobs returned in JSON format. + */ + CopyJobs?: CopyJobsList; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + } + export type ListOfTags = Condition[]; + export interface ListProtectedResourcesInput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + } + export interface ListProtectedResourcesOutput { + /** + * An array of resources successfully backed up by AWS Backup including the time the resource was saved, an Amazon Resource Name (ARN) of the resource, and a resource type. + */ + Results?: ProtectedResourcesList; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + } + export interface ListRecoveryPointsByBackupVaultInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + /** + * Returns only recovery points that match the specified resource Amazon Resource Name (ARN). + */ + ByResourceArn?: ARN; + /** + * Returns only recovery points that match the specified resource type. + */ + ByResourceType?: ResourceType; + /** + * Returns only recovery points that match the specified backup plan ID. + */ + ByBackupPlanId?: string; + /** + * Returns only recovery points that were created before the specified timestamp. + */ + ByCreatedBefore?: timestamp; + /** + * Returns only recovery points that were created after the specified timestamp. + */ + ByCreatedAfter?: timestamp; + } + export interface ListRecoveryPointsByBackupVaultOutput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * An array of objects that contain detailed information about recovery points saved in a backup vault. + */ + RecoveryPoints?: RecoveryPointByBackupVaultList; + } + export interface ListRecoveryPointsByResourceInput { + /** + * An ARN that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + ResourceArn: ARN; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + } + export interface ListRecoveryPointsByResourceOutput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * An array of objects that contain detailed information about recovery points of the specified resource type. + */ + RecoveryPoints?: RecoveryPointByResourceList; + } + export interface ListRestoreJobsInput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + /** + * The account ID to list the jobs from. Returns only restore jobs associated with the specified account ID. + */ + ByAccountId?: AccountId; + /** + * Returns only restore jobs that were created before the specified date. + */ + ByCreatedBefore?: timestamp; + /** + * Returns only restore jobs that were created after the specified date. + */ + ByCreatedAfter?: timestamp; + /** + * Returns only restore jobs associated with the specified job status. + */ + ByStatus?: RestoreJobStatus; + } + export interface ListRestoreJobsOutput { + /** + * An array of objects that contain detailed information about jobs to restore saved resources. + */ + RestoreJobs?: RestoreJobsList; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + } + export interface ListTagsInput { + /** + * An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the type of resource. Valid targets for ListTags are recovery points, backup plans, and backup vaults. + */ + ResourceArn: ARN; + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * The maximum number of items to be returned. + */ + MaxResults?: MaxResults; + } + export interface ListTagsOutput { + /** + * The next item following a partial list of returned items. For example, if a request is made to return maxResults number of items, NextToken allows you to return more items in your list starting at the location pointed to by the next token. + */ + NextToken?: string; + /** + * To help organize your resources, you can assign your own metadata to the resources you create. Each tag is a key-value pair. + */ + Tags?: Tags; + } + export type Long = number; + export type MaxResults = number; + export type Metadata = {[key: string]: MetadataValue}; + export type MetadataKey = string; + export type MetadataValue = string; + export interface ProtectedResource { + /** + * An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + ResourceArn?: ARN; + /** + * The type of AWS resource; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2. + */ + ResourceType?: ResourceType; + /** + * The date and time a resource was last backed up, in Unix format and Coordinated Universal Time (UTC). The value of LastBackupTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + LastBackupTime?: timestamp; + } + export type ProtectedResourcesList = ProtectedResource[]; + export interface PutBackupVaultAccessPolicyInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * The backup vault access policy document in JSON format. + */ + Policy?: IAMPolicy; + } + export interface PutBackupVaultNotificationsInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events; for example, arn:aws:sns:us-west-2:111122223333:MyVaultTopic. + */ + SNSTopicArn: ARN; + /** + * An array of events that indicate the status of jobs to back up resources to the backup vault. + */ + BackupVaultEvents: BackupVaultEvents; + } + export interface RecoveryPointByBackupVault { + /** + * An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + /** + * An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * The backup vault where the recovery point was originally copied from. If the recovery point is restored to the same account this value will be null. + */ + SourceBackupVaultArn?: ARN; + /** + * An ARN that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + ResourceArn?: ARN; + /** + * The type of AWS resource saved as a recovery point; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2. + */ + ResourceType?: ResourceType; + /** + * Contains identifying information about the creation of a recovery point, including the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId of the backup plan that is used to create it. + */ + CreatedBy?: RecoveryPointCreator; + /** + * Specifies the IAM role ARN used to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn?: IAMRoleArn; + /** + * A status code specifying the state of the recovery point. + */ + Status?: RecoveryPointStatus; + /** + * The date and time a recovery point is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time a job to restore a recovery point is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CompletionDate?: timestamp; + /** + * The size, in bytes, of a backup. + */ + BackupSizeInBytes?: Long; + /** + * A CalculatedLifecycle object containing DeleteAt and MoveToColdStorageAt timestamps. + */ + CalculatedLifecycle?: CalculatedLifecycle; + /** + * The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. + */ + Lifecycle?: Lifecycle; + /** + * The server-side encryption key that is used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. + */ + EncryptionKeyArn?: ARN; + /** + * A Boolean value that is returned as TRUE if the specified recovery point is encrypted, or FALSE if the recovery point is not encrypted. + */ + IsEncrypted?: boolean; + /** + * The date and time a recovery point was last restored, in Unix format and Coordinated Universal Time (UTC). The value of LastRestoreTime is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + LastRestoreTime?: timestamp; + } + export type RecoveryPointByBackupVaultList = RecoveryPointByBackupVault[]; + export interface RecoveryPointByResource { + /** + * An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The date and time a recovery point is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * A status code specifying the state of the recovery point. + */ + Status?: RecoveryPointStatus; + /** + * The server-side encryption key that is used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. + */ + EncryptionKeyArn?: ARN; + /** + * The size, in bytes, of a backup. + */ + BackupSizeBytes?: Long; + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName?: BackupVaultName; + } + export type RecoveryPointByResourceList = RecoveryPointByResource[]; + export interface RecoveryPointCreator { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. + */ + BackupPlanArn?: ARN; + /** + * Version IDs are unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. They cannot be edited. + */ + BackupPlanVersion?: string; + /** + * Uniquely identifies a rule used to schedule the backup of a selection of resources. + */ + BackupRuleId?: string; + } + export type RecoveryPointStatus = "COMPLETED"|"PARTIAL"|"DELETING"|"EXPIRED"|string; + export type ResourceArns = ARN[]; + export type ResourceType = string; + export type ResourceTypeOptInPreference = {[key: string]: IsEnabled}; + export type ResourceTypes = ResourceType[]; + export type RestoreJobId = string; + export type RestoreJobStatus = "PENDING"|"RUNNING"|"COMPLETED"|"ABORTED"|"FAILED"|string; + export type RestoreJobsList = RestoreJobsListMember[]; + export interface RestoreJobsListMember { + /** + * The account ID that owns the restore job. + */ + AccountId?: AccountId; + /** + * Uniquely identifies the job that restores a recovery point. + */ + RestoreJobId?: string; + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The date and time a restore job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * The date and time a job to restore a recovery point is completed, in Unix format and Coordinated Universal Time (UTC). The value of CompletionDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CompletionDate?: timestamp; + /** + * A status code specifying the state of the job initiated by AWS Backup to restore a recovery point. + */ + Status?: RestoreJobStatus; + /** + * A detailed message explaining the status of the job to restore a recovery point. + */ + StatusMessage?: string; + /** + * Contains an estimated percentage complete of a job at the time the job status was queried. + */ + PercentDone?: string; + /** + * The size, in bytes, of the restored resource. + */ + BackupSizeInBytes?: Long; + /** + * Specifies the IAM role ARN used to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn?: IAMRoleArn; + /** + * The amount of time in minutes that a job restoring a recovery point is expected to take. + */ + ExpectedCompletionTimeMinutes?: Long; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + CreatedResourceArn?: ARN; + /** + * The resource type of the listed restore jobs; for example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database Service (Amazon RDS) database. For VSS Windows backups, the only supported resource type is Amazon EC2. + */ + ResourceType?: ResourceType; + } + export interface StartBackupJobInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the ARN depends on the resource type. + */ + ResourceArn: ARN; + /** + * Specifies the IAM role ARN used to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn: IAMRoleArn; + /** + * A customer chosen string that can be used to distinguish between calls to StartBackupJob. + */ + IdempotencyToken?: string; + /** + * A value in minutes after a backup is scheduled before a job will be canceled if it doesn't start successfully. This value is optional, and the default is 8 hours. + */ + StartWindowMinutes?: WindowMinutes; + /** + * A value in minutes during which a successfully started backup must complete, or else AWS Backup will cancel the job. This value is optional. This value begins counting down from when the backup was scheduled. It does not add additional time for StartWindowMinutes, or if the backup started later than scheduled. + */ + CompleteWindowMinutes?: WindowMinutes; + /** + * The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup will transition and expire backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. + */ + Lifecycle?: Lifecycle; + /** + * To help organize your resources, you can assign your own metadata to the resources that you create. Each tag is a key-value pair. + */ + RecoveryPointTags?: Tags; + /** + * Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Valid values: Set to "WindowsVSS”:“enabled" to enable WindowsVSS backup option and create a VSS Windows backup. Set to “WindowsVSS”:”disabled” to create a regular backup. The WindowsVSS option is not enabled by default. + */ + BackupOptions?: BackupOptions; + } + export interface StartBackupJobOutput { + /** + * Uniquely identifies a request to AWS Backup to back up a resource. + */ + BackupJobId?: string; + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The date and time that a backup job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + } + export interface StartCopyJobInput { + /** + * An ARN that uniquely identifies a recovery point to use for the copy job; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn: ARN; + /** + * The name of a logical source container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + SourceBackupVaultName: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a destination backup vault to copy to; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + DestinationBackupVaultArn: ARN; + /** + * Specifies the IAM role ARN used to copy the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn: IAMRoleArn; + /** + * A customer chosen string that can be used to distinguish between calls to StartCopyJob. + */ + IdempotencyToken?: string; + Lifecycle?: Lifecycle; + } + export interface StartCopyJobOutput { + /** + * Uniquely identifies a copy job. + */ + CopyJobId?: string; + /** + * The date and time that a copy job is created, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + } + export interface StartRestoreJobInput { + /** + * An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn: ARN; + /** + * A set of metadata key-value pairs. Contains information, such as a resource name, required to restore a recovery point. You can get configuration metadata about a resource at the time it was backed up by calling GetRecoveryPointRestoreMetadata. However, values in addition to those provided by GetRecoveryPointRestoreMetadata might be required to restore a resource. For example, you might need to provide a new resource name if the original already exists. You need to specify specific metadata to restore an Amazon Elastic File System (Amazon EFS) instance: file-system-id: The ID of the Amazon EFS file system that is backed up by AWS Backup. Returned in GetRecoveryPointRestoreMetadata. Encrypted: A Boolean value that, if true, specifies that the file system is encrypted. If KmsKeyId is specified, Encrypted must be set to true. KmsKeyId: Specifies the AWS KMS key that is used to encrypt the restored file system. You can specify a key from another AWS account provided that key it is properly shared with your account via AWS KMS. PerformanceMode: Specifies the throughput mode of the file system. CreationToken: A user-supplied value that ensures the uniqueness (idempotency) of the request. newFileSystem: A Boolean value that, if true, specifies that the recovery point is restored to a new Amazon EFS file system. ItemsToRestore : An array of one to five strings where each string is a file path. Use ItemsToRestore to restore specific files or directories rather than the entire file system. This parameter is optional. For example, "itemsToRestore":"[\"/my.test\"]". + */ + Metadata: Metadata; + /** + * The Amazon Resource Name (ARN) of the IAM role that AWS Backup uses to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access. + */ + IamRoleArn: IAMRoleArn; + /** + * A customer chosen string that can be used to distinguish between calls to StartRestoreJob. + */ + IdempotencyToken?: string; + /** + * Starts a job to restore a recovery point for one of the following resources: DynamoDB for Amazon DynamoDB EBS for Amazon Elastic Block Store EC2 for Amazon Elastic Compute Cloud EFS for Amazon Elastic File System RDS for Amazon Relational Database Service Aurora for Amazon Aurora Storage Gateway for AWS Storage Gateway + */ + ResourceType?: ResourceType; + } + export interface StartRestoreJobOutput { + /** + * Uniquely identifies the job that restores a recovery point. + */ + RestoreJobId?: RestoreJobId; + } + export interface StopBackupJobInput { + /** + * Uniquely identifies a request to AWS Backup to back up a resource. + */ + BackupJobId: string; + } + export type StorageClass = "WARM"|"COLD"|"DELETED"|string; + export type TagKey = string; + export type TagKeyList = string[]; + export interface TagResourceInput { + /** + * An ARN that uniquely identifies a resource. The format of the ARN depends on the type of the tagged resource. + */ + ResourceArn: ARN; + /** + * Key-value pairs that are used to help organize your resources. You can assign your own metadata to the resources you create. + */ + Tags: Tags; + } + export type TagValue = string; + export type Tags = {[key: string]: TagValue}; + export interface UntagResourceInput { + /** + * An ARN that uniquely identifies a resource. The format of the ARN depends on the type of the tagged resource. + */ + ResourceArn: ARN; + /** + * A list of keys to identify which key-value tags to remove from a resource. + */ + TagKeyList: TagKeyList; + } + export interface UpdateBackupPlanInput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId: string; + /** + * Specifies the body of a backup plan. Includes a BackupPlanName and one or more sets of Rules. + */ + BackupPlan: BackupPlanInput; + } + export interface UpdateBackupPlanOutput { + /** + * Uniquely identifies a backup plan. + */ + BackupPlanId?: string; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50. + */ + BackupPlanArn?: ARN; + /** + * The date and time a backup plan is updated, in Unix format and Coordinated Universal Time (UTC). The value of CreationDate is accurate to milliseconds. For example, the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM. + */ + CreationDate?: timestamp; + /** + * Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most 1,024 bytes long. Version Ids cannot be edited. + */ + VersionId?: string; + /** + * Contains a list of BackupOptions for each resource type. + */ + AdvancedBackupSettings?: AdvancedBackupSettings; + } + export interface UpdateGlobalSettingsInput { + /** + * A list of resources along with the opt-in preferences for the account. + */ + GlobalSettings?: GlobalSettings; + } + export interface UpdateRecoveryPointLifecycleInput { + /** + * The name of a logical container where backups are stored. Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of lowercase letters, numbers, and hyphens. + */ + BackupVaultName: BackupVaultName; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn: ARN; + /** + * The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. + */ + Lifecycle?: Lifecycle; + } + export interface UpdateRecoveryPointLifecycleOutput { + /** + * An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault. + */ + BackupVaultArn?: ARN; + /** + * An Amazon Resource Name (ARN) that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45. + */ + RecoveryPointArn?: ARN; + /** + * The lifecycle defines when a protected resource is transitioned to cold storage and when it expires. AWS Backup transitions and expires backups automatically according to the lifecycle that you define. Backups transitioned to cold storage must be stored in cold storage for a minimum of 90 days. Therefore, the “expire after days” setting must be 90 days greater than the “transition to cold after days” setting. The “transition to cold after days” setting cannot be changed after a backup has been transitioned to cold. Only Amazon EFS file system backups can be transitioned to cold storage. + */ + Lifecycle?: Lifecycle; + /** + * A CalculatedLifecycle object containing DeleteAt and MoveToColdStorageAt timestamps. + */ + CalculatedLifecycle?: CalculatedLifecycle; + } + export interface UpdateRegionSettingsInput { + /** + * Updates the list of services along with the opt-in preferences for the Region. + */ + ResourceTypeOptInPreference?: ResourceTypeOptInPreference; + } + export type WindowMinutes = number; + export type long = number; + export type timestamp = Date; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-11-15"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Backup client. + */ + export import Types = Backup; +} +export = Backup; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/backup.js b/justdanceonline-main/node_modules/aws-sdk/clients/backup.js new file mode 100644 index 0000000000000000000000000000000000000000..9ddcf3601d5a465eaa01e5a6996c300435f8cd98 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/backup.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['backup'] = {}; +AWS.Backup = Service.defineService('backup', ['2018-11-15']); +Object.defineProperty(apiLoader.services['backup'], '2018-11-15', { + get: function get() { + var model = require('../apis/backup-2018-11-15.min.json'); + model.paginators = require('../apis/backup-2018-11-15.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Backup; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/batch.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/batch.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..267cdaa9e16a08b77a3f4b32ec5ef7227378763e --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/batch.d.ts @@ -0,0 +1,1702 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Batch extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Batch.Types.ClientConfiguration) + config: Config & Batch.Types.ClientConfiguration; + /** + * Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are canceled. Jobs that have progressed to STARTING or RUNNING aren't canceled, but the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the TerminateJob operation. + */ + cancelJob(params: Batch.Types.CancelJobRequest, callback?: (err: AWSError, data: Batch.Types.CancelJobResponse) => void): Request; + /** + * Cancels a job in an AWS Batch job queue. Jobs that are in the SUBMITTED, PENDING, or RUNNABLE state are canceled. Jobs that have progressed to STARTING or RUNNING aren't canceled, but the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the TerminateJob operation. + */ + cancelJob(callback?: (err: AWSError, data: Batch.Types.CancelJobResponse) => void): Request; + /** + * Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute environments. MANAGED compute environments can use Amazon EC2 or AWS Fargate resources. UNMANAGED compute environments can only use EC2 resources. In a managed compute environment, AWS Batch manages the capacity and instance types of the compute resources within the environment. This is based on the compute resource specification that you define or the launch template that you specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 Spot Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a specified percentage of the On-Demand price. Multi-node parallel jobs aren't supported on Spot Instances. In an unmanaged compute environment, you can manage your own EC2 compute resources and have a lot of flexibility with how you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of your AMIs meet the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the Amazon Elastic Container Service Developer Guide. After you created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that's associated with it. Then, launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS container instance in the Amazon Elastic Container Service Developer Guide. AWS Batch doesn't upgrade the AMIs in a compute environment after the environment is created. For example, it doesn't update the AMIs when a newer version of the Amazon ECS optimized AMI is available. Therefore, you're responsible for managing the guest operating system (including its updates and security patches) and any additional application software or utilities that you install on the compute resources. To use a new AMI for your AWS Batch jobs, complete these steps: Create a new compute environment with the new AMI. Add the compute environment to an existing job queue. Remove the earlier compute environment from your job queue. Delete the earlier compute environment. + */ + createComputeEnvironment(params: Batch.Types.CreateComputeEnvironmentRequest, callback?: (err: AWSError, data: Batch.Types.CreateComputeEnvironmentResponse) => void): Request; + /** + * Creates an AWS Batch compute environment. You can create MANAGED or UNMANAGED compute environments. MANAGED compute environments can use Amazon EC2 or AWS Fargate resources. UNMANAGED compute environments can only use EC2 resources. In a managed compute environment, AWS Batch manages the capacity and instance types of the compute resources within the environment. This is based on the compute resource specification that you define or the launch template that you specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 Spot Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a specified percentage of the On-Demand price. Multi-node parallel jobs aren't supported on Spot Instances. In an unmanaged compute environment, you can manage your own EC2 compute resources and have a lot of flexibility with how you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of your AMIs meet the Amazon ECS container instance AMI specification. For more information, see container instance AMIs in the Amazon Elastic Container Service Developer Guide. After you created your unmanaged compute environment, you can use the DescribeComputeEnvironments operation to find the Amazon ECS cluster that's associated with it. Then, launch your container instances into that Amazon ECS cluster. For more information, see Launching an Amazon ECS container instance in the Amazon Elastic Container Service Developer Guide. AWS Batch doesn't upgrade the AMIs in a compute environment after the environment is created. For example, it doesn't update the AMIs when a newer version of the Amazon ECS optimized AMI is available. Therefore, you're responsible for managing the guest operating system (including its updates and security patches) and any additional application software or utilities that you install on the compute resources. To use a new AMI for your AWS Batch jobs, complete these steps: Create a new compute environment with the new AMI. Add the compute environment to an existing job queue. Remove the earlier compute environment from your job queue. Delete the earlier compute environment. + */ + createComputeEnvironment(callback?: (err: AWSError, data: Batch.Types.CreateComputeEnvironmentResponse) => void): Request; + /** + * Creates an AWS Batch job queue. When you create a job queue, you associate one or more compute environments to the queue and assign an order of preference for the compute environments. You also set a priority to the job queue that determines the order that the AWS Batch scheduler places jobs onto its associated compute environments. For example, if a compute environment is associated with more than one job queue, the job queue with a higher priority is given preference for scheduling jobs to that compute environment. + */ + createJobQueue(params: Batch.Types.CreateJobQueueRequest, callback?: (err: AWSError, data: Batch.Types.CreateJobQueueResponse) => void): Request; + /** + * Creates an AWS Batch job queue. When you create a job queue, you associate one or more compute environments to the queue and assign an order of preference for the compute environments. You also set a priority to the job queue that determines the order that the AWS Batch scheduler places jobs onto its associated compute environments. For example, if a compute environment is associated with more than one job queue, the job queue with a higher priority is given preference for scheduling jobs to that compute environment. + */ + createJobQueue(callback?: (err: AWSError, data: Batch.Types.CreateJobQueueResponse) => void): Request; + /** + * Deletes an AWS Batch compute environment. Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation. Compute environments that use AWS Fargate resources must terminate all active jobs on that compute environment before deleting the compute environment. If this isn't done, the compute environment enters an invalid state. + */ + deleteComputeEnvironment(params: Batch.Types.DeleteComputeEnvironmentRequest, callback?: (err: AWSError, data: Batch.Types.DeleteComputeEnvironmentResponse) => void): Request; + /** + * Deletes an AWS Batch compute environment. Before you can delete a compute environment, you must set its state to DISABLED with the UpdateComputeEnvironment API operation and disassociate it from any job queues with the UpdateJobQueue API operation. Compute environments that use AWS Fargate resources must terminate all active jobs on that compute environment before deleting the compute environment. If this isn't done, the compute environment enters an invalid state. + */ + deleteComputeEnvironment(callback?: (err: AWSError, data: Batch.Types.DeleteComputeEnvironmentResponse) => void): Request; + /** + * Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are eventually terminated when you delete a job queue. The jobs are terminated at a rate of about 16 jobs each second. It's not necessary to disassociate compute environments from a queue before submitting a DeleteJobQueue request. + */ + deleteJobQueue(params: Batch.Types.DeleteJobQueueRequest, callback?: (err: AWSError, data: Batch.Types.DeleteJobQueueResponse) => void): Request; + /** + * Deletes the specified job queue. You must first disable submissions for a queue with the UpdateJobQueue operation. All jobs in the queue are eventually terminated when you delete a job queue. The jobs are terminated at a rate of about 16 jobs each second. It's not necessary to disassociate compute environments from a queue before submitting a DeleteJobQueue request. + */ + deleteJobQueue(callback?: (err: AWSError, data: Batch.Types.DeleteJobQueueResponse) => void): Request; + /** + * Deregisters an AWS Batch job definition. Job definitions are permanently deleted after 180 days. + */ + deregisterJobDefinition(params: Batch.Types.DeregisterJobDefinitionRequest, callback?: (err: AWSError, data: Batch.Types.DeregisterJobDefinitionResponse) => void): Request; + /** + * Deregisters an AWS Batch job definition. Job definitions are permanently deleted after 180 days. + */ + deregisterJobDefinition(callback?: (err: AWSError, data: Batch.Types.DeregisterJobDefinitionResponse) => void): Request; + /** + * Describes one or more of your compute environments. If you're using an unmanaged compute environment, you can use the DescribeComputeEnvironment operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances into. + */ + describeComputeEnvironments(params: Batch.Types.DescribeComputeEnvironmentsRequest, callback?: (err: AWSError, data: Batch.Types.DescribeComputeEnvironmentsResponse) => void): Request; + /** + * Describes one or more of your compute environments. If you're using an unmanaged compute environment, you can use the DescribeComputeEnvironment operation to determine the ecsClusterArn that you should launch your Amazon ECS container instances into. + */ + describeComputeEnvironments(callback?: (err: AWSError, data: Batch.Types.DescribeComputeEnvironmentsResponse) => void): Request; + /** + * Describes a list of job definitions. You can specify a status (such as ACTIVE) to only return job definitions that match that status. + */ + describeJobDefinitions(params: Batch.Types.DescribeJobDefinitionsRequest, callback?: (err: AWSError, data: Batch.Types.DescribeJobDefinitionsResponse) => void): Request; + /** + * Describes a list of job definitions. You can specify a status (such as ACTIVE) to only return job definitions that match that status. + */ + describeJobDefinitions(callback?: (err: AWSError, data: Batch.Types.DescribeJobDefinitionsResponse) => void): Request; + /** + * Describes one or more of your job queues. + */ + describeJobQueues(params: Batch.Types.DescribeJobQueuesRequest, callback?: (err: AWSError, data: Batch.Types.DescribeJobQueuesResponse) => void): Request; + /** + * Describes one or more of your job queues. + */ + describeJobQueues(callback?: (err: AWSError, data: Batch.Types.DescribeJobQueuesResponse) => void): Request; + /** + * Describes a list of AWS Batch jobs. + */ + describeJobs(params: Batch.Types.DescribeJobsRequest, callback?: (err: AWSError, data: Batch.Types.DescribeJobsResponse) => void): Request; + /** + * Describes a list of AWS Batch jobs. + */ + describeJobs(callback?: (err: AWSError, data: Batch.Types.DescribeJobsResponse) => void): Request; + /** + * Returns a list of AWS Batch jobs. You must specify only one of the following items: A job queue ID to return a list of jobs in that job queue A multi-node parallel job ID to return a list of nodes for that job An array job ID to return a list of the children for that job You can filter the results by job status with the jobStatus parameter. If you don't specify a status, only RUNNING jobs are returned. + */ + listJobs(params: Batch.Types.ListJobsRequest, callback?: (err: AWSError, data: Batch.Types.ListJobsResponse) => void): Request; + /** + * Returns a list of AWS Batch jobs. You must specify only one of the following items: A job queue ID to return a list of jobs in that job queue A multi-node parallel job ID to return a list of nodes for that job An array job ID to return a list of the children for that job You can filter the results by job status with the jobStatus parameter. If you don't specify a status, only RUNNING jobs are returned. + */ + listJobs(callback?: (err: AWSError, data: Batch.Types.ListJobsResponse) => void): Request; + /** + * Lists the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported. + */ + listTagsForResource(params: Batch.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: Batch.Types.ListTagsForResourceResponse) => void): Request; + /** + * Lists the tags for an AWS Batch resource. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported. + */ + listTagsForResource(callback?: (err: AWSError, data: Batch.Types.ListTagsForResourceResponse) => void): Request; + /** + * Registers an AWS Batch job definition. + */ + registerJobDefinition(params: Batch.Types.RegisterJobDefinitionRequest, callback?: (err: AWSError, data: Batch.Types.RegisterJobDefinitionResponse) => void): Request; + /** + * Registers an AWS Batch job definition. + */ + registerJobDefinition(callback?: (err: AWSError, data: Batch.Types.RegisterJobDefinitionResponse) => void): Request; + /** + * Submits an AWS Batch job from a job definition. Parameters that are specified during SubmitJob override parameters defined in the job definition. vCPU and memory requirements that are specified in the ResourceRequirements objects in the job definition are the exception. They can't be overridden this way using the memory and vcpus parameters. Rather, you must specify updates to job definition parameters in a ResourceRequirements object that's included in the containerOverrides parameter. Jobs that run on Fargate resources can't be guaranteed to run for more than 14 days. This is because, after 14 days, Fargate resources might become unavailable and job might be terminated. + */ + submitJob(params: Batch.Types.SubmitJobRequest, callback?: (err: AWSError, data: Batch.Types.SubmitJobResponse) => void): Request; + /** + * Submits an AWS Batch job from a job definition. Parameters that are specified during SubmitJob override parameters defined in the job definition. vCPU and memory requirements that are specified in the ResourceRequirements objects in the job definition are the exception. They can't be overridden this way using the memory and vcpus parameters. Rather, you must specify updates to job definition parameters in a ResourceRequirements object that's included in the containerOverrides parameter. Jobs that run on Fargate resources can't be guaranteed to run for more than 14 days. This is because, after 14 days, Fargate resources might become unavailable and job might be terminated. + */ + submitJob(callback?: (err: AWSError, data: Batch.Types.SubmitJobResponse) => void): Request; + /** + * Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported. + */ + tagResource(params: Batch.Types.TagResourceRequest, callback?: (err: AWSError, data: Batch.Types.TagResourceResponse) => void): Request; + /** + * Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource aren't specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are deleted as well. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported. + */ + tagResource(callback?: (err: AWSError, data: Batch.Types.TagResourceResponse) => void): Request; + /** + * Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING state are terminated, which causes them to transition to FAILED. Jobs that have not progressed to the STARTING state are cancelled. + */ + terminateJob(params: Batch.Types.TerminateJobRequest, callback?: (err: AWSError, data: Batch.Types.TerminateJobResponse) => void): Request; + /** + * Terminates a job in a job queue. Jobs that are in the STARTING or RUNNING state are terminated, which causes them to transition to FAILED. Jobs that have not progressed to the STARTING state are cancelled. + */ + terminateJob(callback?: (err: AWSError, data: Batch.Types.TerminateJobResponse) => void): Request; + /** + * Deletes specified tags from an AWS Batch resource. + */ + untagResource(params: Batch.Types.UntagResourceRequest, callback?: (err: AWSError, data: Batch.Types.UntagResourceResponse) => void): Request; + /** + * Deletes specified tags from an AWS Batch resource. + */ + untagResource(callback?: (err: AWSError, data: Batch.Types.UntagResourceResponse) => void): Request; + /** + * Updates an AWS Batch compute environment. + */ + updateComputeEnvironment(params: Batch.Types.UpdateComputeEnvironmentRequest, callback?: (err: AWSError, data: Batch.Types.UpdateComputeEnvironmentResponse) => void): Request; + /** + * Updates an AWS Batch compute environment. + */ + updateComputeEnvironment(callback?: (err: AWSError, data: Batch.Types.UpdateComputeEnvironmentResponse) => void): Request; + /** + * Updates a job queue. + */ + updateJobQueue(params: Batch.Types.UpdateJobQueueRequest, callback?: (err: AWSError, data: Batch.Types.UpdateJobQueueResponse) => void): Request; + /** + * Updates a job queue. + */ + updateJobQueue(callback?: (err: AWSError, data: Batch.Types.UpdateJobQueueResponse) => void): Request; +} +declare namespace Batch { + export type ArrayJobDependency = "N_TO_N"|"SEQUENTIAL"|string; + export type ArrayJobStatusSummary = {[key: string]: Integer}; + export interface ArrayProperties { + /** + * The size of the array job. + */ + size?: Integer; + } + export interface ArrayPropertiesDetail { + /** + * A summary of the number of array job children in each available job status. This parameter is returned for parent array jobs. + */ + statusSummary?: ArrayJobStatusSummary; + /** + * The size of the array job. This parameter is returned for parent array jobs. + */ + size?: Integer; + /** + * The job index within the array that's associated with this job. This parameter is returned for array job children. + */ + index?: Integer; + } + export interface ArrayPropertiesSummary { + /** + * The size of the array job. This parameter is returned for parent array jobs. + */ + size?: Integer; + /** + * The job index within the array that's associated with this job. This parameter is returned for children of array jobs. + */ + index?: Integer; + } + export type AssignPublicIp = "ENABLED"|"DISABLED"|string; + export interface AttemptContainerDetail { + /** + * The Amazon Resource Name (ARN) of the Amazon ECS container instance that hosts the job attempt. + */ + containerInstanceArn?: String; + /** + * The Amazon Resource Name (ARN) of the Amazon ECS task that's associated with the job attempt. Each container attempt receives a task ARN when they reach the STARTING status. + */ + taskArn?: String; + /** + * The exit code for the job attempt. A non-zero exit code is considered a failure. + */ + exitCode?: Integer; + /** + * A short (255 max characters) human-readable string to provide additional details about a running or stopped container. + */ + reason?: String; + /** + * The name of the CloudWatch Logs log stream associated with the container. The log group for AWS Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status. + */ + logStreamName?: String; + /** + * The network interfaces associated with the job attempt. + */ + networkInterfaces?: NetworkInterfaceList; + } + export interface AttemptDetail { + /** + * Details about the container in this job attempt. + */ + container?: AttemptContainerDetail; + /** + * The Unix timestamp (in milliseconds) for when the attempt was started (when the attempt transitioned from the STARTING state to the RUNNING state). + */ + startedAt?: Long; + /** + * The Unix timestamp (in milliseconds) for when the attempt was stopped (when the attempt transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED). + */ + stoppedAt?: Long; + /** + * A short, human-readable string to provide additional details about the current status of the job attempt. + */ + statusReason?: String; + } + export type AttemptDetails = AttemptDetail[]; + export type Boolean = boolean; + export type CEState = "ENABLED"|"DISABLED"|string; + export type CEStatus = "CREATING"|"UPDATING"|"DELETING"|"DELETED"|"VALID"|"INVALID"|string; + export type CEType = "MANAGED"|"UNMANAGED"|string; + export type CRAllocationStrategy = "BEST_FIT"|"BEST_FIT_PROGRESSIVE"|"SPOT_CAPACITY_OPTIMIZED"|string; + export type CRType = "EC2"|"SPOT"|"FARGATE"|"FARGATE_SPOT"|string; + export interface CancelJobRequest { + /** + * The AWS Batch job ID of the job to cancel. + */ + jobId: String; + /** + * A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs. + */ + reason: String; + } + export interface CancelJobResponse { + } + export interface ComputeEnvironmentDetail { + /** + * The name of the compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + */ + computeEnvironmentName: String; + /** + * The Amazon Resource Name (ARN) of the compute environment. + */ + computeEnvironmentArn: String; + /** + * The Amazon Resource Name (ARN) of the underlying Amazon ECS cluster used by the compute environment. + */ + ecsClusterArn: String; + /** + * The tags applied to the compute environment. + */ + tags?: TagrisTagsMap; + /** + * The type of the compute environment: MANAGED or UNMANAGED. For more information, see Compute Environments in the AWS Batch User Guide. + */ + type?: CEType; + /** + * The state of the compute environment. The valid values are ENABLED or DISABLED. If the state is ENABLED, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand. If the state is DISABLED, then the AWS Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out. However, they scale in to minvCpus value after instances become idle. + */ + state?: CEState; + /** + * The current status of the compute environment (for example, CREATING or VALID). + */ + status?: CEStatus; + /** + * A short, human-readable string to provide additional details about the current status of the compute environment. + */ + statusReason?: String; + /** + * The compute resources defined for the compute environment. For more information, see Compute Environments in the AWS Batch User Guide. + */ + computeResources?: ComputeResource; + /** + * The service role associated with the compute environment that allows AWS Batch to make calls to AWS API operations on your behalf. For more information, see AWS Batch service IAM role in the AWS Batch User Guide. + */ + serviceRole?: String; + } + export type ComputeEnvironmentDetailList = ComputeEnvironmentDetail[]; + export interface ComputeEnvironmentOrder { + /** + * The order of the compute environment. Compute environments are tried in ascending order. For example, if two compute environments are associated with a job queue, the compute environment with a lower order integer value is tried for job placement first. + */ + order: Integer; + /** + * The Amazon Resource Name (ARN) of the compute environment. + */ + computeEnvironment: String; + } + export type ComputeEnvironmentOrders = ComputeEnvironmentOrder[]; + export interface ComputeResource { + /** + * The type of compute environment: EC2, SPOT, FARGATE, or FARGATE_SPOT. For more information, see Compute Environments in the AWS Batch User Guide. If you choose SPOT, you must also specify an Amazon EC2 Spot Fleet role with the spotIamFleetRole parameter. For more information, see Amazon EC2 Spot Fleet role in the AWS Batch User Guide. + */ + type: CRType; + /** + * The allocation strategy to use for the compute resource if not enough instances of the best fitting instance type can be allocated. This might be because of availability of the instance type in the Region or Amazon EC2 service limits. For more information, see Allocation Strategies in the AWS Batch User Guide. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. BEST_FIT (default) AWS Batch selects an instance type that best fits the needs of the jobs with a preference for the lowest-cost instance type. If additional instances of the selected instance type aren't available, AWS Batch waits for the additional instances to be available. If there aren't enough instances available, or if the user is hitting Amazon EC2 service limits then additional jobs aren't run until the currently running jobs have completed. This allocation strategy keeps costs lower but can limit scaling. If you are using Spot Fleets with BEST_FIT then the Spot Fleet IAM Role must be specified. BEST_FIT_PROGRESSIVE AWS Batch will select additional instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types with a lower cost per unit vCPU. If additional instances of the previously selected instance types aren't available, AWS Batch will select new instance types. SPOT_CAPACITY_OPTIMIZED AWS Batch will select one or more instance types that are large enough to meet the requirements of the jobs in the queue, with a preference for instance types that are less likely to be interrupted. This allocation strategy is only available for Spot Instance compute resources. With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED strategies, AWS Batch might need to go above maxvCpus to meet your capacity requirements. In this event, AWS Batch never exceeds maxvCpus by more than a single instance. + */ + allocationStrategy?: CRAllocationStrategy; + /** + * The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED). This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + minvCpus?: Integer; + /** + * The maximum number of Amazon EC2 vCPUs that a compute environment can reach. With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies, AWS Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, AWS Batch never exceeds maxvCpus by more than a single instance. For example, no more than a single instance from among those specified in your compute environment is allocated. + */ + maxvCpus: Integer; + /** + * The desired number of Amazon EC2 vCPUS in the compute environment. AWS Batch modifies this value between the minimum and maximum values, based on job queue demand. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + desiredvCpus?: Integer; + /** + * The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge). You can also choose optimal to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment. Currently, optimal uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5. and R5 instance families are used. + */ + instanceTypes?: StringList; + /** + * The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the imageIdOverride member of the Ec2Configuration structure. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service Developer Guide. + */ + imageId?: String; + /** + * The VPC subnets into which the compute resources are launched. These subnets must be within the same VPC. Fargate compute resources can contain up to 16 subnets. For more information, see VPCs and Subnets in the Amazon VPC User Guide. + */ + subnets: StringList; + /** + * The Amazon EC2 security groups associated with instances launched in the compute environment. One or more security groups must be specified, either in securityGroupIds or using a launch template referenced in launchTemplate. This parameter is required for jobs running on Fargate resources and must contain at least one security group. Fargate doesn't support launch templates. If security groups are specified using both securityGroupIds and launchTemplate, the values in securityGroupIds is used. + */ + securityGroupIds?: StringList; + /** + * The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + ec2KeyPair?: String; + /** + * The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS Instance Role in the AWS Batch User Guide. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + instanceRole?: String; + /** + * Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For AWS Batch, these take the form of "String1": "String2", where String1 is the tag key and String2 is the tag value−for example, { "Name": "AWS Batch Instance - C4OnDemand" }. This is helpful for recognizing your AWS Batch instances in the Amazon EC2 console. These tags can't be updated or removed after the compute environment has been created; any changes require creating a new compute environment and removing the old compute environment. These tags aren't seen when using the AWS Batch ListTagsForResource API operation. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + tags?: TagsMap; + /** + * The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement Groups in the Amazon EC2 User Guide for Linux Instances. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + placementGroup?: String; + /** + * The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand price. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + bidPercentage?: Integer; + /** + * The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is required if the allocation strategy set to BEST_FIT or if the allocation strategy isn't specified. For more information, see Amazon EC2 Spot Fleet Role in the AWS Batch User Guide. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. To tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer AmazonEC2SpotFleetTaggingRole managed policy. The previously recommended AmazonEC2SpotFleetRole managed policy doesn't have the required permissions to tag Spot Instances. For more information, see Spot Instances not tagged on creation in the AWS Batch User Guide. + */ + spotIamFleetRole?: String; + /** + * The launch template to use for your compute resources. Any other compute resource parameters that you specify in a CreateComputeEnvironment API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch Template Support in the AWS Batch User Guide. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + launchTemplate?: LaunchTemplateSpecification; + /** + * Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL1. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + ec2Configuration?: Ec2ConfigurationList; + } + export interface ComputeResourceUpdate { + /** + * The minimum number of Amazon EC2 vCPUs that an environment should maintain. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + minvCpus?: Integer; + /** + * The maximum number of Amazon EC2 vCPUs that an environment can reach. With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies, AWS Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, AWS Batch never exceeds maxvCpus by more than a single instance. That is, no more than a single instance from among those specified in your compute environment. + */ + maxvCpus?: Integer; + /** + * The desired number of Amazon EC2 vCPUS in the compute environment. This parameter isn't applicable to jobs running on Fargate resources, and shouldn't be specified. + */ + desiredvCpus?: Integer; + /** + * The VPC subnets that the compute resources are launched into. Fargate compute resources can contain up to 16 subnets. Providing an empty list will be handled as if this parameter wasn't specified and no change is made. This can't be specified for EC2 compute resources. For more information, see VPCs and Subnets in the Amazon VPC User Guide. + */ + subnets?: StringList; + /** + * The Amazon EC2 security groups associated with instances launched in the compute environment. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups. This can't be specified for EC2 compute resources. Providing an empty list is handled as if this parameter wasn't specified and no change is made. + */ + securityGroupIds?: StringList; + } + export interface ContainerDetail { + /** + * The image used to start the container. + */ + image?: String; + /** + * The number of vCPUs reserved for the container. For jobs that run on EC2 resources, you can specify the vCPU requirement for the job using resourceRequirements, but you can't specify the vCPU requirements in both the vcpus and resourceRequirement object. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. This is required but can be specified in several places. It must be specified for each node at least once. This parameter isn't applicable to jobs that run on Fargate resources. For jobs that run on Fargate resources, you must specify the vCPU requirement for the job using resourceRequirements. + */ + vcpus?: Integer; + /** + * For jobs run on EC2 resources that didn't specify memory requirements using ResourceRequirement, the number of MiB of memory reserved for the job. For other jobs, including all run on Fargate resources, see resourceRequirements. + */ + memory?: Integer; + /** + * The command that's passed to the container. + */ + command?: StringList; + /** + * The Amazon Resource Name (ARN) associated with the job upon execution. + */ + jobRoleArn?: String; + /** + * The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For more information, see AWS Batch execution IAM role in the AWS Batch User Guide. + */ + executionRoleArn?: String; + /** + * A list of volumes associated with the job. + */ + volumes?: Volumes; + /** + * The environment variables to pass to a container. Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service. + */ + environment?: EnvironmentVariables; + /** + * The mount points for data volumes in your container. + */ + mountPoints?: MountPoints; + /** + * When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run . + */ + readonlyRootFilesystem?: Boolean; + /** + * A list of ulimit values to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. This parameter isn't applicable to jobs running on Fargate resources. + */ + ulimits?: Ulimits; + /** + * When this parameter is true, the container is given elevated permissions on the host container instance (similar to the root user). The default value is false. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided, or specified as false. + */ + privileged?: Boolean; + /** + * The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run. + */ + user?: String; + /** + * The exit code to return upon completion. + */ + exitCode?: Integer; + /** + * A short (255 max characters) human-readable string to provide additional details about a running or stopped container. + */ + reason?: String; + /** + * The Amazon Resource Name (ARN) of the container instance that the container is running on. + */ + containerInstanceArn?: String; + /** + * The Amazon Resource Name (ARN) of the Amazon ECS task that's associated with the container job. Each container attempt receives a task ARN when they reach the STARTING status. + */ + taskArn?: String; + /** + * The name of the CloudWatch Logs log stream associated with the container. The log group for AWS Batch jobs is /aws/batch/job. Each container attempt receives a log stream name when they reach the RUNNING status. + */ + logStreamName?: String; + /** + * The instance type of the underlying host infrastructure of a multi-node parallel job. This parameter isn't applicable to jobs running on Fargate resources. + */ + instanceType?: String; + /** + * The network interfaces associated with the job. + */ + networkInterfaces?: NetworkInterfaceList; + /** + * The type and amount of resources to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + */ + resourceRequirements?: ResourceRequirements; + /** + * Linux-specific modifications that are applied to the container, such as details for device mappings. + */ + linuxParameters?: LinuxParameters; + /** + * The log configuration specification for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance. Or, alternatively, it must be configured on a different log server for remote logging options. For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation. AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers might be available in future releases of the Amazon ECS container agent. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide. + */ + logConfiguration?: LogConfiguration; + /** + * The secrets to pass to the container. For more information, see Specifying sensitive data in the AWS Batch User Guide. + */ + secrets?: SecretList; + /** + * The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter. + */ + networkConfiguration?: NetworkConfiguration; + /** + * The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter. + */ + fargatePlatformConfiguration?: FargatePlatformConfiguration; + } + export interface ContainerOverrides { + /** + * This parameter indicates the number of vCPUs reserved for the container.It overrides the vcpus parameter that's set in the job definition, but doesn't override any vCPU requirement specified in the resourceRequirement structure in the job definition. This parameter is supported for jobs that run on EC2 resources, but isn't supported for jobs that run on Fargate resources. For Fargate resources, you can only use resourceRequirement. For EC2 resources, you can use either this parameter or resourceRequirement but not both. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one vCPU. This parameter isn't applicable to jobs that run on Fargate resources and shouldn't be provided. For jobs that run on Fargate resources, you must specify the vCPU requirement for the job using resourceRequirements. + */ + vcpus?: Integer; + /** + * This parameter indicates the amount of memory (in MiB) that's reserved for the job. It overrides the memory parameter set in the job definition, but doesn't override any memory requirement specified in the ResourceRequirement structure in the job definition. This parameter is supported for jobs that run on EC2 resources, but isn't supported for jobs that run on Fargate resources. For these resources, use resourceRequirement instead. + */ + memory?: Integer; + /** + * The command to send to the container that overrides the default command from the Docker image or the job definition. + */ + command?: StringList; + /** + * The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or for jobs running on Fargate resources and shouldn't be provided. + */ + instanceType?: String; + /** + * The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition. Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service. + */ + environment?: EnvironmentVariables; + /** + * The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU. + */ + resourceRequirements?: ResourceRequirements; + } + export interface ContainerProperties { + /** + * The image used to start a container. This string is passed directly to the Docker daemon. Images in the Docker Hub registry are available by default. Other repositories are specified with repository-url/image:tag . Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of docker run. Docker image architecture must match the processor architecture of the compute resources that they're scheduled on. For example, ARM-based Docker images can only run on ARM-based compute resources. Images in Amazon ECR repositories use the full registry and repository URI (for example, 012345678910.dkr.ecr.<region-name>.amazonaws.com/<repository-name>). Images in official repositories on Docker Hub use a single name (for example, ubuntu or mongo). Images in other repositories on Docker Hub are qualified with an organization name (for example, amazon/amazon-ecs-agent). Images in other online repositories are qualified further by a domain name (for example, quay.io/assemblyline/ubuntu). + */ + image?: String; + /** + * The number of vCPUs reserved for the job. Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. The number of vCPUs must be specified but can be be specified in several places. You must specify it at least once for each node. This parameter is supported on EC2 resources but isn't supported for jobs that run on Fargate resources. For these resources, use resourceRequirement instead. You can use this parameter or resourceRequirements structure but not both. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. For jobs that run on Fargate resources, you must specify the vCPU requirement for the job using resourceRequirements. + */ + vcpus?: Integer; + /** + * This parameter indicates the memory hard limit (in MiB) for a container. If your container attempts to exceed the specified number, it is terminated. You must specify at least 4 MiB of memory for a job using this parameter. The memory hard limit can be specified in several places. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. This parameter is supported on EC2 resources but isn't supported on Fargate resources. For Fargate resources, you should specify the memory requirement using resourceRequirement. You can do this for EC2 resources. If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory Management in the AWS Batch User Guide. + */ + memory?: Integer; + /** + * The command that's passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. + */ + command?: StringList; + /** + * The Amazon Resource Name (ARN) of the IAM role that the container can assume for AWS permissions. For more information, see IAM Roles for Tasks in the Amazon Elastic Container Service Developer Guide. + */ + jobRoleArn?: String; + /** + * The Amazon Resource Name (ARN) of the execution role that AWS Batch can assume. For jobs that run on Fargate resources, you must provide an execution role. For more information, see AWS Batch execution IAM role in the AWS Batch User Guide. + */ + executionRoleArn?: String; + /** + * A list of data volumes used in a job. + */ + volumes?: Volumes; + /** + * The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run. We don't recommend using plaintext environment variables for sensitive information, such as credential data. Environment variables must not start with AWS_BATCH; this naming convention is reserved for variables that are set by the AWS Batch service. + */ + environment?: EnvironmentVariables; + /** + * The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run. + */ + mountPoints?: MountPoints; + /** + * When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ReadonlyRootfs in the Create a container section of the Docker Remote API and the --read-only option to docker run. + */ + readonlyRootFilesystem?: Boolean; + /** + * When this parameter is true, the container is given elevated permissions on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run. The default value is false. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided, or specified as false. + */ + privileged?: Boolean; + /** + * A list of ulimits to set in the container. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. + */ + ulimits?: Ulimits; + /** + * The user name to use inside the container. This parameter maps to User in the Create a container section of the Docker Remote API and the --user option to docker run. + */ + user?: String; + /** + * The instance type to use for a multi-node parallel job. All node groups in a multi-node parallel job must use the same instance type. This parameter isn't applicable to single-node container jobs or for jobs that run on Fargate resources and shouldn't be provided. + */ + instanceType?: String; + /** + * The type and amount of resources to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + */ + resourceRequirements?: ResourceRequirements; + /** + * Linux-specific modifications that are applied to the container, such as details for device mappings. + */ + linuxParameters?: LinuxParameters; + /** + * The log configuration specification for the container. This parameter maps to LogConfig in the Create a container section of the Docker Remote API and the --log-driver option to docker run. By default, containers use the same logging driver that the Docker daemon uses. However the container might use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see Configure logging drivers in the Docker documentation. AWS Batch currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" The Amazon ECS container agent running on a container instance must register the logging drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS environment variable before containers placed on that instance can use these log configuration options. For more information, see Amazon ECS Container Agent Configuration in the Amazon Elastic Container Service Developer Guide. + */ + logConfiguration?: LogConfiguration; + /** + * The secrets for the container. For more information, see Specifying sensitive data in the AWS Batch User Guide. + */ + secrets?: SecretList; + /** + * The network configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter. + */ + networkConfiguration?: NetworkConfiguration; + /** + * The platform configuration for jobs running on Fargate resources. Jobs running on EC2 resources must not specify this parameter. + */ + fargatePlatformConfiguration?: FargatePlatformConfiguration; + } + export interface ContainerSummary { + /** + * The exit code to return upon completion. + */ + exitCode?: Integer; + /** + * A short (255 max characters) human-readable string to provide additional details about a running or stopped container. + */ + reason?: String; + } + export interface CreateComputeEnvironmentRequest { + /** + * The name for your compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + */ + computeEnvironmentName: String; + /** + * The type of the compute environment: MANAGED or UNMANAGED. For more information, see Compute Environments in the AWS Batch User Guide. + */ + type: CEType; + /** + * The state of the compute environment. If the state is ENABLED, then the compute environment accepts jobs from a queue and can scale out automatically based on queues. If the state is ENABLED, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand. If the state is DISABLED, then the AWS Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out. However, they scale in to minvCpus value after instances become idle. + */ + state?: CEState; + /** + * Details about the compute resources managed by the compute environment. This parameter is required for managed compute environments. For more information, see Compute Environments in the AWS Batch User Guide. + */ + computeResources?: ComputeResource; + /** + * The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. For more information, see AWS Batch service IAM role in the AWS Batch User Guide. If your account has already created the AWS Batch service-linked role, that role is used by default for your compute environment unless you specify a role here. If the AWS Batch service-linked role does not exist in your account, and no role is specified here, the service will try to create the AWS Batch service-linked role in your account. If your specified role has a path other than /, then you must specify either the full role ARN (recommended) or prefix the role name with the path. For example, if a role with the name bar has a path of /foo/ then you would specify /foo/bar as the role name. For more information, see Friendly names and paths in the IAM User Guide. Depending on how you created your AWS Batch service role, its ARN might contain the service-role path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments. + */ + serviceRole?: String; + /** + * The tags that you apply to the compute environment to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference. These tags can be updated or removed using the TagResource and UntagResource API operations. These tags don't propagate to the underlying compute resources. + */ + tags?: TagrisTagsMap; + } + export interface CreateComputeEnvironmentResponse { + /** + * The name of the compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + */ + computeEnvironmentName?: String; + /** + * The Amazon Resource Name (ARN) of the compute environment. + */ + computeEnvironmentArn?: String; + } + export interface CreateJobQueueRequest { + /** + * The name of the job queue. Up to 128 letters (uppercase and lowercase), numbers, and underscores are allowed. + */ + jobQueueName: String; + /** + * The state of the job queue. If the job queue state is ENABLED, it is able to accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can finish. + */ + state?: JQState; + /** + * The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments cannot be mixed. + */ + priority: Integer; + /** + * The set of compute environments mapped to a job queue and their order relative to each other. The job scheduler uses this parameter to determine which compute environment should run a specific job. Compute environments must be in the VALID state before you can associate them with a job queue. You can associate up to three compute environments with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed. All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue. + */ + computeEnvironmentOrder: ComputeEnvironmentOrders; + /** + * The tags that you apply to the job queue to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging your AWS Batch resources in AWS Batch User Guide. + */ + tags?: TagrisTagsMap; + } + export interface CreateJobQueueResponse { + /** + * The name of the job queue. + */ + jobQueueName: String; + /** + * The Amazon Resource Name (ARN) of the job queue. + */ + jobQueueArn: String; + } + export interface DeleteComputeEnvironmentRequest { + /** + * The name or Amazon Resource Name (ARN) of the compute environment to delete. + */ + computeEnvironment: String; + } + export interface DeleteComputeEnvironmentResponse { + } + export interface DeleteJobQueueRequest { + /** + * The short name or full Amazon Resource Name (ARN) of the queue to delete. + */ + jobQueue: String; + } + export interface DeleteJobQueueResponse { + } + export interface DeregisterJobDefinitionRequest { + /** + * The name and revision (name:revision) or full Amazon Resource Name (ARN) of the job definition to deregister. + */ + jobDefinition: String; + } + export interface DeregisterJobDefinitionResponse { + } + export interface DescribeComputeEnvironmentsRequest { + /** + * A list of up to 100 compute environment names or full Amazon Resource Name (ARN) entries. + */ + computeEnvironments?: StringList; + /** + * The maximum number of cluster results returned by DescribeComputeEnvironments in paginated output. When this parameter is used, DescribeComputeEnvironments only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeComputeEnvironments request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then DescribeComputeEnvironments returns up to 100 results and a nextToken value if applicable. + */ + maxResults?: Integer; + /** + * The nextToken value returned from a previous paginated DescribeComputeEnvironments request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: String; + } + export interface DescribeComputeEnvironmentsResponse { + /** + * The list of compute environments. + */ + computeEnvironments?: ComputeEnvironmentDetailList; + /** + * The nextToken value to include in a future DescribeComputeEnvironments request. When the results of a DescribeJobDefinitions request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + } + export interface DescribeJobDefinitionsRequest { + /** + * A list of up to 100 job definition names or full Amazon Resource Name (ARN) entries. + */ + jobDefinitions?: StringList; + /** + * The maximum number of results returned by DescribeJobDefinitions in paginated output. When this parameter is used, DescribeJobDefinitions only returns maxResults results in a single page and a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeJobDefinitions request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then DescribeJobDefinitions returns up to 100 results and a nextToken value if applicable. + */ + maxResults?: Integer; + /** + * The name of the job definition to describe. + */ + jobDefinitionName?: String; + /** + * The status used to filter job definitions. + */ + status?: String; + /** + * The nextToken value returned from a previous paginated DescribeJobDefinitions request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: String; + } + export interface DescribeJobDefinitionsResponse { + /** + * The list of job definitions. + */ + jobDefinitions?: JobDefinitionList; + /** + * The nextToken value to include in a future DescribeJobDefinitions request. When the results of a DescribeJobDefinitions request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + } + export interface DescribeJobQueuesRequest { + /** + * A list of up to 100 queue names or full queue Amazon Resource Name (ARN) entries. + */ + jobQueues?: StringList; + /** + * The maximum number of results returned by DescribeJobQueues in paginated output. When this parameter is used, DescribeJobQueues only returns maxResults results in a single page and a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeJobQueues request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then DescribeJobQueues returns up to 100 results and a nextToken value if applicable. + */ + maxResults?: Integer; + /** + * The nextToken value returned from a previous paginated DescribeJobQueues request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: String; + } + export interface DescribeJobQueuesResponse { + /** + * The list of job queues. + */ + jobQueues?: JobQueueDetailList; + /** + * The nextToken value to include in a future DescribeJobQueues request. When the results of a DescribeJobQueues request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + } + export interface DescribeJobsRequest { + /** + * A list of up to 100 job IDs. + */ + jobs: StringList; + } + export interface DescribeJobsResponse { + /** + * The list of jobs. + */ + jobs?: JobDetailList; + } + export interface Device { + /** + * The path for the device on the host container instance. + */ + hostPath: String; + /** + * The path inside the container used to expose the host device. By default, the hostPath value is used. + */ + containerPath?: String; + /** + * The explicit permissions to provide to the container for the device. By default, the container has permissions for read, write, and mknod for the device. + */ + permissions?: DeviceCgroupPermissions; + } + export type DeviceCgroupPermission = "READ"|"WRITE"|"MKNOD"|string; + export type DeviceCgroupPermissions = DeviceCgroupPermission[]; + export type DevicesList = Device[]; + export interface EFSAuthorizationConfig { + /** + * The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS Access Points in the Amazon Elastic File System User Guide. + */ + accessPointId?: String; + /** + * Whether or not to use the AWS Batch execution IAM role defined in a job definition when mounting the Amazon EFS file system. If enabled, transit encryption must be enabled in the EFSVolumeConfiguration. If this parameter is omitted, the default value of DISABLED is used. For more information, see Using Amazon EFS Access Points in the AWS Batch User Guide. EFS IAM authorization requires that TransitEncryption be ENABLED and that a JobRoleArn is specified. + */ + iam?: EFSAuthorizationConfigIAM; + } + export type EFSAuthorizationConfigIAM = "ENABLED"|"DISABLED"|string; + export type EFSTransitEncryption = "ENABLED"|"DISABLED"|string; + export interface EFSVolumeConfiguration { + /** + * The Amazon EFS file system ID to use. + */ + fileSystemId: String; + /** + * The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying / will have the same effect as omitting this parameter. If an EFS access point is specified in the authorizationConfig, the root directory parameter must either be omitted or set to / which will enforce the path set on the Amazon EFS access point. + */ + rootDirectory?: String; + /** + * Whether or not to enable encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be enabled if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of DISABLED is used. For more information, see Encrypting data in transit in the Amazon Elastic File System User Guide. + */ + transitEncryption?: EFSTransitEncryption; + /** + * The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see EFS Mount Helper in the Amazon Elastic File System User Guide. + */ + transitEncryptionPort?: Integer; + /** + * The authorization configuration details for the Amazon EFS file system. + */ + authorizationConfig?: EFSAuthorizationConfig; + } + export interface Ec2Configuration { + /** + * The image type to match with the instance type to select an AMI. If the imageIdOverride parameter isn't specified, then a recent Amazon ECS-optimized AMI (ECS_AL1) is used. Starting on March 31, 2021, this default will be changing to ECS_AL2 (Amazon Linux 2). ECS_AL2 Amazon Linux 2− Default for all AWS Graviton-based instance families (for example, C6g, M6g, R6g, and T4g) and can be used for all non-GPU instance types. ECS_AL2_NVIDIA Amazon Linux 2 (GPU)−Default for all GPU instance families (for example P4 and G4) and can be used for all non-AWS Graviton-based instance types. ECS_AL1 Amazon Linux−Default for all non-GPU, non-AWS Graviton instance families. Amazon Linux is reaching the end-of-life of standard support. For more information, see Amazon Linux AMI. + */ + imageType: ImageType; + /** + * The AMI ID used for instances launched in the compute environment that match the image type. This setting overrides the imageId set in the computeResource object. + */ + imageIdOverride?: ImageIdOverride; + } + export type Ec2ConfigurationList = Ec2Configuration[]; + export type EnvironmentVariables = KeyValuePair[]; + export interface EvaluateOnExit { + /** + * Contains a glob pattern to match against the StatusReason returned for a job. The pattern can be up to 512 characters long, and can contain letters, numbers, periods (.), colons (:), and white space (including spaces or tabs). It can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match. + */ + onStatusReason?: String; + /** + * Contains a glob pattern to match against the Reason returned for a job. The pattern can be up to 512 characters long, and can contain letters, numbers, periods (.), colons (:), and white space (including spaces and tabs). It can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match. + */ + onReason?: String; + /** + * Contains a glob pattern to match against the decimal representation of the ExitCode returned for a job. The pattern can be up to 512 characters long, can contain only numbers, and can optionally end with an asterisk (*) so that only the start of the string needs to be an exact match. + */ + onExitCode?: String; + /** + * Specifies the action to take if all of the specified conditions (onStatusReason, onReason, and onExitCode) are met. The values aren't case sensitive. + */ + action: RetryAction; + } + export type EvaluateOnExitList = EvaluateOnExit[]; + export interface FargatePlatformConfiguration { + /** + * The AWS Fargate platform version where the jobs are running. A platform version is specified only for jobs running on Fargate resources. If one isn't specified, the LATEST platform version is used by default. This uses a recent, approved version of the AWS Fargate platform for compute resources. For more information, see AWS Fargate platform versions in the Amazon Elastic Container Service Developer Guide. + */ + platformVersion?: String; + } + export interface Host { + /** + * The path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If this parameter contains a file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the source path location doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. This parameter isn't applicable to jobs that run on Fargate resources and shouldn't be provided. + */ + sourcePath?: String; + } + export type ImageIdOverride = string; + export type ImageType = string; + export type Integer = number; + export type JQState = "ENABLED"|"DISABLED"|string; + export type JQStatus = "CREATING"|"UPDATING"|"DELETING"|"DELETED"|"VALID"|"INVALID"|string; + export interface JobDefinition { + /** + * The name of the job definition. + */ + jobDefinitionName: String; + /** + * The Amazon Resource Name (ARN) for the job definition. + */ + jobDefinitionArn: String; + /** + * The revision of the job definition. + */ + revision: Integer; + /** + * The status of the job definition. + */ + status?: String; + /** + * The type of job definition. If the job is run on Fargate resources, then multinode isn't supported. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the AWS Batch User Guide. + */ + type: String; + /** + * Default parameters or parameter substitution placeholders that are set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition. For more information about specifying parameters, see Job Definition Parameters in the AWS Batch User Guide. + */ + parameters?: ParametersMap; + /** + * The retry strategy to use for failed jobs that are submitted with this job definition. + */ + retryStrategy?: RetryStrategy; + /** + * An object with various properties specific to container-based jobs. + */ + containerProperties?: ContainerProperties; + /** + * The timeout configuration for jobs that are submitted with this job definition. You can specify a timeout duration after which AWS Batch terminates your jobs if they haven't finished. + */ + timeout?: JobTimeout; + /** + * An object with various properties specific to multi-node parallel jobs. If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead. + */ + nodeProperties?: NodeProperties; + /** + * The tags applied to the job definition. + */ + tags?: TagrisTagsMap; + /** + * Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state. + */ + propagateTags?: Boolean; + /** + * The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE. + */ + platformCapabilities?: PlatformCapabilityList; + } + export type JobDefinitionList = JobDefinition[]; + export type JobDefinitionType = "container"|"multinode"|string; + export interface JobDependency { + /** + * The job ID of the AWS Batch job associated with this dependency. + */ + jobId?: String; + /** + * The type of the job dependency. + */ + type?: ArrayJobDependency; + } + export type JobDependencyList = JobDependency[]; + export interface JobDetail { + /** + * The Amazon Resource Name (ARN) of the job. + */ + jobArn?: String; + /** + * The name of the job. + */ + jobName: String; + /** + * The ID for the job. + */ + jobId: String; + /** + * The Amazon Resource Name (ARN) of the job queue that the job is associated with. + */ + jobQueue: String; + /** + * The current status for the job. If your jobs don't progress to STARTING, see Jobs Stuck in RUNNABLE Status in the troubleshooting section of the AWS Batch User Guide. + */ + status: JobStatus; + /** + * A list of job attempts associated with this job. + */ + attempts?: AttemptDetails; + /** + * A short, human-readable string to provide additional details about the current status of the job. + */ + statusReason?: String; + /** + * The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state (at the time SubmitJob was called). For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state. + */ + createdAt?: Long; + /** + * The retry strategy to use for this job if an attempt fails. + */ + retryStrategy?: RetryStrategy; + /** + * The Unix timestamp (in milliseconds) for when the job was started (when the job transitioned from the STARTING state to the RUNNING state). This parameter isn't provided for child jobs of array jobs or multi-node parallel jobs. + */ + startedAt: Long; + /** + * The Unix timestamp (in milliseconds) for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED). + */ + stoppedAt?: Long; + /** + * A list of job IDs that this job depends on. + */ + dependsOn?: JobDependencyList; + /** + * The job definition that's used by this job. + */ + jobDefinition: String; + /** + * Additional parameters passed to the job that replace parameter substitution placeholders or override any corresponding parameter defaults from the job definition. + */ + parameters?: ParametersMap; + /** + * An object representing the details of the container that's associated with the job. + */ + container?: ContainerDetail; + /** + * An object representing the details of a node that's associated with a multi-node parallel job. + */ + nodeDetails?: NodeDetails; + /** + * An object representing the node properties of a multi-node parallel job. This isn't applicable to jobs running on Fargate resources. + */ + nodeProperties?: NodeProperties; + /** + * The array properties of the job, if it is an array job. + */ + arrayProperties?: ArrayPropertiesDetail; + /** + * The timeout configuration for the job. + */ + timeout?: JobTimeout; + /** + * The tags applied to the job. + */ + tags?: TagrisTagsMap; + /** + * Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state. + */ + propagateTags?: Boolean; + /** + * The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE. + */ + platformCapabilities?: PlatformCapabilityList; + } + export type JobDetailList = JobDetail[]; + export interface JobQueueDetail { + /** + * The name of the job queue. + */ + jobQueueName: String; + /** + * The Amazon Resource Name (ARN) of the job queue. + */ + jobQueueArn: String; + /** + * Describes the ability of the queue to accept new jobs. If the job queue state is ENABLED, it's able to accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can finish. + */ + state: JQState; + /** + * The status of the job queue (for example, CREATING or VALID). + */ + status?: JQStatus; + /** + * A short, human-readable string to provide additional details about the current status of the job queue. + */ + statusReason?: String; + /** + * The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed. + */ + priority: Integer; + /** + * The compute environments that are attached to the job queue and the order that job placement is preferred. Compute environments are selected for job placement in ascending order. + */ + computeEnvironmentOrder: ComputeEnvironmentOrders; + /** + * The tags applied to the job queue. For more information, see Tagging your AWS Batch resources in AWS Batch User Guide. + */ + tags?: TagrisTagsMap; + } + export type JobQueueDetailList = JobQueueDetail[]; + export type JobStatus = "SUBMITTED"|"PENDING"|"RUNNABLE"|"STARTING"|"RUNNING"|"SUCCEEDED"|"FAILED"|string; + export interface JobSummary { + /** + * The Amazon Resource Name (ARN) of the job. + */ + jobArn?: String; + /** + * The ID of the job. + */ + jobId: String; + /** + * The name of the job. + */ + jobName: String; + /** + * The Unix timestamp for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state (at the time SubmitJob was called). For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state. + */ + createdAt?: Long; + /** + * The current status for the job. + */ + status?: JobStatus; + /** + * A short, human-readable string to provide additional details about the current status of the job. + */ + statusReason?: String; + /** + * The Unix timestamp for when the job was started (when the job transitioned from the STARTING state to the RUNNING state). + */ + startedAt?: Long; + /** + * The Unix timestamp for when the job was stopped (when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED). + */ + stoppedAt?: Long; + /** + * An object representing the details of the container that's associated with the job. + */ + container?: ContainerSummary; + /** + * The array properties of the job, if it is an array job. + */ + arrayProperties?: ArrayPropertiesSummary; + /** + * The node properties for a single node in a job summary list. This isn't applicable to jobs running on Fargate resources. + */ + nodeProperties?: NodePropertiesSummary; + } + export type JobSummaryList = JobSummary[]; + export interface JobTimeout { + /** + * The time duration in seconds (measured from the job attempt's startedAt timestamp) after which AWS Batch terminates your jobs if they have not finished. The minimum value for the timeout is 60 seconds. + */ + attemptDurationSeconds?: Integer; + } + export interface KeyValuePair { + /** + * The name of the key-value pair. For environment variables, this is the name of the environment variable. + */ + name?: String; + /** + * The value of the key-value pair. For environment variables, this is the value of the environment variable. + */ + value?: String; + } + export interface LaunchTemplateSpecification { + /** + * The ID of the launch template. + */ + launchTemplateId?: String; + /** + * The name of the launch template. + */ + launchTemplateName?: String; + /** + * The version number of the launch template, $Latest, or $Default. If the value is $Latest, the latest version of the launch template is used. If the value is $Default, the default version of the launch template is used. After the compute environment is created, the launch template version used will not be changed, even if the $Default or $Latest version for the launch template is updated. To use a new launch template version, create a new compute environment, add the new compute environment to the existing job queue, remove the old compute environment from the job queue, and delete the old compute environment. Default: $Default. + */ + version?: String; + } + export interface LinuxParameters { + /** + * Any host devices to expose to the container. This parameter maps to Devices in the Create a container section of the Docker Remote API and the --device option to docker run. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. + */ + devices?: DevicesList; + /** + * If true, run an init process inside the container that forwards signals and reaps processes. This parameter maps to the --init option to docker run. This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" + */ + initProcessEnabled?: Boolean; + /** + * The value for the size (in MiB) of the /dev/shm volume. This parameter maps to the --shm-size option to docker run. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. + */ + sharedMemorySize?: Integer; + /** + * The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the --tmpfs option to docker run. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. + */ + tmpfs?: TmpfsList; + /** + * The total amount of swap memory (in MiB) a container can use. This parameter is translated to the --memory-swap option to docker run where the value is the sum of the container memory plus the maxSwap value. For more information, see --memory-swap details in the Docker documentation. If a maxSwap value of 0 is specified, the container doesn't use swap. Accepted values are 0 or any positive integer. If the maxSwap parameter is omitted, the container doesn't use the swap configuration for the container instance it is running on. A maxSwap value must be set for the swappiness parameter to be used. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. + */ + maxSwap?: Integer; + /** + * This allows you to tune a container's memory swappiness behavior. A swappiness value of 0 causes swapping not to happen unless absolutely necessary. A swappiness value of 100 causes pages to be swapped very aggressively. Accepted values are whole numbers between 0 and 100. If the swappiness parameter isn't specified, a default value of 60 is used. If a value isn't specified for maxSwap then this parameter is ignored. If maxSwap is set to 0, the container doesn't use swap. This parameter maps to the --memory-swappiness option to docker run. Consider the following when you use a per-container swap configuration. Swap space must be enabled and allocated on the container instance for the containers to use. The Amazon ECS optimized AMIs don't have swap enabled by default. You must enable swap on the instance to use this feature. For more information, see Instance Store Swap Volumes in the Amazon EC2 User Guide for Linux Instances or How do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap file? The swap space parameters are only supported for job definitions using EC2 resources. If the maxSwap and swappiness parameters are omitted from a job definition, each container will have a default swappiness value of 60, and the total swap usage will be limited to two times the memory reservation of the container. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. + */ + swappiness?: Integer; + } + export interface ListJobsRequest { + /** + * The name or full Amazon Resource Name (ARN) of the job queue used to list jobs. + */ + jobQueue?: String; + /** + * The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from within the specified array. + */ + arrayJobId?: String; + /** + * The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with this parameter lists all nodes that are associated with the specified job. + */ + multiNodeJobId?: String; + /** + * The job status used to filter jobs in the specified queue. If you don't specify a status, only RUNNING jobs are returned. + */ + jobStatus?: JobStatus; + /** + * The maximum number of results returned by ListJobs in paginated output. When this parameter is used, ListJobs only returns maxResults results in a single page and a nextToken response element. The remaining results of the initial request can be seen by sending another ListJobs request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then ListJobs returns up to 100 results and a nextToken value if applicable. + */ + maxResults?: Integer; + /** + * The nextToken value returned from a previous paginated ListJobs request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This value is null when there are no more results to return. This token should be treated as an opaque identifier that's only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: String; + } + export interface ListJobsResponse { + /** + * A list of job summaries that match the request. + */ + jobSummaryList: JobSummaryList; + /** + * The nextToken value to include in a future ListJobs request. When the results of a ListJobs request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: String; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) that identifies the resource that tags are listed for. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported. + */ + resourceArn: String; + } + export interface ListTagsForResourceResponse { + /** + * The tags for the resource. + */ + tags?: TagrisTagsMap; + } + export interface LogConfiguration { + /** + * The log driver to use for the container. The valid values listed for this parameter are log drivers that the Amazon ECS container agent can communicate with by default. The supported log drivers are awslogs, fluentd, gelf, json-file, journald, logentries, syslog, and splunk. Jobs running on Fargate resources are restricted to the awslogs and splunk log drivers. awslogs Specifies the Amazon CloudWatch Logs logging driver. For more information, see Using the awslogs Log Driver in the AWS Batch User Guide and Amazon CloudWatch Logs logging driver in the Docker documentation. fluentd Specifies the Fluentd logging driver. For more information, including usage and options, see Fluentd logging driver in the Docker documentation. gelf Specifies the Graylog Extended Format (GELF) logging driver. For more information, including usage and options, see Graylog Extended Format logging driver in the Docker documentation. journald Specifies the journald logging driver. For more information, including usage and options, see Journald logging driver in the Docker documentation. json-file Specifies the JSON file logging driver. For more information, including usage and options, see JSON File logging driver in the Docker documentation. splunk Specifies the Splunk logging driver. For more information, including usage and options, see Splunk logging driver in the Docker documentation. syslog Specifies the syslog logging driver. For more information, including usage and options, see Syslog logging driver in the Docker documentation. If you have a custom driver that's not listed earlier that you want to work with the Amazon ECS container agent, you can fork the Amazon ECS container agent project that's available on GitHub and customize it to work with that driver. We encourage you to submit pull requests for changes that you want to have included. However, Amazon Web Services doesn't currently support running modified copies of this software. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" + */ + logDriver: LogDriver; + /** + * The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log into your container instance and run the following command: sudo docker version | grep "Server API version" + */ + options?: LogConfigurationOptionsMap; + /** + * The secrets to pass to the log configuration. For more information, see Specifying Sensitive Data in the AWS Batch User Guide. + */ + secretOptions?: SecretList; + } + export type LogConfigurationOptionsMap = {[key: string]: String}; + export type LogDriver = "json-file"|"syslog"|"journald"|"gelf"|"fluentd"|"awslogs"|"splunk"|string; + export type Long = number; + export interface MountPoint { + /** + * The path on the container where the host volume is mounted. + */ + containerPath?: String; + /** + * If this value is true, the container has read-only access to the volume. Otherwise, the container can write to the volume. The default value is false. + */ + readOnly?: Boolean; + /** + * The name of the volume to mount. + */ + sourceVolume?: String; + } + export type MountPoints = MountPoint[]; + export interface NetworkConfiguration { + /** + * Indicates whether the job should have a public IP address. For a job running on Fargate resources in a private subnet to send outbound traffic to the internet (for example, in order to pull container images), the private subnet requires a NAT gateway be attached to route requests to the internet. For more information, see Amazon ECS task networking. The default value is "DISABLED". + */ + assignPublicIp?: AssignPublicIp; + } + export interface NetworkInterface { + /** + * The attachment ID for the network interface. + */ + attachmentId?: String; + /** + * The private IPv6 address for the network interface. + */ + ipv6Address?: String; + /** + * The private IPv4 address for the network interface. + */ + privateIpv4Address?: String; + } + export type NetworkInterfaceList = NetworkInterface[]; + export interface NodeDetails { + /** + * The node index for the node. Node index numbering begins at zero. This index is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment variable. + */ + nodeIndex?: Integer; + /** + * Specifies whether the current node is the main node for a multi-node parallel job. + */ + isMainNode?: Boolean; + } + export interface NodeOverrides { + /** + * The number of nodes to use with a multi-node parallel job. This value overrides the number of nodes that are specified in the job definition. To use this override: There must be at least one node range in your job definition that has an open upper boundary (such as : or n:). The lower boundary of the node range specified in the job definition must be fewer than the number of nodes specified in the override. The main node index specified in the job definition must be fewer than the number of nodes specified in the override. + */ + numNodes?: Integer; + /** + * The node property overrides for the job. + */ + nodePropertyOverrides?: NodePropertyOverrides; + } + export interface NodeProperties { + /** + * The number of nodes associated with a multi-node parallel job. + */ + numNodes: Integer; + /** + * Specifies the node index for the main node of a multi-node parallel job. This node index value must be fewer than the number of nodes. + */ + mainNode: Integer; + /** + * A list of node ranges and their properties associated with a multi-node parallel job. + */ + nodeRangeProperties: NodeRangeProperties; + } + export interface NodePropertiesSummary { + /** + * Specifies whether the current node is the main node for a multi-node parallel job. + */ + isMainNode?: Boolean; + /** + * The number of nodes associated with a multi-node parallel job. + */ + numNodes?: Integer; + /** + * The node index for the node. Node index numbering begins at zero. This index is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment variable. + */ + nodeIndex?: Integer; + } + export interface NodePropertyOverride { + /** + * The range of nodes, using node index values, that's used to override. A range of 0:3 indicates nodes with index values of 0 through 3. If the starting range value is omitted (:n), then 0 is used to start the range. If the ending range value is omitted (n:), then the highest possible node index is used to end the range. + */ + targetNodes: String; + /** + * The overrides that should be sent to a node range. + */ + containerOverrides?: ContainerOverrides; + } + export type NodePropertyOverrides = NodePropertyOverride[]; + export type NodeRangeProperties = NodeRangeProperty[]; + export interface NodeRangeProperty { + /** + * The range of nodes, using node index values. A range of 0:3 indicates nodes with index values of 0 through 3. If the starting range value is omitted (:n), then 0 is used to start the range. If the ending range value is omitted (n:), then the highest possible node index is used to end the range. Your accumulative node ranges must account for all nodes (0:n). You can nest node ranges, for example 0:10 and 4:5, in which case the 4:5 range properties override the 0:10 properties. + */ + targetNodes: String; + /** + * The container details for the node range. + */ + container?: ContainerProperties; + } + export type ParametersMap = {[key: string]: String}; + export type PlatformCapability = "EC2"|"FARGATE"|string; + export type PlatformCapabilityList = PlatformCapability[]; + export interface RegisterJobDefinitionRequest { + /** + * The name of the job definition to register. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + */ + jobDefinitionName: String; + /** + * The type of job definition. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the AWS Batch User Guide. If the job is run on Fargate resources, then multinode isn't supported. + */ + type: JobDefinitionType; + /** + * Default parameter substitution placeholders to set in the job definition. Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition. + */ + parameters?: ParametersMap; + /** + * An object with various properties specific to single-node container-based jobs. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties. If the job runs on Fargate resources, then you must not specify nodeProperties; use only containerProperties. + */ + containerProperties?: ContainerProperties; + /** + * An object with various properties specific to multi-node parallel jobs. If you specify node properties for a job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the AWS Batch User Guide. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties. If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead. + */ + nodeProperties?: NodeProperties; + /** + * The retry strategy to use for failed jobs that are submitted with this job definition. Any retry strategy that's specified during a SubmitJob operation overrides the retry strategy defined here. If a job is terminated due to a timeout, it isn't retried. + */ + retryStrategy?: RetryStrategy; + /** + * Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state. + */ + propagateTags?: Boolean; + /** + * The timeout configuration for jobs that are submitted with this job definition, after which AWS Batch terminates your jobs if they have not finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for the timeout is 60 seconds. Any timeout configuration that's specified during a SubmitJob operation overrides the timeout configuration defined here. For more information, see Job Timeouts in the AWS Batch User Guide. + */ + timeout?: JobTimeout; + /** + * The tags that you apply to the job definition to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS Batch User Guide. + */ + tags?: TagrisTagsMap; + /** + * The platform capabilities required by the job definition. If no value is specified, it defaults to EC2. To run the job on Fargate resources, specify FARGATE. + */ + platformCapabilities?: PlatformCapabilityList; + } + export interface RegisterJobDefinitionResponse { + /** + * The name of the job definition. + */ + jobDefinitionName: String; + /** + * The Amazon Resource Name (ARN) of the job definition. + */ + jobDefinitionArn: String; + /** + * The revision of the job definition. + */ + revision: Integer; + } + export interface ResourceRequirement { + /** + * The quantity of the specified resource to reserve for the container. The values vary based on the type specified. type="GPU" The number of physical GPUs to reserve for the container. The number of GPUs reserved for all containers in a job shouldn't exceed the number of available GPUs on the compute resource that the job is launched on. GPUs are not available for jobs running on Fargate resources. type="MEMORY" The memory hard limit (in MiB) present to the container. This parameter is supported for jobs running on EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory Management in the AWS Batch User Guide. For jobs running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value. value = 512 VCPU = 0.25 value = 1024 VCPU = 0.25 or 0.5 value = 2048 VCPU = 0.25, 0.5, or 1 value = 3072 VCPU = 0.5, or 1 value = 4096 VCPU = 0.5, 1, or 2 value = 5120, 6144, or 7168 VCPU = 1 or 2 value = 8192 VCPU = 1, 2, or 4 value = 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384 VCPU = 2 or 4 value = 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720 VCPU = 4 type="VCPU" The number of vCPUs reserved for the container. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, you must specify at least one vCPU. This is required but can be specified in several places; it must be specified for each node at least once. For jobs running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, and 4 value = 0.25 MEMORY = 512, 1024, or 2048 value = 0.5 MEMORY = 1024, 2048, 3072, or 4096 value = 1 MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 value = 2 MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384 value = 4 MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720 + */ + value: String; + /** + * The type of resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU. + */ + type: ResourceType; + } + export type ResourceRequirements = ResourceRequirement[]; + export type ResourceType = "GPU"|"VCPU"|"MEMORY"|string; + export type RetryAction = "RETRY"|"EXIT"|string; + export interface RetryStrategy { + /** + * The number of times to move a job to the RUNNABLE status. You can specify between 1 and 10 attempts. If the value of attempts is greater than one, the job is retried on failure the same number of attempts as the value. + */ + attempts?: Integer; + /** + * Array of up to 5 objects that specify conditions under which the job should be retried or failed. If this parameter is specified, then the attempts parameter must also be specified. + */ + evaluateOnExit?: EvaluateOnExitList; + } + export interface Secret { + /** + * The name of the secret. + */ + name: String; + /** + * The secret to expose to the container. The supported values are either the full ARN of the AWS Secrets Manager secret or the full ARN of the parameter in the AWS Systems Manager Parameter Store. If the AWS Systems Manager Parameter Store parameter exists in the same Region as the job you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified. + */ + valueFrom: String; + } + export type SecretList = Secret[]; + export type String = string; + export type StringList = String[]; + export interface SubmitJobRequest { + /** + * The name of the job. The first character must be alphanumeric, and up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + */ + jobName: String; + /** + * The job queue where the job is submitted. You can specify either the name or the Amazon Resource Name (ARN) of the queue. + */ + jobQueue: String; + /** + * The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. For more information, see Array Jobs in the AWS Batch User Guide. + */ + arrayProperties?: ArrayProperties; + /** + * A list of dependencies for the job. A job can depend upon a maximum of 20 jobs. You can specify a SEQUENTIAL type dependency without specifying a job ID for array jobs so that each child array job completes sequentially, starting at index 0. You can also specify an N_TO_N type dependency with a job ID for array jobs. In that case, each index child of this job must wait for the corresponding index child of each dependency to complete before it can begin. + */ + dependsOn?: JobDependencyList; + /** + * The job definition used by this job. This value can be one of name, name:revision, or the Amazon Resource Name (ARN) for the job definition. If name is specified without a revision then the latest active revision is used. + */ + jobDefinition: String; + /** + * Additional parameters passed to the job that replace parameter substitution placeholders that are set in the job definition. Parameters are specified as a key and value pair mapping. Parameters in a SubmitJob request override any corresponding parameter defaults from the job definition. + */ + parameters?: ParametersMap; + /** + * A list of container overrides in the JSON format that specify the name of a container in the specified job definition and the overrides it should receive. You can override the default command for a container, which is specified in the job definition or the Docker image, with a command override. You can also override existing environment variables on a container or add new environment variables to it with an environment override. + */ + containerOverrides?: ContainerOverrides; + /** + * A list of node overrides in JSON format that specify the node range to target and the container overrides for that node range. This parameter isn't applicable to jobs running on Fargate resources; use containerOverrides instead. + */ + nodeOverrides?: NodeOverrides; + /** + * The retry strategy to use for failed jobs from this SubmitJob operation. When a retry strategy is specified here, it overrides the retry strategy defined in the job definition. + */ + retryStrategy?: RetryStrategy; + /** + * Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state. When specified, this overrides the tag propagation setting in the job definition. + */ + propagateTags?: Boolean; + /** + * The timeout configuration for this SubmitJob operation. You can specify a timeout duration after which AWS Batch terminates your jobs if they haven't finished. If a job is terminated due to a timeout, it isn't retried. The minimum value for the timeout is 60 seconds. This configuration overrides any timeout configuration specified in the job definition. For array jobs, child jobs have the same timeout configuration as the parent job. For more information, see Job Timeouts in the Amazon Elastic Container Service Developer Guide. + */ + timeout?: JobTimeout; + /** + * The tags that you apply to the job request to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference. + */ + tags?: TagrisTagsMap; + } + export interface SubmitJobResponse { + /** + * The Amazon Resource Name (ARN) for the job. + */ + jobArn?: String; + /** + * The name of the job. + */ + jobName: String; + /** + * The unique identifier for the job. + */ + jobId: String; + } + export type TagKey = string; + export type TagKeysList = TagKey[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that tags are added to. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported. + */ + resourceArn: String; + /** + * The tags that you apply to the resource to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see Tagging AWS Resources in AWS General Reference. + */ + tags: TagrisTagsMap; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type TagrisTagsMap = {[key: string]: TagValue}; + export type TagsMap = {[key: string]: String}; + export interface TerminateJobRequest { + /** + * The AWS Batch job ID of the job to terminate. + */ + jobId: String; + /** + * A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the AWS Batch activity logs. + */ + reason: String; + } + export interface TerminateJobResponse { + } + export interface Tmpfs { + /** + * The absolute file path in the container where the tmpfs volume is mounted. + */ + containerPath: String; + /** + * The size (in MiB) of the tmpfs volume. + */ + size: Integer; + /** + * The list of tmpfs volume mount options. Valid values: "defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol" + */ + mountOptions?: StringList; + } + export type TmpfsList = Tmpfs[]; + export interface Ulimit { + /** + * The hard limit for the ulimit type. + */ + hardLimit: Integer; + /** + * The type of the ulimit. + */ + name: String; + /** + * The soft limit for the ulimit type. + */ + softLimit: Integer; + } + export type Ulimits = Ulimit[]; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource from which to delete tags. AWS Batch resources that support tags are compute environments, jobs, job definitions, and job queues. ARNs for child jobs of array and multi-node parallel (MNP) jobs are not supported. + */ + resourceArn: String; + /** + * The keys of the tags to be removed. + */ + tagKeys: TagKeysList; + } + export interface UntagResourceResponse { + } + export interface UpdateComputeEnvironmentRequest { + /** + * The name or full Amazon Resource Name (ARN) of the compute environment to update. + */ + computeEnvironment: String; + /** + * The state of the compute environment. Compute environments in the ENABLED state can accept jobs from a queue and scale in or out automatically based on the workload demand of its associated queues. If the state is ENABLED, then the AWS Batch scheduler can attempt to place jobs from an associated job queue on the compute resources within the environment. If the compute environment is managed, then it can scale its instances out or in automatically, based on the job queue demand. If the state is DISABLED, then the AWS Batch scheduler doesn't attempt to place jobs within the environment. Jobs in a STARTING or RUNNING state continue to progress normally. Managed compute environments in the DISABLED state don't scale out. However, they scale in to minvCpus value after instances become idle. + */ + state?: CEState; + /** + * Details of the compute resources managed by the compute environment. Required for a managed compute environment. For more information, see Compute Environments in the AWS Batch User Guide. + */ + computeResources?: ComputeResourceUpdate; + /** + * The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls to other AWS services on your behalf. For more information, see AWS Batch service IAM role in the AWS Batch User Guide. If the compute environment has a service-linked role, it cannot be changed to use a regular IAM role. If the compute environment has a regular IAM role, it cannot be changed to use a service-linked role. If your specified role has a path other than /, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. Depending on how you created your AWS Batch service role, its ARN might contain the service-role path prefix. When you only specify the name of the service role, AWS Batch assumes that your ARN doesn't use the service-role path prefix. Because of this, we recommend that you specify the full ARN of your service role when you create compute environments. + */ + serviceRole?: String; + } + export interface UpdateComputeEnvironmentResponse { + /** + * The name of the compute environment. Up to 128 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + */ + computeEnvironmentName?: String; + /** + * The Amazon Resource Name (ARN) of the compute environment. + */ + computeEnvironmentArn?: String; + } + export interface UpdateJobQueueRequest { + /** + * The name or the Amazon Resource Name (ARN) of the job queue. + */ + jobQueue: String; + /** + * Describes the queue's ability to accept new jobs. If the job queue state is ENABLED, it can accept jobs. If the job queue state is DISABLED, new jobs can't be added to the queue, but jobs already in the queue can finish. + */ + state?: JQState; + /** + * The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order, for example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT). EC2 and Fargate compute environments can't be mixed. + */ + priority?: Integer; + /** + * Details the set of compute environments mapped to a job queue and their order relative to each other. This is one of the parameters used by the job scheduler to determine which compute environment should run a given job. Compute environments must be in the VALID state before you can associate them with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT). EC2 and Fargate compute environments can't be mixed. All compute environments that are associated with a job queue must share the same architecture. AWS Batch doesn't support mixing compute environment architecture types in a single job queue. + */ + computeEnvironmentOrder?: ComputeEnvironmentOrders; + } + export interface UpdateJobQueueResponse { + /** + * The name of the job queue. + */ + jobQueueName?: String; + /** + * The Amazon Resource Name (ARN) of the job queue. + */ + jobQueueArn?: String; + } + export interface Volume { + /** + * The contents of the host parameter determine whether your data volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers associated with it stop running. This parameter isn't applicable to jobs running on Fargate resources and shouldn't be provided. + */ + host?: Host; + /** + * The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. This name is referenced in the sourceVolume parameter of container definition mountPoints. + */ + name?: String; + /** + * This parameter is specified when you are using an Amazon Elastic File System file system for job storage. Jobs running on Fargate resources must specify a platformVersion of at least 1.4.0. + */ + efsVolumeConfiguration?: EFSVolumeConfiguration; + } + export type Volumes = Volume[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2016-08-10"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Batch client. + */ + export import Types = Batch; +} +export = Batch; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/batch.js b/justdanceonline-main/node_modules/aws-sdk/clients/batch.js new file mode 100644 index 0000000000000000000000000000000000000000..76dda264a9c5253fe9e4ac66b86651f02e5649fc --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/batch.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['batch'] = {}; +AWS.Batch = Service.defineService('batch', ['2016-08-10']); +Object.defineProperty(apiLoader.services['batch'], '2016-08-10', { + get: function get() { + var model = require('../apis/batch-2016-08-10.min.json'); + model.paginators = require('../apis/batch-2016-08-10.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Batch; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/braket.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/braket.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..22db504dd14978c856340a0e6cedcbf4904d4657 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/braket.d.ts @@ -0,0 +1,444 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Braket extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Braket.Types.ClientConfiguration) + config: Config & Braket.Types.ClientConfiguration; + /** + * Cancels the specified task. + */ + cancelQuantumTask(params: Braket.Types.CancelQuantumTaskRequest, callback?: (err: AWSError, data: Braket.Types.CancelQuantumTaskResponse) => void): Request; + /** + * Cancels the specified task. + */ + cancelQuantumTask(callback?: (err: AWSError, data: Braket.Types.CancelQuantumTaskResponse) => void): Request; + /** + * Creates a quantum task. + */ + createQuantumTask(params: Braket.Types.CreateQuantumTaskRequest, callback?: (err: AWSError, data: Braket.Types.CreateQuantumTaskResponse) => void): Request; + /** + * Creates a quantum task. + */ + createQuantumTask(callback?: (err: AWSError, data: Braket.Types.CreateQuantumTaskResponse) => void): Request; + /** + * Retrieves the devices available in Amazon Braket. + */ + getDevice(params: Braket.Types.GetDeviceRequest, callback?: (err: AWSError, data: Braket.Types.GetDeviceResponse) => void): Request; + /** + * Retrieves the devices available in Amazon Braket. + */ + getDevice(callback?: (err: AWSError, data: Braket.Types.GetDeviceResponse) => void): Request; + /** + * Retrieves the specified quantum task. + */ + getQuantumTask(params: Braket.Types.GetQuantumTaskRequest, callback?: (err: AWSError, data: Braket.Types.GetQuantumTaskResponse) => void): Request; + /** + * Retrieves the specified quantum task. + */ + getQuantumTask(callback?: (err: AWSError, data: Braket.Types.GetQuantumTaskResponse) => void): Request; + /** + * Shows the tags associated with this resource. + */ + listTagsForResource(params: Braket.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: Braket.Types.ListTagsForResourceResponse) => void): Request; + /** + * Shows the tags associated with this resource. + */ + listTagsForResource(callback?: (err: AWSError, data: Braket.Types.ListTagsForResourceResponse) => void): Request; + /** + * Searches for devices using the specified filters. + */ + searchDevices(params: Braket.Types.SearchDevicesRequest, callback?: (err: AWSError, data: Braket.Types.SearchDevicesResponse) => void): Request; + /** + * Searches for devices using the specified filters. + */ + searchDevices(callback?: (err: AWSError, data: Braket.Types.SearchDevicesResponse) => void): Request; + /** + * Searches for tasks that match the specified filter values. + */ + searchQuantumTasks(params: Braket.Types.SearchQuantumTasksRequest, callback?: (err: AWSError, data: Braket.Types.SearchQuantumTasksResponse) => void): Request; + /** + * Searches for tasks that match the specified filter values. + */ + searchQuantumTasks(callback?: (err: AWSError, data: Braket.Types.SearchQuantumTasksResponse) => void): Request; + /** + * Add a tag to the specified resource. + */ + tagResource(params: Braket.Types.TagResourceRequest, callback?: (err: AWSError, data: Braket.Types.TagResourceResponse) => void): Request; + /** + * Add a tag to the specified resource. + */ + tagResource(callback?: (err: AWSError, data: Braket.Types.TagResourceResponse) => void): Request; + /** + * Remove tags from a resource. + */ + untagResource(params: Braket.Types.UntagResourceRequest, callback?: (err: AWSError, data: Braket.Types.UntagResourceResponse) => void): Request; + /** + * Remove tags from a resource. + */ + untagResource(callback?: (err: AWSError, data: Braket.Types.UntagResourceResponse) => void): Request; +} +declare namespace Braket { + export interface CancelQuantumTaskRequest { + /** + * The client token associated with the request. + */ + clientToken: String64; + /** + * The ARN of the task to cancel. + */ + quantumTaskArn: QuantumTaskArn; + } + export interface CancelQuantumTaskResponse { + /** + * The status of the cancellation request. + */ + cancellationStatus: CancellationStatus; + /** + * The ARN of the task. + */ + quantumTaskArn: QuantumTaskArn; + } + export type CancellationStatus = "CANCELLING"|"CANCELLED"|string; + export interface CreateQuantumTaskRequest { + /** + * The action associated with the task. + */ + action: JsonValue; + /** + * The client token associated with the request. + */ + clientToken: String64; + /** + * The ARN of the device to run the task on. + */ + deviceArn: DeviceArn; + /** + * The parameters for the device to run the task on. + */ + deviceParameters?: CreateQuantumTaskRequestDeviceParametersString; + /** + * The S3 bucket to store task result files in. + */ + outputS3Bucket: CreateQuantumTaskRequestOutputS3BucketString; + /** + * The key prefix for the location in the S3 bucket to store task results in. + */ + outputS3KeyPrefix: CreateQuantumTaskRequestOutputS3KeyPrefixString; + /** + * The number of shots to use for the task. + */ + shots: CreateQuantumTaskRequestShotsLong; + /** + * Tags to be added to the quantum task you're creating. + */ + tags?: TagsMap; + } + export type CreateQuantumTaskRequestDeviceParametersString = string; + export type CreateQuantumTaskRequestOutputS3BucketString = string; + export type CreateQuantumTaskRequestOutputS3KeyPrefixString = string; + export type CreateQuantumTaskRequestShotsLong = number; + export interface CreateQuantumTaskResponse { + /** + * The ARN of the task created by the request. + */ + quantumTaskArn: QuantumTaskArn; + } + export type DeviceArn = string; + export type DeviceStatus = "ONLINE"|"OFFLINE"|"RETIRED"|string; + export interface DeviceSummary { + /** + * The ARN of the device. + */ + deviceArn: DeviceArn; + /** + * The name of the device. + */ + deviceName: String; + /** + * The status of the device. + */ + deviceStatus: DeviceStatus; + /** + * The type of the device. + */ + deviceType: DeviceType; + /** + * The provider of the device. + */ + providerName: String; + } + export type DeviceSummaryList = DeviceSummary[]; + export type DeviceType = "QPU"|"SIMULATOR"|string; + export interface GetDeviceRequest { + /** + * The ARN of the device to retrieve. + */ + deviceArn: DeviceArn; + } + export interface GetDeviceResponse { + /** + * The ARN of the device. + */ + deviceArn: DeviceArn; + /** + * Details about the capabilities of the device. + */ + deviceCapabilities: JsonValue; + /** + * The name of the device. + */ + deviceName: String; + /** + * The status of the device. + */ + deviceStatus: DeviceStatus; + /** + * The type of the device. + */ + deviceType: DeviceType; + /** + * The name of the partner company for the device. + */ + providerName: String; + } + export interface GetQuantumTaskRequest { + /** + * the ARN of the task to retrieve. + */ + quantumTaskArn: QuantumTaskArn; + } + export interface GetQuantumTaskResponse { + /** + * The time at which the task was created. + */ + createdAt: SyntheticTimestamp_date_time; + /** + * The ARN of the device the task was run on. + */ + deviceArn: DeviceArn; + /** + * The parameters for the device on which the task ran. + */ + deviceParameters: JsonValue; + /** + * The time at which the task ended. + */ + endedAt?: SyntheticTimestamp_date_time; + /** + * The reason that a task failed. + */ + failureReason?: String; + /** + * The S3 bucket where task results are stored. + */ + outputS3Bucket: String; + /** + * The folder in the S3 bucket where task results are stored. + */ + outputS3Directory: String; + /** + * The ARN of the task. + */ + quantumTaskArn: QuantumTaskArn; + /** + * The number of shots used in the task. + */ + shots: Long; + /** + * The status of the task. + */ + status: QuantumTaskStatus; + /** + * The tags that belong to this task. + */ + tags?: TagsMap; + } + export type JsonValue = string; + export interface ListTagsForResourceRequest { + /** + * Specify the resourceArn for the resource whose tags to display. + */ + resourceArn: String; + } + export interface ListTagsForResourceResponse { + /** + * Displays the key, value pairs of tags associated with this resource. + */ + tags?: TagsMap; + } + export type Long = number; + export type QuantumTaskArn = string; + export type QuantumTaskStatus = "CREATED"|"QUEUED"|"RUNNING"|"COMPLETED"|"FAILED"|"CANCELLING"|"CANCELLED"|string; + export interface QuantumTaskSummary { + /** + * The time at which the task was created. + */ + createdAt: SyntheticTimestamp_date_time; + /** + * The ARN of the device the task ran on. + */ + deviceArn: DeviceArn; + /** + * The time at which the task finished. + */ + endedAt?: SyntheticTimestamp_date_time; + /** + * The S3 bucket where the task result file is stored.. + */ + outputS3Bucket: String; + /** + * The folder in the S3 bucket where the task result file is stored. + */ + outputS3Directory: String; + /** + * The ARN of the task. + */ + quantumTaskArn: QuantumTaskArn; + /** + * The shots used for the task. + */ + shots: Long; + /** + * The status of the task. + */ + status: QuantumTaskStatus; + /** + * Displays the key, value pairs of tags associated with this quantum task. + */ + tags?: TagsMap; + } + export type QuantumTaskSummaryList = QuantumTaskSummary[]; + export interface SearchDevicesFilter { + /** + * The name to use to filter results. + */ + name: SearchDevicesFilterNameString; + /** + * The values to use to filter results. + */ + values: SearchDevicesFilterValuesList; + } + export type SearchDevicesFilterNameString = string; + export type SearchDevicesFilterValuesList = String256[]; + export interface SearchDevicesRequest { + /** + * The filter values to use to search for a device. + */ + filters: SearchDevicesRequestFiltersList; + /** + * The maximum number of results to return in the response. + */ + maxResults?: SearchDevicesRequestMaxResultsInteger; + /** + * A token used for pagination of results returned in the response. Use the token returned from the previous request continue results where the previous request ended. + */ + nextToken?: String; + } + export type SearchDevicesRequestFiltersList = SearchDevicesFilter[]; + export type SearchDevicesRequestMaxResultsInteger = number; + export interface SearchDevicesResponse { + /** + * An array of DeviceSummary objects for devices that match the specified filter values. + */ + devices: DeviceSummaryList; + /** + * A token used for pagination of results, or null if there are no additional results. Use the token value in a subsequent request to continue results where the previous request ended. + */ + nextToken?: String; + } + export interface SearchQuantumTasksFilter { + /** + * The name of the device used for the task. + */ + name: String64; + /** + * An operator to use in the filter. + */ + operator: SearchQuantumTasksFilterOperator; + /** + * The values to use for the filter. + */ + values: SearchQuantumTasksFilterValuesList; + } + export type SearchQuantumTasksFilterOperator = "LT"|"LTE"|"EQUAL"|"GT"|"GTE"|"BETWEEN"|string; + export type SearchQuantumTasksFilterValuesList = String256[]; + export interface SearchQuantumTasksRequest { + /** + * Array of SearchQuantumTasksFilter objects. + */ + filters: SearchQuantumTasksRequestFiltersList; + /** + * Maximum number of results to return in the response. + */ + maxResults?: SearchQuantumTasksRequestMaxResultsInteger; + /** + * A token used for pagination of results returned in the response. Use the token returned from the previous request continue results where the previous request ended. + */ + nextToken?: String; + } + export type SearchQuantumTasksRequestFiltersList = SearchQuantumTasksFilter[]; + export type SearchQuantumTasksRequestMaxResultsInteger = number; + export interface SearchQuantumTasksResponse { + /** + * A token used for pagination of results, or null if there are no additional results. Use the token value in a subsequent request to continue results where the previous request ended. + */ + nextToken?: String; + /** + * An array of QuantumTaskSummary objects for tasks that match the specified filters. + */ + quantumTasks: QuantumTaskSummaryList; + } + export type String = string; + export type String256 = string; + export type String64 = string; + export type SyntheticTimestamp_date_time = Date; + export type TagKeys = String[]; + export interface TagResourceRequest { + /** + * Specify the resourceArn of the resource to which a tag will be added. + */ + resourceArn: String; + /** + * Specify the tags to add to the resource. + */ + tags: TagsMap; + } + export interface TagResourceResponse { + } + export type TagsMap = {[key: string]: String}; + export interface UntagResourceRequest { + /** + * Specify the resourceArn for the resource from which to remove the tags. + */ + resourceArn: String; + /** + * Specify the keys for the tags to remove from the resource. + */ + tagKeys: TagKeys; + } + export interface UntagResourceResponse { + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2019-09-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Braket client. + */ + export import Types = Braket; +} +export = Braket; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/braket.js b/justdanceonline-main/node_modules/aws-sdk/clients/braket.js new file mode 100644 index 0000000000000000000000000000000000000000..34fbb8fab2505e5f61b41d8f3e7d2959f3e88c66 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/braket.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['braket'] = {}; +AWS.Braket = Service.defineService('braket', ['2019-09-01']); +Object.defineProperty(apiLoader.services['braket'], '2019-09-01', { + get: function get() { + var model = require('../apis/braket-2019-09-01.min.json'); + model.paginators = require('../apis/braket-2019-09-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Braket; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/browser_default.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/browser_default.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c41e3661776fcc4482394bafd4a27e2e663c412a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/browser_default.d.ts @@ -0,0 +1,89 @@ +export import ACM = require('./acm'); +export import APIGateway = require('./apigateway'); +export import ApplicationAutoScaling = require('./applicationautoscaling'); +export import AutoScaling = require('./autoscaling'); +export import CloudFormation = require('./cloudformation'); +export import CloudFront = require('./cloudfront'); +export import CloudHSM = require('./cloudhsm'); +export import CloudTrail = require('./cloudtrail'); +export import CloudWatch = require('./cloudwatch'); +export import CloudWatchEvents = require('./cloudwatchevents'); +export import CloudWatchLogs = require('./cloudwatchlogs'); +export import CodeBuild = require('./codebuild'); +export import CodeCommit = require('./codecommit'); +export import CodeDeploy = require('./codedeploy'); +export import CodePipeline = require('./codepipeline'); +export import CognitoIdentity = require('./cognitoidentity'); +export import CognitoIdentityServiceProvider = require('./cognitoidentityserviceprovider'); +export import CognitoSync = require('./cognitosync'); +export import ConfigService = require('./configservice'); +export import CUR = require('./cur'); +export import DeviceFarm = require('./devicefarm'); +export import DirectConnect = require('./directconnect'); +export import DynamoDB = require('./dynamodb'); +export import DynamoDBStreams = require('./dynamodbstreams'); +export import EC2 = require('./ec2'); +export import ECR = require('./ecr'); +export import ECS = require('./ecs'); +export import EFS = require('./efs'); +export import ElastiCache = require('./elasticache'); +export import ElasticBeanstalk = require('./elasticbeanstalk'); +export import ELB = require('./elb'); +export import ELBv2 = require('./elbv2'); +export import EMR = require('./emr'); +export import ElasticTranscoder = require('./elastictranscoder'); +export import Firehose = require('./firehose'); +export import GameLift = require('./gamelift'); +export import IAM = require('./iam'); +export import Inspector = require('./inspector'); +export import Iot = require('./iot'); +export import IotData = require('./iotdata'); +export import Kinesis = require('./kinesis'); +export import KMS = require('./kms'); +export import Lambda = require('./lambda'); +export import LexRuntime = require('./lexruntime'); +export import MachineLearning = require('./machinelearning'); +export import MarketplaceCommerceAnalytics = require('./marketplacecommerceanalytics'); +export import MTurk = require('./mturk'); +export import MobileAnalytics = require('./mobileanalytics'); +export import OpsWorks = require('./opsworks'); +export import Polly = require('./polly'); +export import RDS = require('./rds'); +export import Redshift = require('./redshift'); +export import Rekognition = require('./rekognition'); +export import Route53 = require('./route53'); +export import Route53Domains = require('./route53domains'); +export import S3 = require('./s3'); +export import ServiceCatalog = require('./servicecatalog'); +export import SES = require('./ses'); +export import SNS = require('./sns'); +export import SQS = require('./sqs'); +export import SSM = require('./ssm'); +export import StorageGateway = require('./storagegateway'); +export import STS = require('./sts'); +export import XRay = require('./xray'); +export import WAF = require('./waf'); +export import WorkDocs = require('./workdocs'); +export import LexModelBuildingService = require('./lexmodelbuildingservice'); +export import Athena = require('./athena'); +export import Pricing = require('./pricing'); +export import CostExplorer = require('./costexplorer'); +export import MediaStoreData = require('./mediastoredata'); +export import Comprehend = require('./comprehend'); +export import KinesisVideoArchivedMedia = require('./kinesisvideoarchivedmedia'); +export import KinesisVideoMedia = require('./kinesisvideomedia'); +export import KinesisVideo = require('./kinesisvideo'); +export import Translate = require('./translate'); +export import ResourceGroups = require('./resourcegroups'); +export import Connect = require('./connect'); +export import SecretsManager = require('./secretsmanager'); +export import IoTAnalytics = require('./iotanalytics'); +export import ComprehendMedical = require('./comprehendmedical'); +export import Personalize = require('./personalize'); +export import PersonalizeEvents = require('./personalizeevents'); +export import PersonalizeRuntime = require('./personalizeruntime'); +export import ForecastService = require('./forecastservice'); +export import ForecastQueryService = require('./forecastqueryservice'); +export import KinesisVideoSignalingChannels = require('./kinesisvideosignalingchannels'); +export import Location = require('./location'); +export import LexRuntimeV2 = require('./lexruntimev2'); diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/browser_default.js b/justdanceonline-main/node_modules/aws-sdk/clients/browser_default.js new file mode 100644 index 0000000000000000000000000000000000000000..c651a8e571c2dd6a8cbae42b102efc63e6a4b9e7 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/browser_default.js @@ -0,0 +1,92 @@ +require('../lib/node_loader'); +module.exports = { + ACM: require('./acm'), + APIGateway: require('./apigateway'), + ApplicationAutoScaling: require('./applicationautoscaling'), + AutoScaling: require('./autoscaling'), + CloudFormation: require('./cloudformation'), + CloudFront: require('./cloudfront'), + CloudHSM: require('./cloudhsm'), + CloudTrail: require('./cloudtrail'), + CloudWatch: require('./cloudwatch'), + CloudWatchEvents: require('./cloudwatchevents'), + CloudWatchLogs: require('./cloudwatchlogs'), + CodeBuild: require('./codebuild'), + CodeCommit: require('./codecommit'), + CodeDeploy: require('./codedeploy'), + CodePipeline: require('./codepipeline'), + CognitoIdentity: require('./cognitoidentity'), + CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'), + CognitoSync: require('./cognitosync'), + ConfigService: require('./configservice'), + CUR: require('./cur'), + DeviceFarm: require('./devicefarm'), + DirectConnect: require('./directconnect'), + DynamoDB: require('./dynamodb'), + DynamoDBStreams: require('./dynamodbstreams'), + EC2: require('./ec2'), + ECR: require('./ecr'), + ECS: require('./ecs'), + EFS: require('./efs'), + ElastiCache: require('./elasticache'), + ElasticBeanstalk: require('./elasticbeanstalk'), + ELB: require('./elb'), + ELBv2: require('./elbv2'), + EMR: require('./emr'), + ElasticTranscoder: require('./elastictranscoder'), + Firehose: require('./firehose'), + GameLift: require('./gamelift'), + IAM: require('./iam'), + Inspector: require('./inspector'), + Iot: require('./iot'), + IotData: require('./iotdata'), + Kinesis: require('./kinesis'), + KMS: require('./kms'), + Lambda: require('./lambda'), + LexRuntime: require('./lexruntime'), + MachineLearning: require('./machinelearning'), + MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'), + MTurk: require('./mturk'), + MobileAnalytics: require('./mobileanalytics'), + OpsWorks: require('./opsworks'), + Polly: require('./polly'), + RDS: require('./rds'), + Redshift: require('./redshift'), + Rekognition: require('./rekognition'), + Route53: require('./route53'), + Route53Domains: require('./route53domains'), + S3: require('./s3'), + ServiceCatalog: require('./servicecatalog'), + SES: require('./ses'), + SNS: require('./sns'), + SQS: require('./sqs'), + SSM: require('./ssm'), + StorageGateway: require('./storagegateway'), + STS: require('./sts'), + XRay: require('./xray'), + WAF: require('./waf'), + WorkDocs: require('./workdocs'), + LexModelBuildingService: require('./lexmodelbuildingservice'), + Athena: require('./athena'), + Pricing: require('./pricing'), + CostExplorer: require('./costexplorer'), + MediaStoreData: require('./mediastoredata'), + Comprehend: require('./comprehend'), + KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'), + KinesisVideoMedia: require('./kinesisvideomedia'), + KinesisVideo: require('./kinesisvideo'), + Translate: require('./translate'), + ResourceGroups: require('./resourcegroups'), + Connect: require('./connect'), + SecretsManager: require('./secretsmanager'), + IoTAnalytics: require('./iotanalytics'), + ComprehendMedical: require('./comprehendmedical'), + Personalize: require('./personalize'), + PersonalizeEvents: require('./personalizeevents'), + PersonalizeRuntime: require('./personalizeruntime'), + ForecastService: require('./forecastservice'), + ForecastQueryService: require('./forecastqueryservice'), + KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'), + Location: require('./location'), + LexRuntimeV2: require('./lexruntimev2') +}; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/budgets.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/budgets.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..72724c93cdd36b08aa6710ae0c099702eb83634a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/budgets.d.ts @@ -0,0 +1,995 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Budgets extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Budgets.Types.ClientConfiguration) + config: Config & Budgets.Types.ClientConfiguration; + /** + * Creates a budget and, if included, notifications and subscribers. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + createBudget(params: Budgets.Types.CreateBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.CreateBudgetResponse) => void): Request; + /** + * Creates a budget and, if included, notifications and subscribers. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + createBudget(callback?: (err: AWSError, data: Budgets.Types.CreateBudgetResponse) => void): Request; + /** + * Creates a budget action. + */ + createBudgetAction(params: Budgets.Types.CreateBudgetActionRequest, callback?: (err: AWSError, data: Budgets.Types.CreateBudgetActionResponse) => void): Request; + /** + * Creates a budget action. + */ + createBudgetAction(callback?: (err: AWSError, data: Budgets.Types.CreateBudgetActionResponse) => void): Request; + /** + * Creates a notification. You must create the budget before you create the associated notification. + */ + createNotification(params: Budgets.Types.CreateNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.CreateNotificationResponse) => void): Request; + /** + * Creates a notification. You must create the budget before you create the associated notification. + */ + createNotification(callback?: (err: AWSError, data: Budgets.Types.CreateNotificationResponse) => void): Request; + /** + * Creates a subscriber. You must create the associated budget and notification before you create the subscriber. + */ + createSubscriber(params: Budgets.Types.CreateSubscriberRequest, callback?: (err: AWSError, data: Budgets.Types.CreateSubscriberResponse) => void): Request; + /** + * Creates a subscriber. You must create the associated budget and notification before you create the subscriber. + */ + createSubscriber(callback?: (err: AWSError, data: Budgets.Types.CreateSubscriberResponse) => void): Request; + /** + * Deletes a budget. You can delete your budget at any time. Deleting a budget also deletes the notifications and subscribers that are associated with that budget. + */ + deleteBudget(params: Budgets.Types.DeleteBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.DeleteBudgetResponse) => void): Request; + /** + * Deletes a budget. You can delete your budget at any time. Deleting a budget also deletes the notifications and subscribers that are associated with that budget. + */ + deleteBudget(callback?: (err: AWSError, data: Budgets.Types.DeleteBudgetResponse) => void): Request; + /** + * Deletes a budget action. + */ + deleteBudgetAction(params: Budgets.Types.DeleteBudgetActionRequest, callback?: (err: AWSError, data: Budgets.Types.DeleteBudgetActionResponse) => void): Request; + /** + * Deletes a budget action. + */ + deleteBudgetAction(callback?: (err: AWSError, data: Budgets.Types.DeleteBudgetActionResponse) => void): Request; + /** + * Deletes a notification. Deleting a notification also deletes the subscribers that are associated with the notification. + */ + deleteNotification(params: Budgets.Types.DeleteNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.DeleteNotificationResponse) => void): Request; + /** + * Deletes a notification. Deleting a notification also deletes the subscribers that are associated with the notification. + */ + deleteNotification(callback?: (err: AWSError, data: Budgets.Types.DeleteNotificationResponse) => void): Request; + /** + * Deletes a subscriber. Deleting the last subscriber to a notification also deletes the notification. + */ + deleteSubscriber(params: Budgets.Types.DeleteSubscriberRequest, callback?: (err: AWSError, data: Budgets.Types.DeleteSubscriberResponse) => void): Request; + /** + * Deletes a subscriber. Deleting the last subscriber to a notification also deletes the notification. + */ + deleteSubscriber(callback?: (err: AWSError, data: Budgets.Types.DeleteSubscriberResponse) => void): Request; + /** + * Describes a budget. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + describeBudget(params: Budgets.Types.DescribeBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetResponse) => void): Request; + /** + * Describes a budget. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + describeBudget(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetResponse) => void): Request; + /** + * Describes a budget action detail. + */ + describeBudgetAction(params: Budgets.Types.DescribeBudgetActionRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionResponse) => void): Request; + /** + * Describes a budget action detail. + */ + describeBudgetAction(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionResponse) => void): Request; + /** + * Describes a budget action history detail. + */ + describeBudgetActionHistories(params: Budgets.Types.DescribeBudgetActionHistoriesRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionHistoriesResponse) => void): Request; + /** + * Describes a budget action history detail. + */ + describeBudgetActionHistories(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionHistoriesResponse) => void): Request; + /** + * Describes all of the budget actions for an account. + */ + describeBudgetActionsForAccount(params: Budgets.Types.DescribeBudgetActionsForAccountRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionsForAccountResponse) => void): Request; + /** + * Describes all of the budget actions for an account. + */ + describeBudgetActionsForAccount(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionsForAccountResponse) => void): Request; + /** + * Describes all of the budget actions for a budget. + */ + describeBudgetActionsForBudget(params: Budgets.Types.DescribeBudgetActionsForBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionsForBudgetResponse) => void): Request; + /** + * Describes all of the budget actions for a budget. + */ + describeBudgetActionsForBudget(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetActionsForBudgetResponse) => void): Request; + /** + * Describes the history for DAILY, MONTHLY, and QUARTERLY budgets. Budget history isn't available for ANNUAL budgets. + */ + describeBudgetPerformanceHistory(params: Budgets.Types.DescribeBudgetPerformanceHistoryRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetPerformanceHistoryResponse) => void): Request; + /** + * Describes the history for DAILY, MONTHLY, and QUARTERLY budgets. Budget history isn't available for ANNUAL budgets. + */ + describeBudgetPerformanceHistory(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetPerformanceHistoryResponse) => void): Request; + /** + * Lists the budgets that are associated with an account. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + describeBudgets(params: Budgets.Types.DescribeBudgetsRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetsResponse) => void): Request; + /** + * Lists the budgets that are associated with an account. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + describeBudgets(callback?: (err: AWSError, data: Budgets.Types.DescribeBudgetsResponse) => void): Request; + /** + * Lists the notifications that are associated with a budget. + */ + describeNotificationsForBudget(params: Budgets.Types.DescribeNotificationsForBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeNotificationsForBudgetResponse) => void): Request; + /** + * Lists the notifications that are associated with a budget. + */ + describeNotificationsForBudget(callback?: (err: AWSError, data: Budgets.Types.DescribeNotificationsForBudgetResponse) => void): Request; + /** + * Lists the subscribers that are associated with a notification. + */ + describeSubscribersForNotification(params: Budgets.Types.DescribeSubscribersForNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.DescribeSubscribersForNotificationResponse) => void): Request; + /** + * Lists the subscribers that are associated with a notification. + */ + describeSubscribersForNotification(callback?: (err: AWSError, data: Budgets.Types.DescribeSubscribersForNotificationResponse) => void): Request; + /** + * Executes a budget action. + */ + executeBudgetAction(params: Budgets.Types.ExecuteBudgetActionRequest, callback?: (err: AWSError, data: Budgets.Types.ExecuteBudgetActionResponse) => void): Request; + /** + * Executes a budget action. + */ + executeBudgetAction(callback?: (err: AWSError, data: Budgets.Types.ExecuteBudgetActionResponse) => void): Request; + /** + * Updates a budget. You can change every part of a budget except for the budgetName and the calculatedSpend. When you modify a budget, the calculatedSpend drops to zero until AWS has new usage data to use for forecasting. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + updateBudget(params: Budgets.Types.UpdateBudgetRequest, callback?: (err: AWSError, data: Budgets.Types.UpdateBudgetResponse) => void): Request; + /** + * Updates a budget. You can change every part of a budget except for the budgetName and the calculatedSpend. When you modify a budget, the calculatedSpend drops to zero until AWS has new usage data to use for forecasting. Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax at one time. Use the syntax that matches your case. The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples section. + */ + updateBudget(callback?: (err: AWSError, data: Budgets.Types.UpdateBudgetResponse) => void): Request; + /** + * Updates a budget action. + */ + updateBudgetAction(params: Budgets.Types.UpdateBudgetActionRequest, callback?: (err: AWSError, data: Budgets.Types.UpdateBudgetActionResponse) => void): Request; + /** + * Updates a budget action. + */ + updateBudgetAction(callback?: (err: AWSError, data: Budgets.Types.UpdateBudgetActionResponse) => void): Request; + /** + * Updates a notification. + */ + updateNotification(params: Budgets.Types.UpdateNotificationRequest, callback?: (err: AWSError, data: Budgets.Types.UpdateNotificationResponse) => void): Request; + /** + * Updates a notification. + */ + updateNotification(callback?: (err: AWSError, data: Budgets.Types.UpdateNotificationResponse) => void): Request; + /** + * Updates a subscriber. + */ + updateSubscriber(params: Budgets.Types.UpdateSubscriberRequest, callback?: (err: AWSError, data: Budgets.Types.UpdateSubscriberResponse) => void): Request; + /** + * Updates a subscriber. + */ + updateSubscriber(callback?: (err: AWSError, data: Budgets.Types.UpdateSubscriberResponse) => void): Request; +} +declare namespace Budgets { + export type AccountId = string; + export interface Action { + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + BudgetName: BudgetName; + NotificationType: NotificationType; + /** + * The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. + */ + ActionType: ActionType; + /** + * The trigger threshold of the action. + */ + ActionThreshold: ActionThreshold; + /** + * Where you specify all of the type-specific parameters. + */ + Definition: Definition; + /** + * The role passed for action execution and reversion. Roles and actions must be in the same account. + */ + ExecutionRoleArn: RoleArn; + /** + * This specifies if the action needs manual or automatic approval. + */ + ApprovalModel: ApprovalModel; + /** + * The status of action. + */ + Status: ActionStatus; + Subscribers: Subscribers; + } + export type ActionHistories = ActionHistory[]; + export interface ActionHistory { + Timestamp: GenericTimestamp; + /** + * The status of action at the time of the event. + */ + Status: ActionStatus; + /** + * This distinguishes between whether the events are triggered by the user or generated by the system. + */ + EventType: EventType; + /** + * The description of details of the event. + */ + ActionHistoryDetails: ActionHistoryDetails; + } + export interface ActionHistoryDetails { + Message: GenericString; + /** + * The budget action resource. + */ + Action: Action; + } + export type ActionId = string; + export type ActionStatus = "STANDBY"|"PENDING"|"EXECUTION_IN_PROGRESS"|"EXECUTION_SUCCESS"|"EXECUTION_FAILURE"|"REVERSE_IN_PROGRESS"|"REVERSE_SUCCESS"|"REVERSE_FAILURE"|"RESET_IN_PROGRESS"|"RESET_FAILURE"|string; + export type ActionSubType = "STOP_EC2_INSTANCES"|"STOP_RDS_INSTANCES"|string; + export interface ActionThreshold { + ActionThresholdValue: NotificationThreshold; + ActionThresholdType: ThresholdType; + } + export type ActionType = "APPLY_IAM_POLICY"|"APPLY_SCP_POLICY"|"RUN_SSM_DOCUMENTS"|string; + export type Actions = Action[]; + export type ApprovalModel = "AUTOMATIC"|"MANUAL"|string; + export interface Budget { + /** + * The name of a budget. The name must be unique within an account. The : and \ characters aren't allowed in BudgetName. + */ + BudgetName: BudgetName; + /** + * The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget. BudgetLimit is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to 100, which is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use BudgetLimit with PlannedBudgetLimits for CreateBudget and UpdateBudget actions. + */ + BudgetLimit?: Spend; + /** + * A map containing multiple BudgetLimit, including current or future limits. PlannedBudgetLimits is available for cost or usage budget and supports monthly and quarterly TimeUnit. For monthly budgets, provide 12 months of PlannedBudgetLimits values. This must start from the current month and include the next 11 months. The key is the start of the month, UTC in epoch seconds. For quarterly budgets, provide 4 quarters of PlannedBudgetLimits value entries in standard calendar quarter increments. This must start from the current quarter and include the next 3 quarters. The key is the start of the quarter, UTC in epoch seconds. If the planned budget expires before 12 months for monthly or 4 quarters for quarterly, provide the PlannedBudgetLimits values only for the remaining periods. If the budget begins at a date in the future, provide PlannedBudgetLimits values from the start date of the budget. After all of the BudgetLimit values in PlannedBudgetLimits are used, the budget continues to use the last limit as the BudgetLimit. At that point, the planned budget provides the same experience as a fixed budget. DescribeBudget and DescribeBudgets response along with PlannedBudgetLimits will also contain BudgetLimit representing the current month or quarter limit present in PlannedBudgetLimits. This only applies to budgets created with PlannedBudgetLimits. Budgets created without PlannedBudgetLimits will only contain BudgetLimit, and no PlannedBudgetLimits. + */ + PlannedBudgetLimits?: PlannedBudgetLimits; + /** + * The cost filters, such as service or tag, that are applied to a budget. AWS Budgets supports the following services as a filter for RI budgets: Amazon Elastic Compute Cloud - Compute Amazon Redshift Amazon Relational Database Service Amazon ElastiCache Amazon Elasticsearch Service + */ + CostFilters?: CostFilters; + /** + * The types of costs that are included in this COST budget. USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, and SAVINGS_PLANS_COVERAGE budgets do not have CostTypes. + */ + CostTypes?: CostTypes; + /** + * The length of time until a budget resets the actual and forecasted spend. + */ + TimeUnit: TimeUnit; + /** + * The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. The end date must come before 06/15/87 00:00 UTC. If you create your budget and don't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose DAILY, and didn't set a start date, AWS set your start date to 01/24/18 00:00 UTC. If you chose MONTHLY, AWS set your start date to 01/01/18 00:00 UTC. If you didn't specify an end date, AWS set your end date to 06/15/87 00:00 UTC. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change either date with the UpdateBudget operation. After the end date, AWS deletes the budget and all associated notifications and subscribers. + */ + TimePeriod?: TimePeriod; + /** + * The actual and forecasted cost or usage that the budget tracks. + */ + CalculatedSpend?: CalculatedSpend; + /** + * Whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage. + */ + BudgetType: BudgetType; + /** + * The last time that you updated this budget. + */ + LastUpdatedTime?: GenericTimestamp; + } + export type BudgetName = string; + export interface BudgetPerformanceHistory { + BudgetName?: BudgetName; + BudgetType?: BudgetType; + /** + * The history of the cost filters for a budget during the specified time period. + */ + CostFilters?: CostFilters; + /** + * The history of the cost types for a budget during the specified time period. + */ + CostTypes?: CostTypes; + TimeUnit?: TimeUnit; + /** + * A list of amounts of cost or usage that you created budgets for, compared to your actual costs or usage. + */ + BudgetedAndActualAmountsList?: BudgetedAndActualAmountsList; + } + export type BudgetType = "USAGE"|"COST"|"RI_UTILIZATION"|"RI_COVERAGE"|"SAVINGS_PLANS_UTILIZATION"|"SAVINGS_PLANS_COVERAGE"|string; + export interface BudgetedAndActualAmounts { + /** + * The amount of cost or usage that you created the budget for. + */ + BudgetedAmount?: Spend; + /** + * Your actual costs or usage for a budget period. + */ + ActualAmount?: Spend; + /** + * The time period covered by this budget comparison. + */ + TimePeriod?: TimePeriod; + } + export type BudgetedAndActualAmountsList = BudgetedAndActualAmounts[]; + export type Budgets = Budget[]; + export interface CalculatedSpend { + /** + * The amount of cost, usage, RI units, or Savings Plans units that you have used. + */ + ActualSpend: Spend; + /** + * The amount of cost, usage, RI units, or Savings Plans units that you are forecasted to use. + */ + ForecastedSpend?: Spend; + } + export type ComparisonOperator = "GREATER_THAN"|"LESS_THAN"|"EQUAL_TO"|string; + export type CostFilters = {[key: string]: DimensionValues}; + export interface CostTypes { + /** + * Specifies whether a budget includes taxes. The default value is true. + */ + IncludeTax?: NullableBoolean; + /** + * Specifies whether a budget includes subscriptions. The default value is true. + */ + IncludeSubscription?: NullableBoolean; + /** + * Specifies whether a budget uses a blended rate. The default value is false. + */ + UseBlended?: NullableBoolean; + /** + * Specifies whether a budget includes refunds. The default value is true. + */ + IncludeRefund?: NullableBoolean; + /** + * Specifies whether a budget includes credits. The default value is true. + */ + IncludeCredit?: NullableBoolean; + /** + * Specifies whether a budget includes upfront RI costs. The default value is true. + */ + IncludeUpfront?: NullableBoolean; + /** + * Specifies whether a budget includes recurring fees such as monthly RI fees. The default value is true. + */ + IncludeRecurring?: NullableBoolean; + /** + * Specifies whether a budget includes non-RI subscription costs. The default value is true. + */ + IncludeOtherSubscription?: NullableBoolean; + /** + * Specifies whether a budget includes support subscription fees. The default value is true. + */ + IncludeSupport?: NullableBoolean; + /** + * Specifies whether a budget includes discounts. The default value is true. + */ + IncludeDiscount?: NullableBoolean; + /** + * Specifies whether a budget uses the amortized rate. The default value is false. + */ + UseAmortized?: NullableBoolean; + } + export interface CreateBudgetActionRequest { + AccountId: AccountId; + BudgetName: BudgetName; + NotificationType: NotificationType; + /** + * The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. + */ + ActionType: ActionType; + ActionThreshold: ActionThreshold; + Definition: Definition; + /** + * The role passed for action execution and reversion. Roles and actions must be in the same account. + */ + ExecutionRoleArn: RoleArn; + /** + * This specifies if the action needs manual or automatic approval. + */ + ApprovalModel: ApprovalModel; + Subscribers: Subscribers; + } + export interface CreateBudgetActionResponse { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + } + export interface CreateBudgetRequest { + /** + * The accountId that is associated with the budget. + */ + AccountId: AccountId; + /** + * The budget object that you want to create. + */ + Budget: Budget; + /** + * A notification that you want to associate with a budget. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers. If you include notifications and subscribers in your CreateBudget call, AWS creates the notifications and subscribers for you. + */ + NotificationsWithSubscribers?: NotificationWithSubscribersList; + } + export interface CreateBudgetResponse { + } + export interface CreateNotificationRequest { + /** + * The accountId that is associated with the budget that you want to create a notification for. + */ + AccountId: AccountId; + /** + * The name of the budget that you want AWS to notify you about. Budget names must be unique within an account. + */ + BudgetName: BudgetName; + /** + * The notification that you want to create. + */ + Notification: Notification; + /** + * A list of subscribers that you want to associate with the notification. Each notification can have one SNS subscriber and up to 10 email subscribers. + */ + Subscribers: Subscribers; + } + export interface CreateNotificationResponse { + } + export interface CreateSubscriberRequest { + /** + * The accountId that is associated with the budget that you want to create a subscriber for. + */ + AccountId: AccountId; + /** + * The name of the budget that you want to subscribe to. Budget names must be unique within an account. + */ + BudgetName: BudgetName; + /** + * The notification that you want to create a subscriber for. + */ + Notification: Notification; + /** + * The subscriber that you want to associate with a budget notification. + */ + Subscriber: Subscriber; + } + export interface CreateSubscriberResponse { + } + export interface Definition { + /** + * The AWS Identity and Access Management (IAM) action definition details. + */ + IamActionDefinition?: IamActionDefinition; + /** + * The service control policies (SCPs) action definition details. + */ + ScpActionDefinition?: ScpActionDefinition; + /** + * The AWS Systems Manager (SSM) action definition details. + */ + SsmActionDefinition?: SsmActionDefinition; + } + export interface DeleteBudgetActionRequest { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + } + export interface DeleteBudgetActionResponse { + AccountId: AccountId; + BudgetName: BudgetName; + Action: Action; + } + export interface DeleteBudgetRequest { + /** + * The accountId that is associated with the budget that you want to delete. + */ + AccountId: AccountId; + /** + * The name of the budget that you want to delete. + */ + BudgetName: BudgetName; + } + export interface DeleteBudgetResponse { + } + export interface DeleteNotificationRequest { + /** + * The accountId that is associated with the budget whose notification you want to delete. + */ + AccountId: AccountId; + /** + * The name of the budget whose notification you want to delete. + */ + BudgetName: BudgetName; + /** + * The notification that you want to delete. + */ + Notification: Notification; + } + export interface DeleteNotificationResponse { + } + export interface DeleteSubscriberRequest { + /** + * The accountId that is associated with the budget whose subscriber you want to delete. + */ + AccountId: AccountId; + /** + * The name of the budget whose subscriber you want to delete. + */ + BudgetName: BudgetName; + /** + * The notification whose subscriber you want to delete. + */ + Notification: Notification; + /** + * The subscriber that you want to delete. + */ + Subscriber: Subscriber; + } + export interface DeleteSubscriberResponse { + } + export interface DescribeBudgetActionHistoriesRequest { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + TimePeriod?: TimePeriod; + MaxResults?: MaxResults; + NextToken?: GenericString; + } + export interface DescribeBudgetActionHistoriesResponse { + /** + * The historical record of the budget action resource. + */ + ActionHistories: ActionHistories; + NextToken?: GenericString; + } + export interface DescribeBudgetActionRequest { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + } + export interface DescribeBudgetActionResponse { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A budget action resource. + */ + Action: Action; + } + export interface DescribeBudgetActionsForAccountRequest { + AccountId: AccountId; + MaxResults?: MaxResults; + NextToken?: GenericString; + } + export interface DescribeBudgetActionsForAccountResponse { + /** + * A list of the budget action resources information. + */ + Actions: Actions; + NextToken?: GenericString; + } + export interface DescribeBudgetActionsForBudgetRequest { + AccountId: AccountId; + BudgetName: BudgetName; + MaxResults?: MaxResults; + NextToken?: GenericString; + } + export interface DescribeBudgetActionsForBudgetResponse { + /** + * A list of the budget action resources information. + */ + Actions: Actions; + NextToken?: GenericString; + } + export interface DescribeBudgetPerformanceHistoryRequest { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * Retrieves how often the budget went into an ALARM state for the specified time period. + */ + TimePeriod?: TimePeriod; + MaxResults?: MaxResults; + NextToken?: GenericString; + } + export interface DescribeBudgetPerformanceHistoryResponse { + /** + * The history of how often the budget has gone into an ALARM state. For DAILY budgets, the history saves the state of the budget for the last 60 days. For MONTHLY budgets, the history saves the state of the budget for the current month plus the last 12 months. For QUARTERLY budgets, the history saves the state of the budget for the last four quarters. + */ + BudgetPerformanceHistory?: BudgetPerformanceHistory; + NextToken?: GenericString; + } + export interface DescribeBudgetRequest { + /** + * The accountId that is associated with the budget that you want a description of. + */ + AccountId: AccountId; + /** + * The name of the budget that you want a description of. + */ + BudgetName: BudgetName; + } + export interface DescribeBudgetResponse { + /** + * The description of the budget. + */ + Budget?: Budget; + } + export interface DescribeBudgetsRequest { + /** + * The accountId that is associated with the budgets that you want descriptions of. + */ + AccountId: AccountId; + /** + * An optional integer that represents how many entries a paginated response contains. The maximum is 100. + */ + MaxResults?: MaxResults; + /** + * The pagination token that you include in your request to indicate the next set of results that you want to retrieve. + */ + NextToken?: GenericString; + } + export interface DescribeBudgetsResponse { + /** + * A list of budgets. + */ + Budgets?: Budgets; + /** + * The pagination token in the service response that indicates the next set of results that you can retrieve. + */ + NextToken?: GenericString; + } + export interface DescribeNotificationsForBudgetRequest { + /** + * The accountId that is associated with the budget whose notifications you want descriptions of. + */ + AccountId: AccountId; + /** + * The name of the budget whose notifications you want descriptions of. + */ + BudgetName: BudgetName; + /** + * An optional integer that represents how many entries a paginated response contains. The maximum is 100. + */ + MaxResults?: MaxResults; + /** + * The pagination token that you include in your request to indicate the next set of results that you want to retrieve. + */ + NextToken?: GenericString; + } + export interface DescribeNotificationsForBudgetResponse { + /** + * A list of notifications that are associated with a budget. + */ + Notifications?: Notifications; + /** + * The pagination token in the service response that indicates the next set of results that you can retrieve. + */ + NextToken?: GenericString; + } + export interface DescribeSubscribersForNotificationRequest { + /** + * The accountId that is associated with the budget whose subscribers you want descriptions of. + */ + AccountId: AccountId; + /** + * The name of the budget whose subscribers you want descriptions of. + */ + BudgetName: BudgetName; + /** + * The notification whose subscribers you want to list. + */ + Notification: Notification; + /** + * An optional integer that represents how many entries a paginated response contains. The maximum is 100. + */ + MaxResults?: MaxResults; + /** + * The pagination token that you include in your request to indicate the next set of results that you want to retrieve. + */ + NextToken?: GenericString; + } + export interface DescribeSubscribersForNotificationResponse { + /** + * A list of subscribers that are associated with a notification. + */ + Subscribers?: Subscribers; + /** + * The pagination token in the service response that indicates the next set of results that you can retrieve. + */ + NextToken?: GenericString; + } + export type DimensionValues = GenericString[]; + export type EventType = "SYSTEM"|"CREATE_ACTION"|"DELETE_ACTION"|"UPDATE_ACTION"|"EXECUTE_ACTION"|string; + export interface ExecuteBudgetActionRequest { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + /** + * The type of execution. + */ + ExecutionType: ExecutionType; + } + export interface ExecuteBudgetActionResponse { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + /** + * The type of execution. + */ + ExecutionType: ExecutionType; + } + export type ExecutionType = "APPROVE_BUDGET_ACTION"|"RETRY_BUDGET_ACTION"|"REVERSE_BUDGET_ACTION"|"RESET_BUDGET_ACTION"|string; + export type GenericString = string; + export type GenericTimestamp = Date; + export type Group = string; + export type Groups = Group[]; + export interface IamActionDefinition { + /** + * The Amazon Resource Name (ARN) of the policy to be attached. + */ + PolicyArn: PolicyArn; + /** + * A list of roles to be attached. There must be at least one role. + */ + Roles?: Roles; + /** + * A list of groups to be attached. There must be at least one group. + */ + Groups?: Groups; + /** + * A list of users to be attached. There must be at least one user. + */ + Users?: Users; + } + export type InstanceId = string; + export type InstanceIds = InstanceId[]; + export type MaxResults = number; + export interface Notification { + /** + * Whether the notification is for how much you have spent (ACTUAL) or for how much you're forecasted to spend (FORECASTED). + */ + NotificationType: NotificationType; + /** + * The comparison that is used for this notification. + */ + ComparisonOperator: ComparisonOperator; + /** + * The threshold that is associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount. + */ + Threshold: NotificationThreshold; + /** + * The type of threshold for a notification. For ABSOLUTE_VALUE thresholds, AWS notifies you when you go over or are forecasted to go over your total cost threshold. For PERCENTAGE thresholds, AWS notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a PERCENTAGE threshold of 80%, AWS notifies you when you go over 160 dollars. + */ + ThresholdType?: ThresholdType; + /** + * Whether this notification is in alarm. If a budget notification is in the ALARM state, you have passed the set threshold for the budget. + */ + NotificationState?: NotificationState; + } + export type NotificationState = "OK"|"ALARM"|string; + export type NotificationThreshold = number; + export type NotificationType = "ACTUAL"|"FORECASTED"|string; + export interface NotificationWithSubscribers { + /** + * The notification that is associated with a budget. + */ + Notification: Notification; + /** + * A list of subscribers who are subscribed to this notification. + */ + Subscribers: Subscribers; + } + export type NotificationWithSubscribersList = NotificationWithSubscribers[]; + export type Notifications = Notification[]; + export type NullableBoolean = boolean; + export type NumericValue = string; + export type PlannedBudgetLimits = {[key: string]: Spend}; + export type PolicyArn = string; + export type PolicyId = string; + export type Region = string; + export type Role = string; + export type RoleArn = string; + export type Roles = Role[]; + export interface ScpActionDefinition { + /** + * The policy ID attached. + */ + PolicyId: PolicyId; + /** + * A list of target IDs. + */ + TargetIds: TargetIds; + } + export interface Spend { + /** + * The cost or usage amount that is associated with a budget forecast, actual spend, or budget threshold. + */ + Amount: NumericValue; + /** + * The unit of measurement that is used for the budget forecast, actual spend, or budget threshold, such as dollars or GB. + */ + Unit: UnitValue; + } + export interface SsmActionDefinition { + /** + * The action subType. + */ + ActionSubType: ActionSubType; + /** + * The Region to run the SSM document. + */ + Region: Region; + /** + * The EC2 and RDS instance IDs. + */ + InstanceIds: InstanceIds; + } + export interface Subscriber { + /** + * The type of notification that AWS sends to a subscriber. + */ + SubscriptionType: SubscriptionType; + /** + * The address that AWS sends budget notifications to, either an SNS topic or an email. When you create a subscriber, the value of Address can't contain line breaks. + */ + Address: SubscriberAddress; + } + export type SubscriberAddress = string; + export type Subscribers = Subscriber[]; + export type SubscriptionType = "SNS"|"EMAIL"|string; + export type TargetId = string; + export type TargetIds = TargetId[]; + export type ThresholdType = "PERCENTAGE"|"ABSOLUTE_VALUE"|string; + export interface TimePeriod { + /** + * The start date for a budget. If you created your budget and didn't specify a start date, AWS defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget on January 24, 2018, chose DAILY, and didn't set a start date, AWS set your start date to 01/24/18 00:00 UTC. If you chose MONTHLY, AWS set your start date to 01/01/18 00:00 UTC. The defaults are the same for the AWS Billing and Cost Management console and the API. You can change your start date with the UpdateBudget operation. + */ + Start?: GenericTimestamp; + /** + * The end date for a budget. If you didn't specify an end date, AWS set your end date to 06/15/87 00:00 UTC. The defaults are the same for the AWS Billing and Cost Management console and the API. After the end date, AWS deletes the budget and all associated notifications and subscribers. You can change your end date with the UpdateBudget operation. + */ + End?: GenericTimestamp; + } + export type TimeUnit = "DAILY"|"MONTHLY"|"QUARTERLY"|"ANNUALLY"|string; + export type UnitValue = string; + export interface UpdateBudgetActionRequest { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * A system-generated universally unique identifier (UUID) for the action. + */ + ActionId: ActionId; + NotificationType?: NotificationType; + ActionThreshold?: ActionThreshold; + Definition?: Definition; + /** + * The role passed for action execution and reversion. Roles and actions must be in the same account. + */ + ExecutionRoleArn?: RoleArn; + /** + * This specifies if the action needs manual or automatic approval. + */ + ApprovalModel?: ApprovalModel; + Subscribers?: Subscribers; + } + export interface UpdateBudgetActionResponse { + AccountId: AccountId; + BudgetName: BudgetName; + /** + * The previous action resource information. + */ + OldAction: Action; + /** + * The updated action resource information. + */ + NewAction: Action; + } + export interface UpdateBudgetRequest { + /** + * The accountId that is associated with the budget that you want to update. + */ + AccountId: AccountId; + /** + * The budget that you want to update your budget to. + */ + NewBudget: Budget; + } + export interface UpdateBudgetResponse { + } + export interface UpdateNotificationRequest { + /** + * The accountId that is associated with the budget whose notification you want to update. + */ + AccountId: AccountId; + /** + * The name of the budget whose notification you want to update. + */ + BudgetName: BudgetName; + /** + * The previous notification that is associated with a budget. + */ + OldNotification: Notification; + /** + * The updated notification to be associated with a budget. + */ + NewNotification: Notification; + } + export interface UpdateNotificationResponse { + } + export interface UpdateSubscriberRequest { + /** + * The accountId that is associated with the budget whose subscriber you want to update. + */ + AccountId: AccountId; + /** + * The name of the budget whose subscriber you want to update. + */ + BudgetName: BudgetName; + /** + * The notification whose subscriber you want to update. + */ + Notification: Notification; + /** + * The previous subscriber that is associated with a budget notification. + */ + OldSubscriber: Subscriber; + /** + * The updated subscriber that is associated with a budget notification. + */ + NewSubscriber: Subscriber; + } + export interface UpdateSubscriberResponse { + } + export type User = string; + export type Users = User[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2016-10-20"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Budgets client. + */ + export import Types = Budgets; +} +export = Budgets; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/budgets.js b/justdanceonline-main/node_modules/aws-sdk/clients/budgets.js new file mode 100644 index 0000000000000000000000000000000000000000..2cd5680801748d37bfb538dbbc3d6060223e4fea --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/budgets.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['budgets'] = {}; +AWS.Budgets = Service.defineService('budgets', ['2016-10-20']); +Object.defineProperty(apiLoader.services['budgets'], '2016-10-20', { + get: function get() { + var model = require('../apis/budgets-2016-10-20.min.json'); + model.paginators = require('../apis/budgets-2016-10-20.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Budgets; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/chime.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/chime.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..66a7d74308f768892ceaa2e8f9f971e92935a550 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/chime.d.ts @@ -0,0 +1,6316 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Chime extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Chime.Types.ClientConfiguration) + config: Config & Chime.Types.ClientConfiguration; + /** + * Associates a phone number with the specified Amazon Chime user. + */ + associatePhoneNumberWithUser(params: Chime.Types.AssociatePhoneNumberWithUserRequest, callback?: (err: AWSError, data: Chime.Types.AssociatePhoneNumberWithUserResponse) => void): Request; + /** + * Associates a phone number with the specified Amazon Chime user. + */ + associatePhoneNumberWithUser(callback?: (err: AWSError, data: Chime.Types.AssociatePhoneNumberWithUserResponse) => void): Request; + /** + * Associates phone numbers with the specified Amazon Chime Voice Connector. + */ + associatePhoneNumbersWithVoiceConnector(params: Chime.Types.AssociatePhoneNumbersWithVoiceConnectorRequest, callback?: (err: AWSError, data: Chime.Types.AssociatePhoneNumbersWithVoiceConnectorResponse) => void): Request; + /** + * Associates phone numbers with the specified Amazon Chime Voice Connector. + */ + associatePhoneNumbersWithVoiceConnector(callback?: (err: AWSError, data: Chime.Types.AssociatePhoneNumbersWithVoiceConnectorResponse) => void): Request; + /** + * Associates phone numbers with the specified Amazon Chime Voice Connector group. + */ + associatePhoneNumbersWithVoiceConnectorGroup(params: Chime.Types.AssociatePhoneNumbersWithVoiceConnectorGroupRequest, callback?: (err: AWSError, data: Chime.Types.AssociatePhoneNumbersWithVoiceConnectorGroupResponse) => void): Request; + /** + * Associates phone numbers with the specified Amazon Chime Voice Connector group. + */ + associatePhoneNumbersWithVoiceConnectorGroup(callback?: (err: AWSError, data: Chime.Types.AssociatePhoneNumbersWithVoiceConnectorGroupResponse) => void): Request; + /** + * Associates the specified sign-in delegate groups with the specified Amazon Chime account. + */ + associateSigninDelegateGroupsWithAccount(params: Chime.Types.AssociateSigninDelegateGroupsWithAccountRequest, callback?: (err: AWSError, data: Chime.Types.AssociateSigninDelegateGroupsWithAccountResponse) => void): Request; + /** + * Associates the specified sign-in delegate groups with the specified Amazon Chime account. + */ + associateSigninDelegateGroupsWithAccount(callback?: (err: AWSError, data: Chime.Types.AssociateSigninDelegateGroupsWithAccountResponse) => void): Request; + /** + * Creates up to 100 new attendees for an active Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + batchCreateAttendee(params: Chime.Types.BatchCreateAttendeeRequest, callback?: (err: AWSError, data: Chime.Types.BatchCreateAttendeeResponse) => void): Request; + /** + * Creates up to 100 new attendees for an active Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + batchCreateAttendee(callback?: (err: AWSError, data: Chime.Types.BatchCreateAttendeeResponse) => void): Request; + /** + * Adds a specified number of users to a channel. + */ + batchCreateChannelMembership(params: Chime.Types.BatchCreateChannelMembershipRequest, callback?: (err: AWSError, data: Chime.Types.BatchCreateChannelMembershipResponse) => void): Request; + /** + * Adds a specified number of users to a channel. + */ + batchCreateChannelMembership(callback?: (err: AWSError, data: Chime.Types.BatchCreateChannelMembershipResponse) => void): Request; + /** + * Adds up to 50 members to a chat room in an Amazon Chime Enterprise account. Members can be users or bots. The member role designates whether the member is a chat room administrator or a general chat room member. + */ + batchCreateRoomMembership(params: Chime.Types.BatchCreateRoomMembershipRequest, callback?: (err: AWSError, data: Chime.Types.BatchCreateRoomMembershipResponse) => void): Request; + /** + * Adds up to 50 members to a chat room in an Amazon Chime Enterprise account. Members can be users or bots. The member role designates whether the member is a chat room administrator or a general chat room member. + */ + batchCreateRoomMembership(callback?: (err: AWSError, data: Chime.Types.BatchCreateRoomMembershipResponse) => void): Request; + /** + * Moves phone numbers into the Deletion queue. Phone numbers must be disassociated from any users or Amazon Chime Voice Connectors before they can be deleted. Phone numbers remain in the Deletion queue for 7 days before they are deleted permanently. + */ + batchDeletePhoneNumber(params: Chime.Types.BatchDeletePhoneNumberRequest, callback?: (err: AWSError, data: Chime.Types.BatchDeletePhoneNumberResponse) => void): Request; + /** + * Moves phone numbers into the Deletion queue. Phone numbers must be disassociated from any users or Amazon Chime Voice Connectors before they can be deleted. Phone numbers remain in the Deletion queue for 7 days before they are deleted permanently. + */ + batchDeletePhoneNumber(callback?: (err: AWSError, data: Chime.Types.BatchDeletePhoneNumberResponse) => void): Request; + /** + * Suspends up to 50 users from a Team or EnterpriseLWA Amazon Chime account. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration Guide. Users suspended from a Team account are disassociated from the account,but they can continue to use Amazon Chime as free users. To remove the suspension from suspended Team account users, invite them to the Team account again. You can use the InviteUsers action to do so. Users suspended from an EnterpriseLWA account are immediately signed out of Amazon Chime and can no longer sign in. To remove the suspension from suspended EnterpriseLWA account users, use the BatchUnsuspendUser action. To sign out users without suspending them, use the LogoutUser action. + */ + batchSuspendUser(params: Chime.Types.BatchSuspendUserRequest, callback?: (err: AWSError, data: Chime.Types.BatchSuspendUserResponse) => void): Request; + /** + * Suspends up to 50 users from a Team or EnterpriseLWA Amazon Chime account. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration Guide. Users suspended from a Team account are disassociated from the account,but they can continue to use Amazon Chime as free users. To remove the suspension from suspended Team account users, invite them to the Team account again. You can use the InviteUsers action to do so. Users suspended from an EnterpriseLWA account are immediately signed out of Amazon Chime and can no longer sign in. To remove the suspension from suspended EnterpriseLWA account users, use the BatchUnsuspendUser action. To sign out users without suspending them, use the LogoutUser action. + */ + batchSuspendUser(callback?: (err: AWSError, data: Chime.Types.BatchSuspendUserResponse) => void): Request; + /** + * Removes the suspension from up to 50 previously suspended users for the specified Amazon Chime EnterpriseLWA account. Only users on EnterpriseLWA accounts can be unsuspended using this action. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration Guide. Previously suspended users who are unsuspended using this action are returned to Registered status. Users who are not previously suspended are ignored. + */ + batchUnsuspendUser(params: Chime.Types.BatchUnsuspendUserRequest, callback?: (err: AWSError, data: Chime.Types.BatchUnsuspendUserResponse) => void): Request; + /** + * Removes the suspension from up to 50 previously suspended users for the specified Amazon Chime EnterpriseLWA account. Only users on EnterpriseLWA accounts can be unsuspended using this action. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration Guide. Previously suspended users who are unsuspended using this action are returned to Registered status. Users who are not previously suspended are ignored. + */ + batchUnsuspendUser(callback?: (err: AWSError, data: Chime.Types.BatchUnsuspendUserResponse) => void): Request; + /** + * Updates phone number product types or calling names. You can update one attribute at a time for each UpdatePhoneNumberRequestItem. For example, you can update the product type or the calling name. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. Updates to outbound calling names can take up to 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update. + */ + batchUpdatePhoneNumber(params: Chime.Types.BatchUpdatePhoneNumberRequest, callback?: (err: AWSError, data: Chime.Types.BatchUpdatePhoneNumberResponse) => void): Request; + /** + * Updates phone number product types or calling names. You can update one attribute at a time for each UpdatePhoneNumberRequestItem. For example, you can update the product type or the calling name. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. Updates to outbound calling names can take up to 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update. + */ + batchUpdatePhoneNumber(callback?: (err: AWSError, data: Chime.Types.BatchUpdatePhoneNumberResponse) => void): Request; + /** + * Updates user details within the UpdateUserRequestItem object for up to 20 users for the specified Amazon Chime account. Currently, only LicenseType updates are supported for this action. + */ + batchUpdateUser(params: Chime.Types.BatchUpdateUserRequest, callback?: (err: AWSError, data: Chime.Types.BatchUpdateUserResponse) => void): Request; + /** + * Updates user details within the UpdateUserRequestItem object for up to 20 users for the specified Amazon Chime account. Currently, only LicenseType updates are supported for this action. + */ + batchUpdateUser(callback?: (err: AWSError, data: Chime.Types.BatchUpdateUserResponse) => void): Request; + /** + * Creates an Amazon Chime account under the administrator's AWS account. Only Team account types are currently supported for this action. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration Guide. + */ + createAccount(params: Chime.Types.CreateAccountRequest, callback?: (err: AWSError, data: Chime.Types.CreateAccountResponse) => void): Request; + /** + * Creates an Amazon Chime account under the administrator's AWS account. Only Team account types are currently supported for this action. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration Guide. + */ + createAccount(callback?: (err: AWSError, data: Chime.Types.CreateAccountResponse) => void): Request; + /** + * Creates an Amazon Chime SDK messaging AppInstance under an AWS account. Only SDK messaging customers use this API. CreateAppInstance supports idempotency behavior as described in the AWS API Standard. + */ + createAppInstance(params: Chime.Types.CreateAppInstanceRequest, callback?: (err: AWSError, data: Chime.Types.CreateAppInstanceResponse) => void): Request; + /** + * Creates an Amazon Chime SDK messaging AppInstance under an AWS account. Only SDK messaging customers use this API. CreateAppInstance supports idempotency behavior as described in the AWS API Standard. + */ + createAppInstance(callback?: (err: AWSError, data: Chime.Types.CreateAppInstanceResponse) => void): Request; + /** + * Promotes an AppInstanceUser to an AppInstanceAdmin. The promoted user can perform the following actions. ChannelModerator actions across all channels in the AppInstance. DeleteChannelMessage actions. Only an AppInstanceUser can be promoted to an AppInstanceAdmin role. + */ + createAppInstanceAdmin(params: Chime.Types.CreateAppInstanceAdminRequest, callback?: (err: AWSError, data: Chime.Types.CreateAppInstanceAdminResponse) => void): Request; + /** + * Promotes an AppInstanceUser to an AppInstanceAdmin. The promoted user can perform the following actions. ChannelModerator actions across all channels in the AppInstance. DeleteChannelMessage actions. Only an AppInstanceUser can be promoted to an AppInstanceAdmin role. + */ + createAppInstanceAdmin(callback?: (err: AWSError, data: Chime.Types.CreateAppInstanceAdminResponse) => void): Request; + /** + * Creates a user under an Amazon Chime AppInstance. The request consists of a unique appInstanceUserId and Name for that user. + */ + createAppInstanceUser(params: Chime.Types.CreateAppInstanceUserRequest, callback?: (err: AWSError, data: Chime.Types.CreateAppInstanceUserResponse) => void): Request; + /** + * Creates a user under an Amazon Chime AppInstance. The request consists of a unique appInstanceUserId and Name for that user. + */ + createAppInstanceUser(callback?: (err: AWSError, data: Chime.Types.CreateAppInstanceUserResponse) => void): Request; + /** + * Creates a new attendee for an active Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + createAttendee(params: Chime.Types.CreateAttendeeRequest, callback?: (err: AWSError, data: Chime.Types.CreateAttendeeResponse) => void): Request; + /** + * Creates a new attendee for an active Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + createAttendee(callback?: (err: AWSError, data: Chime.Types.CreateAttendeeResponse) => void): Request; + /** + * Creates a bot for an Amazon Chime Enterprise account. + */ + createBot(params: Chime.Types.CreateBotRequest, callback?: (err: AWSError, data: Chime.Types.CreateBotResponse) => void): Request; + /** + * Creates a bot for an Amazon Chime Enterprise account. + */ + createBot(callback?: (err: AWSError, data: Chime.Types.CreateBotResponse) => void): Request; + /** + * Creates a channel to which you can add users and send messages. Restriction: You can't change a channel's privacy. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannel(params: Chime.Types.CreateChannelRequest, callback?: (err: AWSError, data: Chime.Types.CreateChannelResponse) => void): Request; + /** + * Creates a channel to which you can add users and send messages. Restriction: You can't change a channel's privacy. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannel(callback?: (err: AWSError, data: Chime.Types.CreateChannelResponse) => void): Request; + /** + * Permanently bans a member from a channel. Moderators can't add banned members to a channel. To undo a ban, you first have to DeleteChannelBan, and then CreateChannelMembership. Bans are cleaned up when you delete users or channels. If you ban a user who is already part of a channel, that user is automatically kicked from the channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannelBan(params: Chime.Types.CreateChannelBanRequest, callback?: (err: AWSError, data: Chime.Types.CreateChannelBanResponse) => void): Request; + /** + * Permanently bans a member from a channel. Moderators can't add banned members to a channel. To undo a ban, you first have to DeleteChannelBan, and then CreateChannelMembership. Bans are cleaned up when you delete users or channels. If you ban a user who is already part of a channel, that user is automatically kicked from the channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannelBan(callback?: (err: AWSError, data: Chime.Types.CreateChannelBanResponse) => void): Request; + /** + * Adds a user to a channel. The InvitedBy response field is derived from the request header. A channel member can: List messages Send messages Receive messages Edit their own messages Leave the channel Privacy settings impact this action as follows: Public Channels: You do not need to be a member to list messages, but you must be a member to send messages. Private Channels: You must be a member to list or send messages. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannelMembership(params: Chime.Types.CreateChannelMembershipRequest, callback?: (err: AWSError, data: Chime.Types.CreateChannelMembershipResponse) => void): Request; + /** + * Adds a user to a channel. The InvitedBy response field is derived from the request header. A channel member can: List messages Send messages Receive messages Edit their own messages Leave the channel Privacy settings impact this action as follows: Public Channels: You do not need to be a member to list messages, but you must be a member to send messages. Private Channels: You must be a member to list or send messages. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannelMembership(callback?: (err: AWSError, data: Chime.Types.CreateChannelMembershipResponse) => void): Request; + /** + * Creates a new ChannelModerator. A channel moderator can: Add and remove other members of the channel. Add and remove other moderators of the channel. Add and remove user bans for the channel. Redact messages in the channel. List messages in the channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannelModerator(params: Chime.Types.CreateChannelModeratorRequest, callback?: (err: AWSError, data: Chime.Types.CreateChannelModeratorResponse) => void): Request; + /** + * Creates a new ChannelModerator. A channel moderator can: Add and remove other members of the channel. Add and remove other moderators of the channel. Add and remove user bans for the channel. Redact messages in the channel. List messages in the channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + createChannelModerator(callback?: (err: AWSError, data: Chime.Types.CreateChannelModeratorResponse) => void): Request; + /** + * Creates a new Amazon Chime SDK meeting in the specified media Region with no initial attendees. For more information about specifying media Regions, see Amazon Chime SDK Media Regions in the Amazon Chime Developer Guide . For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + createMeeting(params: Chime.Types.CreateMeetingRequest, callback?: (err: AWSError, data: Chime.Types.CreateMeetingResponse) => void): Request; + /** + * Creates a new Amazon Chime SDK meeting in the specified media Region with no initial attendees. For more information about specifying media Regions, see Amazon Chime SDK Media Regions in the Amazon Chime Developer Guide . For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + createMeeting(callback?: (err: AWSError, data: Chime.Types.CreateMeetingResponse) => void): Request; + /** + * Uses the join token and call metadata in a meeting request (From number, To number, and so forth) to initiate an outbound call to a public switched telephone network (PSTN) and join them into a Chime meeting. Also ensures that the From number belongs to the customer. To play welcome audio or implement an interactive voice response (IVR), use the CreateSipMediaApplicationCall action with the corresponding SIP media application ID. + */ + createMeetingDialOut(params: Chime.Types.CreateMeetingDialOutRequest, callback?: (err: AWSError, data: Chime.Types.CreateMeetingDialOutResponse) => void): Request; + /** + * Uses the join token and call metadata in a meeting request (From number, To number, and so forth) to initiate an outbound call to a public switched telephone network (PSTN) and join them into a Chime meeting. Also ensures that the From number belongs to the customer. To play welcome audio or implement an interactive voice response (IVR), use the CreateSipMediaApplicationCall action with the corresponding SIP media application ID. + */ + createMeetingDialOut(callback?: (err: AWSError, data: Chime.Types.CreateMeetingDialOutResponse) => void): Request; + /** + * Creates a new Amazon Chime SDK meeting in the specified media Region, with attendees. For more information about specifying media Regions, see Amazon Chime SDK Media Regions in the Amazon Chime Developer Guide . For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + createMeetingWithAttendees(params: Chime.Types.CreateMeetingWithAttendeesRequest, callback?: (err: AWSError, data: Chime.Types.CreateMeetingWithAttendeesResponse) => void): Request; + /** + * Creates a new Amazon Chime SDK meeting in the specified media Region, with attendees. For more information about specifying media Regions, see Amazon Chime SDK Media Regions in the Amazon Chime Developer Guide . For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + createMeetingWithAttendees(callback?: (err: AWSError, data: Chime.Types.CreateMeetingWithAttendeesResponse) => void): Request; + /** + * Creates an order for phone numbers to be provisioned. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. + */ + createPhoneNumberOrder(params: Chime.Types.CreatePhoneNumberOrderRequest, callback?: (err: AWSError, data: Chime.Types.CreatePhoneNumberOrderResponse) => void): Request; + /** + * Creates an order for phone numbers to be provisioned. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. + */ + createPhoneNumberOrder(callback?: (err: AWSError, data: Chime.Types.CreatePhoneNumberOrderResponse) => void): Request; + /** + * Creates a proxy session on the specified Amazon Chime Voice Connector for the specified participant phone numbers. + */ + createProxySession(params: Chime.Types.CreateProxySessionRequest, callback?: (err: AWSError, data: Chime.Types.CreateProxySessionResponse) => void): Request; + /** + * Creates a proxy session on the specified Amazon Chime Voice Connector for the specified participant phone numbers. + */ + createProxySession(callback?: (err: AWSError, data: Chime.Types.CreateProxySessionResponse) => void): Request; + /** + * Creates a chat room for the specified Amazon Chime Enterprise account. + */ + createRoom(params: Chime.Types.CreateRoomRequest, callback?: (err: AWSError, data: Chime.Types.CreateRoomResponse) => void): Request; + /** + * Creates a chat room for the specified Amazon Chime Enterprise account. + */ + createRoom(callback?: (err: AWSError, data: Chime.Types.CreateRoomResponse) => void): Request; + /** + * Adds a member to a chat room in an Amazon Chime Enterprise account. A member can be either a user or a bot. The member role designates whether the member is a chat room administrator or a general chat room member. + */ + createRoomMembership(params: Chime.Types.CreateRoomMembershipRequest, callback?: (err: AWSError, data: Chime.Types.CreateRoomMembershipResponse) => void): Request; + /** + * Adds a member to a chat room in an Amazon Chime Enterprise account. A member can be either a user or a bot. The member role designates whether the member is a chat room administrator or a general chat room member. + */ + createRoomMembership(callback?: (err: AWSError, data: Chime.Types.CreateRoomMembershipResponse) => void): Request; + /** + * Creates a SIP media application. + */ + createSipMediaApplication(params: Chime.Types.CreateSipMediaApplicationRequest, callback?: (err: AWSError, data: Chime.Types.CreateSipMediaApplicationResponse) => void): Request; + /** + * Creates a SIP media application. + */ + createSipMediaApplication(callback?: (err: AWSError, data: Chime.Types.CreateSipMediaApplicationResponse) => void): Request; + /** + * Creates an outbound call to a phone number from the phone number specified in the request, and it invokes the endpoint of the specified sipMediaApplicationId. + */ + createSipMediaApplicationCall(params: Chime.Types.CreateSipMediaApplicationCallRequest, callback?: (err: AWSError, data: Chime.Types.CreateSipMediaApplicationCallResponse) => void): Request; + /** + * Creates an outbound call to a phone number from the phone number specified in the request, and it invokes the endpoint of the specified sipMediaApplicationId. + */ + createSipMediaApplicationCall(callback?: (err: AWSError, data: Chime.Types.CreateSipMediaApplicationCallResponse) => void): Request; + /** + * Creates a SIP rule which can be used to run a SIP media application as a target for a specific trigger type. + */ + createSipRule(params: Chime.Types.CreateSipRuleRequest, callback?: (err: AWSError, data: Chime.Types.CreateSipRuleResponse) => void): Request; + /** + * Creates a SIP rule which can be used to run a SIP media application as a target for a specific trigger type. + */ + createSipRule(callback?: (err: AWSError, data: Chime.Types.CreateSipRuleResponse) => void): Request; + /** + * Creates a user under the specified Amazon Chime account. + */ + createUser(params: Chime.Types.CreateUserRequest, callback?: (err: AWSError, data: Chime.Types.CreateUserResponse) => void): Request; + /** + * Creates a user under the specified Amazon Chime account. + */ + createUser(callback?: (err: AWSError, data: Chime.Types.CreateUserResponse) => void): Request; + /** + * Creates an Amazon Chime Voice Connector under the administrator's AWS account. You can choose to create an Amazon Chime Voice Connector in a specific AWS Region. Enabling CreateVoiceConnectorRequest$RequireEncryption configures your Amazon Chime Voice Connector to use TLS transport for SIP signaling and Secure RTP (SRTP) for media. Inbound calls use TLS transport, and unencrypted outbound calls are blocked. + */ + createVoiceConnector(params: Chime.Types.CreateVoiceConnectorRequest, callback?: (err: AWSError, data: Chime.Types.CreateVoiceConnectorResponse) => void): Request; + /** + * Creates an Amazon Chime Voice Connector under the administrator's AWS account. You can choose to create an Amazon Chime Voice Connector in a specific AWS Region. Enabling CreateVoiceConnectorRequest$RequireEncryption configures your Amazon Chime Voice Connector to use TLS transport for SIP signaling and Secure RTP (SRTP) for media. Inbound calls use TLS transport, and unencrypted outbound calls are blocked. + */ + createVoiceConnector(callback?: (err: AWSError, data: Chime.Types.CreateVoiceConnectorResponse) => void): Request; + /** + * Creates an Amazon Chime Voice Connector group under the administrator's AWS account. You can associate Amazon Chime Voice Connectors with the Amazon Chime Voice Connector group by including VoiceConnectorItems in the request. You can include Amazon Chime Voice Connectors from different AWS Regions in your group. This creates a fault tolerant mechanism for fallback in case of availability events. + */ + createVoiceConnectorGroup(params: Chime.Types.CreateVoiceConnectorGroupRequest, callback?: (err: AWSError, data: Chime.Types.CreateVoiceConnectorGroupResponse) => void): Request; + /** + * Creates an Amazon Chime Voice Connector group under the administrator's AWS account. You can associate Amazon Chime Voice Connectors with the Amazon Chime Voice Connector group by including VoiceConnectorItems in the request. You can include Amazon Chime Voice Connectors from different AWS Regions in your group. This creates a fault tolerant mechanism for fallback in case of availability events. + */ + createVoiceConnectorGroup(callback?: (err: AWSError, data: Chime.Types.CreateVoiceConnectorGroupResponse) => void): Request; + /** + * Deletes the specified Amazon Chime account. You must suspend all users before deleting Team account. You can use the BatchSuspendUser action to dodo. For EnterpriseLWA and EnterpriseAD accounts, you must release the claimed domains for your Amazon Chime account before deletion. As soon as you release the domain, all users under that account are suspended. Deleted accounts appear in your Disabled accounts list for 90 days. To restore deleted account from your Disabled accounts list, you must contact AWS Support. After 90 days, deleted accounts are permanently removed from your Disabled accounts list. + */ + deleteAccount(params: Chime.Types.DeleteAccountRequest, callback?: (err: AWSError, data: Chime.Types.DeleteAccountResponse) => void): Request; + /** + * Deletes the specified Amazon Chime account. You must suspend all users before deleting Team account. You can use the BatchSuspendUser action to dodo. For EnterpriseLWA and EnterpriseAD accounts, you must release the claimed domains for your Amazon Chime account before deletion. As soon as you release the domain, all users under that account are suspended. Deleted accounts appear in your Disabled accounts list for 90 days. To restore deleted account from your Disabled accounts list, you must contact AWS Support. After 90 days, deleted accounts are permanently removed from your Disabled accounts list. + */ + deleteAccount(callback?: (err: AWSError, data: Chime.Types.DeleteAccountResponse) => void): Request; + /** + * Deletes an AppInstance and all associated data asynchronously. + */ + deleteAppInstance(params: Chime.Types.DeleteAppInstanceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an AppInstance and all associated data asynchronously. + */ + deleteAppInstance(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Demotes an AppInstanceAdmin to an AppInstanceUser. This action does not delete the user. + */ + deleteAppInstanceAdmin(params: Chime.Types.DeleteAppInstanceAdminRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Demotes an AppInstanceAdmin to an AppInstanceUser. This action does not delete the user. + */ + deleteAppInstanceAdmin(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the streaming configurations of an AppInstance. + */ + deleteAppInstanceStreamingConfigurations(params: Chime.Types.DeleteAppInstanceStreamingConfigurationsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the streaming configurations of an AppInstance. + */ + deleteAppInstanceStreamingConfigurations(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an AppInstanceUser. + */ + deleteAppInstanceUser(params: Chime.Types.DeleteAppInstanceUserRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an AppInstanceUser. + */ + deleteAppInstanceUser(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an attendee from the specified Amazon Chime SDK meeting and deletes their JoinToken. Attendees are automatically deleted when a Amazon Chime SDK meeting is deleted. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + deleteAttendee(params: Chime.Types.DeleteAttendeeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an attendee from the specified Amazon Chime SDK meeting and deletes their JoinToken. Attendees are automatically deleted when a Amazon Chime SDK meeting is deleted. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + deleteAttendee(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Immediately makes a channel and its memberships inaccessible and marks them for deletion. This is an irreversible process. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannel(params: Chime.Types.DeleteChannelRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Immediately makes a channel and its memberships inaccessible and marks them for deletion. This is an irreversible process. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannel(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a user from a channel's ban list. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelBan(params: Chime.Types.DeleteChannelBanRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a user from a channel's ban list. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelBan(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a member from a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelMembership(params: Chime.Types.DeleteChannelMembershipRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a member from a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelMembership(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a channel message. Only admins can perform this action. Deletion makes messages inaccessible immediately. A background process deletes any revisions created by UpdateChannelMessage. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelMessage(params: Chime.Types.DeleteChannelMessageRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a channel message. Only admins can perform this action. Deletion makes messages inaccessible immediately. A background process deletes any revisions created by UpdateChannelMessage. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelMessage(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a channel moderator. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelModerator(params: Chime.Types.DeleteChannelModeratorRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a channel moderator. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + deleteChannelModerator(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the events configuration that allows a bot to receive outgoing events. + */ + deleteEventsConfiguration(params: Chime.Types.DeleteEventsConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the events configuration that allows a bot to receive outgoing events. + */ + deleteEventsConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Amazon Chime SDK meeting. The operation deletes all attendees, disconnects all clients, and prevents new clients from joining the meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + deleteMeeting(params: Chime.Types.DeleteMeetingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Amazon Chime SDK meeting. The operation deletes all attendees, disconnects all clients, and prevents new clients from joining the meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + deleteMeeting(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Moves the specified phone number into the Deletion queue. A phone number must be disassociated from any users or Amazon Chime Voice Connectors before it can be deleted. Deleted phone numbers remain in the Deletion queue for 7 days before they are deleted permanently. + */ + deletePhoneNumber(params: Chime.Types.DeletePhoneNumberRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Moves the specified phone number into the Deletion queue. A phone number must be disassociated from any users or Amazon Chime Voice Connectors before it can be deleted. Deleted phone numbers remain in the Deletion queue for 7 days before they are deleted permanently. + */ + deletePhoneNumber(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified proxy session from the specified Amazon Chime Voice Connector. + */ + deleteProxySession(params: Chime.Types.DeleteProxySessionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified proxy session from the specified Amazon Chime Voice Connector. + */ + deleteProxySession(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a chat room in an Amazon Chime Enterprise account. + */ + deleteRoom(params: Chime.Types.DeleteRoomRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a chat room in an Amazon Chime Enterprise account. + */ + deleteRoom(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a member from a chat room in an Amazon Chime Enterprise account. + */ + deleteRoomMembership(params: Chime.Types.DeleteRoomMembershipRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes a member from a chat room in an Amazon Chime Enterprise account. + */ + deleteRoomMembership(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a SIP media application. + */ + deleteSipMediaApplication(params: Chime.Types.DeleteSipMediaApplicationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a SIP media application. + */ + deleteSipMediaApplication(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a SIP rule. You must disable a SIP rule before you can delete it. + */ + deleteSipRule(params: Chime.Types.DeleteSipRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a SIP rule. You must disable a SIP rule before you can delete it. + */ + deleteSipRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Amazon Chime Voice Connector. Any phone numbers associated with the Amazon Chime Voice Connector must be disassociated from it before it can be deleted. + */ + deleteVoiceConnector(params: Chime.Types.DeleteVoiceConnectorRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Amazon Chime Voice Connector. Any phone numbers associated with the Amazon Chime Voice Connector must be disassociated from it before it can be deleted. + */ + deleteVoiceConnector(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the emergency calling configuration details from the specified Amazon Chime Voice Connector. + */ + deleteVoiceConnectorEmergencyCallingConfiguration(params: Chime.Types.DeleteVoiceConnectorEmergencyCallingConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the emergency calling configuration details from the specified Amazon Chime Voice Connector. + */ + deleteVoiceConnectorEmergencyCallingConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Amazon Chime Voice Connector group. Any VoiceConnectorItems and phone numbers associated with the group must be removed before it can be deleted. + */ + deleteVoiceConnectorGroup(params: Chime.Types.DeleteVoiceConnectorGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified Amazon Chime Voice Connector group. Any VoiceConnectorItems and phone numbers associated with the group must be removed before it can be deleted. + */ + deleteVoiceConnectorGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the origination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to deleting the origination settings. + */ + deleteVoiceConnectorOrigination(params: Chime.Types.DeleteVoiceConnectorOriginationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the origination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to deleting the origination settings. + */ + deleteVoiceConnectorOrigination(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the proxy configuration from the specified Amazon Chime Voice Connector. + */ + deleteVoiceConnectorProxy(params: Chime.Types.DeleteVoiceConnectorProxyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the proxy configuration from the specified Amazon Chime Voice Connector. + */ + deleteVoiceConnectorProxy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the streaming configuration for the specified Amazon Chime Voice Connector. + */ + deleteVoiceConnectorStreamingConfiguration(params: Chime.Types.DeleteVoiceConnectorStreamingConfigurationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the streaming configuration for the specified Amazon Chime Voice Connector. + */ + deleteVoiceConnectorStreamingConfiguration(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the termination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to deleting the termination settings. + */ + deleteVoiceConnectorTermination(params: Chime.Types.DeleteVoiceConnectorTerminationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the termination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to deleting the termination settings. + */ + deleteVoiceConnectorTermination(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified SIP credentials used by your equipment to authenticate during call termination. + */ + deleteVoiceConnectorTerminationCredentials(params: Chime.Types.DeleteVoiceConnectorTerminationCredentialsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified SIP credentials used by your equipment to authenticate during call termination. + */ + deleteVoiceConnectorTerminationCredentials(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Returns the full details of an AppInstance. + */ + describeAppInstance(params: Chime.Types.DescribeAppInstanceRequest, callback?: (err: AWSError, data: Chime.Types.DescribeAppInstanceResponse) => void): Request; + /** + * Returns the full details of an AppInstance. + */ + describeAppInstance(callback?: (err: AWSError, data: Chime.Types.DescribeAppInstanceResponse) => void): Request; + /** + * Returns the full details of an AppInstanceAdmin. + */ + describeAppInstanceAdmin(params: Chime.Types.DescribeAppInstanceAdminRequest, callback?: (err: AWSError, data: Chime.Types.DescribeAppInstanceAdminResponse) => void): Request; + /** + * Returns the full details of an AppInstanceAdmin. + */ + describeAppInstanceAdmin(callback?: (err: AWSError, data: Chime.Types.DescribeAppInstanceAdminResponse) => void): Request; + /** + * Returns the full details of an AppInstanceUser . + */ + describeAppInstanceUser(params: Chime.Types.DescribeAppInstanceUserRequest, callback?: (err: AWSError, data: Chime.Types.DescribeAppInstanceUserResponse) => void): Request; + /** + * Returns the full details of an AppInstanceUser . + */ + describeAppInstanceUser(callback?: (err: AWSError, data: Chime.Types.DescribeAppInstanceUserResponse) => void): Request; + /** + * Returns the full details of a channel in an Amazon Chime AppInstance. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannel(params: Chime.Types.DescribeChannelRequest, callback?: (err: AWSError, data: Chime.Types.DescribeChannelResponse) => void): Request; + /** + * Returns the full details of a channel in an Amazon Chime AppInstance. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannel(callback?: (err: AWSError, data: Chime.Types.DescribeChannelResponse) => void): Request; + /** + * Returns the full details of a channel ban. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelBan(params: Chime.Types.DescribeChannelBanRequest, callback?: (err: AWSError, data: Chime.Types.DescribeChannelBanResponse) => void): Request; + /** + * Returns the full details of a channel ban. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelBan(callback?: (err: AWSError, data: Chime.Types.DescribeChannelBanResponse) => void): Request; + /** + * Returns the full details of a user's channel membership. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelMembership(params: Chime.Types.DescribeChannelMembershipRequest, callback?: (err: AWSError, data: Chime.Types.DescribeChannelMembershipResponse) => void): Request; + /** + * Returns the full details of a user's channel membership. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelMembership(callback?: (err: AWSError, data: Chime.Types.DescribeChannelMembershipResponse) => void): Request; + /** + * Returns the details of a channel based on the membership of the specified AppInstanceUser. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelMembershipForAppInstanceUser(params: Chime.Types.DescribeChannelMembershipForAppInstanceUserRequest, callback?: (err: AWSError, data: Chime.Types.DescribeChannelMembershipForAppInstanceUserResponse) => void): Request; + /** + * Returns the details of a channel based on the membership of the specified AppInstanceUser. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelMembershipForAppInstanceUser(callback?: (err: AWSError, data: Chime.Types.DescribeChannelMembershipForAppInstanceUserResponse) => void): Request; + /** + * Returns the full details of a channel moderated by the specified AppInstanceUser. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelModeratedByAppInstanceUser(params: Chime.Types.DescribeChannelModeratedByAppInstanceUserRequest, callback?: (err: AWSError, data: Chime.Types.DescribeChannelModeratedByAppInstanceUserResponse) => void): Request; + /** + * Returns the full details of a channel moderated by the specified AppInstanceUser. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelModeratedByAppInstanceUser(callback?: (err: AWSError, data: Chime.Types.DescribeChannelModeratedByAppInstanceUserResponse) => void): Request; + /** + * Returns the full details of a single ChannelModerator. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelModerator(params: Chime.Types.DescribeChannelModeratorRequest, callback?: (err: AWSError, data: Chime.Types.DescribeChannelModeratorResponse) => void): Request; + /** + * Returns the full details of a single ChannelModerator. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + describeChannelModerator(callback?: (err: AWSError, data: Chime.Types.DescribeChannelModeratorResponse) => void): Request; + /** + * Disassociates the primary provisioned phone number from the specified Amazon Chime user. + */ + disassociatePhoneNumberFromUser(params: Chime.Types.DisassociatePhoneNumberFromUserRequest, callback?: (err: AWSError, data: Chime.Types.DisassociatePhoneNumberFromUserResponse) => void): Request; + /** + * Disassociates the primary provisioned phone number from the specified Amazon Chime user. + */ + disassociatePhoneNumberFromUser(callback?: (err: AWSError, data: Chime.Types.DisassociatePhoneNumberFromUserResponse) => void): Request; + /** + * Disassociates the specified phone numbers from the specified Amazon Chime Voice Connector. + */ + disassociatePhoneNumbersFromVoiceConnector(params: Chime.Types.DisassociatePhoneNumbersFromVoiceConnectorRequest, callback?: (err: AWSError, data: Chime.Types.DisassociatePhoneNumbersFromVoiceConnectorResponse) => void): Request; + /** + * Disassociates the specified phone numbers from the specified Amazon Chime Voice Connector. + */ + disassociatePhoneNumbersFromVoiceConnector(callback?: (err: AWSError, data: Chime.Types.DisassociatePhoneNumbersFromVoiceConnectorResponse) => void): Request; + /** + * Disassociates the specified phone numbers from the specified Amazon Chime Voice Connector group. + */ + disassociatePhoneNumbersFromVoiceConnectorGroup(params: Chime.Types.DisassociatePhoneNumbersFromVoiceConnectorGroupRequest, callback?: (err: AWSError, data: Chime.Types.DisassociatePhoneNumbersFromVoiceConnectorGroupResponse) => void): Request; + /** + * Disassociates the specified phone numbers from the specified Amazon Chime Voice Connector group. + */ + disassociatePhoneNumbersFromVoiceConnectorGroup(callback?: (err: AWSError, data: Chime.Types.DisassociatePhoneNumbersFromVoiceConnectorGroupResponse) => void): Request; + /** + * Disassociates the specified sign-in delegate groups from the specified Amazon Chime account. + */ + disassociateSigninDelegateGroupsFromAccount(params: Chime.Types.DisassociateSigninDelegateGroupsFromAccountRequest, callback?: (err: AWSError, data: Chime.Types.DisassociateSigninDelegateGroupsFromAccountResponse) => void): Request; + /** + * Disassociates the specified sign-in delegate groups from the specified Amazon Chime account. + */ + disassociateSigninDelegateGroupsFromAccount(callback?: (err: AWSError, data: Chime.Types.DisassociateSigninDelegateGroupsFromAccountResponse) => void): Request; + /** + * Retrieves details for the specified Amazon Chime account, such as account type and supported licenses. + */ + getAccount(params: Chime.Types.GetAccountRequest, callback?: (err: AWSError, data: Chime.Types.GetAccountResponse) => void): Request; + /** + * Retrieves details for the specified Amazon Chime account, such as account type and supported licenses. + */ + getAccount(callback?: (err: AWSError, data: Chime.Types.GetAccountResponse) => void): Request; + /** + * Retrieves account settings for the specified Amazon Chime account ID, such as remote control and dialout settings. For more information about these settings, see Use the Policies Page in the Amazon Chime Administration Guide. + */ + getAccountSettings(params: Chime.Types.GetAccountSettingsRequest, callback?: (err: AWSError, data: Chime.Types.GetAccountSettingsResponse) => void): Request; + /** + * Retrieves account settings for the specified Amazon Chime account ID, such as remote control and dialout settings. For more information about these settings, see Use the Policies Page in the Amazon Chime Administration Guide. + */ + getAccountSettings(callback?: (err: AWSError, data: Chime.Types.GetAccountSettingsResponse) => void): Request; + /** + * Gets the retention settings for an AppInstance. + */ + getAppInstanceRetentionSettings(params: Chime.Types.GetAppInstanceRetentionSettingsRequest, callback?: (err: AWSError, data: Chime.Types.GetAppInstanceRetentionSettingsResponse) => void): Request; + /** + * Gets the retention settings for an AppInstance. + */ + getAppInstanceRetentionSettings(callback?: (err: AWSError, data: Chime.Types.GetAppInstanceRetentionSettingsResponse) => void): Request; + /** + * Gets the streaming settings for an AppInstance. + */ + getAppInstanceStreamingConfigurations(params: Chime.Types.GetAppInstanceStreamingConfigurationsRequest, callback?: (err: AWSError, data: Chime.Types.GetAppInstanceStreamingConfigurationsResponse) => void): Request; + /** + * Gets the streaming settings for an AppInstance. + */ + getAppInstanceStreamingConfigurations(callback?: (err: AWSError, data: Chime.Types.GetAppInstanceStreamingConfigurationsResponse) => void): Request; + /** + * Gets the Amazon Chime SDK attendee details for a specified meeting ID and attendee ID. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + getAttendee(params: Chime.Types.GetAttendeeRequest, callback?: (err: AWSError, data: Chime.Types.GetAttendeeResponse) => void): Request; + /** + * Gets the Amazon Chime SDK attendee details for a specified meeting ID and attendee ID. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + getAttendee(callback?: (err: AWSError, data: Chime.Types.GetAttendeeResponse) => void): Request; + /** + * Retrieves details for the specified bot, such as bot email address, bot type, status, and display name. + */ + getBot(params: Chime.Types.GetBotRequest, callback?: (err: AWSError, data: Chime.Types.GetBotResponse) => void): Request; + /** + * Retrieves details for the specified bot, such as bot email address, bot type, status, and display name. + */ + getBot(callback?: (err: AWSError, data: Chime.Types.GetBotResponse) => void): Request; + /** + * Gets the full details of a channel message. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + getChannelMessage(params: Chime.Types.GetChannelMessageRequest, callback?: (err: AWSError, data: Chime.Types.GetChannelMessageResponse) => void): Request; + /** + * Gets the full details of a channel message. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + getChannelMessage(callback?: (err: AWSError, data: Chime.Types.GetChannelMessageResponse) => void): Request; + /** + * Gets details for an events configuration that allows a bot to receive outgoing events, such as an HTTPS endpoint or Lambda function ARN. + */ + getEventsConfiguration(params: Chime.Types.GetEventsConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.GetEventsConfigurationResponse) => void): Request; + /** + * Gets details for an events configuration that allows a bot to receive outgoing events, such as an HTTPS endpoint or Lambda function ARN. + */ + getEventsConfiguration(callback?: (err: AWSError, data: Chime.Types.GetEventsConfigurationResponse) => void): Request; + /** + * Retrieves global settings for the administrator's AWS account, such as Amazon Chime Business Calling and Amazon Chime Voice Connector settings. + */ + getGlobalSettings(callback?: (err: AWSError, data: Chime.Types.GetGlobalSettingsResponse) => void): Request; + /** + * Gets the Amazon Chime SDK meeting details for the specified meeting ID. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + getMeeting(params: Chime.Types.GetMeetingRequest, callback?: (err: AWSError, data: Chime.Types.GetMeetingResponse) => void): Request; + /** + * Gets the Amazon Chime SDK meeting details for the specified meeting ID. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + getMeeting(callback?: (err: AWSError, data: Chime.Types.GetMeetingResponse) => void): Request; + /** + * The details of the endpoint for the messaging session. + */ + getMessagingSessionEndpoint(params: Chime.Types.GetMessagingSessionEndpointRequest, callback?: (err: AWSError, data: Chime.Types.GetMessagingSessionEndpointResponse) => void): Request; + /** + * The details of the endpoint for the messaging session. + */ + getMessagingSessionEndpoint(callback?: (err: AWSError, data: Chime.Types.GetMessagingSessionEndpointResponse) => void): Request; + /** + * Retrieves details for the specified phone number ID, such as associations, capabilities, and product type. + */ + getPhoneNumber(params: Chime.Types.GetPhoneNumberRequest, callback?: (err: AWSError, data: Chime.Types.GetPhoneNumberResponse) => void): Request; + /** + * Retrieves details for the specified phone number ID, such as associations, capabilities, and product type. + */ + getPhoneNumber(callback?: (err: AWSError, data: Chime.Types.GetPhoneNumberResponse) => void): Request; + /** + * Retrieves details for the specified phone number order, such as the order creation timestamp, phone numbers in E.164 format, product type, and order status. + */ + getPhoneNumberOrder(params: Chime.Types.GetPhoneNumberOrderRequest, callback?: (err: AWSError, data: Chime.Types.GetPhoneNumberOrderResponse) => void): Request; + /** + * Retrieves details for the specified phone number order, such as the order creation timestamp, phone numbers in E.164 format, product type, and order status. + */ + getPhoneNumberOrder(callback?: (err: AWSError, data: Chime.Types.GetPhoneNumberOrderResponse) => void): Request; + /** + * Retrieves the phone number settings for the administrator's AWS account, such as the default outbound calling name. + */ + getPhoneNumberSettings(callback?: (err: AWSError, data: Chime.Types.GetPhoneNumberSettingsResponse) => void): Request; + /** + * Gets the specified proxy session details for the specified Amazon Chime Voice Connector. + */ + getProxySession(params: Chime.Types.GetProxySessionRequest, callback?: (err: AWSError, data: Chime.Types.GetProxySessionResponse) => void): Request; + /** + * Gets the specified proxy session details for the specified Amazon Chime Voice Connector. + */ + getProxySession(callback?: (err: AWSError, data: Chime.Types.GetProxySessionResponse) => void): Request; + /** + * Gets the retention settings for the specified Amazon Chime Enterprise account. For more information about retention settings, see Managing Chat Retention Policies in the Amazon Chime Administration Guide . + */ + getRetentionSettings(params: Chime.Types.GetRetentionSettingsRequest, callback?: (err: AWSError, data: Chime.Types.GetRetentionSettingsResponse) => void): Request; + /** + * Gets the retention settings for the specified Amazon Chime Enterprise account. For more information about retention settings, see Managing Chat Retention Policies in the Amazon Chime Administration Guide . + */ + getRetentionSettings(callback?: (err: AWSError, data: Chime.Types.GetRetentionSettingsResponse) => void): Request; + /** + * Retrieves room details, such as the room name, for a room in an Amazon Chime Enterprise account. + */ + getRoom(params: Chime.Types.GetRoomRequest, callback?: (err: AWSError, data: Chime.Types.GetRoomResponse) => void): Request; + /** + * Retrieves room details, such as the room name, for a room in an Amazon Chime Enterprise account. + */ + getRoom(callback?: (err: AWSError, data: Chime.Types.GetRoomResponse) => void): Request; + /** + * Retrieves the information for a SIP media application, including name, AWS Region, and endpoints. + */ + getSipMediaApplication(params: Chime.Types.GetSipMediaApplicationRequest, callback?: (err: AWSError, data: Chime.Types.GetSipMediaApplicationResponse) => void): Request; + /** + * Retrieves the information for a SIP media application, including name, AWS Region, and endpoints. + */ + getSipMediaApplication(callback?: (err: AWSError, data: Chime.Types.GetSipMediaApplicationResponse) => void): Request; + /** + * Returns the logging configuration for the specified SIP media application. + */ + getSipMediaApplicationLoggingConfiguration(params: Chime.Types.GetSipMediaApplicationLoggingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.GetSipMediaApplicationLoggingConfigurationResponse) => void): Request; + /** + * Returns the logging configuration for the specified SIP media application. + */ + getSipMediaApplicationLoggingConfiguration(callback?: (err: AWSError, data: Chime.Types.GetSipMediaApplicationLoggingConfigurationResponse) => void): Request; + /** + * Retrieves the details of a SIP rule, such as the rule ID, name, triggers, and target endpoints. + */ + getSipRule(params: Chime.Types.GetSipRuleRequest, callback?: (err: AWSError, data: Chime.Types.GetSipRuleResponse) => void): Request; + /** + * Retrieves the details of a SIP rule, such as the rule ID, name, triggers, and target endpoints. + */ + getSipRule(callback?: (err: AWSError, data: Chime.Types.GetSipRuleResponse) => void): Request; + /** + * Retrieves details for the specified user ID, such as primary email address, license type,and personal meeting PIN. To retrieve user details with an email address instead of a user ID, use the ListUsers action, and then filter by email address. + */ + getUser(params: Chime.Types.GetUserRequest, callback?: (err: AWSError, data: Chime.Types.GetUserResponse) => void): Request; + /** + * Retrieves details for the specified user ID, such as primary email address, license type,and personal meeting PIN. To retrieve user details with an email address instead of a user ID, use the ListUsers action, and then filter by email address. + */ + getUser(callback?: (err: AWSError, data: Chime.Types.GetUserResponse) => void): Request; + /** + * Retrieves settings for the specified user ID, such as any associated phone number settings. + */ + getUserSettings(params: Chime.Types.GetUserSettingsRequest, callback?: (err: AWSError, data: Chime.Types.GetUserSettingsResponse) => void): Request; + /** + * Retrieves settings for the specified user ID, such as any associated phone number settings. + */ + getUserSettings(callback?: (err: AWSError, data: Chime.Types.GetUserSettingsResponse) => void): Request; + /** + * Retrieves details for the specified Amazon Chime Voice Connector, such as timestamps,name, outbound host, and encryption requirements. + */ + getVoiceConnector(params: Chime.Types.GetVoiceConnectorRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorResponse) => void): Request; + /** + * Retrieves details for the specified Amazon Chime Voice Connector, such as timestamps,name, outbound host, and encryption requirements. + */ + getVoiceConnector(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorResponse) => void): Request; + /** + * Gets the emergency calling configuration details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorEmergencyCallingConfiguration(params: Chime.Types.GetVoiceConnectorEmergencyCallingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorEmergencyCallingConfigurationResponse) => void): Request; + /** + * Gets the emergency calling configuration details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorEmergencyCallingConfiguration(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorEmergencyCallingConfigurationResponse) => void): Request; + /** + * Retrieves details for the specified Amazon Chime Voice Connector group, such as timestamps,name, and associated VoiceConnectorItems. + */ + getVoiceConnectorGroup(params: Chime.Types.GetVoiceConnectorGroupRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorGroupResponse) => void): Request; + /** + * Retrieves details for the specified Amazon Chime Voice Connector group, such as timestamps,name, and associated VoiceConnectorItems. + */ + getVoiceConnectorGroup(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorGroupResponse) => void): Request; + /** + * Retrieves the logging configuration details for the specified Amazon Chime Voice Connector. Shows whether SIP message logs are enabled for sending to Amazon CloudWatch Logs. + */ + getVoiceConnectorLoggingConfiguration(params: Chime.Types.GetVoiceConnectorLoggingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorLoggingConfigurationResponse) => void): Request; + /** + * Retrieves the logging configuration details for the specified Amazon Chime Voice Connector. Shows whether SIP message logs are enabled for sending to Amazon CloudWatch Logs. + */ + getVoiceConnectorLoggingConfiguration(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorLoggingConfigurationResponse) => void): Request; + /** + * Retrieves origination setting details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorOrigination(params: Chime.Types.GetVoiceConnectorOriginationRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorOriginationResponse) => void): Request; + /** + * Retrieves origination setting details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorOrigination(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorOriginationResponse) => void): Request; + /** + * Gets the proxy configuration details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorProxy(params: Chime.Types.GetVoiceConnectorProxyRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorProxyResponse) => void): Request; + /** + * Gets the proxy configuration details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorProxy(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorProxyResponse) => void): Request; + /** + * Retrieves the streaming configuration details for the specified Amazon Chime Voice Connector. Shows whether media streaming is enabled for sending to Amazon Kinesis. It also shows the retention period, in hours, for the Amazon Kinesis data. + */ + getVoiceConnectorStreamingConfiguration(params: Chime.Types.GetVoiceConnectorStreamingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorStreamingConfigurationResponse) => void): Request; + /** + * Retrieves the streaming configuration details for the specified Amazon Chime Voice Connector. Shows whether media streaming is enabled for sending to Amazon Kinesis. It also shows the retention period, in hours, for the Amazon Kinesis data. + */ + getVoiceConnectorStreamingConfiguration(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorStreamingConfigurationResponse) => void): Request; + /** + * Retrieves termination setting details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorTermination(params: Chime.Types.GetVoiceConnectorTerminationRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorTerminationResponse) => void): Request; + /** + * Retrieves termination setting details for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorTermination(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorTerminationResponse) => void): Request; + /** + * Retrieves information about the last time a SIP OPTIONS ping was received from your SIP infrastructure for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorTerminationHealth(params: Chime.Types.GetVoiceConnectorTerminationHealthRequest, callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorTerminationHealthResponse) => void): Request; + /** + * Retrieves information about the last time a SIP OPTIONS ping was received from your SIP infrastructure for the specified Amazon Chime Voice Connector. + */ + getVoiceConnectorTerminationHealth(callback?: (err: AWSError, data: Chime.Types.GetVoiceConnectorTerminationHealthResponse) => void): Request; + /** + * Sends email to a maximum of 50 users, inviting them to the specified Amazon Chime Team account. Only Team account types are currently supported for this action. + */ + inviteUsers(params: Chime.Types.InviteUsersRequest, callback?: (err: AWSError, data: Chime.Types.InviteUsersResponse) => void): Request; + /** + * Sends email to a maximum of 50 users, inviting them to the specified Amazon Chime Team account. Only Team account types are currently supported for this action. + */ + inviteUsers(callback?: (err: AWSError, data: Chime.Types.InviteUsersResponse) => void): Request; + /** + * Lists the Amazon Chime accounts under the administrator's AWS account. You can filter accounts by account name prefix. To find out which Amazon Chime account a user belongs to, you can filter by the user's email address, which returns one account result. + */ + listAccounts(params: Chime.Types.ListAccountsRequest, callback?: (err: AWSError, data: Chime.Types.ListAccountsResponse) => void): Request; + /** + * Lists the Amazon Chime accounts under the administrator's AWS account. You can filter accounts by account name prefix. To find out which Amazon Chime account a user belongs to, you can filter by the user's email address, which returns one account result. + */ + listAccounts(callback?: (err: AWSError, data: Chime.Types.ListAccountsResponse) => void): Request; + /** + * Returns a list of the administrators in the AppInstance. + */ + listAppInstanceAdmins(params: Chime.Types.ListAppInstanceAdminsRequest, callback?: (err: AWSError, data: Chime.Types.ListAppInstanceAdminsResponse) => void): Request; + /** + * Returns a list of the administrators in the AppInstance. + */ + listAppInstanceAdmins(callback?: (err: AWSError, data: Chime.Types.ListAppInstanceAdminsResponse) => void): Request; + /** + * List all AppInstanceUsers created under a single AppInstance. + */ + listAppInstanceUsers(params: Chime.Types.ListAppInstanceUsersRequest, callback?: (err: AWSError, data: Chime.Types.ListAppInstanceUsersResponse) => void): Request; + /** + * List all AppInstanceUsers created under a single AppInstance. + */ + listAppInstanceUsers(callback?: (err: AWSError, data: Chime.Types.ListAppInstanceUsersResponse) => void): Request; + /** + * Lists all Amazon Chime AppInstances created under a single AWS account. + */ + listAppInstances(params: Chime.Types.ListAppInstancesRequest, callback?: (err: AWSError, data: Chime.Types.ListAppInstancesResponse) => void): Request; + /** + * Lists all Amazon Chime AppInstances created under a single AWS account. + */ + listAppInstances(callback?: (err: AWSError, data: Chime.Types.ListAppInstancesResponse) => void): Request; + /** + * Lists the tags applied to an Amazon Chime SDK attendee resource. + */ + listAttendeeTags(params: Chime.Types.ListAttendeeTagsRequest, callback?: (err: AWSError, data: Chime.Types.ListAttendeeTagsResponse) => void): Request; + /** + * Lists the tags applied to an Amazon Chime SDK attendee resource. + */ + listAttendeeTags(callback?: (err: AWSError, data: Chime.Types.ListAttendeeTagsResponse) => void): Request; + /** + * Lists the attendees for the specified Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + listAttendees(params: Chime.Types.ListAttendeesRequest, callback?: (err: AWSError, data: Chime.Types.ListAttendeesResponse) => void): Request; + /** + * Lists the attendees for the specified Amazon Chime SDK meeting. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide . + */ + listAttendees(callback?: (err: AWSError, data: Chime.Types.ListAttendeesResponse) => void): Request; + /** + * Lists the bots associated with the administrator's Amazon Chime Enterprise account ID. + */ + listBots(params: Chime.Types.ListBotsRequest, callback?: (err: AWSError, data: Chime.Types.ListBotsResponse) => void): Request; + /** + * Lists the bots associated with the administrator's Amazon Chime Enterprise account ID. + */ + listBots(callback?: (err: AWSError, data: Chime.Types.ListBotsResponse) => void): Request; + /** + * Lists all the users banned from a particular channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelBans(params: Chime.Types.ListChannelBansRequest, callback?: (err: AWSError, data: Chime.Types.ListChannelBansResponse) => void): Request; + /** + * Lists all the users banned from a particular channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelBans(callback?: (err: AWSError, data: Chime.Types.ListChannelBansResponse) => void): Request; + /** + * Lists all channel memberships in a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelMemberships(params: Chime.Types.ListChannelMembershipsRequest, callback?: (err: AWSError, data: Chime.Types.ListChannelMembershipsResponse) => void): Request; + /** + * Lists all channel memberships in a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelMemberships(callback?: (err: AWSError, data: Chime.Types.ListChannelMembershipsResponse) => void): Request; + /** + * Lists all channels that a particular AppInstanceUser is a part of. Only an AppInstanceAdmin can call the API with a user ARN that is not their own. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelMembershipsForAppInstanceUser(params: Chime.Types.ListChannelMembershipsForAppInstanceUserRequest, callback?: (err: AWSError, data: Chime.Types.ListChannelMembershipsForAppInstanceUserResponse) => void): Request; + /** + * Lists all channels that a particular AppInstanceUser is a part of. Only an AppInstanceAdmin can call the API with a user ARN that is not their own. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelMembershipsForAppInstanceUser(callback?: (err: AWSError, data: Chime.Types.ListChannelMembershipsForAppInstanceUserResponse) => void): Request; + /** + * List all the messages in a channel. Returns a paginated list of ChannelMessages. By default, sorted by creation timestamp in descending order. Redacted messages appear in the results as empty, since they are only redacted, not deleted. Deleted messages do not appear in the results. This action always returns the latest version of an edited message. Also, the x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelMessages(params: Chime.Types.ListChannelMessagesRequest, callback?: (err: AWSError, data: Chime.Types.ListChannelMessagesResponse) => void): Request; + /** + * List all the messages in a channel. Returns a paginated list of ChannelMessages. By default, sorted by creation timestamp in descending order. Redacted messages appear in the results as empty, since they are only redacted, not deleted. Deleted messages do not appear in the results. This action always returns the latest version of an edited message. Also, the x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelMessages(callback?: (err: AWSError, data: Chime.Types.ListChannelMessagesResponse) => void): Request; + /** + * Lists all the moderators for a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelModerators(params: Chime.Types.ListChannelModeratorsRequest, callback?: (err: AWSError, data: Chime.Types.ListChannelModeratorsResponse) => void): Request; + /** + * Lists all the moderators for a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelModerators(callback?: (err: AWSError, data: Chime.Types.ListChannelModeratorsResponse) => void): Request; + /** + * Lists all Channels created under a single Chime App as a paginated list. You can specify filters to narrow results. Functionality & restrictions Use privacy = PUBLIC to retrieve all public channels in the account. Only an AppInstanceAdmin can set privacy = PRIVATE to list the private channels in an account. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannels(params: Chime.Types.ListChannelsRequest, callback?: (err: AWSError, data: Chime.Types.ListChannelsResponse) => void): Request; + /** + * Lists all Channels created under a single Chime App as a paginated list. You can specify filters to narrow results. Functionality & restrictions Use privacy = PUBLIC to retrieve all public channels in the account. Only an AppInstanceAdmin can set privacy = PRIVATE to list the private channels in an account. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannels(callback?: (err: AWSError, data: Chime.Types.ListChannelsResponse) => void): Request; + /** + * A list of the channels moderated by an AppInstanceUser. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelsModeratedByAppInstanceUser(params: Chime.Types.ListChannelsModeratedByAppInstanceUserRequest, callback?: (err: AWSError, data: Chime.Types.ListChannelsModeratedByAppInstanceUserResponse) => void): Request; + /** + * A list of the channels moderated by an AppInstanceUser. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + listChannelsModeratedByAppInstanceUser(callback?: (err: AWSError, data: Chime.Types.ListChannelsModeratedByAppInstanceUserResponse) => void): Request; + /** + * Lists the tags applied to an Amazon Chime SDK meeting resource. + */ + listMeetingTags(params: Chime.Types.ListMeetingTagsRequest, callback?: (err: AWSError, data: Chime.Types.ListMeetingTagsResponse) => void): Request; + /** + * Lists the tags applied to an Amazon Chime SDK meeting resource. + */ + listMeetingTags(callback?: (err: AWSError, data: Chime.Types.ListMeetingTagsResponse) => void): Request; + /** + * Lists up to 100 active Amazon Chime SDK meetings. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + listMeetings(params: Chime.Types.ListMeetingsRequest, callback?: (err: AWSError, data: Chime.Types.ListMeetingsResponse) => void): Request; + /** + * Lists up to 100 active Amazon Chime SDK meetings. For more information about the Amazon Chime SDK, see Using the Amazon Chime SDK in the Amazon Chime Developer Guide. + */ + listMeetings(callback?: (err: AWSError, data: Chime.Types.ListMeetingsResponse) => void): Request; + /** + * Lists the phone number orders for the administrator's Amazon Chime account. + */ + listPhoneNumberOrders(params: Chime.Types.ListPhoneNumberOrdersRequest, callback?: (err: AWSError, data: Chime.Types.ListPhoneNumberOrdersResponse) => void): Request; + /** + * Lists the phone number orders for the administrator's Amazon Chime account. + */ + listPhoneNumberOrders(callback?: (err: AWSError, data: Chime.Types.ListPhoneNumberOrdersResponse) => void): Request; + /** + * Lists the phone numbers for the specified Amazon Chime account, Amazon Chime user, Amazon Chime Voice Connector, or Amazon Chime Voice Connector group. + */ + listPhoneNumbers(params: Chime.Types.ListPhoneNumbersRequest, callback?: (err: AWSError, data: Chime.Types.ListPhoneNumbersResponse) => void): Request; + /** + * Lists the phone numbers for the specified Amazon Chime account, Amazon Chime user, Amazon Chime Voice Connector, or Amazon Chime Voice Connector group. + */ + listPhoneNumbers(callback?: (err: AWSError, data: Chime.Types.ListPhoneNumbersResponse) => void): Request; + /** + * Lists the proxy sessions for the specified Amazon Chime Voice Connector. + */ + listProxySessions(params: Chime.Types.ListProxySessionsRequest, callback?: (err: AWSError, data: Chime.Types.ListProxySessionsResponse) => void): Request; + /** + * Lists the proxy sessions for the specified Amazon Chime Voice Connector. + */ + listProxySessions(callback?: (err: AWSError, data: Chime.Types.ListProxySessionsResponse) => void): Request; + /** + * Lists the membership details for the specified room in an Amazon Chime Enterprise account, such as the members' IDs, email addresses, and names. + */ + listRoomMemberships(params: Chime.Types.ListRoomMembershipsRequest, callback?: (err: AWSError, data: Chime.Types.ListRoomMembershipsResponse) => void): Request; + /** + * Lists the membership details for the specified room in an Amazon Chime Enterprise account, such as the members' IDs, email addresses, and names. + */ + listRoomMemberships(callback?: (err: AWSError, data: Chime.Types.ListRoomMembershipsResponse) => void): Request; + /** + * Lists the room details for the specified Amazon Chime Enterprise account. Optionally, filter the results by a member ID (user ID or bot ID) to see a list of rooms that the member belongs to. + */ + listRooms(params: Chime.Types.ListRoomsRequest, callback?: (err: AWSError, data: Chime.Types.ListRoomsResponse) => void): Request; + /** + * Lists the room details for the specified Amazon Chime Enterprise account. Optionally, filter the results by a member ID (user ID or bot ID) to see a list of rooms that the member belongs to. + */ + listRooms(callback?: (err: AWSError, data: Chime.Types.ListRoomsResponse) => void): Request; + /** + * Lists the SIP media applications under the administrator's AWS account. + */ + listSipMediaApplications(params: Chime.Types.ListSipMediaApplicationsRequest, callback?: (err: AWSError, data: Chime.Types.ListSipMediaApplicationsResponse) => void): Request; + /** + * Lists the SIP media applications under the administrator's AWS account. + */ + listSipMediaApplications(callback?: (err: AWSError, data: Chime.Types.ListSipMediaApplicationsResponse) => void): Request; + /** + * Lists the SIP rules under the administrator's AWS account. + */ + listSipRules(params: Chime.Types.ListSipRulesRequest, callback?: (err: AWSError, data: Chime.Types.ListSipRulesResponse) => void): Request; + /** + * Lists the SIP rules under the administrator's AWS account. + */ + listSipRules(callback?: (err: AWSError, data: Chime.Types.ListSipRulesResponse) => void): Request; + /** + * Lists supported phone number countries. + */ + listSupportedPhoneNumberCountries(params: Chime.Types.ListSupportedPhoneNumberCountriesRequest, callback?: (err: AWSError, data: Chime.Types.ListSupportedPhoneNumberCountriesResponse) => void): Request; + /** + * Lists supported phone number countries. + */ + listSupportedPhoneNumberCountries(callback?: (err: AWSError, data: Chime.Types.ListSupportedPhoneNumberCountriesResponse) => void): Request; + /** + * Lists the tags applied to an Amazon Chime SDK meeting resource. + */ + listTagsForResource(params: Chime.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: Chime.Types.ListTagsForResourceResponse) => void): Request; + /** + * Lists the tags applied to an Amazon Chime SDK meeting resource. + */ + listTagsForResource(callback?: (err: AWSError, data: Chime.Types.ListTagsForResourceResponse) => void): Request; + /** + * Lists the users that belong to the specified Amazon Chime account. You can specify an email address to list only the user that the email address belongs to. + */ + listUsers(params: Chime.Types.ListUsersRequest, callback?: (err: AWSError, data: Chime.Types.ListUsersResponse) => void): Request; + /** + * Lists the users that belong to the specified Amazon Chime account. You can specify an email address to list only the user that the email address belongs to. + */ + listUsers(callback?: (err: AWSError, data: Chime.Types.ListUsersResponse) => void): Request; + /** + * Lists the Amazon Chime Voice Connector groups for the administrator's AWS account. + */ + listVoiceConnectorGroups(params: Chime.Types.ListVoiceConnectorGroupsRequest, callback?: (err: AWSError, data: Chime.Types.ListVoiceConnectorGroupsResponse) => void): Request; + /** + * Lists the Amazon Chime Voice Connector groups for the administrator's AWS account. + */ + listVoiceConnectorGroups(callback?: (err: AWSError, data: Chime.Types.ListVoiceConnectorGroupsResponse) => void): Request; + /** + * Lists the SIP credentials for the specified Amazon Chime Voice Connector. + */ + listVoiceConnectorTerminationCredentials(params: Chime.Types.ListVoiceConnectorTerminationCredentialsRequest, callback?: (err: AWSError, data: Chime.Types.ListVoiceConnectorTerminationCredentialsResponse) => void): Request; + /** + * Lists the SIP credentials for the specified Amazon Chime Voice Connector. + */ + listVoiceConnectorTerminationCredentials(callback?: (err: AWSError, data: Chime.Types.ListVoiceConnectorTerminationCredentialsResponse) => void): Request; + /** + * Lists the Amazon Chime Voice Connectors for the administrator's AWS account. + */ + listVoiceConnectors(params: Chime.Types.ListVoiceConnectorsRequest, callback?: (err: AWSError, data: Chime.Types.ListVoiceConnectorsResponse) => void): Request; + /** + * Lists the Amazon Chime Voice Connectors for the administrator's AWS account. + */ + listVoiceConnectors(callback?: (err: AWSError, data: Chime.Types.ListVoiceConnectorsResponse) => void): Request; + /** + * Logs out the specified user from all of the devices they are currently logged into. + */ + logoutUser(params: Chime.Types.LogoutUserRequest, callback?: (err: AWSError, data: Chime.Types.LogoutUserResponse) => void): Request; + /** + * Logs out the specified user from all of the devices they are currently logged into. + */ + logoutUser(callback?: (err: AWSError, data: Chime.Types.LogoutUserResponse) => void): Request; + /** + * Sets the amount of time in days that a given AppInstance retains data. + */ + putAppInstanceRetentionSettings(params: Chime.Types.PutAppInstanceRetentionSettingsRequest, callback?: (err: AWSError, data: Chime.Types.PutAppInstanceRetentionSettingsResponse) => void): Request; + /** + * Sets the amount of time in days that a given AppInstance retains data. + */ + putAppInstanceRetentionSettings(callback?: (err: AWSError, data: Chime.Types.PutAppInstanceRetentionSettingsResponse) => void): Request; + /** + * The data streaming configurations of an AppInstance. + */ + putAppInstanceStreamingConfigurations(params: Chime.Types.PutAppInstanceStreamingConfigurationsRequest, callback?: (err: AWSError, data: Chime.Types.PutAppInstanceStreamingConfigurationsResponse) => void): Request; + /** + * The data streaming configurations of an AppInstance. + */ + putAppInstanceStreamingConfigurations(callback?: (err: AWSError, data: Chime.Types.PutAppInstanceStreamingConfigurationsResponse) => void): Request; + /** + * Creates an events configuration that allows a bot to receive outgoing events sent by Amazon Chime. Choose either an HTTPS endpoint or a Lambda function ARN. For more information, see Bot. + */ + putEventsConfiguration(params: Chime.Types.PutEventsConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.PutEventsConfigurationResponse) => void): Request; + /** + * Creates an events configuration that allows a bot to receive outgoing events sent by Amazon Chime. Choose either an HTTPS endpoint or a Lambda function ARN. For more information, see Bot. + */ + putEventsConfiguration(callback?: (err: AWSError, data: Chime.Types.PutEventsConfigurationResponse) => void): Request; + /** + * Puts retention settings for the specified Amazon Chime Enterprise account. We recommend using AWS CloudTrail to monitor usage of this API for your account. For more information, see Logging Amazon Chime API Calls with AWS CloudTrail in the Amazon Chime Administration Guide. To turn off existing retention settings, remove the number of days from the corresponding RetentionDays field in the RetentionSettings object. For more information about retention settings, see Managing Chat Retention Policies in the Amazon Chime Administration Guide. + */ + putRetentionSettings(params: Chime.Types.PutRetentionSettingsRequest, callback?: (err: AWSError, data: Chime.Types.PutRetentionSettingsResponse) => void): Request; + /** + * Puts retention settings for the specified Amazon Chime Enterprise account. We recommend using AWS CloudTrail to monitor usage of this API for your account. For more information, see Logging Amazon Chime API Calls with AWS CloudTrail in the Amazon Chime Administration Guide. To turn off existing retention settings, remove the number of days from the corresponding RetentionDays field in the RetentionSettings object. For more information about retention settings, see Managing Chat Retention Policies in the Amazon Chime Administration Guide. + */ + putRetentionSettings(callback?: (err: AWSError, data: Chime.Types.PutRetentionSettingsResponse) => void): Request; + /** + * Updates the logging configuration for the specified SIP media application. + */ + putSipMediaApplicationLoggingConfiguration(params: Chime.Types.PutSipMediaApplicationLoggingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.PutSipMediaApplicationLoggingConfigurationResponse) => void): Request; + /** + * Updates the logging configuration for the specified SIP media application. + */ + putSipMediaApplicationLoggingConfiguration(callback?: (err: AWSError, data: Chime.Types.PutSipMediaApplicationLoggingConfigurationResponse) => void): Request; + /** + * Puts emergency calling configuration details to the specified Amazon Chime Voice Connector, such as emergency phone numbers and calling countries. Origination and termination settings must be enabled for the Amazon Chime Voice Connector before emergency calling can be configured. + */ + putVoiceConnectorEmergencyCallingConfiguration(params: Chime.Types.PutVoiceConnectorEmergencyCallingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorEmergencyCallingConfigurationResponse) => void): Request; + /** + * Puts emergency calling configuration details to the specified Amazon Chime Voice Connector, such as emergency phone numbers and calling countries. Origination and termination settings must be enabled for the Amazon Chime Voice Connector before emergency calling can be configured. + */ + putVoiceConnectorEmergencyCallingConfiguration(callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorEmergencyCallingConfigurationResponse) => void): Request; + /** + * Adds a logging configuration for the specified Amazon Chime Voice Connector. The logging configuration specifies whether SIP message logs are enabled for sending to Amazon CloudWatch Logs. + */ + putVoiceConnectorLoggingConfiguration(params: Chime.Types.PutVoiceConnectorLoggingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorLoggingConfigurationResponse) => void): Request; + /** + * Adds a logging configuration for the specified Amazon Chime Voice Connector. The logging configuration specifies whether SIP message logs are enabled for sending to Amazon CloudWatch Logs. + */ + putVoiceConnectorLoggingConfiguration(callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorLoggingConfigurationResponse) => void): Request; + /** + * Adds origination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to turning off origination settings. + */ + putVoiceConnectorOrigination(params: Chime.Types.PutVoiceConnectorOriginationRequest, callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorOriginationResponse) => void): Request; + /** + * Adds origination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to turning off origination settings. + */ + putVoiceConnectorOrigination(callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorOriginationResponse) => void): Request; + /** + * Puts the specified proxy configuration to the specified Amazon Chime Voice Connector. + */ + putVoiceConnectorProxy(params: Chime.Types.PutVoiceConnectorProxyRequest, callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorProxyResponse) => void): Request; + /** + * Puts the specified proxy configuration to the specified Amazon Chime Voice Connector. + */ + putVoiceConnectorProxy(callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorProxyResponse) => void): Request; + /** + * Adds a streaming configuration for the specified Amazon Chime Voice Connector. The streaming configuration specifies whether media streaming is enabled for sending to Indonesians. It also sets the retention period, in hours, for the Amazon Kinesis data. + */ + putVoiceConnectorStreamingConfiguration(params: Chime.Types.PutVoiceConnectorStreamingConfigurationRequest, callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorStreamingConfigurationResponse) => void): Request; + /** + * Adds a streaming configuration for the specified Amazon Chime Voice Connector. The streaming configuration specifies whether media streaming is enabled for sending to Indonesians. It also sets the retention period, in hours, for the Amazon Kinesis data. + */ + putVoiceConnectorStreamingConfiguration(callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorStreamingConfigurationResponse) => void): Request; + /** + * Adds termination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to turning off termination settings. + */ + putVoiceConnectorTermination(params: Chime.Types.PutVoiceConnectorTerminationRequest, callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorTerminationResponse) => void): Request; + /** + * Adds termination settings for the specified Amazon Chime Voice Connector. If emergency calling is configured for the Amazon Chime Voice Connector, it must be deleted prior to turning off termination settings. + */ + putVoiceConnectorTermination(callback?: (err: AWSError, data: Chime.Types.PutVoiceConnectorTerminationResponse) => void): Request; + /** + * Adds termination SIP credentials for the specified Amazon Chime Voice Connector. + */ + putVoiceConnectorTerminationCredentials(params: Chime.Types.PutVoiceConnectorTerminationCredentialsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds termination SIP credentials for the specified Amazon Chime Voice Connector. + */ + putVoiceConnectorTerminationCredentials(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Redacts message content, but not metadata. The message exists in the back end, but the action returns null content, and the state shows as redacted. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + redactChannelMessage(params: Chime.Types.RedactChannelMessageRequest, callback?: (err: AWSError, data: Chime.Types.RedactChannelMessageResponse) => void): Request; + /** + * Redacts message content, but not metadata. The message exists in the back end, but the action returns null content, and the state shows as redacted. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + redactChannelMessage(callback?: (err: AWSError, data: Chime.Types.RedactChannelMessageResponse) => void): Request; + /** + * Redacts the specified message from the specified Amazon Chime conversation. + */ + redactConversationMessage(params: Chime.Types.RedactConversationMessageRequest, callback?: (err: AWSError, data: Chime.Types.RedactConversationMessageResponse) => void): Request; + /** + * Redacts the specified message from the specified Amazon Chime conversation. + */ + redactConversationMessage(callback?: (err: AWSError, data: Chime.Types.RedactConversationMessageResponse) => void): Request; + /** + * Redacts the specified message from the specified Amazon Chime channel. + */ + redactRoomMessage(params: Chime.Types.RedactRoomMessageRequest, callback?: (err: AWSError, data: Chime.Types.RedactRoomMessageResponse) => void): Request; + /** + * Redacts the specified message from the specified Amazon Chime channel. + */ + redactRoomMessage(callback?: (err: AWSError, data: Chime.Types.RedactRoomMessageResponse) => void): Request; + /** + * Regenerates the security token for a bot. + */ + regenerateSecurityToken(params: Chime.Types.RegenerateSecurityTokenRequest, callback?: (err: AWSError, data: Chime.Types.RegenerateSecurityTokenResponse) => void): Request; + /** + * Regenerates the security token for a bot. + */ + regenerateSecurityToken(callback?: (err: AWSError, data: Chime.Types.RegenerateSecurityTokenResponse) => void): Request; + /** + * Resets the personal meeting PIN for the specified user on an Amazon Chime account. Returns the User object with the updated personal meeting PIN. + */ + resetPersonalPIN(params: Chime.Types.ResetPersonalPINRequest, callback?: (err: AWSError, data: Chime.Types.ResetPersonalPINResponse) => void): Request; + /** + * Resets the personal meeting PIN for the specified user on an Amazon Chime account. Returns the User object with the updated personal meeting PIN. + */ + resetPersonalPIN(callback?: (err: AWSError, data: Chime.Types.ResetPersonalPINResponse) => void): Request; + /** + * Moves a phone number from the Deletion queue back into the phone number Inventory. + */ + restorePhoneNumber(params: Chime.Types.RestorePhoneNumberRequest, callback?: (err: AWSError, data: Chime.Types.RestorePhoneNumberResponse) => void): Request; + /** + * Moves a phone number from the Deletion queue back into the phone number Inventory. + */ + restorePhoneNumber(callback?: (err: AWSError, data: Chime.Types.RestorePhoneNumberResponse) => void): Request; + /** + * Searches for phone numbers that can be ordered. For US numbers, provide at least one of the following search filters: AreaCode, City, State, or TollFreePrefix. If you provide City, you must also provide State. Numbers outside the US only support the PhoneNumberType filter, which you must use. + */ + searchAvailablePhoneNumbers(params: Chime.Types.SearchAvailablePhoneNumbersRequest, callback?: (err: AWSError, data: Chime.Types.SearchAvailablePhoneNumbersResponse) => void): Request; + /** + * Searches for phone numbers that can be ordered. For US numbers, provide at least one of the following search filters: AreaCode, City, State, or TollFreePrefix. If you provide City, you must also provide State. Numbers outside the US only support the PhoneNumberType filter, which you must use. + */ + searchAvailablePhoneNumbers(callback?: (err: AWSError, data: Chime.Types.SearchAvailablePhoneNumbersResponse) => void): Request; + /** + * Sends a message to a particular channel that the member is a part of. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. Also, STANDARD messages can contain 4KB of data and the 1KB of metadata. CONTROL messages can contain 30 bytes of data and no metadata. + */ + sendChannelMessage(params: Chime.Types.SendChannelMessageRequest, callback?: (err: AWSError, data: Chime.Types.SendChannelMessageResponse) => void): Request; + /** + * Sends a message to a particular channel that the member is a part of. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. Also, STANDARD messages can contain 4KB of data and the 1KB of metadata. CONTROL messages can contain 30 bytes of data and no metadata. + */ + sendChannelMessage(callback?: (err: AWSError, data: Chime.Types.SendChannelMessageResponse) => void): Request; + /** + * Applies the specified tags to the specified Amazon Chime SDK attendee. + */ + tagAttendee(params: Chime.Types.TagAttendeeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Applies the specified tags to the specified Amazon Chime SDK attendee. + */ + tagAttendee(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Applies the specified tags to the specified Amazon Chime SDK meeting. + */ + tagMeeting(params: Chime.Types.TagMeetingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Applies the specified tags to the specified Amazon Chime SDK meeting. + */ + tagMeeting(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Applies the specified tags to the specified Amazon Chime SDK meeting resource. + */ + tagResource(params: Chime.Types.TagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Applies the specified tags to the specified Amazon Chime SDK meeting resource. + */ + tagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Untags the specified tags from the specified Amazon Chime SDK attendee. + */ + untagAttendee(params: Chime.Types.UntagAttendeeRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Untags the specified tags from the specified Amazon Chime SDK attendee. + */ + untagAttendee(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Untags the specified tags from the specified Amazon Chime SDK meeting. + */ + untagMeeting(params: Chime.Types.UntagMeetingRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Untags the specified tags from the specified Amazon Chime SDK meeting. + */ + untagMeeting(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Untags the specified tags from the specified Amazon Chime SDK meeting resource. + */ + untagResource(params: Chime.Types.UntagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Untags the specified tags from the specified Amazon Chime SDK meeting resource. + */ + untagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates account details for the specified Amazon Chime account. Currently, only account name and default license updates are supported for this action. + */ + updateAccount(params: Chime.Types.UpdateAccountRequest, callback?: (err: AWSError, data: Chime.Types.UpdateAccountResponse) => void): Request; + /** + * Updates account details for the specified Amazon Chime account. Currently, only account name and default license updates are supported for this action. + */ + updateAccount(callback?: (err: AWSError, data: Chime.Types.UpdateAccountResponse) => void): Request; + /** + * Updates the settings for the specified Amazon Chime account. You can update settings for remote control of shared screens, or for the dial-out option. For more information about these settings, see Use the Policies Page in the Amazon Chime Administration Guide. + */ + updateAccountSettings(params: Chime.Types.UpdateAccountSettingsRequest, callback?: (err: AWSError, data: Chime.Types.UpdateAccountSettingsResponse) => void): Request; + /** + * Updates the settings for the specified Amazon Chime account. You can update settings for remote control of shared screens, or for the dial-out option. For more information about these settings, see Use the Policies Page in the Amazon Chime Administration Guide. + */ + updateAccountSettings(callback?: (err: AWSError, data: Chime.Types.UpdateAccountSettingsResponse) => void): Request; + /** + * Updates AppInstance metadata. + */ + updateAppInstance(params: Chime.Types.UpdateAppInstanceRequest, callback?: (err: AWSError, data: Chime.Types.UpdateAppInstanceResponse) => void): Request; + /** + * Updates AppInstance metadata. + */ + updateAppInstance(callback?: (err: AWSError, data: Chime.Types.UpdateAppInstanceResponse) => void): Request; + /** + * Updates the details of an AppInstanceUser. You can update names and metadata. + */ + updateAppInstanceUser(params: Chime.Types.UpdateAppInstanceUserRequest, callback?: (err: AWSError, data: Chime.Types.UpdateAppInstanceUserResponse) => void): Request; + /** + * Updates the details of an AppInstanceUser. You can update names and metadata. + */ + updateAppInstanceUser(callback?: (err: AWSError, data: Chime.Types.UpdateAppInstanceUserResponse) => void): Request; + /** + * Updates the status of the specified bot, such as starting or stopping the bot from running in your Amazon Chime Enterprise account. + */ + updateBot(params: Chime.Types.UpdateBotRequest, callback?: (err: AWSError, data: Chime.Types.UpdateBotResponse) => void): Request; + /** + * Updates the status of the specified bot, such as starting or stopping the bot from running in your Amazon Chime Enterprise account. + */ + updateBot(callback?: (err: AWSError, data: Chime.Types.UpdateBotResponse) => void): Request; + /** + * Update a channel's attributes. Restriction: You can't change a channel's privacy. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + updateChannel(params: Chime.Types.UpdateChannelRequest, callback?: (err: AWSError, data: Chime.Types.UpdateChannelResponse) => void): Request; + /** + * Update a channel's attributes. Restriction: You can't change a channel's privacy. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + updateChannel(callback?: (err: AWSError, data: Chime.Types.UpdateChannelResponse) => void): Request; + /** + * Updates the content of a message. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + updateChannelMessage(params: Chime.Types.UpdateChannelMessageRequest, callback?: (err: AWSError, data: Chime.Types.UpdateChannelMessageResponse) => void): Request; + /** + * Updates the content of a message. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + updateChannelMessage(callback?: (err: AWSError, data: Chime.Types.UpdateChannelMessageResponse) => void): Request; + /** + * The details of the time when a user last read messages in a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + updateChannelReadMarker(params: Chime.Types.UpdateChannelReadMarkerRequest, callback?: (err: AWSError, data: Chime.Types.UpdateChannelReadMarkerResponse) => void): Request; + /** + * The details of the time when a user last read messages in a channel. The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header. + */ + updateChannelReadMarker(callback?: (err: AWSError, data: Chime.Types.UpdateChannelReadMarkerResponse) => void): Request; + /** + * Updates global settings for the administrator's AWS account, such as Amazon Chime Business Calling and Amazon Chime Voice Connector settings. + */ + updateGlobalSettings(params: Chime.Types.UpdateGlobalSettingsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates global settings for the administrator's AWS account, such as Amazon Chime Business Calling and Amazon Chime Voice Connector settings. + */ + updateGlobalSettings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates phone number details, such as product type or calling name, for the specified phone number ID. You can update one phone number detail at a time. For example, you can update either the product type or the calling name in one action. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. Updates to outbound calling names can take 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update. + */ + updatePhoneNumber(params: Chime.Types.UpdatePhoneNumberRequest, callback?: (err: AWSError, data: Chime.Types.UpdatePhoneNumberResponse) => void): Request; + /** + * Updates phone number details, such as product type or calling name, for the specified phone number ID. You can update one phone number detail at a time. For example, you can update either the product type or the calling name in one action. For toll-free numbers, you cannot use the Amazon Chime Business Calling product type. For numbers outside the U.S., you must use the Amazon Chime SIP Media Application Dial-In product type. Updates to outbound calling names can take 72 hours to complete. Pending updates to outbound calling names must be complete before you can request another update. + */ + updatePhoneNumber(callback?: (err: AWSError, data: Chime.Types.UpdatePhoneNumberResponse) => void): Request; + /** + * Updates the phone number settings for the administrator's AWS account, such as the default outbound calling name. You can update the default outbound calling name once every seven days. Outbound calling names can take up to 72 hours to update. + */ + updatePhoneNumberSettings(params: Chime.Types.UpdatePhoneNumberSettingsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the phone number settings for the administrator's AWS account, such as the default outbound calling name. You can update the default outbound calling name once every seven days. Outbound calling names can take up to 72 hours to update. + */ + updatePhoneNumberSettings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the specified proxy session details, such as voice or SMS capabilities. + */ + updateProxySession(params: Chime.Types.UpdateProxySessionRequest, callback?: (err: AWSError, data: Chime.Types.UpdateProxySessionResponse) => void): Request; + /** + * Updates the specified proxy session details, such as voice or SMS capabilities. + */ + updateProxySession(callback?: (err: AWSError, data: Chime.Types.UpdateProxySessionResponse) => void): Request; + /** + * Updates room details, such as the room name, for a room in an Amazon Chime Enterprise account. + */ + updateRoom(params: Chime.Types.UpdateRoomRequest, callback?: (err: AWSError, data: Chime.Types.UpdateRoomResponse) => void): Request; + /** + * Updates room details, such as the room name, for a room in an Amazon Chime Enterprise account. + */ + updateRoom(callback?: (err: AWSError, data: Chime.Types.UpdateRoomResponse) => void): Request; + /** + * Updates room membership details, such as the member role, for a room in an Amazon Chime Enterprise account. The member role designates whether the member is a chat room administrator or a general chat room member. The member role can be updated only for user IDs. + */ + updateRoomMembership(params: Chime.Types.UpdateRoomMembershipRequest, callback?: (err: AWSError, data: Chime.Types.UpdateRoomMembershipResponse) => void): Request; + /** + * Updates room membership details, such as the member role, for a room in an Amazon Chime Enterprise account. The member role designates whether the member is a chat room administrator or a general chat room member. The member role can be updated only for user IDs. + */ + updateRoomMembership(callback?: (err: AWSError, data: Chime.Types.UpdateRoomMembershipResponse) => void): Request; + /** + * Updates the details of the specified SIP media application. + */ + updateSipMediaApplication(params: Chime.Types.UpdateSipMediaApplicationRequest, callback?: (err: AWSError, data: Chime.Types.UpdateSipMediaApplicationResponse) => void): Request; + /** + * Updates the details of the specified SIP media application. + */ + updateSipMediaApplication(callback?: (err: AWSError, data: Chime.Types.UpdateSipMediaApplicationResponse) => void): Request; + /** + * Allows you to trigger a Lambda function at any time while a call is active, and replace the current actions with new actions returned by the invocation. + */ + updateSipMediaApplicationCall(params: Chime.Types.UpdateSipMediaApplicationCallRequest, callback?: (err: AWSError, data: Chime.Types.UpdateSipMediaApplicationCallResponse) => void): Request; + /** + * Allows you to trigger a Lambda function at any time while a call is active, and replace the current actions with new actions returned by the invocation. + */ + updateSipMediaApplicationCall(callback?: (err: AWSError, data: Chime.Types.UpdateSipMediaApplicationCallResponse) => void): Request; + /** + * Updates the details of the specified SIP rule. + */ + updateSipRule(params: Chime.Types.UpdateSipRuleRequest, callback?: (err: AWSError, data: Chime.Types.UpdateSipRuleResponse) => void): Request; + /** + * Updates the details of the specified SIP rule. + */ + updateSipRule(callback?: (err: AWSError, data: Chime.Types.UpdateSipRuleResponse) => void): Request; + /** + * Updates user details for a specified user ID. Currently, only LicenseType updates are supported for this action. + */ + updateUser(params: Chime.Types.UpdateUserRequest, callback?: (err: AWSError, data: Chime.Types.UpdateUserResponse) => void): Request; + /** + * Updates user details for a specified user ID. Currently, only LicenseType updates are supported for this action. + */ + updateUser(callback?: (err: AWSError, data: Chime.Types.UpdateUserResponse) => void): Request; + /** + * Updates the settings for the specified user, such as phone number settings. + */ + updateUserSettings(params: Chime.Types.UpdateUserSettingsRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the settings for the specified user, such as phone number settings. + */ + updateUserSettings(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates details for the specified Amazon Chime Voice Connector. + */ + updateVoiceConnector(params: Chime.Types.UpdateVoiceConnectorRequest, callback?: (err: AWSError, data: Chime.Types.UpdateVoiceConnectorResponse) => void): Request; + /** + * Updates details for the specified Amazon Chime Voice Connector. + */ + updateVoiceConnector(callback?: (err: AWSError, data: Chime.Types.UpdateVoiceConnectorResponse) => void): Request; + /** + * Updates details of the specified Amazon Chime Voice Connector group, such as the name and Amazon Chime Voice Connector priority ranking. + */ + updateVoiceConnectorGroup(params: Chime.Types.UpdateVoiceConnectorGroupRequest, callback?: (err: AWSError, data: Chime.Types.UpdateVoiceConnectorGroupResponse) => void): Request; + /** + * Updates details of the specified Amazon Chime Voice Connector group, such as the name and Amazon Chime Voice Connector priority ranking. + */ + updateVoiceConnectorGroup(callback?: (err: AWSError, data: Chime.Types.UpdateVoiceConnectorGroupResponse) => void): Request; +} +declare namespace Chime { + export interface Account { + /** + * The AWS account ID. + */ + AwsAccountId: String; + /** + * The Amazon Chime account ID. + */ + AccountId: String; + /** + * The Amazon Chime account name. + */ + Name: String; + /** + * The Amazon Chime account type. For more information about different account types, see Managing Your Amazon Chime Accounts in the Amazon Chime Administration Guide. + */ + AccountType?: AccountType; + /** + * The Amazon Chime account creation timestamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The default license for the Amazon Chime account. + */ + DefaultLicense?: License; + /** + * Supported licenses for the Amazon Chime account. + */ + SupportedLicenses?: LicenseList; + /** + * The sign-in delegate groups associated with the account. + */ + SigninDelegateGroups?: SigninDelegateGroupList; + } + export type AccountList = Account[]; + export type AccountName = string; + export interface AccountSettings { + /** + * Setting that stops or starts remote control of shared screens during meetings. + */ + DisableRemoteControl?: Boolean; + /** + * Setting that allows meeting participants to choose the Call me at a phone number option. For more information, see Join a Meeting without the Amazon Chime App. + */ + EnableDialOut?: Boolean; + } + export type AccountType = "Team"|"EnterpriseDirectory"|"EnterpriseLWA"|"EnterpriseOIDC"|string; + export interface AlexaForBusinessMetadata { + /** + * Starts or stops Alexa for Business. + */ + IsAlexaForBusinessEnabled?: Boolean; + /** + * The ARN of the room resource. + */ + AlexaForBusinessRoomArn?: SensitiveString; + } + export type Alpha2CountryCode = string; + export interface AppInstance { + /** + * The ARN of the messaging instance. + */ + AppInstanceArn?: ChimeArn; + /** + * The name of an AppInstance. + */ + Name?: NonEmptyResourceName; + /** + * The metadata of an AppInstance. + */ + Metadata?: Metadata; + /** + * The time at which an AppInstance was created. In epoch milliseconds. + */ + CreatedTimestamp?: Timestamp; + /** + * The time an AppInstance was last updated. In epoch milliseconds. + */ + LastUpdatedTimestamp?: Timestamp; + } + export interface AppInstanceAdmin { + /** + * The AppInstanceAdmin data. + */ + Admin?: Identity; + /** + * The ARN of the AppInstance for which the user is an administrator. + */ + AppInstanceArn?: ChimeArn; + /** + * The time at which an administrator was created. + */ + CreatedTimestamp?: Timestamp; + } + export type AppInstanceAdminList = AppInstanceAdminSummary[]; + export interface AppInstanceAdminSummary { + /** + * The details of the AppInstanceAdmin. + */ + Admin?: Identity; + } + export type AppInstanceDataType = "Channel"|"ChannelMessage"|string; + export type AppInstanceList = AppInstanceSummary[]; + export interface AppInstanceRetentionSettings { + /** + * The length of time in days to retain the messages in a channel. + */ + ChannelRetentionSettings?: ChannelRetentionSettings; + } + export interface AppInstanceStreamingConfiguration { + /** + * The type of data to be streamed. + */ + AppInstanceDataType: AppInstanceDataType; + /** + * The resource ARN. + */ + ResourceArn: Arn; + } + export type AppInstanceStreamingConfigurationList = AppInstanceStreamingConfiguration[]; + export interface AppInstanceSummary { + /** + * The AppInstance ARN. + */ + AppInstanceArn?: ChimeArn; + /** + * The name of the AppInstance. + */ + Name?: NonEmptyResourceName; + /** + * The metadata of the AppInstance. + */ + Metadata?: Metadata; + } + export interface AppInstanceUser { + /** + * The ARN of the AppInstanceUser. + */ + AppInstanceUserArn?: ChimeArn; + /** + * The name of the AppInstanceUser. + */ + Name?: UserName; + /** + * The time at which the AppInstanceUser was created. + */ + CreatedTimestamp?: Timestamp; + /** + * The metadata of the AppInstanceUser. + */ + Metadata?: Metadata; + /** + * The time at which the AppInstanceUser was last updated. + */ + LastUpdatedTimestamp?: Timestamp; + } + export type AppInstanceUserList = AppInstanceUserSummary[]; + export interface AppInstanceUserMembershipSummary { + /** + * The type of ChannelMembership. + */ + Type?: ChannelMembershipType; + /** + * The time at which a message was last read. + */ + ReadMarkerTimestamp?: Timestamp; + } + export interface AppInstanceUserSummary { + /** + * The ARN of the AppInstanceUser. + */ + AppInstanceUserArn?: ChimeArn; + /** + * The name of an AppInstanceUser. + */ + Name?: UserName; + /** + * The metadata of the AppInstanceUser. + */ + Metadata?: Metadata; + } + export type AreaCode = string; + export type Arn = string; + export interface AssociatePhoneNumberWithUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: String; + /** + * The user ID. + */ + UserId: String; + /** + * The phone number, in E.164 format. + */ + E164PhoneNumber: E164PhoneNumber; + } + export interface AssociatePhoneNumberWithUserResponse { + } + export interface AssociatePhoneNumbersWithVoiceConnectorGroupRequest { + /** + * The Amazon Chime Voice Connector group ID. + */ + VoiceConnectorGroupId: NonEmptyString; + /** + * List of phone numbers, in E.164 format. + */ + E164PhoneNumbers: E164PhoneNumberList; + /** + * If true, associates the provided phone numbers with the provided Amazon Chime Voice Connector Group and removes any previously existing associations. If false, does not associate any phone numbers that have previously existing associations. + */ + ForceAssociate?: NullableBoolean; + } + export interface AssociatePhoneNumbersWithVoiceConnectorGroupResponse { + /** + * If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages. + */ + PhoneNumberErrors?: PhoneNumberErrorList; + } + export interface AssociatePhoneNumbersWithVoiceConnectorRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * List of phone numbers, in E.164 format. + */ + E164PhoneNumbers: E164PhoneNumberList; + /** + * If true, associates the provided phone numbers with the provided Amazon Chime Voice Connector and removes any previously existing associations. If false, does not associate any phone numbers that have previously existing associations. + */ + ForceAssociate?: NullableBoolean; + } + export interface AssociatePhoneNumbersWithVoiceConnectorResponse { + /** + * If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages. + */ + PhoneNumberErrors?: PhoneNumberErrorList; + } + export interface AssociateSigninDelegateGroupsWithAccountRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The sign-in delegate groups. + */ + SigninDelegateGroups: SigninDelegateGroupList; + } + export interface AssociateSigninDelegateGroupsWithAccountResponse { + } + export interface Attendee { + /** + * The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application. + */ + ExternalUserId?: ExternalUserIdType; + /** + * The Amazon Chime SDK attendee ID. + */ + AttendeeId?: GuidString; + /** + * The join token used by the Amazon Chime SDK attendee. + */ + JoinToken?: JoinTokenString; + } + export type AttendeeList = Attendee[]; + export type AttendeeTagKeyList = TagKey[]; + export type AttendeeTagList = Tag[]; + export interface BatchChannelMemberships { + InvitedBy?: Identity; + /** + * The membership types set for the channel users. + */ + Type?: ChannelMembershipType; + /** + * The users successfully added to the request. + */ + Members?: Members; + /** + * The ARN of the channel to which you're adding users. + */ + ChannelArn?: ChimeArn; + } + export type BatchCreateAttendeeErrorList = CreateAttendeeError[]; + export interface BatchCreateAttendeeRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The request containing the attendees to create. + */ + Attendees: CreateAttendeeRequestItemList; + } + export interface BatchCreateAttendeeResponse { + /** + * The attendee information, including attendees IDs and join tokens. + */ + Attendees?: AttendeeList; + /** + * If the action fails for one or more of the attendees in the request, a list of the attendees is returned, along with error codes and error messages. + */ + Errors?: BatchCreateAttendeeErrorList; + } + export interface BatchCreateChannelMembershipError { + /** + * The ARN of the member that the service couldn't add. + */ + MemberArn?: ChimeArn; + /** + * The error code. + */ + ErrorCode?: ErrorCode; + /** + * The error message. + */ + ErrorMessage?: String; + } + export type BatchCreateChannelMembershipErrors = BatchCreateChannelMembershipError[]; + export interface BatchCreateChannelMembershipRequest { + /** + * The ARN of the channel to which you're adding users. + */ + ChannelArn: ChimeArn; + /** + * The membership type of a user, DEFAULT or HIDDEN. Default members are always returned as part of ListChannelMemberships. Hidden members are only returned if the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden members are not returned. This is only supported by moderators. + */ + Type?: ChannelMembershipType; + /** + * The ARNs of the members you want to add to the channel. + */ + MemberArns: MemberArns; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface BatchCreateChannelMembershipResponse { + /** + * The list of channel memberships in the response. + */ + BatchChannelMemberships?: BatchChannelMemberships; + /** + * If the action fails for one or more of the memberships in the request, a list of the memberships is returned, along with error codes and error messages. + */ + Errors?: BatchCreateChannelMembershipErrors; + } + export interface BatchCreateRoomMembershipRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + /** + * The list of membership items. + */ + MembershipItemList: MembershipItemList; + } + export interface BatchCreateRoomMembershipResponse { + /** + * If the action fails for one or more of the member IDs in the request, a list of the member IDs is returned, along with error codes and error messages. + */ + Errors?: MemberErrorList; + } + export interface BatchDeletePhoneNumberRequest { + /** + * List of phone number IDs. + */ + PhoneNumberIds: NonEmptyStringList; + } + export interface BatchDeletePhoneNumberResponse { + /** + * If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages. + */ + PhoneNumberErrors?: PhoneNumberErrorList; + } + export interface BatchSuspendUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The request containing the user IDs to suspend. + */ + UserIdList: UserIdList; + } + export interface BatchSuspendUserResponse { + /** + * If the BatchSuspendUser action fails for one or more of the user IDs in the request, a list of the user IDs is returned, along with error codes and error messages. + */ + UserErrors?: UserErrorList; + } + export interface BatchUnsuspendUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The request containing the user IDs to unsuspend. + */ + UserIdList: UserIdList; + } + export interface BatchUnsuspendUserResponse { + /** + * If the BatchUnsuspendUser action fails for one or more of the user IDs in the request, a list of the user IDs is returned, along with error codes and error messages. + */ + UserErrors?: UserErrorList; + } + export interface BatchUpdatePhoneNumberRequest { + /** + * The request containing the phone number IDs and product types or calling names to update. + */ + UpdatePhoneNumberRequestItems: UpdatePhoneNumberRequestItemList; + } + export interface BatchUpdatePhoneNumberResponse { + /** + * If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages. + */ + PhoneNumberErrors?: PhoneNumberErrorList; + } + export interface BatchUpdateUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The request containing the user IDs and details to update. + */ + UpdateUserRequestItems: UpdateUserRequestItemList; + } + export interface BatchUpdateUserResponse { + /** + * If the BatchUpdateUser action fails for one or more of the user IDs in the request, a list of the user IDs is returned, along with error codes and error messages. + */ + UserErrors?: UserErrorList; + } + export type Boolean = boolean; + export interface Bot { + /** + * The bot ID. + */ + BotId?: String; + /** + * The unique ID for the bot user. + */ + UserId?: String; + /** + * The bot display name. + */ + DisplayName?: SensitiveString; + /** + * The bot type. + */ + BotType?: BotType; + /** + * When true, the bot is stopped from running in your account. + */ + Disabled?: NullableBoolean; + /** + * The bot creation timestamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The updated bot timestamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + /** + * The bot email address. + */ + BotEmail?: SensitiveString; + /** + * The security token used to authenticate Amazon Chime with the outgoing event endpoint. + */ + SecurityToken?: SensitiveString; + } + export type BotList = Bot[]; + export type BotType = "ChatBot"|string; + export interface BusinessCallingSettings { + /** + * The Amazon S3 bucket designated for call detail record storage. + */ + CdrBucket?: String; + } + export type CallingName = string; + export type CallingNameStatus = "Unassigned"|"UpdateInProgress"|"UpdateSucceeded"|"UpdateFailed"|string; + export type CallingRegion = string; + export type CallingRegionList = CallingRegion[]; + export type Capability = "Voice"|"SMS"|string; + export type CapabilityList = Capability[]; + export interface Channel { + /** + * The name of the channel. + */ + Name?: NonEmptyResourceName; + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The mode of the channel. + */ + Mode?: ChannelMode; + /** + * The channel's privacy setting. + */ + Privacy?: ChannelPrivacy; + /** + * The channel's metadata. + */ + Metadata?: Metadata; + /** + * The AppInstanceUser who created the channel. + */ + CreatedBy?: Identity; + /** + * The time at which the AppInstanceUser created the channel. + */ + CreatedTimestamp?: Timestamp; + /** + * The time at which a member sent the last message in the channel. + */ + LastMessageTimestamp?: Timestamp; + /** + * The time at which a channel was last updated. + */ + LastUpdatedTimestamp?: Timestamp; + } + export interface ChannelBan { + /** + * The member being banned from the channel. + */ + Member?: Identity; + /** + * The ARN of the channel from which a member is being banned. + */ + ChannelArn?: ChimeArn; + /** + * The time at which the ban was created. + */ + CreatedTimestamp?: Timestamp; + /** + * The AppInstanceUser who created the ban. + */ + CreatedBy?: Identity; + } + export interface ChannelBanSummary { + /** + * The member being banned from a channel. + */ + Member?: Identity; + } + export type ChannelBanSummaryList = ChannelBanSummary[]; + export interface ChannelMembership { + /** + * The identifier of the member who invited another member. + */ + InvitedBy?: Identity; + /** + * The membership type set for the channel member. + */ + Type?: ChannelMembershipType; + /** + * The data of the channel member. + */ + Member?: Identity; + /** + * The ARN of the member's channel. + */ + ChannelArn?: ChimeArn; + /** + * The time at which the channel membership was created. + */ + CreatedTimestamp?: Timestamp; + /** + * The time at which a channel membership was last updated. + */ + LastUpdatedTimestamp?: Timestamp; + } + export interface ChannelMembershipForAppInstanceUserSummary { + ChannelSummary?: ChannelSummary; + /** + * Returns the channel membership data for an AppInstance. + */ + AppInstanceUserMembershipSummary?: AppInstanceUserMembershipSummary; + } + export type ChannelMembershipForAppInstanceUserSummaryList = ChannelMembershipForAppInstanceUserSummary[]; + export interface ChannelMembershipSummary { + /** + * A member's summary data. + */ + Member?: Identity; + } + export type ChannelMembershipSummaryList = ChannelMembershipSummary[]; + export type ChannelMembershipType = "DEFAULT"|"HIDDEN"|string; + export interface ChannelMessage { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The ID of a message. + */ + MessageId?: MessageId; + /** + * The message content. + */ + Content?: Content; + /** + * The message metadata. + */ + Metadata?: Metadata; + /** + * The message type. + */ + Type?: ChannelMessageType; + /** + * The time at which the message was created. + */ + CreatedTimestamp?: Timestamp; + /** + * The time at which a message was edited. + */ + LastEditedTimestamp?: Timestamp; + /** + * The time at which a message was updated. + */ + LastUpdatedTimestamp?: Timestamp; + /** + * The message sender. + */ + Sender?: Identity; + /** + * Hides the content of a message. + */ + Redacted?: NonNullableBoolean; + /** + * The persistence setting for a channel message. + */ + Persistence?: ChannelMessagePersistenceType; + } + export type ChannelMessagePersistenceType = "PERSISTENT"|"NON_PERSISTENT"|string; + export interface ChannelMessageSummary { + /** + * The ID of the message. + */ + MessageId?: MessageId; + /** + * The content of the message. + */ + Content?: Content; + /** + * The metadata of the message. + */ + Metadata?: Metadata; + /** + * The type of message. + */ + Type?: ChannelMessageType; + /** + * The time at which the message summary was created. + */ + CreatedTimestamp?: Timestamp; + /** + * The time at which a message was last updated. + */ + LastUpdatedTimestamp?: Timestamp; + /** + * The time at which a message was last edited. + */ + LastEditedTimestamp?: Timestamp; + /** + * The message sender. + */ + Sender?: Identity; + /** + * Indicates whether a message was redacted. + */ + Redacted?: NonNullableBoolean; + } + export type ChannelMessageSummaryList = ChannelMessageSummary[]; + export type ChannelMessageType = "STANDARD"|"CONTROL"|string; + export type ChannelMode = "UNRESTRICTED"|"RESTRICTED"|string; + export interface ChannelModeratedByAppInstanceUserSummary { + ChannelSummary?: ChannelSummary; + } + export type ChannelModeratedByAppInstanceUserSummaryList = ChannelModeratedByAppInstanceUserSummary[]; + export interface ChannelModerator { + /** + * The moderator's data. + */ + Moderator?: Identity; + /** + * The ARN of the moderator's channel. + */ + ChannelArn?: ChimeArn; + /** + * The time at which the moderator was created. + */ + CreatedTimestamp?: Timestamp; + /** + * The AppInstanceUser who created the moderator. + */ + CreatedBy?: Identity; + } + export interface ChannelModeratorSummary { + /** + * The data for a moderator. + */ + Moderator?: Identity; + } + export type ChannelModeratorSummaryList = ChannelModeratorSummary[]; + export type ChannelPrivacy = "PUBLIC"|"PRIVATE"|string; + export interface ChannelRetentionSettings { + /** + * The time in days to retain the messages in a channel. + */ + RetentionDays?: RetentionDays; + } + export interface ChannelSummary { + /** + * The name of the channel. + */ + Name?: NonEmptyResourceName; + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The mode of the channel. + */ + Mode?: ChannelMode; + /** + * The privacy setting of the channel. + */ + Privacy?: ChannelPrivacy; + /** + * The metadata of the channel. + */ + Metadata?: Metadata; + /** + * The time at which the last message in a channel was sent. + */ + LastMessageTimestamp?: Timestamp; + } + export type ChannelSummaryList = ChannelSummary[]; + export type ChimeArn = string; + export type ClientRequestToken = string; + export type Content = string; + export interface ConversationRetentionSettings { + /** + * The number of days for which to retain conversation messages. + */ + RetentionDays?: RetentionDays; + } + export type Country = string; + export type CountryList = Country[]; + export type CpsLimit = number; + export interface CreateAccountRequest { + /** + * The name of the Amazon Chime account. + */ + Name: AccountName; + } + export interface CreateAccountResponse { + /** + * The Amazon Chime account details. + */ + Account?: Account; + } + export interface CreateAppInstanceAdminRequest { + /** + * The ARN of the administrator of the current AppInstance. + */ + AppInstanceAdminArn: ChimeArn; + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + } + export interface CreateAppInstanceAdminResponse { + /** + * The name and ARN of the admin for the AppInstance. + */ + AppInstanceAdmin?: Identity; + /** + * The ARN of the of the admin for the AppInstance. + */ + AppInstanceArn?: ChimeArn; + } + export interface CreateAppInstanceRequest { + /** + * The name of the AppInstance. + */ + Name: NonEmptyResourceName; + /** + * The metadata of the AppInstance. Limited to a 1KB string in UTF-8. + */ + Metadata?: Metadata; + /** + * The ClientRequestToken of the AppInstance. + */ + ClientRequestToken: ClientRequestToken; + /** + * Tags assigned to the AppInstanceUser. + */ + Tags?: TagList; + } + export interface CreateAppInstanceResponse { + /** + * The Amazon Resource Number (ARN) of the AppInstance. + */ + AppInstanceArn?: ChimeArn; + } + export interface CreateAppInstanceUserRequest { + /** + * The ARN of the AppInstance request. + */ + AppInstanceArn: ChimeArn; + /** + * The user ID of the AppInstance. + */ + AppInstanceUserId: UserId; + /** + * The user's name. + */ + Name: UserName; + /** + * The request's metadata. Limited to a 1KB string in UTF-8. + */ + Metadata?: Metadata; + /** + * The token assigned to the user requesting an AppInstance. + */ + ClientRequestToken: ClientRequestToken; + /** + * Tags assigned to the AppInstanceUser. + */ + Tags?: TagList; + } + export interface CreateAppInstanceUserResponse { + /** + * The user's ARN. + */ + AppInstanceUserArn?: ChimeArn; + } + export interface CreateAttendeeError { + /** + * The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application. + */ + ExternalUserId?: ExternalUserIdType; + /** + * The error code. + */ + ErrorCode?: String; + /** + * The error message. + */ + ErrorMessage?: String; + } + export interface CreateAttendeeRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application. + */ + ExternalUserId: ExternalUserIdType; + /** + * The tag key-value pairs. + */ + Tags?: AttendeeTagList; + } + export interface CreateAttendeeRequestItem { + /** + * The Amazon Chime SDK external user ID. An idempotency token. Links the attendee to an identity managed by a builder application. + */ + ExternalUserId: ExternalUserIdType; + /** + * The tag key-value pairs. + */ + Tags?: AttendeeTagList; + } + export type CreateAttendeeRequestItemList = CreateAttendeeRequestItem[]; + export interface CreateAttendeeResponse { + /** + * The attendee information, including attendee ID and join token. + */ + Attendee?: Attendee; + } + export interface CreateBotRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The bot display name. + */ + DisplayName: SensitiveString; + /** + * The domain of the Amazon Chime Enterprise account. + */ + Domain?: NonEmptyString; + } + export interface CreateBotResponse { + /** + * The bot details. + */ + Bot?: Bot; + } + export interface CreateChannelBanRequest { + /** + * The ARN of the ban request. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the member being banned. + */ + MemberArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface CreateChannelBanResponse { + /** + * The ARN of the response to the ban request. + */ + ChannelArn?: ChimeArn; + /** + * The ChannelArn and BannedIdentity of the member in the ban response. + */ + Member?: Identity; + } + export interface CreateChannelMembershipRequest { + /** + * The ARN of the channel to which you're adding users. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the member you want to add to the channel. + */ + MemberArn: ChimeArn; + /** + * The membership type of a user, DEFAULT or HIDDEN. Default members are always returned as part of ListChannelMemberships. Hidden members are only returned if the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden members are not returned. This is only supported by moderators. + */ + Type: ChannelMembershipType; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface CreateChannelMembershipResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The ARN and metadata of the member being added. + */ + Member?: Identity; + } + export interface CreateChannelModeratorRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the moderator. + */ + ChannelModeratorArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface CreateChannelModeratorResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The ARNs of the channel and the moderator. + */ + ChannelModerator?: Identity; + } + export interface CreateChannelRequest { + /** + * The ARN of the channel request. + */ + AppInstanceArn: ChimeArn; + /** + * The name of the channel. + */ + Name: NonEmptyResourceName; + /** + * The channel mode: UNRESTRICTED or RESTRICTED. Administrators, moderators, and channel members can add themselves and other members to unrestricted channels. Only administrators and moderators can add members to restricted channels. + */ + Mode?: ChannelMode; + /** + * The channel's privacy level: PUBLIC or PRIVATE. Private channels aren't discoverable by users outside the channel. Public channels are discoverable by anyone in the AppInstance. + */ + Privacy?: ChannelPrivacy; + /** + * The metadata of the creation request. Limited to 1KB and UTF-8. + */ + Metadata?: Metadata; + /** + * The client token for the request. An Idempotency token. + */ + ClientRequestToken: ClientRequestToken; + /** + * The tags for the creation request. + */ + Tags?: TagList; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface CreateChannelResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + } + export interface CreateMeetingDialOutRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * Phone number used as the caller ID when the remote party receives a call. + */ + FromPhoneNumber: E164PhoneNumber; + /** + * Phone number called when inviting someone to a meeting. + */ + ToPhoneNumber: E164PhoneNumber; + /** + * Token used by the Amazon Chime SDK attendee. Call the CreateAttendee action to get a join token. + */ + JoinToken: JoinTokenString; + } + export interface CreateMeetingDialOutResponse { + /** + * Unique ID that tracks API calls. + */ + TransactionId?: GuidString; + } + export interface CreateMeetingRequest { + /** + * The unique identifier for the client request. Use a different token for different meetings. + */ + ClientRequestToken: ClientRequestToken; + /** + * The external meeting ID. + */ + ExternalMeetingId?: ExternalMeetingIdType; + /** + * Reserved. + */ + MeetingHostId?: ExternalUserIdType; + /** + * The Region in which to create the meeting. Default: us-east-1. Available values: af-south-1 , ap-northeast-1 , ap-northeast-2 , ap-south-1 , ap-southeast-1 , ap-southeast-2 , ca-central-1 , eu-central-1 , eu-north-1 , eu-south-1 , eu-west-1 , eu-west-2 , eu-west-3 , sa-east-1 , us-east-1 , us-east-2 , us-west-1 , us-west-2 . + */ + MediaRegion?: String; + /** + * The tag key-value pairs. + */ + Tags?: MeetingTagList; + /** + * The configuration for resource targets to receive notifications when meeting and attendee events occur. + */ + NotificationsConfiguration?: MeetingNotificationConfiguration; + } + export interface CreateMeetingResponse { + /** + * The meeting information, including the meeting ID and MediaPlacement . + */ + Meeting?: Meeting; + } + export interface CreateMeetingWithAttendeesRequest { + /** + * The unique identifier for the client request. Use a different token for different meetings. + */ + ClientRequestToken: ClientRequestToken; + /** + * The external meeting ID. + */ + ExternalMeetingId?: ExternalMeetingIdType; + /** + * Reserved. + */ + MeetingHostId?: ExternalUserIdType; + /** + * The Region in which to create the meeting. Default: us-east-1 . Available values: af-south-1 , ap-northeast-1 , ap-northeast-2 , ap-south-1 , ap-southeast-1 , ap-southeast-2 , ca-central-1 , eu-central-1 , eu-north-1 , eu-south-1 , eu-west-1 , eu-west-2 , eu-west-3 , sa-east-1 , us-east-1 , us-east-2 , us-west-1 , us-west-2 . + */ + MediaRegion?: String; + /** + * The tag key-value pairs. + */ + Tags?: MeetingTagList; + NotificationsConfiguration?: MeetingNotificationConfiguration; + /** + * The request containing the attendees to create. + */ + Attendees?: CreateMeetingWithAttendeesRequestItemList; + } + export type CreateMeetingWithAttendeesRequestItemList = CreateAttendeeRequestItem[]; + export interface CreateMeetingWithAttendeesResponse { + Meeting?: Meeting; + /** + * The attendee information, including attendees IDs and join tokens. + */ + Attendees?: AttendeeList; + /** + * If the action fails for one or more of the attendees in the request, a list of the attendees is returned, along with error codes and error messages. + */ + Errors?: BatchCreateAttendeeErrorList; + } + export interface CreatePhoneNumberOrderRequest { + /** + * The phone number product type. + */ + ProductType: PhoneNumberProductType; + /** + * List of phone numbers, in E.164 format. + */ + E164PhoneNumbers: E164PhoneNumberList; + } + export interface CreatePhoneNumberOrderResponse { + /** + * The phone number order details. + */ + PhoneNumberOrder?: PhoneNumberOrder; + } + export interface CreateProxySessionRequest { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId: NonEmptyString128; + /** + * The participant phone numbers. + */ + ParticipantPhoneNumbers: ParticipantPhoneNumberList; + /** + * The name of the proxy session. + */ + Name?: ProxySessionNameString; + /** + * The number of minutes allowed for the proxy session. + */ + ExpiryMinutes?: PositiveInteger; + /** + * The proxy session capabilities. + */ + Capabilities: CapabilityList; + /** + * The preference for proxy phone number reuse, or stickiness, between the same participants across sessions. + */ + NumberSelectionBehavior?: NumberSelectionBehavior; + /** + * The preference for matching the country or area code of the proxy phone number with that of the first participant. + */ + GeoMatchLevel?: GeoMatchLevel; + /** + * The country and area code for the proxy phone number. + */ + GeoMatchParams?: GeoMatchParams; + } + export interface CreateProxySessionResponse { + /** + * The proxy session details. + */ + ProxySession?: ProxySession; + } + export interface CreateRoomMembershipRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + /** + * The Amazon Chime member ID (user ID or bot ID). + */ + MemberId: NonEmptyString; + /** + * The role of the member. + */ + Role?: RoomMembershipRole; + } + export interface CreateRoomMembershipResponse { + /** + * The room membership details. + */ + RoomMembership?: RoomMembership; + } + export interface CreateRoomRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room name. + */ + Name: SensitiveString; + /** + * The idempotency token for the request. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface CreateRoomResponse { + /** + * The room details. + */ + Room?: Room; + } + export interface CreateSipMediaApplicationCallRequest { + /** + * The phone number that a user calls from. This is a phone number in your Amazon Chime phone number inventory. + */ + FromPhoneNumber: E164PhoneNumber; + /** + * The phone number that the service should call. + */ + ToPhoneNumber: E164PhoneNumber; + /** + * The ID of the SIP media application. + */ + SipMediaApplicationId: NonEmptyString; + } + export interface CreateSipMediaApplicationCallResponse { + /** + * The actual call. + */ + SipMediaApplicationCall?: SipMediaApplicationCall; + } + export interface CreateSipMediaApplicationRequest { + /** + * The AWS Region assigned to the SIP media application. + */ + AwsRegion: String; + /** + * The SIP media application name. + */ + Name: SipMediaApplicationName; + /** + * List of endpoints (Lambda Amazon Resource Names) specified for the SIP media application. Currently, only one endpoint is supported. + */ + Endpoints: SipMediaApplicationEndpointList; + } + export interface CreateSipMediaApplicationResponse { + /** + * The SIP media application details. + */ + SipMediaApplication?: SipMediaApplication; + } + export interface CreateSipRuleRequest { + /** + * The name of the SIP rule. + */ + Name: SipRuleName; + /** + * The type of trigger assigned to the SIP rule in TriggerValue, currently RequestUriHostname or ToPhoneNumber. + */ + TriggerType: SipRuleTriggerType; + /** + * If TriggerType is RequestUriHostname, the value can be the outbound host name of an Amazon Chime Voice Connector. If TriggerType is ToPhoneNumber, the value can be a customer-owned phone number in the E164 format. The SipMediaApplication specified in the SipRule is triggered if the request URI in an incoming SIP request matches the RequestUriHostname, or if the To header in the incoming SIP request matches the ToPhoneNumber value. + */ + TriggerValue: NonEmptyString; + /** + * Enables or disables a rule. You must disable rules before you can delete them. + */ + Disabled?: NullableBoolean; + /** + * List of SIP media applications with priority and AWS Region. Only one SIP application per AWS Region can be used. + */ + TargetApplications: SipRuleTargetApplicationList; + } + export interface CreateSipRuleResponse { + /** + * Returns the SIP rule information, including the rule ID, triggers, and target applications. + */ + SipRule?: SipRule; + } + export interface CreateUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The user name. + */ + Username?: String; + /** + * The user's email address. + */ + Email?: EmailAddress; + /** + * The user type. + */ + UserType?: UserType; + } + export interface CreateUserResponse { + User?: User; + } + export interface CreateVoiceConnectorGroupRequest { + /** + * The name of the Amazon Chime Voice Connector group. + */ + Name: VoiceConnectorGroupName; + /** + * The Amazon Chime Voice Connectors to route inbound calls to. + */ + VoiceConnectorItems?: VoiceConnectorItemList; + } + export interface CreateVoiceConnectorGroupResponse { + /** + * The Amazon Chime Voice Connector group details. + */ + VoiceConnectorGroup?: VoiceConnectorGroup; + } + export interface CreateVoiceConnectorRequest { + /** + * The name of the Amazon Chime Voice Connector. + */ + Name: VoiceConnectorName; + /** + * The AWS Region in which the Amazon Chime Voice Connector is created. Default value: us-east-1 . + */ + AwsRegion?: VoiceConnectorAwsRegion; + /** + * When enabled, requires encryption for the Amazon Chime Voice Connector. + */ + RequireEncryption: Boolean; + } + export interface CreateVoiceConnectorResponse { + /** + * The Amazon Chime Voice Connector details. + */ + VoiceConnector?: VoiceConnector; + } + export interface Credential { + /** + * The RFC2617 compliant user name associated with the SIP credentials, in US-ASCII format. + */ + Username?: SensitiveString; + /** + * The RFC2617 compliant password associated with the SIP credentials, in US-ASCII format. + */ + Password?: SensitiveString; + } + export type CredentialList = Credential[]; + export interface DNISEmergencyCallingConfiguration { + /** + * The DNIS phone number to route emergency calls to, in E.164 format. + */ + EmergencyPhoneNumber: E164PhoneNumber; + /** + * The DNIS phone number to route test emergency calls to, in E.164 format. + */ + TestPhoneNumber?: E164PhoneNumber; + /** + * The country from which emergency calls are allowed, in ISO 3166-1 alpha-2 format. + */ + CallingCountry: Alpha2CountryCode; + } + export type DNISEmergencyCallingConfigurationList = DNISEmergencyCallingConfiguration[]; + export type DataRetentionInHours = number; + export interface DeleteAccountRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + } + export interface DeleteAccountResponse { + } + export interface DeleteAppInstanceAdminRequest { + /** + * The ARN of the AppInstance's administrator. + */ + AppInstanceAdminArn: ChimeArn; + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + } + export interface DeleteAppInstanceRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + } + export interface DeleteAppInstanceStreamingConfigurationsRequest { + /** + * The ARN of the streaming configurations being deleted. + */ + AppInstanceArn: ChimeArn; + } + export interface DeleteAppInstanceUserRequest { + /** + * The ARN of the user request being deleted. + */ + AppInstanceUserArn: ChimeArn; + } + export interface DeleteAttendeeRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The Amazon Chime SDK attendee ID. + */ + AttendeeId: GuidString; + } + export interface DeleteChannelBanRequest { + /** + * The ARN of the channel from which the AppInstanceUser was banned. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the AppInstanceUser that you want to reinstate. + */ + MemberArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DeleteChannelMembershipRequest { + /** + * The ARN of the channel from which you want to remove the user. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the member that you're removing from the channel. + */ + MemberArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DeleteChannelMessageRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The ID of the message being deleted. + */ + MessageId: MessageId; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DeleteChannelModeratorRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the moderator being deleted. + */ + ChannelModeratorArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DeleteChannelRequest { + /** + * The ARN of the channel being deleted. + */ + ChannelArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DeleteEventsConfigurationRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The bot ID. + */ + BotId: NonEmptyString; + } + export interface DeleteMeetingRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + } + export interface DeletePhoneNumberRequest { + /** + * The phone number ID. + */ + PhoneNumberId: String; + } + export interface DeleteProxySessionRequest { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId: NonEmptyString128; + /** + * The proxy session ID. + */ + ProxySessionId: NonEmptyString128; + } + export interface DeleteRoomMembershipRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + /** + * The member ID (user ID or bot ID). + */ + MemberId: NonEmptyString; + } + export interface DeleteRoomRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The chat room ID. + */ + RoomId: NonEmptyString; + } + export interface DeleteSipMediaApplicationRequest { + /** + * The SIP media application ID. + */ + SipMediaApplicationId: NonEmptyString; + } + export interface DeleteSipRuleRequest { + /** + * The SIP rule ID. + */ + SipRuleId: NonEmptyString; + } + export interface DeleteVoiceConnectorEmergencyCallingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface DeleteVoiceConnectorGroupRequest { + /** + * The Amazon Chime Voice Connector group ID. + */ + VoiceConnectorGroupId: NonEmptyString; + } + export interface DeleteVoiceConnectorOriginationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface DeleteVoiceConnectorProxyRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString128; + } + export interface DeleteVoiceConnectorRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface DeleteVoiceConnectorStreamingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface DeleteVoiceConnectorTerminationCredentialsRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The RFC2617 compliant username associated with the SIP credentials, in US-ASCII format. + */ + Usernames: SensitiveStringList; + } + export interface DeleteVoiceConnectorTerminationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface DescribeAppInstanceAdminRequest { + /** + * The ARN of the AppInstanceAdmin. + */ + AppInstanceAdminArn: ChimeArn; + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + } + export interface DescribeAppInstanceAdminResponse { + /** + * The ARN and name of the AppInstanceUser, the ARN of the AppInstance, and the created and last-updated timestamps. All timestamps use epoch milliseconds. + */ + AppInstanceAdmin?: AppInstanceAdmin; + } + export interface DescribeAppInstanceRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + } + export interface DescribeAppInstanceResponse { + /** + * The ARN, metadata, created and last-updated timestamps, and the name of the AppInstance. All timestamps use epoch milliseconds. + */ + AppInstance?: AppInstance; + } + export interface DescribeAppInstanceUserRequest { + /** + * The ARN of the AppInstanceUser. + */ + AppInstanceUserArn: ChimeArn; + } + export interface DescribeAppInstanceUserResponse { + /** + * The name of the AppInstanceUser. + */ + AppInstanceUser?: AppInstanceUser; + } + export interface DescribeChannelBanRequest { + /** + * The ARN of the channel from which the user is banned. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the member being banned. + */ + MemberArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DescribeChannelBanResponse { + /** + * The details of the ban. + */ + ChannelBan?: ChannelBan; + } + export interface DescribeChannelMembershipForAppInstanceUserRequest { + /** + * The ARN of the channel to which the user belongs. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the user in a channel. + */ + AppInstanceUserArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DescribeChannelMembershipForAppInstanceUserResponse { + /** + * The channel to which a user belongs. + */ + ChannelMembership?: ChannelMembershipForAppInstanceUserSummary; + } + export interface DescribeChannelMembershipRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the member. + */ + MemberArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DescribeChannelMembershipResponse { + /** + * The details of the membership. + */ + ChannelMembership?: ChannelMembership; + } + export interface DescribeChannelModeratedByAppInstanceUserRequest { + /** + * The ARN of the moderated channel. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the AppInstanceUser in the moderated channel. + */ + AppInstanceUserArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DescribeChannelModeratedByAppInstanceUserResponse { + /** + * The moderated channel. + */ + Channel?: ChannelModeratedByAppInstanceUserSummary; + } + export interface DescribeChannelModeratorRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The ARN of the channel moderator. + */ + ChannelModeratorArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DescribeChannelModeratorResponse { + /** + * The details of the channel moderator. + */ + ChannelModerator?: ChannelModerator; + } + export interface DescribeChannelRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface DescribeChannelResponse { + /** + * The channel details. + */ + Channel?: Channel; + } + export interface DisassociatePhoneNumberFromUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: String; + /** + * The user ID. + */ + UserId: String; + } + export interface DisassociatePhoneNumberFromUserResponse { + } + export interface DisassociatePhoneNumbersFromVoiceConnectorGroupRequest { + /** + * The Amazon Chime Voice Connector group ID. + */ + VoiceConnectorGroupId: NonEmptyString; + /** + * List of phone numbers, in E.164 format. + */ + E164PhoneNumbers: E164PhoneNumberList; + } + export interface DisassociatePhoneNumbersFromVoiceConnectorGroupResponse { + /** + * If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages. + */ + PhoneNumberErrors?: PhoneNumberErrorList; + } + export interface DisassociatePhoneNumbersFromVoiceConnectorRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * List of phone numbers, in E.164 format. + */ + E164PhoneNumbers: E164PhoneNumberList; + } + export interface DisassociatePhoneNumbersFromVoiceConnectorResponse { + /** + * If the action fails for one or more of the phone numbers in the request, a list of the phone numbers is returned, along with error codes and error messages. + */ + PhoneNumberErrors?: PhoneNumberErrorList; + } + export interface DisassociateSigninDelegateGroupsFromAccountRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The sign-in delegate group names. + */ + GroupNames: NonEmptyStringList; + } + export interface DisassociateSigninDelegateGroupsFromAccountResponse { + } + export type E164PhoneNumber = string; + export type E164PhoneNumberList = E164PhoneNumber[]; + export type EmailAddress = string; + export type EmailStatus = "NotSent"|"Sent"|"Failed"|string; + export interface EmergencyCallingConfiguration { + /** + * The Dialed Number Identification Service (DNIS) emergency calling configuration details. + */ + DNIS?: DNISEmergencyCallingConfigurationList; + } + export type ErrorCode = "BadRequest"|"Conflict"|"Forbidden"|"NotFound"|"PreconditionFailed"|"ResourceLimitExceeded"|"ServiceFailure"|"AccessDenied"|"ServiceUnavailable"|"Throttled"|"Throttling"|"Unauthorized"|"Unprocessable"|"VoiceConnectorGroupAssociationsExist"|"PhoneNumberAssociationsExist"|string; + export interface EventsConfiguration { + /** + * The bot ID. + */ + BotId?: String; + /** + * HTTPS endpoint that allows a bot to receive outgoing events. + */ + OutboundEventsHTTPSEndpoint?: SensitiveString; + /** + * Lambda function ARN that allows a bot to receive outgoing events. + */ + LambdaFunctionArn?: SensitiveString; + } + export type ExternalMeetingIdType = string; + export type ExternalUserIdType = string; + export type FunctionArn = string; + export type GeoMatchLevel = "Country"|"AreaCode"|string; + export interface GeoMatchParams { + /** + * The country. + */ + Country: Country; + /** + * The area code. + */ + AreaCode: AreaCode; + } + export interface GetAccountRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + } + export interface GetAccountResponse { + /** + * The Amazon Chime account details. + */ + Account?: Account; + } + export interface GetAccountSettingsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + } + export interface GetAccountSettingsResponse { + /** + * The Amazon Chime account settings. + */ + AccountSettings?: AccountSettings; + } + export interface GetAppInstanceRetentionSettingsRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + } + export interface GetAppInstanceRetentionSettingsResponse { + /** + * The retention settings for the AppInstance. + */ + AppInstanceRetentionSettings?: AppInstanceRetentionSettings; + /** + * The timestamp representing the time at which the specified items are retained, in Epoch Seconds. + */ + InitiateDeletionTimestamp?: Timestamp; + } + export interface GetAppInstanceStreamingConfigurationsRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + } + export interface GetAppInstanceStreamingConfigurationsResponse { + /** + * The streaming settings. + */ + AppInstanceStreamingConfigurations?: AppInstanceStreamingConfigurationList; + } + export interface GetAttendeeRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The Amazon Chime SDK attendee ID. + */ + AttendeeId: GuidString; + } + export interface GetAttendeeResponse { + /** + * The Amazon Chime SDK attendee information. + */ + Attendee?: Attendee; + } + export interface GetBotRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The bot ID. + */ + BotId: NonEmptyString; + } + export interface GetBotResponse { + /** + * The chat bot details. + */ + Bot?: Bot; + } + export interface GetChannelMessageRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The ID of the message. + */ + MessageId: MessageId; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface GetChannelMessageResponse { + /** + * The details of and content in the message. + */ + ChannelMessage?: ChannelMessage; + } + export interface GetEventsConfigurationRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The bot ID. + */ + BotId: NonEmptyString; + } + export interface GetEventsConfigurationResponse { + /** + * The events configuration details. + */ + EventsConfiguration?: EventsConfiguration; + } + export interface GetGlobalSettingsResponse { + /** + * The Amazon Chime Business Calling settings. + */ + BusinessCalling?: BusinessCallingSettings; + /** + * The Amazon Chime Voice Connector settings. + */ + VoiceConnector?: VoiceConnectorSettings; + } + export interface GetMeetingRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + } + export interface GetMeetingResponse { + /** + * The Amazon Chime SDK meeting information. + */ + Meeting?: Meeting; + } + export interface GetMessagingSessionEndpointRequest { + } + export interface GetMessagingSessionEndpointResponse { + /** + * The endpoint returned in the response. + */ + Endpoint?: MessagingSessionEndpoint; + } + export interface GetPhoneNumberOrderRequest { + /** + * The ID for the phone number order. + */ + PhoneNumberOrderId: GuidString; + } + export interface GetPhoneNumberOrderResponse { + /** + * The phone number order details. + */ + PhoneNumberOrder?: PhoneNumberOrder; + } + export interface GetPhoneNumberRequest { + /** + * The phone number ID. + */ + PhoneNumberId: String; + } + export interface GetPhoneNumberResponse { + /** + * The phone number details. + */ + PhoneNumber?: PhoneNumber; + } + export interface GetPhoneNumberSettingsResponse { + /** + * The default outbound calling name for the account. + */ + CallingName?: CallingName; + /** + * The updated outbound calling name timestamp, in ISO 8601 format. + */ + CallingNameUpdatedTimestamp?: Iso8601Timestamp; + } + export interface GetProxySessionRequest { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId: NonEmptyString128; + /** + * The proxy session ID. + */ + ProxySessionId: NonEmptyString128; + } + export interface GetProxySessionResponse { + /** + * The proxy session details. + */ + ProxySession?: ProxySession; + } + export interface GetRetentionSettingsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + } + export interface GetRetentionSettingsResponse { + /** + * The retention settings. + */ + RetentionSettings?: RetentionSettings; + /** + * The timestamp representing the time at which the specified items are permanently deleted, in ISO 8601 format. + */ + InitiateDeletionTimestamp?: Iso8601Timestamp; + } + export interface GetRoomRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + } + export interface GetRoomResponse { + /** + * The room details. + */ + Room?: Room; + } + export interface GetSipMediaApplicationLoggingConfigurationRequest { + /** + * The SIP media application ID. + */ + SipMediaApplicationId: NonEmptyString; + } + export interface GetSipMediaApplicationLoggingConfigurationResponse { + /** + * The actual logging configuration. + */ + SipMediaApplicationLoggingConfiguration?: SipMediaApplicationLoggingConfiguration; + } + export interface GetSipMediaApplicationRequest { + /** + * The SIP media application ID. + */ + SipMediaApplicationId: NonEmptyString; + } + export interface GetSipMediaApplicationResponse { + /** + * The SIP media application details. + */ + SipMediaApplication?: SipMediaApplication; + } + export interface GetSipRuleRequest { + /** + * The SIP rule ID. + */ + SipRuleId: NonEmptyString; + } + export interface GetSipRuleResponse { + /** + * The SIP rule details. + */ + SipRule?: SipRule; + } + export interface GetUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The user ID. + */ + UserId: NonEmptyString; + } + export interface GetUserResponse { + /** + * The user details. + */ + User?: User; + } + export interface GetUserSettingsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: String; + /** + * The user ID. + */ + UserId: String; + } + export interface GetUserSettingsResponse { + /** + * The user settings. + */ + UserSettings?: UserSettings; + } + export interface GetVoiceConnectorEmergencyCallingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface GetVoiceConnectorEmergencyCallingConfigurationResponse { + /** + * The emergency calling configuration details. + */ + EmergencyCallingConfiguration?: EmergencyCallingConfiguration; + } + export interface GetVoiceConnectorGroupRequest { + /** + * The Amazon Chime Voice Connector group ID. + */ + VoiceConnectorGroupId: NonEmptyString; + } + export interface GetVoiceConnectorGroupResponse { + /** + * The Amazon Chime Voice Connector group details. + */ + VoiceConnectorGroup?: VoiceConnectorGroup; + } + export interface GetVoiceConnectorLoggingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface GetVoiceConnectorLoggingConfigurationResponse { + /** + * The logging configuration details. + */ + LoggingConfiguration?: LoggingConfiguration; + } + export interface GetVoiceConnectorOriginationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface GetVoiceConnectorOriginationResponse { + /** + * The origination setting details. + */ + Origination?: Origination; + } + export interface GetVoiceConnectorProxyRequest { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId: NonEmptyString128; + } + export interface GetVoiceConnectorProxyResponse { + /** + * The proxy configuration details. + */ + Proxy?: Proxy; + } + export interface GetVoiceConnectorRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface GetVoiceConnectorResponse { + /** + * The Amazon Chime Voice Connector details. + */ + VoiceConnector?: VoiceConnector; + } + export interface GetVoiceConnectorStreamingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface GetVoiceConnectorStreamingConfigurationResponse { + /** + * The streaming configuration details. + */ + StreamingConfiguration?: StreamingConfiguration; + } + export interface GetVoiceConnectorTerminationHealthRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface GetVoiceConnectorTerminationHealthResponse { + /** + * The termination health details. + */ + TerminationHealth?: TerminationHealth; + } + export interface GetVoiceConnectorTerminationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface GetVoiceConnectorTerminationResponse { + /** + * The termination setting details. + */ + Termination?: Termination; + } + export type GuidString = string; + export interface Identity { + /** + * The ARN in an Identity. + */ + Arn?: ChimeArn; + /** + * The name in an Identity. + */ + Name?: ResourceName; + } + export type Integer = number; + export interface Invite { + /** + * The invite ID. + */ + InviteId?: String; + /** + * The status of the invite. + */ + Status?: InviteStatus; + /** + * The email address to which the invite is sent. + */ + EmailAddress?: EmailAddress; + /** + * The status of the invite email. + */ + EmailStatus?: EmailStatus; + } + export type InviteList = Invite[]; + export type InviteStatus = "Pending"|"Accepted"|"Failed"|string; + export interface InviteUsersRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The user email addresses to which to send the email invitation. + */ + UserEmailList: UserEmailList; + /** + * The user type. + */ + UserType?: UserType; + } + export interface InviteUsersResponse { + /** + * The email invitation details. + */ + Invites?: InviteList; + } + export type Iso8601Timestamp = Date; + export type JoinTokenString = string; + export type License = "Basic"|"Plus"|"Pro"|"ProTrial"|string; + export type LicenseList = License[]; + export interface ListAccountsRequest { + /** + * Amazon Chime account name prefix with which to filter results. + */ + Name?: AccountName; + /** + * User email address with which to filter results. + */ + UserEmail?: EmailAddress; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + /** + * The maximum number of results to return in a single call. Defaults to 100. + */ + MaxResults?: ProfileServiceMaxResults; + } + export interface ListAccountsResponse { + /** + * List of Amazon Chime accounts and account details. + */ + Accounts?: AccountList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListAppInstanceAdminsRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + /** + * The maximum number of administrators that you want to return. + */ + MaxResults?: MaxResults; + /** + * The token returned from previous API requests until the number of administrators is reached. + */ + NextToken?: NextToken; + } + export interface ListAppInstanceAdminsResponse { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn?: ChimeArn; + /** + * The information for each administrator. + */ + AppInstanceAdmins?: AppInstanceAdminList; + /** + * The token returned from previous API requests until the number of administrators is reached. + */ + NextToken?: NextToken; + } + export interface ListAppInstanceUsersRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + /** + * The maximum number of requests that you want returned. + */ + MaxResults?: MaxResults; + /** + * The token passed by previous API calls until all requested users are returned. + */ + NextToken?: NextToken; + } + export interface ListAppInstanceUsersResponse { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn?: ChimeArn; + /** + * The information for each requested AppInstanceUser. + */ + AppInstanceUsers?: AppInstanceUserList; + /** + * The token passed by previous API calls until all requested users are returned. + */ + NextToken?: NextToken; + } + export interface ListAppInstancesRequest { + /** + * The maximum number of AppInstances that you want to return. + */ + MaxResults?: MaxResults; + /** + * The token passed by previous API requests until you reach the maximum number of AppInstances. + */ + NextToken?: NextToken; + } + export interface ListAppInstancesResponse { + /** + * The information for each AppInstance. + */ + AppInstances?: AppInstanceList; + /** + * The token passed by previous API requests until the maximum number of AppInstances is reached. + */ + NextToken?: NextToken; + } + export interface ListAttendeeTagsRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The Amazon Chime SDK attendee ID. + */ + AttendeeId: GuidString; + } + export interface ListAttendeeTagsResponse { + /** + * A list of tag key-value pairs. + */ + Tags?: TagList; + } + export interface ListAttendeesRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + } + export interface ListAttendeesResponse { + /** + * The Amazon Chime SDK attendee information. + */ + Attendees?: AttendeeList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListBotsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The maximum number of results to return in a single call. The default is 10. + */ + MaxResults?: ResultMax; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListBotsResponse { + /** + * List of bots and bot details. + */ + Bots?: BotList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListChannelBansRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The maximum number of bans that you want returned. + */ + MaxResults?: MaxResults; + /** + * The token passed by previous API calls until all requested bans are returned. + */ + NextToken?: NextToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface ListChannelBansResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The token passed by previous API calls until all requested bans are returned. + */ + NextToken?: NextToken; + /** + * The information for each requested ban. + */ + ChannelBans?: ChannelBanSummaryList; + } + export interface ListChannelMembershipsForAppInstanceUserRequest { + /** + * The ARN of the AppInstanceUsers + */ + AppInstanceUserArn?: ChimeArn; + /** + * The maximum number of users that you want returned. + */ + MaxResults?: MaxResults; + /** + * The token returned from previous API requests until the number of channel memberships is reached. + */ + NextToken?: NextToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface ListChannelMembershipsForAppInstanceUserResponse { + /** + * The token passed by previous API calls until all requested users are returned. + */ + ChannelMemberships?: ChannelMembershipForAppInstanceUserSummaryList; + /** + * The token passed by previous API calls until all requested users are returned. + */ + NextToken?: NextToken; + } + export interface ListChannelMembershipsRequest { + /** + * The maximum number of channel memberships that you want returned. + */ + ChannelArn: ChimeArn; + /** + * The membership type of a user, DEFAULT or HIDDEN. Default members are always returned as part of ListChannelMemberships. Hidden members are only returned if the type filter in ListChannelMemberships equals HIDDEN. Otherwise hidden members are not returned. + */ + Type?: ChannelMembershipType; + /** + * The maximum number of channel memberships that you want returned. + */ + MaxResults?: MaxResults; + /** + * The token passed by previous API calls until all requested channel memberships are returned. + */ + NextToken?: NextToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface ListChannelMembershipsResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The information for the requested channel memberships. + */ + ChannelMemberships?: ChannelMembershipSummaryList; + /** + * The token passed by previous API calls until all requested channel memberships are returned. + */ + NextToken?: NextToken; + } + export interface ListChannelMessagesRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The order in which you want messages sorted. Default is Descending, based on time created. + */ + SortOrder?: SortOrder; + /** + * The initial or starting time stamp for your requested messages. + */ + NotBefore?: Timestamp; + /** + * The final or ending time stamp for your requested messages. + */ + NotAfter?: Timestamp; + /** + * The maximum number of messages that you want returned. + */ + MaxResults?: MaxResults; + /** + * The token passed by previous API calls until all requested messages are returned. + */ + NextToken?: NextToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface ListChannelMessagesResponse { + /** + * The ARN of the channel containing the requested messages. + */ + ChannelArn?: ChimeArn; + /** + * The token passed by previous API calls until all requested messages are returned. + */ + NextToken?: NextToken; + /** + * The information about, and content of, each requested message. + */ + ChannelMessages?: ChannelMessageSummaryList; + } + export interface ListChannelModeratorsRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The maximum number of moderators that you want returned. + */ + MaxResults?: MaxResults; + /** + * The token passed by previous API calls until all requested moderators are returned. + */ + NextToken?: NextToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface ListChannelModeratorsResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The token passed by previous API calls until all requested moderators are returned. + */ + NextToken?: NextToken; + /** + * The information about and names of each moderator. + */ + ChannelModerators?: ChannelModeratorSummaryList; + } + export interface ListChannelsModeratedByAppInstanceUserRequest { + /** + * The ARN of the user in the moderated channel. + */ + AppInstanceUserArn?: ChimeArn; + /** + * The maximum number of channels in the request. + */ + MaxResults?: MaxResults; + /** + * The token returned from previous API requests until the number of channels moderated by the user is reached. + */ + NextToken?: NextToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface ListChannelsModeratedByAppInstanceUserResponse { + /** + * The moderated channels in the request. + */ + Channels?: ChannelModeratedByAppInstanceUserSummaryList; + /** + * The token returned from previous API requests until the number of channels moderated by the user is reached. + */ + NextToken?: NextToken; + } + export interface ListChannelsRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + /** + * The privacy setting. PUBLIC retrieves all the public channels. PRIVATE retrieves private channels. Only an AppInstanceAdmin can retrieve private channels. + */ + Privacy?: ChannelPrivacy; + /** + * The maximum number of channels that you want to return. + */ + MaxResults?: MaxResults; + /** + * The token passed by previous API calls until all requested channels are returned. + */ + NextToken?: NextToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface ListChannelsResponse { + /** + * The information about each channel. + */ + Channels?: ChannelSummaryList; + /** + * The token returned from previous API requests until the number of channels is reached. + */ + NextToken?: NextToken; + } + export interface ListMeetingTagsRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + } + export interface ListMeetingTagsResponse { + /** + * A list of tag key-value pairs. + */ + Tags?: TagList; + } + export interface ListMeetingsRequest { + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + } + export interface ListMeetingsResponse { + /** + * The Amazon Chime SDK meeting information. + */ + Meetings?: MeetingList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListPhoneNumberOrdersRequest { + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + } + export interface ListPhoneNumberOrdersResponse { + /** + * The phone number order details. + */ + PhoneNumberOrders?: PhoneNumberOrderList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListPhoneNumbersRequest { + /** + * The phone number status. + */ + Status?: PhoneNumberStatus; + /** + * The phone number product type. + */ + ProductType?: PhoneNumberProductType; + /** + * The filter to use to limit the number of results. + */ + FilterName?: PhoneNumberAssociationName; + /** + * The value to use for the filter. + */ + FilterValue?: String; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListPhoneNumbersResponse { + /** + * The phone number details. + */ + PhoneNumbers?: PhoneNumberList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListProxySessionsRequest { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId: NonEmptyString128; + /** + * The proxy session status. + */ + Status?: ProxySessionStatus; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: NextTokenString; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + } + export interface ListProxySessionsResponse { + /** + * The proxy session details. + */ + ProxySessions?: ProxySessions; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: NextTokenString; + } + export interface ListRoomMembershipsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListRoomMembershipsResponse { + /** + * The room membership details. + */ + RoomMemberships?: RoomMembershipList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListRoomsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The member ID (user ID or bot ID). + */ + MemberId?: String; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListRoomsResponse { + /** + * The room details. + */ + Rooms?: RoomList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListSipMediaApplicationsRequest { + /** + * The maximum number of results to return in a single call. Defaults to 100. + */ + MaxResults?: ResultMax; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: NextTokenString; + } + export interface ListSipMediaApplicationsResponse { + /** + * List of SIP media applications and application details. + */ + SipMediaApplications?: SipMediaApplicationList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: NextTokenString; + } + export interface ListSipRulesRequest { + /** + * The SIP media application ID. + */ + SipMediaApplicationId?: NonEmptyString; + /** + * The maximum number of results to return in a single call. Defaults to 100. + */ + MaxResults?: ResultMax; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: NextTokenString; + } + export interface ListSipRulesResponse { + /** + * List of SIP rules and rule details. + */ + SipRules?: SipRuleList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: NextTokenString; + } + export interface ListSupportedPhoneNumberCountriesRequest { + /** + * The phone number product type. + */ + ProductType: PhoneNumberProductType; + } + export interface ListSupportedPhoneNumberCountriesResponse { + /** + * The supported phone number countries. + */ + PhoneNumberCountries?: PhoneNumberCountriesList; + } + export interface ListTagsForResourceRequest { + /** + * The resource ARN. + */ + ResourceARN: Arn; + } + export interface ListTagsForResourceResponse { + /** + * A list of tag-key value pairs. + */ + Tags?: TagList; + } + export interface ListUsersRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * Optional. The user email address used to filter results. Maximum 1. + */ + UserEmail?: EmailAddress; + /** + * The user type. + */ + UserType?: UserType; + /** + * The maximum number of results to return in a single call. Defaults to 100. + */ + MaxResults?: ProfileServiceMaxResults; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListUsersResponse { + /** + * List of users and user details. + */ + Users?: UserList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListVoiceConnectorGroupsRequest { + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + } + export interface ListVoiceConnectorGroupsResponse { + /** + * The details of the Amazon Chime Voice Connector groups. + */ + VoiceConnectorGroups?: VoiceConnectorGroupList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface ListVoiceConnectorTerminationCredentialsRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + } + export interface ListVoiceConnectorTerminationCredentialsResponse { + /** + * A list of user names. + */ + Usernames?: SensitiveStringList; + } + export interface ListVoiceConnectorsRequest { + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: ResultMax; + } + export interface ListVoiceConnectorsResponse { + /** + * The details of the Amazon Chime Voice Connectors. + */ + VoiceConnectors?: VoiceConnectorList; + /** + * The token to use to retrieve the next page of results. + */ + NextToken?: String; + } + export interface LoggingConfiguration { + /** + * When true, enables SIP message logs for sending to Amazon CloudWatch Logs. + */ + EnableSIPLogs?: Boolean; + } + export interface LogoutUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The user ID. + */ + UserId: NonEmptyString; + } + export interface LogoutUserResponse { + } + export type MaxResults = number; + export interface MediaPlacement { + /** + * The audio host URL. + */ + AudioHostUrl?: UriType; + /** + * The audio fallback URL. + */ + AudioFallbackUrl?: UriType; + /** + * The screen data URL. + */ + ScreenDataUrl?: UriType; + /** + * The screen sharing URL. + */ + ScreenSharingUrl?: UriType; + /** + * The screen viewing URL. + */ + ScreenViewingUrl?: UriType; + /** + * The signaling URL. + */ + SignalingUrl?: UriType; + /** + * The turn control URL. + */ + TurnControlUrl?: UriType; + } + export interface Meeting { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId?: GuidString; + /** + * The external meeting ID. + */ + ExternalMeetingId?: ExternalMeetingIdType; + /** + * The media placement for the meeting. + */ + MediaPlacement?: MediaPlacement; + /** + * The Region in which you create the meeting. Available values: af-south-1, ap-northeast-1, ap-northeast-2, ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, eu-central-1, eu-north-1, eu-south-1, eu-west-1, eu-west-2, eu-west-3, sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2. + */ + MediaRegion?: String; + } + export type MeetingList = Meeting[]; + export interface MeetingNotificationConfiguration { + /** + * The SNS topic ARN. + */ + SnsTopicArn?: Arn; + /** + * The SQS queue ARN. + */ + SqsQueueArn?: Arn; + } + export type MeetingTagKeyList = TagKey[]; + export type MeetingTagList = Tag[]; + export interface Member { + /** + * The member ID (user ID or bot ID). + */ + MemberId?: NonEmptyString; + /** + * The member type. + */ + MemberType?: MemberType; + /** + * The member email address. + */ + Email?: SensitiveString; + /** + * The member name. + */ + FullName?: SensitiveString; + /** + * The Amazon Chime account ID. + */ + AccountId?: NonEmptyString; + } + export type MemberArns = ChimeArn[]; + export interface MemberError { + /** + * The member ID. + */ + MemberId?: NonEmptyString; + /** + * The error code. + */ + ErrorCode?: ErrorCode; + /** + * The error message. + */ + ErrorMessage?: String; + } + export type MemberErrorList = MemberError[]; + export type MemberType = "User"|"Bot"|"Webhook"|string; + export type Members = Identity[]; + export interface MembershipItem { + /** + * The member ID. + */ + MemberId?: NonEmptyString; + /** + * The member role. + */ + Role?: RoomMembershipRole; + } + export type MembershipItemList = MembershipItem[]; + export type MessageId = string; + export interface MessagingSessionEndpoint { + /** + * The endpoint to which you establish a websocket connection. + */ + Url?: UrlType; + } + export type Metadata = string; + export type NextToken = string; + export type NextTokenString = string; + export type NonEmptyContent = string; + export type NonEmptyResourceName = string; + export type NonEmptyString = string; + export type NonEmptyString128 = string; + export type NonEmptyStringList = String[]; + export type NonNullableBoolean = boolean; + export type NotificationTarget = "EventBridge"|"SNS"|"SQS"|string; + export type NullableBoolean = boolean; + export type NumberSelectionBehavior = "PreferSticky"|"AvoidSticky"|string; + export interface OrderedPhoneNumber { + /** + * The phone number, in E.164 format. + */ + E164PhoneNumber?: E164PhoneNumber; + /** + * The phone number status. + */ + Status?: OrderedPhoneNumberStatus; + } + export type OrderedPhoneNumberList = OrderedPhoneNumber[]; + export type OrderedPhoneNumberStatus = "Processing"|"Acquired"|"Failed"|string; + export interface Origination { + /** + * The call distribution properties defined for your SIP hosts. Valid range: Minimum value of 1. Maximum value of 20. + */ + Routes?: OriginationRouteList; + /** + * When origination settings are disabled, inbound calls are not enabled for your Amazon Chime Voice Connector. + */ + Disabled?: Boolean; + } + export interface OriginationRoute { + /** + * The FQDN or IP address to contact for origination traffic. + */ + Host?: String; + /** + * The designated origination route port. Defaults to 5060. + */ + Port?: Port; + /** + * The protocol to use for the origination route. Encryption-enabled Amazon Chime Voice Connectors use TCP protocol by default. + */ + Protocol?: OriginationRouteProtocol; + /** + * The priority associated with the host, with 1 being the highest priority. Higher priority hosts are attempted first. + */ + Priority?: OriginationRoutePriority; + /** + * The weight associated with the host. If hosts are equal in priority, calls are redistributed among them based on their relative weight. + */ + Weight?: OriginationRouteWeight; + } + export type OriginationRouteList = OriginationRoute[]; + export type OriginationRoutePriority = number; + export type OriginationRouteProtocol = "TCP"|"UDP"|string; + export type OriginationRouteWeight = number; + export interface Participant { + /** + * The participant's phone number. + */ + PhoneNumber?: E164PhoneNumber; + /** + * The participant's proxy phone number. + */ + ProxyPhoneNumber?: E164PhoneNumber; + } + export type ParticipantPhoneNumberList = E164PhoneNumber[]; + export type Participants = Participant[]; + export interface PhoneNumber { + /** + * The phone number ID. + */ + PhoneNumberId?: String; + /** + * The phone number, in E.164 format. + */ + E164PhoneNumber?: E164PhoneNumber; + /** + * The phone number country. Format: ISO 3166-1 alpha-2. + */ + Country?: Alpha2CountryCode; + /** + * The phone number type. + */ + Type?: PhoneNumberType; + /** + * The phone number product type. + */ + ProductType?: PhoneNumberProductType; + /** + * The phone number status. + */ + Status?: PhoneNumberStatus; + /** + * The phone number capabilities. + */ + Capabilities?: PhoneNumberCapabilities; + /** + * The phone number associations. + */ + Associations?: PhoneNumberAssociationList; + /** + * The outbound calling name associated with the phone number. + */ + CallingName?: CallingName; + /** + * The outbound calling name status. + */ + CallingNameStatus?: CallingNameStatus; + /** + * The phone number creation timestamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The updated phone number timestamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + /** + * The deleted phone number timestamp, in ISO 8601 format. + */ + DeletionTimestamp?: Iso8601Timestamp; + } + export interface PhoneNumberAssociation { + /** + * Contains the ID for the entity specified in Name. + */ + Value?: String; + /** + * Defines the association with an Amazon Chime account ID, user ID, Amazon Chime Voice Connector ID, or Amazon Chime Voice Connector group ID. + */ + Name?: PhoneNumberAssociationName; + /** + * The timestamp of the phone number association, in ISO 8601 format. + */ + AssociatedTimestamp?: Iso8601Timestamp; + } + export type PhoneNumberAssociationList = PhoneNumberAssociation[]; + export type PhoneNumberAssociationName = "AccountId"|"UserId"|"VoiceConnectorId"|"VoiceConnectorGroupId"|"SipRuleId"|string; + export interface PhoneNumberCapabilities { + /** + * Allows or denies inbound calling for the specified phone number. + */ + InboundCall?: NullableBoolean; + /** + * Allows or denies outbound calling for the specified phone number. + */ + OutboundCall?: NullableBoolean; + /** + * Allows or denies inbound SMS messaging for the specified phone number. + */ + InboundSMS?: NullableBoolean; + /** + * Allows or denies outbound SMS messaging for the specified phone number. + */ + OutboundSMS?: NullableBoolean; + /** + * Allows or denies inbound MMS messaging for the specified phone number. + */ + InboundMMS?: NullableBoolean; + /** + * Allows or denies outbound MMS messaging for the specified phone number. + */ + OutboundMMS?: NullableBoolean; + } + export type PhoneNumberCountriesList = PhoneNumberCountry[]; + export interface PhoneNumberCountry { + /** + * The phone number country code. Format: ISO 3166-1 alpha-2. + */ + CountryCode?: Alpha2CountryCode; + /** + * The supported phone number types. + */ + SupportedPhoneNumberTypes?: PhoneNumberTypeList; + } + export interface PhoneNumberError { + /** + * The phone number ID for which the action failed. + */ + PhoneNumberId?: NonEmptyString; + /** + * The error code. + */ + ErrorCode?: ErrorCode; + /** + * The error message. + */ + ErrorMessage?: String; + } + export type PhoneNumberErrorList = PhoneNumberError[]; + export type PhoneNumberList = PhoneNumber[]; + export type PhoneNumberMaxResults = number; + export interface PhoneNumberOrder { + /** + * The phone number order ID. + */ + PhoneNumberOrderId?: GuidString; + /** + * The phone number order product type. + */ + ProductType?: PhoneNumberProductType; + /** + * The status of the phone number order. + */ + Status?: PhoneNumberOrderStatus; + /** + * The ordered phone number details, such as the phone number in E.164 format and the phone number status. + */ + OrderedPhoneNumbers?: OrderedPhoneNumberList; + /** + * The phone number order creation time stamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The updated phone number order time stamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + } + export type PhoneNumberOrderList = PhoneNumberOrder[]; + export type PhoneNumberOrderStatus = "Processing"|"Successful"|"Failed"|"Partial"|string; + export type PhoneNumberProductType = "BusinessCalling"|"VoiceConnector"|"SipMediaApplicationDialIn"|string; + export type PhoneNumberStatus = "AcquireInProgress"|"AcquireFailed"|"Unassigned"|"Assigned"|"ReleaseInProgress"|"DeleteInProgress"|"ReleaseFailed"|"DeleteFailed"|string; + export type PhoneNumberType = "Local"|"TollFree"|string; + export type PhoneNumberTypeList = PhoneNumberType[]; + export type Port = number; + export type PositiveInteger = number; + export type ProfileServiceMaxResults = number; + export interface Proxy { + /** + * The default number of minutes allowed for proxy sessions. + */ + DefaultSessionExpiryMinutes?: Integer; + /** + * When true, stops proxy sessions from being created on the specified Amazon Chime Voice Connector. + */ + Disabled?: Boolean; + /** + * The phone number to route calls to after a proxy session expires. + */ + FallBackPhoneNumber?: E164PhoneNumber; + /** + * The countries for proxy phone numbers to be selected from. + */ + PhoneNumberCountries?: StringList; + } + export interface ProxySession { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId?: NonEmptyString128; + /** + * The proxy session ID. + */ + ProxySessionId?: NonEmptyString128; + /** + * The name of the proxy session. + */ + Name?: String128; + /** + * The status of the proxy session. + */ + Status?: ProxySessionStatus; + /** + * The number of minutes allowed for the proxy session. + */ + ExpiryMinutes?: PositiveInteger; + /** + * The proxy session capabilities. + */ + Capabilities?: CapabilityList; + /** + * The created time stamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The updated time stamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + /** + * The ended time stamp, in ISO 8601 format. + */ + EndedTimestamp?: Iso8601Timestamp; + /** + * The proxy session participants. + */ + Participants?: Participants; + /** + * The preference for proxy phone number reuse, or stickiness, between the same participants across sessions. + */ + NumberSelectionBehavior?: NumberSelectionBehavior; + /** + * The preference for matching the country or area code of the proxy phone number with that of the first participant. + */ + GeoMatchLevel?: GeoMatchLevel; + /** + * The country and area code for the proxy phone number. + */ + GeoMatchParams?: GeoMatchParams; + } + export type ProxySessionNameString = string; + export type ProxySessionStatus = "Open"|"InProgress"|"Closed"|string; + export type ProxySessions = ProxySession[]; + export interface PutAppInstanceRetentionSettingsRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + /** + * The time in days to retain data. Data type: number. + */ + AppInstanceRetentionSettings: AppInstanceRetentionSettings; + } + export interface PutAppInstanceRetentionSettingsResponse { + /** + * The time in days to retain data. Data type: number. + */ + AppInstanceRetentionSettings?: AppInstanceRetentionSettings; + /** + * The time at which the API deletes data. + */ + InitiateDeletionTimestamp?: Timestamp; + } + export interface PutAppInstanceStreamingConfigurationsRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + /** + * The streaming configurations set for an AppInstance. + */ + AppInstanceStreamingConfigurations: AppInstanceStreamingConfigurationList; + } + export interface PutAppInstanceStreamingConfigurationsResponse { + /** + * The streaming configurations of an AppInstance. + */ + AppInstanceStreamingConfigurations?: AppInstanceStreamingConfigurationList; + } + export interface PutEventsConfigurationRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The bot ID. + */ + BotId: NonEmptyString; + /** + * HTTPS endpoint that allows the bot to receive outgoing events. + */ + OutboundEventsHTTPSEndpoint?: SensitiveString; + /** + * Lambda function ARN that allows the bot to receive outgoing events. + */ + LambdaFunctionArn?: SensitiveString; + } + export interface PutEventsConfigurationResponse { + EventsConfiguration?: EventsConfiguration; + } + export interface PutRetentionSettingsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The retention settings. + */ + RetentionSettings: RetentionSettings; + } + export interface PutRetentionSettingsResponse { + /** + * The retention settings. + */ + RetentionSettings?: RetentionSettings; + /** + * The timestamp representing the time at which the specified items are permanently deleted, in ISO 8601 format. + */ + InitiateDeletionTimestamp?: Iso8601Timestamp; + } + export interface PutSipMediaApplicationLoggingConfigurationRequest { + /** + * The SIP media application ID. + */ + SipMediaApplicationId: NonEmptyString; + /** + * The actual logging configuration. + */ + SipMediaApplicationLoggingConfiguration?: SipMediaApplicationLoggingConfiguration; + } + export interface PutSipMediaApplicationLoggingConfigurationResponse { + SipMediaApplicationLoggingConfiguration?: SipMediaApplicationLoggingConfiguration; + } + export interface PutVoiceConnectorEmergencyCallingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The emergency calling configuration details. + */ + EmergencyCallingConfiguration: EmergencyCallingConfiguration; + } + export interface PutVoiceConnectorEmergencyCallingConfigurationResponse { + /** + * The emergency calling configuration details. + */ + EmergencyCallingConfiguration?: EmergencyCallingConfiguration; + } + export interface PutVoiceConnectorLoggingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The logging configuration details to add. + */ + LoggingConfiguration: LoggingConfiguration; + } + export interface PutVoiceConnectorLoggingConfigurationResponse { + /** + * The updated logging configuration details. + */ + LoggingConfiguration?: LoggingConfiguration; + } + export interface PutVoiceConnectorOriginationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The origination setting details to add. + */ + Origination: Origination; + } + export interface PutVoiceConnectorOriginationResponse { + /** + * The updated origination setting details. + */ + Origination?: Origination; + } + export interface PutVoiceConnectorProxyRequest { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId: NonEmptyString128; + /** + * The default number of minutes allowed for proxy sessions. + */ + DefaultSessionExpiryMinutes: Integer; + /** + * The countries for proxy phone numbers to be selected from. + */ + PhoneNumberPoolCountries: CountryList; + /** + * The phone number to route calls to after a proxy session expires. + */ + FallBackPhoneNumber?: E164PhoneNumber; + /** + * When true, stops proxy sessions from being created on the specified Amazon Chime Voice Connector. + */ + Disabled?: Boolean; + } + export interface PutVoiceConnectorProxyResponse { + /** + * The proxy configuration details. + */ + Proxy?: Proxy; + } + export interface PutVoiceConnectorStreamingConfigurationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The streaming configuration details to add. + */ + StreamingConfiguration: StreamingConfiguration; + } + export interface PutVoiceConnectorStreamingConfigurationResponse { + /** + * The updated streaming configuration details. + */ + StreamingConfiguration?: StreamingConfiguration; + } + export interface PutVoiceConnectorTerminationCredentialsRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The termination SIP credentials. + */ + Credentials?: CredentialList; + } + export interface PutVoiceConnectorTerminationRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The termination setting details to add. + */ + Termination: Termination; + } + export interface PutVoiceConnectorTerminationResponse { + /** + * The updated termination setting details. + */ + Termination?: Termination; + } + export interface RedactChannelMessageRequest { + /** + * The ARN of the channel containing the messages that you want to redact. + */ + ChannelArn: ChimeArn; + /** + * The ID of the message being redacted. + */ + MessageId: MessageId; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface RedactChannelMessageResponse { + /** + * The ARN of the channel containing the messages that you want to redact. + */ + ChannelArn?: ChimeArn; + /** + * The ID of the message being redacted. + */ + MessageId?: MessageId; + } + export interface RedactConversationMessageRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The conversation ID. + */ + ConversationId: NonEmptyString; + /** + * The message ID. + */ + MessageId: NonEmptyString; + } + export interface RedactConversationMessageResponse { + } + export interface RedactRoomMessageRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + /** + * The message ID. + */ + MessageId: NonEmptyString; + } + export interface RedactRoomMessageResponse { + } + export interface RegenerateSecurityTokenRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The bot ID. + */ + BotId: NonEmptyString; + } + export interface RegenerateSecurityTokenResponse { + Bot?: Bot; + } + export type RegistrationStatus = "Unregistered"|"Registered"|"Suspended"|string; + export interface ResetPersonalPINRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The user ID. + */ + UserId: NonEmptyString; + } + export interface ResetPersonalPINResponse { + /** + * The user details and new personal meeting PIN. + */ + User?: User; + } + export type ResourceName = string; + export interface RestorePhoneNumberRequest { + /** + * The phone number. + */ + PhoneNumberId: NonEmptyString; + } + export interface RestorePhoneNumberResponse { + /** + * The phone number details. + */ + PhoneNumber?: PhoneNumber; + } + export type ResultMax = number; + export type RetentionDays = number; + export interface RetentionSettings { + /** + * The chat room retention settings. + */ + RoomRetentionSettings?: RoomRetentionSettings; + /** + * The chat conversation retention settings. + */ + ConversationRetentionSettings?: ConversationRetentionSettings; + } + export interface Room { + /** + * The room ID. + */ + RoomId?: NonEmptyString; + /** + * The room name. + */ + Name?: SensitiveString; + /** + * The Amazon Chime account ID. + */ + AccountId?: NonEmptyString; + /** + * The identifier of the room creator. + */ + CreatedBy?: NonEmptyString; + /** + * The room creation timestamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The room update timestamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + } + export type RoomList = Room[]; + export interface RoomMembership { + /** + * The room ID. + */ + RoomId?: NonEmptyString; + Member?: Member; + /** + * The membership role. + */ + Role?: RoomMembershipRole; + /** + * The identifier of the user that invited the room member. + */ + InvitedBy?: NonEmptyString; + /** + * The room membership update timestamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + } + export type RoomMembershipList = RoomMembership[]; + export type RoomMembershipRole = "Administrator"|"Member"|string; + export interface RoomRetentionSettings { + /** + * The number of days for which to retain chat-room messages. + */ + RetentionDays?: RetentionDays; + } + export type SMAUpdateCallArgumentsMap = {[key: string]: SensitiveString}; + export interface SearchAvailablePhoneNumbersRequest { + /** + * The area code used to filter results. Only applies to the US. + */ + AreaCode?: String; + /** + * The city used to filter results. Only applies to the US. + */ + City?: String; + /** + * The country used to filter results. Defaults to the US Format: ISO 3166-1 alpha-2. + */ + Country?: Alpha2CountryCode; + /** + * The state used to filter results. Required only if you provide City. Only applies to the US. + */ + State?: String; + /** + * The toll-free prefix that you use to filter results. Only applies to the US. + */ + TollFreePrefix?: TollFreePrefix; + /** + * The phone number type used to filter results. Required for non-US numbers. + */ + PhoneNumberType?: PhoneNumberType; + /** + * The maximum number of results to return in a single call. + */ + MaxResults?: PhoneNumberMaxResults; + /** + * The token used to retrieve the next page of results. + */ + NextToken?: String; + } + export interface SearchAvailablePhoneNumbersResponse { + /** + * List of phone numbers, in E.164 format. + */ + E164PhoneNumbers?: E164PhoneNumberList; + /** + * The token used to retrieve the next page of search results. + */ + NextToken?: String; + } + export interface SendChannelMessageRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The content of the message. + */ + Content: NonEmptyContent; + /** + * The type of message, STANDARD or CONTROL. + */ + Type: ChannelMessageType; + /** + * Boolean that controls whether the message is persisted on the back end. Required. + */ + Persistence: ChannelMessagePersistenceType; + /** + * The optional metadata for each message. + */ + Metadata?: Metadata; + /** + * The Idempotency token for each client request. + */ + ClientRequestToken: ClientRequestToken; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface SendChannelMessageResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The ID string assigned to each message. + */ + MessageId?: MessageId; + } + export type SensitiveString = string; + export type SensitiveStringList = SensitiveString[]; + export interface SigninDelegateGroup { + /** + * The group name. + */ + GroupName?: NonEmptyString; + } + export type SigninDelegateGroupList = SigninDelegateGroup[]; + export type SipApplicationPriority = number; + export interface SipMediaApplication { + /** + * The SIP media application ID. + */ + SipMediaApplicationId?: NonEmptyString; + /** + * The AWS Region in which the SIP media application is created. + */ + AwsRegion?: String; + /** + * The name of the SIP media application. + */ + Name?: SipMediaApplicationName; + /** + * List of endpoints for SIP media application. Currently, only one endpoint per SIP media application is permitted. + */ + Endpoints?: SipMediaApplicationEndpointList; + /** + * The SIP media application creation timestamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The SIP media application updated timestamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + } + export interface SipMediaApplicationCall { + /** + * The transaction ID of a call. + */ + TransactionId?: GuidString; + } + export interface SipMediaApplicationEndpoint { + /** + * Valid Amazon Resource Name (ARN) of the Lambda function. The function must be created in the same AWS Region as the SIP media application. + */ + LambdaArn?: FunctionArn; + } + export type SipMediaApplicationEndpointList = SipMediaApplicationEndpoint[]; + export type SipMediaApplicationList = SipMediaApplication[]; + export interface SipMediaApplicationLoggingConfiguration { + /** + * Enables application message logs for the SIP media application. + */ + EnableSipMediaApplicationMessageLogs?: Boolean; + } + export type SipMediaApplicationName = string; + export interface SipRule { + /** + * The SIP rule ID. + */ + SipRuleId?: NonEmptyString; + /** + * The name of the SIP rule. + */ + Name?: SipRuleName; + /** + * Indicates whether the SIP rule is enabled or disabled. You must disable a rule before you can delete it. + */ + Disabled?: Boolean; + /** + * The type of trigger assigned to the SIP rule in TriggerValue, currently RequestUriHostname or ToPhoneNumber. + */ + TriggerType?: SipRuleTriggerType; + /** + * If TriggerType is RequestUriHostname, then the value can be the outbound host name of the Amazon Chime Voice Connector. If TriggerType is ToPhoneNumber, then the value can be a customer-owned phone number in E164 format. SipRule is triggered when a SIP rule requests host name or ToPhoneNumber matches in the incoming SIP request. + */ + TriggerValue?: NonEmptyString; + /** + * Target SIP media application and other details, such as priority and AWS Region, to be specified in the SIP rule. Only one SIP rule per AWS Region can be provided. + */ + TargetApplications?: SipRuleTargetApplicationList; + /** + * The time at which the SIP rule was created, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The time at which the SIP rule was last updated, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + } + export type SipRuleList = SipRule[]; + export type SipRuleName = string; + export interface SipRuleTargetApplication { + /** + * The SIP media application ID. + */ + SipMediaApplicationId?: NonEmptyString; + /** + * Priority of the SIP media application in the target list. + */ + Priority?: SipApplicationPriority; + /** + * The AWS Region of the target application. + */ + AwsRegion?: String; + } + export type SipRuleTargetApplicationList = SipRuleTargetApplication[]; + export type SipRuleTriggerType = "ToPhoneNumber"|"RequestUriHostname"|string; + export type SortOrder = "ASCENDING"|"DESCENDING"|string; + export interface StreamingConfiguration { + /** + * The retention period, in hours, for the Amazon Kinesis data. + */ + DataRetentionInHours: DataRetentionInHours; + /** + * When true, media streaming to Amazon Kinesis is turned off. + */ + Disabled?: Boolean; + /** + * The streaming notification targets. + */ + StreamingNotificationTargets?: StreamingNotificationTargetList; + } + export interface StreamingNotificationTarget { + /** + * The streaming notification target. + */ + NotificationTarget: NotificationTarget; + } + export type StreamingNotificationTargetList = StreamingNotificationTarget[]; + export type String = string; + export type String128 = string; + export type StringList = String[]; + export interface Tag { + /** + * The key of the tag. + */ + Key: TagKey; + /** + * The value of the tag. + */ + Value: TagValue; + } + export interface TagAttendeeRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The Amazon Chime SDK attendee ID. + */ + AttendeeId: GuidString; + /** + * The tag key-value pairs. + */ + Tags: AttendeeTagList; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagMeetingRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The tag key-value pairs. + */ + Tags: MeetingTagList; + } + export interface TagResourceRequest { + /** + * The resource ARN. + */ + ResourceARN: Arn; + /** + * The tag key-value pairs. + */ + Tags: TagList; + } + export type TagValue = string; + export interface TelephonySettings { + /** + * Allows or denies inbound calling. + */ + InboundCalling: Boolean; + /** + * Allows or denies outbound calling. + */ + OutboundCalling: Boolean; + /** + * Allows or denies SMS messaging. + */ + SMS: Boolean; + } + export interface Termination { + /** + * The limit on calls per second. Max value based on account service quota. Default value of 1. + */ + CpsLimit?: CpsLimit; + /** + * The default caller ID phone number. + */ + DefaultPhoneNumber?: E164PhoneNumber; + /** + * The countries to which calls are allowed, in ISO 3166-1 alpha-2 format. Required. + */ + CallingRegions?: CallingRegionList; + /** + * The IP addresses allowed to make calls, in CIDR format. Required. + */ + CidrAllowedList?: StringList; + /** + * When termination settings are disabled, outbound calls can not be made. + */ + Disabled?: Boolean; + } + export interface TerminationHealth { + /** + * The timestamp, in ISO 8601 format. + */ + Timestamp?: Iso8601Timestamp; + /** + * The source IP address. + */ + Source?: String; + } + export type Timestamp = Date; + export type TollFreePrefix = string; + export interface UntagAttendeeRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The Amazon Chime SDK attendee ID. + */ + AttendeeId: GuidString; + /** + * The tag keys. + */ + TagKeys: AttendeeTagKeyList; + } + export interface UntagMeetingRequest { + /** + * The Amazon Chime SDK meeting ID. + */ + MeetingId: GuidString; + /** + * The tag keys. + */ + TagKeys: MeetingTagKeyList; + } + export interface UntagResourceRequest { + /** + * The resource ARN. + */ + ResourceARN: Arn; + /** + * The tag keys. + */ + TagKeys: TagKeyList; + } + export interface UpdateAccountRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The new name for the specified Amazon Chime account. + */ + Name?: AccountName; + /** + * The default license applied when you add users to an Amazon Chime account. + */ + DefaultLicense?: License; + } + export interface UpdateAccountResponse { + /** + * The updated Amazon Chime account details. + */ + Account?: Account; + } + export interface UpdateAccountSettingsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The Amazon Chime account settings to update. + */ + AccountSettings: AccountSettings; + } + export interface UpdateAccountSettingsResponse { + } + export interface UpdateAppInstanceRequest { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn: ChimeArn; + /** + * The name that you want to change. + */ + Name: NonEmptyResourceName; + /** + * The metadata that you want to change. + */ + Metadata?: Metadata; + } + export interface UpdateAppInstanceResponse { + /** + * The ARN of the AppInstance. + */ + AppInstanceArn?: ChimeArn; + } + export interface UpdateAppInstanceUserRequest { + /** + * The ARN of the AppInstanceUser. + */ + AppInstanceUserArn: ChimeArn; + /** + * The name of the AppInstanceUser. + */ + Name: UserName; + /** + * The metadata of the AppInstanceUser. + */ + Metadata?: Metadata; + } + export interface UpdateAppInstanceUserResponse { + /** + * The ARN of the AppInstanceUser. + */ + AppInstanceUserArn?: ChimeArn; + } + export interface UpdateBotRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The bot ID. + */ + BotId: NonEmptyString; + /** + * When true, stops the specified bot from running in your account. + */ + Disabled?: NullableBoolean; + } + export interface UpdateBotResponse { + /** + * The updated bot details. + */ + Bot?: Bot; + } + export interface UpdateChannelMessageRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The ID string of the message being updated. + */ + MessageId: MessageId; + /** + * The content of the message being updated. + */ + Content?: Content; + /** + * The metadata of the message being updated. + */ + Metadata?: Metadata; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface UpdateChannelMessageResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + /** + * The ID string of the message being updated. + */ + MessageId?: MessageId; + } + export interface UpdateChannelReadMarkerRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface UpdateChannelReadMarkerResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + } + export interface UpdateChannelRequest { + /** + * The ARN of the channel. + */ + ChannelArn: ChimeArn; + /** + * The name of the channel. + */ + Name: NonEmptyResourceName; + /** + * The mode of the update request. + */ + Mode: ChannelMode; + /** + * The metadata for the update request. + */ + Metadata?: Metadata; + /** + * The AppInstanceUserArn of the user that makes the API call. + */ + ChimeBearer?: ChimeArn; + } + export interface UpdateChannelResponse { + /** + * The ARN of the channel. + */ + ChannelArn?: ChimeArn; + } + export interface UpdateGlobalSettingsRequest { + /** + * The Amazon Chime Business Calling settings. + */ + BusinessCalling: BusinessCallingSettings; + /** + * The Amazon Chime Voice Connector settings. + */ + VoiceConnector: VoiceConnectorSettings; + } + export interface UpdatePhoneNumberRequest { + /** + * The phone number ID. + */ + PhoneNumberId: String; + /** + * The product type. + */ + ProductType?: PhoneNumberProductType; + /** + * The outbound calling name associated with the phone number. + */ + CallingName?: CallingName; + } + export interface UpdatePhoneNumberRequestItem { + /** + * The phone number ID to update. + */ + PhoneNumberId: NonEmptyString; + /** + * The product type to update. + */ + ProductType?: PhoneNumberProductType; + /** + * The outbound calling name to update. + */ + CallingName?: CallingName; + } + export type UpdatePhoneNumberRequestItemList = UpdatePhoneNumberRequestItem[]; + export interface UpdatePhoneNumberResponse { + /** + * The updated phone number details. + */ + PhoneNumber?: PhoneNumber; + } + export interface UpdatePhoneNumberSettingsRequest { + /** + * The default outbound calling name for the account. + */ + CallingName: CallingName; + } + export interface UpdateProxySessionRequest { + /** + * The Amazon Chime voice connector ID. + */ + VoiceConnectorId: NonEmptyString128; + /** + * The proxy session ID. + */ + ProxySessionId: NonEmptyString128; + /** + * The proxy session capabilities. + */ + Capabilities: CapabilityList; + /** + * The number of minutes allowed for the proxy session. + */ + ExpiryMinutes?: PositiveInteger; + } + export interface UpdateProxySessionResponse { + /** + * The proxy session details. + */ + ProxySession?: ProxySession; + } + export interface UpdateRoomMembershipRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + /** + * The member ID. + */ + MemberId: NonEmptyString; + /** + * The role of the member. + */ + Role?: RoomMembershipRole; + } + export interface UpdateRoomMembershipResponse { + /** + * The room membership details. + */ + RoomMembership?: RoomMembership; + } + export interface UpdateRoomRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The room ID. + */ + RoomId: NonEmptyString; + /** + * The room name. + */ + Name?: SensitiveString; + } + export interface UpdateRoomResponse { + /** + * The room details. + */ + Room?: Room; + } + export interface UpdateSipMediaApplicationCallRequest { + /** + * The ID of the SIP media application handling the call. + */ + SipMediaApplicationId: NonEmptyString; + /** + * The ID of the call transaction. + */ + TransactionId: NonEmptyString; + /** + * Arguments made available to the Lambda function as part of the CALL_UPDATE_REQUESTED event. Can contain 0-20 key-value pairs. + */ + Arguments: SMAUpdateCallArgumentsMap; + } + export interface UpdateSipMediaApplicationCallResponse { + SipMediaApplicationCall?: SipMediaApplicationCall; + } + export interface UpdateSipMediaApplicationRequest { + /** + * The SIP media application ID. + */ + SipMediaApplicationId: NonEmptyString; + /** + * The new name for the specified SIP media application. + */ + Name?: SipMediaApplicationName; + /** + * The new set of endpoints for the specified SIP media application. + */ + Endpoints?: SipMediaApplicationEndpointList; + } + export interface UpdateSipMediaApplicationResponse { + /** + * The updated SIP media application details. + */ + SipMediaApplication?: SipMediaApplication; + } + export interface UpdateSipRuleRequest { + /** + * The SIP rule ID. + */ + SipRuleId: NonEmptyString; + /** + * The new name for the specified SIP rule. + */ + Name: SipRuleName; + /** + * The new value specified to indicate whether the rule is disabled. + */ + Disabled?: NullableBoolean; + /** + * The new value of the list of target applications. + */ + TargetApplications?: SipRuleTargetApplicationList; + } + export interface UpdateSipRuleResponse { + /** + * Updated SIP rule details. + */ + SipRule?: SipRule; + } + export interface UpdateUserRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: NonEmptyString; + /** + * The user ID. + */ + UserId: NonEmptyString; + /** + * The user license type to update. This must be a supported license type for the Amazon Chime account that the user belongs to. + */ + LicenseType?: License; + /** + * The user type. + */ + UserType?: UserType; + /** + * The Alexa for Business metadata. + */ + AlexaForBusinessMetadata?: AlexaForBusinessMetadata; + } + export interface UpdateUserRequestItem { + /** + * The user ID. + */ + UserId: NonEmptyString; + /** + * The user license type. + */ + LicenseType?: License; + /** + * The user type. + */ + UserType?: UserType; + /** + * The Alexa for Business metadata. + */ + AlexaForBusinessMetadata?: AlexaForBusinessMetadata; + } + export type UpdateUserRequestItemList = UpdateUserRequestItem[]; + export interface UpdateUserResponse { + /** + * The updated user details. + */ + User?: User; + } + export interface UpdateUserSettingsRequest { + /** + * The Amazon Chime account ID. + */ + AccountId: String; + /** + * The user ID. + */ + UserId: String; + /** + * The user settings to update. + */ + UserSettings: UserSettings; + } + export interface UpdateVoiceConnectorGroupRequest { + /** + * The Amazon Chime Voice Connector group ID. + */ + VoiceConnectorGroupId: NonEmptyString; + /** + * The name of the Amazon Chime Voice Connector group. + */ + Name: VoiceConnectorGroupName; + /** + * The VoiceConnectorItems to associate with the group. + */ + VoiceConnectorItems: VoiceConnectorItemList; + } + export interface UpdateVoiceConnectorGroupResponse { + /** + * The updated Amazon Chime Voice Connector group details. + */ + VoiceConnectorGroup?: VoiceConnectorGroup; + } + export interface UpdateVoiceConnectorRequest { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The name of the Amazon Chime Voice Connector. + */ + Name: VoiceConnectorName; + /** + * When enabled, requires encryption for the Amazon Chime Voice Connector. + */ + RequireEncryption: Boolean; + } + export interface UpdateVoiceConnectorResponse { + /** + * The updated Amazon Chime Voice Connector details. + */ + VoiceConnector?: VoiceConnector; + } + export type UriType = string; + export type UrlType = string; + export interface User { + /** + * The user ID. + */ + UserId: String; + /** + * The Amazon Chime account ID. + */ + AccountId?: String; + /** + * The primary email address of the user. + */ + PrimaryEmail?: EmailAddress; + /** + * The primary phone number associated with the user. + */ + PrimaryProvisionedNumber?: SensitiveString; + /** + * The display name of the user. + */ + DisplayName?: SensitiveString; + /** + * The license type for the user. + */ + LicenseType?: License; + /** + * The user type. + */ + UserType?: UserType; + /** + * The user registration status. + */ + UserRegistrationStatus?: RegistrationStatus; + /** + * The user invite status. + */ + UserInvitationStatus?: InviteStatus; + /** + * Date and time when the user is registered, in ISO 8601 format. + */ + RegisteredOn?: Iso8601Timestamp; + /** + * Date and time when the user is invited to the Amazon Chime account, in ISO 8601 format. + */ + InvitedOn?: Iso8601Timestamp; + /** + * The Alexa for Business metadata. + */ + AlexaForBusinessMetadata?: AlexaForBusinessMetadata; + /** + * The user's personal meeting PIN. + */ + PersonalPIN?: String; + } + export type UserEmailList = EmailAddress[]; + export interface UserError { + /** + * The user ID for which the action failed. + */ + UserId?: NonEmptyString; + /** + * The error code. + */ + ErrorCode?: ErrorCode; + /** + * The error message. + */ + ErrorMessage?: String; + } + export type UserErrorList = UserError[]; + export type UserId = string; + export type UserIdList = NonEmptyString[]; + export type UserList = User[]; + export type UserName = string; + export interface UserSettings { + /** + * The telephony settings associated with the user. + */ + Telephony: TelephonySettings; + } + export type UserType = "PrivateUser"|"SharedDevice"|string; + export interface VoiceConnector { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId?: NonEmptyString; + /** + * The AWS Region in which the Amazon Chime Voice Connector is created. Default: us-east-1. + */ + AwsRegion?: VoiceConnectorAwsRegion; + /** + * The name of the Amazon Chime Voice Connector. + */ + Name?: VoiceConnectorName; + /** + * The outbound host name for the Amazon Chime Voice Connector. + */ + OutboundHostName?: String; + /** + * Designates whether encryption is required for the Amazon Chime Voice Connector. + */ + RequireEncryption?: Boolean; + /** + * The Amazon Chime Voice Connector creation timestamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The updated Amazon Chime Voice Connector timestamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + } + export type VoiceConnectorAwsRegion = "us-east-1"|"us-west-2"|string; + export interface VoiceConnectorGroup { + /** + * The Amazon Chime Voice Connector group ID. + */ + VoiceConnectorGroupId?: NonEmptyString; + /** + * The name of the Amazon Chime Voice Connector group. + */ + Name?: VoiceConnectorGroupName; + /** + * The Amazon Chime Voice Connectors to which to route inbound calls. + */ + VoiceConnectorItems?: VoiceConnectorItemList; + /** + * The Amazon Chime Voice Connector group creation time stamp, in ISO 8601 format. + */ + CreatedTimestamp?: Iso8601Timestamp; + /** + * The updated Amazon Chime Voice Connector group time stamp, in ISO 8601 format. + */ + UpdatedTimestamp?: Iso8601Timestamp; + } + export type VoiceConnectorGroupList = VoiceConnectorGroup[]; + export type VoiceConnectorGroupName = string; + export interface VoiceConnectorItem { + /** + * The Amazon Chime Voice Connector ID. + */ + VoiceConnectorId: NonEmptyString; + /** + * The priority associated with the Amazon Chime Voice Connector, with 1 being the highest priority. Higher priority Amazon Chime Voice Connectors are attempted first. + */ + Priority: VoiceConnectorItemPriority; + } + export type VoiceConnectorItemList = VoiceConnectorItem[]; + export type VoiceConnectorItemPriority = number; + export type VoiceConnectorList = VoiceConnector[]; + export type VoiceConnectorName = string; + export interface VoiceConnectorSettings { + /** + * The Amazon S3 bucket designated for call detail record storage. + */ + CdrBucket?: String; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-05-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Chime client. + */ + export import Types = Chime; +} +export = Chime; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/chime.js b/justdanceonline-main/node_modules/aws-sdk/clients/chime.js new file mode 100644 index 0000000000000000000000000000000000000000..7790c549b9fb62c2743ea01b71113d0b350ba977 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/chime.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['chime'] = {}; +AWS.Chime = Service.defineService('chime', ['2018-05-01']); +Object.defineProperty(apiLoader.services['chime'], '2018-05-01', { + get: function get() { + var model = require('../apis/chime-2018-05-01.min.json'); + model.paginators = require('../apis/chime-2018-05-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Chime; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloud9.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloud9.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..2520143a177e2a8c6384be4520a694a64ab524af --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloud9.d.ts @@ -0,0 +1,489 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class Cloud9 extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: Cloud9.Types.ClientConfiguration) + config: Config & Cloud9.Types.ClientConfiguration; + /** + * Creates an AWS Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then connects from the instance to the environment. + */ + createEnvironmentEC2(params: Cloud9.Types.CreateEnvironmentEC2Request, callback?: (err: AWSError, data: Cloud9.Types.CreateEnvironmentEC2Result) => void): Request; + /** + * Creates an AWS Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then connects from the instance to the environment. + */ + createEnvironmentEC2(callback?: (err: AWSError, data: Cloud9.Types.CreateEnvironmentEC2Result) => void): Request; + /** + * Adds an environment member to an AWS Cloud9 development environment. + */ + createEnvironmentMembership(params: Cloud9.Types.CreateEnvironmentMembershipRequest, callback?: (err: AWSError, data: Cloud9.Types.CreateEnvironmentMembershipResult) => void): Request; + /** + * Adds an environment member to an AWS Cloud9 development environment. + */ + createEnvironmentMembership(callback?: (err: AWSError, data: Cloud9.Types.CreateEnvironmentMembershipResult) => void): Request; + /** + * Deletes an AWS Cloud9 development environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance. + */ + deleteEnvironment(params: Cloud9.Types.DeleteEnvironmentRequest, callback?: (err: AWSError, data: Cloud9.Types.DeleteEnvironmentResult) => void): Request; + /** + * Deletes an AWS Cloud9 development environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance. + */ + deleteEnvironment(callback?: (err: AWSError, data: Cloud9.Types.DeleteEnvironmentResult) => void): Request; + /** + * Deletes an environment member from an AWS Cloud9 development environment. + */ + deleteEnvironmentMembership(params: Cloud9.Types.DeleteEnvironmentMembershipRequest, callback?: (err: AWSError, data: Cloud9.Types.DeleteEnvironmentMembershipResult) => void): Request; + /** + * Deletes an environment member from an AWS Cloud9 development environment. + */ + deleteEnvironmentMembership(callback?: (err: AWSError, data: Cloud9.Types.DeleteEnvironmentMembershipResult) => void): Request; + /** + * Gets information about environment members for an AWS Cloud9 development environment. + */ + describeEnvironmentMemberships(params: Cloud9.Types.DescribeEnvironmentMembershipsRequest, callback?: (err: AWSError, data: Cloud9.Types.DescribeEnvironmentMembershipsResult) => void): Request; + /** + * Gets information about environment members for an AWS Cloud9 development environment. + */ + describeEnvironmentMemberships(callback?: (err: AWSError, data: Cloud9.Types.DescribeEnvironmentMembershipsResult) => void): Request; + /** + * Gets status information for an AWS Cloud9 development environment. + */ + describeEnvironmentStatus(params: Cloud9.Types.DescribeEnvironmentStatusRequest, callback?: (err: AWSError, data: Cloud9.Types.DescribeEnvironmentStatusResult) => void): Request; + /** + * Gets status information for an AWS Cloud9 development environment. + */ + describeEnvironmentStatus(callback?: (err: AWSError, data: Cloud9.Types.DescribeEnvironmentStatusResult) => void): Request; + /** + * Gets information about AWS Cloud9 development environments. + */ + describeEnvironments(params: Cloud9.Types.DescribeEnvironmentsRequest, callback?: (err: AWSError, data: Cloud9.Types.DescribeEnvironmentsResult) => void): Request; + /** + * Gets information about AWS Cloud9 development environments. + */ + describeEnvironments(callback?: (err: AWSError, data: Cloud9.Types.DescribeEnvironmentsResult) => void): Request; + /** + * Gets a list of AWS Cloud9 development environment identifiers. + */ + listEnvironments(params: Cloud9.Types.ListEnvironmentsRequest, callback?: (err: AWSError, data: Cloud9.Types.ListEnvironmentsResult) => void): Request; + /** + * Gets a list of AWS Cloud9 development environment identifiers. + */ + listEnvironments(callback?: (err: AWSError, data: Cloud9.Types.ListEnvironmentsResult) => void): Request; + /** + * Gets a list of the tags associated with an AWS Cloud9 development environment. + */ + listTagsForResource(params: Cloud9.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: Cloud9.Types.ListTagsForResourceResponse) => void): Request; + /** + * Gets a list of the tags associated with an AWS Cloud9 development environment. + */ + listTagsForResource(callback?: (err: AWSError, data: Cloud9.Types.ListTagsForResourceResponse) => void): Request; + /** + * Adds tags to an AWS Cloud9 development environment. Tags that you add to an AWS Cloud9 environment by using this method will NOT be automatically propagated to underlying resources. + */ + tagResource(params: Cloud9.Types.TagResourceRequest, callback?: (err: AWSError, data: Cloud9.Types.TagResourceResponse) => void): Request; + /** + * Adds tags to an AWS Cloud9 development environment. Tags that you add to an AWS Cloud9 environment by using this method will NOT be automatically propagated to underlying resources. + */ + tagResource(callback?: (err: AWSError, data: Cloud9.Types.TagResourceResponse) => void): Request; + /** + * Removes tags from an AWS Cloud9 development environment. + */ + untagResource(params: Cloud9.Types.UntagResourceRequest, callback?: (err: AWSError, data: Cloud9.Types.UntagResourceResponse) => void): Request; + /** + * Removes tags from an AWS Cloud9 development environment. + */ + untagResource(callback?: (err: AWSError, data: Cloud9.Types.UntagResourceResponse) => void): Request; + /** + * Changes the settings of an existing AWS Cloud9 development environment. + */ + updateEnvironment(params: Cloud9.Types.UpdateEnvironmentRequest, callback?: (err: AWSError, data: Cloud9.Types.UpdateEnvironmentResult) => void): Request; + /** + * Changes the settings of an existing AWS Cloud9 development environment. + */ + updateEnvironment(callback?: (err: AWSError, data: Cloud9.Types.UpdateEnvironmentResult) => void): Request; + /** + * Changes the settings of an existing environment member for an AWS Cloud9 development environment. + */ + updateEnvironmentMembership(params: Cloud9.Types.UpdateEnvironmentMembershipRequest, callback?: (err: AWSError, data: Cloud9.Types.UpdateEnvironmentMembershipResult) => void): Request; + /** + * Changes the settings of an existing environment member for an AWS Cloud9 development environment. + */ + updateEnvironmentMembership(callback?: (err: AWSError, data: Cloud9.Types.UpdateEnvironmentMembershipResult) => void): Request; +} +declare namespace Cloud9 { + export type AutomaticStopTimeMinutes = number; + export type BoundedEnvironmentIdList = EnvironmentId[]; + export type ClientRequestToken = string; + export type ConnectionType = "CONNECT_SSH"|"CONNECT_SSM"|string; + export interface CreateEnvironmentEC2Request { + /** + * The name of the environment to create. This name is visible to other AWS IAM users in the same AWS account. + */ + name: EnvironmentName; + /** + * The description of the environment to create. + */ + description?: EnvironmentDescription; + /** + * A unique, case-sensitive string that helps AWS Cloud9 to ensure this operation completes no more than one time. For more information, see Client Tokens in the Amazon EC2 API Reference. + */ + clientRequestToken?: ClientRequestToken; + /** + * The type of instance to connect to the environment (for example, t2.micro). + */ + instanceType: InstanceType; + /** + * The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance. + */ + subnetId?: SubnetId; + /** + * The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. To choose an AMI for the instance, you must specify a valid AMI alias or a valid AWS Systems Manager (SSM) path. The default AMI is used if the parameter isn't explicitly assigned a value in the request. AMI aliases Amazon Linux (default): amazonlinux-1-x86_64 Amazon Linux 2: amazonlinux-2-x86_64 Ubuntu 18.04: ubuntu-18.04-x86_64 SSM paths Amazon Linux (default): resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64 Amazon Linux 2: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64 Ubuntu 18.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64 + */ + imageId?: ImageId; + /** + * The number of minutes until the running instance is shut down after the environment has last been used. + */ + automaticStopTimeMinutes?: AutomaticStopTimeMinutes; + /** + * The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of any AWS IAM principal. If this value is not specified, the ARN defaults to this environment's creator. + */ + ownerArn?: UserArn; + /** + * An array of key-value pairs that will be associated with the new AWS Cloud9 development environment. + */ + tags?: TagList; + /** + * The connection type used for connecting to an Amazon EC2 environment. Valid values are CONNECT_SSH (default) and CONNECT_SSM (connected through AWS Systems Manager). For more information, see Accessing no-ingress EC2 instances with AWS Systems Manager in the AWS Cloud9 User Guide. + */ + connectionType?: ConnectionType; + } + export interface CreateEnvironmentEC2Result { + /** + * The ID of the environment that was created. + */ + environmentId?: EnvironmentId; + } + export interface CreateEnvironmentMembershipRequest { + /** + * The ID of the environment that contains the environment member you want to add. + */ + environmentId: EnvironmentId; + /** + * The Amazon Resource Name (ARN) of the environment member you want to add. + */ + userArn: UserArn; + /** + * The type of environment member permissions you want to associate with this environment member. Available values include: read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. + */ + permissions: MemberPermissions; + } + export interface CreateEnvironmentMembershipResult { + /** + * Information about the environment member that was added. + */ + membership: EnvironmentMember; + } + export interface DeleteEnvironmentMembershipRequest { + /** + * The ID of the environment to delete the environment member from. + */ + environmentId: EnvironmentId; + /** + * The Amazon Resource Name (ARN) of the environment member to delete from the environment. + */ + userArn: UserArn; + } + export interface DeleteEnvironmentMembershipResult { + } + export interface DeleteEnvironmentRequest { + /** + * The ID of the environment to delete. + */ + environmentId: EnvironmentId; + } + export interface DeleteEnvironmentResult { + } + export interface DescribeEnvironmentMembershipsRequest { + /** + * The Amazon Resource Name (ARN) of an individual environment member to get information about. If no value is specified, information about all environment members are returned. + */ + userArn?: UserArn; + /** + * The ID of the environment to get environment member information about. + */ + environmentId?: EnvironmentId; + /** + * The type of environment member permissions to get information about. Available values include: owner: Owns the environment. read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. If no value is specified, information about all environment members are returned. + */ + permissions?: PermissionsList; + /** + * During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The maximum number of environment members to get information about. + */ + maxResults?: MaxResults; + } + export interface DescribeEnvironmentMembershipsResult { + /** + * Information about the environment members for the environment. + */ + memberships?: EnvironmentMembersList; + /** + * If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. + */ + nextToken?: String; + } + export interface DescribeEnvironmentStatusRequest { + /** + * The ID of the environment to get status information about. + */ + environmentId: EnvironmentId; + } + export interface DescribeEnvironmentStatusResult { + /** + * The status of the environment. Available values include: connecting: The environment is connecting. creating: The environment is being created. deleting: The environment is being deleted. error: The environment is in an error state. ready: The environment is ready. stopped: The environment is stopped. stopping: The environment is stopping. + */ + status: EnvironmentStatus; + /** + * Any informational message about the status of the environment. + */ + message: String; + } + export interface DescribeEnvironmentsRequest { + /** + * The IDs of individual environments to get information about. + */ + environmentIds: BoundedEnvironmentIdList; + } + export interface DescribeEnvironmentsResult { + /** + * Information about the environments that are returned. + */ + environments?: EnvironmentList; + } + export interface Environment { + /** + * The ID of the environment. + */ + id?: EnvironmentId; + /** + * The name of the environment. + */ + name?: EnvironmentName; + /** + * The description for the environment. + */ + description?: EnvironmentDescription; + /** + * The type of environment. Valid values include the following: ec2: An Amazon Elastic Compute Cloud (Amazon EC2) instance connects to the environment. ssh: Your own server connects to the environment. + */ + type: EnvironmentType; + /** + * The connection type used for connecting to an Amazon EC2 environment. CONNECT_SSH is selected by default. + */ + connectionType?: ConnectionType; + /** + * The Amazon Resource Name (ARN) of the environment. + */ + arn: String; + /** + * The Amazon Resource Name (ARN) of the environment owner. + */ + ownerArn: String; + /** + * The state of the environment in its creation or deletion lifecycle. + */ + lifecycle?: EnvironmentLifecycle; + /** + * Describes the status of AWS managed temporary credentials for the AWS Cloud9 environment. Available values are: ENABLED_ON_CREATE ENABLED_BY_OWNER DISABLED_BY_DEFAULT DISABLED_BY_OWNER DISABLED_BY_COLLABORATOR PENDING_REMOVAL_BY_COLLABORATOR PENDING_REMOVAL_BY_OWNER FAILED_REMOVAL_BY_COLLABORATOR ENABLED_BY_OWNER DISABLED_BY_DEFAULT + */ + managedCredentialsStatus?: ManagedCredentialsStatus; + } + export type EnvironmentArn = string; + export type EnvironmentDescription = string; + export type EnvironmentId = string; + export type EnvironmentIdList = EnvironmentId[]; + export interface EnvironmentLifecycle { + /** + * The current creation or deletion lifecycle state of the environment. CREATING: The environment is in the process of being created. CREATED: The environment was successfully created. CREATE_FAILED: The environment failed to be created. DELETING: The environment is in the process of being deleted. DELETE_FAILED: The environment failed to delete. + */ + status?: EnvironmentLifecycleStatus; + /** + * Any informational message about the lifecycle state of the environment. + */ + reason?: String; + /** + * If the environment failed to delete, the Amazon Resource Name (ARN) of the related AWS resource. + */ + failureResource?: String; + } + export type EnvironmentLifecycleStatus = "CREATING"|"CREATED"|"CREATE_FAILED"|"DELETING"|"DELETE_FAILED"|string; + export type EnvironmentList = Environment[]; + export interface EnvironmentMember { + /** + * The type of environment member permissions associated with this environment member. Available values include: owner: Owns the environment. read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. + */ + permissions: Permissions; + /** + * The user ID in AWS Identity and Access Management (AWS IAM) of the environment member. + */ + userId: String; + /** + * The Amazon Resource Name (ARN) of the environment member. + */ + userArn: UserArn; + /** + * The ID of the environment for the environment member. + */ + environmentId: EnvironmentId; + /** + * The time, expressed in epoch time format, when the environment member last opened the environment. + */ + lastAccess?: Timestamp; + } + export type EnvironmentMembersList = EnvironmentMember[]; + export type EnvironmentName = string; + export type EnvironmentStatus = "error"|"creating"|"connecting"|"ready"|"stopping"|"stopped"|"deleting"|string; + export type EnvironmentType = "ssh"|"ec2"|string; + export type ImageId = string; + export type InstanceType = string; + export interface ListEnvironmentsRequest { + /** + * During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The maximum number of environments to get identifiers for. + */ + maxResults?: MaxResults; + } + export interface ListEnvironmentsResult { + /** + * If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a next token. To get the next batch of items in the list, call this operation again, adding the next token to the call. + */ + nextToken?: String; + /** + * The list of environment identifiers. + */ + environmentIds?: EnvironmentIdList; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the AWS Cloud9 development environment to get the tags for. + */ + ResourceARN: EnvironmentArn; + } + export interface ListTagsForResourceResponse { + /** + * The list of tags associated with the AWS Cloud9 development environment. + */ + Tags?: TagList; + } + export type ManagedCredentialsStatus = "ENABLED_ON_CREATE"|"ENABLED_BY_OWNER"|"DISABLED_BY_DEFAULT"|"DISABLED_BY_OWNER"|"DISABLED_BY_COLLABORATOR"|"PENDING_REMOVAL_BY_COLLABORATOR"|"PENDING_START_REMOVAL_BY_COLLABORATOR"|"PENDING_REMOVAL_BY_OWNER"|"PENDING_START_REMOVAL_BY_OWNER"|"FAILED_REMOVAL_BY_COLLABORATOR"|"FAILED_REMOVAL_BY_OWNER"|string; + export type MaxResults = number; + export type MemberPermissions = "read-write"|"read-only"|string; + export type Permissions = "owner"|"read-write"|"read-only"|string; + export type PermissionsList = Permissions[]; + export type String = string; + export type SubnetId = string; + export interface Tag { + /** + * The name part of a tag. + */ + Key: TagKey; + /** + * The value part of a tag. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the AWS Cloud9 development environment to add tags to. + */ + ResourceARN: EnvironmentArn; + /** + * The list of tags to add to the given AWS Cloud9 development environment. + */ + Tags: TagList; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type Timestamp = Date; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the AWS Cloud9 development environment to remove tags from. + */ + ResourceARN: EnvironmentArn; + /** + * The tag names of the tags to remove from the given AWS Cloud9 development environment. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateEnvironmentMembershipRequest { + /** + * The ID of the environment for the environment member whose settings you want to change. + */ + environmentId: EnvironmentId; + /** + * The Amazon Resource Name (ARN) of the environment member whose settings you want to change. + */ + userArn: UserArn; + /** + * The replacement type of environment member permissions you want to associate with this environment member. Available values include: read-only: Has read-only access to the environment. read-write: Has read-write access to the environment. + */ + permissions: MemberPermissions; + } + export interface UpdateEnvironmentMembershipResult { + /** + * Information about the environment member whose settings were changed. + */ + membership?: EnvironmentMember; + } + export interface UpdateEnvironmentRequest { + /** + * The ID of the environment to change settings. + */ + environmentId: EnvironmentId; + /** + * A replacement name for the environment. + */ + name?: EnvironmentName; + /** + * Any new or replacement description for the environment. + */ + description?: EnvironmentDescription; + } + export interface UpdateEnvironmentResult { + } + export type UserArn = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-09-23"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the Cloud9 client. + */ + export import Types = Cloud9; +} +export = Cloud9; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloud9.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloud9.js new file mode 100644 index 0000000000000000000000000000000000000000..be607cd20a07c37cacb150820d75267d31bbb235 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloud9.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloud9'] = {}; +AWS.Cloud9 = Service.defineService('cloud9', ['2017-09-23']); +Object.defineProperty(apiLoader.services['cloud9'], '2017-09-23', { + get: function get() { + var model = require('../apis/cloud9-2017-09-23.min.json'); + model.paginators = require('../apis/cloud9-2017-09-23.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.Cloud9; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/clouddirectory.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/clouddirectory.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..f202436f8f5605d8ca0e4ddbbe4a019a36143fc0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/clouddirectory.d.ts @@ -0,0 +1,3290 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudDirectory extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudDirectory.Types.ClientConfiguration) + config: Config & CloudDirectory.Types.ClientConfiguration; + /** + * Adds a new Facet to an object. An object can have more than one facet applied on it. + */ + addFacetToObject(params: CloudDirectory.Types.AddFacetToObjectRequest, callback?: (err: AWSError, data: CloudDirectory.Types.AddFacetToObjectResponse) => void): Request; + /** + * Adds a new Facet to an object. An object can have more than one facet applied on it. + */ + addFacetToObject(callback?: (err: AWSError, data: CloudDirectory.Types.AddFacetToObjectResponse) => void): Request; + /** + * Copies the input published schema, at the specified version, into the Directory with the same name and version as that of the published schema. + */ + applySchema(params: CloudDirectory.Types.ApplySchemaRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ApplySchemaResponse) => void): Request; + /** + * Copies the input published schema, at the specified version, into the Directory with the same name and version as that of the published schema. + */ + applySchema(callback?: (err: AWSError, data: CloudDirectory.Types.ApplySchemaResponse) => void): Request; + /** + * Attaches an existing object to another object. An object can be accessed in two ways: Using the path Using ObjectIdentifier + */ + attachObject(params: CloudDirectory.Types.AttachObjectRequest, callback?: (err: AWSError, data: CloudDirectory.Types.AttachObjectResponse) => void): Request; + /** + * Attaches an existing object to another object. An object can be accessed in two ways: Using the path Using ObjectIdentifier + */ + attachObject(callback?: (err: AWSError, data: CloudDirectory.Types.AttachObjectResponse) => void): Request; + /** + * Attaches a policy object to a regular object. An object can have a limited number of attached policies. + */ + attachPolicy(params: CloudDirectory.Types.AttachPolicyRequest, callback?: (err: AWSError, data: CloudDirectory.Types.AttachPolicyResponse) => void): Request; + /** + * Attaches a policy object to a regular object. An object can have a limited number of attached policies. + */ + attachPolicy(callback?: (err: AWSError, data: CloudDirectory.Types.AttachPolicyResponse) => void): Request; + /** + * Attaches the specified object to the specified index. + */ + attachToIndex(params: CloudDirectory.Types.AttachToIndexRequest, callback?: (err: AWSError, data: CloudDirectory.Types.AttachToIndexResponse) => void): Request; + /** + * Attaches the specified object to the specified index. + */ + attachToIndex(callback?: (err: AWSError, data: CloudDirectory.Types.AttachToIndexResponse) => void): Request; + /** + * Attaches a typed link to a specified source and target object. For more information, see Typed Links. + */ + attachTypedLink(params: CloudDirectory.Types.AttachTypedLinkRequest, callback?: (err: AWSError, data: CloudDirectory.Types.AttachTypedLinkResponse) => void): Request; + /** + * Attaches a typed link to a specified source and target object. For more information, see Typed Links. + */ + attachTypedLink(callback?: (err: AWSError, data: CloudDirectory.Types.AttachTypedLinkResponse) => void): Request; + /** + * Performs all the read operations in a batch. + */ + batchRead(params: CloudDirectory.Types.BatchReadRequest, callback?: (err: AWSError, data: CloudDirectory.Types.BatchReadResponse) => void): Request; + /** + * Performs all the read operations in a batch. + */ + batchRead(callback?: (err: AWSError, data: CloudDirectory.Types.BatchReadResponse) => void): Request; + /** + * Performs all the write operations in a batch. Either all the operations succeed or none. + */ + batchWrite(params: CloudDirectory.Types.BatchWriteRequest, callback?: (err: AWSError, data: CloudDirectory.Types.BatchWriteResponse) => void): Request; + /** + * Performs all the write operations in a batch. Either all the operations succeed or none. + */ + batchWrite(callback?: (err: AWSError, data: CloudDirectory.Types.BatchWriteResponse) => void): Request; + /** + * Creates a Directory by copying the published schema into the directory. A directory cannot be created without a schema. You can also quickly create a directory using a managed schema, called the QuickStartSchema. For more information, see Managed Schema in the Amazon Cloud Directory Developer Guide. + */ + createDirectory(params: CloudDirectory.Types.CreateDirectoryRequest, callback?: (err: AWSError, data: CloudDirectory.Types.CreateDirectoryResponse) => void): Request; + /** + * Creates a Directory by copying the published schema into the directory. A directory cannot be created without a schema. You can also quickly create a directory using a managed schema, called the QuickStartSchema. For more information, see Managed Schema in the Amazon Cloud Directory Developer Guide. + */ + createDirectory(callback?: (err: AWSError, data: CloudDirectory.Types.CreateDirectoryResponse) => void): Request; + /** + * Creates a new Facet in a schema. Facet creation is allowed only in development or applied schemas. + */ + createFacet(params: CloudDirectory.Types.CreateFacetRequest, callback?: (err: AWSError, data: CloudDirectory.Types.CreateFacetResponse) => void): Request; + /** + * Creates a new Facet in a schema. Facet creation is allowed only in development or applied schemas. + */ + createFacet(callback?: (err: AWSError, data: CloudDirectory.Types.CreateFacetResponse) => void): Request; + /** + * Creates an index object. See Indexing and search for more information. + */ + createIndex(params: CloudDirectory.Types.CreateIndexRequest, callback?: (err: AWSError, data: CloudDirectory.Types.CreateIndexResponse) => void): Request; + /** + * Creates an index object. See Indexing and search for more information. + */ + createIndex(callback?: (err: AWSError, data: CloudDirectory.Types.CreateIndexResponse) => void): Request; + /** + * Creates an object in a Directory. Additionally attaches the object to a parent, if a parent reference and LinkName is specified. An object is simply a collection of Facet attributes. You can also use this API call to create a policy object, if the facet from which you create the object is a policy facet. + */ + createObject(params: CloudDirectory.Types.CreateObjectRequest, callback?: (err: AWSError, data: CloudDirectory.Types.CreateObjectResponse) => void): Request; + /** + * Creates an object in a Directory. Additionally attaches the object to a parent, if a parent reference and LinkName is specified. An object is simply a collection of Facet attributes. You can also use this API call to create a policy object, if the facet from which you create the object is a policy facet. + */ + createObject(callback?: (err: AWSError, data: CloudDirectory.Types.CreateObjectResponse) => void): Request; + /** + * Creates a new schema in a development state. A schema can exist in three phases: Development: This is a mutable phase of the schema. All new schemas are in the development phase. Once the schema is finalized, it can be published. Published: Published schemas are immutable and have a version associated with them. Applied: Applied schemas are mutable in a way that allows you to add new schema facets. You can also add new, nonrequired attributes to existing schema facets. You can apply only published schemas to directories. + */ + createSchema(params: CloudDirectory.Types.CreateSchemaRequest, callback?: (err: AWSError, data: CloudDirectory.Types.CreateSchemaResponse) => void): Request; + /** + * Creates a new schema in a development state. A schema can exist in three phases: Development: This is a mutable phase of the schema. All new schemas are in the development phase. Once the schema is finalized, it can be published. Published: Published schemas are immutable and have a version associated with them. Applied: Applied schemas are mutable in a way that allows you to add new schema facets. You can also add new, nonrequired attributes to existing schema facets. You can apply only published schemas to directories. + */ + createSchema(callback?: (err: AWSError, data: CloudDirectory.Types.CreateSchemaResponse) => void): Request; + /** + * Creates a TypedLinkFacet. For more information, see Typed Links. + */ + createTypedLinkFacet(params: CloudDirectory.Types.CreateTypedLinkFacetRequest, callback?: (err: AWSError, data: CloudDirectory.Types.CreateTypedLinkFacetResponse) => void): Request; + /** + * Creates a TypedLinkFacet. For more information, see Typed Links. + */ + createTypedLinkFacet(callback?: (err: AWSError, data: CloudDirectory.Types.CreateTypedLinkFacetResponse) => void): Request; + /** + * Deletes a directory. Only disabled directories can be deleted. A deleted directory cannot be undone. Exercise extreme caution when deleting directories. + */ + deleteDirectory(params: CloudDirectory.Types.DeleteDirectoryRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DeleteDirectoryResponse) => void): Request; + /** + * Deletes a directory. Only disabled directories can be deleted. A deleted directory cannot be undone. Exercise extreme caution when deleting directories. + */ + deleteDirectory(callback?: (err: AWSError, data: CloudDirectory.Types.DeleteDirectoryResponse) => void): Request; + /** + * Deletes a given Facet. All attributes and Rules that are associated with the facet will be deleted. Only development schema facets are allowed deletion. + */ + deleteFacet(params: CloudDirectory.Types.DeleteFacetRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DeleteFacetResponse) => void): Request; + /** + * Deletes a given Facet. All attributes and Rules that are associated with the facet will be deleted. Only development schema facets are allowed deletion. + */ + deleteFacet(callback?: (err: AWSError, data: CloudDirectory.Types.DeleteFacetResponse) => void): Request; + /** + * Deletes an object and its associated attributes. Only objects with no children and no parents can be deleted. The maximum number of attributes that can be deleted during an object deletion is 30. For more information, see Amazon Cloud Directory Limits. + */ + deleteObject(params: CloudDirectory.Types.DeleteObjectRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DeleteObjectResponse) => void): Request; + /** + * Deletes an object and its associated attributes. Only objects with no children and no parents can be deleted. The maximum number of attributes that can be deleted during an object deletion is 30. For more information, see Amazon Cloud Directory Limits. + */ + deleteObject(callback?: (err: AWSError, data: CloudDirectory.Types.DeleteObjectResponse) => void): Request; + /** + * Deletes a given schema. Schemas in a development and published state can only be deleted. + */ + deleteSchema(params: CloudDirectory.Types.DeleteSchemaRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DeleteSchemaResponse) => void): Request; + /** + * Deletes a given schema. Schemas in a development and published state can only be deleted. + */ + deleteSchema(callback?: (err: AWSError, data: CloudDirectory.Types.DeleteSchemaResponse) => void): Request; + /** + * Deletes a TypedLinkFacet. For more information, see Typed Links. + */ + deleteTypedLinkFacet(params: CloudDirectory.Types.DeleteTypedLinkFacetRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DeleteTypedLinkFacetResponse) => void): Request; + /** + * Deletes a TypedLinkFacet. For more information, see Typed Links. + */ + deleteTypedLinkFacet(callback?: (err: AWSError, data: CloudDirectory.Types.DeleteTypedLinkFacetResponse) => void): Request; + /** + * Detaches the specified object from the specified index. + */ + detachFromIndex(params: CloudDirectory.Types.DetachFromIndexRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DetachFromIndexResponse) => void): Request; + /** + * Detaches the specified object from the specified index. + */ + detachFromIndex(callback?: (err: AWSError, data: CloudDirectory.Types.DetachFromIndexResponse) => void): Request; + /** + * Detaches a given object from the parent object. The object that is to be detached from the parent is specified by the link name. + */ + detachObject(params: CloudDirectory.Types.DetachObjectRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DetachObjectResponse) => void): Request; + /** + * Detaches a given object from the parent object. The object that is to be detached from the parent is specified by the link name. + */ + detachObject(callback?: (err: AWSError, data: CloudDirectory.Types.DetachObjectResponse) => void): Request; + /** + * Detaches a policy from an object. + */ + detachPolicy(params: CloudDirectory.Types.DetachPolicyRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DetachPolicyResponse) => void): Request; + /** + * Detaches a policy from an object. + */ + detachPolicy(callback?: (err: AWSError, data: CloudDirectory.Types.DetachPolicyResponse) => void): Request; + /** + * Detaches a typed link from a specified source and target object. For more information, see Typed Links. + */ + detachTypedLink(params: CloudDirectory.Types.DetachTypedLinkRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Detaches a typed link from a specified source and target object. For more information, see Typed Links. + */ + detachTypedLink(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Disables the specified directory. Disabled directories cannot be read or written to. Only enabled directories can be disabled. Disabled directories may be reenabled. + */ + disableDirectory(params: CloudDirectory.Types.DisableDirectoryRequest, callback?: (err: AWSError, data: CloudDirectory.Types.DisableDirectoryResponse) => void): Request; + /** + * Disables the specified directory. Disabled directories cannot be read or written to. Only enabled directories can be disabled. Disabled directories may be reenabled. + */ + disableDirectory(callback?: (err: AWSError, data: CloudDirectory.Types.DisableDirectoryResponse) => void): Request; + /** + * Enables the specified directory. Only disabled directories can be enabled. Once enabled, the directory can then be read and written to. + */ + enableDirectory(params: CloudDirectory.Types.EnableDirectoryRequest, callback?: (err: AWSError, data: CloudDirectory.Types.EnableDirectoryResponse) => void): Request; + /** + * Enables the specified directory. Only disabled directories can be enabled. Once enabled, the directory can then be read and written to. + */ + enableDirectory(callback?: (err: AWSError, data: CloudDirectory.Types.EnableDirectoryResponse) => void): Request; + /** + * Returns current applied schema version ARN, including the minor version in use. + */ + getAppliedSchemaVersion(params: CloudDirectory.Types.GetAppliedSchemaVersionRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetAppliedSchemaVersionResponse) => void): Request; + /** + * Returns current applied schema version ARN, including the minor version in use. + */ + getAppliedSchemaVersion(callback?: (err: AWSError, data: CloudDirectory.Types.GetAppliedSchemaVersionResponse) => void): Request; + /** + * Retrieves metadata about a directory. + */ + getDirectory(params: CloudDirectory.Types.GetDirectoryRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetDirectoryResponse) => void): Request; + /** + * Retrieves metadata about a directory. + */ + getDirectory(callback?: (err: AWSError, data: CloudDirectory.Types.GetDirectoryResponse) => void): Request; + /** + * Gets details of the Facet, such as facet name, attributes, Rules, or ObjectType. You can call this on all kinds of schema facets -- published, development, or applied. + */ + getFacet(params: CloudDirectory.Types.GetFacetRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetFacetResponse) => void): Request; + /** + * Gets details of the Facet, such as facet name, attributes, Rules, or ObjectType. You can call this on all kinds of schema facets -- published, development, or applied. + */ + getFacet(callback?: (err: AWSError, data: CloudDirectory.Types.GetFacetResponse) => void): Request; + /** + * Retrieves attributes that are associated with a typed link. + */ + getLinkAttributes(params: CloudDirectory.Types.GetLinkAttributesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetLinkAttributesResponse) => void): Request; + /** + * Retrieves attributes that are associated with a typed link. + */ + getLinkAttributes(callback?: (err: AWSError, data: CloudDirectory.Types.GetLinkAttributesResponse) => void): Request; + /** + * Retrieves attributes within a facet that are associated with an object. + */ + getObjectAttributes(params: CloudDirectory.Types.GetObjectAttributesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetObjectAttributesResponse) => void): Request; + /** + * Retrieves attributes within a facet that are associated with an object. + */ + getObjectAttributes(callback?: (err: AWSError, data: CloudDirectory.Types.GetObjectAttributesResponse) => void): Request; + /** + * Retrieves metadata about an object. + */ + getObjectInformation(params: CloudDirectory.Types.GetObjectInformationRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetObjectInformationResponse) => void): Request; + /** + * Retrieves metadata about an object. + */ + getObjectInformation(callback?: (err: AWSError, data: CloudDirectory.Types.GetObjectInformationResponse) => void): Request; + /** + * Retrieves a JSON representation of the schema. See JSON Schema Format for more information. + */ + getSchemaAsJson(params: CloudDirectory.Types.GetSchemaAsJsonRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetSchemaAsJsonResponse) => void): Request; + /** + * Retrieves a JSON representation of the schema. See JSON Schema Format for more information. + */ + getSchemaAsJson(callback?: (err: AWSError, data: CloudDirectory.Types.GetSchemaAsJsonResponse) => void): Request; + /** + * Returns the identity attribute order for a specific TypedLinkFacet. For more information, see Typed Links. + */ + getTypedLinkFacetInformation(params: CloudDirectory.Types.GetTypedLinkFacetInformationRequest, callback?: (err: AWSError, data: CloudDirectory.Types.GetTypedLinkFacetInformationResponse) => void): Request; + /** + * Returns the identity attribute order for a specific TypedLinkFacet. For more information, see Typed Links. + */ + getTypedLinkFacetInformation(callback?: (err: AWSError, data: CloudDirectory.Types.GetTypedLinkFacetInformationResponse) => void): Request; + /** + * Lists schema major versions applied to a directory. If SchemaArn is provided, lists the minor version. + */ + listAppliedSchemaArns(params: CloudDirectory.Types.ListAppliedSchemaArnsRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListAppliedSchemaArnsResponse) => void): Request; + /** + * Lists schema major versions applied to a directory. If SchemaArn is provided, lists the minor version. + */ + listAppliedSchemaArns(callback?: (err: AWSError, data: CloudDirectory.Types.ListAppliedSchemaArnsResponse) => void): Request; + /** + * Lists indices attached to the specified object. + */ + listAttachedIndices(params: CloudDirectory.Types.ListAttachedIndicesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListAttachedIndicesResponse) => void): Request; + /** + * Lists indices attached to the specified object. + */ + listAttachedIndices(callback?: (err: AWSError, data: CloudDirectory.Types.ListAttachedIndicesResponse) => void): Request; + /** + * Retrieves each Amazon Resource Name (ARN) of schemas in the development state. + */ + listDevelopmentSchemaArns(params: CloudDirectory.Types.ListDevelopmentSchemaArnsRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListDevelopmentSchemaArnsResponse) => void): Request; + /** + * Retrieves each Amazon Resource Name (ARN) of schemas in the development state. + */ + listDevelopmentSchemaArns(callback?: (err: AWSError, data: CloudDirectory.Types.ListDevelopmentSchemaArnsResponse) => void): Request; + /** + * Lists directories created within an account. + */ + listDirectories(params: CloudDirectory.Types.ListDirectoriesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListDirectoriesResponse) => void): Request; + /** + * Lists directories created within an account. + */ + listDirectories(callback?: (err: AWSError, data: CloudDirectory.Types.ListDirectoriesResponse) => void): Request; + /** + * Retrieves attributes attached to the facet. + */ + listFacetAttributes(params: CloudDirectory.Types.ListFacetAttributesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListFacetAttributesResponse) => void): Request; + /** + * Retrieves attributes attached to the facet. + */ + listFacetAttributes(callback?: (err: AWSError, data: CloudDirectory.Types.ListFacetAttributesResponse) => void): Request; + /** + * Retrieves the names of facets that exist in a schema. + */ + listFacetNames(params: CloudDirectory.Types.ListFacetNamesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListFacetNamesResponse) => void): Request; + /** + * Retrieves the names of facets that exist in a schema. + */ + listFacetNames(callback?: (err: AWSError, data: CloudDirectory.Types.ListFacetNamesResponse) => void): Request; + /** + * Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + listIncomingTypedLinks(params: CloudDirectory.Types.ListIncomingTypedLinksRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListIncomingTypedLinksResponse) => void): Request; + /** + * Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + listIncomingTypedLinks(callback?: (err: AWSError, data: CloudDirectory.Types.ListIncomingTypedLinksResponse) => void): Request; + /** + * Lists objects attached to the specified index. + */ + listIndex(params: CloudDirectory.Types.ListIndexRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListIndexResponse) => void): Request; + /** + * Lists objects attached to the specified index. + */ + listIndex(callback?: (err: AWSError, data: CloudDirectory.Types.ListIndexResponse) => void): Request; + /** + * Lists the major version families of each managed schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead. + */ + listManagedSchemaArns(params: CloudDirectory.Types.ListManagedSchemaArnsRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListManagedSchemaArnsResponse) => void): Request; + /** + * Lists the major version families of each managed schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead. + */ + listManagedSchemaArns(callback?: (err: AWSError, data: CloudDirectory.Types.ListManagedSchemaArnsResponse) => void): Request; + /** + * Lists all attributes that are associated with an object. + */ + listObjectAttributes(params: CloudDirectory.Types.ListObjectAttributesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectAttributesResponse) => void): Request; + /** + * Lists all attributes that are associated with an object. + */ + listObjectAttributes(callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectAttributesResponse) => void): Request; + /** + * Returns a paginated list of child objects that are associated with a given object. + */ + listObjectChildren(params: CloudDirectory.Types.ListObjectChildrenRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectChildrenResponse) => void): Request; + /** + * Returns a paginated list of child objects that are associated with a given object. + */ + listObjectChildren(callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectChildrenResponse) => void): Request; + /** + * Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure. Use this API to evaluate all parents for an object. The call returns all objects from the root of the directory up to the requested object. The API returns the number of paths based on user-defined MaxResults, in case there are multiple paths to the parent. The order of the paths and nodes returned is consistent among multiple API calls unless the objects are deleted or moved. Paths not leading to the directory root are ignored from the target object. + */ + listObjectParentPaths(params: CloudDirectory.Types.ListObjectParentPathsRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectParentPathsResponse) => void): Request; + /** + * Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure. Use this API to evaluate all parents for an object. The call returns all objects from the root of the directory up to the requested object. The API returns the number of paths based on user-defined MaxResults, in case there are multiple paths to the parent. The order of the paths and nodes returned is consistent among multiple API calls unless the objects are deleted or moved. Paths not leading to the directory root are ignored from the target object. + */ + listObjectParentPaths(callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectParentPathsResponse) => void): Request; + /** + * Lists parent objects that are associated with a given object in pagination fashion. + */ + listObjectParents(params: CloudDirectory.Types.ListObjectParentsRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectParentsResponse) => void): Request; + /** + * Lists parent objects that are associated with a given object in pagination fashion. + */ + listObjectParents(callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectParentsResponse) => void): Request; + /** + * Returns policies attached to an object in pagination fashion. + */ + listObjectPolicies(params: CloudDirectory.Types.ListObjectPoliciesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectPoliciesResponse) => void): Request; + /** + * Returns policies attached to an object in pagination fashion. + */ + listObjectPolicies(callback?: (err: AWSError, data: CloudDirectory.Types.ListObjectPoliciesResponse) => void): Request; + /** + * Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + listOutgoingTypedLinks(params: CloudDirectory.Types.ListOutgoingTypedLinksRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListOutgoingTypedLinksResponse) => void): Request; + /** + * Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + listOutgoingTypedLinks(callback?: (err: AWSError, data: CloudDirectory.Types.ListOutgoingTypedLinksResponse) => void): Request; + /** + * Returns all of the ObjectIdentifiers to which a given policy is attached. + */ + listPolicyAttachments(params: CloudDirectory.Types.ListPolicyAttachmentsRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListPolicyAttachmentsResponse) => void): Request; + /** + * Returns all of the ObjectIdentifiers to which a given policy is attached. + */ + listPolicyAttachments(callback?: (err: AWSError, data: CloudDirectory.Types.ListPolicyAttachmentsResponse) => void): Request; + /** + * Lists the major version families of each published schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead. + */ + listPublishedSchemaArns(params: CloudDirectory.Types.ListPublishedSchemaArnsRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListPublishedSchemaArnsResponse) => void): Request; + /** + * Lists the major version families of each published schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead. + */ + listPublishedSchemaArns(callback?: (err: AWSError, data: CloudDirectory.Types.ListPublishedSchemaArnsResponse) => void): Request; + /** + * Returns tags for a resource. Tagging is currently supported only for directories with a limit of 50 tags per directory. All 50 tags are returned for a given directory with this API call. + */ + listTagsForResource(params: CloudDirectory.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListTagsForResourceResponse) => void): Request; + /** + * Returns tags for a resource. Tagging is currently supported only for directories with a limit of 50 tags per directory. All 50 tags are returned for a given directory with this API call. + */ + listTagsForResource(callback?: (err: AWSError, data: CloudDirectory.Types.ListTagsForResourceResponse) => void): Request; + /** + * Returns a paginated list of all attribute definitions for a particular TypedLinkFacet. For more information, see Typed Links. + */ + listTypedLinkFacetAttributes(params: CloudDirectory.Types.ListTypedLinkFacetAttributesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListTypedLinkFacetAttributesResponse) => void): Request; + /** + * Returns a paginated list of all attribute definitions for a particular TypedLinkFacet. For more information, see Typed Links. + */ + listTypedLinkFacetAttributes(callback?: (err: AWSError, data: CloudDirectory.Types.ListTypedLinkFacetAttributesResponse) => void): Request; + /** + * Returns a paginated list of TypedLink facet names for a particular schema. For more information, see Typed Links. + */ + listTypedLinkFacetNames(params: CloudDirectory.Types.ListTypedLinkFacetNamesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.ListTypedLinkFacetNamesResponse) => void): Request; + /** + * Returns a paginated list of TypedLink facet names for a particular schema. For more information, see Typed Links. + */ + listTypedLinkFacetNames(callback?: (err: AWSError, data: CloudDirectory.Types.ListTypedLinkFacetNamesResponse) => void): Request; + /** + * Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies. + */ + lookupPolicy(params: CloudDirectory.Types.LookupPolicyRequest, callback?: (err: AWSError, data: CloudDirectory.Types.LookupPolicyResponse) => void): Request; + /** + * Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies. + */ + lookupPolicy(callback?: (err: AWSError, data: CloudDirectory.Types.LookupPolicyResponse) => void): Request; + /** + * Publishes a development schema with a major version and a recommended minor version. + */ + publishSchema(params: CloudDirectory.Types.PublishSchemaRequest, callback?: (err: AWSError, data: CloudDirectory.Types.PublishSchemaResponse) => void): Request; + /** + * Publishes a development schema with a major version and a recommended minor version. + */ + publishSchema(callback?: (err: AWSError, data: CloudDirectory.Types.PublishSchemaResponse) => void): Request; + /** + * Allows a schema to be updated using JSON upload. Only available for development schemas. See JSON Schema Format for more information. + */ + putSchemaFromJson(params: CloudDirectory.Types.PutSchemaFromJsonRequest, callback?: (err: AWSError, data: CloudDirectory.Types.PutSchemaFromJsonResponse) => void): Request; + /** + * Allows a schema to be updated using JSON upload. Only available for development schemas. See JSON Schema Format for more information. + */ + putSchemaFromJson(callback?: (err: AWSError, data: CloudDirectory.Types.PutSchemaFromJsonResponse) => void): Request; + /** + * Removes the specified facet from the specified object. + */ + removeFacetFromObject(params: CloudDirectory.Types.RemoveFacetFromObjectRequest, callback?: (err: AWSError, data: CloudDirectory.Types.RemoveFacetFromObjectResponse) => void): Request; + /** + * Removes the specified facet from the specified object. + */ + removeFacetFromObject(callback?: (err: AWSError, data: CloudDirectory.Types.RemoveFacetFromObjectResponse) => void): Request; + /** + * An API operation for adding tags to a resource. + */ + tagResource(params: CloudDirectory.Types.TagResourceRequest, callback?: (err: AWSError, data: CloudDirectory.Types.TagResourceResponse) => void): Request; + /** + * An API operation for adding tags to a resource. + */ + tagResource(callback?: (err: AWSError, data: CloudDirectory.Types.TagResourceResponse) => void): Request; + /** + * An API operation for removing tags from a resource. + */ + untagResource(params: CloudDirectory.Types.UntagResourceRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UntagResourceResponse) => void): Request; + /** + * An API operation for removing tags from a resource. + */ + untagResource(callback?: (err: AWSError, data: CloudDirectory.Types.UntagResourceResponse) => void): Request; + /** + * Does the following: Adds new Attributes, Rules, or ObjectTypes. Updates existing Attributes, Rules, or ObjectTypes. Deletes existing Attributes, Rules, or ObjectTypes. + */ + updateFacet(params: CloudDirectory.Types.UpdateFacetRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UpdateFacetResponse) => void): Request; + /** + * Does the following: Adds new Attributes, Rules, or ObjectTypes. Updates existing Attributes, Rules, or ObjectTypes. Deletes existing Attributes, Rules, or ObjectTypes. + */ + updateFacet(callback?: (err: AWSError, data: CloudDirectory.Types.UpdateFacetResponse) => void): Request; + /** + * Updates a given typed link’s attributes. Attributes to be updated must not contribute to the typed link’s identity, as defined by its IdentityAttributeOrder. + */ + updateLinkAttributes(params: CloudDirectory.Types.UpdateLinkAttributesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UpdateLinkAttributesResponse) => void): Request; + /** + * Updates a given typed link’s attributes. Attributes to be updated must not contribute to the typed link’s identity, as defined by its IdentityAttributeOrder. + */ + updateLinkAttributes(callback?: (err: AWSError, data: CloudDirectory.Types.UpdateLinkAttributesResponse) => void): Request; + /** + * Updates a given object's attributes. + */ + updateObjectAttributes(params: CloudDirectory.Types.UpdateObjectAttributesRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UpdateObjectAttributesResponse) => void): Request; + /** + * Updates a given object's attributes. + */ + updateObjectAttributes(callback?: (err: AWSError, data: CloudDirectory.Types.UpdateObjectAttributesResponse) => void): Request; + /** + * Updates the schema name with a new name. Only development schema names can be updated. + */ + updateSchema(params: CloudDirectory.Types.UpdateSchemaRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UpdateSchemaResponse) => void): Request; + /** + * Updates the schema name with a new name. Only development schema names can be updated. + */ + updateSchema(callback?: (err: AWSError, data: CloudDirectory.Types.UpdateSchemaResponse) => void): Request; + /** + * Updates a TypedLinkFacet. For more information, see Typed Links. + */ + updateTypedLinkFacet(params: CloudDirectory.Types.UpdateTypedLinkFacetRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UpdateTypedLinkFacetResponse) => void): Request; + /** + * Updates a TypedLinkFacet. For more information, see Typed Links. + */ + updateTypedLinkFacet(callback?: (err: AWSError, data: CloudDirectory.Types.UpdateTypedLinkFacetResponse) => void): Request; + /** + * Upgrades a single directory in-place using the PublishedSchemaArn with schema updates found in MinorVersion. Backwards-compatible minor version upgrades are instantaneously available for readers on all objects in the directory. Note: This is a synchronous API call and upgrades only one schema on a given directory per call. To upgrade multiple directories from one schema, you would need to call this API on each directory. + */ + upgradeAppliedSchema(params: CloudDirectory.Types.UpgradeAppliedSchemaRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UpgradeAppliedSchemaResponse) => void): Request; + /** + * Upgrades a single directory in-place using the PublishedSchemaArn with schema updates found in MinorVersion. Backwards-compatible minor version upgrades are instantaneously available for readers on all objects in the directory. Note: This is a synchronous API call and upgrades only one schema on a given directory per call. To upgrade multiple directories from one schema, you would need to call this API on each directory. + */ + upgradeAppliedSchema(callback?: (err: AWSError, data: CloudDirectory.Types.UpgradeAppliedSchemaResponse) => void): Request; + /** + * Upgrades a published schema under a new minor version revision using the current contents of DevelopmentSchemaArn. + */ + upgradePublishedSchema(params: CloudDirectory.Types.UpgradePublishedSchemaRequest, callback?: (err: AWSError, data: CloudDirectory.Types.UpgradePublishedSchemaResponse) => void): Request; + /** + * Upgrades a published schema under a new minor version revision using the current contents of DevelopmentSchemaArn. + */ + upgradePublishedSchema(callback?: (err: AWSError, data: CloudDirectory.Types.UpgradePublishedSchemaResponse) => void): Request; +} +declare namespace CloudDirectory { + export interface AddFacetToObjectRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * Identifiers for the facet that you are adding to the object. See SchemaFacet for details. + */ + SchemaFacet: SchemaFacet; + /** + * Attributes on the facet that you are adding to the object. + */ + ObjectAttributeList?: AttributeKeyAndValueList; + /** + * A reference to the object you are adding the specified facet to. + */ + ObjectReference: ObjectReference; + } + export interface AddFacetToObjectResponse { + } + export interface ApplySchemaRequest { + /** + * Published schema Amazon Resource Name (ARN) that needs to be copied. For more information, see arns. + */ + PublishedSchemaArn: Arn; + /** + * The Amazon Resource Name (ARN) that is associated with the Directory into which the schema is copied. For more information, see arns. + */ + DirectoryArn: Arn; + } + export interface ApplySchemaResponse { + /** + * The applied schema ARN that is associated with the copied schema in the Directory. You can use this ARN to describe the schema information applied on this directory. For more information, see arns. + */ + AppliedSchemaArn?: Arn; + /** + * The ARN that is associated with the Directory. For more information, see arns. + */ + DirectoryArn?: Arn; + } + export type Arn = string; + export type Arns = Arn[]; + export interface AttachObjectRequest { + /** + * Amazon Resource Name (ARN) that is associated with the Directory where both objects reside. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The parent object reference. + */ + ParentReference: ObjectReference; + /** + * The child object reference to be attached to the object. + */ + ChildReference: ObjectReference; + /** + * The link name with which the child object is attached to the parent. + */ + LinkName: LinkName; + } + export interface AttachObjectResponse { + /** + * The attached ObjectIdentifier, which is the child ObjectIdentifier. + */ + AttachedObjectIdentifier?: ObjectIdentifier; + } + export interface AttachPolicyRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where both objects reside. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The reference that is associated with the policy object. + */ + PolicyReference: ObjectReference; + /** + * The reference that identifies the object to which the policy will be attached. + */ + ObjectReference: ObjectReference; + } + export interface AttachPolicyResponse { + } + export interface AttachToIndexRequest { + /** + * The Amazon Resource Name (ARN) of the directory where the object and index exist. + */ + DirectoryArn: Arn; + /** + * A reference to the index that you are attaching the object to. + */ + IndexReference: ObjectReference; + /** + * A reference to the object that you are attaching to the index. + */ + TargetReference: ObjectReference; + } + export interface AttachToIndexResponse { + /** + * The ObjectIdentifier of the object that was attached to the index. + */ + AttachedObjectIdentifier?: ObjectIdentifier; + } + export interface AttachTypedLinkRequest { + /** + * The Amazon Resource Name (ARN) of the directory where you want to attach the typed link. + */ + DirectoryArn: Arn; + /** + * Identifies the source object that the typed link will attach to. + */ + SourceObjectReference: ObjectReference; + /** + * Identifies the target object that the typed link will attach to. + */ + TargetObjectReference: ObjectReference; + /** + * Identifies the typed link facet that is associated with the typed link. + */ + TypedLinkFacet: TypedLinkSchemaAndFacetName; + /** + * A set of attributes that are associated with the typed link. + */ + Attributes: AttributeNameAndValueList; + } + export interface AttachTypedLinkResponse { + /** + * Returns a typed link specifier as output. + */ + TypedLinkSpecifier?: TypedLinkSpecifier; + } + export interface AttributeKey { + /** + * The Amazon Resource Name (ARN) of the schema that contains the facet and attribute. + */ + SchemaArn: Arn; + /** + * The name of the facet that the attribute exists within. + */ + FacetName: FacetName; + /** + * The name of the attribute. + */ + Name: AttributeName; + } + export interface AttributeKeyAndValue { + /** + * The key of the attribute. + */ + Key: AttributeKey; + /** + * The value of the attribute. + */ + Value: TypedAttributeValue; + } + export type AttributeKeyAndValueList = AttributeKeyAndValue[]; + export type AttributeKeyList = AttributeKey[]; + export type AttributeName = string; + export interface AttributeNameAndValue { + /** + * The attribute name of the typed link. + */ + AttributeName: AttributeName; + /** + * The value for the typed link. + */ + Value: TypedAttributeValue; + } + export type AttributeNameAndValueList = AttributeNameAndValue[]; + export type AttributeNameList = AttributeName[]; + export interface BatchAddFacetToObject { + /** + * Represents the facet being added to the object. + */ + SchemaFacet: SchemaFacet; + /** + * The attributes to set on the object. + */ + ObjectAttributeList: AttributeKeyAndValueList; + /** + * A reference to the object being mutated. + */ + ObjectReference: ObjectReference; + } + export interface BatchAddFacetToObjectResponse { + } + export interface BatchAttachObject { + /** + * The parent object reference. + */ + ParentReference: ObjectReference; + /** + * The child object reference that is to be attached to the object. + */ + ChildReference: ObjectReference; + /** + * The name of the link. + */ + LinkName: LinkName; + } + export interface BatchAttachObjectResponse { + /** + * The ObjectIdentifier of the object that has been attached. + */ + attachedObjectIdentifier?: ObjectIdentifier; + } + export interface BatchAttachPolicy { + /** + * The reference that is associated with the policy object. + */ + PolicyReference: ObjectReference; + /** + * The reference that identifies the object to which the policy will be attached. + */ + ObjectReference: ObjectReference; + } + export interface BatchAttachPolicyResponse { + } + export interface BatchAttachToIndex { + /** + * A reference to the index that you are attaching the object to. + */ + IndexReference: ObjectReference; + /** + * A reference to the object that you are attaching to the index. + */ + TargetReference: ObjectReference; + } + export interface BatchAttachToIndexResponse { + /** + * The ObjectIdentifier of the object that was attached to the index. + */ + AttachedObjectIdentifier?: ObjectIdentifier; + } + export interface BatchAttachTypedLink { + /** + * Identifies the source object that the typed link will attach to. + */ + SourceObjectReference: ObjectReference; + /** + * Identifies the target object that the typed link will attach to. + */ + TargetObjectReference: ObjectReference; + /** + * Identifies the typed link facet that is associated with the typed link. + */ + TypedLinkFacet: TypedLinkSchemaAndFacetName; + /** + * A set of attributes that are associated with the typed link. + */ + Attributes: AttributeNameAndValueList; + } + export interface BatchAttachTypedLinkResponse { + /** + * Returns a typed link specifier as output. + */ + TypedLinkSpecifier?: TypedLinkSpecifier; + } + export interface BatchCreateIndex { + /** + * Specifies the attributes that should be indexed on. Currently only a single attribute is supported. + */ + OrderedIndexedAttributeList: AttributeKeyList; + /** + * Indicates whether the attribute that is being indexed has unique values or not. + */ + IsUnique: Bool; + /** + * A reference to the parent object that contains the index object. + */ + ParentReference?: ObjectReference; + /** + * The name of the link between the parent object and the index object. + */ + LinkName?: LinkName; + /** + * The batch reference name. See Transaction Support for more information. + */ + BatchReferenceName?: BatchReferenceName; + } + export interface BatchCreateIndexResponse { + /** + * The ObjectIdentifier of the index created by this operation. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface BatchCreateObject { + /** + * A list of FacetArns that will be associated with the object. For more information, see arns. + */ + SchemaFacet: SchemaFacetList; + /** + * An attribute map, which contains an attribute ARN as the key and attribute value as the map value. + */ + ObjectAttributeList: AttributeKeyAndValueList; + /** + * If specified, the parent reference to which this object will be attached. + */ + ParentReference?: ObjectReference; + /** + * The name of the link. + */ + LinkName?: LinkName; + /** + * The batch reference name. See Transaction Support for more information. + */ + BatchReferenceName?: BatchReferenceName; + } + export interface BatchCreateObjectResponse { + /** + * The ID that is associated with the object. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface BatchDeleteObject { + /** + * The reference that identifies the object. + */ + ObjectReference: ObjectReference; + } + export interface BatchDeleteObjectResponse { + } + export interface BatchDetachFromIndex { + /** + * A reference to the index object. + */ + IndexReference: ObjectReference; + /** + * A reference to the object being detached from the index. + */ + TargetReference: ObjectReference; + } + export interface BatchDetachFromIndexResponse { + /** + * The ObjectIdentifier of the object that was detached from the index. + */ + DetachedObjectIdentifier?: ObjectIdentifier; + } + export interface BatchDetachObject { + /** + * Parent reference from which the object with the specified link name is detached. + */ + ParentReference: ObjectReference; + /** + * The name of the link. + */ + LinkName: LinkName; + /** + * The batch reference name. See Transaction Support for more information. + */ + BatchReferenceName?: BatchReferenceName; + } + export interface BatchDetachObjectResponse { + /** + * The ObjectIdentifier of the detached object. + */ + detachedObjectIdentifier?: ObjectIdentifier; + } + export interface BatchDetachPolicy { + /** + * Reference that identifies the policy object. + */ + PolicyReference: ObjectReference; + /** + * Reference that identifies the object whose policy object will be detached. + */ + ObjectReference: ObjectReference; + } + export interface BatchDetachPolicyResponse { + } + export interface BatchDetachTypedLink { + /** + * Used to accept a typed link specifier as input. + */ + TypedLinkSpecifier: TypedLinkSpecifier; + } + export interface BatchDetachTypedLinkResponse { + } + export interface BatchGetLinkAttributes { + /** + * Allows a typed link specifier to be accepted as input. + */ + TypedLinkSpecifier: TypedLinkSpecifier; + /** + * A list of attribute names whose values will be retrieved. + */ + AttributeNames: AttributeNameList; + } + export interface BatchGetLinkAttributesResponse { + /** + * The attributes that are associated with the typed link. + */ + Attributes?: AttributeKeyAndValueList; + } + export interface BatchGetObjectAttributes { + /** + * Reference that identifies the object whose attributes will be retrieved. + */ + ObjectReference: ObjectReference; + /** + * Identifier for the facet whose attributes will be retrieved. See SchemaFacet for details. + */ + SchemaFacet: SchemaFacet; + /** + * List of attribute names whose values will be retrieved. + */ + AttributeNames: AttributeNameList; + } + export interface BatchGetObjectAttributesResponse { + /** + * The attribute values that are associated with an object. + */ + Attributes?: AttributeKeyAndValueList; + } + export interface BatchGetObjectInformation { + /** + * A reference to the object. + */ + ObjectReference: ObjectReference; + } + export interface BatchGetObjectInformationResponse { + /** + * The facets attached to the specified object. + */ + SchemaFacets?: SchemaFacetList; + /** + * The ObjectIdentifier of the specified object. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface BatchListAttachedIndices { + /** + * A reference to the object that has indices attached. + */ + TargetReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface BatchListAttachedIndicesResponse { + /** + * The indices attached to the specified object. + */ + IndexAttachments?: IndexAttachmentList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListIncomingTypedLinks { + /** + * The reference that identifies the object whose attributes will be listed. + */ + ObjectReference: ObjectReference; + /** + * Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. + */ + FilterAttributeRanges?: TypedLinkAttributeRangeList; + /** + * Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. + */ + FilterTypedLink?: TypedLinkSchemaAndFacetName; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface BatchListIncomingTypedLinksResponse { + /** + * Returns one or more typed link specifiers as output. + */ + LinkSpecifiers?: TypedLinkSpecifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListIndex { + /** + * Specifies the ranges of indexed values that you want to query. + */ + RangesOnIndexedValues?: ObjectAttributeRangeList; + /** + * The reference to the index to list. + */ + IndexReference: ObjectReference; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListIndexResponse { + /** + * The objects and indexed values attached to the index. + */ + IndexAttachments?: IndexAttachmentList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListObjectAttributes { + /** + * Reference of the object whose attributes need to be listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + /** + * Used to filter the list of object attributes that are associated with a certain facet. + */ + FacetFilter?: SchemaFacet; + } + export interface BatchListObjectAttributesResponse { + /** + * The attributes map that is associated with the object. AttributeArn is the key; attribute value is the value. + */ + Attributes?: AttributeKeyAndValueList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListObjectChildren { + /** + * Reference of the object for which child objects are being listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * Maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + } + export interface BatchListObjectChildrenResponse { + /** + * The children structure, which is a map with the key as the LinkName and ObjectIdentifier as the value. + */ + Children?: LinkNameToObjectIdentifierMap; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListObjectParentPaths { + /** + * The reference that identifies the object whose attributes will be listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface BatchListObjectParentPathsResponse { + /** + * Returns the path to the ObjectIdentifiers that are associated with the directory. + */ + PathToObjectIdentifiersList?: PathToObjectIdentifiersList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListObjectParents { + ObjectReference: ObjectReference; + NextToken?: NextToken; + MaxResults?: NumberResults; + } + export interface BatchListObjectParentsResponse { + ParentLinks?: ObjectIdentifierAndLinkNameList; + NextToken?: NextToken; + } + export interface BatchListObjectPolicies { + /** + * The reference that identifies the object whose attributes will be listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface BatchListObjectPoliciesResponse { + /** + * A list of policy ObjectIdentifiers, that are attached to the object. + */ + AttachedPolicyIds?: ObjectIdentifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListOutgoingTypedLinks { + /** + * The reference that identifies the object whose attributes will be listed. + */ + ObjectReference: ObjectReference; + /** + * Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. + */ + FilterAttributeRanges?: TypedLinkAttributeRangeList; + /** + * Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls. + */ + FilterTypedLink?: TypedLinkSchemaAndFacetName; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface BatchListOutgoingTypedLinksResponse { + /** + * Returns a typed link specifier as output. + */ + TypedLinkSpecifiers?: TypedLinkSpecifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchListPolicyAttachments { + /** + * The reference that identifies the policy object. + */ + PolicyReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface BatchListPolicyAttachmentsResponse { + /** + * A list of ObjectIdentifiers to which the policy is attached. + */ + ObjectIdentifiers?: ObjectIdentifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchLookupPolicy { + /** + * Reference that identifies the object whose policies will be looked up. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface BatchLookupPolicyResponse { + /** + * Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier, and PolicyType. For more information, see Policies. + */ + PolicyToPathList?: PolicyToPathList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface BatchReadException { + /** + * A type of exception, such as InvalidArnException. + */ + Type?: BatchReadExceptionType; + /** + * An exception message that is associated with the failure. + */ + Message?: ExceptionMessage; + } + export type BatchReadExceptionType = "ValidationException"|"InvalidArnException"|"ResourceNotFoundException"|"InvalidNextTokenException"|"AccessDeniedException"|"NotNodeException"|"FacetValidationException"|"CannotListParentOfRootException"|"NotIndexException"|"NotPolicyException"|"DirectoryNotEnabledException"|"LimitExceededException"|"InternalServiceException"|string; + export interface BatchReadOperation { + /** + * Lists all attributes that are associated with an object. + */ + ListObjectAttributes?: BatchListObjectAttributes; + /** + * Returns a paginated list of child objects that are associated with a given object. + */ + ListObjectChildren?: BatchListObjectChildren; + /** + * Lists indices attached to an object. + */ + ListAttachedIndices?: BatchListAttachedIndices; + /** + * Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure. + */ + ListObjectParentPaths?: BatchListObjectParentPaths; + /** + * Retrieves metadata about an object. + */ + GetObjectInformation?: BatchGetObjectInformation; + /** + * Retrieves attributes within a facet that are associated with an object. + */ + GetObjectAttributes?: BatchGetObjectAttributes; + ListObjectParents?: BatchListObjectParents; + /** + * Returns policies attached to an object in pagination fashion. + */ + ListObjectPolicies?: BatchListObjectPolicies; + /** + * Returns all of the ObjectIdentifiers to which a given policy is attached. + */ + ListPolicyAttachments?: BatchListPolicyAttachments; + /** + * Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies. + */ + LookupPolicy?: BatchLookupPolicy; + /** + * Lists objects attached to the specified index. + */ + ListIndex?: BatchListIndex; + /** + * Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + ListOutgoingTypedLinks?: BatchListOutgoingTypedLinks; + /** + * Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + ListIncomingTypedLinks?: BatchListIncomingTypedLinks; + /** + * Retrieves attributes that are associated with a typed link. + */ + GetLinkAttributes?: BatchGetLinkAttributes; + } + export type BatchReadOperationList = BatchReadOperation[]; + export interface BatchReadOperationResponse { + /** + * Identifies which operation in a batch has succeeded. + */ + SuccessfulResponse?: BatchReadSuccessfulResponse; + /** + * Identifies which operation in a batch has failed. + */ + ExceptionResponse?: BatchReadException; + } + export type BatchReadOperationResponseList = BatchReadOperationResponse[]; + export interface BatchReadRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * A list of operations that are part of the batch. + */ + Operations: BatchReadOperationList; + /** + * Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface BatchReadResponse { + /** + * A list of all the responses for each batch read. + */ + Responses?: BatchReadOperationResponseList; + } + export interface BatchReadSuccessfulResponse { + /** + * Lists all attributes that are associated with an object. + */ + ListObjectAttributes?: BatchListObjectAttributesResponse; + /** + * Returns a paginated list of child objects that are associated with a given object. + */ + ListObjectChildren?: BatchListObjectChildrenResponse; + /** + * Retrieves metadata about an object. + */ + GetObjectInformation?: BatchGetObjectInformationResponse; + /** + * Retrieves attributes within a facet that are associated with an object. + */ + GetObjectAttributes?: BatchGetObjectAttributesResponse; + /** + * Lists indices attached to an object. + */ + ListAttachedIndices?: BatchListAttachedIndicesResponse; + /** + * Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure. + */ + ListObjectParentPaths?: BatchListObjectParentPathsResponse; + /** + * Returns policies attached to an object in pagination fashion. + */ + ListObjectPolicies?: BatchListObjectPoliciesResponse; + /** + * Returns all of the ObjectIdentifiers to which a given policy is attached. + */ + ListPolicyAttachments?: BatchListPolicyAttachmentsResponse; + /** + * Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the policies attached, it returns the ObjectIdentifier for such objects. If policies are present, it returns ObjectIdentifier, policyId, and policyType. Paths that don't lead to the root from the target object are ignored. For more information, see Policies. + */ + LookupPolicy?: BatchLookupPolicyResponse; + /** + * Lists objects attached to the specified index. + */ + ListIndex?: BatchListIndexResponse; + /** + * Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + ListOutgoingTypedLinks?: BatchListOutgoingTypedLinksResponse; + /** + * Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links. + */ + ListIncomingTypedLinks?: BatchListIncomingTypedLinksResponse; + /** + * The list of attributes to retrieve from the typed link. + */ + GetLinkAttributes?: BatchGetLinkAttributesResponse; + ListObjectParents?: BatchListObjectParentsResponse; + } + export type BatchReferenceName = string; + export interface BatchRemoveFacetFromObject { + /** + * The facet to remove from the object. + */ + SchemaFacet: SchemaFacet; + /** + * A reference to the object whose facet will be removed. + */ + ObjectReference: ObjectReference; + } + export interface BatchRemoveFacetFromObjectResponse { + } + export interface BatchUpdateLinkAttributes { + /** + * Allows a typed link specifier to be accepted as input. + */ + TypedLinkSpecifier: TypedLinkSpecifier; + /** + * The attributes update structure. + */ + AttributeUpdates: LinkAttributeUpdateList; + } + export interface BatchUpdateLinkAttributesResponse { + } + export interface BatchUpdateObjectAttributes { + /** + * Reference that identifies the object. + */ + ObjectReference: ObjectReference; + /** + * Attributes update structure. + */ + AttributeUpdates: ObjectAttributeUpdateList; + } + export interface BatchUpdateObjectAttributesResponse { + /** + * ID that is associated with the object. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface BatchWriteOperation { + /** + * Creates an object. + */ + CreateObject?: BatchCreateObject; + /** + * Attaches an object to a Directory. + */ + AttachObject?: BatchAttachObject; + /** + * Detaches an object from a Directory. + */ + DetachObject?: BatchDetachObject; + /** + * Updates a given object's attributes. + */ + UpdateObjectAttributes?: BatchUpdateObjectAttributes; + /** + * Deletes an object in a Directory. + */ + DeleteObject?: BatchDeleteObject; + /** + * A batch operation that adds a facet to an object. + */ + AddFacetToObject?: BatchAddFacetToObject; + /** + * A batch operation that removes a facet from an object. + */ + RemoveFacetFromObject?: BatchRemoveFacetFromObject; + /** + * Attaches a policy object to a regular object. An object can have a limited number of attached policies. + */ + AttachPolicy?: BatchAttachPolicy; + /** + * Detaches a policy from a Directory. + */ + DetachPolicy?: BatchDetachPolicy; + /** + * Creates an index object. See Indexing and search for more information. + */ + CreateIndex?: BatchCreateIndex; + /** + * Attaches the specified object to the specified index. + */ + AttachToIndex?: BatchAttachToIndex; + /** + * Detaches the specified object from the specified index. + */ + DetachFromIndex?: BatchDetachFromIndex; + /** + * Attaches a typed link to a specified source and target object. For more information, see Typed Links. + */ + AttachTypedLink?: BatchAttachTypedLink; + /** + * Detaches a typed link from a specified source and target object. For more information, see Typed Links. + */ + DetachTypedLink?: BatchDetachTypedLink; + /** + * Updates a given object's attributes. + */ + UpdateLinkAttributes?: BatchUpdateLinkAttributes; + } + export type BatchWriteOperationList = BatchWriteOperation[]; + export interface BatchWriteOperationResponse { + /** + * Creates an object in a Directory. + */ + CreateObject?: BatchCreateObjectResponse; + /** + * Attaches an object to a Directory. + */ + AttachObject?: BatchAttachObjectResponse; + /** + * Detaches an object from a Directory. + */ + DetachObject?: BatchDetachObjectResponse; + /** + * Updates a given object’s attributes. + */ + UpdateObjectAttributes?: BatchUpdateObjectAttributesResponse; + /** + * Deletes an object in a Directory. + */ + DeleteObject?: BatchDeleteObjectResponse; + /** + * The result of an add facet to object batch operation. + */ + AddFacetToObject?: BatchAddFacetToObjectResponse; + /** + * The result of a batch remove facet from object operation. + */ + RemoveFacetFromObject?: BatchRemoveFacetFromObjectResponse; + /** + * Attaches a policy object to a regular object. An object can have a limited number of attached policies. + */ + AttachPolicy?: BatchAttachPolicyResponse; + /** + * Detaches a policy from a Directory. + */ + DetachPolicy?: BatchDetachPolicyResponse; + /** + * Creates an index object. See Indexing and search for more information. + */ + CreateIndex?: BatchCreateIndexResponse; + /** + * Attaches the specified object to the specified index. + */ + AttachToIndex?: BatchAttachToIndexResponse; + /** + * Detaches the specified object from the specified index. + */ + DetachFromIndex?: BatchDetachFromIndexResponse; + /** + * Attaches a typed link to a specified source and target object. For more information, see Typed Links. + */ + AttachTypedLink?: BatchAttachTypedLinkResponse; + /** + * Detaches a typed link from a specified source and target object. For more information, see Typed Links. + */ + DetachTypedLink?: BatchDetachTypedLinkResponse; + /** + * Represents the output of a BatchWrite response operation. + */ + UpdateLinkAttributes?: BatchUpdateLinkAttributesResponse; + } + export type BatchWriteOperationResponseList = BatchWriteOperationResponse[]; + export interface BatchWriteRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * A list of operations that are part of the batch. + */ + Operations: BatchWriteOperationList; + } + export interface BatchWriteResponse { + /** + * A list of all the responses for each batch write. + */ + Responses?: BatchWriteOperationResponseList; + } + export type BinaryAttributeValue = Buffer|Uint8Array|Blob|string; + export type Bool = boolean; + export type BooleanAttributeValue = boolean; + export type ConsistencyLevel = "SERIALIZABLE"|"EVENTUAL"|string; + export interface CreateDirectoryRequest { + /** + * The name of the Directory. Should be unique per account, per region. + */ + Name: DirectoryName; + /** + * The Amazon Resource Name (ARN) of the published schema that will be copied into the data Directory. For more information, see arns. + */ + SchemaArn: Arn; + } + export interface CreateDirectoryResponse { + /** + * The ARN that is associated with the Directory. For more information, see arns. + */ + DirectoryArn: DirectoryArn; + /** + * The name of the Directory. + */ + Name: DirectoryName; + /** + * The root object node of the created directory. + */ + ObjectIdentifier: ObjectIdentifier; + /** + * The ARN of the published schema in the Directory. Once a published schema is copied into the directory, it has its own ARN, which is referred to applied schema ARN. For more information, see arns. + */ + AppliedSchemaArn: Arn; + } + export interface CreateFacetRequest { + /** + * The schema ARN in which the new Facet will be created. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The name of the Facet, which is unique for a given schema. + */ + Name: FacetName; + /** + * The attributes that are associated with the Facet. + */ + Attributes?: FacetAttributeList; + /** + * Specifies whether a given object created from this facet is of type node, leaf node, policy or index. Node: Can have multiple children but one parent. Leaf node: Cannot have children but can have multiple parents. Policy: Allows you to store a policy document and policy type. For more information, see Policies. Index: Can be created with the Index API. + */ + ObjectType?: ObjectType; + /** + * There are two different styles that you can define on any given facet, Static and Dynamic. For static facets, all attributes must be defined in the schema. For dynamic facets, attributes can be defined during data plane operations. + */ + FacetStyle?: FacetStyle; + } + export interface CreateFacetResponse { + } + export interface CreateIndexRequest { + /** + * The ARN of the directory where the index should be created. + */ + DirectoryArn: Arn; + /** + * Specifies the attributes that should be indexed on. Currently only a single attribute is supported. + */ + OrderedIndexedAttributeList: AttributeKeyList; + /** + * Indicates whether the attribute that is being indexed has unique values or not. + */ + IsUnique: Bool; + /** + * A reference to the parent object that contains the index object. + */ + ParentReference?: ObjectReference; + /** + * The name of the link between the parent object and the index object. + */ + LinkName?: LinkName; + } + export interface CreateIndexResponse { + /** + * The ObjectIdentifier of the index created by this operation. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface CreateObjectRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory in which the object will be created. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * A list of schema facets to be associated with the object. Do not provide minor version components. See SchemaFacet for details. + */ + SchemaFacets: SchemaFacetList; + /** + * The attribute map whose attribute ARN contains the key and attribute value as the map value. + */ + ObjectAttributeList?: AttributeKeyAndValueList; + /** + * If specified, the parent reference to which this object will be attached. + */ + ParentReference?: ObjectReference; + /** + * The name of link that is used to attach this object to a parent. + */ + LinkName?: LinkName; + } + export interface CreateObjectResponse { + /** + * The identifier that is associated with the object. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface CreateSchemaRequest { + /** + * The name that is associated with the schema. This is unique to each account and in each region. + */ + Name: SchemaName; + } + export interface CreateSchemaResponse { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn?: Arn; + } + export interface CreateTypedLinkFacetRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * Facet structure that is associated with the typed link facet. + */ + Facet: TypedLinkFacet; + } + export interface CreateTypedLinkFacetResponse { + } + export type _Date = Date; + export type DatetimeAttributeValue = Date; + export interface DeleteDirectoryRequest { + /** + * The ARN of the directory to delete. + */ + DirectoryArn: Arn; + } + export interface DeleteDirectoryResponse { + /** + * The ARN of the deleted directory. + */ + DirectoryArn: Arn; + } + export interface DeleteFacetRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Facet. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The name of the facet to delete. + */ + Name: FacetName; + } + export interface DeleteFacetResponse { + } + export interface DeleteObjectRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * A reference that identifies the object. + */ + ObjectReference: ObjectReference; + } + export interface DeleteObjectResponse { + } + export interface DeleteSchemaRequest { + /** + * The Amazon Resource Name (ARN) of the development schema. For more information, see arns. + */ + SchemaArn: Arn; + } + export interface DeleteSchemaResponse { + /** + * The input ARN that is returned as part of the response. For more information, see arns. + */ + SchemaArn?: Arn; + } + export interface DeleteTypedLinkFacetRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The unique name of the typed link facet. + */ + Name: TypedLinkName; + } + export interface DeleteTypedLinkFacetResponse { + } + export interface DetachFromIndexRequest { + /** + * The Amazon Resource Name (ARN) of the directory the index and object exist in. + */ + DirectoryArn: Arn; + /** + * A reference to the index object. + */ + IndexReference: ObjectReference; + /** + * A reference to the object being detached from the index. + */ + TargetReference: ObjectReference; + } + export interface DetachFromIndexResponse { + /** + * The ObjectIdentifier of the object that was detached from the index. + */ + DetachedObjectIdentifier?: ObjectIdentifier; + } + export interface DetachObjectRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where objects reside. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The parent reference from which the object with the specified link name is detached. + */ + ParentReference: ObjectReference; + /** + * The link name associated with the object that needs to be detached. + */ + LinkName: LinkName; + } + export interface DetachObjectResponse { + /** + * The ObjectIdentifier that was detached from the object. + */ + DetachedObjectIdentifier?: ObjectIdentifier; + } + export interface DetachPolicyRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where both objects reside. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * Reference that identifies the policy object. + */ + PolicyReference: ObjectReference; + /** + * Reference that identifies the object whose policy object will be detached. + */ + ObjectReference: ObjectReference; + } + export interface DetachPolicyResponse { + } + export interface DetachTypedLinkRequest { + /** + * The Amazon Resource Name (ARN) of the directory where you want to detach the typed link. + */ + DirectoryArn: Arn; + /** + * Used to accept a typed link specifier as input. + */ + TypedLinkSpecifier: TypedLinkSpecifier; + } + export interface Directory { + /** + * The name of the directory. + */ + Name?: DirectoryName; + /** + * The Amazon Resource Name (ARN) that is associated with the directory. For more information, see arns. + */ + DirectoryArn?: DirectoryArn; + /** + * The state of the directory. Can be either Enabled, Disabled, or Deleted. + */ + State?: DirectoryState; + /** + * The date and time when the directory was created. + */ + CreationDateTime?: _Date; + } + export type DirectoryArn = string; + export type DirectoryList = Directory[]; + export type DirectoryName = string; + export type DirectoryState = "ENABLED"|"DISABLED"|"DELETED"|string; + export interface DisableDirectoryRequest { + /** + * The ARN of the directory to disable. + */ + DirectoryArn: Arn; + } + export interface DisableDirectoryResponse { + /** + * The ARN of the directory that has been disabled. + */ + DirectoryArn: Arn; + } + export interface EnableDirectoryRequest { + /** + * The ARN of the directory to enable. + */ + DirectoryArn: Arn; + } + export interface EnableDirectoryResponse { + /** + * The ARN of the enabled directory. + */ + DirectoryArn: Arn; + } + export type ExceptionMessage = string; + export interface Facet { + /** + * The name of the Facet. + */ + Name?: FacetName; + /** + * The object type that is associated with the facet. See CreateFacetRequest$ObjectType for more details. + */ + ObjectType?: ObjectType; + /** + * There are two different styles that you can define on any given facet, Static and Dynamic. For static facets, all attributes must be defined in the schema. For dynamic facets, attributes can be defined during data plane operations. + */ + FacetStyle?: FacetStyle; + } + export interface FacetAttribute { + /** + * The name of the facet attribute. + */ + Name: AttributeName; + /** + * A facet attribute consists of either a definition or a reference. This structure contains the attribute definition. See Attribute References for more information. + */ + AttributeDefinition?: FacetAttributeDefinition; + /** + * An attribute reference that is associated with the attribute. See Attribute References for more information. + */ + AttributeReference?: FacetAttributeReference; + /** + * The required behavior of the FacetAttribute. + */ + RequiredBehavior?: RequiredAttributeBehavior; + } + export interface FacetAttributeDefinition { + /** + * The type of the attribute. + */ + Type: FacetAttributeType; + /** + * The default value of the attribute (if configured). + */ + DefaultValue?: TypedAttributeValue; + /** + * Whether the attribute is mutable or not. + */ + IsImmutable?: Bool; + /** + * Validation rules attached to the attribute definition. + */ + Rules?: RuleMap; + } + export type FacetAttributeList = FacetAttribute[]; + export interface FacetAttributeReference { + /** + * The target facet name that is associated with the facet reference. See Attribute References for more information. + */ + TargetFacetName: FacetName; + /** + * The target attribute name that is associated with the facet reference. See Attribute References for more information. + */ + TargetAttributeName: AttributeName; + } + export type FacetAttributeType = "STRING"|"BINARY"|"BOOLEAN"|"NUMBER"|"DATETIME"|"VARIANT"|string; + export interface FacetAttributeUpdate { + /** + * The attribute to update. + */ + Attribute?: FacetAttribute; + /** + * The action to perform when updating the attribute. + */ + Action?: UpdateActionType; + } + export type FacetAttributeUpdateList = FacetAttributeUpdate[]; + export type FacetName = string; + export type FacetNameList = FacetName[]; + export type FacetStyle = "STATIC"|"DYNAMIC"|string; + export interface GetAppliedSchemaVersionRequest { + /** + * The ARN of the applied schema. + */ + SchemaArn: Arn; + } + export interface GetAppliedSchemaVersionResponse { + /** + * Current applied schema ARN, including the minor version in use if one was provided. + */ + AppliedSchemaArn?: Arn; + } + export interface GetDirectoryRequest { + /** + * The ARN of the directory. + */ + DirectoryArn: DirectoryArn; + } + export interface GetDirectoryResponse { + /** + * Metadata about the directory. + */ + Directory: Directory; + } + export interface GetFacetRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Facet. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The name of the facet to retrieve. + */ + Name: FacetName; + } + export interface GetFacetResponse { + /** + * The Facet structure that is associated with the facet. + */ + Facet?: Facet; + } + export interface GetLinkAttributesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the typed link resides. For more information, see arns or Typed Links. + */ + DirectoryArn: Arn; + /** + * Allows a typed link specifier to be accepted as input. + */ + TypedLinkSpecifier: TypedLinkSpecifier; + /** + * A list of attribute names whose values will be retrieved. + */ + AttributeNames: AttributeNameList; + /** + * The consistency level at which to retrieve the attributes on a typed link. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface GetLinkAttributesResponse { + /** + * The attributes that are associated with the typed link. + */ + Attributes?: AttributeKeyAndValueList; + } + export interface GetObjectAttributesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. + */ + DirectoryArn: Arn; + /** + * Reference that identifies the object whose attributes will be retrieved. + */ + ObjectReference: ObjectReference; + /** + * The consistency level at which to retrieve the attributes on an object. + */ + ConsistencyLevel?: ConsistencyLevel; + /** + * Identifier for the facet whose attributes will be retrieved. See SchemaFacet for details. + */ + SchemaFacet: SchemaFacet; + /** + * List of attribute names whose values will be retrieved. + */ + AttributeNames: AttributeNameList; + } + export interface GetObjectAttributesResponse { + /** + * The attributes that are associated with the object. + */ + Attributes?: AttributeKeyAndValueList; + } + export interface GetObjectInformationRequest { + /** + * The ARN of the directory being retrieved. + */ + DirectoryArn: Arn; + /** + * A reference to the object. + */ + ObjectReference: ObjectReference; + /** + * The consistency level at which to retrieve the object information. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface GetObjectInformationResponse { + /** + * The facets attached to the specified object. Although the response does not include minor version information, the most recently applied minor version of each Facet is in effect. See GetAppliedSchemaVersion for details. + */ + SchemaFacets?: SchemaFacetList; + /** + * The ObjectIdentifier of the specified object. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface GetSchemaAsJsonRequest { + /** + * The ARN of the schema to retrieve. + */ + SchemaArn: Arn; + } + export interface GetSchemaAsJsonResponse { + /** + * The name of the retrieved schema. + */ + Name?: SchemaName; + /** + * The JSON representation of the schema document. + */ + Document?: SchemaJsonDocument; + } + export interface GetTypedLinkFacetInformationRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The unique name of the typed link facet. + */ + Name: TypedLinkName; + } + export interface GetTypedLinkFacetInformationResponse { + /** + * The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see Typed Links. + */ + IdentityAttributeOrder?: AttributeNameList; + } + export interface IndexAttachment { + /** + * The indexed attribute values. + */ + IndexedAttributes?: AttributeKeyAndValueList; + /** + * In response to ListIndex, the ObjectIdentifier of the object attached to the index. In response to ListAttachedIndices, the ObjectIdentifier of the index attached to the object. This field will always contain the ObjectIdentifier of the object on the opposite side of the attachment specified in the query. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export type IndexAttachmentList = IndexAttachment[]; + export interface LinkAttributeAction { + /** + * A type that can be either UPDATE_OR_CREATE or DELETE. + */ + AttributeActionType?: UpdateActionType; + /** + * The value that you want to update to. + */ + AttributeUpdateValue?: TypedAttributeValue; + } + export interface LinkAttributeUpdate { + /** + * The key of the attribute being updated. + */ + AttributeKey?: AttributeKey; + /** + * The action to perform as part of the attribute update. + */ + AttributeAction?: LinkAttributeAction; + } + export type LinkAttributeUpdateList = LinkAttributeUpdate[]; + export type LinkName = string; + export type LinkNameToObjectIdentifierMap = {[key: string]: ObjectIdentifier}; + export interface ListAppliedSchemaArnsRequest { + /** + * The ARN of the directory you are listing. + */ + DirectoryArn: Arn; + /** + * The response for ListAppliedSchemaArns when this parameter is used will list all minor version ARNs for a major version. + */ + SchemaArn?: Arn; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListAppliedSchemaArnsResponse { + /** + * The ARNs of schemas that are applied to the directory. + */ + SchemaArns?: Arns; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListAttachedIndicesRequest { + /** + * The ARN of the directory. + */ + DirectoryArn: Arn; + /** + * A reference to the object that has indices attached. + */ + TargetReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + /** + * The consistency level to use for this operation. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface ListAttachedIndicesResponse { + /** + * The indices attached to the specified object. + */ + IndexAttachments?: IndexAttachmentList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListDevelopmentSchemaArnsRequest { + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListDevelopmentSchemaArnsResponse { + /** + * The ARNs of retrieved development schemas. + */ + SchemaArns?: Arns; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListDirectoriesRequest { + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + /** + * The state of the directories in the list. Can be either Enabled, Disabled, or Deleted. + */ + state?: DirectoryState; + } + export interface ListDirectoriesResponse { + /** + * Lists all directories that are associated with your account in pagination fashion. + */ + Directories: DirectoryList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListFacetAttributesRequest { + /** + * The ARN of the schema where the facet resides. + */ + SchemaArn: Arn; + /** + * The name of the facet whose attributes will be retrieved. + */ + Name: FacetName; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListFacetAttributesResponse { + /** + * The attributes attached to the facet. + */ + Attributes?: FacetAttributeList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListFacetNamesRequest { + /** + * The Amazon Resource Name (ARN) to retrieve facet names from. + */ + SchemaArn: Arn; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListFacetNamesResponse { + /** + * The names of facets that exist within the schema. + */ + FacetNames?: FacetNameList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListIncomingTypedLinksRequest { + /** + * The Amazon Resource Name (ARN) of the directory where you want to list the typed links. + */ + DirectoryArn: Arn; + /** + * Reference that identifies the object whose attributes will be listed. + */ + ObjectReference: ObjectReference; + /** + * Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. + */ + FilterAttributeRanges?: TypedLinkAttributeRangeList; + /** + * Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. + */ + FilterTypedLink?: TypedLinkSchemaAndFacetName; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + /** + * The consistency level to execute the request at. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface ListIncomingTypedLinksResponse { + /** + * Returns one or more typed link specifiers as output. + */ + LinkSpecifiers?: TypedLinkSpecifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListIndexRequest { + /** + * The ARN of the directory that the index exists in. + */ + DirectoryArn: Arn; + /** + * Specifies the ranges of indexed values that you want to query. + */ + RangesOnIndexedValues?: ObjectAttributeRangeList; + /** + * The reference to the index to list. + */ + IndexReference: ObjectReference; + /** + * The maximum number of objects in a single page to retrieve from the index during a request. For more information, see Amazon Cloud Directory Limits. + */ + MaxResults?: NumberResults; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The consistency level to execute the request at. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface ListIndexResponse { + /** + * The objects and indexed values attached to the index. + */ + IndexAttachments?: IndexAttachmentList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListManagedSchemaArnsRequest { + /** + * The response for ListManagedSchemaArns. When this parameter is used, all minor version ARNs for a major version are listed. + */ + SchemaArn?: Arn; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListManagedSchemaArnsResponse { + /** + * The ARNs for all AWS managed schemas. + */ + SchemaArns?: Arns; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListObjectAttributesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The reference that identifies the object whose attributes will be listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + /** + * Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. + */ + ConsistencyLevel?: ConsistencyLevel; + /** + * Used to filter the list of object attributes that are associated with a certain facet. + */ + FacetFilter?: SchemaFacet; + } + export interface ListObjectAttributesResponse { + /** + * Attributes map that is associated with the object. AttributeArn is the key, and attribute value is the value. + */ + Attributes?: AttributeKeyAndValueList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListObjectChildrenRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The reference that identifies the object for which child objects are being listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + /** + * Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface ListObjectChildrenResponse { + /** + * Children structure, which is a map with key as the LinkName and ObjectIdentifier as the value. + */ + Children?: LinkNameToObjectIdentifierMap; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListObjectParentPathsRequest { + /** + * The ARN of the directory to which the parent path applies. + */ + DirectoryArn: Arn; + /** + * The reference that identifies the object whose parent paths are listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + } + export interface ListObjectParentPathsResponse { + /** + * Returns the path to the ObjectIdentifiers that are associated with the directory. + */ + PathToObjectIdentifiersList?: PathToObjectIdentifiersList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListObjectParentsRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The reference that identifies the object for which parent objects are being listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + /** + * Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. + */ + ConsistencyLevel?: ConsistencyLevel; + /** + * When set to True, returns all ListObjectParentsResponse$ParentLinks. There could be multiple links between a parent-child pair. + */ + IncludeAllLinksToEachParent?: Bool; + } + export interface ListObjectParentsResponse { + /** + * The parent structure, which is a map with key as the ObjectIdentifier and LinkName as the value. + */ + Parents?: ObjectIdentifierToLinkNameMap; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * Returns a list of parent reference and LinkName Tuples. + */ + ParentLinks?: ObjectIdentifierAndLinkNameList; + } + export interface ListObjectPoliciesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where objects reside. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * Reference that identifies the object for which policies will be listed. + */ + ObjectReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + /** + * Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface ListObjectPoliciesResponse { + /** + * A list of policy ObjectIdentifiers, that are attached to the object. + */ + AttachedPolicyIds?: ObjectIdentifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListOutgoingTypedLinksRequest { + /** + * The Amazon Resource Name (ARN) of the directory where you want to list the typed links. + */ + DirectoryArn: Arn; + /** + * A reference that identifies the object whose attributes will be listed. + */ + ObjectReference: ObjectReference; + /** + * Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. + */ + FilterAttributeRanges?: TypedLinkAttributeRangeList; + /** + * Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls. + */ + FilterTypedLink?: TypedLinkSchemaAndFacetName; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + /** + * The consistency level to execute the request at. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface ListOutgoingTypedLinksResponse { + /** + * Returns a typed link specifier as output. + */ + TypedLinkSpecifiers?: TypedLinkSpecifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListPolicyAttachmentsRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where objects reside. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The reference that identifies the policy object. + */ + PolicyReference: ObjectReference; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + /** + * Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. + */ + ConsistencyLevel?: ConsistencyLevel; + } + export interface ListPolicyAttachmentsResponse { + /** + * A list of ObjectIdentifiers to which the policy is attached. + */ + ObjectIdentifiers?: ObjectIdentifierList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListPublishedSchemaArnsRequest { + /** + * The response for ListPublishedSchemaArns when this parameter is used will list all minor version ARNs for a major version. + */ + SchemaArn?: Arn; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListPublishedSchemaArnsResponse { + /** + * The ARNs of published schemas. + */ + SchemaArns?: Arns; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories. + */ + ResourceArn: Arn; + /** + * The pagination token. This is for future use. Currently pagination is not supported for tagging. + */ + NextToken?: NextToken; + /** + * The MaxResults parameter sets the maximum number of results returned in a single page. This is for future use and is not supported currently. + */ + MaxResults?: TagsNumberResults; + } + export interface ListTagsForResourceResponse { + /** + * A list of tag key value pairs that are associated with the response. + */ + Tags?: TagList; + /** + * The token to use to retrieve the next page of results. This value is null when there are no more results to return. + */ + NextToken?: NextToken; + } + export interface ListTypedLinkFacetAttributesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The unique name of the typed link facet. + */ + Name: TypedLinkName; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListTypedLinkFacetAttributesResponse { + /** + * An ordered set of attributes associate with the typed link. + */ + Attributes?: TypedLinkAttributeDefinitionList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface ListTypedLinkFacetNamesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results to retrieve. + */ + MaxResults?: NumberResults; + } + export interface ListTypedLinkFacetNamesResponse { + /** + * The names of typed link facets that exist within the schema. + */ + FacetNames?: TypedLinkNameList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export interface LookupPolicyRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * Reference that identifies the object whose policies will be looked up. + */ + ObjectReference: ObjectReference; + /** + * The token to request the next page of results. + */ + NextToken?: NextToken; + /** + * The maximum number of items to be retrieved in a single call. This is an approximate number. + */ + MaxResults?: NumberResults; + } + export interface LookupPolicyResponse { + /** + * Provides list of path to policies. Policies contain PolicyId, ObjectIdentifier, and PolicyType. For more information, see Policies. + */ + PolicyToPathList?: PolicyToPathList; + /** + * The pagination token. + */ + NextToken?: NextToken; + } + export type NextToken = string; + export type NumberAttributeValue = string; + export type NumberResults = number; + export interface ObjectAttributeAction { + /** + * A type that can be either Update or Delete. + */ + ObjectAttributeActionType?: UpdateActionType; + /** + * The value that you want to update to. + */ + ObjectAttributeUpdateValue?: TypedAttributeValue; + } + export interface ObjectAttributeRange { + /** + * The key of the attribute that the attribute range covers. + */ + AttributeKey?: AttributeKey; + /** + * The range of attribute values being selected. + */ + Range?: TypedAttributeValueRange; + } + export type ObjectAttributeRangeList = ObjectAttributeRange[]; + export interface ObjectAttributeUpdate { + /** + * The key of the attribute being updated. + */ + ObjectAttributeKey?: AttributeKey; + /** + * The action to perform as part of the attribute update. + */ + ObjectAttributeAction?: ObjectAttributeAction; + } + export type ObjectAttributeUpdateList = ObjectAttributeUpdate[]; + export type ObjectIdentifier = string; + export type ObjectIdentifierAndLinkNameList = ObjectIdentifierAndLinkNameTuple[]; + export interface ObjectIdentifierAndLinkNameTuple { + /** + * The ID that is associated with the object. + */ + ObjectIdentifier?: ObjectIdentifier; + /** + * The name of the link between the parent and the child object. + */ + LinkName?: LinkName; + } + export type ObjectIdentifierList = ObjectIdentifier[]; + export type ObjectIdentifierToLinkNameMap = {[key: string]: LinkName}; + export interface ObjectReference { + /** + * A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see Access Objects. You can identify an object in one of the following ways: $ObjectIdentifier - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier /some/path - Identifies the object based on path #SomeBatchReference - Identifies the object in a batch call + */ + Selector?: SelectorObjectReference; + } + export type ObjectType = "NODE"|"LEAF_NODE"|"POLICY"|"INDEX"|string; + export type PathString = string; + export interface PathToObjectIdentifiers { + /** + * The path that is used to identify the object starting from directory root. + */ + Path?: PathString; + /** + * Lists ObjectIdentifiers starting from directory root to the object in the request. + */ + ObjectIdentifiers?: ObjectIdentifierList; + } + export type PathToObjectIdentifiersList = PathToObjectIdentifiers[]; + export interface PolicyAttachment { + /** + * The ID of PolicyAttachment. + */ + PolicyId?: ObjectIdentifier; + /** + * The ObjectIdentifier that is associated with PolicyAttachment. + */ + ObjectIdentifier?: ObjectIdentifier; + /** + * The type of policy that can be associated with PolicyAttachment. + */ + PolicyType?: PolicyType; + } + export type PolicyAttachmentList = PolicyAttachment[]; + export interface PolicyToPath { + /** + * The path that is referenced from the root. + */ + Path?: PathString; + /** + * List of policy objects. + */ + Policies?: PolicyAttachmentList; + } + export type PolicyToPathList = PolicyToPath[]; + export type PolicyType = string; + export interface PublishSchemaRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the development schema. For more information, see arns. + */ + DevelopmentSchemaArn: Arn; + /** + * The major version under which the schema will be published. Schemas have both a major and minor version associated with them. + */ + Version: Version; + /** + * The minor version under which the schema will be published. This parameter is recommended. Schemas have both a major and minor version associated with them. + */ + MinorVersion?: Version; + /** + * The new name under which the schema will be published. If this is not provided, the development schema is considered. + */ + Name?: SchemaName; + } + export interface PublishSchemaResponse { + /** + * The ARN that is associated with the published schema. For more information, see arns. + */ + PublishedSchemaArn?: Arn; + } + export interface PutSchemaFromJsonRequest { + /** + * The ARN of the schema to update. + */ + SchemaArn: Arn; + /** + * The replacement JSON schema. + */ + Document: SchemaJsonDocument; + } + export interface PutSchemaFromJsonResponse { + /** + * The ARN of the schema to update. + */ + Arn?: Arn; + } + export type RangeMode = "FIRST"|"LAST"|"LAST_BEFORE_MISSING_VALUES"|"INCLUSIVE"|"EXCLUSIVE"|string; + export interface RemoveFacetFromObjectRequest { + /** + * The ARN of the directory in which the object resides. + */ + DirectoryArn: Arn; + /** + * The facet to remove. See SchemaFacet for details. + */ + SchemaFacet: SchemaFacet; + /** + * A reference to the object to remove the facet from. + */ + ObjectReference: ObjectReference; + } + export interface RemoveFacetFromObjectResponse { + } + export type RequiredAttributeBehavior = "REQUIRED_ALWAYS"|"NOT_REQUIRED"|string; + export interface Rule { + /** + * The type of attribute validation rule. + */ + Type?: RuleType; + /** + * The minimum and maximum parameters that are associated with the rule. + */ + Parameters?: RuleParameterMap; + } + export type RuleKey = string; + export type RuleMap = {[key: string]: Rule}; + export type RuleParameterKey = string; + export type RuleParameterMap = {[key: string]: RuleParameterValue}; + export type RuleParameterValue = string; + export type RuleType = "BINARY_LENGTH"|"NUMBER_COMPARISON"|"STRING_FROM_SET"|"STRING_LENGTH"|string; + export interface SchemaFacet { + /** + * The ARN of the schema that contains the facet with no minor component. See arns and In-Place Schema Upgrade for a description of when to provide minor versions. + */ + SchemaArn?: Arn; + /** + * The name of the facet. + */ + FacetName?: FacetName; + } + export type SchemaFacetList = SchemaFacet[]; + export type SchemaJsonDocument = string; + export type SchemaName = string; + export type SelectorObjectReference = string; + export type StringAttributeValue = string; + export interface Tag { + /** + * The key that is associated with the tag. + */ + Key?: TagKey; + /** + * The value that is associated with the tag. + */ + Value?: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories. + */ + ResourceArn: Arn; + /** + * A list of tag key-value pairs. + */ + Tags: TagList; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type TagsNumberResults = number; + export interface TypedAttributeValue { + /** + * A string data value. + */ + StringValue?: StringAttributeValue; + /** + * A binary data value. + */ + BinaryValue?: BinaryAttributeValue; + /** + * A Boolean data value. + */ + BooleanValue?: BooleanAttributeValue; + /** + * A number data value. + */ + NumberValue?: NumberAttributeValue; + /** + * A date and time value. + */ + DatetimeValue?: DatetimeAttributeValue; + } + export interface TypedAttributeValueRange { + /** + * The inclusive or exclusive range start. + */ + StartMode: RangeMode; + /** + * The value to start the range at. + */ + StartValue?: TypedAttributeValue; + /** + * The inclusive or exclusive range end. + */ + EndMode: RangeMode; + /** + * The attribute value to terminate the range at. + */ + EndValue?: TypedAttributeValue; + } + export interface TypedLinkAttributeDefinition { + /** + * The unique name of the typed link attribute. + */ + Name: AttributeName; + /** + * The type of the attribute. + */ + Type: FacetAttributeType; + /** + * The default value of the attribute (if configured). + */ + DefaultValue?: TypedAttributeValue; + /** + * Whether the attribute is mutable or not. + */ + IsImmutable?: Bool; + /** + * Validation rules that are attached to the attribute definition. + */ + Rules?: RuleMap; + /** + * The required behavior of the TypedLinkAttributeDefinition. + */ + RequiredBehavior: RequiredAttributeBehavior; + } + export type TypedLinkAttributeDefinitionList = TypedLinkAttributeDefinition[]; + export interface TypedLinkAttributeRange { + /** + * The unique name of the typed link attribute. + */ + AttributeName?: AttributeName; + /** + * The range of attribute values that are being selected. + */ + Range: TypedAttributeValueRange; + } + export type TypedLinkAttributeRangeList = TypedLinkAttributeRange[]; + export interface TypedLinkFacet { + /** + * The unique name of the typed link facet. + */ + Name: TypedLinkName; + /** + * A set of key-value pairs associated with the typed link. Typed link attributes are used when you have data values that are related to the link itself, and not to one of the two objects being linked. Identity attributes also serve to distinguish the link from others of the same type between the same objects. + */ + Attributes: TypedLinkAttributeDefinitionList; + /** + * The set of attributes that distinguish links made from this facet from each other, in the order of significance. Listing typed links can filter on the values of these attributes. See ListOutgoingTypedLinks and ListIncomingTypedLinks for details. + */ + IdentityAttributeOrder: AttributeNameList; + } + export interface TypedLinkFacetAttributeUpdate { + /** + * The attribute to update. + */ + Attribute: TypedLinkAttributeDefinition; + /** + * The action to perform when updating the attribute. + */ + Action: UpdateActionType; + } + export type TypedLinkFacetAttributeUpdateList = TypedLinkFacetAttributeUpdate[]; + export type TypedLinkName = string; + export type TypedLinkNameList = TypedLinkName[]; + export interface TypedLinkSchemaAndFacetName { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The unique name of the typed link facet. + */ + TypedLinkName: TypedLinkName; + } + export interface TypedLinkSpecifier { + /** + * Identifies the typed link facet that is associated with the typed link. + */ + TypedLinkFacet: TypedLinkSchemaAndFacetName; + /** + * Identifies the source object that the typed link will attach to. + */ + SourceObjectReference: ObjectReference; + /** + * Identifies the target object that the typed link will attach to. + */ + TargetObjectReference: ObjectReference; + /** + * Identifies the attribute value to update. + */ + IdentityAttributeValues: AttributeNameAndValueList; + } + export type TypedLinkSpecifierList = TypedLinkSpecifier[]; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories. + */ + ResourceArn: Arn; + /** + * Keys of the tag that need to be removed from the resource. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export type UpdateActionType = "CREATE_OR_UPDATE"|"DELETE"|string; + export interface UpdateFacetRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Facet. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The name of the facet. + */ + Name: FacetName; + /** + * List of attributes that need to be updated in a given schema Facet. Each attribute is followed by AttributeAction, which specifies the type of update operation to perform. + */ + AttributeUpdates?: FacetAttributeUpdateList; + /** + * The object type that is associated with the facet. See CreateFacetRequest$ObjectType for more details. + */ + ObjectType?: ObjectType; + } + export interface UpdateFacetResponse { + } + export interface UpdateLinkAttributesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the updated typed link resides. For more information, see arns or Typed Links. + */ + DirectoryArn: Arn; + /** + * Allows a typed link specifier to be accepted as input. + */ + TypedLinkSpecifier: TypedLinkSpecifier; + /** + * The attributes update structure. + */ + AttributeUpdates: LinkAttributeUpdateList; + } + export interface UpdateLinkAttributesResponse { + } + export interface UpdateObjectAttributesRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. + */ + DirectoryArn: Arn; + /** + * The reference that identifies the object. + */ + ObjectReference: ObjectReference; + /** + * The attributes update structure. + */ + AttributeUpdates: ObjectAttributeUpdateList; + } + export interface UpdateObjectAttributesResponse { + /** + * The ObjectIdentifier of the updated object. + */ + ObjectIdentifier?: ObjectIdentifier; + } + export interface UpdateSchemaRequest { + /** + * The Amazon Resource Name (ARN) of the development schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The name of the schema. + */ + Name: SchemaName; + } + export interface UpdateSchemaResponse { + /** + * The ARN that is associated with the updated schema. For more information, see arns. + */ + SchemaArn?: Arn; + } + export interface UpdateTypedLinkFacetRequest { + /** + * The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. + */ + SchemaArn: Arn; + /** + * The unique name of the typed link facet. + */ + Name: TypedLinkName; + /** + * Attributes update structure. + */ + AttributeUpdates: TypedLinkFacetAttributeUpdateList; + /** + * The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link facet. When providing ranges to a typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are presumed to match the entire range. Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. For more information about identity attributes, see Typed Links. + */ + IdentityAttributeOrder: AttributeNameList; + } + export interface UpdateTypedLinkFacetResponse { + } + export interface UpgradeAppliedSchemaRequest { + /** + * The revision of the published schema to upgrade the directory to. + */ + PublishedSchemaArn: Arn; + /** + * The ARN for the directory to which the upgraded schema will be applied. + */ + DirectoryArn: Arn; + /** + * Used for testing whether the major version schemas are backward compatible or not. If schema compatibility fails, an exception would be thrown else the call would succeed but no changes will be saved. This parameter is optional. + */ + DryRun?: Bool; + } + export interface UpgradeAppliedSchemaResponse { + /** + * The ARN of the upgraded schema that is returned as part of the response. + */ + UpgradedSchemaArn?: Arn; + /** + * The ARN of the directory that is returned as part of the response. + */ + DirectoryArn?: Arn; + } + export interface UpgradePublishedSchemaRequest { + /** + * The ARN of the development schema with the changes used for the upgrade. + */ + DevelopmentSchemaArn: Arn; + /** + * The ARN of the published schema to be upgraded. + */ + PublishedSchemaArn: Arn; + /** + * Identifies the minor version of the published schema that will be created. This parameter is NOT optional. + */ + MinorVersion: Version; + /** + * Used for testing whether the Development schema provided is backwards compatible, or not, with the publish schema provided by the user to be upgraded. If schema compatibility fails, an exception would be thrown else the call would succeed. This parameter is optional and defaults to false. + */ + DryRun?: Bool; + } + export interface UpgradePublishedSchemaResponse { + /** + * The ARN of the upgraded schema that is returned as part of the response. + */ + UpgradedSchemaArn?: Arn; + } + export type Version = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2016-05-10"|"2016-05-10"|"2017-01-11"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudDirectory client. + */ + export import Types = CloudDirectory; +} +export = CloudDirectory; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/clouddirectory.js b/justdanceonline-main/node_modules/aws-sdk/clients/clouddirectory.js new file mode 100644 index 0000000000000000000000000000000000000000..e764f6d0f5bdc73546729b4e3a8650625d6d27c1 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/clouddirectory.js @@ -0,0 +1,27 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['clouddirectory'] = {}; +AWS.CloudDirectory = Service.defineService('clouddirectory', ['2016-05-10', '2016-05-10*', '2017-01-11']); +Object.defineProperty(apiLoader.services['clouddirectory'], '2016-05-10', { + get: function get() { + var model = require('../apis/clouddirectory-2016-05-10.min.json'); + model.paginators = require('../apis/clouddirectory-2016-05-10.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['clouddirectory'], '2017-01-11', { + get: function get() { + var model = require('../apis/clouddirectory-2017-01-11.min.json'); + model.paginators = require('../apis/clouddirectory-2017-01-11.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudDirectory; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudformation.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudformation.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..fe66d7a3b49be12905b69c969670aceebe7ed90c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudformation.d.ts @@ -0,0 +1,4109 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {WaiterConfiguration} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudFormation extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudFormation.Types.ClientConfiguration) + config: Config & CloudFormation.Types.ClientConfiguration; + /** + * Activates a public third-party extension, making it available for use in stack templates. For more information, see Using public extensions in the CloudFormation User Guide. Once you have activated a public third-party extension in your account and region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. + */ + activateType(params: CloudFormation.Types.ActivateTypeInput, callback?: (err: AWSError, data: CloudFormation.Types.ActivateTypeOutput) => void): Request; + /** + * Activates a public third-party extension, making it available for use in stack templates. For more information, see Using public extensions in the CloudFormation User Guide. Once you have activated a public third-party extension in your account and region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. + */ + activateType(callback?: (err: AWSError, data: CloudFormation.Types.ActivateTypeOutput) => void): Request; + /** + * Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry for the account and region. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. + */ + batchDescribeTypeConfigurations(params: CloudFormation.Types.BatchDescribeTypeConfigurationsInput, callback?: (err: AWSError, data: CloudFormation.Types.BatchDescribeTypeConfigurationsOutput) => void): Request; + /** + * Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry for the account and region. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. + */ + batchDescribeTypeConfigurations(callback?: (err: AWSError, data: CloudFormation.Types.BatchDescribeTypeConfigurationsOutput) => void): Request; + /** + * Cancels an update on the specified stack. If the call completes successfully, the stack rolls back the update and reverts to the previous stack configuration. You can cancel only stacks that are in the UPDATE_IN_PROGRESS state. + */ + cancelUpdateStack(params: CloudFormation.Types.CancelUpdateStackInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Cancels an update on the specified stack. If the call completes successfully, the stack rolls back the update and reverts to the previous stack configuration. You can cancel only stacks that are in the UPDATE_IN_PROGRESS state. + */ + cancelUpdateStack(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually fix the error and continue the rollback. By continuing the rollback, you can return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again. A stack goes into the UPDATE_ROLLBACK_FAILED state when AWS CloudFormation cannot roll back all changes after a failed stack update. For example, you might have a stack that is rolling back to an old database instance that was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't know the database was deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to fail. + */ + continueUpdateRollback(params: CloudFormation.Types.ContinueUpdateRollbackInput, callback?: (err: AWSError, data: CloudFormation.Types.ContinueUpdateRollbackOutput) => void): Request; + /** + * For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually fix the error and continue the rollback. By continuing the rollback, you can return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again. A stack goes into the UPDATE_ROLLBACK_FAILED state when AWS CloudFormation cannot roll back all changes after a failed stack update. For example, you might have a stack that is rolling back to an old database instance that was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't know the database was deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to fail. + */ + continueUpdateRollback(callback?: (err: AWSError, data: CloudFormation.Types.ContinueUpdateRollbackOutput) => void): Request; + /** + * Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that AWS CloudFormation will create. If you create a change set for an existing stack, AWS CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources AWS CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack. To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify CREATE. To create a change set for an existing stack, specify UPDATE for the ChangeSetType parameter. To create a change set for an import operation, specify IMPORT for the ChangeSetType parameter. After the CreateChangeSet call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action. When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't make changes until you execute the change set. To create a change set for the entire stack hierachy, set IncludeNestedStacks to True. + */ + createChangeSet(params: CloudFormation.Types.CreateChangeSetInput, callback?: (err: AWSError, data: CloudFormation.Types.CreateChangeSetOutput) => void): Request; + /** + * Creates a list of changes that will be applied to a stack so that you can review the changes before executing them. You can create a change set for a stack that doesn't exist or an existing stack. If you create a change set for a stack that doesn't exist, the change set shows all of the resources that AWS CloudFormation will create. If you create a change set for an existing stack, AWS CloudFormation compares the stack's information with the information that you submit in the change set and lists the differences. Use change sets to understand which resources AWS CloudFormation will create or change, and how it will change resources in an existing stack, before you create or update a stack. To create a change set for a stack that doesn't exist, for the ChangeSetType parameter, specify CREATE. To create a change set for an existing stack, specify UPDATE for the ChangeSetType parameter. To create a change set for an import operation, specify IMPORT for the ChangeSetType parameter. After the CreateChangeSet call successfully completes, AWS CloudFormation starts creating the change set. To check the status of the change set or to review it, use the DescribeChangeSet action. When you are satisfied with the changes the change set will make, execute the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't make changes until you execute the change set. To create a change set for the entire stack hierachy, set IncludeNestedStacks to True. + */ + createChangeSet(callback?: (err: AWSError, data: CloudFormation.Types.CreateChangeSetOutput) => void): Request; + /** + * Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the DescribeStacks API. + */ + createStack(params: CloudFormation.Types.CreateStackInput, callback?: (err: AWSError, data: CloudFormation.Types.CreateStackOutput) => void): Request; + /** + * Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the DescribeStacks API. + */ + createStack(callback?: (err: AWSError, data: CloudFormation.Types.CreateStackOutput) => void): Request; + /** + * Creates stack instances for the specified accounts, within the specified Regions. A stack instance refers to a stack in a specific account and Region. You must specify at least one value for either Accounts or DeploymentTargets, and you must specify at least one value for Regions. + */ + createStackInstances(params: CloudFormation.Types.CreateStackInstancesInput, callback?: (err: AWSError, data: CloudFormation.Types.CreateStackInstancesOutput) => void): Request; + /** + * Creates stack instances for the specified accounts, within the specified Regions. A stack instance refers to a stack in a specific account and Region. You must specify at least one value for either Accounts or DeploymentTargets, and you must specify at least one value for Regions. + */ + createStackInstances(callback?: (err: AWSError, data: CloudFormation.Types.CreateStackInstancesOutput) => void): Request; + /** + * Creates a stack set. + */ + createStackSet(params: CloudFormation.Types.CreateStackSetInput, callback?: (err: AWSError, data: CloudFormation.Types.CreateStackSetOutput) => void): Request; + /** + * Creates a stack set. + */ + createStackSet(callback?: (err: AWSError, data: CloudFormation.Types.CreateStackSetOutput) => void): Request; + /** + * Deactivates a public extension that was previously activated in this account and region. Once deactivated, an extension cannot be used in any CloudFormation operation. This includes stack update operations where the stack template includes the extension, even if no updates are being made to the extension. In addition, deactivated extensions are not automatically updated if a new version of the extension is released. + */ + deactivateType(params: CloudFormation.Types.DeactivateTypeInput, callback?: (err: AWSError, data: CloudFormation.Types.DeactivateTypeOutput) => void): Request; + /** + * Deactivates a public extension that was previously activated in this account and region. Once deactivated, an extension cannot be used in any CloudFormation operation. This includes stack update operations where the stack template includes the extension, even if no updates are being made to the extension. In addition, deactivated extensions are not automatically updated if a new version of the extension is released. + */ + deactivateType(callback?: (err: AWSError, data: CloudFormation.Types.DeactivateTypeOutput) => void): Request; + /** + * Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set. If the call successfully completes, AWS CloudFormation successfully deleted the change set. If IncludeNestedStacks specifies True during the creation of the nested change set, then DeleteChangeSet will delete all change sets that belong to the stacks hierarchy and will also delete all change sets for nested stacks with the status of REVIEW_IN_PROGRESS. + */ + deleteChangeSet(params: CloudFormation.Types.DeleteChangeSetInput, callback?: (err: AWSError, data: CloudFormation.Types.DeleteChangeSetOutput) => void): Request; + /** + * Deletes the specified change set. Deleting change sets ensures that no one executes the wrong change set. If the call successfully completes, AWS CloudFormation successfully deleted the change set. If IncludeNestedStacks specifies True during the creation of the nested change set, then DeleteChangeSet will delete all change sets that belong to the stacks hierarchy and will also delete all change sets for nested stacks with the status of REVIEW_IN_PROGRESS. + */ + deleteChangeSet(callback?: (err: AWSError, data: CloudFormation.Types.DeleteChangeSetOutput) => void): Request; + /** + * Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully. + */ + deleteStack(params: CloudFormation.Types.DeleteStackInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully. + */ + deleteStack(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes stack instances for the specified accounts, in the specified Regions. + */ + deleteStackInstances(params: CloudFormation.Types.DeleteStackInstancesInput, callback?: (err: AWSError, data: CloudFormation.Types.DeleteStackInstancesOutput) => void): Request; + /** + * Deletes stack instances for the specified accounts, in the specified Regions. + */ + deleteStackInstances(callback?: (err: AWSError, data: CloudFormation.Types.DeleteStackInstancesOutput) => void): Request; + /** + * Deletes a stack set. Before you can delete a stack set, all of its member stack instances must be deleted. For more information about how to do this, see DeleteStackInstances. + */ + deleteStackSet(params: CloudFormation.Types.DeleteStackSetInput, callback?: (err: AWSError, data: CloudFormation.Types.DeleteStackSetOutput) => void): Request; + /** + * Deletes a stack set. Before you can delete a stack set, all of its member stack instances must be deleted. For more information about how to do this, see DeleteStackInstances. + */ + deleteStackSet(callback?: (err: AWSError, data: CloudFormation.Types.DeleteStackSetOutput) => void): Request; + /** + * Marks an extension or extension version as DEPRECATED in the CloudFormation registry, removing it from active use. Deprecated extensions or extension versions cannot be used in CloudFormation operations. To deregister an entire extension, you must individually deregister all active versions of that extension. If an extension has only a single active version, deregistering that version results in the extension itself being deregistered and marked as deprecated in the registry. You cannot deregister the default version of an extension if there are other active version of that extension. If you do deregister the default version of an extension, the textensionype itself is deregistered as well and marked as deprecated. To view the deprecation status of an extension or extension version, use DescribeType. + */ + deregisterType(params: CloudFormation.Types.DeregisterTypeInput, callback?: (err: AWSError, data: CloudFormation.Types.DeregisterTypeOutput) => void): Request; + /** + * Marks an extension or extension version as DEPRECATED in the CloudFormation registry, removing it from active use. Deprecated extensions or extension versions cannot be used in CloudFormation operations. To deregister an entire extension, you must individually deregister all active versions of that extension. If an extension has only a single active version, deregistering that version results in the extension itself being deregistered and marked as deprecated in the registry. You cannot deregister the default version of an extension if there are other active version of that extension. If you do deregister the default version of an extension, the textensionype itself is deregistered as well and marked as deprecated. To view the deprecation status of an extension or extension version, use DescribeType. + */ + deregisterType(callback?: (err: AWSError, data: CloudFormation.Types.DeregisterTypeOutput) => void): Request; + /** + * Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in your account. For more information about account limits, see AWS CloudFormation Limits in the AWS CloudFormation User Guide. + */ + describeAccountLimits(params: CloudFormation.Types.DescribeAccountLimitsInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeAccountLimitsOutput) => void): Request; + /** + * Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in your account. For more information about account limits, see AWS CloudFormation Limits in the AWS CloudFormation User Guide. + */ + describeAccountLimits(callback?: (err: AWSError, data: CloudFormation.Types.DescribeAccountLimitsOutput) => void): Request; + /** + * Returns the inputs for the change set and a list of changes that AWS CloudFormation will make if you execute the change set. For more information, see Updating Stacks Using Change Sets in the AWS CloudFormation User Guide. + */ + describeChangeSet(params: CloudFormation.Types.DescribeChangeSetInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeChangeSetOutput) => void): Request; + /** + * Returns the inputs for the change set and a list of changes that AWS CloudFormation will make if you execute the change set. For more information, see Updating Stacks Using Change Sets in the AWS CloudFormation User Guide. + */ + describeChangeSet(callback?: (err: AWSError, data: CloudFormation.Types.DescribeChangeSetOutput) => void): Request; + /** + * Returns information about a CloudFormation extension publisher. If you do not supply a PublisherId, and you have registered as an extension publisher, DescribePublisher returns information about your own publisher account. For more information on registering as a publisher, see: RegisterPublisher Publishing extensions to make them available for public use in the CloudFormation CLI User Guide + */ + describePublisher(params: CloudFormation.Types.DescribePublisherInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribePublisherOutput) => void): Request; + /** + * Returns information about a CloudFormation extension publisher. If you do not supply a PublisherId, and you have registered as an extension publisher, DescribePublisher returns information about your own publisher account. For more information on registering as a publisher, see: RegisterPublisher Publishing extensions to make them available for public use in the CloudFormation CLI User Guide + */ + describePublisher(callback?: (err: AWSError, data: CloudFormation.Types.DescribePublisherOutput) => void): Request; + /** + * Returns information about a stack drift detection operation. A stack drift detection operation detects whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. A stack is considered to have drifted if one or more of its resources have drifted. For more information on stack and resource drift, see Detecting Unregulated Configuration Changes to Stacks and Resources. Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift returns a StackDriftDetectionId you can use to monitor the progress of the operation using DescribeStackDriftDetectionStatus. Once the drift detection operation has completed, use DescribeStackResourceDrifts to return drift information about the stack and its resources. + */ + describeStackDriftDetectionStatus(params: CloudFormation.Types.DescribeStackDriftDetectionStatusInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackDriftDetectionStatusOutput) => void): Request; + /** + * Returns information about a stack drift detection operation. A stack drift detection operation detects whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. A stack is considered to have drifted if one or more of its resources have drifted. For more information on stack and resource drift, see Detecting Unregulated Configuration Changes to Stacks and Resources. Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift returns a StackDriftDetectionId you can use to monitor the progress of the operation using DescribeStackDriftDetectionStatus. Once the drift detection operation has completed, use DescribeStackResourceDrifts to return drift information about the stack and its resources. + */ + describeStackDriftDetectionStatus(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackDriftDetectionStatusOutput) => void): Request; + /** + * Returns all stack related events for a specified stack in reverse chronological order. For more information about a stack's event history, go to Stacks in the AWS CloudFormation User Guide. You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID). + */ + describeStackEvents(params: CloudFormation.Types.DescribeStackEventsInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackEventsOutput) => void): Request; + /** + * Returns all stack related events for a specified stack in reverse chronological order. For more information about a stack's event history, go to Stacks in the AWS CloudFormation User Guide. You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID). + */ + describeStackEvents(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackEventsOutput) => void): Request; + /** + * Returns the stack instance that's associated with the specified stack set, AWS account, and Region. For a list of stack instances that are associated with a specific stack set, use ListStackInstances. + */ + describeStackInstance(params: CloudFormation.Types.DescribeStackInstanceInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackInstanceOutput) => void): Request; + /** + * Returns the stack instance that's associated with the specified stack set, AWS account, and Region. For a list of stack instances that are associated with a specific stack set, use ListStackInstances. + */ + describeStackInstance(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackInstanceOutput) => void): Request; + /** + * Returns a description of the specified resource in the specified stack. For deleted stacks, DescribeStackResource returns resource information for up to 90 days after the stack has been deleted. + */ + describeStackResource(params: CloudFormation.Types.DescribeStackResourceInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackResourceOutput) => void): Request; + /** + * Returns a description of the specified resource in the specified stack. For deleted stacks, DescribeStackResource returns resource information for up to 90 days after the stack has been deleted. + */ + describeStackResource(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackResourceOutput) => void): Request; + /** + * Returns drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where AWS CloudFormation detects configuration drift. For a given stack, there will be one StackResourceDrift for each stack resource that has been checked for drift. Resources that have not yet been checked for drift are not included. Resources that do not currently support drift detection are not checked, and so not included. For a list of resources that support drift detection, see Resources that Support Drift Detection. Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all supported resources for a given stack. + */ + describeStackResourceDrifts(params: CloudFormation.Types.DescribeStackResourceDriftsInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackResourceDriftsOutput) => void): Request; + /** + * Returns drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where AWS CloudFormation detects configuration drift. For a given stack, there will be one StackResourceDrift for each stack resource that has been checked for drift. Resources that have not yet been checked for drift are not included. Resources that do not currently support drift detection are not checked, and so not included. For a list of resources that support drift detection, see Resources that Support Drift Detection. Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all supported resources for a given stack. + */ + describeStackResourceDrifts(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackResourceDriftsOutput) => void): Request; + /** + * Returns AWS resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned. Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead. For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the stack has been deleted. You must specify either StackName or PhysicalResourceId, but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId, go to the AWS CloudFormation User Guide. A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request. + */ + describeStackResources(params: CloudFormation.Types.DescribeStackResourcesInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackResourcesOutput) => void): Request; + /** + * Returns AWS resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned. Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead. For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the stack has been deleted. You must specify either StackName or PhysicalResourceId, but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId, go to the AWS CloudFormation User Guide. A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request. + */ + describeStackResources(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackResourcesOutput) => void): Request; + /** + * Returns the description of the specified stack set. + */ + describeStackSet(params: CloudFormation.Types.DescribeStackSetInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackSetOutput) => void): Request; + /** + * Returns the description of the specified stack set. + */ + describeStackSet(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackSetOutput) => void): Request; + /** + * Returns the description of the specified stack set operation. + */ + describeStackSetOperation(params: CloudFormation.Types.DescribeStackSetOperationInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackSetOperationOutput) => void): Request; + /** + * Returns the description of the specified stack set operation. + */ + describeStackSetOperation(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStackSetOperationOutput) => void): Request; + /** + * Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. If the stack does not exist, an AmazonCloudFormationException is returned. + */ + describeStacks(params: CloudFormation.Types.DescribeStacksInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. If the stack does not exist, an AmazonCloudFormationException is returned. + */ + describeStacks(callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Returns detailed information about an extension that has been registered. If you specify a VersionId, DescribeType returns information about that specific extension version. Otherwise, it returns information about the default extension version. + */ + describeType(params: CloudFormation.Types.DescribeTypeInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeTypeOutput) => void): Request; + /** + * Returns detailed information about an extension that has been registered. If you specify a VersionId, DescribeType returns information about that specific extension version. Otherwise, it returns information about the default extension version. + */ + describeType(callback?: (err: AWSError, data: CloudFormation.Types.DescribeTypeOutput) => void): Request; + /** + * Returns information about an extension's registration, including its current status and type and version identifiers. When you initiate a registration request using RegisterType , you can then use DescribeTypeRegistration to monitor the progress of that registration request. Once the registration request has completed, use DescribeType to return detailed information about an extension. + */ + describeTypeRegistration(params: CloudFormation.Types.DescribeTypeRegistrationInput, callback?: (err: AWSError, data: CloudFormation.Types.DescribeTypeRegistrationOutput) => void): Request; + /** + * Returns information about an extension's registration, including its current status and type and version identifiers. When you initiate a registration request using RegisterType , you can then use DescribeTypeRegistration to monitor the progress of that registration request. Once the registration request has completed, use DescribeType to return detailed information about an extension. + */ + describeTypeRegistration(callback?: (err: AWSError, data: CloudFormation.Types.DescribeTypeRegistrationOutput) => void): Request; + /** + * Detects whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. For each resource in the stack that supports drift detection, AWS CloudFormation compares the actual configuration of the resource with its expected template configuration. Only resource properties explicitly defined in the stack template are checked for drift. A stack is considered to have drifted if one or more of its resources differ from their expected template configurations. For more information, see Detecting Unregulated Configuration Changes to Stacks and Resources. Use DetectStackDrift to detect drift on all supported resources for a given stack, or DetectStackResourceDrift to detect drift on individual resources. For a list of stack resources that currently support drift detection, see Resources that Support Drift Detection. DetectStackDrift can take up to several minutes, depending on the number of resources contained within the stack. Use DescribeStackDriftDetectionStatus to monitor the progress of a detect stack drift operation. Once the drift detection operation has completed, use DescribeStackResourceDrifts to return drift information about the stack and its resources. When detecting drift on a stack, AWS CloudFormation does not detect drift on any nested stacks belonging to that stack. Perform DetectStackDrift directly on the nested stack itself. + */ + detectStackDrift(params: CloudFormation.Types.DetectStackDriftInput, callback?: (err: AWSError, data: CloudFormation.Types.DetectStackDriftOutput) => void): Request; + /** + * Detects whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. For each resource in the stack that supports drift detection, AWS CloudFormation compares the actual configuration of the resource with its expected template configuration. Only resource properties explicitly defined in the stack template are checked for drift. A stack is considered to have drifted if one or more of its resources differ from their expected template configurations. For more information, see Detecting Unregulated Configuration Changes to Stacks and Resources. Use DetectStackDrift to detect drift on all supported resources for a given stack, or DetectStackResourceDrift to detect drift on individual resources. For a list of stack resources that currently support drift detection, see Resources that Support Drift Detection. DetectStackDrift can take up to several minutes, depending on the number of resources contained within the stack. Use DescribeStackDriftDetectionStatus to monitor the progress of a detect stack drift operation. Once the drift detection operation has completed, use DescribeStackResourceDrifts to return drift information about the stack and its resources. When detecting drift on a stack, AWS CloudFormation does not detect drift on any nested stacks belonging to that stack. Perform DetectStackDrift directly on the nested stack itself. + */ + detectStackDrift(callback?: (err: AWSError, data: CloudFormation.Types.DetectStackDriftOutput) => void): Request; + /** + * Returns information about whether a resource's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. This information includes actual and expected property values for resources in which AWS CloudFormation detects drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information about stack and resource drift, see Detecting Unregulated Configuration Changes to Stacks and Resources. Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all resources in a given stack that support drift detection. Resources that do not currently support drift detection cannot be checked. For a list of resources that support drift detection, see Resources that Support Drift Detection. + */ + detectStackResourceDrift(params: CloudFormation.Types.DetectStackResourceDriftInput, callback?: (err: AWSError, data: CloudFormation.Types.DetectStackResourceDriftOutput) => void): Request; + /** + * Returns information about whether a resource's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. This information includes actual and expected property values for resources in which AWS CloudFormation detects drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information about stack and resource drift, see Detecting Unregulated Configuration Changes to Stacks and Resources. Use DetectStackResourceDrift to detect drift on individual resources, or DetectStackDrift to detect drift on all resources in a given stack that support drift detection. Resources that do not currently support drift detection cannot be checked. For a list of resources that support drift detection, see Resources that Support Drift Detection. + */ + detectStackResourceDrift(callback?: (err: AWSError, data: CloudFormation.Types.DetectStackResourceDriftOutput) => void): Request; + /** + * Detect drift on a stack set. When CloudFormation performs drift detection on a stack set, it performs drift detection on the stack associated with each stack instance in the stack set. For more information, see How CloudFormation Performs Drift Detection on a Stack Set. DetectStackSetDrift returns the OperationId of the stack set drift detection operation. Use this operation id with DescribeStackSetOperation to monitor the progress of the drift detection operation. The drift detection operation may take some time, depending on the number of stack instances included in the stack set, as well as the number of resources included in each stack. Once the operation has completed, use the following actions to return drift information: Use DescribeStackSet to return detailed information about the stack set, including detailed information about the last completed drift operation performed on the stack set. (Information about drift operations that are in progress is not included.) Use ListStackInstances to return a list of stack instances belonging to the stack set, including the drift status and last drift time checked of each instance. Use DescribeStackInstance to return detailed information about a specific stack instance, including its drift status and last drift time checked. For more information on performing a drift detection operation on a stack set, see Detecting Unmanaged Changes in Stack Sets. You can only run a single drift detection operation on a given stack set at one time. To stop a drift detection stack set operation, use StopStackSetOperation . + */ + detectStackSetDrift(params: CloudFormation.Types.DetectStackSetDriftInput, callback?: (err: AWSError, data: CloudFormation.Types.DetectStackSetDriftOutput) => void): Request; + /** + * Detect drift on a stack set. When CloudFormation performs drift detection on a stack set, it performs drift detection on the stack associated with each stack instance in the stack set. For more information, see How CloudFormation Performs Drift Detection on a Stack Set. DetectStackSetDrift returns the OperationId of the stack set drift detection operation. Use this operation id with DescribeStackSetOperation to monitor the progress of the drift detection operation. The drift detection operation may take some time, depending on the number of stack instances included in the stack set, as well as the number of resources included in each stack. Once the operation has completed, use the following actions to return drift information: Use DescribeStackSet to return detailed information about the stack set, including detailed information about the last completed drift operation performed on the stack set. (Information about drift operations that are in progress is not included.) Use ListStackInstances to return a list of stack instances belonging to the stack set, including the drift status and last drift time checked of each instance. Use DescribeStackInstance to return detailed information about a specific stack instance, including its drift status and last drift time checked. For more information on performing a drift detection operation on a stack set, see Detecting Unmanaged Changes in Stack Sets. You can only run a single drift detection operation on a given stack set at one time. To stop a drift detection stack set operation, use StopStackSetOperation . + */ + detectStackSetDrift(callback?: (err: AWSError, data: CloudFormation.Types.DetectStackSetDriftOutput) => void): Request; + /** + * Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template. + */ + estimateTemplateCost(params: CloudFormation.Types.EstimateTemplateCostInput, callback?: (err: AWSError, data: CloudFormation.Types.EstimateTemplateCostOutput) => void): Request; + /** + * Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template. + */ + estimateTemplateCost(callback?: (err: AWSError, data: CloudFormation.Types.EstimateTemplateCostOutput) => void): Request; + /** + * Updates a stack using the input information that was provided when the specified change set was created. After the call successfully completes, AWS CloudFormation starts updating the stack. Use the DescribeStacks action to view the status of the update. When you execute a change set, AWS CloudFormation deletes all other change sets associated with the stack because they aren't valid for the updated stack. If a stack policy is associated with the stack, AWS CloudFormation enforces the policy during the update. You can't specify a temporary stack policy that overrides the current policy. To create a change set for the entire stack hierachy, IncludeNestedStacks must have been set to True. + */ + executeChangeSet(params: CloudFormation.Types.ExecuteChangeSetInput, callback?: (err: AWSError, data: CloudFormation.Types.ExecuteChangeSetOutput) => void): Request; + /** + * Updates a stack using the input information that was provided when the specified change set was created. After the call successfully completes, AWS CloudFormation starts updating the stack. Use the DescribeStacks action to view the status of the update. When you execute a change set, AWS CloudFormation deletes all other change sets associated with the stack because they aren't valid for the updated stack. If a stack policy is associated with the stack, AWS CloudFormation enforces the policy during the update. You can't specify a temporary stack policy that overrides the current policy. To create a change set for the entire stack hierachy, IncludeNestedStacks must have been set to True. + */ + executeChangeSet(callback?: (err: AWSError, data: CloudFormation.Types.ExecuteChangeSetOutput) => void): Request; + /** + * Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned. + */ + getStackPolicy(params: CloudFormation.Types.GetStackPolicyInput, callback?: (err: AWSError, data: CloudFormation.Types.GetStackPolicyOutput) => void): Request; + /** + * Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned. + */ + getStackPolicy(callback?: (err: AWSError, data: CloudFormation.Types.GetStackPolicyOutput) => void): Request; + /** + * Returns the template body for a specified stack. You can get the template for running or deleted stacks. For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned. + */ + getTemplate(params: CloudFormation.Types.GetTemplateInput, callback?: (err: AWSError, data: CloudFormation.Types.GetTemplateOutput) => void): Request; + /** + * Returns the template body for a specified stack. You can get the template for running or deleted stacks. For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned. + */ + getTemplate(callback?: (err: AWSError, data: CloudFormation.Types.GetTemplateOutput) => void): Request; + /** + * Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack or stack set. You can use the GetTemplateSummary action when you submit a template, or you can get template information for a stack set, or a running or deleted stack. For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned. + */ + getTemplateSummary(params: CloudFormation.Types.GetTemplateSummaryInput, callback?: (err: AWSError, data: CloudFormation.Types.GetTemplateSummaryOutput) => void): Request; + /** + * Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack or stack set. You can use the GetTemplateSummary action when you submit a template, or you can get template information for a stack set, or a running or deleted stack. For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned. + */ + getTemplateSummary(callback?: (err: AWSError, data: CloudFormation.Types.GetTemplateSummaryOutput) => void): Request; + /** + * Returns the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state. + */ + listChangeSets(params: CloudFormation.Types.ListChangeSetsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListChangeSetsOutput) => void): Request; + /** + * Returns the ID and status of each active change set for a stack. For example, AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING state. + */ + listChangeSets(callback?: (err: AWSError, data: CloudFormation.Types.ListChangeSetsOutput) => void): Request; + /** + * Lists all exported output values in the account and Region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the Fn::ImportValue function. For more information, see AWS CloudFormation Export Stack Output Values. + */ + listExports(params: CloudFormation.Types.ListExportsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListExportsOutput) => void): Request; + /** + * Lists all exported output values in the account and Region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the Fn::ImportValue function. For more information, see AWS CloudFormation Export Stack Output Values. + */ + listExports(callback?: (err: AWSError, data: CloudFormation.Types.ListExportsOutput) => void): Request; + /** + * Lists all stacks that are importing an exported output value. To modify or remove an exported output value, first use this action to see which stacks are using it. To see the exported output values in your account, see ListExports. For more information about importing an exported output value, see the Fn::ImportValue function. + */ + listImports(params: CloudFormation.Types.ListImportsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListImportsOutput) => void): Request; + /** + * Lists all stacks that are importing an exported output value. To modify or remove an exported output value, first use this action to see which stacks are using it. To see the exported output values in your account, see ListExports. For more information about importing an exported output value, see the Fn::ImportValue function. + */ + listImports(callback?: (err: AWSError, data: CloudFormation.Types.ListImportsOutput) => void): Request; + /** + * Returns summary information about stack instances that are associated with the specified stack set. You can filter for stack instances that are associated with a specific AWS account name or Region, or that have a specific status. + */ + listStackInstances(params: CloudFormation.Types.ListStackInstancesInput, callback?: (err: AWSError, data: CloudFormation.Types.ListStackInstancesOutput) => void): Request; + /** + * Returns summary information about stack instances that are associated with the specified stack set. You can filter for stack instances that are associated with a specific AWS account name or Region, or that have a specific status. + */ + listStackInstances(callback?: (err: AWSError, data: CloudFormation.Types.ListStackInstancesOutput) => void): Request; + /** + * Returns descriptions of all resources of the specified stack. For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted. + */ + listStackResources(params: CloudFormation.Types.ListStackResourcesInput, callback?: (err: AWSError, data: CloudFormation.Types.ListStackResourcesOutput) => void): Request; + /** + * Returns descriptions of all resources of the specified stack. For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted. + */ + listStackResources(callback?: (err: AWSError, data: CloudFormation.Types.ListStackResourcesOutput) => void): Request; + /** + * Returns summary information about the results of a stack set operation. + */ + listStackSetOperationResults(params: CloudFormation.Types.ListStackSetOperationResultsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListStackSetOperationResultsOutput) => void): Request; + /** + * Returns summary information about the results of a stack set operation. + */ + listStackSetOperationResults(callback?: (err: AWSError, data: CloudFormation.Types.ListStackSetOperationResultsOutput) => void): Request; + /** + * Returns summary information about operations performed on a stack set. + */ + listStackSetOperations(params: CloudFormation.Types.ListStackSetOperationsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListStackSetOperationsOutput) => void): Request; + /** + * Returns summary information about operations performed on a stack set. + */ + listStackSetOperations(callback?: (err: AWSError, data: CloudFormation.Types.ListStackSetOperationsOutput) => void): Request; + /** + * Returns summary information about stack sets that are associated with the user. [Self-managed permissions] If you set the CallAs parameter to SELF while signed in to your AWS account, ListStackSets returns all self-managed stack sets in your AWS account. [Service-managed permissions] If you set the CallAs parameter to SELF while signed in to the organization's management account, ListStackSets returns all stack sets in the management account. [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN while signed in to your member account, ListStackSets returns all stack sets with service-managed permissions in the management account. + */ + listStackSets(params: CloudFormation.Types.ListStackSetsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListStackSetsOutput) => void): Request; + /** + * Returns summary information about stack sets that are associated with the user. [Self-managed permissions] If you set the CallAs parameter to SELF while signed in to your AWS account, ListStackSets returns all self-managed stack sets in your AWS account. [Service-managed permissions] If you set the CallAs parameter to SELF while signed in to the organization's management account, ListStackSets returns all stack sets in the management account. [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN while signed in to your member account, ListStackSets returns all stack sets with service-managed permissions in the management account. + */ + listStackSets(callback?: (err: AWSError, data: CloudFormation.Types.ListStackSetsOutput) => void): Request; + /** + * Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted). + */ + listStacks(params: CloudFormation.Types.ListStacksInput, callback?: (err: AWSError, data: CloudFormation.Types.ListStacksOutput) => void): Request; + /** + * Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted). + */ + listStacks(callback?: (err: AWSError, data: CloudFormation.Types.ListStacksOutput) => void): Request; + /** + * Returns a list of registration tokens for the specified extension(s). + */ + listTypeRegistrations(params: CloudFormation.Types.ListTypeRegistrationsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListTypeRegistrationsOutput) => void): Request; + /** + * Returns a list of registration tokens for the specified extension(s). + */ + listTypeRegistrations(callback?: (err: AWSError, data: CloudFormation.Types.ListTypeRegistrationsOutput) => void): Request; + /** + * Returns summary information about the versions of an extension. + */ + listTypeVersions(params: CloudFormation.Types.ListTypeVersionsInput, callback?: (err: AWSError, data: CloudFormation.Types.ListTypeVersionsOutput) => void): Request; + /** + * Returns summary information about the versions of an extension. + */ + listTypeVersions(callback?: (err: AWSError, data: CloudFormation.Types.ListTypeVersionsOutput) => void): Request; + /** + * Returns summary information about extension that have been registered with CloudFormation. + */ + listTypes(params: CloudFormation.Types.ListTypesInput, callback?: (err: AWSError, data: CloudFormation.Types.ListTypesOutput) => void): Request; + /** + * Returns summary information about extension that have been registered with CloudFormation. + */ + listTypes(callback?: (err: AWSError, data: CloudFormation.Types.ListTypesOutput) => void): Request; + /** + * Publishes the specified extension to the CloudFormation registry as a public extension in this region. Public extensions are available for use by all CloudFormation users. For more information on publishing extensions, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide. To publish an extension, you must be registered as a publisher with CloudFormation. For more information, see RegisterPublisher. + */ + publishType(params: CloudFormation.Types.PublishTypeInput, callback?: (err: AWSError, data: CloudFormation.Types.PublishTypeOutput) => void): Request; + /** + * Publishes the specified extension to the CloudFormation registry as a public extension in this region. Public extensions are available for use by all CloudFormation users. For more information on publishing extensions, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide. To publish an extension, you must be registered as a publisher with CloudFormation. For more information, see RegisterPublisher. + */ + publishType(callback?: (err: AWSError, data: CloudFormation.Types.PublishTypeOutput) => void): Request; + /** + * Reports progress of a resource handler to CloudFormation. Reserved for use by the CloudFormation CLI. Do not use this API in your code. + */ + recordHandlerProgress(params: CloudFormation.Types.RecordHandlerProgressInput, callback?: (err: AWSError, data: CloudFormation.Types.RecordHandlerProgressOutput) => void): Request; + /** + * Reports progress of a resource handler to CloudFormation. Reserved for use by the CloudFormation CLI. Do not use this API in your code. + */ + recordHandlerProgress(callback?: (err: AWSError, data: CloudFormation.Types.RecordHandlerProgressOutput) => void): Request; + /** + * Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are available for use by all CloudFormation users. This publisher ID applies to your account in all AWS regions. For information on requirements for registering as a public extension publisher, see Registering your account to publish CloudFormation extensions in the CloudFormation CLI User Guide. + */ + registerPublisher(params: CloudFormation.Types.RegisterPublisherInput, callback?: (err: AWSError, data: CloudFormation.Types.RegisterPublisherOutput) => void): Request; + /** + * Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are available for use by all CloudFormation users. This publisher ID applies to your account in all AWS regions. For information on requirements for registering as a public extension publisher, see Registering your account to publish CloudFormation extensions in the CloudFormation CLI User Guide. + */ + registerPublisher(callback?: (err: AWSError, data: CloudFormation.Types.RegisterPublisherOutput) => void): Request; + /** + * Registers an extension with the CloudFormation service. Registering an extension makes it available for use in CloudFormation templates in your AWS account, and includes: Validating the extension schema Determining which handlers, if any, have been specified for the extension Making the extension available for use in your account For more information on how to develop extensions and ready them for registeration, see Creating Resource Providers in the CloudFormation CLI User Guide. You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and per region. Use DeregisterType to deregister specific extension versions if necessary. Once you have initiated a registration request using RegisterType , you can use DescribeTypeRegistration to monitor the progress of the registration request. Once you have registered a private extension in your account and region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. + */ + registerType(params: CloudFormation.Types.RegisterTypeInput, callback?: (err: AWSError, data: CloudFormation.Types.RegisterTypeOutput) => void): Request; + /** + * Registers an extension with the CloudFormation service. Registering an extension makes it available for use in CloudFormation templates in your AWS account, and includes: Validating the extension schema Determining which handlers, if any, have been specified for the extension Making the extension available for use in your account For more information on how to develop extensions and ready them for registeration, see Creating Resource Providers in the CloudFormation CLI User Guide. You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and per region. Use DeregisterType to deregister specific extension versions if necessary. Once you have initiated a registration request using RegisterType , you can use DescribeTypeRegistration to monitor the progress of the registration request. Once you have registered a private extension in your account and region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. + */ + registerType(callback?: (err: AWSError, data: CloudFormation.Types.RegisterTypeOutput) => void): Request; + /** + * Sets a stack policy for a specified stack. + */ + setStackPolicy(params: CloudFormation.Types.SetStackPolicyInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets a stack policy for a specified stack. + */ + setStackPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Specifies the configuration data for a registered CloudFormation extension, in the given account and region. To view the current configuration data for an extension, refer to the ConfigurationSchema element of DescribeType. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. It is strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such as third-party credentials. For more details on dynamic references, see Using dynamic references to specify template values in the AWS CloudFormation User Guide. + */ + setTypeConfiguration(params: CloudFormation.Types.SetTypeConfigurationInput, callback?: (err: AWSError, data: CloudFormation.Types.SetTypeConfigurationOutput) => void): Request; + /** + * Specifies the configuration data for a registered CloudFormation extension, in the given account and region. To view the current configuration data for an extension, refer to the ConfigurationSchema element of DescribeType. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. It is strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such as third-party credentials. For more details on dynamic references, see Using dynamic references to specify template values in the AWS CloudFormation User Guide. + */ + setTypeConfiguration(callback?: (err: AWSError, data: CloudFormation.Types.SetTypeConfigurationOutput) => void): Request; + /** + * Specify the default version of an extension. The default version of an extension will be used in CloudFormation operations. + */ + setTypeDefaultVersion(params: CloudFormation.Types.SetTypeDefaultVersionInput, callback?: (err: AWSError, data: CloudFormation.Types.SetTypeDefaultVersionOutput) => void): Request; + /** + * Specify the default version of an extension. The default version of an extension will be used in CloudFormation operations. + */ + setTypeDefaultVersion(callback?: (err: AWSError, data: CloudFormation.Types.SetTypeDefaultVersionOutput) => void): Request; + /** + * Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance. + */ + signalResource(params: CloudFormation.Types.SignalResourceInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance. + */ + signalResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Stops an in-progress operation on a stack set and its associated stack instances. + */ + stopStackSetOperation(params: CloudFormation.Types.StopStackSetOperationInput, callback?: (err: AWSError, data: CloudFormation.Types.StopStackSetOperationOutput) => void): Request; + /** + * Stops an in-progress operation on a stack set and its associated stack instances. + */ + stopStackSetOperation(callback?: (err: AWSError, data: CloudFormation.Types.StopStackSetOperationOutput) => void): Request; + /** + * Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry. For resource types, this includes passing all contracts tests defined for the type. For modules, this includes determining if the module's model meets all necessary requirements. For more information, see Testing your public extension prior to publishing in the CloudFormation CLI User Guide. If you do not specify a version, CloudFormation uses the default version of the extension in your account and region for testing. To perform testing, CloudFormation assumes the execution role specified when the test was registered. For more information, see RegisterType. Once you've initiated testing on an extension using TestType, you can use DescribeType to monitor the current test status and test status description for the extension. An extension must have a test status of PASSED before it can be published. For more information, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide. + */ + testType(params: CloudFormation.Types.TestTypeInput, callback?: (err: AWSError, data: CloudFormation.Types.TestTypeOutput) => void): Request; + /** + * Tests a registered extension to make sure it meets all necessary requirements for being published in the CloudFormation registry. For resource types, this includes passing all contracts tests defined for the type. For modules, this includes determining if the module's model meets all necessary requirements. For more information, see Testing your public extension prior to publishing in the CloudFormation CLI User Guide. If you do not specify a version, CloudFormation uses the default version of the extension in your account and region for testing. To perform testing, CloudFormation assumes the execution role specified when the test was registered. For more information, see RegisterType. Once you've initiated testing on an extension using TestType, you can use DescribeType to monitor the current test status and test status description for the extension. An extension must have a test status of PASSED before it can be published. For more information, see Publishing extensions to make them available for public use in the CloudFormation CLI User Guide. + */ + testType(callback?: (err: AWSError, data: CloudFormation.Types.TestTypeOutput) => void): Request; + /** + * Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the DescribeStacks action. To get a copy of the template for an existing stack, you can use the GetTemplate action. For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack. + */ + updateStack(params: CloudFormation.Types.UpdateStackInput, callback?: (err: AWSError, data: CloudFormation.Types.UpdateStackOutput) => void): Request; + /** + * Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the DescribeStacks action. To get a copy of the template for an existing stack, you can use the GetTemplate action. For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack. + */ + updateStack(callback?: (err: AWSError, data: CloudFormation.Types.UpdateStackOutput) => void): Request; + /** + * Updates the parameter values for stack instances for the specified accounts, within the specified Regions. A stack instance refers to a stack in a specific account and Region. You can only update stack instances in Regions and accounts where they already exist; to create additional stack instances, use CreateStackInstances. During stack set updates, any parameters overridden for a stack instance are not updated, but retain their overridden value. You can only update the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances. + */ + updateStackInstances(params: CloudFormation.Types.UpdateStackInstancesInput, callback?: (err: AWSError, data: CloudFormation.Types.UpdateStackInstancesOutput) => void): Request; + /** + * Updates the parameter values for stack instances for the specified accounts, within the specified Regions. A stack instance refers to a stack in a specific account and Region. You can only update stack instances in Regions and accounts where they already exist; to create additional stack instances, use CreateStackInstances. During stack set updates, any parameters overridden for a stack instance are not updated, but retain their overridden value. You can only update the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances. + */ + updateStackInstances(callback?: (err: AWSError, data: CloudFormation.Types.UpdateStackInstancesOutput) => void): Request; + /** + * Updates the stack set, and associated stack instances in the specified accounts and Regions. Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent CreateStackInstances calls on the specified stack set use the updated stack set. + */ + updateStackSet(params: CloudFormation.Types.UpdateStackSetInput, callback?: (err: AWSError, data: CloudFormation.Types.UpdateStackSetOutput) => void): Request; + /** + * Updates the stack set, and associated stack instances in the specified accounts and Regions. Even if the stack set operation created by updating the stack set fails (completely or partially, below or above a specified failure tolerance), the stack set is updated with your changes. Subsequent CreateStackInstances calls on the specified stack set use the updated stack set. + */ + updateStackSet(callback?: (err: AWSError, data: CloudFormation.Types.UpdateStackSetOutput) => void): Request; + /** + * Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. + */ + updateTerminationProtection(params: CloudFormation.Types.UpdateTerminationProtectionInput, callback?: (err: AWSError, data: CloudFormation.Types.UpdateTerminationProtectionOutput) => void): Request; + /** + * Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. + */ + updateTerminationProtection(callback?: (err: AWSError, data: CloudFormation.Types.UpdateTerminationProtectionOutput) => void): Request; + /** + * Validates a specified template. AWS CloudFormation first checks if the template is valid JSON. If it isn't, AWS CloudFormation checks if the template is valid YAML. If both these checks fail, AWS CloudFormation returns a template validation error. + */ + validateTemplate(params: CloudFormation.Types.ValidateTemplateInput, callback?: (err: AWSError, data: CloudFormation.Types.ValidateTemplateOutput) => void): Request; + /** + * Validates a specified template. AWS CloudFormation first checks if the template is valid JSON. If it isn't, AWS CloudFormation checks if the template is valid YAML. If both these checks fail, AWS CloudFormation returns a template validation error. + */ + validateTemplate(callback?: (err: AWSError, data: CloudFormation.Types.ValidateTemplateOutput) => void): Request; + /** + * Waits for the stackExists state by periodically calling the underlying CloudFormation.describeStacksoperation every 5 seconds (at most 20 times). + */ + waitFor(state: "stackExists", params: CloudFormation.Types.DescribeStacksInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackExists state by periodically calling the underlying CloudFormation.describeStacksoperation every 5 seconds (at most 20 times). + */ + waitFor(state: "stackExists", callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackCreateComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is CREATE_COMPLETE. + */ + waitFor(state: "stackCreateComplete", params: CloudFormation.Types.DescribeStacksInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackCreateComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is CREATE_COMPLETE. + */ + waitFor(state: "stackCreateComplete", callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackDeleteComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is DELETE_COMPLETE. + */ + waitFor(state: "stackDeleteComplete", params: CloudFormation.Types.DescribeStacksInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackDeleteComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is DELETE_COMPLETE. + */ + waitFor(state: "stackDeleteComplete", callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackUpdateComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is UPDATE_COMPLETE. + */ + waitFor(state: "stackUpdateComplete", params: CloudFormation.Types.DescribeStacksInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackUpdateComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is UPDATE_COMPLETE. + */ + waitFor(state: "stackUpdateComplete", callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackImportComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is IMPORT_COMPLETE. + */ + waitFor(state: "stackImportComplete", params: CloudFormation.Types.DescribeStacksInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackImportComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is IMPORT_COMPLETE. + */ + waitFor(state: "stackImportComplete", callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackRollbackComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is UPDATE_ROLLBACK_COMPLETE. + */ + waitFor(state: "stackRollbackComplete", params: CloudFormation.Types.DescribeStacksInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the stackRollbackComplete state by periodically calling the underlying CloudFormation.describeStacksoperation every 30 seconds (at most 120 times). Wait until stack status is UPDATE_ROLLBACK_COMPLETE. + */ + waitFor(state: "stackRollbackComplete", callback?: (err: AWSError, data: CloudFormation.Types.DescribeStacksOutput) => void): Request; + /** + * Waits for the changeSetCreateComplete state by periodically calling the underlying CloudFormation.describeChangeSetoperation every 30 seconds (at most 120 times). Wait until change set status is CREATE_COMPLETE. + */ + waitFor(state: "changeSetCreateComplete", params: CloudFormation.Types.DescribeChangeSetInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeChangeSetOutput) => void): Request; + /** + * Waits for the changeSetCreateComplete state by periodically calling the underlying CloudFormation.describeChangeSetoperation every 30 seconds (at most 120 times). Wait until change set status is CREATE_COMPLETE. + */ + waitFor(state: "changeSetCreateComplete", callback?: (err: AWSError, data: CloudFormation.Types.DescribeChangeSetOutput) => void): Request; + /** + * Waits for the typeRegistrationComplete state by periodically calling the underlying CloudFormation.describeTypeRegistrationoperation every 30 seconds (at most 120 times). Wait until type registration is COMPLETE. + */ + waitFor(state: "typeRegistrationComplete", params: CloudFormation.Types.DescribeTypeRegistrationInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFormation.Types.DescribeTypeRegistrationOutput) => void): Request; + /** + * Waits for the typeRegistrationComplete state by periodically calling the underlying CloudFormation.describeTypeRegistrationoperation every 30 seconds (at most 120 times). Wait until type registration is COMPLETE. + */ + waitFor(state: "typeRegistrationComplete", callback?: (err: AWSError, data: CloudFormation.Types.DescribeTypeRegistrationOutput) => void): Request; +} +declare namespace CloudFormation { + export type AcceptTermsAndConditions = boolean; + export type Account = string; + export interface AccountGateResult { + /** + * The status of the account gate function. SUCCEEDED: The account gate function has determined that the account and Region passes any requirements for a stack set operation to occur. AWS CloudFormation proceeds with the stack operation in that account and Region. FAILED: The account gate function has determined that the account and Region does not meet the requirements for a stack set operation to occur. AWS CloudFormation cancels the stack set operation in that account and Region, and sets the stack set operation result status for that account and Region to FAILED. SKIPPED: AWS CloudFormation has skipped calling the account gate function for this account and Region, for one of the following reasons: An account gate function has not been specified for the account and Region. AWS CloudFormation proceeds with the stack set operation in this account and Region. The AWSCloudFormationStackSetExecutionRole of the stack set adminstration account lacks permissions to invoke the function. AWS CloudFormation proceeds with the stack set operation in this account and Region. Either no action is necessary, or no action is possible, on the stack. AWS CloudFormation skips the stack set operation in this account and Region. + */ + Status?: AccountGateStatus; + /** + * The reason for the account gate status assigned to this account and Region for the stack set operation. + */ + StatusReason?: AccountGateStatusReason; + } + export type AccountGateStatus = "SUCCEEDED"|"FAILED"|"SKIPPED"|string; + export type AccountGateStatusReason = string; + export interface AccountLimit { + /** + * The name of the account limit. Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit + */ + Name?: LimitName; + /** + * The value that is associated with the account limit name. + */ + Value?: LimitValue; + } + export type AccountLimitList = AccountLimit[]; + export type AccountList = Account[]; + export type AccountsUrl = string; + export interface ActivateTypeInput { + /** + * The extension type. Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId. + */ + Type?: ThirdPartyType; + /** + * The Amazon Resource Number (ARN) of the public extension. Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId. + */ + PublicTypeArn?: ThirdPartyTypeArn; + /** + * The ID of the extension publisher. Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId. + */ + PublisherId?: PublisherId; + /** + * The name of the extension. Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId. + */ + TypeName?: TypeName; + /** + * An alias to assign to the public extension, in this account and region. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and region. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console. An extension alias must be unique within a given account and region. You can activate the same public resource multiple times in the same account and region, using different type name aliases. + */ + TypeNameAlias?: TypeName; + /** + * Whether to automatically update the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. The default is true. + */ + AutoUpdate?: AutoUpdate; + LoggingConfig?: LoggingConfig; + /** + * The name of the IAM execution role to use to activate the extension. + */ + ExecutionRoleArn?: RoleArn; + /** + * Manually updates a previously-activated type to a new major or minor version, if available. You can also use this parameter to update the value of AutoUpdate. MAJOR: CloudFormation updates the extension to the newest major version, if one is available. MINOR: CloudFormation updates the extension to the newest minor version, if one is available. + */ + VersionBump?: VersionBump; + /** + * The major version of this extension you want to activate, if multiple major versions are available. The default is the latest major version. CloudFormation uses the latest available minor version of the major version selected. You can specify MajorVersion or VersionBump, but not both. + */ + MajorVersion?: MajorVersion; + } + export interface ActivateTypeOutput { + /** + * The Amazon Resource Number (ARN) of the activated extension, in this account and region. + */ + Arn?: PrivateTypeArn; + } + export type AllowedValue = string; + export type AllowedValues = AllowedValue[]; + export type Arn = string; + export interface AutoDeployment { + /** + * If set to true, StackSets automatically deploys additional stack instances to AWS Organizations accounts that are added to a target organization or organizational unit (OU) in the specified Regions. If an account is removed from a target organization or OU, StackSets deletes stack instances from the account in the specified Regions. + */ + Enabled?: AutoDeploymentNullable; + /** + * If set to true, stack resources are retained when an account is removed from a target organization or OU. If set to false, stack resources are deleted. Specify only if Enabled is set to True. + */ + RetainStacksOnAccountRemoval?: RetainStacksOnAccountRemovalNullable; + } + export type AutoDeploymentNullable = boolean; + export type AutoUpdate = boolean; + export interface BatchDescribeTypeConfigurationsError { + /** + * The error code. + */ + ErrorCode?: ErrorCode; + /** + * The error message. + */ + ErrorMessage?: ErrorMessage; + TypeConfigurationIdentifier?: TypeConfigurationIdentifier; + } + export type BatchDescribeTypeConfigurationsErrors = BatchDescribeTypeConfigurationsError[]; + export interface BatchDescribeTypeConfigurationsInput { + /** + * The list of identifiers for the desired extension configurations. + */ + TypeConfigurationIdentifiers: TypeConfigurationIdentifiers; + } + export interface BatchDescribeTypeConfigurationsOutput { + /** + * A list of information concerning any errors generated during the setting of the specified configurations. + */ + Errors?: BatchDescribeTypeConfigurationsErrors; + /** + * A list of any of the specified extension configurations that CloudFormation could not process for any reason. + */ + UnprocessedTypeConfigurations?: UnprocessedTypeConfigurations; + /** + * A list of any of the specified extension configurations from the CloudFormation registry. + */ + TypeConfigurations?: TypeConfigurationDetailsList; + } + export type BoxedInteger = number; + export type BoxedMaxResults = number; + export type CallAs = "SELF"|"DELEGATED_ADMIN"|string; + export interface CancelUpdateStackInput { + /** + * The name or the unique stack ID that is associated with the stack. + */ + StackName: StackName; + /** + * A unique identifier for this CancelUpdateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to cancel an update on a stack with the same name. You might retry CancelUpdateStack requests to ensure that AWS CloudFormation successfully received them. + */ + ClientRequestToken?: ClientRequestToken; + } + export type Capabilities = Capability[]; + export type CapabilitiesReason = string; + export type Capability = "CAPABILITY_IAM"|"CAPABILITY_NAMED_IAM"|"CAPABILITY_AUTO_EXPAND"|string; + export type Category = "REGISTERED"|"ACTIVATED"|"THIRD_PARTY"|"AWS_TYPES"|string; + export type CausingEntity = string; + export interface Change { + /** + * The type of entity that AWS CloudFormation changes. Currently, the only entity type is Resource. + */ + Type?: ChangeType; + /** + * A ResourceChange structure that describes the resource and action that AWS CloudFormation will perform. + */ + ResourceChange?: ResourceChange; + } + export type ChangeAction = "Add"|"Modify"|"Remove"|"Import"|"Dynamic"|string; + export type ChangeSetId = string; + export type ChangeSetName = string; + export type ChangeSetNameOrId = string; + export type ChangeSetStatus = "CREATE_PENDING"|"CREATE_IN_PROGRESS"|"CREATE_COMPLETE"|"DELETE_PENDING"|"DELETE_IN_PROGRESS"|"DELETE_COMPLETE"|"DELETE_FAILED"|"FAILED"|string; + export type ChangeSetStatusReason = string; + export type ChangeSetSummaries = ChangeSetSummary[]; + export interface ChangeSetSummary { + /** + * The ID of the stack with which the change set is associated. + */ + StackId?: StackId; + /** + * The name of the stack with which the change set is associated. + */ + StackName?: StackName; + /** + * The ID of the change set. + */ + ChangeSetId?: ChangeSetId; + /** + * The name of the change set. + */ + ChangeSetName?: ChangeSetName; + /** + * If the change set execution status is AVAILABLE, you can execute the change set. If you can’t execute the change set, the status indicates why. For example, a change set might be in an UNAVAILABLE state because AWS CloudFormation is still creating it or in an OBSOLETE state because the stack was already updated. + */ + ExecutionStatus?: ExecutionStatus; + /** + * The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or FAILED. + */ + Status?: ChangeSetStatus; + /** + * A description of the change set's status. For example, if your change set is in the FAILED state, AWS CloudFormation shows the error message. + */ + StatusReason?: ChangeSetStatusReason; + /** + * The start time when the change set was created, in UTC. + */ + CreationTime?: CreationTime; + /** + * Descriptive information about the change set. + */ + Description?: Description; + /** + * Specifies the current setting of IncludeNestedStacks for the change set. + */ + IncludeNestedStacks?: IncludeNestedStacks; + /** + * The parent change set ID. + */ + ParentChangeSetId?: ChangeSetId; + /** + * The root change set ID. + */ + RootChangeSetId?: ChangeSetId; + } + export type ChangeSetType = "CREATE"|"UPDATE"|"IMPORT"|string; + export type ChangeSource = "ResourceReference"|"ParameterReference"|"ResourceAttribute"|"DirectModification"|"Automatic"|string; + export type ChangeType = "Resource"|string; + export type Changes = Change[]; + export type ClientRequestToken = string; + export type ClientToken = string; + export type ConfigurationSchema = string; + export type ConnectionArn = string; + export interface ContinueUpdateRollbackInput { + /** + * The name or the unique ID of the stack that you want to continue rolling back. Don't specify the name of a nested stack (a stack that was created by using the AWS::CloudFormation::Stack resource). Instead, use this operation on the parent stack (the stack that contains the AWS::CloudFormation::Stack resource). + */ + StackName: StackNameOrId; + /** + * The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to roll back the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. + */ + RoleARN?: RoleARN; + /** + * A list of the logical IDs of the resources that AWS CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was cancelled. To check why a resource update failed, use the DescribeStackResources action, and view the resource status reason. Specify this property to skip rolling back resources that AWS CloudFormation can't successfully roll back. We recommend that you troubleshoot resources before skipping them. AWS CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable. Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources. To skip resources that are part of nested stacks, use the following format: NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip list, then its corresponding embedded stack must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED. Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an example of a continue update rollback operation with nested stacks, see Using ResourcesToSkip to recover a nested stacks hierarchy. + */ + ResourcesToSkip?: ResourcesToSkip; + /** + * A unique identifier for this ContinueUpdateRollback request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to continue the rollback to a stack with the same name. You might retry ContinueUpdateRollback requests to ensure that AWS CloudFormation successfully received them. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface ContinueUpdateRollbackOutput { + } + export interface CreateChangeSetInput { + /** + * The name or the unique ID of the stack for which you are creating a change set. AWS CloudFormation generates the change set by comparing this stack's information with the information that you submit, such as a modified template or different parameter input values. + */ + StackName: StackNameOrId; + /** + * A structure that contains the body of the revised template, with a minimum length of 1 byte and a maximum length of 51,200 bytes. AWS CloudFormation generates the change set by comparing this template with the template of the stack that you specified. Conditional: You must specify only TemplateBody or TemplateURL. + */ + TemplateBody?: TemplateBody; + /** + * The location of the file that contains the revised template. The URL must point to a template (max size: 460,800 bytes) that is located in an S3 bucket or a Systems Manager document. AWS CloudFormation generates the change set by comparing this template with the stack that you specified. Conditional: You must specify only TemplateBody or TemplateURL. + */ + TemplateURL?: TemplateURL; + /** + * Whether to reuse the template that is associated with the stack to create the change set. + */ + UsePreviousTemplate?: UsePreviousTemplate; + /** + * A list of Parameter structures that specify input parameters for the change set. For more information, see the Parameter data type. + */ + Parameters?: Parameters; + /** + * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities error. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. AWS::IAM::AccessKey AWS::IAM::Group AWS::IAM::InstanceProfile AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::IAM::UserToGroupAddition For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation. This capacity does not apply to creating change sets, and specifying it when creating change sets has no effect. If you want to create a stack from a stack template that contains macros and nested stacks, you must create or update the stack directly from the template using the CreateStack or UpdateStack action, and specifying this capability. For more information on macros, see Using AWS CloudFormation Macros to Perform Custom Processing on Templates. + */ + Capabilities?: Capabilities; + /** + * The template resource types that you have permissions to work with if you execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. If the list of resource types doesn't include a resource type that you're updating, the stack update fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for condition keys in IAM policies for AWS CloudFormation. For more information, see Controlling Access with AWS Identity and Access Management in the AWS CloudFormation User Guide. + */ + ResourceTypes?: ResourceTypes; + /** + * The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes when executing the change set. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. + */ + RoleARN?: RoleARN; + /** + * The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + */ + RollbackConfiguration?: RollbackConfiguration; + /** + * The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon SNS) topics that AWS CloudFormation associates with the stack. To remove all associated notification topics, specify an empty list. + */ + NotificationARNs?: NotificationARNs; + /** + * Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to resources in the stack. You can specify a maximum of 50 tags. + */ + Tags?: Tags; + /** + * The name of the change set. The name must be unique among all change sets that are associated with the specified stack. A change set name can contain only alphanumeric, case sensitive characters and hyphens. It must start with an alphabetic character and cannot exceed 128 characters. + */ + ChangeSetName: ChangeSetName; + /** + * A unique identifier for this CreateChangeSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create another change set with the same name. You might retry CreateChangeSet requests to ensure that AWS CloudFormation successfully received them. + */ + ClientToken?: ClientToken; + /** + * A description to help you identify this change set. + */ + Description?: Description; + /** + * The type of change set operation. To create a change set for a new stack, specify CREATE. To create a change set for an existing stack, specify UPDATE. To create a change set for an import operation, specify IMPORT. If you create a change set for a new stack, AWS Cloudformation creates a stack with a unique stack ID, but no template or resources. The stack will be in the REVIEW_IN_PROGRESS state until you execute the change set. By default, AWS CloudFormation specifies UPDATE. You can't use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack. + */ + ChangeSetType?: ChangeSetType; + /** + * The resources to import into your stack. + */ + ResourcesToImport?: ResourcesToImport; + /** + * Creates a change set for the all nested stacks specified in the template. The default behavior of this action is set to False. To include nested sets in a change set, specify True. + */ + IncludeNestedStacks?: IncludeNestedStacks; + } + export interface CreateChangeSetOutput { + /** + * The Amazon Resource Name (ARN) of the change set. + */ + Id?: ChangeSetId; + /** + * The unique ID of the stack. + */ + StackId?: StackId; + } + export interface CreateStackInput { + /** + * The name that is associated with the stack. The name must be unique in the Region in which you are creating the stack. A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 128 characters. + */ + StackName: StackName; + /** + * Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + */ + TemplateBody?: TemplateBody; + /** + * Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to the Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + */ + TemplateURL?: TemplateURL; + /** + * A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type. + */ + Parameters?: Parameters; + /** + * Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both. Default: false + */ + DisableRollback?: DisableRollback; + /** + * The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + */ + RollbackConfiguration?: RollbackConfiguration; + /** + * The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back. + */ + TimeoutInMinutes?: TimeoutMinutes; + /** + * The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI). + */ + NotificationARNs?: NotificationARNs; + /** + * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to create the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities error. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. AWS::IAM::AccessKey AWS::IAM::Group AWS::IAM::InstanceProfile AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::IAM::UserToGroupAddition For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation. If you want to create a stack from a stack template that contains macros and nested stacks, you must create the stack directly from the template using this capability. You should only create stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without AWS CloudFormation being notified. For more information, see Using AWS CloudFormation Macros to Perform Custom Processing on Templates. + */ + Capabilities?: Capabilities; + /** + * The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management. + */ + ResourceTypes?: ResourceTypes; + /** + * The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to create the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. + */ + RoleARN?: RoleARN; + /** + * Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both. Default: ROLLBACK + */ + OnFailure?: OnFailure; + /** + * Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + */ + StackPolicyBody?: StackPolicyBody; + /** + * Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + */ + StackPolicyURL?: StackPolicyURL; + /** + * Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified. + */ + Tags?: Tags; + /** + * A unique identifier for this CreateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create a stack with the same name. You might retry CreateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. + */ + ClientRequestToken?: ClientRequestToken; + /** + * Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. Termination protection is disabled on stacks by default. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. + */ + EnableTerminationProtection?: EnableTerminationProtection; + } + export interface CreateStackInstancesInput { + /** + * The name or unique ID of the stack set that you want to create stack instances from. + */ + StackSetName: StackSetName; + /** + * [Self-managed permissions] The names of one or more AWS accounts that you want to create stack instances in the specified Region(s) for. You can specify Accounts or DeploymentTargets, but not both. + */ + Accounts?: AccountList; + /** + * [Service-managed permissions] The AWS Organizations accounts for which to create stack instances in the specified Regions. You can specify Accounts or DeploymentTargets, but not both. + */ + DeploymentTargets?: DeploymentTargets; + /** + * The names of one or more Regions where you want to create stack instances using the specified AWS account(s). + */ + Regions: RegionList; + /** + * A list of stack set parameters whose values you want to override in the selected stack instances. Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance operations: To override the current value for a parameter, include the parameter and specify its value. To leave a parameter set to its present value, you can do one of the following: Do not include the parameter in the list. Include the parameter and specify UsePreviousValue as true. (You cannot specify both a value and set UsePreviousValue to true.) To set all overridden parameter back to the values specified in the stack set, specify a parameter list but do not include any parameters. To leave all parameters set to their present values, do not specify this property at all. During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value. You can only override the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. + */ + ParameterOverrides?: Parameters; + /** + * Preferences for how AWS CloudFormation performs this stack set operation. + */ + OperationPreferences?: StackSetOperationPreferences; + /** + * The unique identifier for this stack set operation. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED. + */ + OperationId?: ClientRequestToken; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface CreateStackInstancesOutput { + /** + * The unique identifier for this stack set operation. + */ + OperationId?: ClientRequestToken; + } + export interface CreateStackOutput { + /** + * Unique identifier of the stack. + */ + StackId?: StackId; + } + export interface CreateStackSetInput { + /** + * The name to associate with the stack set. The name must be unique in the Region where you create your stack set. A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an alphabetic character and can't be longer than 128 characters. + */ + StackSetName: StackSetName; + /** + * A description of the stack set. You can use the description to identify the stack set's purpose or other important information. + */ + Description?: Description; + /** + * The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + */ + TemplateBody?: TemplateBody; + /** + * The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + */ + TemplateURL?: TemplateURL; + /** + * The input parameters for the stack set template. + */ + Parameters?: Parameters; + /** + * In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for AWS CloudFormation to create the stack set and related stack instances. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities error. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. AWS::IAM::AccessKey AWS::IAM::Group AWS::IAM::InstanceProfile AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::IAM::UserToGroupAddition For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack set template references one or more macros, you must create the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To create the stack set directly, you must acknowledge this capability. For more information, see Using AWS CloudFormation Macros to Perform Custom Processing on Templates. Stack sets with service-managed permissions do not currently support the use of macros in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail. + */ + Capabilities?: Capabilities; + /** + * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be specified. If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you don't, the entire CreateStackSet action fails with an access denied error, and the stack set is not created. + */ + Tags?: Tags; + /** + * The Amazon Resource Number (ARN) of the IAM role to use to create this stack set. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see Prerequisites: Granting Permissions for Stack Set Operations in the AWS CloudFormation User Guide. + */ + AdministrationRoleARN?: RoleARN; + /** + * The name of the IAM execution role to use to create the stack set. If you do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation. Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their stack sets. + */ + ExecutionRoleName?: ExecutionRoleName; + /** + * Describes how the IAM roles required for stack set operations are created. By default, SELF-MANAGED is specified. With self-managed permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. With service-managed permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations. For more information, see Grant Service-Managed Stack Set Permissions. + */ + PermissionModel?: PermissionModels; + /** + * Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to the target organization or organizational unit (OU). Specify only if PermissionModel is SERVICE_MANAGED. + */ + AutoDeployment?: AutoDeployment; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. To create a stack set with service-managed permissions while signed in to the management account, specify SELF. To create a stack set with service-managed permissions while signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated admin in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. Stack sets with service-managed permissions are created in the management account, including stack sets that are created by delegated administrators. + */ + CallAs?: CallAs; + /** + * A unique identifier for this CreateStackSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the same name. You might retry CreateStackSet requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface CreateStackSetOutput { + /** + * The ID of the stack set that you're creating. + */ + StackSetId?: StackSetId; + } + export type CreationTime = Date; + export interface DeactivateTypeInput { + /** + * The type name of the extension, in this account and region. If you specified a type name alias when enabling the extension, use the type name alias. Conditional: You must specify either Arn, or TypeName and Type. + */ + TypeName?: TypeName; + /** + * The extension type. Conditional: You must specify either Arn, or TypeName and Type. + */ + Type?: ThirdPartyType; + /** + * The Amazon Resource Name (ARN) for the extension, in this account and region. Conditional: You must specify either Arn, or TypeName and Type. + */ + Arn?: PrivateTypeArn; + } + export interface DeactivateTypeOutput { + } + export interface DeleteChangeSetInput { + /** + * The name or Amazon Resource Name (ARN) of the change set that you want to delete. + */ + ChangeSetName: ChangeSetNameOrId; + /** + * If you specified the name of a change set to delete, specify the stack name or ID (ARN) that is associated with it. + */ + StackName?: StackNameOrId; + } + export interface DeleteChangeSetOutput { + } + export interface DeleteStackInput { + /** + * The name or the unique stack ID that is associated with the stack. + */ + StackName: StackName; + /** + * For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, AWS CloudFormation deletes the stack but does not delete the retained resources. Retaining resources is useful when you cannot delete a resource, such as a non-empty S3 bucket, but you want to delete the stack. + */ + RetainResources?: RetainResources; + /** + * The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. + */ + RoleARN?: RoleARN; + /** + * A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry DeleteStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface DeleteStackInstancesInput { + /** + * The name or unique ID of the stack set that you want to delete stack instances for. + */ + StackSetName: StackSetName; + /** + * [Self-managed permissions] The names of the AWS accounts that you want to delete stack instances for. You can specify Accounts or DeploymentTargets, but not both. + */ + Accounts?: AccountList; + /** + * [Service-managed permissions] The AWS Organizations accounts from which to delete stack instances. You can specify Accounts or DeploymentTargets, but not both. + */ + DeploymentTargets?: DeploymentTargets; + /** + * The Regions where you want to delete stack set instances. + */ + Regions: RegionList; + /** + * Preferences for how AWS CloudFormation performs this stack set operation. + */ + OperationPreferences?: StackSetOperationPreferences; + /** + * Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack or add an existing, saved stack to a new stack set. For more information, see Stack set operation options. + */ + RetainStacks: RetainStacks; + /** + * The unique identifier for this stack set operation. If you don't specify an operation ID, the SDK generates one automatically. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You can retry stack set operation requests to ensure that AWS CloudFormation successfully received them. Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED. + */ + OperationId?: ClientRequestToken; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface DeleteStackInstancesOutput { + /** + * The unique identifier for this stack set operation. + */ + OperationId?: ClientRequestToken; + } + export interface DeleteStackSetInput { + /** + * The name or unique ID of the stack set that you're deleting. You can obtain this value by running ListStackSets. + */ + StackSetName: StackSetName; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface DeleteStackSetOutput { + } + export type DeletionTime = Date; + export interface DeploymentTargets { + /** + * The names of one or more AWS accounts for which you want to deploy stack set updates. + */ + Accounts?: AccountList; + /** + * Returns the value of the AccountsUrl property. + */ + AccountsUrl?: AccountsUrl; + /** + * The organization root ID or organizational unit (OU) IDs to which StackSets deploys. + */ + OrganizationalUnitIds?: OrganizationalUnitIdList; + } + export type DeprecatedStatus = "LIVE"|"DEPRECATED"|string; + export interface DeregisterTypeInput { + /** + * The Amazon Resource Name (ARN) of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + Arn?: PrivateTypeArn; + /** + * The kind of extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + Type?: RegistryType; + /** + * The name of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + TypeName?: TypeName; + /** + * The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered. + */ + VersionId?: TypeVersionId; + } + export interface DeregisterTypeOutput { + } + export interface DescribeAccountLimitsInput { + /** + * A string that identifies the next page of limits that you want to retrieve. + */ + NextToken?: NextToken; + } + export interface DescribeAccountLimitsOutput { + /** + * An account limit structure that contain a list of AWS CloudFormation account limits and their values. + */ + AccountLimits?: AccountLimitList; + /** + * If the output exceeds 1 MB in size, a string that identifies the next page of limits. If no additional page exists, this value is null. + */ + NextToken?: NextToken; + } + export interface DescribeChangeSetInput { + /** + * The name or Amazon Resource Name (ARN) of the change set that you want to describe. + */ + ChangeSetName: ChangeSetNameOrId; + /** + * If you specified the name of a change set, specify the stack name or ID (ARN) of the change set you want to describe. + */ + StackName?: StackNameOrId; + /** + * A string (provided by the DescribeChangeSet response output) that identifies the next page of information that you want to retrieve. + */ + NextToken?: NextToken; + } + export interface DescribeChangeSetOutput { + /** + * The name of the change set. + */ + ChangeSetName?: ChangeSetName; + /** + * The ARN of the change set. + */ + ChangeSetId?: ChangeSetId; + /** + * The ARN of the stack that is associated with the change set. + */ + StackId?: StackId; + /** + * The name of the stack that is associated with the change set. + */ + StackName?: StackName; + /** + * Information about the change set. + */ + Description?: Description; + /** + * A list of Parameter structures that describes the input parameters and their values used to create the change set. For more information, see the Parameter data type. + */ + Parameters?: Parameters; + /** + * The start time when the change set was created, in UTC. + */ + CreationTime?: CreationTime; + /** + * If the change set execution status is AVAILABLE, you can execute the change set. If you can’t execute the change set, the status indicates why. For example, a change set might be in an UNAVAILABLE state because AWS CloudFormation is still creating it or in an OBSOLETE state because the stack was already updated. + */ + ExecutionStatus?: ExecutionStatus; + /** + * The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or FAILED. + */ + Status?: ChangeSetStatus; + /** + * A description of the change set's status. For example, if your attempt to create a change set failed, AWS CloudFormation shows the error message. + */ + StatusReason?: ChangeSetStatusReason; + /** + * The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that will be associated with the stack if you execute the change set. + */ + NotificationARNs?: NotificationARNs; + /** + * The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + */ + RollbackConfiguration?: RollbackConfiguration; + /** + * If you execute the change set, the list of capabilities that were explicitly acknowledged when the change set was created. + */ + Capabilities?: Capabilities; + /** + * If you execute the change set, the tags that will be associated with the stack. + */ + Tags?: Tags; + /** + * A list of Change structures that describes the resources AWS CloudFormation changes if you execute the change set. + */ + Changes?: Changes; + /** + * If the output exceeds 1 MB, a string that identifies the next page of changes. If there is no additional page, this value is null. + */ + NextToken?: NextToken; + /** + * Verifies if IncludeNestedStacks is set to True. + */ + IncludeNestedStacks?: IncludeNestedStacks; + /** + * Specifies the change set ID of the parent change set in the current nested change set hierarchy. + */ + ParentChangeSetId?: ChangeSetId; + /** + * Specifies the change set ID of the root change set in the current nested change set hierarchy. + */ + RootChangeSetId?: ChangeSetId; + } + export interface DescribePublisherInput { + /** + * The ID of the extension publisher. If you do not supply a PublisherId, and you have registered as an extension publisher, DescribePublisher returns information about your own publisher account. + */ + PublisherId?: PublisherId; + } + export interface DescribePublisherOutput { + /** + * The ID of the extension publisher. + */ + PublisherId?: PublisherId; + /** + * Whether the publisher is verified. Currently, all registered publishers are verified. + */ + PublisherStatus?: PublisherStatus; + /** + * The type of account used as the identity provider when registering this publisher with CloudFormation. + */ + IdentityProvider?: IdentityProvider; + /** + * The URL to the publisher's profile with the identity provider. + */ + PublisherProfile?: PublisherProfile; + } + export interface DescribeStackDriftDetectionStatusInput { + /** + * The ID of the drift detection results of this operation. AWS CloudFormation generates new results, with a new drift detection ID, each time this operation is run. However, the number of drift results AWS CloudFormation retains for any given stack, and for how long, may vary. + */ + StackDriftDetectionId: StackDriftDetectionId; + } + export interface DescribeStackDriftDetectionStatusOutput { + /** + * The ID of the stack. + */ + StackId: StackId; + /** + * The ID of the drift detection results of this operation. AWS CloudFormation generates new results, with a new drift detection ID, each time this operation is run. However, the number of reports AWS CloudFormation retains for any given stack, and for how long, may vary. + */ + StackDriftDetectionId: StackDriftDetectionId; + /** + * Status of the stack's actual configuration compared to its expected configuration. DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted. NOT_CHECKED: AWS CloudFormation has not checked if the stack differs from its expected template configuration. IN_SYNC: The stack's actual configuration matches its expected template configuration. UNKNOWN: This value is reserved for future use. + */ + StackDriftStatus?: StackDriftStatus; + /** + * The status of the stack drift detection operation. DETECTION_COMPLETE: The stack drift detection operation has successfully completed for all resources in the stack that support drift detection. (Resources that do not currently support stack detection remain unchecked.) If you specified logical resource IDs for AWS CloudFormation to use as a filter for the stack drift detection operation, only the resources with those logical IDs are checked for drift. DETECTION_FAILED: The stack drift detection operation has failed for at least one resource in the stack. Results will be available for resources on which AWS CloudFormation successfully completed drift detection. DETECTION_IN_PROGRESS: The stack drift detection operation is currently in progress. + */ + DetectionStatus: StackDriftDetectionStatus; + /** + * The reason the stack drift detection operation has its current status. + */ + DetectionStatusReason?: StackDriftDetectionStatusReason; + /** + * Total number of stack resources that have drifted. This is NULL until the drift detection operation reaches a status of DETECTION_COMPLETE. This value will be 0 for stacks whose drift status is IN_SYNC. + */ + DriftedStackResourceCount?: BoxedInteger; + /** + * Time at which the stack drift detection operation was initiated. + */ + Timestamp: Timestamp; + } + export interface DescribeStackEventsInput { + /** + * The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + */ + StackName?: StackName; + /** + * A string that identifies the next page of events that you want to retrieve. + */ + NextToken?: NextToken; + } + export interface DescribeStackEventsOutput { + /** + * A list of StackEvents structures. + */ + StackEvents?: StackEvents; + /** + * If the output exceeds 1 MB in size, a string that identifies the next page of events. If no additional page exists, this value is null. + */ + NextToken?: NextToken; + } + export interface DescribeStackInstanceInput { + /** + * The name or the unique stack ID of the stack set that you want to get stack instance information for. + */ + StackSetName: StackSetName; + /** + * The ID of an AWS account that's associated with this stack instance. + */ + StackInstanceAccount: Account; + /** + * The name of a Region that's associated with this stack instance. + */ + StackInstanceRegion: Region; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface DescribeStackInstanceOutput { + /** + * The stack instance that matches the specified request parameters. + */ + StackInstance?: StackInstance; + } + export interface DescribeStackResourceDriftsInput { + /** + * The name of the stack for which you want drift information. + */ + StackName: StackNameOrId; + /** + * The resource drift status values to use as filters for the resource drift results returned. DELETED: The resource differs from its expected template configuration in that the resource has been deleted. MODIFIED: One or more resource properties differ from their expected template values. IN_SYNC: The resources's actual configuration matches its expected template configuration. NOT_CHECKED: AWS CloudFormation does not currently return this value. + */ + StackResourceDriftStatusFilters?: StackResourceDriftStatusFilters; + /** + * A string that identifies the next page of stack resource drift results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: BoxedMaxResults; + } + export interface DescribeStackResourceDriftsOutput { + /** + * Drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where AWS CloudFormation detects drift. For a given stack, there will be one StackResourceDrift for each stack resource that has been checked for drift. Resources that have not yet been checked for drift are not included. Resources that do not currently support drift detection are not checked, and so not included. For a list of resources that support drift detection, see Resources that Support Drift Detection. + */ + StackResourceDrifts: StackResourceDrifts; + /** + * If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export interface DescribeStackResourceInput { + /** + * The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + */ + StackName: StackName; + /** + * The logical name of the resource as specified in the template. Default: There is no default value. + */ + LogicalResourceId: LogicalResourceId; + } + export interface DescribeStackResourceOutput { + /** + * A StackResourceDetail structure containing the description of the specified resource in the specified stack. + */ + StackResourceDetail?: StackResourceDetail; + } + export interface DescribeStackResourcesInput { + /** + * The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. Required: Conditional. If you do not specify StackName, you must specify PhysicalResourceId. + */ + StackName?: StackName; + /** + * The logical name of the resource as specified in the template. Default: There is no default value. + */ + LogicalResourceId?: LogicalResourceId; + /** + * The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources to find which stack the instance belongs to and what other resources are part of the stack. Required: Conditional. If you do not specify PhysicalResourceId, you must specify StackName. Default: There is no default value. + */ + PhysicalResourceId?: PhysicalResourceId; + } + export interface DescribeStackResourcesOutput { + /** + * A list of StackResource structures. + */ + StackResources?: StackResources; + } + export interface DescribeStackSetInput { + /** + * The name or unique ID of the stack set whose description you want. + */ + StackSetName: StackSetName; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface DescribeStackSetOperationInput { + /** + * The name or the unique stack ID of the stack set for the stack operation. + */ + StackSetName: StackSetName; + /** + * The unique ID of the stack set operation. + */ + OperationId: ClientRequestToken; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface DescribeStackSetOperationOutput { + /** + * The specified stack set operation. + */ + StackSetOperation?: StackSetOperation; + } + export interface DescribeStackSetOutput { + /** + * The specified stack set. + */ + StackSet?: StackSet; + } + export interface DescribeStacksInput { + /** + * The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + */ + StackName?: StackName; + /** + * A string that identifies the next page of stacks that you want to retrieve. + */ + NextToken?: NextToken; + } + export interface DescribeStacksOutput { + /** + * A list of stack structures. + */ + Stacks?: Stacks; + /** + * If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null. + */ + NextToken?: NextToken; + } + export interface DescribeTypeInput { + /** + * The kind of extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + Type?: RegistryType; + /** + * The name of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + TypeName?: TypeName; + /** + * The Amazon Resource Name (ARN) of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + Arn?: TypeArn; + /** + * The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered. If you specify a VersionId, DescribeType returns information about that specific extension version. Otherwise, it returns information about the default extension version. + */ + VersionId?: TypeVersionId; + /** + * The publisher ID of the extension publisher. Extensions provided by Amazon are not assigned a publisher ID. + */ + PublisherId?: PublisherId; + /** + * The version number of a public third-party extension. + */ + PublicVersionNumber?: PublicVersionNumber; + } + export interface DescribeTypeOutput { + /** + * The Amazon Resource Name (ARN) of the extension. + */ + Arn?: TypeArn; + /** + * The kind of extension. + */ + Type?: RegistryType; + /** + * The name of the extension. If the extension is a public third-party type you have activated with a type name alias, CloudFormation returns the type name alias. For more information, see ActivateType. + */ + TypeName?: TypeName; + /** + * The ID of the default version of the extension. The default version is used when the extension version is not specified. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon and published by third parties, CloudFormation returns null. For more information, see RegisterType. To set the default version of an extension, use SetTypeDefaultVersion . + */ + DefaultVersionId?: TypeVersionId; + /** + * Whether the specified extension version is set as the default version. This applies only to private extensions you have registered in your account, and extensions published by Amazon. For public third-party extensions, whether or not they are activated in your account, CloudFormation returns null. + */ + IsDefaultVersion?: IsDefaultVersion; + /** + * The contract test status of the registered extension version. To return the extension test status of a specifc extension version, you must specify VersionId. This applies only to registered private extension versions. CloudFormation does not return this information for public extensions, whether or not they are activated in your account. PASSED: The extension has passed all its contract tests. An extension must have a test status of PASSED before it can be published. For more information, see Publishing extensions to make them available for public use in the CloudFormation Command Line Interface User Guide. FAILED: The extension has failed one or more contract tests. IN_PROGRESS: Contract tests are currently being performed on the extension. NOT_TESTED: Contract tests have not been performed on the extension. + */ + TypeTestsStatus?: TypeTestsStatus; + /** + * The description of the test status. To return the extension test status of a specifc extension version, you must specify VersionId. This applies only to registered private extension versions. CloudFormation does not return this information for public extensions, whether or not they are activated in your account. + */ + TypeTestsStatusDescription?: TypeTestsStatusDescription; + /** + * The description of the extension. + */ + Description?: Description; + /** + * The schema that defines the extension. For more information on extension schemas, see Resource Provider Schema in the CloudFormation CLI User Guide. + */ + Schema?: TypeSchema; + /** + * For resource type extensions, the provisioning behavior of the resource type. AWS CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted. Valid values include: FULLY_MUTABLE: The resource type includes an update handler to process updates to the type during stack update operations. IMMUTABLE: The resource type does not include an update handler, so the type cannot be updated and must instead be replaced during stack update operations. NON_PROVISIONABLE: The resource type does not include all of the following handlers, and therefore cannot actually be provisioned. create read delete + */ + ProvisioningType?: ProvisioningType; + /** + * The deprecation status of the extension version. Valid values include: LIVE: The extension is activated or registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope. DEPRECATED: The extension has been deactivated or deregistered and can no longer be used in CloudFormation operations. For public third-party extensions, CloudFormation returns null. + */ + DeprecatedStatus?: DeprecatedStatus; + /** + * Contains logging configuration information for private extensions. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon and published by third parties, CloudFormation returns null. For more information, see RegisterType. + */ + LoggingConfig?: LoggingConfig; + /** + * For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated. + */ + RequiredActivatedTypes?: RequiredActivatedTypes; + /** + * The Amazon Resource Name (ARN) of the IAM execution role used to register the extension. This applies only to private extensions you have registered in your account. For more information, see RegisterType. If the registered extension calls any AWS APIs, you must create an IAM execution role that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your extension with the appropriate credentials. + */ + ExecutionRoleArn?: RoleArn; + /** + * The scope at which the extension is visible and usable in CloudFormation operations. Valid values include: PRIVATE: The extension is only visible and usable within the account in which it is registered. AWS CloudFormation marks any extensions you register as PRIVATE. PUBLIC: The extension is publically visible and usable within any Amazon account. + */ + Visibility?: Visibility; + /** + * The URL of the source code for the extension. + */ + SourceUrl?: OptionalSecureUrl; + /** + * The URL of a page providing detailed documentation for this extension. + */ + DocumentationUrl?: OptionalSecureUrl; + /** + * When the specified extension version was registered. This applies only to: Private extensions you have registered in your account. For more information, see RegisterType. Public extensions you have activated in your account with auto-update specified. For more information, see ActivateType. + */ + LastUpdated?: Timestamp; + /** + * When the specified private extension version was registered or activated in your account. + */ + TimeCreated?: Timestamp; + /** + * A JSON string that represent the current configuration data for the extension in this account and region. To set the configuration data for an extension, use SetTypeConfiguration. For more information, see Configuring extensions at the account level in the CloudFormation User Guide. + */ + ConfigurationSchema?: ConfigurationSchema; + /** + * The publisher ID of the extension publisher. This applies only to public third-party extensions. For private registered extensions, and extensions provided by Amazon, CloudFormation returns null. + */ + PublisherId?: PublisherId; + /** + * For public extensions that have been activated for this account and region, the type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and region, CloudFormation treats that alias as the extension's type name within the account and region, not the type name of the public extension. For more information, see Specifying aliases to refer to extensions in the CloudFormation User Guide. + */ + OriginalTypeName?: TypeName; + /** + * For public extensions that have been activated for this account and region, the Amazon Resource Name (ARN) of the public extension. + */ + OriginalTypeArn?: TypeArn; + /** + * The version number of a public third-party extension. This applies only if you specify a public extension you have activated in your account, or specify a public extension without specifying a version. For all other extensions, CloudFormation returns null. + */ + PublicVersionNumber?: PublicVersionNumber; + /** + * The latest version of a public extension that is available for use. This only applies if you specify a public extension, and you do not specify a version. For all other requests, CloudFormation returns null. + */ + LatestPublicVersion?: PublicVersionNumber; + /** + * Whether or not the extension is activated in the account and region. This only applies to public third-party extensions. For all other extensions, CloudFormation returns null. + */ + IsActivated?: IsActivated; + /** + * Whether CloudFormation automatically updates the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see Activating public extensions for use in your account in the AWS CloudFormation User Guide. + */ + AutoUpdate?: AutoUpdate; + } + export interface DescribeTypeRegistrationInput { + /** + * The identifier for this registration request. This registration token is generated by CloudFormation when you initiate a registration request using RegisterType . + */ + RegistrationToken: RegistrationToken; + } + export interface DescribeTypeRegistrationOutput { + /** + * The current status of the extension registration request. + */ + ProgressStatus?: RegistrationStatus; + /** + * The description of the extension registration request. + */ + Description?: Description; + /** + * The Amazon Resource Name (ARN) of the extension being registered. For registration requests with a ProgressStatus of other than COMPLETE, this will be null. + */ + TypeArn?: TypeArn; + /** + * The Amazon Resource Name (ARN) of this specific version of the extension being registered. For registration requests with a ProgressStatus of other than COMPLETE, this will be null. + */ + TypeVersionArn?: TypeArn; + } + export type Description = string; + export interface DetectStackDriftInput { + /** + * The name of the stack for which you want to detect drift. + */ + StackName: StackNameOrId; + /** + * The logical names of any resources you want to use as filters. + */ + LogicalResourceIds?: LogicalResourceIds; + } + export interface DetectStackDriftOutput { + /** + * The ID of the drift detection results of this operation. AWS CloudFormation generates new results, with a new drift detection ID, each time this operation is run. However, the number of drift results AWS CloudFormation retains for any given stack, and for how long, may vary. + */ + StackDriftDetectionId: StackDriftDetectionId; + } + export interface DetectStackResourceDriftInput { + /** + * The name of the stack to which the resource belongs. + */ + StackName: StackNameOrId; + /** + * The logical name of the resource for which to return drift information. + */ + LogicalResourceId: LogicalResourceId; + } + export interface DetectStackResourceDriftOutput { + /** + * Information about whether the resource's actual configuration has drifted from its expected template configuration, including actual and expected property values and any differences detected. + */ + StackResourceDrift: StackResourceDrift; + } + export interface DetectStackSetDriftInput { + /** + * The name of the stack set on which to perform the drift detection operation. + */ + StackSetName: StackSetNameOrId; + OperationPreferences?: StackSetOperationPreferences; + /** + * The ID of the stack set operation. + */ + OperationId?: ClientRequestToken; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface DetectStackSetDriftOutput { + /** + * The ID of the drift detection stack set operation. you can use this operation id with DescribeStackSetOperation to monitor the progress of the drift detection operation. + */ + OperationId?: ClientRequestToken; + } + export type DifferenceType = "ADD"|"REMOVE"|"NOT_EQUAL"|string; + export type DisableRollback = boolean; + export type DriftedStackInstancesCount = number; + export type EnableTerminationProtection = boolean; + export type ErrorCode = string; + export type ErrorMessage = string; + export interface EstimateTemplateCostInput { + /** + * Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.) Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used. + */ + TemplateBody?: TemplateBody; + /** + * Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + */ + TemplateURL?: TemplateURL; + /** + * A list of Parameter structures that specify input parameters. + */ + Parameters?: Parameters; + } + export interface EstimateTemplateCostOutput { + /** + * An AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template. + */ + Url?: Url; + } + export type EvaluationType = "Static"|"Dynamic"|string; + export type EventId = string; + export interface ExecuteChangeSetInput { + /** + * The name or ARN of the change set that you want use to update the specified stack. + */ + ChangeSetName: ChangeSetNameOrId; + /** + * If you specified the name of a change set, specify the stack name or ID (ARN) that is associated with the change set you want to execute. + */ + StackName?: StackNameOrId; + /** + * A unique identifier for this ExecuteChangeSet request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to execute a change set to update a stack with the same name. You might retry ExecuteChangeSet requests to ensure that AWS CloudFormation successfully received them. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface ExecuteChangeSetOutput { + } + export type ExecutionRoleName = string; + export type ExecutionStatus = "UNAVAILABLE"|"AVAILABLE"|"EXECUTE_IN_PROGRESS"|"EXECUTE_COMPLETE"|"EXECUTE_FAILED"|"OBSOLETE"|string; + export interface Export { + /** + * The stack that contains the exported output name and value. + */ + ExportingStackId?: StackId; + /** + * The name of exported output value. Use this name and the Fn::ImportValue function to import the associated value into other stacks. The name is defined in the Export field in the associated stack's Outputs section. + */ + Name?: ExportName; + /** + * The value of the exported output, such as a resource physical ID. This value is defined in the Export field in the associated stack's Outputs section. + */ + Value?: ExportValue; + } + export type ExportName = string; + export type ExportValue = string; + export type Exports = Export[]; + export type FailedStackInstancesCount = number; + export type FailureToleranceCount = number; + export type FailureTolerancePercentage = number; + export interface GetStackPolicyInput { + /** + * The name or unique stack ID that is associated with the stack whose policy you want to get. + */ + StackName: StackName; + } + export interface GetStackPolicyOutput { + /** + * Structure containing the stack policy body. (For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide.) + */ + StackPolicyBody?: StackPolicyBody; + } + export interface GetTemplateInput { + /** + * The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + */ + StackName?: StackName; + /** + * The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation returns the associated template. If you specify a name, you must also specify the StackName. + */ + ChangeSetName?: ChangeSetNameOrId; + /** + * For templates that include transforms, the stage of the template that AWS CloudFormation returns. To get the user-submitted template, specify Original. To get the template after AWS CloudFormation has processed all transforms, specify Processed. If the template doesn't include transforms, Original and Processed return the same template. By default, AWS CloudFormation specifies Processed. + */ + TemplateStage?: TemplateStage; + } + export interface GetTemplateOutput { + /** + * Structure containing the template body. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.) AWS CloudFormation returns the same template that was used when the stack was created. + */ + TemplateBody?: TemplateBody; + /** + * The stage of the template that you can retrieve. For stacks, the Original and Processed templates are always available. For change sets, the Original template is always available. After AWS CloudFormation finishes creating the change set, the Processed template becomes available. + */ + StagesAvailable?: StageList; + } + export interface GetTemplateSummaryInput { + /** + * Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + */ + TemplateBody?: TemplateBody; + /** + * Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + */ + TemplateURL?: TemplateURL; + /** + * The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + */ + StackName?: StackNameOrId; + /** + * The name or unique ID of the stack set from which the stack was created. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + */ + StackSetName?: StackSetNameOrId; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface GetTemplateSummaryOutput { + /** + * A list of parameter declarations that describe various properties for each parameter. + */ + Parameters?: ParameterDeclarations; + /** + * The value that is defined in the Description property of the template. + */ + Description?: Description; + /** + * The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + */ + Capabilities?: Capabilities; + /** + * The list of resources that generated the values in the Capabilities response element. + */ + CapabilitiesReason?: CapabilitiesReason; + /** + * A list of all the template resource types that are defined in the template, such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance. + */ + ResourceTypes?: ResourceTypes; + /** + * The AWS template format version, which identifies the capabilities of the template. + */ + Version?: Version; + /** + * The value that is defined for the Metadata property of the template. + */ + Metadata?: Metadata; + /** + * A list of the transforms that are declared in the template. + */ + DeclaredTransforms?: TransformsList; + /** + * A list of resource identifier summaries that describe the target resources of an import operation and the properties you can provide during the import to identify the target resources. For example, BucketName is a possible identifier property for an AWS::S3::Bucket resource. + */ + ResourceIdentifierSummaries?: ResourceIdentifierSummaries; + } + export type HandlerErrorCode = "NotUpdatable"|"InvalidRequest"|"AccessDenied"|"InvalidCredentials"|"AlreadyExists"|"NotFound"|"ResourceConflict"|"Throttling"|"ServiceLimitExceeded"|"NotStabilized"|"GeneralServiceException"|"ServiceInternalError"|"NetworkFailure"|"InternalFailure"|"InvalidTypeConfiguration"|string; + export type IdentityProvider = "AWS_Marketplace"|"GitHub"|"Bitbucket"|string; + export type Imports = StackName[]; + export type InProgressStackInstancesCount = number; + export type InSyncStackInstancesCount = number; + export type IncludeNestedStacks = boolean; + export type IsActivated = boolean; + export type IsDefaultConfiguration = boolean; + export type IsDefaultVersion = boolean; + export type Key = string; + export type LastUpdatedTime = Date; + export type LimitName = string; + export type LimitValue = number; + export interface ListChangeSetsInput { + /** + * The name or the Amazon Resource Name (ARN) of the stack for which you want to list change sets. + */ + StackName: StackNameOrId; + /** + * A string (provided by the ListChangeSets response output) that identifies the next page of change sets that you want to retrieve. + */ + NextToken?: NextToken; + } + export interface ListChangeSetsOutput { + /** + * A list of ChangeSetSummary structures that provides the ID and status of each change set for the specified stack. + */ + Summaries?: ChangeSetSummaries; + /** + * If the output exceeds 1 MB, a string that identifies the next page of change sets. If there is no additional page, this value is null. + */ + NextToken?: NextToken; + } + export interface ListExportsInput { + /** + * A string (provided by the ListExports response output) that identifies the next page of exported output values that you asked to retrieve. + */ + NextToken?: NextToken; + } + export interface ListExportsOutput { + /** + * The output for the ListExports action. + */ + Exports?: Exports; + /** + * If the output exceeds 100 exported output values, a string that identifies the next page of exports. If there is no additional page, this value is null. + */ + NextToken?: NextToken; + } + export interface ListImportsInput { + /** + * The name of the exported output value. AWS CloudFormation returns the stack names that are importing this value. + */ + ExportName: ExportName; + /** + * A string (provided by the ListImports response output) that identifies the next page of stacks that are importing the specified exported output value. + */ + NextToken?: NextToken; + } + export interface ListImportsOutput { + /** + * A list of stack names that are importing the specified exported output value. + */ + Imports?: Imports; + /** + * A string that identifies the next page of exports. If there is no additional page, this value is null. + */ + NextToken?: NextToken; + } + export interface ListStackInstancesInput { + /** + * The name or unique ID of the stack set that you want to list stack instances for. + */ + StackSetName: StackSetName; + /** + * If the previous request didn't return all of the remaining results, the response's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackInstances again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + */ + NextToken?: NextToken; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * The status that stack instances are filtered by. + */ + Filters?: StackInstanceFilters; + /** + * The name of the AWS account that you want to list stack instances for. + */ + StackInstanceAccount?: Account; + /** + * The name of the Region where you want to list stack instances. + */ + StackInstanceRegion?: Region; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface ListStackInstancesOutput { + /** + * A list of StackInstanceSummary structures that contain information about the specified stack instances. + */ + Summaries?: StackInstanceSummaries; + /** + * If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListStackInstances again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export interface ListStackResourcesInput { + /** + * The name or the unique stack ID that is associated with the stack, which are not always interchangeable: Running stacks: You can specify either the stack's name or its unique stack ID. Deleted stacks: You must specify the unique stack ID. Default: There is no default value. + */ + StackName: StackName; + /** + * A string that identifies the next page of stack resources that you want to retrieve. + */ + NextToken?: NextToken; + } + export interface ListStackResourcesOutput { + /** + * A list of StackResourceSummary structures. + */ + StackResourceSummaries?: StackResourceSummaries; + /** + * If the output exceeds 1 MB, a string that identifies the next page of stack resources. If no additional page exists, this value is null. + */ + NextToken?: NextToken; + } + export interface ListStackSetOperationResultsInput { + /** + * The name or unique ID of the stack set that you want to get operation results for. + */ + StackSetName: StackSetName; + /** + * The ID of the stack set operation. + */ + OperationId: ClientRequestToken; + /** + * If the previous request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSetOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + */ + NextToken?: NextToken; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface ListStackSetOperationResultsOutput { + /** + * A list of StackSetOperationResultSummary structures that contain information about the specified operation results, for accounts and Regions that are included in the operation. + */ + Summaries?: StackSetOperationResultSummaries; + /** + * If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of results, call ListOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export interface ListStackSetOperationsInput { + /** + * The name or unique ID of the stack set that you want to get operation summaries for. + */ + StackSetName: StackSetName; + /** + * If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSetOperations again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + */ + NextToken?: NextToken; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface ListStackSetOperationsOutput { + /** + * A list of StackSetOperationSummary structures that contain summary information about operations for the specified stack set. + */ + Summaries?: StackSetOperationSummaries; + /** + * If the request doesn't return all results, NextToken is set to a token. To retrieve the next set of results, call ListOperationResults again and assign that token to the request object's NextToken parameter. If there are no remaining results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export interface ListStackSetsInput { + /** + * If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call ListStackSets again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + */ + NextToken?: NextToken; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * The status of the stack sets that you want to get summary information about. + */ + Status?: StackSetStatus; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface ListStackSetsOutput { + /** + * A list of StackSetSummary structures that contain information about the user's stack sets. + */ + Summaries?: StackSetSummaries; + /** + * If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call ListStackInstances again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export interface ListStacksInput { + /** + * A string that identifies the next page of stacks that you want to retrieve. + */ + NextToken?: NextToken; + /** + * Stack status to use as a filter. Specify one or more stack status codes to list only stacks with the specified status codes. For a complete list of stack status codes, see the StackStatus parameter of the Stack data type. + */ + StackStatusFilter?: StackStatusFilter; + } + export interface ListStacksOutput { + /** + * A list of StackSummary structures containing information about the specified stacks. + */ + StackSummaries?: StackSummaries; + /** + * If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null. + */ + NextToken?: NextToken; + } + export interface ListTypeRegistrationsInput { + /** + * The kind of extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + Type?: RegistryType; + /** + * The name of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + TypeName?: TypeName; + /** + * The Amazon Resource Name (ARN) of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + TypeArn?: TypeArn; + /** + * The current status of the extension registration request. The default is IN_PROGRESS. + */ + RegistrationStatusFilter?: RegistrationStatus; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + */ + NextToken?: NextToken; + } + export interface ListTypeRegistrationsOutput { + /** + * A list of extension registration tokens. Use DescribeTypeRegistration to return detailed information about a type registration request. + */ + RegistrationTokenList?: RegistrationTokenList; + /** + * If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export interface ListTypeVersionsInput { + /** + * The kind of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + Type?: RegistryType; + /** + * The name of the extension for which you want version summary information. Conditional: You must specify either TypeName and Type, or Arn. + */ + TypeName?: TypeName; + /** + * The Amazon Resource Name (ARN) of the extension for which you want version summary information. Conditional: You must specify either TypeName and Type, or Arn. + */ + Arn?: TypeArn; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + */ + NextToken?: NextToken; + /** + * The deprecation status of the extension versions that you want to get summary information about. Valid values include: LIVE: The extension version is registered and can be used in CloudFormation operations, dependent on its provisioning behavior and visibility scope. DEPRECATED: The extension version has been deregistered and can no longer be used in CloudFormation operations. The default is LIVE. + */ + DeprecatedStatus?: DeprecatedStatus; + /** + * The publisher ID of the extension publisher. Extensions published by Amazon are not assigned a publisher ID. + */ + PublisherId?: PublisherId; + } + export interface ListTypeVersionsOutput { + /** + * A list of TypeVersionSummary structures that contain information about the specified extension's versions. + */ + TypeVersionSummaries?: TypeVersionSummaries; + /** + * If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export interface ListTypesInput { + /** + * The scope at which the extensions are visible and usable in CloudFormation operations. Valid values include: PRIVATE: Extensions that are visible and usable within this account and region. This includes: Private extensions you have registered in this account and region. Public extensions that you have activated in this account and region. PUBLIC: Extensions that are publicly visible and available to be activated within any Amazon account. This includes extensions from Amazon, as well as third-party publishers. The default is PRIVATE. + */ + Visibility?: Visibility; + /** + * For resource types, the provisioning behavior of the resource type. AWS CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted. Valid values include: FULLY_MUTABLE: The resource type includes an update handler to process updates to the type during stack update operations. IMMUTABLE: The resource type does not include an update handler, so the type cannot be updated and must instead be replaced during stack update operations. NON_PROVISIONABLE: The resource type does not include create, read, and delete handlers, and therefore cannot actually be provisioned. The default is FULLY_MUTABLE. + */ + ProvisioningType?: ProvisioningType; + /** + * The deprecation status of the extension that you want to get summary information about. Valid values include: LIVE: The extension is registered for use in CloudFormation operations. DEPRECATED: The extension has been deregistered and can no longer be used in CloudFormation operations. + */ + DeprecatedStatus?: DeprecatedStatus; + /** + * The type of extension. + */ + Type?: RegistryType; + /** + * Filter criteria to use in determining which extensions to return. If you specify a filter, CloudFormation ignores any specified Visibility value when returning the list of types. + */ + Filters?: TypeFilters; + /** + * The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. + */ + MaxResults?: MaxResults; + /** + * If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null. + */ + NextToken?: NextToken; + } + export interface ListTypesOutput { + /** + * A list of TypeSummary structures that contain information about the specified extensions. + */ + TypeSummaries?: TypeSummaries; + /** + * If the request doesn't return all of the remaining results, NextToken is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. + */ + NextToken?: NextToken; + } + export type LogGroupName = string; + export interface LoggingConfig { + /** + * The ARN of the role that CloudFormation should assume when sending log entries to CloudWatch logs. + */ + LogRoleArn: RoleArn; + /** + * The Amazon CloudWatch log group to which CloudFormation sends error logging information when invoking the extension's handlers. + */ + LogGroupName: LogGroupName; + } + export type LogicalIdHierarchy = string; + export type LogicalResourceId = string; + export type LogicalResourceIds = LogicalResourceId[]; + export type MajorVersion = number; + export type MaxConcurrentCount = number; + export type MaxConcurrentPercentage = number; + export type MaxResults = number; + export type Metadata = string; + export interface ModuleInfo { + /** + * A concantenated list of the the module type or types containing the resource. Module types are listed starting with the inner-most nested module, and separated by /. In the following example, the resource was created from a module of type AWS::First::Example::MODULE, that is nested inside a parent module of type AWS::Second::Example::MODULE. AWS::First::Example::MODULE/AWS::Second::Example::MODULE + */ + TypeHierarchy?: TypeHierarchy; + /** + * A concantenated list of the logical IDs of the module or modules containing the resource. Modules are listed starting with the inner-most nested module, and separated by /. In the following example, the resource was created from a module, moduleA, that is nested inside a parent module, moduleB. moduleA/moduleB For more information, see Referencing resources in a module in the CloudFormation User Guide. + */ + LogicalIdHierarchy?: LogicalIdHierarchy; + } + export type MonitoringTimeInMinutes = number; + export type NextToken = string; + export type NoEcho = boolean; + export type NotificationARN = string; + export type NotificationARNs = NotificationARN[]; + export type OnFailure = "DO_NOTHING"|"ROLLBACK"|"DELETE"|string; + export type OperationStatus = "PENDING"|"IN_PROGRESS"|"SUCCESS"|"FAILED"|string; + export type OptionalSecureUrl = string; + export type OrganizationalUnitId = string; + export type OrganizationalUnitIdList = OrganizationalUnitId[]; + export interface Output { + /** + * The key associated with the output. + */ + OutputKey?: OutputKey; + /** + * The value associated with the output. + */ + OutputValue?: OutputValue; + /** + * User defined description associated with the output. + */ + Description?: Description; + /** + * The name of the export associated with the output. + */ + ExportName?: ExportName; + } + export type OutputKey = string; + export type OutputValue = string; + export type Outputs = Output[]; + export interface Parameter { + /** + * The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template. + */ + ParameterKey?: ParameterKey; + /** + * The input value associated with the parameter. + */ + ParameterValue?: ParameterValue; + /** + * During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value. + */ + UsePreviousValue?: UsePreviousValue; + /** + * Read-only. The value that corresponds to a Systems Manager parameter key. This field is returned only for SSM parameter types in the template. + */ + ResolvedValue?: ParameterValue; + } + export interface ParameterConstraints { + /** + * A list of values that are permitted for a parameter. + */ + AllowedValues?: AllowedValues; + } + export interface ParameterDeclaration { + /** + * The name that is associated with the parameter. + */ + ParameterKey?: ParameterKey; + /** + * The default value of the parameter. + */ + DefaultValue?: ParameterValue; + /** + * The type of parameter. + */ + ParameterType?: ParameterType; + /** + * Flag that indicates whether the parameter value is shown as plain text in logs and in the AWS Management Console. + */ + NoEcho?: NoEcho; + /** + * The description that is associate with the parameter. + */ + Description?: Description; + /** + * The criteria that AWS CloudFormation uses to validate parameter values. + */ + ParameterConstraints?: ParameterConstraints; + } + export type ParameterDeclarations = ParameterDeclaration[]; + export type ParameterKey = string; + export type ParameterType = string; + export type ParameterValue = string; + export type Parameters = Parameter[]; + export type PermissionModels = "SERVICE_MANAGED"|"SELF_MANAGED"|string; + export type PhysicalResourceId = string; + export type PhysicalResourceIdContext = PhysicalResourceIdContextKeyValuePair[]; + export interface PhysicalResourceIdContextKeyValuePair { + /** + * The resource context key. + */ + Key: Key; + /** + * The resource context value. + */ + Value: Value; + } + export type PrivateTypeArn = string; + export type Properties = string; + export interface PropertyDifference { + /** + * The fully-qualified path to the resource property. + */ + PropertyPath: PropertyPath; + /** + * The expected property value of the resource property, as defined in the stack template and any values specified as template parameters. + */ + ExpectedValue: PropertyValue; + /** + * The actual property value of the resource property. + */ + ActualValue: PropertyValue; + /** + * The type of property difference. ADD: A value has been added to a resource property that is an array or list data type. REMOVE: The property has been removed from the current resource configuration. NOT_EQUAL: The current property value differs from its expected value (as defined in the stack template and any values specified as template parameters). + */ + DifferenceType: DifferenceType; + } + export type PropertyDifferences = PropertyDifference[]; + export type PropertyName = string; + export type PropertyPath = string; + export type PropertyValue = string; + export type ProvisioningType = "NON_PROVISIONABLE"|"IMMUTABLE"|"FULLY_MUTABLE"|string; + export type PublicVersionNumber = string; + export interface PublishTypeInput { + /** + * The type of the extension. Conditional: You must specify Arn, or TypeName and Type. + */ + Type?: ThirdPartyType; + /** + * The Amazon Resource Number (ARN) of the extension. Conditional: You must specify Arn, or TypeName and Type. + */ + Arn?: PrivateTypeArn; + /** + * The name of the extension. Conditional: You must specify Arn, or TypeName and Type. + */ + TypeName?: TypeName; + /** + * The version number to assign to this version of the extension. Use the following format, and adhere to semantic versioning when assigning a version number to your extension: MAJOR.MINOR.PATCH For more information, see Semantic Versioning 2.0.0. If you do not specify a version number, CloudFormation increments the version number by one minor version release. + */ + PublicVersionNumber?: PublicVersionNumber; + } + export interface PublishTypeOutput { + /** + * The Amazon Resource Number (ARN) assigned to the public extension upon publication. + */ + PublicTypeArn?: TypeArn; + } + export type PublisherId = string; + export type PublisherName = string; + export type PublisherProfile = string; + export type PublisherStatus = "VERIFIED"|"UNVERIFIED"|string; + export type Reason = string; + export interface RecordHandlerProgressInput { + /** + * Reserved for use by the CloudFormation CLI. + */ + BearerToken: ClientToken; + /** + * Reserved for use by the CloudFormation CLI. + */ + OperationStatus: OperationStatus; + /** + * Reserved for use by the CloudFormation CLI. + */ + CurrentOperationStatus?: OperationStatus; + /** + * Reserved for use by the CloudFormation CLI. + */ + StatusMessage?: StatusMessage; + /** + * Reserved for use by the CloudFormation CLI. + */ + ErrorCode?: HandlerErrorCode; + /** + * Reserved for use by the CloudFormation CLI. + */ + ResourceModel?: ResourceModel; + /** + * Reserved for use by the CloudFormation CLI. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface RecordHandlerProgressOutput { + } + export type Region = string; + export type RegionConcurrencyType = "SEQUENTIAL"|"PARALLEL"|string; + export type RegionList = Region[]; + export interface RegisterPublisherInput { + /** + * Whether you accept the terms and conditions for publishing extensions in the CloudFormation registry. You must accept the terms and conditions in order to register to publish public extensions to the CloudFormation registry. The default is false. + */ + AcceptTermsAndConditions?: AcceptTermsAndConditions; + /** + * If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name (ARN) for your connection to that account. For more information, see Registering your account to publish CloudFormation extensions in the CloudFormation CLI User Guide. + */ + ConnectionArn?: ConnectionArn; + } + export interface RegisterPublisherOutput { + /** + * The ID assigned this account by CloudFormation for publishing extensions. + */ + PublisherId?: PublisherId; + } + export interface RegisterTypeInput { + /** + * The kind of extension. + */ + Type?: RegistryType; + /** + * The name of the extension being registered. We recommend that extension names adhere to the following patterns: For resource types, company_or_organization::service::type. For modules, company_or_organization::service::type::MODULE. The following organization namespaces are reserved and cannot be used in your extension names: Alexa AMZN Amazon AWS Custom Dev + */ + TypeName: TypeName; + /** + * A url to the S3 bucket containing the extension project package that contains the neccessary files for the extension you want to register. For information on generating a schema handler package for the extension you want to register, see submit in the CloudFormation CLI User Guide. The user registering the extension must be able to access the package in the S3 bucket. That is, the user needs to have GetObject permissions for the schema handler package. For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the AWS Identity and Access Management User Guide. + */ + SchemaHandlerPackage: S3Url; + /** + * Specifies logging configuration information for an extension. + */ + LoggingConfig?: LoggingConfig; + /** + * The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking the extension. For CloudFormation to assume the specified execution role, the role must contain a trust relationship with the CloudFormation service principle (resources.cloudformation.amazonaws.com). For more information on adding trust relationships, see Modifying a role trust policy in the AWS Identity and Access Management User Guide. If your extension calls AWS APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials. + */ + ExecutionRoleArn?: RoleArn; + /** + * A unique identifier that acts as an idempotency key for this registration request. Specifying a client request token prevents CloudFormation from generating more than one version of an extension from the same registeration request, even if the request is submitted multiple times. + */ + ClientRequestToken?: RequestToken; + } + export interface RegisterTypeOutput { + /** + * The identifier for this registration request. Use this registration token when calling DescribeTypeRegistration , which returns information about the status and IDs of the extension registration. + */ + RegistrationToken?: RegistrationToken; + } + export type RegistrationStatus = "COMPLETE"|"IN_PROGRESS"|"FAILED"|string; + export type RegistrationToken = string; + export type RegistrationTokenList = RegistrationToken[]; + export type RegistryType = "RESOURCE"|"MODULE"|string; + export type Replacement = "True"|"False"|"Conditional"|string; + export type RequestToken = string; + export interface RequiredActivatedType { + /** + * An alias assigned to the public extension, in this account and region. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and region. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console. + */ + TypeNameAlias?: TypeName; + /** + * The type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and region, CloudFormation treats that alias as the extension's type name within the account and region, not the type name of the public extension. For more information, see Specifying aliases to refer to extensions in the CloudFormation User Guide. + */ + OriginalTypeName?: TypeName; + /** + * The publisher ID of the extension publisher. + */ + PublisherId?: PublisherId; + /** + * A list of the major versions of the extension type that the macro supports. + */ + SupportedMajorVersions?: SupportedMajorVersions; + } + export type RequiredActivatedTypes = RequiredActivatedType[]; + export type RequiresRecreation = "Never"|"Conditionally"|"Always"|string; + export type ResourceAttribute = "Properties"|"Metadata"|"CreationPolicy"|"UpdatePolicy"|"DeletionPolicy"|"Tags"|string; + export interface ResourceChange { + /** + * The action that AWS CloudFormation takes on the resource, such as Add (adds a new resource), Modify (changes a resource), Remove (deletes a resource), Import (imports a resource), or Dynamic (exact action for the resource cannot be determined). + */ + Action?: ChangeAction; + /** + * The resource's logical ID, which is defined in the stack's template. + */ + LogicalResourceId?: LogicalResourceId; + /** + * The resource's physical ID (resource name). Resources that you are adding don't have physical IDs because they haven't been created. + */ + PhysicalResourceId?: PhysicalResourceId; + /** + * The type of AWS CloudFormation resource, such as AWS::S3::Bucket. + */ + ResourceType?: ResourceType; + /** + * For the Modify action, indicates whether AWS CloudFormation will replace the resource by creating a new one and deleting the old one. This value depends on the value of the RequiresRecreation property in the ResourceTargetDefinition structure. For example, if the RequiresRecreation field is Always and the Evaluation field is Static, Replacement is True. If the RequiresRecreation field is Always and the Evaluation field is Dynamic, Replacement is Conditionally. If you have multiple changes with different RequiresRecreation values, the Replacement value depends on the change with the most impact. A RequiresRecreation value of Always has the most impact, followed by Conditionally, and then Never. + */ + Replacement?: Replacement; + /** + * For the Modify action, indicates which resource attribute is triggering this update, such as a change in the resource attribute's Metadata, Properties, or Tags. + */ + Scope?: Scope; + /** + * For the Modify action, a list of ResourceChangeDetail structures that describes the changes that AWS CloudFormation will make to the resource. + */ + Details?: ResourceChangeDetails; + /** + * The change set ID of the nested change set. + */ + ChangeSetId?: ChangeSetId; + /** + * Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. + */ + ModuleInfo?: ModuleInfo; + } + export interface ResourceChangeDetail { + /** + * A ResourceTargetDefinition structure that describes the field that AWS CloudFormation will change and whether the resource will be recreated. + */ + Target?: ResourceTargetDefinition; + /** + * Indicates whether AWS CloudFormation can determine the target value, and whether the target value will change before you execute a change set. For Static evaluations, AWS CloudFormation can determine that the target value will change, and its value. For example, if you directly modify the InstanceType property of an EC2 instance, AWS CloudFormation knows that this property value will change, and its value, so this is a Static evaluation. For Dynamic evaluations, cannot determine the target value because it depends on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic function, when the stack is updated. For example, if your template includes a reference to a resource that is conditionally recreated, the value of the reference (the physical ID of the resource) might change, depending on if the resource is recreated. If the resource is recreated, it will have a new physical ID, so all references to that resource will also be updated. + */ + Evaluation?: EvaluationType; + /** + * The group to which the CausingEntity value belongs. There are five entity groups: ResourceReference entities are Ref intrinsic functions that refer to resources in the template, such as { "Ref" : "MyEC2InstanceResource" }. ParameterReference entities are Ref intrinsic functions that get template parameter values, such as { "Ref" : "MyPasswordParameter" }. ResourceAttribute entities are Fn::GetAtt intrinsic functions that get resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource", "PublicDnsName" ] }. DirectModification entities are changes that are made directly to the template. Automatic entities are AWS::CloudFormation::Stack resource types, which are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack resource, AWS CloudFormation sets the ChangeSource to Automatic because the nested stack's template might have changed. Changes to a nested stack's template aren't visible to AWS CloudFormation until you run an update on the parent stack. + */ + ChangeSource?: ChangeSource; + /** + * The identity of the entity that triggered this change. This entity is a member of the group that is specified by the ChangeSource field. For example, if you modified the value of the KeyPairName parameter, the CausingEntity is the name of the parameter (KeyPairName). If the ChangeSource value is DirectModification, no value is given for CausingEntity. + */ + CausingEntity?: CausingEntity; + } + export type ResourceChangeDetails = ResourceChangeDetail[]; + export type ResourceIdentifierProperties = {[key: string]: ResourceIdentifierPropertyValue}; + export type ResourceIdentifierPropertyKey = string; + export type ResourceIdentifierPropertyValue = string; + export type ResourceIdentifierSummaries = ResourceIdentifierSummary[]; + export interface ResourceIdentifierSummary { + /** + * The template resource type of the target resources, such as AWS::S3::Bucket. + */ + ResourceType?: ResourceType; + /** + * The logical IDs of the target resources of the specified ResourceType, as defined in the import template. + */ + LogicalResourceIds?: LogicalResourceIds; + /** + * The resource properties you can provide during the import to identify your target resources. For example, BucketName is a possible identifier property for AWS::S3::Bucket resources. + */ + ResourceIdentifiers?: ResourceIdentifiers; + } + export type ResourceIdentifiers = ResourceIdentifierPropertyKey[]; + export type ResourceModel = string; + export type ResourceProperties = string; + export type ResourceSignalStatus = "SUCCESS"|"FAILURE"|string; + export type ResourceSignalUniqueId = string; + export type ResourceStatus = "CREATE_IN_PROGRESS"|"CREATE_FAILED"|"CREATE_COMPLETE"|"DELETE_IN_PROGRESS"|"DELETE_FAILED"|"DELETE_COMPLETE"|"DELETE_SKIPPED"|"UPDATE_IN_PROGRESS"|"UPDATE_FAILED"|"UPDATE_COMPLETE"|"IMPORT_FAILED"|"IMPORT_COMPLETE"|"IMPORT_IN_PROGRESS"|"IMPORT_ROLLBACK_IN_PROGRESS"|"IMPORT_ROLLBACK_FAILED"|"IMPORT_ROLLBACK_COMPLETE"|string; + export type ResourceStatusReason = string; + export interface ResourceTargetDefinition { + /** + * Indicates which resource attribute is triggering this update, such as a change in the resource attribute's Metadata, Properties, or Tags. + */ + Attribute?: ResourceAttribute; + /** + * If the Attribute value is Properties, the name of the property. For all other attributes, the value is null. + */ + Name?: PropertyName; + /** + * If the Attribute value is Properties, indicates whether a change to this property causes the resource to be recreated. The value can be Never, Always, or Conditionally. To determine the conditions for a Conditionally recreation, see the update behavior for that property in the AWS CloudFormation User Guide. + */ + RequiresRecreation?: RequiresRecreation; + } + export interface ResourceToImport { + /** + * The type of resource to import into your stack, such as AWS::S3::Bucket. For a list of supported resource types, see Resources that support import operations in the AWS CloudFormation User Guide. + */ + ResourceType: ResourceType; + /** + * The logical ID of the target resource as specified in the template. + */ + LogicalResourceId: LogicalResourceId; + /** + * A key-value pair that identifies the target resource. The key is an identifier property (for example, BucketName for AWS::S3::Bucket resources) and the value is the actual property value (for example, MyS3Bucket). + */ + ResourceIdentifier: ResourceIdentifierProperties; + } + export type ResourceToSkip = string; + export type ResourceType = string; + export type ResourceTypes = ResourceType[]; + export type ResourcesToImport = ResourceToImport[]; + export type ResourcesToSkip = ResourceToSkip[]; + export type RetainResources = LogicalResourceId[]; + export type RetainStacks = boolean; + export type RetainStacksNullable = boolean; + export type RetainStacksOnAccountRemovalNullable = boolean; + export type RoleARN = string; + export type RoleArn = string; + export interface RollbackConfiguration { + /** + * The triggers to monitor during stack creation or update actions. By default, AWS CloudFormation saves the rollback triggers specified for a stack and applies them to any subsequent update operations for the stack, unless you specify otherwise. If you do specify rollback triggers for this parameter, those triggers replace any list of triggers previously specified for the stack. This means: To use the rollback triggers previously specified for this stack, if any, don't specify this parameter. To specify new or updated rollback triggers, you must specify all the triggers that you want used for this stack, even triggers you've specifed before (for example, when creating the stack or during a previous stack update). Any triggers that you don't include in the updated list of triggers are no longer applied to the stack. To remove all currently specified triggers, specify an empty list for this parameter. If a specified trigger is missing, the entire stack operation fails and is rolled back. + */ + RollbackTriggers?: RollbackTriggers; + /** + * The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes. If you specify a monitoring period but do not specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using CancelUpdateStack, for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes. + */ + MonitoringTimeInMinutes?: MonitoringTimeInMinutes; + } + export interface RollbackTrigger { + /** + * The Amazon Resource Name (ARN) of the rollback trigger. If a specified trigger is missing, the entire stack operation fails and is rolled back. + */ + Arn: Arn; + /** + * The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm is the only supported resource type. + */ + Type: Type; + } + export type RollbackTriggers = RollbackTrigger[]; + export type S3Bucket = string; + export type S3Url = string; + export type Scope = ResourceAttribute[]; + export interface SetStackPolicyInput { + /** + * The name or unique stack ID that you want to associate a policy with. + */ + StackName: StackName; + /** + * Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + */ + StackPolicyBody?: StackPolicyBody; + /** + * Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + */ + StackPolicyURL?: StackPolicyURL; + } + export interface SetTypeConfigurationInput { + /** + * The Amazon Resource Name (ARN) for the extension, in this account and region. For public extensions, this will be the ARN assigned when you activate the type in this account and region. For private extensions, this will be the ARN assigned when you register the type in this account and region. Do not include the extension versions suffix at the end of the ARN. You can set the configuration for an extension, but not for a specific extension version. + */ + TypeArn?: TypeArn; + /** + * The configuration data for the extension, in this account and region. The configuration data must be formatted as JSON, and validate against the schema returned in the ConfigurationSchema response element of API_DescribeType. For more information, see Defining account-level configuration data for an extension in the CloudFormation CLI User Guide. + */ + Configuration: TypeConfiguration; + /** + * An alias by which to refer to this extension configuration data. Conditional: Specifying a configuration alias is required when setting a configuration for a resource type extension. + */ + ConfigurationAlias?: TypeConfigurationAlias; + /** + * The name of the extension. Conditional: You must specify ConfigurationArn, or Type and TypeName. + */ + TypeName?: TypeName; + /** + * The type of extension. Conditional: You must specify ConfigurationArn, or Type and TypeName. + */ + Type?: ThirdPartyType; + } + export interface SetTypeConfigurationOutput { + /** + * The Amazon Resource Name (ARN) for the configuration data, in this account and region. Conditional: You must specify ConfigurationArn, or Type and TypeName. + */ + ConfigurationArn?: TypeConfigurationArn; + } + export interface SetTypeDefaultVersionInput { + /** + * The Amazon Resource Name (ARN) of the extension for which you want version summary information. Conditional: You must specify either TypeName and Type, or Arn. + */ + Arn?: PrivateTypeArn; + /** + * The kind of extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + Type?: RegistryType; + /** + * The name of the extension. Conditional: You must specify either TypeName and Type, or Arn. + */ + TypeName?: TypeName; + /** + * The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered. + */ + VersionId?: TypeVersionId; + } + export interface SetTypeDefaultVersionOutput { + } + export interface SignalResourceInput { + /** + * The stack name or unique stack ID that includes the resource that you want to signal. + */ + StackName: StackNameOrId; + /** + * The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template. + */ + LogicalResourceId: LogicalResourceId; + /** + * A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID. + */ + UniqueId: ResourceSignalUniqueId; + /** + * The status of the signal, which is either success or failure. A failure signal causes AWS CloudFormation to immediately fail the stack creation or update. + */ + Status: ResourceSignalStatus; + } + export interface Stack { + /** + * Unique identifier of the stack. + */ + StackId?: StackId; + /** + * The name associated with the stack. + */ + StackName: StackName; + /** + * The unique ID of the change set. + */ + ChangeSetId?: ChangeSetId; + /** + * A user-defined description associated with the stack. + */ + Description?: Description; + /** + * A list of Parameter structures. + */ + Parameters?: Parameters; + /** + * The time at which the stack was created. + */ + CreationTime: CreationTime; + /** + * The time the stack was deleted. + */ + DeletionTime?: DeletionTime; + /** + * The time the stack was last updated. This field will only be returned if the stack has been updated at least once. + */ + LastUpdatedTime?: LastUpdatedTime; + /** + * The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + */ + RollbackConfiguration?: RollbackConfiguration; + /** + * Current status of the stack. + */ + StackStatus: StackStatus; + /** + * Success/failure message associated with the stack status. + */ + StackStatusReason?: StackStatusReason; + /** + * Boolean to enable or disable rollback on stack creation failures: true: disable rollback false: enable rollback + */ + DisableRollback?: DisableRollback; + /** + * SNS topic ARNs to which stack related events are published. + */ + NotificationARNs?: NotificationARNs; + /** + * The amount of time within which stack creation should complete. + */ + TimeoutInMinutes?: TimeoutMinutes; + /** + * The capabilities allowed in the stack. + */ + Capabilities?: Capabilities; + /** + * A list of output structures. + */ + Outputs?: Outputs; + /** + * The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that is associated with the stack. During a stack operation, AWS CloudFormation uses this role's credentials to make calls on your behalf. + */ + RoleARN?: RoleARN; + /** + * A list of Tags that specify information about the stack. + */ + Tags?: Tags; + /** + * Whether termination protection is enabled for the stack. For nested stacks, termination protection is set on the root stack and cannot be changed directly on the nested stack. For more information, see Protecting a Stack From Being Deleted in the AWS CloudFormation User Guide. + */ + EnableTerminationProtection?: EnableTerminationProtection; + /** + * For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + */ + ParentId?: StackId; + /** + * For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + */ + RootId?: StackId; + /** + * Information on whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see Detecting Unregulated Configuration Changes to Stacks and Resources. + */ + DriftInformation?: StackDriftInformation; + } + export type StackDriftDetectionId = string; + export type StackDriftDetectionStatus = "DETECTION_IN_PROGRESS"|"DETECTION_FAILED"|"DETECTION_COMPLETE"|string; + export type StackDriftDetectionStatusReason = string; + export interface StackDriftInformation { + /** + * Status of the stack's actual configuration compared to its expected template configuration. DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted. NOT_CHECKED: AWS CloudFormation has not checked if the stack differs from its expected template configuration. IN_SYNC: The stack's actual configuration matches its expected template configuration. UNKNOWN: This value is reserved for future use. + */ + StackDriftStatus: StackDriftStatus; + /** + * Most recent time when a drift detection operation was initiated on the stack, or any of its individual resources that support drift detection. + */ + LastCheckTimestamp?: Timestamp; + } + export interface StackDriftInformationSummary { + /** + * Status of the stack's actual configuration compared to its expected template configuration. DRIFTED: The stack differs from its expected template configuration. A stack is considered to have drifted if one or more of its resources have drifted. NOT_CHECKED: AWS CloudFormation has not checked if the stack differs from its expected template configuration. IN_SYNC: The stack's actual configuration matches its expected template configuration. UNKNOWN: This value is reserved for future use. + */ + StackDriftStatus: StackDriftStatus; + /** + * Most recent time when a drift detection operation was initiated on the stack, or any of its individual resources that support drift detection. + */ + LastCheckTimestamp?: Timestamp; + } + export type StackDriftStatus = "DRIFTED"|"IN_SYNC"|"UNKNOWN"|"NOT_CHECKED"|string; + export interface StackEvent { + /** + * The unique ID name of the instance of the stack. + */ + StackId: StackId; + /** + * The unique ID of this event. + */ + EventId: EventId; + /** + * The name associated with a stack. + */ + StackName: StackName; + /** + * The logical name of the resource specified in the template. + */ + LogicalResourceId?: LogicalResourceId; + /** + * The name or unique identifier associated with the physical instance of the resource. + */ + PhysicalResourceId?: PhysicalResourceId; + /** + * Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.) + */ + ResourceType?: ResourceType; + /** + * Time the status was updated. + */ + Timestamp: Timestamp; + /** + * Current status of the resource. + */ + ResourceStatus?: ResourceStatus; + /** + * Success/failure message associated with the resource. + */ + ResourceStatusReason?: ResourceStatusReason; + /** + * BLOB of the properties used to create the resource. + */ + ResourceProperties?: ResourceProperties; + /** + * The token passed to the operation that generated this event. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. + */ + ClientRequestToken?: ClientRequestToken; + } + export type StackEvents = StackEvent[]; + export type StackId = string; + export interface StackInstance { + /** + * The name or unique ID of the stack set that the stack instance is associated with. + */ + StackSetId?: StackSetId; + /** + * The name of the AWS Region that the stack instance is associated with. + */ + Region?: Region; + /** + * [Self-managed permissions] The name of the AWS account that the stack instance is associated with. + */ + Account?: Account; + /** + * The ID of the stack instance. + */ + StackId?: StackId; + /** + * A list of parameters from the stack set template whose values have been overridden in this stack instance. + */ + ParameterOverrides?: Parameters; + /** + * The status of the stack instance, in terms of its synchronization with its associated stack set. INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might need to perform a DeleteStackInstances operation, with RetainStacks set to true, to delete the stack instance, and then delete the stack manually. OUTDATED: The stack isn't currently up to date with the stack set because: The associated stack failed during a CreateStackSet or UpdateStackSet operation. The stack was part of a CreateStackSet or UpdateStackSet operation that failed or was stopped before the stack was created or updated. CURRENT: The stack is currently up to date with the stack set. + */ + Status?: StackInstanceStatus; + /** + * The detailed status of the stack instance. + */ + StackInstanceStatus?: StackInstanceComprehensiveStatus; + /** + * The explanation for the specific status code that is assigned to this stack instance. + */ + StatusReason?: Reason; + /** + * [Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets. + */ + OrganizationalUnitId?: OrganizationalUnitId; + /** + * Status of the stack instance's actual configuration compared to the expected template and parameter configuration of the stack set to which it belongs. DRIFTED: The stack differs from the expected template and parameter configuration of the stack set to which it belongs. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted. NOT_CHECKED: AWS CloudFormation has not checked if the stack instance differs from its expected stack set configuration. IN_SYNC: The stack instance's actual configuration matches its expected stack set configuration. UNKNOWN: This value is reserved for future use. + */ + DriftStatus?: StackDriftStatus; + /** + * Most recent time when CloudFormation performed a drift detection operation on the stack instance. This value will be NULL for any stack instance on which drift detection has not yet been performed. + */ + LastDriftCheckTimestamp?: Timestamp; + } + export interface StackInstanceComprehensiveStatus { + /** + * CANCELLED: The operation in the specified account and Region has been cancelled. This is either because a user has stopped the stack set operation, or because the failure tolerance of the stack set operation has been exceeded. FAILED: The operation in the specified account and Region failed. If the stack set operation fails in enough accounts within a Region, the failure tolerance for the stack set operation as a whole might be exceeded. INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might need to perform a DeleteStackInstances operation, with RetainStacks set to true, to delete the stack instance, and then delete the stack manually. PENDING: The operation in the specified account and Region has yet to start. RUNNING: The operation in the specified account and Region is currently in progress. SUCCEEDED: The operation in the specified account and Region completed successfully. + */ + DetailedStatus?: StackInstanceDetailedStatus; + } + export type StackInstanceDetailedStatus = "PENDING"|"RUNNING"|"SUCCEEDED"|"FAILED"|"CANCELLED"|"INOPERABLE"|string; + export interface StackInstanceFilter { + /** + * The type of filter to apply. + */ + Name?: StackInstanceFilterName; + /** + * The status to filter by. + */ + Values?: StackInstanceFilterValues; + } + export type StackInstanceFilterName = "DETAILED_STATUS"|string; + export type StackInstanceFilterValues = string; + export type StackInstanceFilters = StackInstanceFilter[]; + export type StackInstanceStatus = "CURRENT"|"OUTDATED"|"INOPERABLE"|string; + export type StackInstanceSummaries = StackInstanceSummary[]; + export interface StackInstanceSummary { + /** + * The name or unique ID of the stack set that the stack instance is associated with. + */ + StackSetId?: StackSetId; + /** + * The name of the AWS Region that the stack instance is associated with. + */ + Region?: Region; + /** + * [Self-managed permissions] The name of the AWS account that the stack instance is associated with. + */ + Account?: Account; + /** + * The ID of the stack instance. + */ + StackId?: StackId; + /** + * The status of the stack instance, in terms of its synchronization with its associated stack set. INOPERABLE: A DeleteStackInstances operation has failed and left the stack in an unstable state. Stacks in this state are excluded from further UpdateStackSet operations. You might need to perform a DeleteStackInstances operation, with RetainStacks set to true, to delete the stack instance, and then delete the stack manually. OUTDATED: The stack isn't currently up to date with the stack set because: The associated stack failed during a CreateStackSet or UpdateStackSet operation. The stack was part of a CreateStackSet or UpdateStackSet operation that failed or was stopped before the stack was created or updated. CURRENT: The stack is currently up to date with the stack set. + */ + Status?: StackInstanceStatus; + /** + * The explanation for the specific status code assigned to this stack instance. + */ + StatusReason?: Reason; + /** + * The detailed status of the stack instance. + */ + StackInstanceStatus?: StackInstanceComprehensiveStatus; + /** + * [Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets. + */ + OrganizationalUnitId?: OrganizationalUnitId; + /** + * Status of the stack instance's actual configuration compared to the expected template and parameter configuration of the stack set to which it belongs. DRIFTED: The stack differs from the expected template and parameter configuration of the stack set to which it belongs. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted. NOT_CHECKED: AWS CloudFormation has not checked if the stack instance differs from its expected stack set configuration. IN_SYNC: The stack instance's actual configuration matches its expected stack set configuration. UNKNOWN: This value is reserved for future use. + */ + DriftStatus?: StackDriftStatus; + /** + * Most recent time when CloudFormation performed a drift detection operation on the stack instance. This value will be NULL for any stack instance on which drift detection has not yet been performed. + */ + LastDriftCheckTimestamp?: Timestamp; + } + export type StackName = string; + export type StackNameOrId = string; + export type StackPolicyBody = string; + export type StackPolicyDuringUpdateBody = string; + export type StackPolicyDuringUpdateURL = string; + export type StackPolicyURL = string; + export interface StackResource { + /** + * The name associated with the stack. + */ + StackName?: StackName; + /** + * Unique identifier of the stack. + */ + StackId?: StackId; + /** + * The logical name of the resource specified in the template. + */ + LogicalResourceId: LogicalResourceId; + /** + * The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. + */ + PhysicalResourceId?: PhysicalResourceId; + /** + * Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.) + */ + ResourceType: ResourceType; + /** + * Time the status was updated. + */ + Timestamp: Timestamp; + /** + * Current status of the resource. + */ + ResourceStatus: ResourceStatus; + /** + * Success/failure message associated with the resource. + */ + ResourceStatusReason?: ResourceStatusReason; + /** + * User defined description associated with the resource. + */ + Description?: Description; + /** + * Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see Detecting Unregulated Configuration Changes to Stacks and Resources. + */ + DriftInformation?: StackResourceDriftInformation; + /** + * Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. + */ + ModuleInfo?: ModuleInfo; + } + export interface StackResourceDetail { + /** + * The name associated with the stack. + */ + StackName?: StackName; + /** + * Unique identifier of the stack. + */ + StackId?: StackId; + /** + * The logical name of the resource specified in the template. + */ + LogicalResourceId: LogicalResourceId; + /** + * The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. + */ + PhysicalResourceId?: PhysicalResourceId; + /** + * Type of resource. ((For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.) + */ + ResourceType: ResourceType; + /** + * Time the status was updated. + */ + LastUpdatedTimestamp: Timestamp; + /** + * Current status of the resource. + */ + ResourceStatus: ResourceStatus; + /** + * Success/failure message associated with the resource. + */ + ResourceStatusReason?: ResourceStatusReason; + /** + * User defined description associated with the resource. + */ + Description?: Description; + /** + * The content of the Metadata attribute declared for the resource. For more information, see Metadata Attribute in the AWS CloudFormation User Guide. + */ + Metadata?: Metadata; + /** + * Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see Detecting Unregulated Configuration Changes to Stacks and Resources. + */ + DriftInformation?: StackResourceDriftInformation; + /** + * Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. + */ + ModuleInfo?: ModuleInfo; + } + export interface StackResourceDrift { + /** + * The ID of the stack. + */ + StackId: StackId; + /** + * The logical name of the resource specified in the template. + */ + LogicalResourceId: LogicalResourceId; + /** + * The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. + */ + PhysicalResourceId?: PhysicalResourceId; + /** + * Context information that enables AWS CloudFormation to uniquely identify a resource. AWS CloudFormation uses context key-value pairs in cases where a resource's logical and physical IDs are not enough to uniquely identify that resource. Each context key-value pair specifies a unique resource that contains the targeted resource. + */ + PhysicalResourceIdContext?: PhysicalResourceIdContext; + /** + * The type of the resource. + */ + ResourceType: ResourceType; + /** + * A JSON structure containing the expected property values of the stack resource, as defined in the stack template and any values specified as template parameters. For resources whose StackResourceDriftStatus is DELETED, this structure will not be present. + */ + ExpectedProperties?: Properties; + /** + * A JSON structure containing the actual property values of the stack resource. For resources whose StackResourceDriftStatus is DELETED, this structure will not be present. + */ + ActualProperties?: Properties; + /** + * A collection of the resource properties whose actual values differ from their expected values. These will be present only for resources whose StackResourceDriftStatus is MODIFIED. + */ + PropertyDifferences?: PropertyDifferences; + /** + * Status of the resource's actual configuration compared to its expected configuration DELETED: The resource differs from its expected template configuration because the resource has been deleted. MODIFIED: One or more resource properties differ from their expected values (as defined in the stack template and any values specified as template parameters). IN_SYNC: The resources's actual configuration matches its expected template configuration. NOT_CHECKED: AWS CloudFormation does not currently return this value. + */ + StackResourceDriftStatus: StackResourceDriftStatus; + /** + * Time at which AWS CloudFormation performed drift detection on the stack resource. + */ + Timestamp: Timestamp; + /** + * Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. + */ + ModuleInfo?: ModuleInfo; + } + export interface StackResourceDriftInformation { + /** + * Status of the resource's actual configuration compared to its expected configuration DELETED: The resource differs from its expected configuration in that it has been deleted. MODIFIED: The resource differs from its expected configuration. NOT_CHECKED: AWS CloudFormation has not checked if the resource differs from its expected configuration. Any resources that do not currently support drift detection have a status of NOT_CHECKED. For more information, see Resources that Support Drift Detection. IN_SYNC: The resources's actual configuration matches its expected configuration. + */ + StackResourceDriftStatus: StackResourceDriftStatus; + /** + * When AWS CloudFormation last checked if the resource had drifted from its expected configuration. + */ + LastCheckTimestamp?: Timestamp; + } + export interface StackResourceDriftInformationSummary { + /** + * Status of the resource's actual configuration compared to its expected configuration DELETED: The resource differs from its expected configuration in that it has been deleted. MODIFIED: The resource differs from its expected configuration. NOT_CHECKED: AWS CloudFormation has not checked if the resource differs from its expected configuration. Any resources that do not currently support drift detection have a status of NOT_CHECKED. For more information, see Resources that Support Drift Detection. If you performed an ContinueUpdateRollback operation on a stack, any resources included in ResourcesToSkip will also have a status of NOT_CHECKED. For more information on skipping resources during rollback operations, see Continue Rolling Back an Update in the AWS CloudFormation User Guide. IN_SYNC: The resources's actual configuration matches its expected configuration. + */ + StackResourceDriftStatus: StackResourceDriftStatus; + /** + * When AWS CloudFormation last checked if the resource had drifted from its expected configuration. + */ + LastCheckTimestamp?: Timestamp; + } + export type StackResourceDriftStatus = "IN_SYNC"|"MODIFIED"|"DELETED"|"NOT_CHECKED"|string; + export type StackResourceDriftStatusFilters = StackResourceDriftStatus[]; + export type StackResourceDrifts = StackResourceDrift[]; + export type StackResourceSummaries = StackResourceSummary[]; + export interface StackResourceSummary { + /** + * The logical name of the resource specified in the template. + */ + LogicalResourceId: LogicalResourceId; + /** + * The name or unique identifier that corresponds to a physical instance ID of the resource. + */ + PhysicalResourceId?: PhysicalResourceId; + /** + * Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.) + */ + ResourceType: ResourceType; + /** + * Time the status was updated. + */ + LastUpdatedTimestamp: Timestamp; + /** + * Current status of the resource. + */ + ResourceStatus: ResourceStatus; + /** + * Success/failure message associated with the resource. + */ + ResourceStatusReason?: ResourceStatusReason; + /** + * Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see Detecting Unregulated Configuration Changes to Stacks and Resources. + */ + DriftInformation?: StackResourceDriftInformationSummary; + /** + * Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. + */ + ModuleInfo?: ModuleInfo; + } + export type StackResources = StackResource[]; + export interface StackSet { + /** + * The name that's associated with the stack set. + */ + StackSetName?: StackSetName; + /** + * The ID of the stack set. + */ + StackSetId?: StackSetId; + /** + * A description of the stack set that you specify when the stack set is created or updated. + */ + Description?: Description; + /** + * The status of the stack set. + */ + Status?: StackSetStatus; + /** + * The structure that contains the body of the template that was used to create or update the stack set. + */ + TemplateBody?: TemplateBody; + /** + * A list of input parameters for a stack set. + */ + Parameters?: Parameters; + /** + * The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your AWS account—for example, by creating new AWS Identity and Access Management (IAM) users. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + */ + Capabilities?: Capabilities; + /** + * A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified. + */ + Tags?: Tags; + /** + * The Amazon Resource Number (ARN) of the stack set. + */ + StackSetARN?: StackSetARN; + /** + * The Amazon Resource Number (ARN) of the IAM role used to create or update the stack set. Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see Prerequisites: Granting Permissions for Stack Set Operations in the AWS CloudFormation User Guide. + */ + AdministrationRoleARN?: RoleARN; + /** + * The name of the IAM execution role used to create or update the stack set. Use customized execution roles to control which stack resources users and groups can include in their stack sets. + */ + ExecutionRoleName?: ExecutionRoleName; + /** + * Detailed information about the drift status of the stack set. For stack sets, contains information about the last completed drift operation performed on the stack set. Information about drift operations currently in progress is not included. + */ + StackSetDriftDetectionDetails?: StackSetDriftDetectionDetails; + /** + * [Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU). + */ + AutoDeployment?: AutoDeployment; + /** + * Describes how the IAM roles required for stack set operations are created. With self-managed permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. With service-managed permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations. For more information, see Grant Service-Managed Stack Set Permissions. + */ + PermissionModel?: PermissionModels; + /** + * [Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets. + */ + OrganizationalUnitIds?: OrganizationalUnitIdList; + } + export type StackSetARN = string; + export interface StackSetDriftDetectionDetails { + /** + * Status of the stack set's actual configuration compared to its expected template and parameter configuration. A stack set is considered to have drifted if one or more of its stack instances have drifted from their expected template and parameter configuration. DRIFTED: One or more of the stack instances belonging to the stack set stack differs from the expected template and parameter configuration. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted. NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift. IN_SYNC: All of the stack instances belonging to the stack set stack match from the expected template and parameter configuration. + */ + DriftStatus?: StackSetDriftStatus; + /** + * The status of the stack set drift detection operation. COMPLETED: The drift detection operation completed without failing on any stack instances. FAILED: The drift detection operation exceeded the specified failure tolerance. PARTIAL_SUCCESS: The drift detection operation completed without exceeding the failure tolerance for the operation. IN_PROGRESS: The drift detection operation is currently being performed. STOPPED: The user has cancelled the drift detection operation. + */ + DriftDetectionStatus?: StackSetDriftDetectionStatus; + /** + * Most recent time when CloudFormation performed a drift detection operation on the stack set. This value will be NULL for any stack set on which drift detection has not yet been performed. + */ + LastDriftCheckTimestamp?: Timestamp; + /** + * The total number of stack instances belonging to this stack set. The total number of stack instances is equal to the total of: Stack instances that match the stack set configuration. Stack instances that have drifted from the stack set configuration. Stack instances where the drift detection operation has failed. Stack instances currently being checked for drift. + */ + TotalStackInstancesCount?: TotalStackInstancesCount; + /** + * The number of stack instances that have drifted from the expected template and parameter configuration of the stack set. A stack instance is considered to have drifted if one or more of the resources in the associated stack do not match their expected configuration. + */ + DriftedStackInstancesCount?: DriftedStackInstancesCount; + /** + * The number of stack instances which match the expected template and parameter configuration of the stack set. + */ + InSyncStackInstancesCount?: InSyncStackInstancesCount; + /** + * The number of stack instances that are currently being checked for drift. + */ + InProgressStackInstancesCount?: InProgressStackInstancesCount; + /** + * The number of stack instances for which the drift detection operation failed. + */ + FailedStackInstancesCount?: FailedStackInstancesCount; + } + export type StackSetDriftDetectionStatus = "COMPLETED"|"FAILED"|"PARTIAL_SUCCESS"|"IN_PROGRESS"|"STOPPED"|string; + export type StackSetDriftStatus = "DRIFTED"|"IN_SYNC"|"NOT_CHECKED"|string; + export type StackSetId = string; + export type StackSetName = string; + export type StackSetNameOrId = string; + export interface StackSetOperation { + /** + * The unique ID of a stack set operation. + */ + OperationId?: ClientRequestToken; + /** + * The ID of the stack set. + */ + StackSetId?: StackSetId; + /** + * The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, as well as all associated stack set instances. + */ + Action?: StackSetOperationAction; + /** + * The status of the operation. FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining Regions. QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the stack set operation status codes in the AWS CloudFormation User Guide. RUNNING: The operation is currently being performed. STOPPED: The user has cancelled the operation. STOPPING: The operation is in the process of stopping, at user request. SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation. + */ + Status?: StackSetOperationStatus; + /** + * The preferences for how AWS CloudFormation performs this stack set operation. + */ + OperationPreferences?: StackSetOperationPreferences; + /** + * For stack set operations of action type DELETE, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack, or add an existing, saved stack to a new stack set. + */ + RetainStacks?: RetainStacksNullable; + /** + * The Amazon Resource Number (ARN) of the IAM role used to perform this stack set operation. Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see Define Permissions for Multiple Administrators in the AWS CloudFormation User Guide. + */ + AdministrationRoleARN?: RoleARN; + /** + * The name of the IAM execution role used to create or update the stack set. Use customized execution roles to control which stack resources users and groups can include in their stack sets. + */ + ExecutionRoleName?: ExecutionRoleName; + /** + * The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because AWS CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks. + */ + CreationTimestamp?: Timestamp; + /** + * The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region. + */ + EndTimestamp?: Timestamp; + /** + * [Service-managed permissions] The AWS Organizations accounts affected by the stack operation. + */ + DeploymentTargets?: DeploymentTargets; + /** + * Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set. this information will only be present for stack set operations whose Action type is DETECT_DRIFT. For more information, see Detecting Unmanaged Changes in Stack Sets in the AWS CloudFormation User Guide. + */ + StackSetDriftDetectionDetails?: StackSetDriftDetectionDetails; + } + export type StackSetOperationAction = "CREATE"|"UPDATE"|"DELETE"|"DETECT_DRIFT"|string; + export interface StackSetOperationPreferences { + /** + * The concurrency type of deploying StackSets operations in regions, could be in parallel or one region at a time. + */ + RegionConcurrencyType?: RegionConcurrencyType; + /** + * The order of the Regions in where you want to perform the stack operation. + */ + RegionOrder?: RegionList; + /** + * The number of accounts, per Region, for which this operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage (but not both). By default, 0 is specified. + */ + FailureToleranceCount?: FailureToleranceCount; + /** + * The percentage of accounts, per Region, for which this stack operation can fail before AWS CloudFormation stops the operation in that Region. If the operation is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent Regions. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage, but not both. By default, 0 is specified. + */ + FailureTolerancePercentage?: FailureTolerancePercentage; + /** + * The maximum number of accounts in which to perform this operation at one time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount is at most one more than the FailureToleranceCount. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both. By default, 1 is specified. + */ + MaxConcurrentCount?: MaxConcurrentCount; + /** + * The maximum percentage of accounts in which to perform this operation at one time. When calculating the number of accounts based on the specified percentage, AWS CloudFormation rounds down to the next whole number. This is true except in cases where rounding down would result is zero. In this case, CloudFormation sets the number as one instead. Note that this setting lets you specify the maximum for operations. For large deployments, under certain circumstances the actual number of accounts acted upon concurrently may be lower due to service throttling. Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both. By default, 1 is specified. + */ + MaxConcurrentPercentage?: MaxConcurrentPercentage; + } + export type StackSetOperationResultStatus = "PENDING"|"RUNNING"|"SUCCEEDED"|"FAILED"|"CANCELLED"|string; + export type StackSetOperationResultSummaries = StackSetOperationResultSummary[]; + export interface StackSetOperationResultSummary { + /** + * [Self-managed permissions] The name of the AWS account for this operation result. + */ + Account?: Account; + /** + * The name of the AWS Region for this operation result. + */ + Region?: Region; + /** + * The result status of the stack set operation for the given account in the given Region. CANCELLED: The operation in the specified account and Region has been cancelled. This is either because a user has stopped the stack set operation, or because the failure tolerance of the stack set operation has been exceeded. FAILED: The operation in the specified account and Region failed. If the stack set operation fails in enough accounts within a Region, the failure tolerance for the stack set operation as a whole might be exceeded. RUNNING: The operation in the specified account and Region is currently in progress. PENDING: The operation in the specified account and Region has yet to start. SUCCEEDED: The operation in the specified account and Region completed successfully. + */ + Status?: StackSetOperationResultStatus; + /** + * The reason for the assigned result status. + */ + StatusReason?: Reason; + /** + * The results of the account gate function AWS CloudFormation invokes, if present, before proceeding with stack set operations in an account + */ + AccountGateResult?: AccountGateResult; + /** + * [Service-managed permissions] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets. + */ + OrganizationalUnitId?: OrganizationalUnitId; + } + export type StackSetOperationStatus = "RUNNING"|"SUCCEEDED"|"FAILED"|"STOPPING"|"STOPPED"|"QUEUED"|string; + export type StackSetOperationSummaries = StackSetOperationSummary[]; + export interface StackSetOperationSummary { + /** + * The unique ID of the stack set operation. + */ + OperationId?: ClientRequestToken; + /** + * The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself as well as all associated stack set instances. + */ + Action?: StackSetOperationAction; + /** + * The overall status of the operation. FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and AWS CloudFormation cancels the operation in any remaining Regions. QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the stack set operation status codes in the AWS CloudFormation User Guide. RUNNING: The operation is currently being performed. STOPPED: The user has cancelled the operation. STOPPING: The operation is in the process of stopping, at user request. SUCCEEDED: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation. + */ + Status?: StackSetOperationStatus; + /** + * The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because AWS CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks. + */ + CreationTimestamp?: Timestamp; + /** + * The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region. + */ + EndTimestamp?: Timestamp; + } + export type StackSetStatus = "ACTIVE"|"DELETED"|string; + export type StackSetSummaries = StackSetSummary[]; + export interface StackSetSummary { + /** + * The name of the stack set. + */ + StackSetName?: StackSetName; + /** + * The ID of the stack set. + */ + StackSetId?: StackSetId; + /** + * A description of the stack set that you specify when the stack set is created or updated. + */ + Description?: Description; + /** + * The status of the stack set. + */ + Status?: StackSetStatus; + /** + * [Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organizational unit (OU). + */ + AutoDeployment?: AutoDeployment; + /** + * Describes how the IAM roles required for stack set operations are created. With self-managed permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. With service-managed permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations. For more information, see Grant Service-Managed Stack Set Permissions. + */ + PermissionModel?: PermissionModels; + /** + * Status of the stack set's actual configuration compared to its expected template and parameter configuration. A stack set is considered to have drifted if one or more of its stack instances have drifted from their expected template and parameter configuration. DRIFTED: One or more of the stack instances belonging to the stack set stack differs from the expected template and parameter configuration. A stack instance is considered to have drifted if one or more of the resources in the associated stack have drifted. NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift. IN_SYNC: All of the stack instances belonging to the stack set stack match from the expected template and parameter configuration. UNKNOWN: This value is reserved for future use. + */ + DriftStatus?: StackDriftStatus; + /** + * Most recent time when CloudFormation performed a drift detection operation on the stack set. This value will be NULL for any stack set on which drift detection has not yet been performed. + */ + LastDriftCheckTimestamp?: Timestamp; + } + export type StackStatus = "CREATE_IN_PROGRESS"|"CREATE_FAILED"|"CREATE_COMPLETE"|"ROLLBACK_IN_PROGRESS"|"ROLLBACK_FAILED"|"ROLLBACK_COMPLETE"|"DELETE_IN_PROGRESS"|"DELETE_FAILED"|"DELETE_COMPLETE"|"UPDATE_IN_PROGRESS"|"UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"|"UPDATE_COMPLETE"|"UPDATE_ROLLBACK_IN_PROGRESS"|"UPDATE_ROLLBACK_FAILED"|"UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"|"UPDATE_ROLLBACK_COMPLETE"|"REVIEW_IN_PROGRESS"|"IMPORT_IN_PROGRESS"|"IMPORT_COMPLETE"|"IMPORT_ROLLBACK_IN_PROGRESS"|"IMPORT_ROLLBACK_FAILED"|"IMPORT_ROLLBACK_COMPLETE"|string; + export type StackStatusFilter = StackStatus[]; + export type StackStatusReason = string; + export type StackSummaries = StackSummary[]; + export interface StackSummary { + /** + * Unique stack identifier. + */ + StackId?: StackId; + /** + * The name associated with the stack. + */ + StackName: StackName; + /** + * The template description of the template used to create the stack. + */ + TemplateDescription?: TemplateDescription; + /** + * The time the stack was created. + */ + CreationTime: CreationTime; + /** + * The time the stack was last updated. This field will only be returned if the stack has been updated at least once. + */ + LastUpdatedTime?: LastUpdatedTime; + /** + * The time the stack was deleted. + */ + DeletionTime?: DeletionTime; + /** + * The current status of the stack. + */ + StackStatus: StackStatus; + /** + * Success/Failure message associated with the stack status. + */ + StackStatusReason?: StackStatusReason; + /** + * For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + */ + ParentId?: StackId; + /** + * For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs. For more information, see Working with Nested Stacks in the AWS CloudFormation User Guide. + */ + RootId?: StackId; + /** + * Summarizes information on whether a stack's actual configuration differs, or has drifted, from it's expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see Detecting Unregulated Configuration Changes to Stacks and Resources. + */ + DriftInformation?: StackDriftInformationSummary; + } + export type Stacks = Stack[]; + export type StageList = TemplateStage[]; + export type StatusMessage = string; + export interface StopStackSetOperationInput { + /** + * The name or unique ID of the stack set that you want to stop the operation for. + */ + StackSetName: StackSetName; + /** + * The ID of the stack operation. + */ + OperationId: ClientRequestToken; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface StopStackSetOperationOutput { + } + export type SupportedMajorVersion = number; + export type SupportedMajorVersions = SupportedMajorVersion[]; + export interface Tag { + /** + * Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: aws:. + */ + Key: TagKey; + /** + * Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagValue = string; + export type Tags = Tag[]; + export type TemplateBody = string; + export type TemplateDescription = string; + export interface TemplateParameter { + /** + * The name associated with the parameter. + */ + ParameterKey?: ParameterKey; + /** + * The default value associated with the parameter. + */ + DefaultValue?: ParameterValue; + /** + * Flag indicating whether the parameter should be displayed as plain text in logs and UIs. + */ + NoEcho?: NoEcho; + /** + * User defined description associated with the parameter. + */ + Description?: Description; + } + export type TemplateParameters = TemplateParameter[]; + export type TemplateStage = "Original"|"Processed"|string; + export type TemplateURL = string; + export interface TestTypeInput { + /** + * The Amazon Resource Number (ARN) of the extension. Conditional: You must specify Arn, or TypeName and Type. + */ + Arn?: TypeArn; + /** + * The type of the extension to test. Conditional: You must specify Arn, or TypeName and Type. + */ + Type?: ThirdPartyType; + /** + * The name of the extension to test. Conditional: You must specify Arn, or TypeName and Type. + */ + TypeName?: TypeName; + /** + * The version of the extension to test. You can specify the version id with either Arn, or with TypeName and Type. If you do not specify a version, CloudFormation uses the default version of the extension in this account and region for testing. + */ + VersionId?: TypeVersionId; + /** + * The S3 bucket to which CloudFormation delivers the contract test execution logs. CloudFormation delivers the logs by the time contract testing has completed and the extension has been assigned a test type status of PASSED or FAILED. The user calling TestType must be able to access items in the specified S3 bucket. Specifically, the user needs the following permissions: GetObject PutObject For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the AWS Identity and Access Management User Guide. + */ + LogDeliveryBucket?: S3Bucket; + } + export interface TestTypeOutput { + /** + * The Amazon Resource Number (ARN) of the extension. + */ + TypeVersionArn?: TypeArn; + } + export type ThirdPartyType = "RESOURCE"|"MODULE"|string; + export type ThirdPartyTypeArn = string; + export type TimeoutMinutes = number; + export type Timestamp = Date; + export type TotalStackInstancesCount = number; + export type TransformName = string; + export type TransformsList = TransformName[]; + export type Type = string; + export type TypeArn = string; + export type TypeConfiguration = string; + export type TypeConfigurationAlias = string; + export type TypeConfigurationArn = string; + export interface TypeConfigurationDetails { + /** + * The Amazon Resource Name (ARN) for the configuration data, in this account and region. + */ + Arn?: TypeConfigurationArn; + /** + * The alias specified for this configuration, if one was specified when the configuration was set. + */ + Alias?: TypeConfigurationAlias; + /** + * A JSON string specifying the configuration data for the extension, in this account and region. If a configuration has not been set for a specified extension, CloudFormation returns {}. + */ + Configuration?: TypeConfiguration; + /** + * When the configuration data was last updated for this extension. If a configuration has not been set for a specified extension, CloudFormation returns null. + */ + LastUpdated?: Timestamp; + /** + * The Amazon Resource Name (ARN) for the extension, in this account and region. For public extensions, this will be the ARN assigned when you activate the type in this account and region. For private extensions, this will be the ARN assigned when you register the type in this account and region. + */ + TypeArn?: TypeArn; + /** + * The name of the extension. + */ + TypeName?: TypeName; + /** + * Whether or not this configuration data is the default configuration for the extension. + */ + IsDefaultConfiguration?: IsDefaultConfiguration; + } + export type TypeConfigurationDetailsList = TypeConfigurationDetails[]; + export interface TypeConfigurationIdentifier { + /** + * The Amazon Resource Name (ARN) for the extension, in this account and region. For public extensions, this will be the ARN assigned when you activate the type in this account and region. For private extensions, this will be the ARN assigned when you register the type in this account and region. + */ + TypeArn?: TypeArn; + /** + * The alias specified for this configuration, if one was specified when the configuration was set. + */ + TypeConfigurationAlias?: TypeConfigurationAlias; + /** + * The Amazon Resource Name (ARN) for the configuration, in this account and region. + */ + TypeConfigurationArn?: TypeConfigurationArn; + /** + * The type of extension. + */ + Type?: ThirdPartyType; + /** + * The name of the extension type to which this configuration applies. + */ + TypeName?: TypeName; + } + export type TypeConfigurationIdentifiers = TypeConfigurationIdentifier[]; + export interface TypeFilters { + /** + * The category of extensions to return. REGISTERED: Private extensions that have been registered for this account and region. ACTIVATED: Public extensions that have been activated for this account and region. THIRD-PARTY: Extensions available for use from publishers other than Amazon. This includes: Private extensions registered in the account. Public extensions from publishers other than Amazon, whether activated or not. AWS-TYPES: Extensions available for use from Amazon. + */ + Category?: Category; + /** + * The id of the publisher of the extension. Extensions published by Amazon are not assigned a publisher ID. Use the AWS-TYPES category to specify a list of types published by Amazon. + */ + PublisherId?: PublisherId; + /** + * A prefix to use as a filter for results. + */ + TypeNamePrefix?: TypeNamePrefix; + } + export type TypeHierarchy = string; + export type TypeName = string; + export type TypeNamePrefix = string; + export type TypeSchema = string; + export type TypeSummaries = TypeSummary[]; + export interface TypeSummary { + /** + * The kind of extension. + */ + Type?: RegistryType; + /** + * The name of the extension. If you specified a TypeNameAlias when you activate this extension in your account and region, CloudFormation considers that alias as the type name. + */ + TypeName?: TypeName; + /** + * The ID of the default version of the extension. The default version is used when the extension version is not specified. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon and published by third parties, CloudFormation returns null. For more information, see RegisterType. To set the default version of an extension, use SetTypeDefaultVersion . + */ + DefaultVersionId?: TypeVersionId; + /** + * The Amazon Resource Name (ARN) of the extension. + */ + TypeArn?: TypeArn; + /** + * When the specified extension version was registered. This applies only to: Private extensions you have registered in your account. For more information, see RegisterType. Public extensions you have activated in your account with auto-update specified. For more information, see ActivateType. For all other extension types, CloudFormation returns null. + */ + LastUpdated?: Timestamp; + /** + * The description of the extension. + */ + Description?: Description; + /** + * The ID of the extension publisher, if the extension is published by a third party. Extensions published by Amazon do not return a publisher ID. + */ + PublisherId?: PublisherId; + /** + * For public extensions that have been activated for this account and region, the type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and region, CloudFormation treats that alias as the extension's type name within the account and region, not the type name of the public extension. For more information, see Specifying aliases to refer to extensions in the CloudFormation User Guide. + */ + OriginalTypeName?: TypeName; + /** + * For public extensions that have been activated for this account and region, the version of the public extension to be used for CloudFormation operations in this account and region. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extention in this account and region when a new version is released. For more information, see Setting CloudFormation to automatically use new versions of extensions in the CloudFormation User Guide. + */ + PublicVersionNumber?: PublicVersionNumber; + /** + * For public extensions that have been activated for this account and region, the latest version of the public extension that is available. For any extensions other than activated third-arty extensions, CloudFormation returns null. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extention in this account and region when a new version is released. For more information, see Setting CloudFormation to automatically use new versions of extensions in the CloudFormation User Guide. + */ + LatestPublicVersion?: PublicVersionNumber; + /** + * The service used to verify the publisher identity. For more information, see Registering your account to publish CloudFormation extensions in the CFN-CLI User Guide for Extension Development. + */ + PublisherIdentity?: IdentityProvider; + /** + * The publisher name, as defined in the public profile for that publisher in the service used to verify the publisher identity. + */ + PublisherName?: PublisherName; + /** + * Whether or not the extension is activated for this account and region. This applies only to third-party public extensions. Extensions published by Amazon are activated by default. + */ + IsActivated?: IsActivated; + } + export type TypeTestsStatus = "PASSED"|"FAILED"|"IN_PROGRESS"|"NOT_TESTED"|string; + export type TypeTestsStatusDescription = string; + export type TypeVersionId = string; + export type TypeVersionSummaries = TypeVersionSummary[]; + export interface TypeVersionSummary { + /** + * The kind of extension. + */ + Type?: RegistryType; + /** + * The name of the extension. + */ + TypeName?: TypeName; + /** + * The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered. + */ + VersionId?: TypeVersionId; + /** + * Whether the specified extension version is set as the default version. This applies only to private extensions you have registered in your account, and extensions published by Amazon. For public third-party extensions, whether or not they are activated in your account, CloudFormation returns null. + */ + IsDefaultVersion?: IsDefaultVersion; + /** + * The Amazon Resource Name (ARN) of the extension version. + */ + Arn?: TypeArn; + /** + * When the version was registered. + */ + TimeCreated?: Timestamp; + /** + * The description of the extension version. + */ + Description?: Description; + /** + * For public extensions that have been activated for this account and region, the version of the public extension to be used for CloudFormation operations in this account and region. For any extensions other than activated third-arty extensions, CloudFormation returns null. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extention in this account and region when a new version is released. For more information, see Setting CloudFormation to automatically use new versions of extensions in the CloudFormation User Guide. + */ + PublicVersionNumber?: PublicVersionNumber; + } + export type UnprocessedTypeConfigurations = TypeConfigurationIdentifier[]; + export interface UpdateStackInput { + /** + * The name or unique stack ID of the stack to update. + */ + StackName: StackName; + /** + * Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.) Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. + */ + TemplateBody?: TemplateBody; + /** + * Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. + */ + TemplateURL?: TemplateURL; + /** + * Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. + */ + UsePreviousTemplate?: UsePreviousTemplate; + /** + * Structure containing the temporary overriding stack policy body. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. + */ + StackPolicyDuringUpdateBody?: StackPolicyDuringUpdateBody; + /** + * Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both. If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used. + */ + StackPolicyDuringUpdateURL?: StackPolicyDuringUpdateURL; + /** + * A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type. + */ + Parameters?: Parameters; + /** + * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to update the stack. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities error. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. AWS::IAM::AccessKey AWS::IAM::Group AWS::IAM::InstanceProfile AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::IAM::UserToGroupAddition For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually updating the stack. If your stack template contains one or more macros, and you choose to update a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation. If you want to update a stack from a stack template that contains macros and nested stacks, you must update the stack directly from the template using this capability. You should only update stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without AWS CloudFormation being notified. For more information, see Using AWS CloudFormation Macros to Perform Custom Processing on Templates. + */ + Capabilities?: Capabilities; + /** + * The template resource types that you have permissions to work with for this update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. If the list of resource types doesn't include a resource that you're updating, the stack update fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management. + */ + ResourceTypes?: ResourceTypes; + /** + * The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that AWS CloudFormation assumes to update the stack. AWS CloudFormation uses the role's credentials to make calls on your behalf. AWS CloudFormation always uses this role for all future operations on the stack. As long as users have permission to operate on the stack, AWS CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, AWS CloudFormation uses the role that was previously associated with the stack. If no role is available, AWS CloudFormation uses a temporary session that is generated from your user credentials. + */ + RoleARN?: RoleARN; + /** + * The rollback triggers for AWS CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. + */ + RollbackConfiguration?: RollbackConfiguration; + /** + * Structure containing a new stack policy body. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged. + */ + StackPolicyBody?: StackPolicyBody; + /** + * Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same Region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged. + */ + StackPolicyURL?: StackPolicyURL; + /** + * Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that AWS CloudFormation associates with the stack. Specify an empty list to remove all notification topics. + */ + NotificationARNs?: NotificationARNs; + /** + * Key-value pairs to associate with this stack. AWS CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 50 tags. If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify an empty value, AWS CloudFormation removes all associated tags. + */ + Tags?: Tags; + /** + * A unique identifier for this UpdateStack request. Specify this token if you plan to retry requests so that AWS CloudFormation knows that you're not attempting to update a stack with the same name. You might retry UpdateStack requests to ensure that AWS CloudFormation successfully received them. All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a CreateStack operation with the token token1, then all the StackEvents generated by that operation will have ClientRequestToken set as token1. In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface UpdateStackInstancesInput { + /** + * The name or unique ID of the stack set associated with the stack instances. + */ + StackSetName: StackSetNameOrId; + /** + * [Self-managed permissions] The names of one or more AWS accounts for which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and Regions. You can specify Accounts or DeploymentTargets, but not both. + */ + Accounts?: AccountList; + /** + * [Service-managed permissions] The AWS Organizations accounts for which you want to update parameter values for stack instances. If your update targets OUs, the overridden parameter values only apply to the accounts that are currently in the target OUs and their child OUs. Accounts added to the target OUs and their child OUs in the future won't use the overridden values. You can specify Accounts or DeploymentTargets, but not both. + */ + DeploymentTargets?: DeploymentTargets; + /** + * The names of one or more Regions in which you want to update parameter values for stack instances. The overridden parameter values will be applied to all stack instances in the specified accounts and Regions. + */ + Regions: RegionList; + /** + * A list of input parameters whose values you want to update for the specified stack instances. Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during stack instance update operations: To override the current value for a parameter, include the parameter and specify its value. To leave a parameter set to its present value, you can do one of the following: Do not include the parameter in the list. Include the parameter and specify UsePreviousValue as true. (You cannot specify both a value and set UsePreviousValue to true.) To set all overridden parameter back to the values specified in the stack set, specify a parameter list but do not include any parameters. To leave all parameters set to their present values, do not specify this property at all. During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their overridden value. You can only override the parameter values that are specified in the stack set; to add or delete a parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter value using UpdateStackInstances. + */ + ParameterOverrides?: Parameters; + /** + * Preferences for how AWS CloudFormation performs this stack set operation. + */ + OperationPreferences?: StackSetOperationPreferences; + /** + * The unique identifier for this stack set operation. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, the SDK generates one automatically. + */ + OperationId?: ClientRequestToken; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface UpdateStackInstancesOutput { + /** + * The unique identifier for this stack set operation. + */ + OperationId?: ClientRequestToken; + } + export interface UpdateStackOutput { + /** + * Unique identifier of the stack. + */ + StackId?: StackId; + } + export interface UpdateStackSetInput { + /** + * The name or unique ID of the stack set that you want to update. + */ + StackSetName: StackSetName; + /** + * A brief description of updates that you are making. + */ + Description?: Description; + /** + * The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + */ + TemplateBody?: TemplateBody; + /** + * The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, see Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + */ + TemplateURL?: TemplateURL; + /** + * Use the existing template that's associated with the stack set that you're updating. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + */ + UsePreviousTemplate?: UsePreviousTemplate; + /** + * A list of input parameters for the stack set template. + */ + Parameters?: Parameters; + /** + * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for AWS CloudFormation to update the stack set and its associated stack instances. CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your AWS account; for example, by creating new AWS Identity and Access Management (IAM) users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can specify either capability. If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities error. If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. AWS::IAM::AccessKey AWS::IAM::Group AWS::IAM::InstanceProfile AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::IAM::UserToGroupAddition For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack set template references one or more macros, you must update the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To update the stack set directly, you must acknowledge this capability. For more information, see Using AWS CloudFormation Macros to Perform Custom Processing on Templates. Stack sets with service-managed permissions do not currently support the use of macros in templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail. + */ + Capabilities?: Capabilities; + /** + * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags. If you specify tags for this parameter, those tags replace any list of tags that are currently associated with this stack set. This means: If you don't specify this parameter, AWS CloudFormation doesn't modify the stack's tags. If you specify any tags using this parameter, you must specify all the tags that you want associated with this stack set, even tags you've specifed before (for example, when creating the stack set or during a previous update of the stack set.). Any tags that you don't include in the updated list of tags are removed from the stack set, and therefore from the stacks and resources as well. If you specify an empty value, AWS CloudFormation removes all currently associated tags. If you specify new tags as part of an UpdateStackSet action, AWS CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the stack set from the list of tags you specify, AWS CloudFormation assumes that you want to remove those tags from the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire UpdateStackSet action fails with an access denied error, and the stack set is not updated. + */ + Tags?: Tags; + /** + * Preferences for how AWS CloudFormation performs this stack set operation. + */ + OperationPreferences?: StackSetOperationPreferences; + /** + * The Amazon Resource Number (ARN) of the IAM role to use to update this stack set. Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see Granting Permissions for Stack Set Operations in the AWS CloudFormation User Guide. If you specified a customized administrator role when you created the stack set, you must specify a customized administrator role, even if it is the same customized administrator role used with this stack set previously. + */ + AdministrationRoleARN?: RoleARN; + /** + * The name of the IAM execution role to use to update the stack set. If you do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation. Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their stack sets. If you specify a customized execution role, AWS CloudFormation uses that role to update the stack. If you do not specify a customized execution role, AWS CloudFormation performs the update using the role previously associated with the stack set, so long as you have permissions to perform operations on the stack set. + */ + ExecutionRoleName?: ExecutionRoleName; + /** + * [Service-managed permissions] The AWS Organizations accounts in which to update associated stack instances. To update all the stack instances associated with this stack set, do not specify DeploymentTargets or Regions. If the stack set update includes changes to the template (that is, if TemplateBody or TemplateURL is specified), or the Parameters, AWS CloudFormation marks all stack instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status. + */ + DeploymentTargets?: DeploymentTargets; + /** + * Describes how the IAM roles required for stack set operations are created. You cannot modify PermissionModel if there are stack instances associated with your stack set. With self-managed permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. With service-managed permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by AWS Organizations. For more information, see Grant Service-Managed Stack Set Permissions. + */ + PermissionModel?: PermissionModels; + /** + * [Service-managed permissions] Describes whether StackSets automatically deploys to AWS Organizations accounts that are added to a target organization or organizational unit (OU). If you specify AutoDeployment, do not specify DeploymentTargets or Regions. + */ + AutoDeployment?: AutoDeployment; + /** + * The unique ID for this stack set operation. The operation ID also functions as an idempotency token, to ensure that AWS CloudFormation performs the stack set operation only once, even if you retry the request multiple times. You might retry stack set operation requests to ensure that AWS CloudFormation successfully received them. If you don't specify an operation ID, AWS CloudFormation generates one automatically. Repeating this stack set operation with a new operation ID retries all stack instances whose status is OUTDATED. + */ + OperationId?: ClientRequestToken; + /** + * [Self-managed permissions] The accounts in which to update associated stack instances. If you specify accounts, you must also specify the Regions in which to update stack set instances. To update all the stack instances associated with this stack set, do not specify the Accounts or Regions properties. If the stack set update includes changes to the template (that is, if the TemplateBody or TemplateURL properties are specified), or the Parameters property, AWS CloudFormation marks all stack instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status. + */ + Accounts?: AccountList; + /** + * The Regions in which to update associated stack instances. If you specify Regions, you must also specify accounts in which to update stack set instances. To update all the stack instances associated with this stack set, do not specify the Accounts or Regions properties. If the stack set update includes changes to the template (that is, if the TemplateBody or TemplateURL properties are specified), or the Parameters property, AWS CloudFormation marks all stack instances with a status of OUTDATED prior to updating the stack instances in the specified accounts and Regions. If the stack set update does not include changes to the template or parameters, AWS CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status. + */ + Regions?: RegionList; + /** + * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. If you are signed in to the management account, specify SELF. If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. Your AWS account must be registered as a delegated administrator in the management account. For more information, see Register a delegated administrator in the AWS CloudFormation User Guide. + */ + CallAs?: CallAs; + } + export interface UpdateStackSetOutput { + /** + * The unique ID for this stack set operation. + */ + OperationId?: ClientRequestToken; + } + export interface UpdateTerminationProtectionInput { + /** + * Whether to enable termination protection on the specified stack. + */ + EnableTerminationProtection: EnableTerminationProtection; + /** + * The name or unique ID of the stack for which you want to set termination protection. + */ + StackName: StackNameOrId; + } + export interface UpdateTerminationProtectionOutput { + /** + * The unique ID of the stack. + */ + StackId?: StackId; + } + export type Url = string; + export type UsePreviousTemplate = boolean; + export type UsePreviousValue = boolean; + export interface ValidateTemplateInput { + /** + * Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + */ + TemplateBody?: TemplateBody; + /** + * Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to Template Anatomy in the AWS CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + */ + TemplateURL?: TemplateURL; + } + export interface ValidateTemplateOutput { + /** + * A list of TemplateParameter structures. + */ + Parameters?: TemplateParameters; + /** + * The description found within the template. + */ + Description?: Description; + /** + * The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. + */ + Capabilities?: Capabilities; + /** + * The list of resources that generated the values in the Capabilities response element. + */ + CapabilitiesReason?: CapabilitiesReason; + /** + * A list of the transforms that are declared in the template. + */ + DeclaredTransforms?: TransformsList; + } + export type Value = string; + export type Version = string; + export type VersionBump = "MAJOR"|"MINOR"|string; + export type Visibility = "PUBLIC"|"PRIVATE"|string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2010-05-15"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudFormation client. + */ + export import Types = CloudFormation; +} +export = CloudFormation; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudformation.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudformation.js new file mode 100644 index 0000000000000000000000000000000000000000..2ab79f284a5b946fa7e4ccd6bfb225a5087b5036 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudformation.js @@ -0,0 +1,19 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudformation'] = {}; +AWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']); +Object.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', { + get: function get() { + var model = require('../apis/cloudformation-2010-05-15.min.json'); + model.paginators = require('../apis/cloudformation-2010-05-15.paginators.json').pagination; + model.waiters = require('../apis/cloudformation-2010-05-15.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudFormation; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudfront.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudfront.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c272df58c5dd2299114608c1c942f5953be4e37a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudfront.d.ts @@ -0,0 +1,4238 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {CloudFrontCustomizations} from '../lib/services/cloudfront'; +import {WaiterConfiguration} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +import {Signer as signer} from '../lib/cloudfront/signer'; +interface Blob {} +declare class CloudFront extends CloudFrontCustomizations { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudFront.Types.ClientConfiguration) + config: Config & CloudFront.Types.ClientConfiguration; + /** + * Creates a cache policy. After you create a cache policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the cache policy determines the following: The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer. The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache. The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can’t find an object in its cache that matches the request’s cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy. For more information about cache policies, see Controlling the cache key in the Amazon CloudFront Developer Guide. + */ + createCachePolicy(params: CloudFront.Types.CreateCachePolicyRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateCachePolicyResult) => void): Request; + /** + * Creates a cache policy. After you create a cache policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the cache policy determines the following: The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer. The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache. The headers, cookies, and query strings that are included in the cache key are automatically included in requests that CloudFront sends to the origin. CloudFront sends a request when it can’t find an object in its cache that matches the request’s cache key. If you want to send values to the origin but not include them in the cache key, use OriginRequestPolicy. For more information about cache policies, see Controlling the cache key in the Amazon CloudFront Developer Guide. + */ + createCachePolicy(callback?: (err: AWSError, data: CloudFront.Types.CreateCachePolicyResult) => void): Request; + /** + * Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. + */ + createCloudFrontOriginAccessIdentity(params: CloudFront.Types.CreateCloudFrontOriginAccessIdentityRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateCloudFrontOriginAccessIdentityResult) => void): Request; + /** + * Creates a new origin access identity. If you're using Amazon S3 for your origin, you can use an origin access identity to require users to access your content using a CloudFront URL instead of the Amazon S3 URL. For more information about how to use origin access identities, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. + */ + createCloudFrontOriginAccessIdentity(callback?: (err: AWSError, data: CloudFront.Types.CreateCloudFrontOriginAccessIdentityResult) => void): Request; + /** + * Creates a new web distribution. You create a CloudFront distribution to tell CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. Send a POST request to the /CloudFront API version/distribution/distribution ID resource. When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using UpdateDistribution, follow the steps included in the documentation to get the current configuration and then make your updates. This helps to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer Guide. + */ + createDistribution(params: CloudFront.Types.CreateDistributionRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateDistributionResult) => void): Request; + /** + * Creates a new web distribution. You create a CloudFront distribution to tell CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. Send a POST request to the /CloudFront API version/distribution/distribution ID resource. When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using UpdateDistribution, follow the steps included in the documentation to get the current configuration and then make your updates. This helps to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer Guide. + */ + createDistribution(callback?: (err: AWSError, data: CloudFront.Types.CreateDistributionResult) => void): Request; + /** + * Create a new distribution with tags. + */ + createDistributionWithTags(params: CloudFront.Types.CreateDistributionWithTagsRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateDistributionWithTagsResult) => void): Request; + /** + * Create a new distribution with tags. + */ + createDistributionWithTags(callback?: (err: AWSError, data: CloudFront.Types.CreateDistributionWithTagsResult) => void): Request; + /** + * Create a new field-level encryption configuration. + */ + createFieldLevelEncryptionConfig(params: CloudFront.Types.CreateFieldLevelEncryptionConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateFieldLevelEncryptionConfigResult) => void): Request; + /** + * Create a new field-level encryption configuration. + */ + createFieldLevelEncryptionConfig(callback?: (err: AWSError, data: CloudFront.Types.CreateFieldLevelEncryptionConfigResult) => void): Request; + /** + * Create a field-level encryption profile. + */ + createFieldLevelEncryptionProfile(params: CloudFront.Types.CreateFieldLevelEncryptionProfileRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateFieldLevelEncryptionProfileResult) => void): Request; + /** + * Create a field-level encryption profile. + */ + createFieldLevelEncryptionProfile(callback?: (err: AWSError, data: CloudFront.Types.CreateFieldLevelEncryptionProfileResult) => void): Request; + /** + * Creates a CloudFront function. To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function. When you create a function, it’s in the DEVELOPMENT stage. In this stage, you can test the function with TestFunction, and update it with UpdateFunction. When you’re ready to use your function with a CloudFront distribution, use PublishFunction to copy the function from the DEVELOPMENT stage to LIVE. When it’s live, you can attach the function to a distribution’s cache behavior, using the function’s ARN. + */ + createFunction(params: CloudFront.Types.CreateFunctionRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateFunctionResult) => void): Request; + /** + * Creates a CloudFront function. To create a function, you provide the function code and some configuration information about the function. The response contains an Amazon Resource Name (ARN) that uniquely identifies the function. When you create a function, it’s in the DEVELOPMENT stage. In this stage, you can test the function with TestFunction, and update it with UpdateFunction. When you’re ready to use your function with a CloudFront distribution, use PublishFunction to copy the function from the DEVELOPMENT stage to LIVE. When it’s live, you can attach the function to a distribution’s cache behavior, using the function’s ARN. + */ + createFunction(callback?: (err: AWSError, data: CloudFront.Types.CreateFunctionResult) => void): Request; + /** + * Create a new invalidation. + */ + createInvalidation(params: CloudFront.Types.CreateInvalidationRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateInvalidationResult) => void): Request; + /** + * Create a new invalidation. + */ + createInvalidation(callback?: (err: AWSError, data: CloudFront.Types.CreateInvalidationResult) => void): Request; + /** + * Creates a key group that you can use with CloudFront signed URLs and signed cookies. To create a key group, you must specify at least one public key for the key group. After you create a key group, you can reference it from one or more cache behaviors. When you reference a key group in a cache behavior, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide. + */ + createKeyGroup(params: CloudFront.Types.CreateKeyGroupRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateKeyGroupResult) => void): Request; + /** + * Creates a key group that you can use with CloudFront signed URLs and signed cookies. To create a key group, you must specify at least one public key for the key group. After you create a key group, you can reference it from one or more cache behaviors. When you reference a key group in a cache behavior, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide. + */ + createKeyGroup(callback?: (err: AWSError, data: CloudFront.Types.CreateKeyGroupResult) => void): Request; + /** + * Enables additional CloudWatch metrics for the specified CloudFront distribution. The additional metrics incur an additional cost. For more information, see Viewing additional CloudFront distribution metrics in the Amazon CloudFront Developer Guide. + */ + createMonitoringSubscription(params: CloudFront.Types.CreateMonitoringSubscriptionRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateMonitoringSubscriptionResult) => void): Request; + /** + * Enables additional CloudWatch metrics for the specified CloudFront distribution. The additional metrics incur an additional cost. For more information, see Viewing additional CloudFront distribution metrics in the Amazon CloudFront Developer Guide. + */ + createMonitoringSubscription(callback?: (err: AWSError, data: CloudFront.Types.CreateMonitoringSubscriptionResult) => void): Request; + /** + * Creates an origin request policy. After you create an origin request policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following: The request body and the URL path (without the domain name) from the viewer request. The headers that CloudFront automatically includes in every origin request, including Host, User-Agent, and X-Amz-Cf-Id. All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront. CloudFront sends a request when it can’t find a valid object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use CachePolicy. For more information about origin request policies, see Controlling origin requests in the Amazon CloudFront Developer Guide. + */ + createOriginRequestPolicy(params: CloudFront.Types.CreateOriginRequestPolicyRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateOriginRequestPolicyResult) => void): Request; + /** + * Creates an origin request policy. After you create an origin request policy, you can attach it to one or more cache behaviors. When it’s attached to a cache behavior, the origin request policy determines the values that CloudFront includes in requests that it sends to the origin. Each request that CloudFront sends to the origin includes the following: The request body and the URL path (without the domain name) from the viewer request. The headers that CloudFront automatically includes in every origin request, including Host, User-Agent, and X-Amz-Cf-Id. All HTTP headers, cookies, and URL query strings that are specified in the cache policy or the origin request policy. These can include items from the viewer request and, in the case of headers, additional ones that are added by CloudFront. CloudFront sends a request when it can’t find a valid object in its cache that matches the request. If you want to send values to the origin and also include them in the cache key, use CachePolicy. For more information about origin request policies, see Controlling origin requests in the Amazon CloudFront Developer Guide. + */ + createOriginRequestPolicy(callback?: (err: AWSError, data: CloudFront.Types.CreateOriginRequestPolicyResult) => void): Request; + /** + * Uploads a public key to CloudFront that you can use with signed URLs and signed cookies, or with field-level encryption. + */ + createPublicKey(params: CloudFront.Types.CreatePublicKeyRequest, callback?: (err: AWSError, data: CloudFront.Types.CreatePublicKeyResult) => void): Request; + /** + * Uploads a public key to CloudFront that you can use with signed URLs and signed cookies, or with field-level encryption. + */ + createPublicKey(callback?: (err: AWSError, data: CloudFront.Types.CreatePublicKeyResult) => void): Request; + /** + * Creates a real-time log configuration. After you create a real-time log configuration, you can attach it to one or more cache behaviors to send real-time log data to the specified Amazon Kinesis data stream. For more information about real-time log configurations, see Real-time logs in the Amazon CloudFront Developer Guide. + */ + createRealtimeLogConfig(params: CloudFront.Types.CreateRealtimeLogConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateRealtimeLogConfigResult) => void): Request; + /** + * Creates a real-time log configuration. After you create a real-time log configuration, you can attach it to one or more cache behaviors to send real-time log data to the specified Amazon Kinesis data stream. For more information about real-time log configurations, see Real-time logs in the Amazon CloudFront Developer Guide. + */ + createRealtimeLogConfig(callback?: (err: AWSError, data: CloudFront.Types.CreateRealtimeLogConfigResult) => void): Request; + /** + * This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, read the announcement on the Amazon CloudFront discussion forum. + */ + createStreamingDistribution(params: CloudFront.Types.CreateStreamingDistributionRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateStreamingDistributionResult) => void): Request; + /** + * This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, read the announcement on the Amazon CloudFront discussion forum. + */ + createStreamingDistribution(callback?: (err: AWSError, data: CloudFront.Types.CreateStreamingDistributionResult) => void): Request; + /** + * This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, read the announcement on the Amazon CloudFront discussion forum. + */ + createStreamingDistributionWithTags(params: CloudFront.Types.CreateStreamingDistributionWithTagsRequest, callback?: (err: AWSError, data: CloudFront.Types.CreateStreamingDistributionWithTagsResult) => void): Request; + /** + * This API is deprecated. Amazon CloudFront is deprecating real-time messaging protocol (RTMP) distributions on December 31, 2020. For more information, read the announcement on the Amazon CloudFront discussion forum. + */ + createStreamingDistributionWithTags(callback?: (err: AWSError, data: CloudFront.Types.CreateStreamingDistributionWithTagsResult) => void): Request; + /** + * Deletes a cache policy. You cannot delete a cache policy if it’s attached to a cache behavior. First update your distributions to remove the cache policy from all cache behaviors, then delete the cache policy. To delete a cache policy, you must provide the policy’s identifier and version. To get these values, you can use ListCachePolicies or GetCachePolicy. + */ + deleteCachePolicy(params: CloudFront.Types.DeleteCachePolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a cache policy. You cannot delete a cache policy if it’s attached to a cache behavior. First update your distributions to remove the cache policy from all cache behaviors, then delete the cache policy. To delete a cache policy, you must provide the policy’s identifier and version. To get these values, you can use ListCachePolicies or GetCachePolicy. + */ + deleteCachePolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete an origin access identity. + */ + deleteCloudFrontOriginAccessIdentity(params: CloudFront.Types.DeleteCloudFrontOriginAccessIdentityRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete an origin access identity. + */ + deleteCloudFrontOriginAccessIdentity(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a distribution. + */ + deleteDistribution(params: CloudFront.Types.DeleteDistributionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a distribution. + */ + deleteDistribution(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove a field-level encryption configuration. + */ + deleteFieldLevelEncryptionConfig(params: CloudFront.Types.DeleteFieldLevelEncryptionConfigRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove a field-level encryption configuration. + */ + deleteFieldLevelEncryptionConfig(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove a field-level encryption profile. + */ + deleteFieldLevelEncryptionProfile(params: CloudFront.Types.DeleteFieldLevelEncryptionProfileRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove a field-level encryption profile. + */ + deleteFieldLevelEncryptionProfile(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a CloudFront function. You cannot delete a function if it’s associated with a cache behavior. First, update your distributions to remove the function association from all cache behaviors, then delete the function. To delete a function, you must provide the function’s name and version (ETag value). To get these values, you can use ListFunctions and DescribeFunction. + */ + deleteFunction(params: CloudFront.Types.DeleteFunctionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a CloudFront function. You cannot delete a function if it’s associated with a cache behavior. First, update your distributions to remove the function association from all cache behaviors, then delete the function. To delete a function, you must provide the function’s name and version (ETag value). To get these values, you can use ListFunctions and DescribeFunction. + */ + deleteFunction(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a key group. You cannot delete a key group that is referenced in a cache behavior. First update your distributions to remove the key group from all cache behaviors, then delete the key group. To delete a key group, you must provide the key group’s identifier and version. To get these values, use ListKeyGroups followed by GetKeyGroup or GetKeyGroupConfig. + */ + deleteKeyGroup(params: CloudFront.Types.DeleteKeyGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a key group. You cannot delete a key group that is referenced in a cache behavior. First update your distributions to remove the key group from all cache behaviors, then delete the key group. To delete a key group, you must provide the key group’s identifier and version. To get these values, use ListKeyGroups followed by GetKeyGroup or GetKeyGroupConfig. + */ + deleteKeyGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Disables additional CloudWatch metrics for the specified CloudFront distribution. + */ + deleteMonitoringSubscription(params: CloudFront.Types.DeleteMonitoringSubscriptionRequest, callback?: (err: AWSError, data: CloudFront.Types.DeleteMonitoringSubscriptionResult) => void): Request; + /** + * Disables additional CloudWatch metrics for the specified CloudFront distribution. + */ + deleteMonitoringSubscription(callback?: (err: AWSError, data: CloudFront.Types.DeleteMonitoringSubscriptionResult) => void): Request; + /** + * Deletes an origin request policy. You cannot delete an origin request policy if it’s attached to any cache behaviors. First update your distributions to remove the origin request policy from all cache behaviors, then delete the origin request policy. To delete an origin request policy, you must provide the policy’s identifier and version. To get the identifier, you can use ListOriginRequestPolicies or GetOriginRequestPolicy. + */ + deleteOriginRequestPolicy(params: CloudFront.Types.DeleteOriginRequestPolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an origin request policy. You cannot delete an origin request policy if it’s attached to any cache behaviors. First update your distributions to remove the origin request policy from all cache behaviors, then delete the origin request policy. To delete an origin request policy, you must provide the policy’s identifier and version. To get the identifier, you can use ListOriginRequestPolicies or GetOriginRequestPolicy. + */ + deleteOriginRequestPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove a public key you previously added to CloudFront. + */ + deletePublicKey(params: CloudFront.Types.DeletePublicKeyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove a public key you previously added to CloudFront. + */ + deletePublicKey(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a real-time log configuration. You cannot delete a real-time log configuration if it’s attached to a cache behavior. First update your distributions to remove the real-time log configuration from all cache behaviors, then delete the real-time log configuration. To delete a real-time log configuration, you can provide the configuration’s name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to delete. + */ + deleteRealtimeLogConfig(params: CloudFront.Types.DeleteRealtimeLogConfigRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a real-time log configuration. You cannot delete a real-time log configuration if it’s attached to a cache behavior. First update your distributions to remove the real-time log configuration from all cache behaviors, then delete the real-time log configuration. To delete a real-time log configuration, you can provide the configuration’s name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to delete. + */ + deleteRealtimeLogConfig(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a streaming distribution. To delete an RTMP distribution using the CloudFront API, perform the following steps. To delete an RTMP distribution using the CloudFront API: Disable the RTMP distribution. Submit a GET Streaming Distribution Config request to get the current configuration and the Etag header for the distribution. Update the XML document that was returned in the response to your GET Streaming Distribution Config request to change the value of Enabled to false. Submit a PUT Streaming Distribution Config request to update the configuration for your distribution. In the request body, include the XML document that you updated in Step 3. Then set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2. Review the response to the PUT Streaming Distribution Config request to confirm that the distribution was successfully disabled. Submit a GET Streaming Distribution Config request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed. Submit a DELETE Streaming Distribution request. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2. Review the response to your DELETE Streaming Distribution request to confirm that the distribution was successfully deleted. For information about deleting a distribution using the CloudFront console, see Deleting a Distribution in the Amazon CloudFront Developer Guide. + */ + deleteStreamingDistribution(params: CloudFront.Types.DeleteStreamingDistributionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Delete a streaming distribution. To delete an RTMP distribution using the CloudFront API, perform the following steps. To delete an RTMP distribution using the CloudFront API: Disable the RTMP distribution. Submit a GET Streaming Distribution Config request to get the current configuration and the Etag header for the distribution. Update the XML document that was returned in the response to your GET Streaming Distribution Config request to change the value of Enabled to false. Submit a PUT Streaming Distribution Config request to update the configuration for your distribution. In the request body, include the XML document that you updated in Step 3. Then set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2. Review the response to the PUT Streaming Distribution Config request to confirm that the distribution was successfully disabled. Submit a GET Streaming Distribution Config request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed. Submit a DELETE Streaming Distribution request. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GET Streaming Distribution Config request in Step 2. Review the response to your DELETE Streaming Distribution request to confirm that the distribution was successfully deleted. For information about deleting a distribution using the CloudFront console, see Deleting a Distribution in the Amazon CloudFront Developer Guide. + */ + deleteStreamingDistribution(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Gets configuration information and metadata about a CloudFront function, but not the function’s code. To get a function’s code, use GetFunction. To get configuration information and metadata about a function, you must provide the function’s name and stage. To get these values, you can use ListFunctions. + */ + describeFunction(params: CloudFront.Types.DescribeFunctionRequest, callback?: (err: AWSError, data: CloudFront.Types.DescribeFunctionResult) => void): Request; + /** + * Gets configuration information and metadata about a CloudFront function, but not the function’s code. To get a function’s code, use GetFunction. To get configuration information and metadata about a function, you must provide the function’s name and stage. To get these values, you can use ListFunctions. + */ + describeFunction(callback?: (err: AWSError, data: CloudFront.Types.DescribeFunctionResult) => void): Request; + /** + * Gets a cache policy, including the following metadata: The policy’s identifier. The date and time when the policy was last modified. To get a cache policy, you must provide the policy’s identifier. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies. + */ + getCachePolicy(params: CloudFront.Types.GetCachePolicyRequest, callback?: (err: AWSError, data: CloudFront.Types.GetCachePolicyResult) => void): Request; + /** + * Gets a cache policy, including the following metadata: The policy’s identifier. The date and time when the policy was last modified. To get a cache policy, you must provide the policy’s identifier. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies. + */ + getCachePolicy(callback?: (err: AWSError, data: CloudFront.Types.GetCachePolicyResult) => void): Request; + /** + * Gets a cache policy configuration. To get a cache policy configuration, you must provide the policy’s identifier. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies. + */ + getCachePolicyConfig(params: CloudFront.Types.GetCachePolicyConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetCachePolicyConfigResult) => void): Request; + /** + * Gets a cache policy configuration. To get a cache policy configuration, you must provide the policy’s identifier. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies. + */ + getCachePolicyConfig(callback?: (err: AWSError, data: CloudFront.Types.GetCachePolicyConfigResult) => void): Request; + /** + * Get the information about an origin access identity. + */ + getCloudFrontOriginAccessIdentity(params: CloudFront.Types.GetCloudFrontOriginAccessIdentityRequest, callback?: (err: AWSError, data: CloudFront.Types.GetCloudFrontOriginAccessIdentityResult) => void): Request; + /** + * Get the information about an origin access identity. + */ + getCloudFrontOriginAccessIdentity(callback?: (err: AWSError, data: CloudFront.Types.GetCloudFrontOriginAccessIdentityResult) => void): Request; + /** + * Get the configuration information about an origin access identity. + */ + getCloudFrontOriginAccessIdentityConfig(params: CloudFront.Types.GetCloudFrontOriginAccessIdentityConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetCloudFrontOriginAccessIdentityConfigResult) => void): Request; + /** + * Get the configuration information about an origin access identity. + */ + getCloudFrontOriginAccessIdentityConfig(callback?: (err: AWSError, data: CloudFront.Types.GetCloudFrontOriginAccessIdentityConfigResult) => void): Request; + /** + * Get the information about a distribution. + */ + getDistribution(params: CloudFront.Types.GetDistributionRequest, callback?: (err: AWSError, data: CloudFront.Types.GetDistributionResult) => void): Request; + /** + * Get the information about a distribution. + */ + getDistribution(callback?: (err: AWSError, data: CloudFront.Types.GetDistributionResult) => void): Request; + /** + * Get the configuration information about a distribution. + */ + getDistributionConfig(params: CloudFront.Types.GetDistributionConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetDistributionConfigResult) => void): Request; + /** + * Get the configuration information about a distribution. + */ + getDistributionConfig(callback?: (err: AWSError, data: CloudFront.Types.GetDistributionConfigResult) => void): Request; + /** + * Get the field-level encryption configuration information. + */ + getFieldLevelEncryption(params: CloudFront.Types.GetFieldLevelEncryptionRequest, callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionResult) => void): Request; + /** + * Get the field-level encryption configuration information. + */ + getFieldLevelEncryption(callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionResult) => void): Request; + /** + * Get the field-level encryption configuration information. + */ + getFieldLevelEncryptionConfig(params: CloudFront.Types.GetFieldLevelEncryptionConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionConfigResult) => void): Request; + /** + * Get the field-level encryption configuration information. + */ + getFieldLevelEncryptionConfig(callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionConfigResult) => void): Request; + /** + * Get the field-level encryption profile information. + */ + getFieldLevelEncryptionProfile(params: CloudFront.Types.GetFieldLevelEncryptionProfileRequest, callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionProfileResult) => void): Request; + /** + * Get the field-level encryption profile information. + */ + getFieldLevelEncryptionProfile(callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionProfileResult) => void): Request; + /** + * Get the field-level encryption profile configuration information. + */ + getFieldLevelEncryptionProfileConfig(params: CloudFront.Types.GetFieldLevelEncryptionProfileConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionProfileConfigResult) => void): Request; + /** + * Get the field-level encryption profile configuration information. + */ + getFieldLevelEncryptionProfileConfig(callback?: (err: AWSError, data: CloudFront.Types.GetFieldLevelEncryptionProfileConfigResult) => void): Request; + /** + * Gets the code of a CloudFront function. To get configuration information and metadata about a function, use DescribeFunction. To get a function’s code, you must provide the function’s name and stage. To get these values, you can use ListFunctions. + */ + getFunction(params: CloudFront.Types.GetFunctionRequest, callback?: (err: AWSError, data: CloudFront.Types.GetFunctionResult) => void): Request; + /** + * Gets the code of a CloudFront function. To get configuration information and metadata about a function, use DescribeFunction. To get a function’s code, you must provide the function’s name and stage. To get these values, you can use ListFunctions. + */ + getFunction(callback?: (err: AWSError, data: CloudFront.Types.GetFunctionResult) => void): Request; + /** + * Get the information about an invalidation. + */ + getInvalidation(params: CloudFront.Types.GetInvalidationRequest, callback?: (err: AWSError, data: CloudFront.Types.GetInvalidationResult) => void): Request; + /** + * Get the information about an invalidation. + */ + getInvalidation(callback?: (err: AWSError, data: CloudFront.Types.GetInvalidationResult) => void): Request; + /** + * Gets a key group, including the date and time when the key group was last modified. To get a key group, you must provide the key group’s identifier. If the key group is referenced in a distribution’s cache behavior, you can get the key group’s identifier using ListDistributions or GetDistribution. If the key group is not referenced in a cache behavior, you can get the identifier using ListKeyGroups. + */ + getKeyGroup(params: CloudFront.Types.GetKeyGroupRequest, callback?: (err: AWSError, data: CloudFront.Types.GetKeyGroupResult) => void): Request; + /** + * Gets a key group, including the date and time when the key group was last modified. To get a key group, you must provide the key group’s identifier. If the key group is referenced in a distribution’s cache behavior, you can get the key group’s identifier using ListDistributions or GetDistribution. If the key group is not referenced in a cache behavior, you can get the identifier using ListKeyGroups. + */ + getKeyGroup(callback?: (err: AWSError, data: CloudFront.Types.GetKeyGroupResult) => void): Request; + /** + * Gets a key group configuration. To get a key group configuration, you must provide the key group’s identifier. If the key group is referenced in a distribution’s cache behavior, you can get the key group’s identifier using ListDistributions or GetDistribution. If the key group is not referenced in a cache behavior, you can get the identifier using ListKeyGroups. + */ + getKeyGroupConfig(params: CloudFront.Types.GetKeyGroupConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetKeyGroupConfigResult) => void): Request; + /** + * Gets a key group configuration. To get a key group configuration, you must provide the key group’s identifier. If the key group is referenced in a distribution’s cache behavior, you can get the key group’s identifier using ListDistributions or GetDistribution. If the key group is not referenced in a cache behavior, you can get the identifier using ListKeyGroups. + */ + getKeyGroupConfig(callback?: (err: AWSError, data: CloudFront.Types.GetKeyGroupConfigResult) => void): Request; + /** + * Gets information about whether additional CloudWatch metrics are enabled for the specified CloudFront distribution. + */ + getMonitoringSubscription(params: CloudFront.Types.GetMonitoringSubscriptionRequest, callback?: (err: AWSError, data: CloudFront.Types.GetMonitoringSubscriptionResult) => void): Request; + /** + * Gets information about whether additional CloudWatch metrics are enabled for the specified CloudFront distribution. + */ + getMonitoringSubscription(callback?: (err: AWSError, data: CloudFront.Types.GetMonitoringSubscriptionResult) => void): Request; + /** + * Gets an origin request policy, including the following metadata: The policy’s identifier. The date and time when the policy was last modified. To get an origin request policy, you must provide the policy’s identifier. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies. + */ + getOriginRequestPolicy(params: CloudFront.Types.GetOriginRequestPolicyRequest, callback?: (err: AWSError, data: CloudFront.Types.GetOriginRequestPolicyResult) => void): Request; + /** + * Gets an origin request policy, including the following metadata: The policy’s identifier. The date and time when the policy was last modified. To get an origin request policy, you must provide the policy’s identifier. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies. + */ + getOriginRequestPolicy(callback?: (err: AWSError, data: CloudFront.Types.GetOriginRequestPolicyResult) => void): Request; + /** + * Gets an origin request policy configuration. To get an origin request policy configuration, you must provide the policy’s identifier. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies. + */ + getOriginRequestPolicyConfig(params: CloudFront.Types.GetOriginRequestPolicyConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetOriginRequestPolicyConfigResult) => void): Request; + /** + * Gets an origin request policy configuration. To get an origin request policy configuration, you must provide the policy’s identifier. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies. + */ + getOriginRequestPolicyConfig(callback?: (err: AWSError, data: CloudFront.Types.GetOriginRequestPolicyConfigResult) => void): Request; + /** + * Gets a public key. + */ + getPublicKey(params: CloudFront.Types.GetPublicKeyRequest, callback?: (err: AWSError, data: CloudFront.Types.GetPublicKeyResult) => void): Request; + /** + * Gets a public key. + */ + getPublicKey(callback?: (err: AWSError, data: CloudFront.Types.GetPublicKeyResult) => void): Request; + /** + * Gets a public key configuration. + */ + getPublicKeyConfig(params: CloudFront.Types.GetPublicKeyConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetPublicKeyConfigResult) => void): Request; + /** + * Gets a public key configuration. + */ + getPublicKeyConfig(callback?: (err: AWSError, data: CloudFront.Types.GetPublicKeyConfigResult) => void): Request; + /** + * Gets a real-time log configuration. To get a real-time log configuration, you can provide the configuration’s name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to get. + */ + getRealtimeLogConfig(params: CloudFront.Types.GetRealtimeLogConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetRealtimeLogConfigResult) => void): Request; + /** + * Gets a real-time log configuration. To get a real-time log configuration, you can provide the configuration’s name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to get. + */ + getRealtimeLogConfig(callback?: (err: AWSError, data: CloudFront.Types.GetRealtimeLogConfigResult) => void): Request; + /** + * Gets information about a specified RTMP distribution, including the distribution configuration. + */ + getStreamingDistribution(params: CloudFront.Types.GetStreamingDistributionRequest, callback?: (err: AWSError, data: CloudFront.Types.GetStreamingDistributionResult) => void): Request; + /** + * Gets information about a specified RTMP distribution, including the distribution configuration. + */ + getStreamingDistribution(callback?: (err: AWSError, data: CloudFront.Types.GetStreamingDistributionResult) => void): Request; + /** + * Get the configuration information about a streaming distribution. + */ + getStreamingDistributionConfig(params: CloudFront.Types.GetStreamingDistributionConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.GetStreamingDistributionConfigResult) => void): Request; + /** + * Get the configuration information about a streaming distribution. + */ + getStreamingDistributionConfig(callback?: (err: AWSError, data: CloudFront.Types.GetStreamingDistributionConfigResult) => void): Request; + /** + * Gets a list of cache policies. You can optionally apply a filter to return only the managed policies created by AWS, or only the custom policies created in your AWS account. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listCachePolicies(params: CloudFront.Types.ListCachePoliciesRequest, callback?: (err: AWSError, data: CloudFront.Types.ListCachePoliciesResult) => void): Request; + /** + * Gets a list of cache policies. You can optionally apply a filter to return only the managed policies created by AWS, or only the custom policies created in your AWS account. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listCachePolicies(callback?: (err: AWSError, data: CloudFront.Types.ListCachePoliciesResult) => void): Request; + /** + * Lists origin access identities. + */ + listCloudFrontOriginAccessIdentities(params: CloudFront.Types.ListCloudFrontOriginAccessIdentitiesRequest, callback?: (err: AWSError, data: CloudFront.Types.ListCloudFrontOriginAccessIdentitiesResult) => void): Request; + /** + * Lists origin access identities. + */ + listCloudFrontOriginAccessIdentities(callback?: (err: AWSError, data: CloudFront.Types.ListCloudFrontOriginAccessIdentitiesResult) => void): Request; + /** + * List CloudFront distributions. + */ + listDistributions(params: CloudFront.Types.ListDistributionsRequest, callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsResult) => void): Request; + /** + * List CloudFront distributions. + */ + listDistributions(callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsResult) => void): Request; + /** + * Gets a list of distribution IDs for distributions that have a cache behavior that’s associated with the specified cache policy. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByCachePolicyId(params: CloudFront.Types.ListDistributionsByCachePolicyIdRequest, callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByCachePolicyIdResult) => void): Request; + /** + * Gets a list of distribution IDs for distributions that have a cache behavior that’s associated with the specified cache policy. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByCachePolicyId(callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByCachePolicyIdResult) => void): Request; + /** + * Gets a list of distribution IDs for distributions that have a cache behavior that references the specified key group. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByKeyGroup(params: CloudFront.Types.ListDistributionsByKeyGroupRequest, callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByKeyGroupResult) => void): Request; + /** + * Gets a list of distribution IDs for distributions that have a cache behavior that references the specified key group. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByKeyGroup(callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByKeyGroupResult) => void): Request; + /** + * Gets a list of distribution IDs for distributions that have a cache behavior that’s associated with the specified origin request policy. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByOriginRequestPolicyId(params: CloudFront.Types.ListDistributionsByOriginRequestPolicyIdRequest, callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByOriginRequestPolicyIdResult) => void): Request; + /** + * Gets a list of distribution IDs for distributions that have a cache behavior that’s associated with the specified origin request policy. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByOriginRequestPolicyId(callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByOriginRequestPolicyIdResult) => void): Request; + /** + * Gets a list of distributions that have a cache behavior that’s associated with the specified real-time log configuration. You can specify the real-time log configuration by its name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to list distributions for. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByRealtimeLogConfig(params: CloudFront.Types.ListDistributionsByRealtimeLogConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByRealtimeLogConfigResult) => void): Request; + /** + * Gets a list of distributions that have a cache behavior that’s associated with the specified real-time log configuration. You can specify the real-time log configuration by its name or its Amazon Resource Name (ARN). You must provide at least one. If you provide both, CloudFront uses the name to identify the real-time log configuration to list distributions for. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listDistributionsByRealtimeLogConfig(callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByRealtimeLogConfigResult) => void): Request; + /** + * List the distributions that are associated with a specified AWS WAF web ACL. + */ + listDistributionsByWebACLId(params: CloudFront.Types.ListDistributionsByWebACLIdRequest, callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByWebACLIdResult) => void): Request; + /** + * List the distributions that are associated with a specified AWS WAF web ACL. + */ + listDistributionsByWebACLId(callback?: (err: AWSError, data: CloudFront.Types.ListDistributionsByWebACLIdResult) => void): Request; + /** + * List all field-level encryption configurations that have been created in CloudFront for this account. + */ + listFieldLevelEncryptionConfigs(params: CloudFront.Types.ListFieldLevelEncryptionConfigsRequest, callback?: (err: AWSError, data: CloudFront.Types.ListFieldLevelEncryptionConfigsResult) => void): Request; + /** + * List all field-level encryption configurations that have been created in CloudFront for this account. + */ + listFieldLevelEncryptionConfigs(callback?: (err: AWSError, data: CloudFront.Types.ListFieldLevelEncryptionConfigsResult) => void): Request; + /** + * Request a list of field-level encryption profiles that have been created in CloudFront for this account. + */ + listFieldLevelEncryptionProfiles(params: CloudFront.Types.ListFieldLevelEncryptionProfilesRequest, callback?: (err: AWSError, data: CloudFront.Types.ListFieldLevelEncryptionProfilesResult) => void): Request; + /** + * Request a list of field-level encryption profiles that have been created in CloudFront for this account. + */ + listFieldLevelEncryptionProfiles(callback?: (err: AWSError, data: CloudFront.Types.ListFieldLevelEncryptionProfilesResult) => void): Request; + /** + * Gets a list of all CloudFront functions in your AWS account. You can optionally apply a filter to return only the functions that are in the specified stage, either DEVELOPMENT or LIVE. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listFunctions(params: CloudFront.Types.ListFunctionsRequest, callback?: (err: AWSError, data: CloudFront.Types.ListFunctionsResult) => void): Request; + /** + * Gets a list of all CloudFront functions in your AWS account. You can optionally apply a filter to return only the functions that are in the specified stage, either DEVELOPMENT or LIVE. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listFunctions(callback?: (err: AWSError, data: CloudFront.Types.ListFunctionsResult) => void): Request; + /** + * Lists invalidation batches. + */ + listInvalidations(params: CloudFront.Types.ListInvalidationsRequest, callback?: (err: AWSError, data: CloudFront.Types.ListInvalidationsResult) => void): Request; + /** + * Lists invalidation batches. + */ + listInvalidations(callback?: (err: AWSError, data: CloudFront.Types.ListInvalidationsResult) => void): Request; + /** + * Gets a list of key groups. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listKeyGroups(params: CloudFront.Types.ListKeyGroupsRequest, callback?: (err: AWSError, data: CloudFront.Types.ListKeyGroupsResult) => void): Request; + /** + * Gets a list of key groups. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listKeyGroups(callback?: (err: AWSError, data: CloudFront.Types.ListKeyGroupsResult) => void): Request; + /** + * Gets a list of origin request policies. You can optionally apply a filter to return only the managed policies created by AWS, or only the custom policies created in your AWS account. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listOriginRequestPolicies(params: CloudFront.Types.ListOriginRequestPoliciesRequest, callback?: (err: AWSError, data: CloudFront.Types.ListOriginRequestPoliciesResult) => void): Request; + /** + * Gets a list of origin request policies. You can optionally apply a filter to return only the managed policies created by AWS, or only the custom policies created in your AWS account. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listOriginRequestPolicies(callback?: (err: AWSError, data: CloudFront.Types.ListOriginRequestPoliciesResult) => void): Request; + /** + * List all public keys that have been added to CloudFront for this account. + */ + listPublicKeys(params: CloudFront.Types.ListPublicKeysRequest, callback?: (err: AWSError, data: CloudFront.Types.ListPublicKeysResult) => void): Request; + /** + * List all public keys that have been added to CloudFront for this account. + */ + listPublicKeys(callback?: (err: AWSError, data: CloudFront.Types.ListPublicKeysResult) => void): Request; + /** + * Gets a list of real-time log configurations. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listRealtimeLogConfigs(params: CloudFront.Types.ListRealtimeLogConfigsRequest, callback?: (err: AWSError, data: CloudFront.Types.ListRealtimeLogConfigsResult) => void): Request; + /** + * Gets a list of real-time log configurations. You can optionally specify the maximum number of items to receive in the response. If the total number of items in the list exceeds the maximum that you specify, or the default maximum, the response is paginated. To get the next page of items, send a subsequent request that specifies the NextMarker value from the current response as the Marker value in the subsequent request. + */ + listRealtimeLogConfigs(callback?: (err: AWSError, data: CloudFront.Types.ListRealtimeLogConfigsResult) => void): Request; + /** + * List streaming distributions. + */ + listStreamingDistributions(params: CloudFront.Types.ListStreamingDistributionsRequest, callback?: (err: AWSError, data: CloudFront.Types.ListStreamingDistributionsResult) => void): Request; + /** + * List streaming distributions. + */ + listStreamingDistributions(callback?: (err: AWSError, data: CloudFront.Types.ListStreamingDistributionsResult) => void): Request; + /** + * List tags for a CloudFront resource. + */ + listTagsForResource(params: CloudFront.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: CloudFront.Types.ListTagsForResourceResult) => void): Request; + /** + * List tags for a CloudFront resource. + */ + listTagsForResource(callback?: (err: AWSError, data: CloudFront.Types.ListTagsForResourceResult) => void): Request; + /** + * Publishes a CloudFront function by copying the function code from the DEVELOPMENT stage to LIVE. This automatically updates all cache behaviors that are using this function to use the newly published copy in the LIVE stage. When a function is published to the LIVE stage, you can attach the function to a distribution’s cache behavior, using the function’s Amazon Resource Name (ARN). To publish a function, you must provide the function’s name and version (ETag value). To get these values, you can use ListFunctions and DescribeFunction. + */ + publishFunction(params: CloudFront.Types.PublishFunctionRequest, callback?: (err: AWSError, data: CloudFront.Types.PublishFunctionResult) => void): Request; + /** + * Publishes a CloudFront function by copying the function code from the DEVELOPMENT stage to LIVE. This automatically updates all cache behaviors that are using this function to use the newly published copy in the LIVE stage. When a function is published to the LIVE stage, you can attach the function to a distribution’s cache behavior, using the function’s Amazon Resource Name (ARN). To publish a function, you must provide the function’s name and version (ETag value). To get these values, you can use ListFunctions and DescribeFunction. + */ + publishFunction(callback?: (err: AWSError, data: CloudFront.Types.PublishFunctionResult) => void): Request; + /** + * Add tags to a CloudFront resource. + */ + tagResource(params: CloudFront.Types.TagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Add tags to a CloudFront resource. + */ + tagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Tests a CloudFront function. To test a function, you provide an event object that represents an HTTP request or response that your CloudFront distribution could receive in production. CloudFront runs the function, passing it the event object that you provided, and returns the function’s result (the modified event object) in the response. The response also contains function logs and error messages, if any exist. For more information about testing functions, see Testing functions in the Amazon CloudFront Developer Guide. To test a function, you provide the function’s name and version (ETag value) along with the event object. To get the function’s name and version, you can use ListFunctions and DescribeFunction. + */ + testFunction(params: CloudFront.Types.TestFunctionRequest, callback?: (err: AWSError, data: CloudFront.Types.TestFunctionResult) => void): Request; + /** + * Tests a CloudFront function. To test a function, you provide an event object that represents an HTTP request or response that your CloudFront distribution could receive in production. CloudFront runs the function, passing it the event object that you provided, and returns the function’s result (the modified event object) in the response. The response also contains function logs and error messages, if any exist. For more information about testing functions, see Testing functions in the Amazon CloudFront Developer Guide. To test a function, you provide the function’s name and version (ETag value) along with the event object. To get the function’s name and version, you can use ListFunctions and DescribeFunction. + */ + testFunction(callback?: (err: AWSError, data: CloudFront.Types.TestFunctionResult) => void): Request; + /** + * Remove tags from a CloudFront resource. + */ + untagResource(params: CloudFront.Types.UntagResourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Remove tags from a CloudFront resource. + */ + untagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates a cache policy configuration. When you update a cache policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a cache policy configuration: Use GetCachePolicyConfig to get the current configuration. Locally modify the fields in the cache policy configuration that you want to update. Call UpdateCachePolicy by providing the entire cache policy configuration, including the fields that you modified and those that you didn’t. + */ + updateCachePolicy(params: CloudFront.Types.UpdateCachePolicyRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateCachePolicyResult) => void): Request; + /** + * Updates a cache policy configuration. When you update a cache policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a cache policy configuration: Use GetCachePolicyConfig to get the current configuration. Locally modify the fields in the cache policy configuration that you want to update. Call UpdateCachePolicy by providing the entire cache policy configuration, including the fields that you modified and those that you didn’t. + */ + updateCachePolicy(callback?: (err: AWSError, data: CloudFront.Types.UpdateCachePolicyResult) => void): Request; + /** + * Update an origin access identity. + */ + updateCloudFrontOriginAccessIdentity(params: CloudFront.Types.UpdateCloudFrontOriginAccessIdentityRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateCloudFrontOriginAccessIdentityResult) => void): Request; + /** + * Update an origin access identity. + */ + updateCloudFrontOriginAccessIdentity(callback?: (err: AWSError, data: CloudFront.Types.UpdateCloudFrontOriginAccessIdentityResult) => void): Request; + /** + * Updates the configuration for a web distribution. When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using this API action, follow the steps here to get the current configuration and then make your updates, to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer Guide. The update process includes getting the current distribution configuration, updating the XML document that is returned to make your changes, and then submitting an UpdateDistribution request to make the updates. For information about updating a distribution using the CloudFront console instead, see Creating a Distribution in the Amazon CloudFront Developer Guide. To update a web distribution using the CloudFront API Submit a GetDistributionConfig request to get the current configuration and an Etag header for the distribution. If you update the distribution again, you must get a new Etag header. Update the XML document that was returned in the response to your GetDistributionConfig request to include your changes. When you edit the XML file, be aware of the following: You must strip out the ETag parameter that is returned. Additional fields are required when you update a distribution. There may be fields included in the XML file for features that you haven't configured for your distribution. This is expected and required to successfully update the distribution. You can't change the value of CallerReference. If you try to change this value, CloudFront returns an IllegalUpdate error. The new configuration replaces the existing configuration; the values that you specify in an UpdateDistribution request are not merged into your existing configuration. When you add, delete, or replace values in an element that allows multiple values (for example, CNAME), you must specify all of the values that you want to appear in the updated distribution. In addition, you must update the corresponding Quantity element. Submit an UpdateDistribution request to update the configuration for your distribution: In the request body, include the XML document that you updated in Step 2. The request body must include an XML document with a DistributionConfig element. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GetDistributionConfig request in Step 1. Review the response to the UpdateDistribution request to confirm that the configuration was successfully updated. Optional: Submit a GetDistribution request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed. + */ + updateDistribution(params: CloudFront.Types.UpdateDistributionRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateDistributionResult) => void): Request; + /** + * Updates the configuration for a web distribution. When you update a distribution, there are more required fields than when you create a distribution. When you update your distribution by using this API action, follow the steps here to get the current configuration and then make your updates, to make sure that you include all of the required fields. To view a summary, see Required Fields for Create Distribution and Update Distribution in the Amazon CloudFront Developer Guide. The update process includes getting the current distribution configuration, updating the XML document that is returned to make your changes, and then submitting an UpdateDistribution request to make the updates. For information about updating a distribution using the CloudFront console instead, see Creating a Distribution in the Amazon CloudFront Developer Guide. To update a web distribution using the CloudFront API Submit a GetDistributionConfig request to get the current configuration and an Etag header for the distribution. If you update the distribution again, you must get a new Etag header. Update the XML document that was returned in the response to your GetDistributionConfig request to include your changes. When you edit the XML file, be aware of the following: You must strip out the ETag parameter that is returned. Additional fields are required when you update a distribution. There may be fields included in the XML file for features that you haven't configured for your distribution. This is expected and required to successfully update the distribution. You can't change the value of CallerReference. If you try to change this value, CloudFront returns an IllegalUpdate error. The new configuration replaces the existing configuration; the values that you specify in an UpdateDistribution request are not merged into your existing configuration. When you add, delete, or replace values in an element that allows multiple values (for example, CNAME), you must specify all of the values that you want to appear in the updated distribution. In addition, you must update the corresponding Quantity element. Submit an UpdateDistribution request to update the configuration for your distribution: In the request body, include the XML document that you updated in Step 2. The request body must include an XML document with a DistributionConfig element. Set the value of the HTTP If-Match header to the value of the ETag header that CloudFront returned when you submitted the GetDistributionConfig request in Step 1. Review the response to the UpdateDistribution request to confirm that the configuration was successfully updated. Optional: Submit a GetDistribution request to confirm that your changes have propagated. When propagation is complete, the value of Status is Deployed. + */ + updateDistribution(callback?: (err: AWSError, data: CloudFront.Types.UpdateDistributionResult) => void): Request; + /** + * Update a field-level encryption configuration. + */ + updateFieldLevelEncryptionConfig(params: CloudFront.Types.UpdateFieldLevelEncryptionConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateFieldLevelEncryptionConfigResult) => void): Request; + /** + * Update a field-level encryption configuration. + */ + updateFieldLevelEncryptionConfig(callback?: (err: AWSError, data: CloudFront.Types.UpdateFieldLevelEncryptionConfigResult) => void): Request; + /** + * Update a field-level encryption profile. + */ + updateFieldLevelEncryptionProfile(params: CloudFront.Types.UpdateFieldLevelEncryptionProfileRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateFieldLevelEncryptionProfileResult) => void): Request; + /** + * Update a field-level encryption profile. + */ + updateFieldLevelEncryptionProfile(callback?: (err: AWSError, data: CloudFront.Types.UpdateFieldLevelEncryptionProfileResult) => void): Request; + /** + * Updates a CloudFront function. You can update a function’s code or the comment that describes the function. You cannot update a function’s name. To update a function, you provide the function’s name and version (ETag value) along with the updated function code. To get the name and version, you can use ListFunctions and DescribeFunction. + */ + updateFunction(params: CloudFront.Types.UpdateFunctionRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateFunctionResult) => void): Request; + /** + * Updates a CloudFront function. You can update a function’s code or the comment that describes the function. You cannot update a function’s name. To update a function, you provide the function’s name and version (ETag value) along with the updated function code. To get the name and version, you can use ListFunctions and DescribeFunction. + */ + updateFunction(callback?: (err: AWSError, data: CloudFront.Types.UpdateFunctionResult) => void): Request; + /** + * Updates a key group. When you update a key group, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a key group: Get the current key group with GetKeyGroup or GetKeyGroupConfig. Locally modify the fields in the key group that you want to update. For example, add or remove public key IDs. Call UpdateKeyGroup with the entire key group object, including the fields that you modified and those that you didn’t. + */ + updateKeyGroup(params: CloudFront.Types.UpdateKeyGroupRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateKeyGroupResult) => void): Request; + /** + * Updates a key group. When you update a key group, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update a key group: Get the current key group with GetKeyGroup or GetKeyGroupConfig. Locally modify the fields in the key group that you want to update. For example, add or remove public key IDs. Call UpdateKeyGroup with the entire key group object, including the fields that you modified and those that you didn’t. + */ + updateKeyGroup(callback?: (err: AWSError, data: CloudFront.Types.UpdateKeyGroupResult) => void): Request; + /** + * Updates an origin request policy configuration. When you update an origin request policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update an origin request policy configuration: Use GetOriginRequestPolicyConfig to get the current configuration. Locally modify the fields in the origin request policy configuration that you want to update. Call UpdateOriginRequestPolicy by providing the entire origin request policy configuration, including the fields that you modified and those that you didn’t. + */ + updateOriginRequestPolicy(params: CloudFront.Types.UpdateOriginRequestPolicyRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateOriginRequestPolicyResult) => void): Request; + /** + * Updates an origin request policy configuration. When you update an origin request policy configuration, all the fields are updated with the values provided in the request. You cannot update some fields independent of others. To update an origin request policy configuration: Use GetOriginRequestPolicyConfig to get the current configuration. Locally modify the fields in the origin request policy configuration that you want to update. Call UpdateOriginRequestPolicy by providing the entire origin request policy configuration, including the fields that you modified and those that you didn’t. + */ + updateOriginRequestPolicy(callback?: (err: AWSError, data: CloudFront.Types.UpdateOriginRequestPolicyResult) => void): Request; + /** + * Update public key information. Note that the only value you can change is the comment. + */ + updatePublicKey(params: CloudFront.Types.UpdatePublicKeyRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdatePublicKeyResult) => void): Request; + /** + * Update public key information. Note that the only value you can change is the comment. + */ + updatePublicKey(callback?: (err: AWSError, data: CloudFront.Types.UpdatePublicKeyResult) => void): Request; + /** + * Updates a real-time log configuration. When you update a real-time log configuration, all the parameters are updated with the values provided in the request. You cannot update some parameters independent of others. To update a real-time log configuration: Call GetRealtimeLogConfig to get the current real-time log configuration. Locally modify the parameters in the real-time log configuration that you want to update. Call this API (UpdateRealtimeLogConfig) by providing the entire real-time log configuration, including the parameters that you modified and those that you didn’t. You cannot update a real-time log configuration’s Name or ARN. + */ + updateRealtimeLogConfig(params: CloudFront.Types.UpdateRealtimeLogConfigRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateRealtimeLogConfigResult) => void): Request; + /** + * Updates a real-time log configuration. When you update a real-time log configuration, all the parameters are updated with the values provided in the request. You cannot update some parameters independent of others. To update a real-time log configuration: Call GetRealtimeLogConfig to get the current real-time log configuration. Locally modify the parameters in the real-time log configuration that you want to update. Call this API (UpdateRealtimeLogConfig) by providing the entire real-time log configuration, including the parameters that you modified and those that you didn’t. You cannot update a real-time log configuration’s Name or ARN. + */ + updateRealtimeLogConfig(callback?: (err: AWSError, data: CloudFront.Types.UpdateRealtimeLogConfigResult) => void): Request; + /** + * Update a streaming distribution. + */ + updateStreamingDistribution(params: CloudFront.Types.UpdateStreamingDistributionRequest, callback?: (err: AWSError, data: CloudFront.Types.UpdateStreamingDistributionResult) => void): Request; + /** + * Update a streaming distribution. + */ + updateStreamingDistribution(callback?: (err: AWSError, data: CloudFront.Types.UpdateStreamingDistributionResult) => void): Request; + /** + * Waits for the distributionDeployed state by periodically calling the underlying CloudFront.getDistributionoperation every 60 seconds (at most 35 times). Wait until a distribution is deployed. + */ + waitFor(state: "distributionDeployed", params: CloudFront.Types.GetDistributionRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFront.Types.GetDistributionResult) => void): Request; + /** + * Waits for the distributionDeployed state by periodically calling the underlying CloudFront.getDistributionoperation every 60 seconds (at most 35 times). Wait until a distribution is deployed. + */ + waitFor(state: "distributionDeployed", callback?: (err: AWSError, data: CloudFront.Types.GetDistributionResult) => void): Request; + /** + * Waits for the invalidationCompleted state by periodically calling the underlying CloudFront.getInvalidationoperation every 20 seconds (at most 30 times). Wait until an invalidation has completed. + */ + waitFor(state: "invalidationCompleted", params: CloudFront.Types.GetInvalidationRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFront.Types.GetInvalidationResult) => void): Request; + /** + * Waits for the invalidationCompleted state by periodically calling the underlying CloudFront.getInvalidationoperation every 20 seconds (at most 30 times). Wait until an invalidation has completed. + */ + waitFor(state: "invalidationCompleted", callback?: (err: AWSError, data: CloudFront.Types.GetInvalidationResult) => void): Request; + /** + * Waits for the streamingDistributionDeployed state by periodically calling the underlying CloudFront.getStreamingDistributionoperation every 60 seconds (at most 25 times). Wait until a streaming distribution is deployed. + */ + waitFor(state: "streamingDistributionDeployed", params: CloudFront.Types.GetStreamingDistributionRequest & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudFront.Types.GetStreamingDistributionResult) => void): Request; + /** + * Waits for the streamingDistributionDeployed state by periodically calling the underlying CloudFront.getStreamingDistributionoperation every 60 seconds (at most 25 times). Wait until a streaming distribution is deployed. + */ + waitFor(state: "streamingDistributionDeployed", callback?: (err: AWSError, data: CloudFront.Types.GetStreamingDistributionResult) => void): Request; +} +declare namespace CloudFront { + export import Signer = signer; +} +declare namespace CloudFront { + export interface ActiveTrustedKeyGroups { + /** + * This field is true if any of the key groups have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is false. + */ + Enabled: boolean; + /** + * The number of key groups in the list. + */ + Quantity: integer; + /** + * A list of key groups, including the identifiers of the public keys in each key group that CloudFront can use to verify the signatures of signed URLs and signed cookies. + */ + Items?: KGKeyPairIdsList; + } + export interface ActiveTrustedSigners { + /** + * This field is true if any of the AWS accounts in the list have active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is false. + */ + Enabled: boolean; + /** + * The number of AWS accounts in the list. + */ + Quantity: integer; + /** + * A list of AWS accounts and the identifiers of active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs and signed cookies. + */ + Items?: SignerList; + } + export interface AliasICPRecordal { + /** + * A domain name associated with a distribution. + */ + CNAME?: string; + /** + * The Internet Content Provider (ICP) recordal status for a CNAME. The ICPRecordalStatus is set to APPROVED for all CNAMEs (aliases) in regions outside of China. The status values returned are the following: APPROVED indicates that the associated CNAME has a valid ICP recordal number. Multiple CNAMEs can be associated with a distribution, and CNAMEs can correspond to different ICP recordals. To be marked as APPROVED, that is, valid to use with China region, a CNAME must have one ICP recordal number associated with it. SUSPENDED indicates that the associated CNAME does not have a valid ICP recordal number. PENDING indicates that CloudFront can't determine the ICP recordal status of the CNAME associated with the distribution because there was an error in trying to determine the status. You can try again to see if the error is resolved in which case CloudFront returns an APPROVED or SUSPENDED status. + */ + ICPRecordalStatus?: ICPRecordalStatus; + } + export type AliasICPRecordals = AliasICPRecordal[]; + export type AliasList = string[]; + export interface Aliases { + /** + * The number of CNAME aliases, if any, that you want to associate with this distribution. + */ + Quantity: integer; + /** + * A complex type that contains the CNAME aliases, if any, that you want to associate with this distribution. + */ + Items?: AliasList; + } + export interface AllowedMethods { + /** + * The number of HTTP methods that you want CloudFront to forward to your origin. Valid values are 2 (for GET and HEAD requests), 3 (for GET, HEAD, and OPTIONS requests) and 7 (for GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE requests). + */ + Quantity: integer; + /** + * A complex type that contains the HTTP methods that you want CloudFront to process and forward to your origin. + */ + Items: MethodsList; + CachedMethods?: CachedMethods; + } + export type AwsAccountNumberList = string[]; + export interface CacheBehavior { + /** + * The pattern (for example, images/*.jpg) that specifies which requests to apply the behavior to. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. You can optionally include a slash (/) at the beginning of the path pattern. For example, /images/*.jpg. CloudFront behavior is the same with or without the leading /. The path pattern for the default cache behavior is * and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior. For more information, see Path Pattern in the Amazon CloudFront Developer Guide. + */ + PathPattern: string; + /** + * The value of ID for the origin that you want CloudFront to route requests to when they match this cache behavior. + */ + TargetOriginId: string; + /** + * We recommend using TrustedKeyGroups instead of TrustedSigners. A list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in the trusted signer’s AWS account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide. + */ + TrustedSigners?: TrustedSigners; + /** + * A list of key groups that CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide. + */ + TrustedKeyGroups?: TrustedKeyGroups; + /** + * The protocol that viewers can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. You can specify the following options: allow-all: Viewers can use HTTP or HTTPS. redirect-to-https: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL. https-only: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the Amazon CloudFront Developer Guide. The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects’ cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Managing Cache Expiration in the Amazon CloudFront Developer Guide. + */ + ViewerProtocolPolicy: ViewerProtocolPolicy; + AllowedMethods?: AllowedMethods; + /** + * Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify true; if not, specify false. If you specify true for SmoothStreaming, you can still distribute other content using this cache behavior if the content matches the value of PathPattern. + */ + SmoothStreaming?: boolean; + /** + * Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide. + */ + Compress?: boolean; + /** + * A complex type that contains zero or more Lambda function associations for a cache behavior. + */ + LambdaFunctionAssociations?: LambdaFunctionAssociations; + /** + * A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the LIVE stage to associate them with a cache behavior. + */ + FunctionAssociations?: FunctionAssociations; + /** + * The value of ID for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior. + */ + FieldLevelEncryptionId?: string; + /** + * The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see Real-time logs in the Amazon CloudFront Developer Guide. + */ + RealtimeLogConfigArn?: string; + /** + * The unique identifier of the cache policy that is attached to this cache behavior. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. A CacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId. + */ + CachePolicyId?: string; + /** + * The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide. + */ + OriginRequestPolicyId?: string; + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see Working with policies in the Amazon CloudFront Developer Guide. If you want to include values in the cache key, use a cache policy. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide. A CacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId. A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. + */ + ForwardedValues?: ForwardedValues; + /** + * This field is deprecated. We recommend that you use the MinTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. You must specify 0 for MinTTL if you configure CloudFront to forward all headers to your origin (under Headers, if you specify 1 for Quantity and * for Name). + */ + MinTTL?: long; + /** + * This field is deprecated. We recommend that you use the DefaultTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. + */ + DefaultTTL?: long; + /** + * This field is deprecated. We recommend that you use the MaxTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. + */ + MaxTTL?: long; + } + export type CacheBehaviorList = CacheBehavior[]; + export interface CacheBehaviors { + /** + * The number of cache behaviors for this distribution. + */ + Quantity: integer; + /** + * Optional: A complex type that contains cache behaviors for this distribution. If Quantity is 0, you can omit Items. + */ + Items?: CacheBehaviorList; + } + export interface CachePolicy { + /** + * The unique identifier for the cache policy. + */ + Id: string; + /** + * The date and time when the cache policy was last modified. + */ + LastModifiedTime: timestamp; + /** + * The cache policy configuration. + */ + CachePolicyConfig: CachePolicyConfig; + } + export interface CachePolicyConfig { + /** + * A comment to describe the cache policy. The comment cannot be longer than 128 characters. + */ + Comment?: string; + /** + * A unique name to identify the cache policy. + */ + Name: string; + /** + * The default amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value as the object’s time to live (TTL) only when the origin does not send Cache-Control or Expires headers with the object. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. The default value for this field is 86400 seconds (one day). If the value of MinTTL is more than 86400 seconds, then the default value for this field is the same as the value of MinTTL. + */ + DefaultTTL?: long; + /** + * The maximum amount of time, in seconds, that objects stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. CloudFront uses this value only when the origin sends Cache-Control or Expires headers with the object. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. The default value for this field is 31536000 seconds (one year). If the value of MinTTL or DefaultTTL is more than 31536000 seconds, then the default value for this field is the same as the value of DefaultTTL. + */ + MaxTTL?: long; + /** + * The minimum amount of time, in seconds, that you want objects to stay in the CloudFront cache before CloudFront sends another request to the origin to see if the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. + */ + MinTTL: long; + /** + * The HTTP headers, cookies, and URL query strings to include in the cache key. The values included in the cache key are automatically included in requests that CloudFront sends to the origin. + */ + ParametersInCacheKeyAndForwardedToOrigin?: ParametersInCacheKeyAndForwardedToOrigin; + } + export type CachePolicyCookieBehavior = "none"|"whitelist"|"allExcept"|"all"|string; + export interface CachePolicyCookiesConfig { + /** + * Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are: none – Cookies in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in an OriginRequestPolicy are included in origin requests. whitelist – The cookies in viewer requests that are listed in the CookieNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin. allExcept – All cookies in viewer requests that are not listed in the CookieNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin. all – All cookies in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin. + */ + CookieBehavior: CachePolicyCookieBehavior; + Cookies?: CookieNames; + } + export type CachePolicyHeaderBehavior = "none"|"whitelist"|string; + export interface CachePolicyHeadersConfig { + /** + * Determines whether any HTTP headers are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are: none – HTTP headers are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in an OriginRequestPolicy are included in origin requests. whitelist – The HTTP headers that are listed in the Headers type are included in the cache key and are automatically included in requests that CloudFront sends to the origin. + */ + HeaderBehavior: CachePolicyHeaderBehavior; + Headers?: Headers; + } + export interface CachePolicyList { + /** + * If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing cache policies where you left off. + */ + NextMarker?: string; + /** + * The maximum number of cache policies requested. + */ + MaxItems: integer; + /** + * The total number of cache policies returned in the response. + */ + Quantity: integer; + /** + * Contains the cache policies in the list. + */ + Items?: CachePolicySummaryList; + } + export type CachePolicyQueryStringBehavior = "none"|"whitelist"|"allExcept"|"all"|string; + export interface CachePolicyQueryStringsConfig { + /** + * Determines whether any URL query strings in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Valid values are: none – Query strings in viewer requests are not included in the cache key and are not automatically included in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in an OriginRequestPolicy are included in origin requests. whitelist – The query strings in viewer requests that are listed in the QueryStringNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin. allExcept – All query strings in viewer requests that are not listed in the QueryStringNames type are included in the cache key and automatically included in requests that CloudFront sends to the origin. all – All query strings in viewer requests are included in the cache key and are automatically included in requests that CloudFront sends to the origin. + */ + QueryStringBehavior: CachePolicyQueryStringBehavior; + /** + * Contains the specific query strings in viewer requests that either are or are not included in the cache key and automatically included in requests that CloudFront sends to the origin. The behavior depends on whether the QueryStringBehavior field in the CachePolicyQueryStringsConfig type is set to whitelist (the listed query strings are included) or allExcept (the listed query strings are not included, but all other query strings are). + */ + QueryStrings?: QueryStringNames; + } + export interface CachePolicySummary { + /** + * The type of cache policy, either managed (created by AWS) or custom (created in this AWS account). + */ + Type: CachePolicyType; + /** + * The cache policy. + */ + CachePolicy: CachePolicy; + } + export type CachePolicySummaryList = CachePolicySummary[]; + export type CachePolicyType = "managed"|"custom"|string; + export interface CachedMethods { + /** + * The number of HTTP methods for which you want CloudFront to cache responses. Valid values are 2 (for caching responses to GET and HEAD requests) and 3 (for caching responses to GET, HEAD, and OPTIONS requests). + */ + Quantity: integer; + /** + * A complex type that contains the HTTP methods that you want CloudFront to cache responses to. + */ + Items: MethodsList; + } + export type CertificateSource = "cloudfront"|"iam"|"acm"|string; + export interface CloudFrontOriginAccessIdentity { + /** + * The ID for the origin access identity, for example, E74FTE3AJFJ256A. + */ + Id: string; + /** + * The Amazon S3 canonical user ID for the origin access identity, used when giving the origin access identity read permission to an object in Amazon S3. + */ + S3CanonicalUserId: string; + /** + * The current configuration information for the identity. + */ + CloudFrontOriginAccessIdentityConfig?: CloudFrontOriginAccessIdentityConfig; + } + export interface CloudFrontOriginAccessIdentityConfig { + /** + * A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of CallerReference is new (regardless of the content of the CloudFrontOriginAccessIdentityConfig object), a new origin access identity is created. If the CallerReference is a value already sent in a previous identity request, and the content of the CloudFrontOriginAccessIdentityConfig is identical to the original request (ignoring white space), the response includes the same information returned to the original request. If the CallerReference is a value you already sent in a previous request to create an identity, but the content of the CloudFrontOriginAccessIdentityConfig is different from the original request, CloudFront returns a CloudFrontOriginAccessIdentityAlreadyExists error. + */ + CallerReference: string; + /** + * A comment to describe the origin access identity. The comment cannot be longer than 128 characters. + */ + Comment: string; + } + export interface CloudFrontOriginAccessIdentityList { + /** + * Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last identity on that page). + */ + Marker: string; + /** + * If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your origin access identities where they left off. + */ + NextMarker?: string; + /** + * The maximum number of origin access identities you want in the response body. + */ + MaxItems: integer; + /** + * A flag that indicates whether more origin access identities remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more items in the list. + */ + IsTruncated: boolean; + /** + * The number of CloudFront origin access identities that were created by the current AWS account. + */ + Quantity: integer; + /** + * A complex type that contains one CloudFrontOriginAccessIdentitySummary element for each origin access identity that was created by the current AWS account. + */ + Items?: CloudFrontOriginAccessIdentitySummaryList; + } + export interface CloudFrontOriginAccessIdentitySummary { + /** + * The ID for the origin access identity. For example: E74FTE3AJFJ256A. + */ + Id: string; + /** + * The Amazon S3 canonical user ID for the origin access identity, which you use when giving the origin access identity read permission to an object in Amazon S3. + */ + S3CanonicalUserId: string; + /** + * The comment for this origin access identity, as originally specified when created. + */ + Comment: string; + } + export type CloudFrontOriginAccessIdentitySummaryList = CloudFrontOriginAccessIdentitySummary[]; + export type CommentType = string; + export interface ContentTypeProfile { + /** + * The format for a field-level encryption content type-profile mapping. + */ + Format: Format; + /** + * The profile ID for a field-level encryption content type-profile mapping. + */ + ProfileId?: string; + /** + * The content type for a field-level encryption content type-profile mapping. + */ + ContentType: string; + } + export interface ContentTypeProfileConfig { + /** + * The setting in a field-level encryption content type-profile mapping that specifies what to do when an unknown content type is provided for the profile. If true, content is forwarded without being encrypted when the content type is unknown. If false (the default), an error is returned when the content type is unknown. + */ + ForwardWhenContentTypeIsUnknown: boolean; + /** + * The configuration for a field-level encryption content type-profile. + */ + ContentTypeProfiles?: ContentTypeProfiles; + } + export type ContentTypeProfileList = ContentTypeProfile[]; + export interface ContentTypeProfiles { + /** + * The number of field-level encryption content type-profile mappings. + */ + Quantity: integer; + /** + * Items in a field-level encryption content type-profile mapping. + */ + Items?: ContentTypeProfileList; + } + export type CookieNameList = string[]; + export interface CookieNames { + /** + * The number of cookie names in the Items list. + */ + Quantity: integer; + /** + * A list of cookie names. + */ + Items?: CookieNameList; + } + export interface CookiePreference { + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide. If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide. Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the WhitelistedNames complex type. Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the Forward element. + */ + Forward: ItemSelection; + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide. Required if you specify whitelist for the value of Forward. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. If you specify all or none for the value of Forward, omit WhitelistedNames. If you change the value of Forward from whitelist to all or none and you don't delete the WhitelistedNames element and its child elements, CloudFront deletes them automatically. For the current limit on the number of cookie names that you can whitelist for each cache behavior, see CloudFront Limits in the AWS General Reference. + */ + WhitelistedNames?: CookieNames; + } + export interface CreateCachePolicyRequest { + /** + * A cache policy configuration. + */ + CachePolicyConfig: CachePolicyConfig; + } + export interface CreateCachePolicyResult { + /** + * A cache policy. + */ + CachePolicy?: CachePolicy; + /** + * The fully qualified URI of the cache policy just created. + */ + Location?: string; + /** + * The current version of the cache policy. + */ + ETag?: string; + } + export interface CreateCloudFrontOriginAccessIdentityRequest { + /** + * The current configuration information for the identity. + */ + CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig; + } + export interface CreateCloudFrontOriginAccessIdentityResult { + /** + * The origin access identity's information. + */ + CloudFrontOriginAccessIdentity?: CloudFrontOriginAccessIdentity; + /** + * The fully qualified URI of the new origin access identity just created. + */ + Location?: string; + /** + * The current version of the origin access identity created. + */ + ETag?: string; + } + export interface CreateDistributionRequest { + /** + * The distribution's configuration information. + */ + DistributionConfig: DistributionConfig; + } + export interface CreateDistributionResult { + /** + * The distribution's information. + */ + Distribution?: Distribution; + /** + * The fully qualified URI of the new distribution resource just created. + */ + Location?: string; + /** + * The current version of the distribution created. + */ + ETag?: string; + } + export interface CreateDistributionWithTagsRequest { + /** + * The distribution's configuration information. + */ + DistributionConfigWithTags: DistributionConfigWithTags; + } + export interface CreateDistributionWithTagsResult { + /** + * The distribution's information. + */ + Distribution?: Distribution; + /** + * The fully qualified URI of the new distribution resource just created. + */ + Location?: string; + /** + * The current version of the distribution created. + */ + ETag?: string; + } + export interface CreateFieldLevelEncryptionConfigRequest { + /** + * The request to create a new field-level encryption configuration. + */ + FieldLevelEncryptionConfig: FieldLevelEncryptionConfig; + } + export interface CreateFieldLevelEncryptionConfigResult { + /** + * Returned when you create a new field-level encryption configuration. + */ + FieldLevelEncryption?: FieldLevelEncryption; + /** + * The fully qualified URI of the new configuration resource just created. + */ + Location?: string; + /** + * The current version of the field level encryption configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface CreateFieldLevelEncryptionProfileRequest { + /** + * The request to create a field-level encryption profile. + */ + FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig; + } + export interface CreateFieldLevelEncryptionProfileResult { + /** + * Returned when you create a new field-level encryption profile. + */ + FieldLevelEncryptionProfile?: FieldLevelEncryptionProfile; + /** + * The fully qualified URI of the new profile resource just created. + */ + Location?: string; + /** + * The current version of the field level encryption profile. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface CreateFunctionRequest { + /** + * A name to identify the function. + */ + Name: FunctionName; + /** + * Configuration information about the function, including an optional comment and the function’s runtime. + */ + FunctionConfig: FunctionConfig; + /** + * The function code. For more information about writing a CloudFront function, see Writing function code for CloudFront Functions in the Amazon CloudFront Developer Guide. + */ + FunctionCode: FunctionBlob; + } + export interface CreateFunctionResult { + /** + * Contains configuration information and metadata about a CloudFront function. + */ + FunctionSummary?: FunctionSummary; + /** + * The URL of the CloudFront function. Use the URL to manage the function with the CloudFront API. + */ + Location?: string; + /** + * The version identifier for the current version of the CloudFront function. + */ + ETag?: string; + } + export interface CreateInvalidationRequest { + /** + * The distribution's id. + */ + DistributionId: string; + /** + * The batch information for the invalidation. + */ + InvalidationBatch: InvalidationBatch; + } + export interface CreateInvalidationResult { + /** + * The fully qualified URI of the distribution and invalidation batch request, including the Invalidation ID. + */ + Location?: string; + /** + * The invalidation's information. + */ + Invalidation?: Invalidation; + } + export interface CreateKeyGroupRequest { + /** + * A key group configuration. + */ + KeyGroupConfig: KeyGroupConfig; + } + export interface CreateKeyGroupResult { + /** + * The key group that was just created. + */ + KeyGroup?: KeyGroup; + /** + * The URL of the key group. + */ + Location?: string; + /** + * The identifier for this version of the key group. + */ + ETag?: string; + } + export interface CreateMonitoringSubscriptionRequest { + /** + * The ID of the distribution that you are enabling metrics for. + */ + DistributionId: string; + /** + * A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. + */ + MonitoringSubscription: MonitoringSubscription; + } + export interface CreateMonitoringSubscriptionResult { + /** + * A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. + */ + MonitoringSubscription?: MonitoringSubscription; + } + export interface CreateOriginRequestPolicyRequest { + /** + * An origin request policy configuration. + */ + OriginRequestPolicyConfig: OriginRequestPolicyConfig; + } + export interface CreateOriginRequestPolicyResult { + /** + * An origin request policy. + */ + OriginRequestPolicy?: OriginRequestPolicy; + /** + * The fully qualified URI of the origin request policy just created. + */ + Location?: string; + /** + * The current version of the origin request policy. + */ + ETag?: string; + } + export interface CreatePublicKeyRequest { + /** + * A CloudFront public key configuration. + */ + PublicKeyConfig: PublicKeyConfig; + } + export interface CreatePublicKeyResult { + /** + * The public key. + */ + PublicKey?: PublicKey; + /** + * The URL of the public key. + */ + Location?: string; + /** + * The identifier for this version of the public key. + */ + ETag?: string; + } + export interface CreateRealtimeLogConfigRequest { + /** + * Contains information about the Amazon Kinesis data stream where you are sending real-time log data. + */ + EndPoints: EndPointList; + /** + * A list of fields to include in each real-time log record. For more information about fields, see Real-time log configuration fields in the Amazon CloudFront Developer Guide. + */ + Fields: FieldList; + /** + * A unique name to identify this real-time log configuration. + */ + Name: string; + /** + * The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. You must provide an integer between 1 and 100, inclusive. + */ + SamplingRate: long; + } + export interface CreateRealtimeLogConfigResult { + /** + * A real-time log configuration. + */ + RealtimeLogConfig?: RealtimeLogConfig; + } + export interface CreateStreamingDistributionRequest { + /** + * The streaming distribution's configuration information. + */ + StreamingDistributionConfig: StreamingDistributionConfig; + } + export interface CreateStreamingDistributionResult { + /** + * The streaming distribution's information. + */ + StreamingDistribution?: StreamingDistribution; + /** + * The fully qualified URI of the new streaming distribution resource just created. + */ + Location?: string; + /** + * The current version of the streaming distribution created. + */ + ETag?: string; + } + export interface CreateStreamingDistributionWithTagsRequest { + /** + * The streaming distribution's configuration information. + */ + StreamingDistributionConfigWithTags: StreamingDistributionConfigWithTags; + } + export interface CreateStreamingDistributionWithTagsResult { + /** + * The streaming distribution's information. + */ + StreamingDistribution?: StreamingDistribution; + /** + * The fully qualified URI of the new streaming distribution resource just created. + */ + Location?: string; + /** + * The current version of the distribution created. + */ + ETag?: string; + } + export interface CustomErrorResponse { + /** + * The HTTP status code for which you want to specify a custom error page and/or a caching duration. + */ + ErrorCode: integer; + /** + * The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ErrorCode, for example, /4xx-errors/403-forbidden.html. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true: The value of PathPattern matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named /4xx-errors. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, /4xx-errors/*. The value of TargetOriginId specifies the value of the ID element for the origin that contains your custom error pages. If you specify a value for ResponsePagePath, you must also specify a value for ResponseCode. We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. + */ + ResponsePagePath?: string; + /** + * The HTTP status code that you want CloudFront to return to the viewer along with the custom error page. There are a variety of reasons that you might want CloudFront to return a status code different from the status code that your origin returned to CloudFront, for example: Some Internet devices (some firewalls and corporate proxies, for example) intercept HTTP 4xx and 5xx and prevent the response from being returned to the viewer. If you substitute 200, the response typically won't be intercepted. If you don't care about distinguishing among different client errors or server errors, you can specify 400 or 500 as the ResponseCode for all 4xx or 5xx errors. You might want to return a 200 status code (OK) and static website so your customers don't know that your website is down. If you specify a value for ResponseCode, you must also specify a value for ResponsePagePath. + */ + ResponseCode?: string; + /** + * The minimum amount of time, in seconds, that you want CloudFront to cache the HTTP status code specified in ErrorCode. When this time period has elapsed, CloudFront queries your origin to see whether the problem that caused the error has been resolved and the requested object is now available. For more information, see Customizing Error Responses in the Amazon CloudFront Developer Guide. + */ + ErrorCachingMinTTL?: long; + } + export type CustomErrorResponseList = CustomErrorResponse[]; + export interface CustomErrorResponses { + /** + * The number of HTTP status codes for which you want to specify a custom error page and/or a caching duration. If Quantity is 0, you can omit Items. + */ + Quantity: integer; + /** + * A complex type that contains a CustomErrorResponse element for each HTTP status code for which you want to specify a custom error page and/or a caching duration. + */ + Items?: CustomErrorResponseList; + } + export interface CustomHeaders { + /** + * The number of custom headers, if any, for this distribution. + */ + Quantity: integer; + /** + * Optional: A list that contains one OriginCustomHeader element for each custom header that you want CloudFront to forward to the origin. If Quantity is 0, omit Items. + */ + Items?: OriginCustomHeadersList; + } + export interface CustomOriginConfig { + /** + * The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP port that the origin listens on. + */ + HTTPPort: integer; + /** + * The HTTPS port that CloudFront uses to connect to the origin. Specify the HTTPS port that the origin listens on. + */ + HTTPSPort: integer; + /** + * Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin. Valid values are: http-only – CloudFront always uses HTTP to connect to the origin. match-viewer – CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront. https-only – CloudFront always uses HTTPS to connect to the origin. + */ + OriginProtocolPolicy: OriginProtocolPolicy; + /** + * Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS. Valid values include SSLv3, TLSv1, TLSv1.1, and TLSv1.2. For more information, see Minimum Origin SSL Protocol in the Amazon CloudFront Developer Guide. + */ + OriginSslProtocols?: OriginSslProtocols; + /** + * Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the origin response timeout. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don’t specify otherwise) is 30 seconds. For more information, see Origin Response Timeout in the Amazon CloudFront Developer Guide. + */ + OriginReadTimeout?: integer; + /** + * Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don’t specify otherwise) is 5 seconds. For more information, see Origin Keep-alive Timeout in the Amazon CloudFront Developer Guide. + */ + OriginKeepaliveTimeout?: integer; + } + export interface DefaultCacheBehavior { + /** + * The value of ID for the origin that you want CloudFront to route requests to when they use the default cache behavior. + */ + TargetOriginId: string; + /** + * We recommend using TrustedKeyGroups instead of TrustedSigners. A list of AWS account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer’s AWS account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide. + */ + TrustedSigners?: TrustedSigners; + /** + * A list of key groups that CloudFront can use to validate signed URLs or signed cookies. When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see Serving private content in the Amazon CloudFront Developer Guide. + */ + TrustedKeyGroups?: TrustedKeyGroups; + /** + * The protocol that viewers can use to access the files in the origin specified by TargetOriginId when a request matches the path pattern in PathPattern. You can specify the following options: allow-all: Viewers can use HTTP or HTTPS. redirect-to-https: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL. https-only: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see Requiring HTTPS Between Viewers and CloudFront in the Amazon CloudFront Developer Guide. The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects’ cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see Managing Cache Expiration in the Amazon CloudFront Developer Guide. + */ + ViewerProtocolPolicy: ViewerProtocolPolicy; + AllowedMethods?: AllowedMethods; + /** + * Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify true; if not, specify false. If you specify true for SmoothStreaming, you can still distribute other content using this cache behavior if the content matches the value of PathPattern. + */ + SmoothStreaming?: boolean; + /** + * Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see Serving Compressed Files in the Amazon CloudFront Developer Guide. + */ + Compress?: boolean; + /** + * A complex type that contains zero or more Lambda function associations for a cache behavior. + */ + LambdaFunctionAssociations?: LambdaFunctionAssociations; + /** + * A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the LIVE stage to associate them with a cache behavior. + */ + FunctionAssociations?: FunctionAssociations; + /** + * The value of ID for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior. + */ + FieldLevelEncryptionId?: string; + /** + * The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see Real-time logs in the Amazon CloudFront Developer Guide. + */ + RealtimeLogConfigArn?: string; + /** + * The unique identifier of the cache policy that is attached to the default cache behavior. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. A DefaultCacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId. + */ + CachePolicyId?: string; + /** + * The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide. + */ + OriginRequestPolicyId?: string; + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see Working with policies in the Amazon CloudFront Developer Guide. If you want to include values in the cache key, use a cache policy. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies or Using the managed origin request policies in the Amazon CloudFront Developer Guide. A DefaultCacheBehavior must include either a CachePolicyId or ForwardedValues. We recommend that you use a CachePolicyId. A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. + */ + ForwardedValues?: ForwardedValues; + /** + * This field is deprecated. We recommend that you use the MinTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. You must specify 0 for MinTTL if you configure CloudFront to forward all headers to your origin (under Headers, if you specify 1 for Quantity and * for Name). + */ + MinTTL?: long; + /** + * This field is deprecated. We recommend that you use the DefaultTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. + */ + DefaultTTL?: long; + /** + * This field is deprecated. We recommend that you use the MaxTTL field in a cache policy instead of this field. For more information, see Creating cache policies or Using the managed cache policies in the Amazon CloudFront Developer Guide. The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as Cache-Control max-age, Cache-Control s-maxage, and Expires to objects. For more information, see Managing How Long Content Stays in an Edge Cache (Expiration) in the Amazon CloudFront Developer Guide. + */ + MaxTTL?: long; + } + export interface DeleteCachePolicyRequest { + /** + * The unique identifier for the cache policy that you are deleting. To get the identifier, you can use ListCachePolicies. + */ + Id: string; + /** + * The version of the cache policy that you are deleting. The version is the cache policy’s ETag value, which you can get using ListCachePolicies, GetCachePolicy, or GetCachePolicyConfig. + */ + IfMatch?: string; + } + export interface DeleteCloudFrontOriginAccessIdentityRequest { + /** + * The origin access identity's ID. + */ + Id: string; + /** + * The value of the ETag header you received from a previous GET or PUT request. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface DeleteDistributionRequest { + /** + * The distribution ID. + */ + Id: string; + /** + * The value of the ETag header that you received when you disabled the distribution. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface DeleteFieldLevelEncryptionConfigRequest { + /** + * The ID of the configuration you want to delete from CloudFront. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the configuration identity to delete. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface DeleteFieldLevelEncryptionProfileRequest { + /** + * Request the ID of the profile you want to delete from CloudFront. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the profile to delete. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface DeleteFunctionRequest { + /** + * The name of the function that you are deleting. + */ + Name: string; + /** + * The current version (ETag value) of the function that you are deleting, which you can get using DescribeFunction. + */ + IfMatch: string; + } + export interface DeleteKeyGroupRequest { + /** + * The identifier of the key group that you are deleting. To get the identifier, use ListKeyGroups. + */ + Id: string; + /** + * The version of the key group that you are deleting. The version is the key group’s ETag value. To get the ETag, use GetKeyGroup or GetKeyGroupConfig. + */ + IfMatch?: string; + } + export interface DeleteMonitoringSubscriptionRequest { + /** + * The ID of the distribution that you are disabling metrics for. + */ + DistributionId: string; + } + export interface DeleteMonitoringSubscriptionResult { + } + export interface DeleteOriginRequestPolicyRequest { + /** + * The unique identifier for the origin request policy that you are deleting. To get the identifier, you can use ListOriginRequestPolicies. + */ + Id: string; + /** + * The version of the origin request policy that you are deleting. The version is the origin request policy’s ETag value, which you can get using ListOriginRequestPolicies, GetOriginRequestPolicy, or GetOriginRequestPolicyConfig. + */ + IfMatch?: string; + } + export interface DeletePublicKeyRequest { + /** + * The ID of the public key you want to remove from CloudFront. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the public key identity to delete. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface DeleteRealtimeLogConfigRequest { + /** + * The name of the real-time log configuration to delete. + */ + Name?: string; + /** + * The Amazon Resource Name (ARN) of the real-time log configuration to delete. + */ + ARN?: string; + } + export interface DeleteStreamingDistributionRequest { + /** + * The distribution ID. + */ + Id: string; + /** + * The value of the ETag header that you received when you disabled the streaming distribution. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface DescribeFunctionRequest { + /** + * The name of the function that you are getting information about. + */ + Name: string; + /** + * The function’s stage, either DEVELOPMENT or LIVE. + */ + Stage?: FunctionStage; + } + export interface DescribeFunctionResult { + /** + * Contains configuration information and metadata about a CloudFront function. + */ + FunctionSummary?: FunctionSummary; + /** + * The version identifier for the current version of the CloudFront function. + */ + ETag?: string; + } + export interface Distribution { + /** + * The identifier for the distribution. For example: EDFDVBD632BHDS5. + */ + Id: string; + /** + * The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID. + */ + ARN: string; + /** + * This response element indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated to all CloudFront edge locations. + */ + Status: string; + /** + * The date and time the distribution was last modified. + */ + LastModifiedTime: timestamp; + /** + * The number of invalidation batches currently in progress. + */ + InProgressInvalidationBatches: integer; + /** + * The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net. + */ + DomainName: string; + /** + * We recommend using TrustedKeyGroups instead of TrustedSigners. CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using trusted signers. This field contains a list of AWS account IDs and the active CloudFront key pairs in each account that CloudFront can use to verify the signatures of signed URLs or signed cookies. + */ + ActiveTrustedSigners?: ActiveTrustedSigners; + /** + * CloudFront automatically adds this field to the response if you’ve configured a cache behavior in this distribution to serve private content using key groups. This field contains a list of key groups and the public keys in each key group that CloudFront can use to verify the signatures of signed URLs or signed cookies. + */ + ActiveTrustedKeyGroups?: ActiveTrustedKeyGroups; + /** + * The current configuration information for the distribution. Send a GET request to the /CloudFront API version/distribution ID/config resource. + */ + DistributionConfig: DistributionConfig; + /** + * AWS services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions. For more information about ICP recordals, see Signup, Accounts, and Credentials in Getting Started with AWS services in China. + */ + AliasICPRecordals?: AliasICPRecordals; + } + export interface DistributionConfig { + /** + * A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of CallerReference is new (regardless of the content of the DistributionConfig object), CloudFront creates a new distribution. If CallerReference is a value that you already sent in a previous request to create a distribution, CloudFront returns a DistributionAlreadyExists error. + */ + CallerReference: string; + /** + * A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution. + */ + Aliases?: Aliases; + /** + * The object that you want CloudFront to request from your origin (for example, index.html) when a viewer requests the root URL for your distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html). Specifying a default root object avoids exposing the contents of your distribution. Specify only the object name, for example, index.html. Don't add a / before the object name. If you don't want to specify a default root object when you create a distribution, include an empty DefaultRootObject element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty DefaultRootObject element. To replace the default root object, update the distribution configuration and specify the new object. For more information about the default root object, see Creating a Default Root Object in the Amazon CloudFront Developer Guide. + */ + DefaultRootObject?: string; + /** + * A complex type that contains information about origins for this distribution. + */ + Origins: Origins; + /** + * A complex type that contains information about origin groups for this distribution. + */ + OriginGroups?: OriginGroups; + /** + * A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior. + */ + DefaultCacheBehavior: DefaultCacheBehavior; + /** + * A complex type that contains zero or more CacheBehavior elements. + */ + CacheBehaviors?: CacheBehaviors; + /** + * A complex type that controls the following: Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. How long CloudFront caches HTTP status codes in the 4xx and 5xx range. For more information about custom error pages, see Customizing Error Responses in the Amazon CloudFront Developer Guide. + */ + CustomErrorResponses?: CustomErrorResponses; + /** + * An optional comment to describe the distribution. The comment cannot be longer than 128 characters. + */ + Comment: CommentType; + /** + * A complex type that controls whether access logs are written for the distribution. For more information about logging, see Access Logs in the Amazon CloudFront Developer Guide. + */ + Logging?: LoggingConfig; + /** + * The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify PriceClass_All, CloudFront responds to requests for your objects from all CloudFront edge locations. If you specify a price class other than PriceClass_All, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance. For more information about price classes, see Choosing the Price Class for a CloudFront Distribution in the Amazon CloudFront Developer Guide. For information about CloudFront pricing, including how price classes (such as Price Class 100) map to CloudFront regions, see Amazon CloudFront Pricing. + */ + PriceClass?: PriceClass; + /** + * From this field, you can enable or disable the selected distribution. + */ + Enabled: boolean; + /** + * A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers. + */ + ViewerCertificate?: ViewerCertificate; + /** + * A complex type that identifies ways in which you want to restrict distribution of your content. + */ + Restrictions?: Restrictions; + /** + * A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example 473e64fd-f30b-4765-81a0-62ad96dd167a. AWS WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about AWS WAF, see the AWS WAF Developer Guide. + */ + WebACLId?: string; + /** + * (Optional) Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 automatically use an earlier HTTP version. For viewers and CloudFront to use HTTP/2, viewers must support TLS 1.2 or later, and must support Server Name Identification (SNI). In general, configuring CloudFront to communicate with viewers using HTTP/2 reduces latency. You can improve performance by optimizing for HTTP/2. For more information, do an Internet search for "http/2 optimization." + */ + HttpVersion?: HttpVersion; + /** + * If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify true. If you specify false, CloudFront responds to IPv6 DNS requests with the DNS response code NOERROR and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the IpAddress parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see Creating a Signed URL Using a Custom Policy in the Amazon CloudFront Developer Guide. If you're using an Amazon Route 53 alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: You enable IPv6 for the distribution You're using alternate domain names in the URLs for your objects For more information, see Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name in the Amazon Route 53 Developer Guide. If you created a CNAME resource record set, either with Amazon Route 53 or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. + */ + IsIPV6Enabled?: boolean; + } + export interface DistributionConfigWithTags { + /** + * A distribution configuration. + */ + DistributionConfig: DistributionConfig; + /** + * A complex type that contains zero or more Tag elements. + */ + Tags: Tags; + } + export interface DistributionIdList { + /** + * The value provided in the Marker request field. + */ + Marker: string; + /** + * Contains the value that you should use in the Marker field of a subsequent request to continue listing distribution IDs where you left off. + */ + NextMarker?: string; + /** + * The maximum number of distribution IDs requested. + */ + MaxItems: integer; + /** + * A flag that indicates whether more distribution IDs remain to be listed. If your results were truncated, you can make a subsequent request using the Marker request field to retrieve more distribution IDs in the list. + */ + IsTruncated: boolean; + /** + * The total number of distribution IDs returned in the response. + */ + Quantity: integer; + /** + * Contains the distribution IDs in the list. + */ + Items?: DistributionIdListSummary; + } + export type DistributionIdListSummary = string[]; + export interface DistributionList { + /** + * The value you provided for the Marker request parameter. + */ + Marker: string; + /** + * If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your distributions where they left off. + */ + NextMarker?: string; + /** + * The value you provided for the MaxItems request parameter. + */ + MaxItems: integer; + /** + * A flag that indicates whether more distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list. + */ + IsTruncated: boolean; + /** + * The number of distributions that were created by the current AWS account. + */ + Quantity: integer; + /** + * A complex type that contains one DistributionSummary element for each distribution that was created by the current AWS account. + */ + Items?: DistributionSummaryList; + } + export interface DistributionSummary { + /** + * The identifier for the distribution. For example: EDFDVBD632BHDS5. + */ + Id: string; + /** + * The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID. + */ + ARN: string; + /** + * The current status of the distribution. When the status is Deployed, the distribution's information is propagated to all CloudFront edge locations. + */ + Status: string; + /** + * The date and time the distribution was last modified. + */ + LastModifiedTime: timestamp; + /** + * The domain name that corresponds to the distribution, for example, d111111abcdef8.cloudfront.net. + */ + DomainName: string; + /** + * A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution. + */ + Aliases: Aliases; + /** + * A complex type that contains information about origins for this distribution. + */ + Origins: Origins; + /** + * A complex type that contains information about origin groups for this distribution. + */ + OriginGroups?: OriginGroups; + /** + * A complex type that describes the default cache behavior if you don't specify a CacheBehavior element or if files don't match any of the values of PathPattern in CacheBehavior elements. You must create exactly one default cache behavior. + */ + DefaultCacheBehavior: DefaultCacheBehavior; + /** + * A complex type that contains zero or more CacheBehavior elements. + */ + CacheBehaviors: CacheBehaviors; + /** + * A complex type that contains zero or more CustomErrorResponses elements. + */ + CustomErrorResponses: CustomErrorResponses; + /** + * The comment originally specified when this distribution was created. + */ + Comment: string; + /** + * A complex type that contains information about price class for this streaming distribution. + */ + PriceClass: PriceClass; + /** + * Whether the distribution is enabled to accept user requests for content. + */ + Enabled: boolean; + /** + * A complex type that determines the distribution’s SSL/TLS configuration for communicating with viewers. + */ + ViewerCertificate: ViewerCertificate; + /** + * A complex type that identifies ways in which you want to restrict distribution of your content. + */ + Restrictions: Restrictions; + /** + * The Web ACL Id (if any) associated with the distribution. + */ + WebACLId: string; + /** + * Specify the maximum HTTP version that you want viewers to use to communicate with CloudFront. The default value for new web distributions is http2. Viewers that don't support HTTP/2 will automatically use an earlier version. + */ + HttpVersion: HttpVersion; + /** + * Whether CloudFront responds to IPv6 DNS requests with an IPv6 address for your distribution. + */ + IsIPV6Enabled: boolean; + /** + * AWS services in China customers must file for an Internet Content Provider (ICP) recordal if they want to serve content publicly on an alternate domain name, also known as a CNAME, that they've added to CloudFront. AliasICPRecordal provides the ICP recordal status for CNAMEs associated with distributions. For more information about ICP recordals, see Signup, Accounts, and Credentials in Getting Started with AWS services in China. + */ + AliasICPRecordals?: AliasICPRecordals; + } + export type DistributionSummaryList = DistributionSummary[]; + export interface EncryptionEntities { + /** + * Number of field pattern items in a field-level encryption content type-profile mapping. + */ + Quantity: integer; + /** + * An array of field patterns in a field-level encryption content type-profile mapping. + */ + Items?: EncryptionEntityList; + } + export interface EncryptionEntity { + /** + * The public key associated with a set of field-level encryption patterns, to be used when encrypting the fields that match the patterns. + */ + PublicKeyId: string; + /** + * The provider associated with the public key being used for encryption. This value must also be provided with the private key for applications to be able to decrypt data. + */ + ProviderId: string; + /** + * Field patterns in a field-level encryption content type profile specify the fields that you want to be encrypted. You can provide the full field name, or any beginning characters followed by a wildcard (*). You can't overlap field patterns. For example, you can't have both ABC* and AB*. Note that field patterns are case-sensitive. + */ + FieldPatterns: FieldPatterns; + } + export type EncryptionEntityList = EncryptionEntity[]; + export interface EndPoint { + /** + * The type of data stream where you are sending real-time log data. The only valid value is Kinesis. + */ + StreamType: string; + /** + * Contains information about the Amazon Kinesis data stream where you are sending real-time log data. + */ + KinesisStreamConfig?: KinesisStreamConfig; + } + export type EndPointList = EndPoint[]; + export type EventType = "viewer-request"|"viewer-response"|"origin-request"|"origin-response"|string; + export interface FieldLevelEncryption { + /** + * The configuration ID for a field-level encryption configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys. + */ + Id: string; + /** + * The last time the field-level encryption configuration was changed. + */ + LastModifiedTime: timestamp; + /** + * A complex data type that includes the profile configurations specified for field-level encryption. + */ + FieldLevelEncryptionConfig: FieldLevelEncryptionConfig; + } + export interface FieldLevelEncryptionConfig { + /** + * A unique number that ensures the request can't be replayed. + */ + CallerReference: string; + /** + * An optional comment about the configuration. The comment cannot be longer than 128 characters. + */ + Comment?: string; + /** + * A complex data type that specifies when to forward content if a profile isn't found and the profile that can be provided as a query argument in a request. + */ + QueryArgProfileConfig?: QueryArgProfileConfig; + /** + * A complex data type that specifies when to forward content if a content type isn't recognized and profiles to use as by default in a request if a query argument doesn't specify a profile to use. + */ + ContentTypeProfileConfig?: ContentTypeProfileConfig; + } + export interface FieldLevelEncryptionList { + /** + * If there are more elements to be listed, this element is present and contains the value that you can use for the Marker request parameter to continue listing your configurations where you left off. + */ + NextMarker?: string; + /** + * The maximum number of elements you want in the response body. + */ + MaxItems: integer; + /** + * The number of field-level encryption items. + */ + Quantity: integer; + /** + * An array of field-level encryption items. + */ + Items?: FieldLevelEncryptionSummaryList; + } + export interface FieldLevelEncryptionProfile { + /** + * The ID for a field-level encryption profile configuration which includes a set of profiles that specify certain selected data fields to be encrypted by specific public keys. + */ + Id: string; + /** + * The last time the field-level encryption profile was updated. + */ + LastModifiedTime: timestamp; + /** + * A complex data type that includes the profile name and the encryption entities for the field-level encryption profile. + */ + FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig; + } + export interface FieldLevelEncryptionProfileConfig { + /** + * Profile name for the field-level encryption profile. + */ + Name: string; + /** + * A unique number that ensures that the request can't be replayed. + */ + CallerReference: string; + /** + * An optional comment for the field-level encryption profile. The comment cannot be longer than 128 characters. + */ + Comment?: string; + /** + * A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key. + */ + EncryptionEntities: EncryptionEntities; + } + export interface FieldLevelEncryptionProfileList { + /** + * If there are more elements to be listed, this element is present and contains the value that you can use for the Marker request parameter to continue listing your profiles where you left off. + */ + NextMarker?: string; + /** + * The maximum number of field-level encryption profiles you want in the response body. + */ + MaxItems: integer; + /** + * The number of field-level encryption profiles. + */ + Quantity: integer; + /** + * The field-level encryption profile items. + */ + Items?: FieldLevelEncryptionProfileSummaryList; + } + export interface FieldLevelEncryptionProfileSummary { + /** + * ID for the field-level encryption profile summary. + */ + Id: string; + /** + * The time when the the field-level encryption profile summary was last updated. + */ + LastModifiedTime: timestamp; + /** + * Name for the field-level encryption profile summary. + */ + Name: string; + /** + * A complex data type of encryption entities for the field-level encryption profile that include the public key ID, provider, and field patterns for specifying which fields to encrypt with this key. + */ + EncryptionEntities: EncryptionEntities; + /** + * An optional comment for the field-level encryption profile summary. The comment cannot be longer than 128 characters. + */ + Comment?: string; + } + export type FieldLevelEncryptionProfileSummaryList = FieldLevelEncryptionProfileSummary[]; + export interface FieldLevelEncryptionSummary { + /** + * The unique ID of a field-level encryption item. + */ + Id: string; + /** + * The last time that the summary of field-level encryption items was modified. + */ + LastModifiedTime: timestamp; + /** + * An optional comment about the field-level encryption item. The comment cannot be longer than 128 characters. + */ + Comment?: string; + /** + * A summary of a query argument-profile mapping. + */ + QueryArgProfileConfig?: QueryArgProfileConfig; + /** + * A summary of a content type-profile mapping. + */ + ContentTypeProfileConfig?: ContentTypeProfileConfig; + } + export type FieldLevelEncryptionSummaryList = FieldLevelEncryptionSummary[]; + export type FieldList = string[]; + export type FieldPatternList = string[]; + export interface FieldPatterns { + /** + * The number of field-level encryption field patterns. + */ + Quantity: integer; + /** + * An array of the field-level encryption field patterns. + */ + Items?: FieldPatternList; + } + export type Format = "URLEncoded"|string; + export interface ForwardedValues { + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide. Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of QueryString and on the values that you specify for QueryStringCacheKeys, if any: If you specify true for QueryString and you don't specify any values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. If you specify true for QueryString and you specify one or more values for QueryStringCacheKeys, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. If you specify false for QueryString, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. For more information, see Configuring CloudFront to Cache Based on Query String Parameters in the Amazon CloudFront Developer Guide. + */ + QueryString: boolean; + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide. A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see How CloudFront Forwards, Caches, and Logs Cookies in the Amazon CloudFront Developer Guide. + */ + Cookies: CookiePreference; + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include headers in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide. If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide. A complex type that specifies the Headers, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. For more information, see Caching Content Based on Request Headers in the Amazon CloudFront Developer Guide. + */ + Headers?: Headers; + /** + * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see Creating cache policies in the Amazon CloudFront Developer Guide. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see Creating origin request policies in the Amazon CloudFront Developer Guide. A complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior. + */ + QueryStringCacheKeys?: QueryStringCacheKeys; + } + export type FunctionARN = string; + export interface FunctionAssociation { + /** + * The Amazon Resource Name (ARN) of the function. + */ + FunctionARN: FunctionARN; + /** + * The event type of the function, either viewer-request or viewer-response. You cannot use origin-facing event types (origin-request and origin-response) with a CloudFront function. + */ + EventType: EventType; + } + export type FunctionAssociationList = FunctionAssociation[]; + export interface FunctionAssociations { + /** + * The number of CloudFront functions in the list. + */ + Quantity: integer; + /** + * The CloudFront functions that are associated with a cache behavior in a CloudFront distribution. CloudFront functions must be published to the LIVE stage to associate them with a cache behavior. + */ + Items?: FunctionAssociationList; + } + export type FunctionBlob = Buffer|Uint8Array|Blob|string; + export interface FunctionConfig { + /** + * A comment to describe the function. + */ + Comment: string; + /** + * The function’s runtime environment. The only valid value is cloudfront-js-1.0. + */ + Runtime: FunctionRuntime; + } + export type FunctionEventObject = Buffer|Uint8Array|Blob|string; + export type FunctionExecutionLogList = string[]; + export interface FunctionList { + /** + * If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing functions where you left off. + */ + NextMarker?: string; + /** + * The maximum number of functions requested. + */ + MaxItems: integer; + /** + * The number of functions returned in the response. + */ + Quantity: integer; + /** + * Contains the functions in the list. + */ + Items?: FunctionSummaryList; + } + export interface FunctionMetadata { + /** + * The Amazon Resource Name (ARN) of the function. The ARN uniquely identifies the function. + */ + FunctionARN: string; + /** + * The stage that the function is in, either DEVELOPMENT or LIVE. When a function is in the DEVELOPMENT stage, you can test the function with TestFunction, and update it with UpdateFunction. When a function is in the LIVE stage, you can attach the function to a distribution’s cache behavior, using the function’s ARN. + */ + Stage?: FunctionStage; + /** + * The date and time when the function was created. + */ + CreatedTime?: timestamp; + /** + * The date and time when the function was most recently updated. + */ + LastModifiedTime: timestamp; + } + export type FunctionName = string; + export type FunctionRuntime = "cloudfront-js-1.0"|string; + export type FunctionStage = "DEVELOPMENT"|"LIVE"|string; + export interface FunctionSummary { + /** + * The name of the CloudFront function. + */ + Name: FunctionName; + /** + * The status of the CloudFront function. + */ + Status?: string; + /** + * Contains configuration information about a CloudFront function. + */ + FunctionConfig: FunctionConfig; + /** + * Contains metadata about a CloudFront function. + */ + FunctionMetadata: FunctionMetadata; + } + export type FunctionSummaryList = FunctionSummary[]; + export interface GeoRestriction { + /** + * The method that you want to use to restrict distribution of your content by country: none: No geo restriction is enabled, meaning access to content is not restricted by client geo location. blacklist: The Location elements specify the countries in which you don't want CloudFront to distribute your content. whitelist: The Location elements specify the countries in which you want CloudFront to distribute your content. + */ + RestrictionType: GeoRestrictionType; + /** + * When geo restriction is enabled, this is the number of countries in your whitelist or blacklist. Otherwise, when it is not enabled, Quantity is 0, and you can omit Items. + */ + Quantity: integer; + /** + * A complex type that contains a Location element for each country in which you want CloudFront either to distribute your content (whitelist) or not distribute your content (blacklist). The Location element is a two-letter, uppercase country code for a country that you want to include in your blacklist or whitelist. Include one Location element for each country. CloudFront and MaxMind both use ISO 3166 country codes. For the current list of countries and the corresponding codes, see ISO 3166-1-alpha-2 code on the International Organization for Standardization website. You can also refer to the country list on the CloudFront console, which includes both country names and codes. + */ + Items?: LocationList; + } + export type GeoRestrictionType = "blacklist"|"whitelist"|"none"|string; + export interface GetCachePolicyConfigRequest { + /** + * The unique identifier for the cache policy. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies. + */ + Id: string; + } + export interface GetCachePolicyConfigResult { + /** + * The cache policy configuration. + */ + CachePolicyConfig?: CachePolicyConfig; + /** + * The current version of the cache policy. + */ + ETag?: string; + } + export interface GetCachePolicyRequest { + /** + * The unique identifier for the cache policy. If the cache policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the cache policy is not attached to a cache behavior, you can get the identifier using ListCachePolicies. + */ + Id: string; + } + export interface GetCachePolicyResult { + /** + * The cache policy. + */ + CachePolicy?: CachePolicy; + /** + * The current version of the cache policy. + */ + ETag?: string; + } + export interface GetCloudFrontOriginAccessIdentityConfigRequest { + /** + * The identity's ID. + */ + Id: string; + } + export interface GetCloudFrontOriginAccessIdentityConfigResult { + /** + * The origin access identity's configuration information. + */ + CloudFrontOriginAccessIdentityConfig?: CloudFrontOriginAccessIdentityConfig; + /** + * The current version of the configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetCloudFrontOriginAccessIdentityRequest { + /** + * The identity's ID. + */ + Id: string; + } + export interface GetCloudFrontOriginAccessIdentityResult { + /** + * The origin access identity's information. + */ + CloudFrontOriginAccessIdentity?: CloudFrontOriginAccessIdentity; + /** + * The current version of the origin access identity's information. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetDistributionConfigRequest { + /** + * The distribution's ID. If the ID is empty, an empty distribution configuration is returned. + */ + Id: string; + } + export interface GetDistributionConfigResult { + /** + * The distribution's configuration information. + */ + DistributionConfig?: DistributionConfig; + /** + * The current version of the configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetDistributionRequest { + /** + * The distribution's ID. If the ID is empty, an empty distribution configuration is returned. + */ + Id: string; + } + export interface GetDistributionResult { + /** + * The distribution's information. + */ + Distribution?: Distribution; + /** + * The current version of the distribution's information. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetFieldLevelEncryptionConfigRequest { + /** + * Request the ID for the field-level encryption configuration information. + */ + Id: string; + } + export interface GetFieldLevelEncryptionConfigResult { + /** + * Return the field-level encryption configuration information. + */ + FieldLevelEncryptionConfig?: FieldLevelEncryptionConfig; + /** + * The current version of the field level encryption configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetFieldLevelEncryptionProfileConfigRequest { + /** + * Get the ID for the field-level encryption profile configuration information. + */ + Id: string; + } + export interface GetFieldLevelEncryptionProfileConfigResult { + /** + * Return the field-level encryption profile configuration information. + */ + FieldLevelEncryptionProfileConfig?: FieldLevelEncryptionProfileConfig; + /** + * The current version of the field-level encryption profile configuration result. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetFieldLevelEncryptionProfileRequest { + /** + * Get the ID for the field-level encryption profile information. + */ + Id: string; + } + export interface GetFieldLevelEncryptionProfileResult { + /** + * Return the field-level encryption profile information. + */ + FieldLevelEncryptionProfile?: FieldLevelEncryptionProfile; + /** + * The current version of the field level encryption profile. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetFieldLevelEncryptionRequest { + /** + * Request the ID for the field-level encryption configuration information. + */ + Id: string; + } + export interface GetFieldLevelEncryptionResult { + /** + * Return the field-level encryption configuration information. + */ + FieldLevelEncryption?: FieldLevelEncryption; + /** + * The current version of the field level encryption configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetFunctionRequest { + /** + * The name of the function whose code you are getting. + */ + Name: string; + /** + * The function’s stage, either DEVELOPMENT or LIVE. + */ + Stage?: FunctionStage; + } + export interface GetFunctionResult { + /** + * The function code of a CloudFront function. + */ + FunctionCode?: FunctionBlob; + /** + * The version identifier for the current version of the CloudFront function. + */ + ETag?: string; + /** + * The content type (media type) of the response. + */ + ContentType?: string; + } + export interface GetInvalidationRequest { + /** + * The distribution's ID. + */ + DistributionId: string; + /** + * The identifier for the invalidation request, for example, IDFDVBD632BHDS5. + */ + Id: string; + } + export interface GetInvalidationResult { + /** + * The invalidation's information. For more information, see Invalidation Complex Type. + */ + Invalidation?: Invalidation; + } + export interface GetKeyGroupConfigRequest { + /** + * The identifier of the key group whose configuration you are getting. To get the identifier, use ListKeyGroups. + */ + Id: string; + } + export interface GetKeyGroupConfigResult { + /** + * The key group configuration. + */ + KeyGroupConfig?: KeyGroupConfig; + /** + * The identifier for this version of the key group. + */ + ETag?: string; + } + export interface GetKeyGroupRequest { + /** + * The identifier of the key group that you are getting. To get the identifier, use ListKeyGroups. + */ + Id: string; + } + export interface GetKeyGroupResult { + /** + * The key group. + */ + KeyGroup?: KeyGroup; + /** + * The identifier for this version of the key group. + */ + ETag?: string; + } + export interface GetMonitoringSubscriptionRequest { + /** + * The ID of the distribution that you are getting metrics information for. + */ + DistributionId: string; + } + export interface GetMonitoringSubscriptionResult { + /** + * A monitoring subscription. This structure contains information about whether additional CloudWatch metrics are enabled for a given CloudFront distribution. + */ + MonitoringSubscription?: MonitoringSubscription; + } + export interface GetOriginRequestPolicyConfigRequest { + /** + * The unique identifier for the origin request policy. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies. + */ + Id: string; + } + export interface GetOriginRequestPolicyConfigResult { + /** + * The origin request policy configuration. + */ + OriginRequestPolicyConfig?: OriginRequestPolicyConfig; + /** + * The current version of the origin request policy. + */ + ETag?: string; + } + export interface GetOriginRequestPolicyRequest { + /** + * The unique identifier for the origin request policy. If the origin request policy is attached to a distribution’s cache behavior, you can get the policy’s identifier using ListDistributions or GetDistribution. If the origin request policy is not attached to a cache behavior, you can get the identifier using ListOriginRequestPolicies. + */ + Id: string; + } + export interface GetOriginRequestPolicyResult { + /** + * The origin request policy. + */ + OriginRequestPolicy?: OriginRequestPolicy; + /** + * The current version of the origin request policy. + */ + ETag?: string; + } + export interface GetPublicKeyConfigRequest { + /** + * The identifier of the public key whose configuration you are getting. + */ + Id: string; + } + export interface GetPublicKeyConfigResult { + /** + * A public key configuration. + */ + PublicKeyConfig?: PublicKeyConfig; + /** + * The identifier for this version of the public key configuration. + */ + ETag?: string; + } + export interface GetPublicKeyRequest { + /** + * The identifier of the public key you are getting. + */ + Id: string; + } + export interface GetPublicKeyResult { + /** + * The public key. + */ + PublicKey?: PublicKey; + /** + * The identifier for this version of the public key. + */ + ETag?: string; + } + export interface GetRealtimeLogConfigRequest { + /** + * The name of the real-time log configuration to get. + */ + Name?: string; + /** + * The Amazon Resource Name (ARN) of the real-time log configuration to get. + */ + ARN?: string; + } + export interface GetRealtimeLogConfigResult { + /** + * A real-time log configuration. + */ + RealtimeLogConfig?: RealtimeLogConfig; + } + export interface GetStreamingDistributionConfigRequest { + /** + * The streaming distribution's ID. + */ + Id: string; + } + export interface GetStreamingDistributionConfigResult { + /** + * The streaming distribution's configuration information. + */ + StreamingDistributionConfig?: StreamingDistributionConfig; + /** + * The current version of the configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface GetStreamingDistributionRequest { + /** + * The streaming distribution's ID. + */ + Id: string; + } + export interface GetStreamingDistributionResult { + /** + * The streaming distribution's information. + */ + StreamingDistribution?: StreamingDistribution; + /** + * The current version of the streaming distribution's information. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export type HeaderList = string[]; + export interface Headers { + /** + * The number of header names in the Items list. + */ + Quantity: integer; + /** + * A list of HTTP header names. + */ + Items?: HeaderList; + } + export type HttpVersion = "http1.1"|"http2"|string; + export type ICPRecordalStatus = "APPROVED"|"SUSPENDED"|"PENDING"|string; + export interface Invalidation { + /** + * The identifier for the invalidation request. For example: IDFDVBD632BHDS5. + */ + Id: string; + /** + * The status of the invalidation request. When the invalidation batch is finished, the status is Completed. + */ + Status: string; + /** + * The date and time the invalidation request was first made. + */ + CreateTime: timestamp; + /** + * The current invalidation information for the batch request. + */ + InvalidationBatch: InvalidationBatch; + } + export interface InvalidationBatch { + /** + * A complex type that contains information about the objects that you want to invalidate. For more information, see Specifying the Objects to Invalidate in the Amazon CloudFront Developer Guide. + */ + Paths: Paths; + /** + * A value that you specify to uniquely identify an invalidation request. CloudFront uses the value to prevent you from accidentally resubmitting an identical request. Whenever you create a new invalidation request, you must specify a new value for CallerReference and change other values in the request as applicable. One way to ensure that the value of CallerReference is unique is to use a timestamp, for example, 20120301090000. If you make a second invalidation request with the same value for CallerReference, and if the rest of the request is the same, CloudFront doesn't create a new invalidation request. Instead, CloudFront returns information about the invalidation request that you previously created with the same CallerReference. If CallerReference is a value you already sent in a previous invalidation batch request but the content of any Path is different from the original request, CloudFront returns an InvalidationBatchAlreadyExists error. + */ + CallerReference: string; + } + export interface InvalidationList { + /** + * The value that you provided for the Marker request parameter. + */ + Marker: string; + /** + * If IsTruncated is true, this element is present and contains the value that you can use for the Marker request parameter to continue listing your invalidation batches where they left off. + */ + NextMarker?: string; + /** + * The value that you provided for the MaxItems request parameter. + */ + MaxItems: integer; + /** + * A flag that indicates whether more invalidation batch requests remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more invalidation batches in the list. + */ + IsTruncated: boolean; + /** + * The number of invalidation batches that were created by the current AWS account. + */ + Quantity: integer; + /** + * A complex type that contains one InvalidationSummary element for each invalidation batch created by the current AWS account. + */ + Items?: InvalidationSummaryList; + } + export interface InvalidationSummary { + /** + * The unique ID for an invalidation request. + */ + Id: string; + /** + * The time that an invalidation request was created. + */ + CreateTime: timestamp; + /** + * The status of an invalidation request. + */ + Status: string; + } + export type InvalidationSummaryList = InvalidationSummary[]; + export type ItemSelection = "none"|"whitelist"|"all"|string; + export interface KGKeyPairIds { + /** + * The identifier of the key group that contains the public keys. + */ + KeyGroupId?: string; + KeyPairIds?: KeyPairIds; + } + export type KGKeyPairIdsList = KGKeyPairIds[]; + export interface KeyGroup { + /** + * The identifier for the key group. + */ + Id: string; + /** + * The date and time when the key group was last modified. + */ + LastModifiedTime: timestamp; + /** + * The key group configuration. + */ + KeyGroupConfig: KeyGroupConfig; + } + export interface KeyGroupConfig { + /** + * A name to identify the key group. + */ + Name: string; + /** + * A list of the identifiers of the public keys in the key group. + */ + Items: PublicKeyIdList; + /** + * A comment to describe the key group. The comment cannot be longer than 128 characters. + */ + Comment?: string; + } + export interface KeyGroupList { + /** + * If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing key groups. + */ + NextMarker?: string; + /** + * The maximum number of key groups requested. + */ + MaxItems: integer; + /** + * The number of key groups returned in the response. + */ + Quantity: integer; + /** + * A list of key groups. + */ + Items?: KeyGroupSummaryList; + } + export interface KeyGroupSummary { + /** + * A key group. + */ + KeyGroup: KeyGroup; + } + export type KeyGroupSummaryList = KeyGroupSummary[]; + export type KeyPairIdList = string[]; + export interface KeyPairIds { + /** + * The number of key pair identifiers in the list. + */ + Quantity: integer; + /** + * A list of CloudFront key pair identifiers. + */ + Items?: KeyPairIdList; + } + export interface KinesisStreamConfig { + /** + * The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that CloudFront can use to send real-time log data to your Kinesis data stream. For more information the IAM role, see Real-time log configuration IAM role in the Amazon CloudFront Developer Guide. + */ + RoleARN: string; + /** + * The Amazon Resource Name (ARN) of the Kinesis data stream where you are sending real-time log data. + */ + StreamARN: string; + } + export type LambdaFunctionARN = string; + export interface LambdaFunctionAssociation { + /** + * The ARN of the Lambda function. You must specify the ARN of a function version; you can't specify a Lambda alias or $LATEST. + */ + LambdaFunctionARN: LambdaFunctionARN; + /** + * Specifies the event type that triggers a Lambda function invocation. You can specify the following values: viewer-request: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache. origin-request: The function executes only when CloudFront sends a request to your origin. When the requested object is in the edge cache, the function doesn't execute. origin-response: The function executes after CloudFront receives a response from the origin and before it caches the object in the response. When the requested object is in the edge cache, the function doesn't execute. viewer-response: The function executes before CloudFront returns the requested object to the viewer. The function executes regardless of whether the object was already in the edge cache. If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute. + */ + EventType: EventType; + /** + * A flag that allows a Lambda function to have read access to the body content. For more information, see Accessing the Request Body by Choosing the Include Body Option in the Amazon CloudFront Developer Guide. + */ + IncludeBody?: boolean; + } + export type LambdaFunctionAssociationList = LambdaFunctionAssociation[]; + export interface LambdaFunctionAssociations { + /** + * The number of Lambda function associations for this cache behavior. + */ + Quantity: integer; + /** + * Optional: A complex type that contains LambdaFunctionAssociation items for this cache behavior. If Quantity is 0, you can omit Items. + */ + Items?: LambdaFunctionAssociationList; + } + export interface ListCachePoliciesRequest { + /** + * A filter to return only the specified kinds of cache policies. Valid values are: managed – Returns only the managed policies created by AWS. custom – Returns only the custom policies created in your AWS account. + */ + Type?: CachePolicyType; + /** + * Use this field when paginating results to indicate where to begin in your list of cache policies. The response includes cache policies in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of cache policies that you want in the response. + */ + MaxItems?: string; + } + export interface ListCachePoliciesResult { + /** + * A list of cache policies. + */ + CachePolicyList?: CachePolicyList; + } + export interface ListCloudFrontOriginAccessIdentitiesRequest { + /** + * Use this when paginating results to indicate where to begin in your list of origin access identities. The results include identities in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last identity on that page). + */ + Marker?: string; + /** + * The maximum number of origin access identities you want in the response body. + */ + MaxItems?: string; + } + export interface ListCloudFrontOriginAccessIdentitiesResult { + /** + * The CloudFrontOriginAccessIdentityList type. + */ + CloudFrontOriginAccessIdentityList?: CloudFrontOriginAccessIdentityList; + } + export interface ListDistributionsByCachePolicyIdRequest { + /** + * Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of distribution IDs that you want in the response. + */ + MaxItems?: string; + /** + * The ID of the cache policy whose associated distribution IDs you want to list. + */ + CachePolicyId: string; + } + export interface ListDistributionsByCachePolicyIdResult { + /** + * A list of distribution IDs. + */ + DistributionIdList?: DistributionIdList; + } + export interface ListDistributionsByKeyGroupRequest { + /** + * Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of distribution IDs that you want in the response. + */ + MaxItems?: string; + /** + * The ID of the key group whose associated distribution IDs you are listing. + */ + KeyGroupId: string; + } + export interface ListDistributionsByKeyGroupResult { + DistributionIdList?: DistributionIdList; + } + export interface ListDistributionsByOriginRequestPolicyIdRequest { + /** + * Use this field when paginating results to indicate where to begin in your list of distribution IDs. The response includes distribution IDs in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of distribution IDs that you want in the response. + */ + MaxItems?: string; + /** + * The ID of the origin request policy whose associated distribution IDs you want to list. + */ + OriginRequestPolicyId: string; + } + export interface ListDistributionsByOriginRequestPolicyIdResult { + /** + * A list of distribution IDs. + */ + DistributionIdList?: DistributionIdList; + } + export interface ListDistributionsByRealtimeLogConfigRequest { + /** + * Use this field when paginating results to indicate where to begin in your list of distributions. The response includes distributions in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of distributions that you want in the response. + */ + MaxItems?: string; + /** + * The name of the real-time log configuration whose associated distributions you want to list. + */ + RealtimeLogConfigName?: string; + /** + * The Amazon Resource Name (ARN) of the real-time log configuration whose associated distributions you want to list. + */ + RealtimeLogConfigArn?: string; + } + export interface ListDistributionsByRealtimeLogConfigResult { + DistributionList?: DistributionList; + } + export interface ListDistributionsByWebACLIdRequest { + /** + * Use Marker and MaxItems to control pagination of results. If you have more than MaxItems distributions that satisfy the request, the response includes a NextMarker element. To get the next page of results, submit another request. For the value of Marker, specify the value of NextMarker from the last response. (For the first request, omit Marker.) + */ + Marker?: string; + /** + * The maximum number of distributions that you want CloudFront to return in the response body. The maximum and default values are both 100. + */ + MaxItems?: string; + /** + * The ID of the AWS WAF web ACL that you want to list the associated distributions. If you specify "null" for the ID, the request returns a list of the distributions that aren't associated with a web ACL. + */ + WebACLId: string; + } + export interface ListDistributionsByWebACLIdResult { + /** + * The DistributionList type. + */ + DistributionList?: DistributionList; + } + export interface ListDistributionsRequest { + /** + * Use this when paginating results to indicate where to begin in your list of distributions. The results include distributions in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last distribution on that page). + */ + Marker?: string; + /** + * The maximum number of distributions you want in the response body. + */ + MaxItems?: string; + } + export interface ListDistributionsResult { + /** + * The DistributionList type. + */ + DistributionList?: DistributionList; + } + export interface ListFieldLevelEncryptionConfigsRequest { + /** + * Use this when paginating results to indicate where to begin in your list of configurations. The results include configurations in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last configuration on that page). + */ + Marker?: string; + /** + * The maximum number of field-level encryption configurations you want in the response body. + */ + MaxItems?: string; + } + export interface ListFieldLevelEncryptionConfigsResult { + /** + * Returns a list of all field-level encryption configurations that have been created in CloudFront for this account. + */ + FieldLevelEncryptionList?: FieldLevelEncryptionList; + } + export interface ListFieldLevelEncryptionProfilesRequest { + /** + * Use this when paginating results to indicate where to begin in your list of profiles. The results include profiles in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last profile on that page). + */ + Marker?: string; + /** + * The maximum number of field-level encryption profiles you want in the response body. + */ + MaxItems?: string; + } + export interface ListFieldLevelEncryptionProfilesResult { + /** + * Returns a list of the field-level encryption profiles that have been created in CloudFront for this account. + */ + FieldLevelEncryptionProfileList?: FieldLevelEncryptionProfileList; + } + export interface ListFunctionsRequest { + /** + * Use this field when paginating results to indicate where to begin in your list of functions. The response includes functions in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of functions that you want in the response. + */ + MaxItems?: string; + /** + * An optional filter to return only the functions that are in the specified stage, either DEVELOPMENT or LIVE. + */ + Stage?: FunctionStage; + } + export interface ListFunctionsResult { + /** + * A list of CloudFront functions. + */ + FunctionList?: FunctionList; + } + export interface ListInvalidationsRequest { + /** + * The distribution's ID. + */ + DistributionId: string; + /** + * Use this parameter when paginating results to indicate where to begin in your list of invalidation batches. Because the results are returned in decreasing order from most recent to oldest, the most recent results are on the first page, the second page will contain earlier results, and so on. To get the next page of results, set Marker to the value of the NextMarker from the current page's response. This value is the same as the ID of the last invalidation batch on that page. + */ + Marker?: string; + /** + * The maximum number of invalidation batches that you want in the response body. + */ + MaxItems?: string; + } + export interface ListInvalidationsResult { + /** + * Information about invalidation batches. + */ + InvalidationList?: InvalidationList; + } + export interface ListKeyGroupsRequest { + /** + * Use this field when paginating results to indicate where to begin in your list of key groups. The response includes key groups in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of key groups that you want in the response. + */ + MaxItems?: string; + } + export interface ListKeyGroupsResult { + /** + * A list of key groups. + */ + KeyGroupList?: KeyGroupList; + } + export interface ListOriginRequestPoliciesRequest { + /** + * A filter to return only the specified kinds of origin request policies. Valid values are: managed – Returns only the managed policies created by AWS. custom – Returns only the custom policies created in your AWS account. + */ + Type?: OriginRequestPolicyType; + /** + * Use this field when paginating results to indicate where to begin in your list of origin request policies. The response includes origin request policies in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + /** + * The maximum number of origin request policies that you want in the response. + */ + MaxItems?: string; + } + export interface ListOriginRequestPoliciesResult { + /** + * A list of origin request policies. + */ + OriginRequestPolicyList?: OriginRequestPolicyList; + } + export interface ListPublicKeysRequest { + /** + * Use this when paginating results to indicate where to begin in your list of public keys. The results include public keys in the list that occur after the marker. To get the next page of results, set the Marker to the value of the NextMarker from the current page's response (which is also the ID of the last public key on that page). + */ + Marker?: string; + /** + * The maximum number of public keys you want in the response body. + */ + MaxItems?: string; + } + export interface ListPublicKeysResult { + /** + * Returns a list of all public keys that have been added to CloudFront for this account. + */ + PublicKeyList?: PublicKeyList; + } + export interface ListRealtimeLogConfigsRequest { + /** + * The maximum number of real-time log configurations that you want in the response. + */ + MaxItems?: string; + /** + * Use this field when paginating results to indicate where to begin in your list of real-time log configurations. The response includes real-time log configurations in the list that occur after the marker. To get the next page of the list, set this field’s value to the value of NextMarker from the current page’s response. + */ + Marker?: string; + } + export interface ListRealtimeLogConfigsResult { + /** + * A list of real-time log configurations. + */ + RealtimeLogConfigs?: RealtimeLogConfigs; + } + export interface ListStreamingDistributionsRequest { + /** + * The value that you provided for the Marker request parameter. + */ + Marker?: string; + /** + * The value that you provided for the MaxItems request parameter. + */ + MaxItems?: string; + } + export interface ListStreamingDistributionsResult { + /** + * The StreamingDistributionList type. + */ + StreamingDistributionList?: StreamingDistributionList; + } + export interface ListTagsForResourceRequest { + /** + * An ARN of a CloudFront resource. + */ + Resource: ResourceARN; + } + export interface ListTagsForResourceResult { + /** + * A complex type that contains zero or more Tag elements. + */ + Tags: Tags; + } + export type LocationList = string[]; + export interface LoggingConfig { + /** + * Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a distribution or if you want to disable logging for an existing distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket, prefix, and IncludeCookies, the values are automatically deleted. + */ + Enabled: boolean; + /** + * Specifies whether you want CloudFront to include cookies in access logs, specify true for IncludeCookies. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify false for IncludeCookies. + */ + IncludeCookies: boolean; + /** + * The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com. + */ + Bucket: string; + /** + * An optional string that you want CloudFront to prefix to the access log filenames for this distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element. + */ + Prefix: string; + } + export type Method = "GET"|"HEAD"|"POST"|"PUT"|"PATCH"|"OPTIONS"|"DELETE"|string; + export type MethodsList = Method[]; + export type MinimumProtocolVersion = "SSLv3"|"TLSv1"|"TLSv1_2016"|"TLSv1.1_2016"|"TLSv1.2_2018"|"TLSv1.2_2019"|string; + export interface MonitoringSubscription { + /** + * A subscription configuration for additional CloudWatch metrics. + */ + RealtimeMetricsSubscriptionConfig?: RealtimeMetricsSubscriptionConfig; + } + export interface Origin { + /** + * A unique identifier for the origin. This value must be unique within the distribution. Use this value to specify the TargetOriginId in a CacheBehavior or DefaultCacheBehavior. + */ + Id: string; + /** + * The domain name for the origin. For more information, see Origin Domain Name in the Amazon CloudFront Developer Guide. + */ + DomainName: string; + /** + * An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin. For more information, see Origin Path in the Amazon CloudFront Developer Guide. + */ + OriginPath?: string; + /** + * A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin. For more information, see Adding Custom Headers to Origin Requests in the Amazon CloudFront Developer Guide. + */ + CustomHeaders?: CustomHeaders; + /** + * Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the CustomOriginConfig type instead. + */ + S3OriginConfig?: S3OriginConfig; + /** + * Use this type to specify an origin that is not an Amazon S3 bucket, with one exception. If the Amazon S3 bucket is configured with static website hosting, use this type. If the Amazon S3 bucket is not configured with static website hosting, use the S3OriginConfig type instead. + */ + CustomOriginConfig?: CustomOriginConfig; + /** + * The number of times that CloudFront attempts to connect to the origin. The minimum number is 1, the maximum is 3, and the default (if you don’t specify otherwise) is 3. For a custom origin (including an Amazon S3 bucket that’s configured with static website hosting), this value also specifies the number of times that CloudFront attempts to get a response from the origin, in the case of an Origin Response Timeout. For more information, see Origin Connection Attempts in the Amazon CloudFront Developer Guide. + */ + ConnectionAttempts?: integer; + /** + * The number of seconds that CloudFront waits when trying to establish a connection to the origin. The minimum timeout is 1 second, the maximum is 10 seconds, and the default (if you don’t specify otherwise) is 10 seconds. For more information, see Origin Connection Timeout in the Amazon CloudFront Developer Guide. + */ + ConnectionTimeout?: integer; + /** + * CloudFront Origin Shield. Using Origin Shield can help reduce the load on your origin. For more information, see Using Origin Shield in the Amazon CloudFront Developer Guide. + */ + OriginShield?: OriginShield; + } + export interface OriginCustomHeader { + /** + * The name of a header that you want CloudFront to send to your origin. For more information, see Adding Custom Headers to Origin Requests in the Amazon CloudFront Developer Guide. + */ + HeaderName: string; + /** + * The value for the header that you specified in the HeaderName field. + */ + HeaderValue: string; + } + export type OriginCustomHeadersList = OriginCustomHeader[]; + export interface OriginGroup { + /** + * The origin group's ID. + */ + Id: string; + /** + * A complex type that contains information about the failover criteria for an origin group. + */ + FailoverCriteria: OriginGroupFailoverCriteria; + /** + * A complex type that contains information about the origins in an origin group. + */ + Members: OriginGroupMembers; + } + export interface OriginGroupFailoverCriteria { + /** + * The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin. + */ + StatusCodes: StatusCodes; + } + export type OriginGroupList = OriginGroup[]; + export interface OriginGroupMember { + /** + * The ID for an origin in an origin group. + */ + OriginId: string; + } + export type OriginGroupMemberList = OriginGroupMember[]; + export interface OriginGroupMembers { + /** + * The number of origins in an origin group. + */ + Quantity: integer; + /** + * Items (origins) in an origin group. + */ + Items: OriginGroupMemberList; + } + export interface OriginGroups { + /** + * The number of origin groups. + */ + Quantity: integer; + /** + * The items (origin groups) in a distribution. + */ + Items?: OriginGroupList; + } + export type OriginList = Origin[]; + export type OriginProtocolPolicy = "http-only"|"match-viewer"|"https-only"|string; + export interface OriginRequestPolicy { + /** + * The unique identifier for the origin request policy. + */ + Id: string; + /** + * The date and time when the origin request policy was last modified. + */ + LastModifiedTime: timestamp; + /** + * The origin request policy configuration. + */ + OriginRequestPolicyConfig: OriginRequestPolicyConfig; + } + export interface OriginRequestPolicyConfig { + /** + * A comment to describe the origin request policy. The comment cannot be longer than 128 characters. + */ + Comment?: string; + /** + * A unique name to identify the origin request policy. + */ + Name: string; + /** + * The HTTP headers to include in origin requests. These can include headers from viewer requests and additional headers added by CloudFront. + */ + HeadersConfig: OriginRequestPolicyHeadersConfig; + /** + * The cookies from viewer requests to include in origin requests. + */ + CookiesConfig: OriginRequestPolicyCookiesConfig; + /** + * The URL query strings from viewer requests to include in origin requests. + */ + QueryStringsConfig: OriginRequestPolicyQueryStringsConfig; + } + export type OriginRequestPolicyCookieBehavior = "none"|"whitelist"|"all"|string; + export interface OriginRequestPolicyCookiesConfig { + /** + * Determines whether cookies in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: none – Cookies in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to none, any cookies that are listed in a CachePolicy are included in origin requests. whitelist – The cookies in viewer requests that are listed in the CookieNames type are included in requests that CloudFront sends to the origin. all – All cookies in viewer requests are included in requests that CloudFront sends to the origin. + */ + CookieBehavior: OriginRequestPolicyCookieBehavior; + Cookies?: CookieNames; + } + export type OriginRequestPolicyHeaderBehavior = "none"|"whitelist"|"allViewer"|"allViewerAndWhitelistCloudFront"|string; + export interface OriginRequestPolicyHeadersConfig { + /** + * Determines whether any HTTP headers are included in requests that CloudFront sends to the origin. Valid values are: none – HTTP headers are not included in requests that CloudFront sends to the origin. Even when this field is set to none, any headers that are listed in a CachePolicy are included in origin requests. whitelist – The HTTP headers that are listed in the Headers type are included in requests that CloudFront sends to the origin. allViewer – All HTTP headers in viewer requests are included in requests that CloudFront sends to the origin. allViewerAndWhitelistCloudFront – All HTTP headers in viewer requests and the additional CloudFront headers that are listed in the Headers type are included in requests that CloudFront sends to the origin. The additional headers are added by CloudFront. + */ + HeaderBehavior: OriginRequestPolicyHeaderBehavior; + Headers?: Headers; + } + export interface OriginRequestPolicyList { + /** + * If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing origin request policies where you left off. + */ + NextMarker?: string; + /** + * The maximum number of origin request policies requested. + */ + MaxItems: integer; + /** + * The total number of origin request policies returned in the response. + */ + Quantity: integer; + /** + * Contains the origin request policies in the list. + */ + Items?: OriginRequestPolicySummaryList; + } + export type OriginRequestPolicyQueryStringBehavior = "none"|"whitelist"|"all"|string; + export interface OriginRequestPolicyQueryStringsConfig { + /** + * Determines whether any URL query strings in viewer requests are included in requests that CloudFront sends to the origin. Valid values are: none – Query strings in viewer requests are not included in requests that CloudFront sends to the origin. Even when this field is set to none, any query strings that are listed in a CachePolicy are included in origin requests. whitelist – The query strings in viewer requests that are listed in the QueryStringNames type are included in requests that CloudFront sends to the origin. all – All query strings in viewer requests are included in requests that CloudFront sends to the origin. + */ + QueryStringBehavior: OriginRequestPolicyQueryStringBehavior; + /** + * Contains a list of the query strings in viewer requests that are included in requests that CloudFront sends to the origin. + */ + QueryStrings?: QueryStringNames; + } + export interface OriginRequestPolicySummary { + /** + * The type of origin request policy, either managed (created by AWS) or custom (created in this AWS account). + */ + Type: OriginRequestPolicyType; + /** + * The origin request policy. + */ + OriginRequestPolicy: OriginRequestPolicy; + } + export type OriginRequestPolicySummaryList = OriginRequestPolicySummary[]; + export type OriginRequestPolicyType = "managed"|"custom"|string; + export interface OriginShield { + /** + * A flag that specifies whether Origin Shield is enabled. When it’s enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it’s disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches. + */ + Enabled: boolean; + /** + * The AWS Region for Origin Shield. Specify the AWS Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as us-east-2. When you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see Choosing the AWS Region for Origin Shield in the Amazon CloudFront Developer Guide. + */ + OriginShieldRegion?: OriginShieldRegion; + } + export type OriginShieldRegion = string; + export interface OriginSslProtocols { + /** + * The number of SSL/TLS protocols that you want to allow CloudFront to use when establishing an HTTPS connection with this origin. + */ + Quantity: integer; + /** + * A list that contains allowed SSL/TLS protocols for this distribution. + */ + Items: SslProtocolsList; + } + export interface Origins { + /** + * The number of origins for this distribution. + */ + Quantity: integer; + /** + * A list of origins. + */ + Items: OriginList; + } + export interface ParametersInCacheKeyAndForwardedToOrigin { + /** + * A flag that can affect whether the Accept-Encoding HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the EnableAcceptEncodingBrotli field. If one or both of these fields is true and the viewer request includes the Accept-Encoding header, then CloudFront does the following: Normalizes the value of the viewer’s Accept-Encoding header Includes the normalized header in the cache key Includes the normalized header in the request to the origin, if a request is necessary For more information, see Compression support in the Amazon CloudFront Developer Guide. If you set this value to true, and this cache behavior also has an origin request policy attached, do not include the Accept-Encoding header in the origin request policy. CloudFront always includes the Accept-Encoding header in origin requests when the value of this field is true, so including this header in an origin request policy has no effect. If both of these fields are false, then CloudFront treats the Accept-Encoding header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add Accept-Encoding to the headers whitelist like any other HTTP header. + */ + EnableAcceptEncodingGzip: boolean; + /** + * A flag that can affect whether the Accept-Encoding HTTP header is included in the cache key and included in requests that CloudFront sends to the origin. This field is related to the EnableAcceptEncodingGzip field. If one or both of these fields is true and the viewer request includes the Accept-Encoding header, then CloudFront does the following: Normalizes the value of the viewer’s Accept-Encoding header Includes the normalized header in the cache key Includes the normalized header in the request to the origin, if a request is necessary For more information, see Compression support in the Amazon CloudFront Developer Guide. If you set this value to true, and this cache behavior also has an origin request policy attached, do not include the Accept-Encoding header in the origin request policy. CloudFront always includes the Accept-Encoding header in origin requests when the value of this field is true, so including this header in an origin request policy has no effect. If both of these fields are false, then CloudFront treats the Accept-Encoding header the same as any other HTTP header in the viewer request. By default, it’s not included in the cache key and it’s not included in origin requests. In this case, you can manually add Accept-Encoding to the headers whitelist like any other HTTP header. + */ + EnableAcceptEncodingBrotli?: boolean; + /** + * An object that determines whether any HTTP headers (and if so, which headers) are included in the cache key and automatically included in requests that CloudFront sends to the origin. + */ + HeadersConfig: CachePolicyHeadersConfig; + /** + * An object that determines whether any cookies in viewer requests (and if so, which cookies) are included in the cache key and automatically included in requests that CloudFront sends to the origin. + */ + CookiesConfig: CachePolicyCookiesConfig; + /** + * An object that determines whether any URL query strings in viewer requests (and if so, which query strings) are included in the cache key and automatically included in requests that CloudFront sends to the origin. + */ + QueryStringsConfig: CachePolicyQueryStringsConfig; + } + export type PathList = string[]; + export interface Paths { + /** + * The number of invalidation paths specified for the objects that you want to invalidate. + */ + Quantity: integer; + /** + * A complex type that contains a list of the paths that you want to invalidate. + */ + Items?: PathList; + } + export type PriceClass = "PriceClass_100"|"PriceClass_200"|"PriceClass_All"|string; + export interface PublicKey { + /** + * The identifier of the public key. + */ + Id: string; + /** + * The date and time when the public key was uploaded. + */ + CreatedTime: timestamp; + /** + * Configuration information about a public key that you can use with signed URLs and signed cookies, or with field-level encryption. + */ + PublicKeyConfig: PublicKeyConfig; + } + export interface PublicKeyConfig { + /** + * A string included in the request to help make sure that the request can’t be replayed. + */ + CallerReference: string; + /** + * A name to help identify the public key. + */ + Name: string; + /** + * The public key that you can use with signed URLs and signed cookies, or with field-level encryption. + */ + EncodedKey: string; + /** + * A comment to describe the public key. The comment cannot be longer than 128 characters. + */ + Comment?: string; + } + export type PublicKeyIdList = string[]; + export interface PublicKeyList { + /** + * If there are more elements to be listed, this element is present and contains the value that you can use for the Marker request parameter to continue listing your public keys where you left off. + */ + NextMarker?: string; + /** + * The maximum number of public keys you want in the response. + */ + MaxItems: integer; + /** + * The number of public keys in the list. + */ + Quantity: integer; + /** + * A list of public keys. + */ + Items?: PublicKeySummaryList; + } + export interface PublicKeySummary { + /** + * The identifier of the public key. + */ + Id: string; + /** + * A name to help identify the public key. + */ + Name: string; + /** + * The date and time when the public key was uploaded. + */ + CreatedTime: timestamp; + /** + * The public key. + */ + EncodedKey: string; + /** + * A comment to describe the public key. The comment cannot be longer than 128 characters. + */ + Comment?: string; + } + export type PublicKeySummaryList = PublicKeySummary[]; + export interface PublishFunctionRequest { + /** + * The name of the function that you are publishing. + */ + Name: string; + /** + * The current version (ETag value) of the function that you are publishing, which you can get using DescribeFunction. + */ + IfMatch: string; + } + export interface PublishFunctionResult { + /** + * Contains configuration information and metadata about a CloudFront function. + */ + FunctionSummary?: FunctionSummary; + } + export interface QueryArgProfile { + /** + * Query argument for field-level encryption query argument-profile mapping. + */ + QueryArg: string; + /** + * ID of profile to use for field-level encryption query argument-profile mapping + */ + ProfileId: string; + } + export interface QueryArgProfileConfig { + /** + * Flag to set if you want a request to be forwarded to the origin even if the profile specified by the field-level encryption query argument, fle-profile, is unknown. + */ + ForwardWhenQueryArgProfileIsUnknown: boolean; + /** + * Profiles specified for query argument-profile mapping for field-level encryption. + */ + QueryArgProfiles?: QueryArgProfiles; + } + export type QueryArgProfileList = QueryArgProfile[]; + export interface QueryArgProfiles { + /** + * Number of profiles for query argument-profile mapping for field-level encryption. + */ + Quantity: integer; + /** + * Number of items for query argument-profile mapping for field-level encryption. + */ + Items?: QueryArgProfileList; + } + export interface QueryStringCacheKeys { + /** + * The number of whitelisted query string parameters for a cache behavior. + */ + Quantity: integer; + /** + * A list that contains the query string parameters that you want CloudFront to use as a basis for caching for a cache behavior. If Quantity is 0, you can omit Items. + */ + Items?: QueryStringCacheKeysList; + } + export type QueryStringCacheKeysList = string[]; + export interface QueryStringNames { + /** + * The number of query string names in the Items list. + */ + Quantity: integer; + /** + * A list of query string names. + */ + Items?: QueryStringNamesList; + } + export type QueryStringNamesList = string[]; + export interface RealtimeLogConfig { + /** + * The Amazon Resource Name (ARN) of this real-time log configuration. + */ + ARN: string; + /** + * The unique name of this real-time log configuration. + */ + Name: string; + /** + * The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. The sampling rate is an integer between 1 and 100, inclusive. + */ + SamplingRate: long; + /** + * Contains information about the Amazon Kinesis data stream where you are sending real-time log data for this real-time log configuration. + */ + EndPoints: EndPointList; + /** + * A list of fields that are included in each real-time log record. In an API response, the fields are provided in the same order in which they are sent to the Amazon Kinesis data stream. For more information about fields, see Real-time log configuration fields in the Amazon CloudFront Developer Guide. + */ + Fields: FieldList; + } + export type RealtimeLogConfigList = RealtimeLogConfig[]; + export interface RealtimeLogConfigs { + /** + * The maximum number of real-time log configurations requested. + */ + MaxItems: integer; + /** + * Contains the list of real-time log configurations. + */ + Items?: RealtimeLogConfigList; + /** + * A flag that indicates whether there are more real-time log configurations than are contained in this list. + */ + IsTruncated: boolean; + /** + * This parameter indicates where this list of real-time log configurations begins. This list includes real-time log configurations that occur after the marker. + */ + Marker: string; + /** + * If there are more items in the list than are in this response, this element is present. It contains the value that you should use in the Marker field of a subsequent request to continue listing real-time log configurations where you left off. + */ + NextMarker?: string; + } + export interface RealtimeMetricsSubscriptionConfig { + /** + * A flag that indicates whether additional CloudWatch metrics are enabled for a given CloudFront distribution. + */ + RealtimeMetricsSubscriptionStatus: RealtimeMetricsSubscriptionStatus; + } + export type RealtimeMetricsSubscriptionStatus = "Enabled"|"Disabled"|string; + export type ResourceARN = string; + export interface Restrictions { + /** + * A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using MaxMind GeoIP databases. + */ + GeoRestriction: GeoRestriction; + } + export interface S3Origin { + /** + * The DNS name of the Amazon S3 origin. + */ + DomainName: string; + /** + * The CloudFront origin access identity to associate with the distribution. Use an origin access identity to configure the distribution so that end users can only access objects in an Amazon S3 bucket through CloudFront. If you want end users to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information, see Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content in the Amazon CloudFront Developer Guide. + */ + OriginAccessIdentity: string; + } + export interface S3OriginConfig { + /** + * The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can only access objects in an Amazon S3 bucket through CloudFront. The format of the value is: origin-access-identity/cloudfront/ID-of-origin-access-identity where ID-of-origin-access-identity is the value that CloudFront returned in the ID element when you created the origin access identity. If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty OriginAccessIdentity element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty OriginAccessIdentity element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information about the origin access identity, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. + */ + OriginAccessIdentity: string; + } + export type SSLSupportMethod = "sni-only"|"vip"|"static-ip"|string; + export interface _Signer { + /** + * An AWS account number that contains active CloudFront key pairs that CloudFront can use to verify the signatures of signed URLs and signed cookies. If the AWS account that owns the key pairs is the same account that owns the CloudFront distribution, the value of this field is self. + */ + AwsAccountNumber?: string; + /** + * A list of CloudFront key pair identifiers. + */ + KeyPairIds?: KeyPairIds; + } + export type SignerList = _Signer[]; + export type SslProtocol = "SSLv3"|"TLSv1"|"TLSv1.1"|"TLSv1.2"|string; + export type SslProtocolsList = SslProtocol[]; + export type StatusCodeList = integer[]; + export interface StatusCodes { + /** + * The number of status codes. + */ + Quantity: integer; + /** + * The items (status codes) for an origin group. + */ + Items: StatusCodeList; + } + export interface StreamingDistribution { + /** + * The identifier for the RTMP distribution. For example: EGTXBD79EXAMPLE. + */ + Id: string; + /** + * The ARN (Amazon Resource Name) for the distribution. For example: arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID. + */ + ARN: string; + /** + * The current status of the RTMP distribution. When the status is Deployed, the distribution's information is propagated to all CloudFront edge locations. + */ + Status: string; + /** + * The date and time that the distribution was last modified. + */ + LastModifiedTime?: timestamp; + /** + * The domain name that corresponds to the streaming distribution, for example, s5c39gqb8ow64r.cloudfront.net. + */ + DomainName: string; + /** + * A complex type that lists the AWS accounts, if any, that you included in the TrustedSigners complex type for this distribution. These are the accounts that you want to allow to create signed URLs for private content. The Signer complex type lists the AWS account number of the trusted signer or self if the signer is the AWS account that created the distribution. The Signer element also includes the IDs of any active CloudFront key pairs that are associated with the trusted signer's AWS account. If no KeyPairId element appears for a Signer, that signer can't create signed URLs. For more information, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. + */ + ActiveTrustedSigners: ActiveTrustedSigners; + /** + * The current configuration information for the RTMP distribution. + */ + StreamingDistributionConfig: StreamingDistributionConfig; + } + export interface StreamingDistributionConfig { + /** + * A unique value (for example, a date-time stamp) that ensures that the request can't be replayed. If the value of CallerReference is new (regardless of the content of the StreamingDistributionConfig object), CloudFront creates a new distribution. If CallerReference is a value that you already sent in a previous request to create a distribution, CloudFront returns a DistributionAlreadyExists error. + */ + CallerReference: string; + /** + * A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. + */ + S3Origin: S3Origin; + /** + * A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. + */ + Aliases?: Aliases; + /** + * Any comments you want to include about the streaming distribution. + */ + Comment: string; + /** + * A complex type that controls whether access logs are written for the streaming distribution. + */ + Logging?: StreamingLoggingConfig; + /** + * A complex type that specifies any AWS accounts that you want to permit to create signed URLs for private content. If you want the distribution to use signed URLs, include this element; if you want the distribution to use public URLs, remove this element. For more information, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. + */ + TrustedSigners: TrustedSigners; + /** + * A complex type that contains information about price class for this streaming distribution. + */ + PriceClass?: PriceClass; + /** + * Whether the streaming distribution is enabled to accept user requests for content. + */ + Enabled: boolean; + } + export interface StreamingDistributionConfigWithTags { + /** + * A streaming distribution Configuration. + */ + StreamingDistributionConfig: StreamingDistributionConfig; + /** + * A complex type that contains zero or more Tag elements. + */ + Tags: Tags; + } + export interface StreamingDistributionList { + /** + * The value you provided for the Marker request parameter. + */ + Marker: string; + /** + * If IsTruncated is true, this element is present and contains the value you can use for the Marker request parameter to continue listing your RTMP distributions where they left off. + */ + NextMarker?: string; + /** + * The value you provided for the MaxItems request parameter. + */ + MaxItems: integer; + /** + * A flag that indicates whether more streaming distributions remain to be listed. If your results were truncated, you can make a follow-up pagination request using the Marker request parameter to retrieve more distributions in the list. + */ + IsTruncated: boolean; + /** + * The number of streaming distributions that were created by the current AWS account. + */ + Quantity: integer; + /** + * A complex type that contains one StreamingDistributionSummary element for each distribution that was created by the current AWS account. + */ + Items?: StreamingDistributionSummaryList; + } + export interface StreamingDistributionSummary { + /** + * The identifier for the distribution, for example, EDFDVBD632BHDS5. + */ + Id: string; + /** + * The ARN (Amazon Resource Name) for the streaming distribution. For example: arn:aws:cloudfront::123456789012:streaming-distribution/EDFDVBD632BHDS5, where 123456789012 is your AWS account ID. + */ + ARN: string; + /** + * Indicates the current status of the distribution. When the status is Deployed, the distribution's information is fully propagated throughout the Amazon CloudFront system. + */ + Status: string; + /** + * The date and time the distribution was last modified. + */ + LastModifiedTime: timestamp; + /** + * The domain name corresponding to the distribution, for example, d111111abcdef8.cloudfront.net. + */ + DomainName: string; + /** + * A complex type that contains information about the Amazon S3 bucket from which you want CloudFront to get your media files for distribution. + */ + S3Origin: S3Origin; + /** + * A complex type that contains information about CNAMEs (alternate domain names), if any, for this streaming distribution. + */ + Aliases: Aliases; + /** + * A complex type that specifies the AWS accounts, if any, that you want to allow to create signed URLs for private content. If you want to require signed URLs in requests for objects in the target origin that match the PathPattern for this cache behavior, specify true for Enabled, and specify the applicable values for Quantity and Items.If you don't want to require signed URLs in requests for objects that match PathPattern, specify false for Enabled and 0 for Quantity. Omit Items. To add, change, or remove one or more trusted signers, change Enabled to true (if it's currently false), change Quantity as applicable, and specify all of the trusted signers that you want to include in the updated distribution. For more information, see Serving Private Content through CloudFront in the Amazon CloudFront Developer Guide. + */ + TrustedSigners: TrustedSigners; + /** + * The comment originally specified when this distribution was created. + */ + Comment: string; + /** + * A complex type that contains information about price class for this streaming distribution. + */ + PriceClass: PriceClass; + /** + * Whether the distribution is enabled to accept end user requests for content. + */ + Enabled: boolean; + } + export type StreamingDistributionSummaryList = StreamingDistributionSummary[]; + export interface StreamingLoggingConfig { + /** + * Specifies whether you want CloudFront to save access logs to an Amazon S3 bucket. If you don't want to enable logging when you create a streaming distribution or if you want to disable logging for an existing streaming distribution, specify false for Enabled, and specify empty Bucket and Prefix elements. If you specify false for Enabled but you specify values for Bucket and Prefix, the values are automatically deleted. + */ + Enabled: boolean; + /** + * The Amazon S3 bucket to store the access logs in, for example, myawslogbucket.s3.amazonaws.com. + */ + Bucket: string; + /** + * An optional string that you want CloudFront to prefix to the access log filenames for this streaming distribution, for example, myprefix/. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty Prefix element in the Logging element. + */ + Prefix: string; + } + export interface Tag { + /** + * A string that contains Tag key. The string length should be between 1 and 128 characters. Valid characters include a-z, A-Z, 0-9, space, and the special characters _ - . : / = + @. + */ + Key: TagKey; + /** + * A string that contains an optional Tag value. The string length should be between 0 and 256 characters. Valid characters include a-z, A-Z, 0-9, space, and the special characters _ - . : / = + @. + */ + Value?: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export interface TagKeys { + /** + * A complex type that contains Tag key elements. + */ + Items?: TagKeyList; + } + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * An ARN of a CloudFront resource. + */ + Resource: ResourceARN; + /** + * A complex type that contains zero or more Tag elements. + */ + Tags: Tags; + } + export type TagValue = string; + export interface Tags { + /** + * A complex type that contains Tag elements. + */ + Items?: TagList; + } + export interface TestFunctionRequest { + /** + * The name of the function that you are testing. + */ + Name: string; + /** + * The current version (ETag value) of the function that you are testing, which you can get using DescribeFunction. + */ + IfMatch: string; + /** + * The stage of the function that you are testing, either DEVELOPMENT or LIVE. + */ + Stage?: FunctionStage; + /** + * The event object to test the function with. For more information about the structure of the event object, see Testing functions in the Amazon CloudFront Developer Guide. + */ + EventObject: FunctionEventObject; + } + export interface TestFunctionResult { + /** + * An object that represents the result of running the function with the provided event object. + */ + TestResult?: TestResult; + } + export interface TestResult { + /** + * Contains configuration information and metadata about the CloudFront function that was tested. + */ + FunctionSummary?: FunctionSummary; + /** + * The amount of time that the function took to run as a percentage of the maximum allowed time. For example, a compute utilization of 35 means that the function completed in 35% of the maximum allowed time. + */ + ComputeUtilization?: string; + /** + * Contains the log lines that the function wrote (if any) when running the test. + */ + FunctionExecutionLogs?: FunctionExecutionLogList; + /** + * If the result of testing the function was an error, this field contains the error message. + */ + FunctionErrorMessage?: string; + /** + * The event object returned by the function. For more information about the structure of the event object, see Event object structure in the Amazon CloudFront Developer Guide. + */ + FunctionOutput?: string; + } + export type TrustedKeyGroupIdList = string[]; + export interface TrustedKeyGroups { + /** + * This field is true if any of the key groups in the list have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is false. + */ + Enabled: boolean; + /** + * The number of key groups in the list. + */ + Quantity: integer; + /** + * A list of key groups identifiers. + */ + Items?: TrustedKeyGroupIdList; + } + export interface TrustedSigners { + /** + * This field is true if any of the AWS accounts have public keys that CloudFront can use to verify the signatures of signed URLs and signed cookies. If not, this field is false. + */ + Enabled: boolean; + /** + * The number of AWS accounts in the list. + */ + Quantity: integer; + /** + * A list of AWS account identifiers. + */ + Items?: AwsAccountNumberList; + } + export interface UntagResourceRequest { + /** + * An ARN of a CloudFront resource. + */ + Resource: ResourceARN; + /** + * A complex type that contains zero or more Tag key elements. + */ + TagKeys: TagKeys; + } + export interface UpdateCachePolicyRequest { + /** + * A cache policy configuration. + */ + CachePolicyConfig: CachePolicyConfig; + /** + * The unique identifier for the cache policy that you are updating. The identifier is returned in a cache behavior’s CachePolicyId field in the response to GetDistributionConfig. + */ + Id: string; + /** + * The version of the cache policy that you are updating. The version is returned in the cache policy’s ETag field in the response to GetCachePolicyConfig. + */ + IfMatch?: string; + } + export interface UpdateCachePolicyResult { + /** + * A cache policy. + */ + CachePolicy?: CachePolicy; + /** + * The current version of the cache policy. + */ + ETag?: string; + } + export interface UpdateCloudFrontOriginAccessIdentityRequest { + /** + * The identity's configuration information. + */ + CloudFrontOriginAccessIdentityConfig: CloudFrontOriginAccessIdentityConfig; + /** + * The identity's id. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the identity's configuration. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface UpdateCloudFrontOriginAccessIdentityResult { + /** + * The origin access identity's information. + */ + CloudFrontOriginAccessIdentity?: CloudFrontOriginAccessIdentity; + /** + * The current version of the configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface UpdateDistributionRequest { + /** + * The distribution's configuration information. + */ + DistributionConfig: DistributionConfig; + /** + * The distribution's id. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the distribution's configuration. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface UpdateDistributionResult { + /** + * The distribution's information. + */ + Distribution?: Distribution; + /** + * The current version of the configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface UpdateFieldLevelEncryptionConfigRequest { + /** + * Request to update a field-level encryption configuration. + */ + FieldLevelEncryptionConfig: FieldLevelEncryptionConfig; + /** + * The ID of the configuration you want to update. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the configuration identity to update. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface UpdateFieldLevelEncryptionConfigResult { + /** + * Return the results of updating the configuration. + */ + FieldLevelEncryption?: FieldLevelEncryption; + /** + * The value of the ETag header that you received when updating the configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface UpdateFieldLevelEncryptionProfileRequest { + /** + * Request to update a field-level encryption profile. + */ + FieldLevelEncryptionProfileConfig: FieldLevelEncryptionProfileConfig; + /** + * The ID of the field-level encryption profile request. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the profile identity to update. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface UpdateFieldLevelEncryptionProfileResult { + /** + * Return the results of updating the profile. + */ + FieldLevelEncryptionProfile?: FieldLevelEncryptionProfile; + /** + * The result of the field-level encryption profile request. + */ + ETag?: string; + } + export interface UpdateFunctionRequest { + /** + * The name of the function that you are updating. + */ + Name: string; + /** + * The current version (ETag value) of the function that you are updating, which you can get using DescribeFunction. + */ + IfMatch: string; + /** + * Configuration information about the function. + */ + FunctionConfig: FunctionConfig; + /** + * The function code. For more information about writing a CloudFront function, see Writing function code for CloudFront Functions in the Amazon CloudFront Developer Guide. + */ + FunctionCode: FunctionBlob; + } + export interface UpdateFunctionResult { + /** + * Contains configuration information and metadata about a CloudFront function. + */ + FunctionSummary?: FunctionSummary; + /** + * The version identifier for the current version of the CloudFront function. + */ + ETag?: string; + } + export interface UpdateKeyGroupRequest { + /** + * The key group configuration. + */ + KeyGroupConfig: KeyGroupConfig; + /** + * The identifier of the key group that you are updating. + */ + Id: string; + /** + * The version of the key group that you are updating. The version is the key group’s ETag value. + */ + IfMatch?: string; + } + export interface UpdateKeyGroupResult { + /** + * The key group that was just updated. + */ + KeyGroup?: KeyGroup; + /** + * The identifier for this version of the key group. + */ + ETag?: string; + } + export interface UpdateOriginRequestPolicyRequest { + /** + * An origin request policy configuration. + */ + OriginRequestPolicyConfig: OriginRequestPolicyConfig; + /** + * The unique identifier for the origin request policy that you are updating. The identifier is returned in a cache behavior’s OriginRequestPolicyId field in the response to GetDistributionConfig. + */ + Id: string; + /** + * The version of the origin request policy that you are updating. The version is returned in the origin request policy’s ETag field in the response to GetOriginRequestPolicyConfig. + */ + IfMatch?: string; + } + export interface UpdateOriginRequestPolicyResult { + /** + * An origin request policy. + */ + OriginRequestPolicy?: OriginRequestPolicy; + /** + * The current version of the origin request policy. + */ + ETag?: string; + } + export interface UpdatePublicKeyRequest { + /** + * A public key configuration. + */ + PublicKeyConfig: PublicKeyConfig; + /** + * The identifier of the public key that you are updating. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the public key to update. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface UpdatePublicKeyResult { + /** + * The public key. + */ + PublicKey?: PublicKey; + /** + * The identifier of the current version of the public key. + */ + ETag?: string; + } + export interface UpdateRealtimeLogConfigRequest { + /** + * Contains information about the Amazon Kinesis data stream where you are sending real-time log data. + */ + EndPoints?: EndPointList; + /** + * A list of fields to include in each real-time log record. For more information about fields, see Real-time log configuration fields in the Amazon CloudFront Developer Guide. + */ + Fields?: FieldList; + /** + * The name for this real-time log configuration. + */ + Name?: string; + /** + * The Amazon Resource Name (ARN) for this real-time log configuration. + */ + ARN?: string; + /** + * The sampling rate for this real-time log configuration. The sampling rate determines the percentage of viewer requests that are represented in the real-time log data. You must provide an integer between 1 and 100, inclusive. + */ + SamplingRate?: long; + } + export interface UpdateRealtimeLogConfigResult { + /** + * A real-time log configuration. + */ + RealtimeLogConfig?: RealtimeLogConfig; + } + export interface UpdateStreamingDistributionRequest { + /** + * The streaming distribution's configuration information. + */ + StreamingDistributionConfig: StreamingDistributionConfig; + /** + * The streaming distribution's id. + */ + Id: string; + /** + * The value of the ETag header that you received when retrieving the streaming distribution's configuration. For example: E2QWRUHAPOMQZL. + */ + IfMatch?: string; + } + export interface UpdateStreamingDistributionResult { + /** + * The streaming distribution's information. + */ + StreamingDistribution?: StreamingDistribution; + /** + * The current version of the configuration. For example: E2QWRUHAPOMQZL. + */ + ETag?: string; + } + export interface ViewerCertificate { + /** + * If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, set this field to true. If the distribution uses Aliases (alternate domain names or CNAMEs), set this field to false and specify values for the following fields: ACMCertificateArn or IAMCertificateId (specify a value for one, not both) MinimumProtocolVersion SSLSupportMethod + */ + CloudFrontDefaultCertificate?: boolean; + /** + * If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in AWS Identity and Access Management (AWS IAM), provide the ID of the IAM certificate. If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion and SSLSupportMethod. + */ + IAMCertificateId?: string; + /** + * If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in AWS Certificate Manager (ACM), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (us-east-1). If you specify an ACM certificate ARN, you must also specify values for MinimumProtocolVersion and SSLSupportMethod. + */ + ACMCertificateArn?: string; + /** + * If the distribution uses Aliases (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. sni-only – The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is recommended. Most browsers and clients support SNI. vip – The distribution accepts HTTPS connections from all viewers including those that don’t support SNI. This is not recommended, and results in additional monthly charges from CloudFront. static-ip - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the AWS Support Center. If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, don’t set a value for this field. + */ + SSLSupportMethod?: SSLSupportMethod; + /** + * If the distribution uses Aliases (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. The ciphers that CloudFront can use to encrypt the content that it returns to viewers. For more information, see Security Policy and Supported Protocols and Ciphers Between Viewers and CloudFront in the Amazon CloudFront Developer Guide. On the CloudFront console, this setting is called Security Policy. When you’re using SNI only (you set SSLSupportMethod to sni-only), you must specify TLSv1 or higher. If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net (you set CloudFrontDefaultCertificate to true), CloudFront automatically sets the security policy to TLSv1 regardless of the value that you set here. + */ + MinimumProtocolVersion?: MinimumProtocolVersion; + /** + * This field is deprecated. Use one of the following fields instead: ACMCertificateArn IAMCertificateId CloudFrontDefaultCertificate + */ + Certificate?: string; + /** + * This field is deprecated. Use one of the following fields instead: ACMCertificateArn IAMCertificateId CloudFrontDefaultCertificate + */ + CertificateSource?: CertificateSource; + } + export type ViewerProtocolPolicy = "allow-all"|"https-only"|"redirect-to-https"|string; + export type integer = number; + export type long = number; + export type timestamp = Date; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2013-05-12"|"2013-11-11"|"2014-05-31"|"2014-10-21"|"2014-11-06"|"2015-04-17"|"2015-07-27"|"2015-09-17"|"2016-01-13"|"2016-01-28"|"2016-08-01"|"2016-08-20"|"2016-09-07"|"2016-09-29"|"2016-11-25"|"2016-11-25"|"2017-03-25"|"2017-03-25"|"2017-10-30"|"2017-10-30"|"2018-06-18"|"2018-06-18"|"2018-11-05"|"2018-11-05"|"2019-03-26"|"2019-03-26"|"2020-05-31"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudFront client. + */ + export import Types = CloudFront; +} +export = CloudFront; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudfront.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudfront.js new file mode 100644 index 0000000000000000000000000000000000000000..a983e49ebccd931a73a8e5eabaffb50bd82185f0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudfront.js @@ -0,0 +1,80 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudfront'] = {}; +AWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']); +require('../lib/services/cloudfront'); +Object.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', { + get: function get() { + var model = require('../apis/cloudfront-2016-11-25.min.json'); + model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination; + model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', { + get: function get() { + var model = require('../apis/cloudfront-2017-03-25.min.json'); + model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination; + model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', { + get: function get() { + var model = require('../apis/cloudfront-2017-10-30.min.json'); + model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination; + model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', { + get: function get() { + var model = require('../apis/cloudfront-2018-06-18.min.json'); + model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination; + model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', { + get: function get() { + var model = require('../apis/cloudfront-2018-11-05.min.json'); + model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination; + model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', { + get: function get() { + var model = require('../apis/cloudfront-2019-03-26.min.json'); + model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination; + model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', { + get: function get() { + var model = require('../apis/cloudfront-2020-05-31.min.json'); + model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination; + model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudFront; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsm.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsm.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..9c5e7cf09d887aac08720bcbeba3a0cbb4e8e855 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsm.d.ts @@ -0,0 +1,704 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudHSM extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudHSM.Types.ClientConfiguration) + config: Config & CloudHSM.Types.ClientConfiguration; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Adds or overwrites one or more tags for the specified AWS CloudHSM resource. Each tag consists of a key and a value. Tag keys must be unique to each resource. + */ + addTagsToResource(params: CloudHSM.Types.AddTagsToResourceRequest, callback?: (err: AWSError, data: CloudHSM.Types.AddTagsToResourceResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Adds or overwrites one or more tags for the specified AWS CloudHSM resource. Each tag consists of a key and a value. Tag keys must be unique to each resource. + */ + addTagsToResource(callback?: (err: AWSError, data: CloudHSM.Types.AddTagsToResourceResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs. + */ + createHapg(params: CloudHSM.Types.CreateHapgRequest, callback?: (err: AWSError, data: CloudHSM.Types.CreateHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs. + */ + createHapg(callback?: (err: AWSError, data: CloudHSM.Types.CreateHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates an uninitialized HSM instance. There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support. It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING. + */ + createHsm(params: CloudHSM.Types.CreateHsmRequest, callback?: (err: AWSError, data: CloudHSM.Types.CreateHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates an uninitialized HSM instance. There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support. It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING. + */ + createHsm(callback?: (err: AWSError, data: CloudHSM.Types.CreateHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates an HSM client. + */ + createLunaClient(params: CloudHSM.Types.CreateLunaClientRequest, callback?: (err: AWSError, data: CloudHSM.Types.CreateLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Creates an HSM client. + */ + createLunaClient(callback?: (err: AWSError, data: CloudHSM.Types.CreateLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes a high-availability partition group. + */ + deleteHapg(params: CloudHSM.Types.DeleteHapgRequest, callback?: (err: AWSError, data: CloudHSM.Types.DeleteHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes a high-availability partition group. + */ + deleteHapg(callback?: (err: AWSError, data: CloudHSM.Types.DeleteHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered. + */ + deleteHsm(params: CloudHSM.Types.DeleteHsmRequest, callback?: (err: AWSError, data: CloudHSM.Types.DeleteHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered. + */ + deleteHsm(callback?: (err: AWSError, data: CloudHSM.Types.DeleteHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes a client. + */ + deleteLunaClient(params: CloudHSM.Types.DeleteLunaClientRequest, callback?: (err: AWSError, data: CloudHSM.Types.DeleteLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Deletes a client. + */ + deleteLunaClient(callback?: (err: AWSError, data: CloudHSM.Types.DeleteLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about a high-availability partition group. + */ + describeHapg(params: CloudHSM.Types.DescribeHapgRequest, callback?: (err: AWSError, data: CloudHSM.Types.DescribeHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about a high-availability partition group. + */ + describeHapg(callback?: (err: AWSError, data: CloudHSM.Types.DescribeHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number. + */ + describeHsm(params: CloudHSM.Types.DescribeHsmRequest, callback?: (err: AWSError, data: CloudHSM.Types.DescribeHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number. + */ + describeHsm(callback?: (err: AWSError, data: CloudHSM.Types.DescribeHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about an HSM client. + */ + describeLunaClient(params: CloudHSM.Types.DescribeLunaClientRequest, callback?: (err: AWSError, data: CloudHSM.Types.DescribeLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves information about an HSM client. + */ + describeLunaClient(callback?: (err: AWSError, data: CloudHSM.Types.DescribeLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Gets the configuration files necessary to connect to all high availability partition groups the client is associated with. + */ + getConfig(params: CloudHSM.Types.GetConfigRequest, callback?: (err: AWSError, data: CloudHSM.Types.GetConfigResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Gets the configuration files necessary to connect to all high availability partition groups the client is associated with. + */ + getConfig(callback?: (err: AWSError, data: CloudHSM.Types.GetConfigResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists the Availability Zones that have available AWS CloudHSM capacity. + */ + listAvailableZones(params: CloudHSM.Types.ListAvailableZonesRequest, callback?: (err: AWSError, data: CloudHSM.Types.ListAvailableZonesResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists the Availability Zones that have available AWS CloudHSM capacity. + */ + listAvailableZones(callback?: (err: AWSError, data: CloudHSM.Types.ListAvailableZonesResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists the high-availability partition groups for the account. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items. + */ + listHapgs(params: CloudHSM.Types.ListHapgsRequest, callback?: (err: AWSError, data: CloudHSM.Types.ListHapgsResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists the high-availability partition groups for the account. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items. + */ + listHapgs(callback?: (err: AWSError, data: CloudHSM.Types.ListHapgsResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves the identifiers of all of the HSMs provisioned for the current customer. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items. + */ + listHsms(params: CloudHSM.Types.ListHsmsRequest, callback?: (err: AWSError, data: CloudHSM.Types.ListHsmsResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Retrieves the identifiers of all of the HSMs provisioned for the current customer. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items. + */ + listHsms(callback?: (err: AWSError, data: CloudHSM.Types.ListHsmsResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists all of the clients. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items. + */ + listLunaClients(params: CloudHSM.Types.ListLunaClientsRequest, callback?: (err: AWSError, data: CloudHSM.Types.ListLunaClientsResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Lists all of the clients. This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items. + */ + listLunaClients(callback?: (err: AWSError, data: CloudHSM.Types.ListLunaClientsResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Returns a list of all tags for the specified AWS CloudHSM resource. + */ + listTagsForResource(params: CloudHSM.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: CloudHSM.Types.ListTagsForResourceResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Returns a list of all tags for the specified AWS CloudHSM resource. + */ + listTagsForResource(callback?: (err: AWSError, data: CloudHSM.Types.ListTagsForResourceResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies an existing high-availability partition group. + */ + modifyHapg(params: CloudHSM.Types.ModifyHapgRequest, callback?: (err: AWSError, data: CloudHSM.Types.ModifyHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies an existing high-availability partition group. + */ + modifyHapg(callback?: (err: AWSError, data: CloudHSM.Types.ModifyHapgResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies an HSM. This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window. + */ + modifyHsm(params: CloudHSM.Types.ModifyHsmRequest, callback?: (err: AWSError, data: CloudHSM.Types.ModifyHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies an HSM. This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured. If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window. + */ + modifyHsm(callback?: (err: AWSError, data: CloudHSM.Types.ModifyHsmResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies the certificate used by the client. This action can potentially start a workflow to install the new certificate on the client's HSMs. + */ + modifyLunaClient(params: CloudHSM.Types.ModifyLunaClientRequest, callback?: (err: AWSError, data: CloudHSM.Types.ModifyLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Modifies the certificate used by the client. This action can potentially start a workflow to install the new certificate on the client's HSMs. + */ + modifyLunaClient(callback?: (err: AWSError, data: CloudHSM.Types.ModifyLunaClientResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Removes one or more tags from the specified AWS CloudHSM resource. To remove a tag, specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource. + */ + removeTagsFromResource(params: CloudHSM.Types.RemoveTagsFromResourceRequest, callback?: (err: AWSError, data: CloudHSM.Types.RemoveTagsFromResourceResponse) => void): Request; + /** + * This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference. For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference. Removes one or more tags from the specified AWS CloudHSM resource. To remove a tag, specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource. + */ + removeTagsFromResource(callback?: (err: AWSError, data: CloudHSM.Types.RemoveTagsFromResourceResponse) => void): Request; +} +declare namespace CloudHSM { + export type AZ = string; + export type AZList = AZ[]; + export interface AddTagsToResourceRequest { + /** + * The Amazon Resource Name (ARN) of the AWS CloudHSM resource to tag. + */ + ResourceArn: String; + /** + * One or more tags. + */ + TagList: TagList; + } + export interface AddTagsToResourceResponse { + /** + * The status of the operation. + */ + Status: String; + } + export type Certificate = string; + export type CertificateFingerprint = string; + export type ClientArn = string; + export type ClientLabel = string; + export type ClientList = ClientArn[]; + export type ClientToken = string; + export type ClientVersion = "5.1"|"5.3"|string; + export type CloudHsmObjectState = "READY"|"UPDATING"|"DEGRADED"|string; + export interface CreateHapgRequest { + /** + * The label of the new high-availability partition group. + */ + Label: Label; + } + export interface CreateHapgResponse { + /** + * The ARN of the high-availability partition group. + */ + HapgArn?: HapgArn; + } + export interface CreateHsmRequest { + /** + * The identifier of the subnet in your VPC in which to place the HSM. + */ + SubnetId: SubnetId; + /** + * The SSH public key to install on the HSM. + */ + SshKey: SshKey; + /** + * The IP address to assign to the HSM's ENI. If an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the subnet. + */ + EniIp?: IpAddress; + /** + * The ARN of an IAM role to enable the AWS CloudHSM service to allocate an ENI on your behalf. + */ + IamRoleArn: IamRoleArn; + /** + * The external ID from IamRoleArn, if present. + */ + ExternalId?: ExternalId; + SubscriptionType: SubscriptionType; + /** + * A user-defined token to ensure idempotence. Subsequent calls to this operation with the same token will be ignored. + */ + ClientToken?: ClientToken; + /** + * The IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server. + */ + SyslogIp?: IpAddress; + } + export interface CreateHsmResponse { + /** + * The ARN of the HSM. + */ + HsmArn?: HsmArn; + } + export interface CreateLunaClientRequest { + /** + * The label for the client. + */ + Label?: ClientLabel; + /** + * The contents of a Base64-Encoded X.509 v3 certificate to be installed on the HSMs used by this client. + */ + Certificate: Certificate; + } + export interface CreateLunaClientResponse { + /** + * The ARN of the client. + */ + ClientArn?: ClientArn; + } + export interface DeleteHapgRequest { + /** + * The ARN of the high-availability partition group to delete. + */ + HapgArn: HapgArn; + } + export interface DeleteHapgResponse { + /** + * The status of the action. + */ + Status: String; + } + export interface DeleteHsmRequest { + /** + * The ARN of the HSM to delete. + */ + HsmArn: HsmArn; + } + export interface DeleteHsmResponse { + /** + * The status of the operation. + */ + Status: String; + } + export interface DeleteLunaClientRequest { + /** + * The ARN of the client to delete. + */ + ClientArn: ClientArn; + } + export interface DeleteLunaClientResponse { + /** + * The status of the action. + */ + Status: String; + } + export interface DescribeHapgRequest { + /** + * The ARN of the high-availability partition group to describe. + */ + HapgArn: HapgArn; + } + export interface DescribeHapgResponse { + /** + * The ARN of the high-availability partition group. + */ + HapgArn?: HapgArn; + /** + * The serial number of the high-availability partition group. + */ + HapgSerial?: String; + /** + * + */ + HsmsLastActionFailed?: HsmList; + /** + * + */ + HsmsPendingDeletion?: HsmList; + /** + * + */ + HsmsPendingRegistration?: HsmList; + /** + * The label for the high-availability partition group. + */ + Label?: Label; + /** + * The date and time the high-availability partition group was last modified. + */ + LastModifiedTimestamp?: Timestamp; + /** + * The list of partition serial numbers that belong to the high-availability partition group. + */ + PartitionSerialList?: PartitionSerialList; + /** + * The state of the high-availability partition group. + */ + State?: CloudHsmObjectState; + } + export interface DescribeHsmRequest { + /** + * The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified. + */ + HsmArn?: HsmArn; + /** + * The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified. + */ + HsmSerialNumber?: HsmSerialNumber; + } + export interface DescribeHsmResponse { + /** + * The ARN of the HSM. + */ + HsmArn?: HsmArn; + /** + * The status of the HSM. + */ + Status?: HsmStatus; + /** + * Contains additional information about the status of the HSM. + */ + StatusDetails?: String; + /** + * The Availability Zone that the HSM is in. + */ + AvailabilityZone?: AZ; + /** + * The identifier of the elastic network interface (ENI) attached to the HSM. + */ + EniId?: EniId; + /** + * The IP address assigned to the HSM's ENI. + */ + EniIp?: IpAddress; + SubscriptionType?: SubscriptionType; + /** + * The subscription start date. + */ + SubscriptionStartDate?: Timestamp; + /** + * The subscription end date. + */ + SubscriptionEndDate?: Timestamp; + /** + * The identifier of the VPC that the HSM is in. + */ + VpcId?: VpcId; + /** + * The identifier of the subnet that the HSM is in. + */ + SubnetId?: SubnetId; + /** + * The ARN of the IAM role assigned to the HSM. + */ + IamRoleArn?: IamRoleArn; + /** + * The serial number of the HSM. + */ + SerialNumber?: HsmSerialNumber; + /** + * The name of the HSM vendor. + */ + VendorName?: String; + /** + * The HSM model type. + */ + HsmType?: String; + /** + * The HSM software version. + */ + SoftwareVersion?: String; + /** + * The public SSH key. + */ + SshPublicKey?: SshKey; + /** + * The date and time that the SSH key was last updated. + */ + SshKeyLastUpdated?: Timestamp; + /** + * The URI of the certificate server. + */ + ServerCertUri?: String; + /** + * The date and time that the server certificate was last updated. + */ + ServerCertLastUpdated?: Timestamp; + /** + * The list of partitions on the HSM. + */ + Partitions?: PartitionList; + } + export interface DescribeLunaClientRequest { + /** + * The ARN of the client. + */ + ClientArn?: ClientArn; + /** + * The certificate fingerprint. + */ + CertificateFingerprint?: CertificateFingerprint; + } + export interface DescribeLunaClientResponse { + /** + * The ARN of the client. + */ + ClientArn?: ClientArn; + /** + * The certificate installed on the HSMs used by this client. + */ + Certificate?: Certificate; + /** + * The certificate fingerprint. + */ + CertificateFingerprint?: CertificateFingerprint; + /** + * The date and time the client was last modified. + */ + LastModifiedTimestamp?: Timestamp; + /** + * The label of the client. + */ + Label?: Label; + } + export type EniId = string; + export type ExternalId = string; + export interface GetConfigRequest { + /** + * The ARN of the client. + */ + ClientArn: ClientArn; + /** + * The client version. + */ + ClientVersion: ClientVersion; + /** + * A list of ARNs that identify the high-availability partition groups that are associated with the client. + */ + HapgList: HapgList; + } + export interface GetConfigResponse { + /** + * The type of credentials. + */ + ConfigType?: String; + /** + * The chrystoki.conf configuration file. + */ + ConfigFile?: String; + /** + * The certificate file containing the server.pem files of the HSMs. + */ + ConfigCred?: String; + } + export type HapgArn = string; + export type HapgList = HapgArn[]; + export type HsmArn = string; + export type HsmList = HsmArn[]; + export type HsmSerialNumber = string; + export type HsmStatus = "PENDING"|"RUNNING"|"UPDATING"|"SUSPENDED"|"TERMINATING"|"TERMINATED"|"DEGRADED"|string; + export type IamRoleArn = string; + export type IpAddress = string; + export type Label = string; + export interface ListAvailableZonesRequest { + } + export interface ListAvailableZonesResponse { + /** + * The list of Availability Zones that have available AWS CloudHSM capacity. + */ + AZList?: AZList; + } + export interface ListHapgsRequest { + /** + * The NextToken value from a previous call to ListHapgs. Pass null if this is the first call. + */ + NextToken?: PaginationToken; + } + export interface ListHapgsResponse { + /** + * The list of high-availability partition groups. + */ + HapgList: HapgList; + /** + * If not null, more results are available. Pass this value to ListHapgs to retrieve the next set of items. + */ + NextToken?: PaginationToken; + } + export interface ListHsmsRequest { + /** + * The NextToken value from a previous call to ListHsms. Pass null if this is the first call. + */ + NextToken?: PaginationToken; + } + export interface ListHsmsResponse { + /** + * The list of ARNs that identify the HSMs. + */ + HsmList?: HsmList; + /** + * If not null, more results are available. Pass this value to ListHsms to retrieve the next set of items. + */ + NextToken?: PaginationToken; + } + export interface ListLunaClientsRequest { + /** + * The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call. + */ + NextToken?: PaginationToken; + } + export interface ListLunaClientsResponse { + /** + * The list of clients. + */ + ClientList: ClientList; + /** + * If not null, more results are available. Pass this to ListLunaClients to retrieve the next set of items. + */ + NextToken?: PaginationToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the AWS CloudHSM resource. + */ + ResourceArn: String; + } + export interface ListTagsForResourceResponse { + /** + * One or more tags. + */ + TagList: TagList; + } + export interface ModifyHapgRequest { + /** + * The ARN of the high-availability partition group to modify. + */ + HapgArn: HapgArn; + /** + * The new label for the high-availability partition group. + */ + Label?: Label; + /** + * The list of partition serial numbers to make members of the high-availability partition group. + */ + PartitionSerialList?: PartitionSerialList; + } + export interface ModifyHapgResponse { + /** + * The ARN of the high-availability partition group. + */ + HapgArn?: HapgArn; + } + export interface ModifyHsmRequest { + /** + * The ARN of the HSM to modify. + */ + HsmArn: HsmArn; + /** + * The new identifier of the subnet that the HSM is in. The new subnet must be in the same Availability Zone as the current subnet. + */ + SubnetId?: SubnetId; + /** + * The new IP address for the elastic network interface (ENI) attached to the HSM. If the HSM is moved to a different subnet, and an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the new subnet. + */ + EniIp?: IpAddress; + /** + * The new IAM role ARN. + */ + IamRoleArn?: IamRoleArn; + /** + * The new external ID. + */ + ExternalId?: ExternalId; + /** + * The new IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server. + */ + SyslogIp?: IpAddress; + } + export interface ModifyHsmResponse { + /** + * The ARN of the HSM. + */ + HsmArn?: HsmArn; + } + export interface ModifyLunaClientRequest { + /** + * The ARN of the client. + */ + ClientArn: ClientArn; + /** + * The new certificate for the client. + */ + Certificate: Certificate; + } + export interface ModifyLunaClientResponse { + /** + * The ARN of the client. + */ + ClientArn?: ClientArn; + } + export type PaginationToken = string; + export type PartitionArn = string; + export type PartitionList = PartitionArn[]; + export type PartitionSerial = string; + export type PartitionSerialList = PartitionSerial[]; + export interface RemoveTagsFromResourceRequest { + /** + * The Amazon Resource Name (ARN) of the AWS CloudHSM resource. + */ + ResourceArn: String; + /** + * The tag key or keys to remove. Specify only the tag key to remove (not the value). To overwrite the value for an existing tag, use AddTagsToResource. + */ + TagKeyList: TagKeyList; + } + export interface RemoveTagsFromResourceResponse { + /** + * The status of the operation. + */ + Status: String; + } + export type SshKey = string; + export type String = string; + export type SubnetId = string; + export type SubscriptionType = "PRODUCTION"|string; + export interface Tag { + /** + * The key of the tag. + */ + Key: TagKey; + /** + * The value of the tag. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export type TagValue = string; + export type Timestamp = string; + export type VpcId = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2014-05-30"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudHSM client. + */ + export import Types = CloudHSM; +} +export = CloudHSM; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsm.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsm.js new file mode 100644 index 0000000000000000000000000000000000000000..9ab842b0acd9895e1d5c504d216618b33b98dcf4 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsm.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudhsm'] = {}; +AWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']); +Object.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', { + get: function get() { + var model = require('../apis/cloudhsm-2014-05-30.min.json'); + model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudHSM; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsmv2.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsmv2.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..fdeb5f7a96b0e01642f50643960c60db665f1690 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsmv2.d.ts @@ -0,0 +1,672 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudHSMV2 extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudHSMV2.Types.ClientConfiguration) + config: Config & CloudHSMV2.Types.ClientConfiguration; + /** + * Copy an AWS CloudHSM cluster backup to a different region. + */ + copyBackupToRegion(params: CloudHSMV2.Types.CopyBackupToRegionRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.CopyBackupToRegionResponse) => void): Request; + /** + * Copy an AWS CloudHSM cluster backup to a different region. + */ + copyBackupToRegion(callback?: (err: AWSError, data: CloudHSMV2.Types.CopyBackupToRegionResponse) => void): Request; + /** + * Creates a new AWS CloudHSM cluster. + */ + createCluster(params: CloudHSMV2.Types.CreateClusterRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.CreateClusterResponse) => void): Request; + /** + * Creates a new AWS CloudHSM cluster. + */ + createCluster(callback?: (err: AWSError, data: CloudHSMV2.Types.CreateClusterResponse) => void): Request; + /** + * Creates a new hardware security module (HSM) in the specified AWS CloudHSM cluster. + */ + createHsm(params: CloudHSMV2.Types.CreateHsmRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.CreateHsmResponse) => void): Request; + /** + * Creates a new hardware security module (HSM) in the specified AWS CloudHSM cluster. + */ + createHsm(callback?: (err: AWSError, data: CloudHSMV2.Types.CreateHsmResponse) => void): Request; + /** + * Deletes a specified AWS CloudHSM backup. A backup can be restored up to 7 days after the DeleteBackup request is made. For more information on restoring a backup, see RestoreBackup. + */ + deleteBackup(params: CloudHSMV2.Types.DeleteBackupRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.DeleteBackupResponse) => void): Request; + /** + * Deletes a specified AWS CloudHSM backup. A backup can be restored up to 7 days after the DeleteBackup request is made. For more information on restoring a backup, see RestoreBackup. + */ + deleteBackup(callback?: (err: AWSError, data: CloudHSMV2.Types.DeleteBackupResponse) => void): Request; + /** + * Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, you must delete all HSMs in the cluster. To see if the cluster contains any HSMs, use DescribeClusters. To delete an HSM, use DeleteHsm. + */ + deleteCluster(params: CloudHSMV2.Types.DeleteClusterRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.DeleteClusterResponse) => void): Request; + /** + * Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, you must delete all HSMs in the cluster. To see if the cluster contains any HSMs, use DescribeClusters. To delete an HSM, use DeleteHsm. + */ + deleteCluster(callback?: (err: AWSError, data: CloudHSMV2.Types.DeleteClusterResponse) => void): Request; + /** + * Deletes the specified HSM. To specify an HSM, you can use its identifier (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of the HSM's ENI. You need to specify only one of these values. To find these values, use DescribeClusters. + */ + deleteHsm(params: CloudHSMV2.Types.DeleteHsmRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.DeleteHsmResponse) => void): Request; + /** + * Deletes the specified HSM. To specify an HSM, you can use its identifier (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of the HSM's ENI. You need to specify only one of these values. To find these values, use DescribeClusters. + */ + deleteHsm(callback?: (err: AWSError, data: CloudHSMV2.Types.DeleteHsmResponse) => void): Request; + /** + * Gets information about backups of AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the backups. When the response contains only a subset of backups, it includes a NextToken value. Use this value in a subsequent DescribeBackups request to get more backups. When you receive a response with no NextToken (or an empty or null value), that means there are no more backups to get. + */ + describeBackups(params: CloudHSMV2.Types.DescribeBackupsRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.DescribeBackupsResponse) => void): Request; + /** + * Gets information about backups of AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the backups. When the response contains only a subset of backups, it includes a NextToken value. Use this value in a subsequent DescribeBackups request to get more backups. When you receive a response with no NextToken (or an empty or null value), that means there are no more backups to get. + */ + describeBackups(callback?: (err: AWSError, data: CloudHSMV2.Types.DescribeBackupsResponse) => void): Request; + /** + * Gets information about AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the clusters. When the response contains only a subset of clusters, it includes a NextToken value. Use this value in a subsequent DescribeClusters request to get more clusters. When you receive a response with no NextToken (or an empty or null value), that means there are no more clusters to get. + */ + describeClusters(params: CloudHSMV2.Types.DescribeClustersRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.DescribeClustersResponse) => void): Request; + /** + * Gets information about AWS CloudHSM clusters. This is a paginated operation, which means that each response might contain only a subset of all the clusters. When the response contains only a subset of clusters, it includes a NextToken value. Use this value in a subsequent DescribeClusters request to get more clusters. When you receive a response with no NextToken (or an empty or null value), that means there are no more clusters to get. + */ + describeClusters(callback?: (err: AWSError, data: CloudHSMV2.Types.DescribeClustersResponse) => void): Request; + /** + * Claims an AWS CloudHSM cluster by submitting the cluster certificate issued by your issuing certificate authority (CA) and the CA's root certificate. Before you can claim a cluster, you must sign the cluster's certificate signing request (CSR) with your issuing CA. To get the cluster's CSR, use DescribeClusters. + */ + initializeCluster(params: CloudHSMV2.Types.InitializeClusterRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.InitializeClusterResponse) => void): Request; + /** + * Claims an AWS CloudHSM cluster by submitting the cluster certificate issued by your issuing certificate authority (CA) and the CA's root certificate. Before you can claim a cluster, you must sign the cluster's certificate signing request (CSR) with your issuing CA. To get the cluster's CSR, use DescribeClusters. + */ + initializeCluster(callback?: (err: AWSError, data: CloudHSMV2.Types.InitializeClusterResponse) => void): Request; + /** + * Gets a list of tags for the specified AWS CloudHSM cluster. This is a paginated operation, which means that each response might contain only a subset of all the tags. When the response contains only a subset of tags, it includes a NextToken value. Use this value in a subsequent ListTags request to get more tags. When you receive a response with no NextToken (or an empty or null value), that means there are no more tags to get. + */ + listTags(params: CloudHSMV2.Types.ListTagsRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.ListTagsResponse) => void): Request; + /** + * Gets a list of tags for the specified AWS CloudHSM cluster. This is a paginated operation, which means that each response might contain only a subset of all the tags. When the response contains only a subset of tags, it includes a NextToken value. Use this value in a subsequent ListTags request to get more tags. When you receive a response with no NextToken (or an empty or null value), that means there are no more tags to get. + */ + listTags(callback?: (err: AWSError, data: CloudHSMV2.Types.ListTagsResponse) => void): Request; + /** + * Modifies attributes for AWS CloudHSM backup. + */ + modifyBackupAttributes(params: CloudHSMV2.Types.ModifyBackupAttributesRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.ModifyBackupAttributesResponse) => void): Request; + /** + * Modifies attributes for AWS CloudHSM backup. + */ + modifyBackupAttributes(callback?: (err: AWSError, data: CloudHSMV2.Types.ModifyBackupAttributesResponse) => void): Request; + /** + * Modifies AWS CloudHSM cluster. + */ + modifyCluster(params: CloudHSMV2.Types.ModifyClusterRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.ModifyClusterResponse) => void): Request; + /** + * Modifies AWS CloudHSM cluster. + */ + modifyCluster(callback?: (err: AWSError, data: CloudHSMV2.Types.ModifyClusterResponse) => void): Request; + /** + * Restores a specified AWS CloudHSM backup that is in the PENDING_DELETION state. For mor information on deleting a backup, see DeleteBackup. + */ + restoreBackup(params: CloudHSMV2.Types.RestoreBackupRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.RestoreBackupResponse) => void): Request; + /** + * Restores a specified AWS CloudHSM backup that is in the PENDING_DELETION state. For mor information on deleting a backup, see DeleteBackup. + */ + restoreBackup(callback?: (err: AWSError, data: CloudHSMV2.Types.RestoreBackupResponse) => void): Request; + /** + * Adds or overwrites one or more tags for the specified AWS CloudHSM cluster. + */ + tagResource(params: CloudHSMV2.Types.TagResourceRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.TagResourceResponse) => void): Request; + /** + * Adds or overwrites one or more tags for the specified AWS CloudHSM cluster. + */ + tagResource(callback?: (err: AWSError, data: CloudHSMV2.Types.TagResourceResponse) => void): Request; + /** + * Removes the specified tag or tags from the specified AWS CloudHSM cluster. + */ + untagResource(params: CloudHSMV2.Types.UntagResourceRequest, callback?: (err: AWSError, data: CloudHSMV2.Types.UntagResourceResponse) => void): Request; + /** + * Removes the specified tag or tags from the specified AWS CloudHSM cluster. + */ + untagResource(callback?: (err: AWSError, data: CloudHSMV2.Types.UntagResourceResponse) => void): Request; +} +declare namespace CloudHSMV2 { + export interface Backup { + /** + * The identifier (ID) of the backup. + */ + BackupId: BackupId; + /** + * The state of the backup. + */ + BackupState?: BackupState; + /** + * The identifier (ID) of the cluster that was backed up. + */ + ClusterId?: ClusterId; + /** + * The date and time when the backup was created. + */ + CreateTimestamp?: Timestamp; + /** + * The date and time when the backup was copied from a source backup. + */ + CopyTimestamp?: Timestamp; + /** + * Specifies whether the service should exempt a backup from the retention policy for the cluster. True exempts a backup from the retention policy. False means the service applies the backup retention policy defined at the cluster. + */ + NeverExpires?: Boolean; + /** + * The AWS Region that contains the source backup from which the new backup was copied. + */ + SourceRegion?: Region; + /** + * The identifier (ID) of the source backup from which the new backup was copied. + */ + SourceBackup?: BackupId; + /** + * The identifier (ID) of the cluster containing the source backup from which the new backup was copied. + */ + SourceCluster?: ClusterId; + /** + * The date and time when the backup will be permanently deleted. + */ + DeleteTimestamp?: Timestamp; + /** + * The list of tags for the backup. + */ + TagList?: TagList; + } + export type BackupId = string; + export type BackupPolicy = "DEFAULT"|string; + export interface BackupRetentionPolicy { + /** + * The type of backup retention policy. For the DAYS type, the value is the number of days to retain backups. + */ + Type?: BackupRetentionType; + /** + * Use a value between 7 - 379. + */ + Value?: BackupRetentionValue; + } + export type BackupRetentionType = "DAYS"|string; + export type BackupRetentionValue = string; + export type BackupState = "CREATE_IN_PROGRESS"|"READY"|"DELETED"|"PENDING_DELETION"|string; + export type Backups = Backup[]; + export type BackupsMaxSize = number; + export type Boolean = boolean; + export type Cert = string; + export interface Certificates { + /** + * The cluster's certificate signing request (CSR). The CSR exists only when the cluster's state is UNINITIALIZED. + */ + ClusterCsr?: Cert; + /** + * The HSM certificate issued (signed) by the HSM hardware. + */ + HsmCertificate?: Cert; + /** + * The HSM hardware certificate issued (signed) by AWS CloudHSM. + */ + AwsHardwareCertificate?: Cert; + /** + * The HSM hardware certificate issued (signed) by the hardware manufacturer. + */ + ManufacturerHardwareCertificate?: Cert; + /** + * The cluster certificate issued (signed) by the issuing certificate authority (CA) of the cluster's owner. + */ + ClusterCertificate?: Cert; + } + export interface Cluster { + /** + * The cluster's backup policy. + */ + BackupPolicy?: BackupPolicy; + /** + * A policy that defines how the service retains backups. + */ + BackupRetentionPolicy?: BackupRetentionPolicy; + /** + * The cluster's identifier (ID). + */ + ClusterId?: ClusterId; + /** + * The date and time when the cluster was created. + */ + CreateTimestamp?: Timestamp; + /** + * Contains information about the HSMs in the cluster. + */ + Hsms?: Hsms; + /** + * The type of HSM that the cluster contains. + */ + HsmType?: HsmType; + /** + * The default password for the cluster's Pre-Crypto Officer (PRECO) user. + */ + PreCoPassword?: PreCoPassword; + /** + * The identifier (ID) of the cluster's security group. + */ + SecurityGroup?: SecurityGroup; + /** + * The identifier (ID) of the backup used to create the cluster. This value exists only when the cluster was created from a backup. + */ + SourceBackupId?: BackupId; + /** + * The cluster's state. + */ + State?: ClusterState; + /** + * A description of the cluster's state. + */ + StateMessage?: StateMessage; + /** + * A map from availability zone to the cluster’s subnet in that availability zone. + */ + SubnetMapping?: ExternalSubnetMapping; + /** + * The identifier (ID) of the virtual private cloud (VPC) that contains the cluster. + */ + VpcId?: VpcId; + /** + * Contains one or more certificates or a certificate signing request (CSR). + */ + Certificates?: Certificates; + /** + * The list of tags for the cluster. + */ + TagList?: TagList; + } + export type ClusterId = string; + export type ClusterState = "CREATE_IN_PROGRESS"|"UNINITIALIZED"|"INITIALIZE_IN_PROGRESS"|"INITIALIZED"|"ACTIVE"|"UPDATE_IN_PROGRESS"|"DELETE_IN_PROGRESS"|"DELETED"|"DEGRADED"|string; + export type Clusters = Cluster[]; + export type ClustersMaxSize = number; + export interface CopyBackupToRegionRequest { + /** + * The AWS region that will contain your copied CloudHSM cluster backup. + */ + DestinationRegion: Region; + /** + * The ID of the backup that will be copied to the destination region. + */ + BackupId: BackupId; + /** + * Tags to apply to the destination backup during creation. If you specify tags, only these tags will be applied to the destination backup. If you do not specify tags, the service copies tags from the source backup to the destination backup. + */ + TagList?: TagList; + } + export interface CopyBackupToRegionResponse { + /** + * Information on the backup that will be copied to the destination region, including CreateTimestamp, SourceBackup, SourceCluster, and Source Region. CreateTimestamp of the destination backup will be the same as that of the source backup. You will need to use the sourceBackupID returned in this operation to use the DescribeBackups operation on the backup that will be copied to the destination region. + */ + DestinationBackup?: DestinationBackup; + } + export interface CreateClusterRequest { + /** + * A policy that defines how the service retains backups. + */ + BackupRetentionPolicy?: BackupRetentionPolicy; + /** + * The type of HSM to use in the cluster. Currently the only allowed value is hsm1.medium. + */ + HsmType: HsmType; + /** + * The identifier (ID) of the cluster backup to restore. Use this value to restore the cluster from a backup instead of creating a new cluster. To find the backup ID, use DescribeBackups. + */ + SourceBackupId?: BackupId; + /** + * The identifiers (IDs) of the subnets where you are creating the cluster. You must specify at least one subnet. If you specify multiple subnets, they must meet the following criteria: All subnets must be in the same virtual private cloud (VPC). You can specify only one subnet per Availability Zone. + */ + SubnetIds: SubnetIds; + /** + * Tags to apply to the CloudHSM cluster during creation. + */ + TagList?: TagList; + } + export interface CreateClusterResponse { + /** + * Information about the cluster that was created. + */ + Cluster?: Cluster; + } + export interface CreateHsmRequest { + /** + * The identifier (ID) of the HSM's cluster. To find the cluster ID, use DescribeClusters. + */ + ClusterId: ClusterId; + /** + * The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use DescribeClusters. + */ + AvailabilityZone: ExternalAz; + /** + * The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one is chosen for you from that subnet. + */ + IpAddress?: IpAddress; + } + export interface CreateHsmResponse { + /** + * Information about the HSM that was created. + */ + Hsm?: Hsm; + } + export interface DeleteBackupRequest { + /** + * The ID of the backup to be deleted. To find the ID of a backup, use the DescribeBackups operation. + */ + BackupId: BackupId; + } + export interface DeleteBackupResponse { + /** + * Information on the Backup object deleted. + */ + Backup?: Backup; + } + export interface DeleteClusterRequest { + /** + * The identifier (ID) of the cluster that you are deleting. To find the cluster ID, use DescribeClusters. + */ + ClusterId: ClusterId; + } + export interface DeleteClusterResponse { + /** + * Information about the cluster that was deleted. + */ + Cluster?: Cluster; + } + export interface DeleteHsmRequest { + /** + * The identifier (ID) of the cluster that contains the HSM that you are deleting. + */ + ClusterId: ClusterId; + /** + * The identifier (ID) of the HSM that you are deleting. + */ + HsmId?: HsmId; + /** + * The identifier (ID) of the elastic network interface (ENI) of the HSM that you are deleting. + */ + EniId?: EniId; + /** + * The IP address of the elastic network interface (ENI) of the HSM that you are deleting. + */ + EniIp?: IpAddress; + } + export interface DeleteHsmResponse { + /** + * The identifier (ID) of the HSM that was deleted. + */ + HsmId?: HsmId; + } + export interface DescribeBackupsRequest { + /** + * The NextToken value that you received in the previous response. Use this value to get more backups. + */ + NextToken?: NextToken; + /** + * The maximum number of backups to return in the response. When there are more backups than the number you specify, the response contains a NextToken value. + */ + MaxResults?: BackupsMaxSize; + /** + * One or more filters to limit the items returned in the response. Use the backupIds filter to return only the specified backups. Specify backups by their backup identifier (ID). Use the sourceBackupIds filter to return only the backups created from a source backup. The sourceBackupID of a source backup is returned by the CopyBackupToRegion operation. Use the clusterIds filter to return only the backups for the specified clusters. Specify clusters by their cluster identifier (ID). Use the states filter to return only backups that match the specified state. Use the neverExpires filter to return backups filtered by the value in the neverExpires parameter. True returns all backups exempt from the backup retention policy. False returns all backups with a backup retention policy defined at the cluster. + */ + Filters?: Filters; + /** + * Designates whether or not to sort the return backups by ascending chronological order of generation. + */ + SortAscending?: Boolean; + } + export interface DescribeBackupsResponse { + /** + * A list of backups. + */ + Backups?: Backups; + /** + * An opaque string that indicates that the response contains only a subset of backups. Use this value in a subsequent DescribeBackups request to get more backups. + */ + NextToken?: NextToken; + } + export interface DescribeClustersRequest { + /** + * One or more filters to limit the items returned in the response. Use the clusterIds filter to return only the specified clusters. Specify clusters by their cluster identifier (ID). Use the vpcIds filter to return only the clusters in the specified virtual private clouds (VPCs). Specify VPCs by their VPC identifier (ID). Use the states filter to return only clusters that match the specified state. + */ + Filters?: Filters; + /** + * The NextToken value that you received in the previous response. Use this value to get more clusters. + */ + NextToken?: NextToken; + /** + * The maximum number of clusters to return in the response. When there are more clusters than the number you specify, the response contains a NextToken value. + */ + MaxResults?: ClustersMaxSize; + } + export interface DescribeClustersResponse { + /** + * A list of clusters. + */ + Clusters?: Clusters; + /** + * An opaque string that indicates that the response contains only a subset of clusters. Use this value in a subsequent DescribeClusters request to get more clusters. + */ + NextToken?: NextToken; + } + export interface DestinationBackup { + /** + * The date and time when both the source backup was created. + */ + CreateTimestamp?: Timestamp; + /** + * The AWS region that contains the source backup from which the new backup was copied. + */ + SourceRegion?: Region; + /** + * The identifier (ID) of the source backup from which the new backup was copied. + */ + SourceBackup?: BackupId; + /** + * The identifier (ID) of the cluster containing the source backup from which the new backup was copied. + */ + SourceCluster?: ClusterId; + } + export type EniId = string; + export type ExternalAz = string; + export type ExternalSubnetMapping = {[key: string]: SubnetId}; + export type Field = string; + export type Filters = {[key: string]: Strings}; + export interface Hsm { + /** + * The Availability Zone that contains the HSM. + */ + AvailabilityZone?: ExternalAz; + /** + * The identifier (ID) of the cluster that contains the HSM. + */ + ClusterId?: ClusterId; + /** + * The subnet that contains the HSM's elastic network interface (ENI). + */ + SubnetId?: SubnetId; + /** + * The identifier (ID) of the HSM's elastic network interface (ENI). + */ + EniId?: EniId; + /** + * The IP address of the HSM's elastic network interface (ENI). + */ + EniIp?: IpAddress; + /** + * The HSM's identifier (ID). + */ + HsmId: HsmId; + /** + * The HSM's state. + */ + State?: HsmState; + /** + * A description of the HSM's state. + */ + StateMessage?: String; + } + export type HsmId = string; + export type HsmState = "CREATE_IN_PROGRESS"|"ACTIVE"|"DEGRADED"|"DELETE_IN_PROGRESS"|"DELETED"|string; + export type HsmType = string; + export type Hsms = Hsm[]; + export interface InitializeClusterRequest { + /** + * The identifier (ID) of the cluster that you are claiming. To find the cluster ID, use DescribeClusters. + */ + ClusterId: ClusterId; + /** + * The cluster certificate issued (signed) by your issuing certificate authority (CA). The certificate must be in PEM format and can contain a maximum of 5000 characters. + */ + SignedCert: Cert; + /** + * The issuing certificate of the issuing certificate authority (CA) that issued (signed) the cluster certificate. You must use a self-signed certificate. The certificate used to sign the HSM CSR must be directly available, and thus must be the root certificate. The certificate must be in PEM format and can contain a maximum of 5000 characters. + */ + TrustAnchor: Cert; + } + export interface InitializeClusterResponse { + /** + * The cluster's state. + */ + State?: ClusterState; + /** + * A description of the cluster's state. + */ + StateMessage?: StateMessage; + } + export type IpAddress = string; + export interface ListTagsRequest { + /** + * The cluster identifier (ID) for the cluster whose tags you are getting. To find the cluster ID, use DescribeClusters. + */ + ResourceId: ResourceId; + /** + * The NextToken value that you received in the previous response. Use this value to get more tags. + */ + NextToken?: NextToken; + /** + * The maximum number of tags to return in the response. When there are more tags than the number you specify, the response contains a NextToken value. + */ + MaxResults?: MaxSize; + } + export interface ListTagsResponse { + /** + * A list of tags. + */ + TagList: TagList; + /** + * An opaque string that indicates that the response contains only a subset of tags. Use this value in a subsequent ListTags request to get more tags. + */ + NextToken?: NextToken; + } + export type MaxSize = number; + export interface ModifyBackupAttributesRequest { + /** + * The identifier (ID) of the backup to modify. To find the ID of a backup, use the DescribeBackups operation. + */ + BackupId: BackupId; + /** + * Specifies whether the service should exempt a backup from the retention policy for the cluster. True exempts a backup from the retention policy. False means the service applies the backup retention policy defined at the cluster. + */ + NeverExpires: Boolean; + } + export interface ModifyBackupAttributesResponse { + Backup?: Backup; + } + export interface ModifyClusterRequest { + /** + * A policy that defines how the service retains backups. + */ + BackupRetentionPolicy: BackupRetentionPolicy; + /** + * The identifier (ID) of the cluster that you want to modify. To find the cluster ID, use DescribeClusters. + */ + ClusterId: ClusterId; + } + export interface ModifyClusterResponse { + Cluster?: Cluster; + } + export type NextToken = string; + export type PreCoPassword = string; + export type Region = string; + export type ResourceId = string; + export interface RestoreBackupRequest { + /** + * The ID of the backup to be restored. To find the ID of a backup, use the DescribeBackups operation. + */ + BackupId: BackupId; + } + export interface RestoreBackupResponse { + /** + * Information on the Backup object created. + */ + Backup?: Backup; + } + export type SecurityGroup = string; + export type StateMessage = string; + export type String = string; + export type Strings = String[]; + export type SubnetId = string; + export type SubnetIds = SubnetId[]; + export interface Tag { + /** + * The key of the tag. + */ + Key: TagKey; + /** + * The value of the tag. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The cluster identifier (ID) for the cluster that you are tagging. To find the cluster ID, use DescribeClusters. + */ + ResourceId: ResourceId; + /** + * A list of one or more tags. + */ + TagList: TagList; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type Timestamp = Date; + export interface UntagResourceRequest { + /** + * The cluster identifier (ID) for the cluster whose tags you are removing. To find the cluster ID, use DescribeClusters. + */ + ResourceId: ResourceId; + /** + * A list of one or more tag keys for the tags that you are removing. Specify only the tag keys, not the tag values. + */ + TagKeyList: TagKeyList; + } + export interface UntagResourceResponse { + } + export type VpcId = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2017-04-28"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudHSMV2 client. + */ + export import Types = CloudHSMV2; +} +export = CloudHSMV2; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsmv2.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsmv2.js new file mode 100644 index 0000000000000000000000000000000000000000..bc607ed636c568a2783e74ea5dba36ceb94ad46d --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudhsmv2.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudhsmv2'] = {}; +AWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']); +Object.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', { + get: function get() { + var model = require('../apis/cloudhsmv2-2017-04-28.min.json'); + model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudHSMV2; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearch.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearch.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ce22d32626c567851b517d0df753a00320bc16e3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearch.d.ts @@ -0,0 +1,1052 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudSearch extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudSearch.Types.ClientConfiguration) + config: Config & CloudSearch.Types.ClientConfiguration; + /** + * Indexes the search suggestions. For more information, see Configuring Suggesters in the Amazon CloudSearch Developer Guide. + */ + buildSuggesters(params: CloudSearch.Types.BuildSuggestersRequest, callback?: (err: AWSError, data: CloudSearch.Types.BuildSuggestersResponse) => void): Request; + /** + * Indexes the search suggestions. For more information, see Configuring Suggesters in the Amazon CloudSearch Developer Guide. + */ + buildSuggesters(callback?: (err: AWSError, data: CloudSearch.Types.BuildSuggestersResponse) => void): Request; + /** + * Creates a new search domain. For more information, see Creating a Search Domain in the Amazon CloudSearch Developer Guide. + */ + createDomain(params: CloudSearch.Types.CreateDomainRequest, callback?: (err: AWSError, data: CloudSearch.Types.CreateDomainResponse) => void): Request; + /** + * Creates a new search domain. For more information, see Creating a Search Domain in the Amazon CloudSearch Developer Guide. + */ + createDomain(callback?: (err: AWSError, data: CloudSearch.Types.CreateDomainResponse) => void): Request; + /** + * Configures an analysis scheme that can be applied to a text or text-array field to define language-specific text processing options. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. + */ + defineAnalysisScheme(params: CloudSearch.Types.DefineAnalysisSchemeRequest, callback?: (err: AWSError, data: CloudSearch.Types.DefineAnalysisSchemeResponse) => void): Request; + /** + * Configures an analysis scheme that can be applied to a text or text-array field to define language-specific text processing options. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. + */ + defineAnalysisScheme(callback?: (err: AWSError, data: CloudSearch.Types.DefineAnalysisSchemeResponse) => void): Request; + /** + * Configures an Expression for the search domain. Used to create new expressions and modify existing ones. If the expression exists, the new configuration replaces the old one. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. + */ + defineExpression(params: CloudSearch.Types.DefineExpressionRequest, callback?: (err: AWSError, data: CloudSearch.Types.DefineExpressionResponse) => void): Request; + /** + * Configures an Expression for the search domain. Used to create new expressions and modify existing ones. If the expression exists, the new configuration replaces the old one. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. + */ + defineExpression(callback?: (err: AWSError, data: CloudSearch.Types.DefineExpressionResponse) => void): Request; + /** + * Configures an IndexField for the search domain. Used to create new fields and modify existing ones. You must specify the name of the domain you are configuring and an index field configuration. The index field configuration specifies a unique name, the index field type, and the options you want to configure for the field. The options you can specify depend on the IndexFieldType. If the field exists, the new configuration replaces the old one. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide. + */ + defineIndexField(params: CloudSearch.Types.DefineIndexFieldRequest, callback?: (err: AWSError, data: CloudSearch.Types.DefineIndexFieldResponse) => void): Request; + /** + * Configures an IndexField for the search domain. Used to create new fields and modify existing ones. You must specify the name of the domain you are configuring and an index field configuration. The index field configuration specifies a unique name, the index field type, and the options you want to configure for the field. The options you can specify depend on the IndexFieldType. If the field exists, the new configuration replaces the old one. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide. + */ + defineIndexField(callback?: (err: AWSError, data: CloudSearch.Types.DefineIndexFieldResponse) => void): Request; + /** + * Configures a suggester for a domain. A suggester enables you to display possible matches before users finish typing their queries. When you configure a suggester, you must specify the name of the text field you want to search for possible matches and a unique name for the suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. + */ + defineSuggester(params: CloudSearch.Types.DefineSuggesterRequest, callback?: (err: AWSError, data: CloudSearch.Types.DefineSuggesterResponse) => void): Request; + /** + * Configures a suggester for a domain. A suggester enables you to display possible matches before users finish typing their queries. When you configure a suggester, you must specify the name of the text field you want to search for possible matches and a unique name for the suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. + */ + defineSuggester(callback?: (err: AWSError, data: CloudSearch.Types.DefineSuggesterResponse) => void): Request; + /** + * Deletes an analysis scheme. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. + */ + deleteAnalysisScheme(params: CloudSearch.Types.DeleteAnalysisSchemeRequest, callback?: (err: AWSError, data: CloudSearch.Types.DeleteAnalysisSchemeResponse) => void): Request; + /** + * Deletes an analysis scheme. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. + */ + deleteAnalysisScheme(callback?: (err: AWSError, data: CloudSearch.Types.DeleteAnalysisSchemeResponse) => void): Request; + /** + * Permanently deletes a search domain and all of its data. Once a domain has been deleted, it cannot be recovered. For more information, see Deleting a Search Domain in the Amazon CloudSearch Developer Guide. + */ + deleteDomain(params: CloudSearch.Types.DeleteDomainRequest, callback?: (err: AWSError, data: CloudSearch.Types.DeleteDomainResponse) => void): Request; + /** + * Permanently deletes a search domain and all of its data. Once a domain has been deleted, it cannot be recovered. For more information, see Deleting a Search Domain in the Amazon CloudSearch Developer Guide. + */ + deleteDomain(callback?: (err: AWSError, data: CloudSearch.Types.DeleteDomainResponse) => void): Request; + /** + * Removes an Expression from the search domain. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. + */ + deleteExpression(params: CloudSearch.Types.DeleteExpressionRequest, callback?: (err: AWSError, data: CloudSearch.Types.DeleteExpressionResponse) => void): Request; + /** + * Removes an Expression from the search domain. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. + */ + deleteExpression(callback?: (err: AWSError, data: CloudSearch.Types.DeleteExpressionResponse) => void): Request; + /** + * Removes an IndexField from the search domain. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide. + */ + deleteIndexField(params: CloudSearch.Types.DeleteIndexFieldRequest, callback?: (err: AWSError, data: CloudSearch.Types.DeleteIndexFieldResponse) => void): Request; + /** + * Removes an IndexField from the search domain. For more information, see Configuring Index Fields in the Amazon CloudSearch Developer Guide. + */ + deleteIndexField(callback?: (err: AWSError, data: CloudSearch.Types.DeleteIndexFieldResponse) => void): Request; + /** + * Deletes a suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. + */ + deleteSuggester(params: CloudSearch.Types.DeleteSuggesterRequest, callback?: (err: AWSError, data: CloudSearch.Types.DeleteSuggesterResponse) => void): Request; + /** + * Deletes a suggester. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. + */ + deleteSuggester(callback?: (err: AWSError, data: CloudSearch.Types.DeleteSuggesterResponse) => void): Request; + /** + * Gets the analysis schemes configured for a domain. An analysis scheme defines language-specific text processing options for a text field. Can be limited to specific analysis schemes by name. By default, shows all analysis schemes and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. + */ + describeAnalysisSchemes(params: CloudSearch.Types.DescribeAnalysisSchemesRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeAnalysisSchemesResponse) => void): Request; + /** + * Gets the analysis schemes configured for a domain. An analysis scheme defines language-specific text processing options for a text field. Can be limited to specific analysis schemes by name. By default, shows all analysis schemes and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Analysis Schemes in the Amazon CloudSearch Developer Guide. + */ + describeAnalysisSchemes(callback?: (err: AWSError, data: CloudSearch.Types.DescribeAnalysisSchemesResponse) => void): Request; + /** + * Gets the availability options configured for a domain. By default, shows the configuration with any pending changes. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide. + */ + describeAvailabilityOptions(params: CloudSearch.Types.DescribeAvailabilityOptionsRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeAvailabilityOptionsResponse) => void): Request; + /** + * Gets the availability options configured for a domain. By default, shows the configuration with any pending changes. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide. + */ + describeAvailabilityOptions(callback?: (err: AWSError, data: CloudSearch.Types.DescribeAvailabilityOptionsResponse) => void): Request; + /** + * Returns the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. For more information, see Configuring Domain Endpoint Options in the Amazon CloudSearch Developer Guide. + */ + describeDomainEndpointOptions(params: CloudSearch.Types.DescribeDomainEndpointOptionsRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeDomainEndpointOptionsResponse) => void): Request; + /** + * Returns the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. For more information, see Configuring Domain Endpoint Options in the Amazon CloudSearch Developer Guide. + */ + describeDomainEndpointOptions(callback?: (err: AWSError, data: CloudSearch.Types.DescribeDomainEndpointOptionsResponse) => void): Request; + /** + * Gets information about the search domains owned by this account. Can be limited to specific domains. Shows all domains by default. To get the number of searchable documents in a domain, use the console or submit a matchall request to your domain's search endpoint: q=matchall&amp;q.parser=structured&amp;size=0. For more information, see Getting Information about a Search Domain in the Amazon CloudSearch Developer Guide. + */ + describeDomains(params: CloudSearch.Types.DescribeDomainsRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeDomainsResponse) => void): Request; + /** + * Gets information about the search domains owned by this account. Can be limited to specific domains. Shows all domains by default. To get the number of searchable documents in a domain, use the console or submit a matchall request to your domain's search endpoint: q=matchall&amp;q.parser=structured&amp;size=0. For more information, see Getting Information about a Search Domain in the Amazon CloudSearch Developer Guide. + */ + describeDomains(callback?: (err: AWSError, data: CloudSearch.Types.DescribeDomainsResponse) => void): Request; + /** + * Gets the expressions configured for the search domain. Can be limited to specific expressions by name. By default, shows all expressions and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. + */ + describeExpressions(params: CloudSearch.Types.DescribeExpressionsRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeExpressionsResponse) => void): Request; + /** + * Gets the expressions configured for the search domain. Can be limited to specific expressions by name. By default, shows all expressions and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Expressions in the Amazon CloudSearch Developer Guide. + */ + describeExpressions(callback?: (err: AWSError, data: CloudSearch.Types.DescribeExpressionsResponse) => void): Request; + /** + * Gets information about the index fields configured for the search domain. Can be limited to specific fields by name. By default, shows all fields and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Getting Domain Information in the Amazon CloudSearch Developer Guide. + */ + describeIndexFields(params: CloudSearch.Types.DescribeIndexFieldsRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeIndexFieldsResponse) => void): Request; + /** + * Gets information about the index fields configured for the search domain. Can be limited to specific fields by name. By default, shows all fields and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Getting Domain Information in the Amazon CloudSearch Developer Guide. + */ + describeIndexFields(callback?: (err: AWSError, data: CloudSearch.Types.DescribeIndexFieldsResponse) => void): Request; + /** + * Gets the scaling parameters configured for a domain. A domain's scaling parameters specify the desired search instance type and replication count. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide. + */ + describeScalingParameters(params: CloudSearch.Types.DescribeScalingParametersRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeScalingParametersResponse) => void): Request; + /** + * Gets the scaling parameters configured for a domain. A domain's scaling parameters specify the desired search instance type and replication count. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide. + */ + describeScalingParameters(callback?: (err: AWSError, data: CloudSearch.Types.DescribeScalingParametersResponse) => void): Request; + /** + * Gets information about the access policies that control access to the domain's document and search endpoints. By default, shows the configuration with any pending changes. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Access for a Search Domain in the Amazon CloudSearch Developer Guide. + */ + describeServiceAccessPolicies(params: CloudSearch.Types.DescribeServiceAccessPoliciesRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeServiceAccessPoliciesResponse) => void): Request; + /** + * Gets information about the access policies that control access to the domain's document and search endpoints. By default, shows the configuration with any pending changes. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Configuring Access for a Search Domain in the Amazon CloudSearch Developer Guide. + */ + describeServiceAccessPolicies(callback?: (err: AWSError, data: CloudSearch.Types.DescribeServiceAccessPoliciesResponse) => void): Request; + /** + * Gets the suggesters configured for a domain. A suggester enables you to display possible matches before users finish typing their queries. Can be limited to specific suggesters by name. By default, shows all suggesters and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. + */ + describeSuggesters(params: CloudSearch.Types.DescribeSuggestersRequest, callback?: (err: AWSError, data: CloudSearch.Types.DescribeSuggestersResponse) => void): Request; + /** + * Gets the suggesters configured for a domain. A suggester enables you to display possible matches before users finish typing their queries. Can be limited to specific suggesters by name. By default, shows all suggesters and includes any pending changes to the configuration. Set the Deployed option to true to show the active configuration and exclude pending changes. For more information, see Getting Search Suggestions in the Amazon CloudSearch Developer Guide. + */ + describeSuggesters(callback?: (err: AWSError, data: CloudSearch.Types.DescribeSuggestersResponse) => void): Request; + /** + * Tells the search domain to start indexing its documents using the latest indexing options. This operation must be invoked to activate options whose OptionStatus is RequiresIndexDocuments. + */ + indexDocuments(params: CloudSearch.Types.IndexDocumentsRequest, callback?: (err: AWSError, data: CloudSearch.Types.IndexDocumentsResponse) => void): Request; + /** + * Tells the search domain to start indexing its documents using the latest indexing options. This operation must be invoked to activate options whose OptionStatus is RequiresIndexDocuments. + */ + indexDocuments(callback?: (err: AWSError, data: CloudSearch.Types.IndexDocumentsResponse) => void): Request; + /** + * Lists all search domains owned by an account. + */ + listDomainNames(callback?: (err: AWSError, data: CloudSearch.Types.ListDomainNamesResponse) => void): Request; + /** + * Configures the availability options for a domain. Enabling the Multi-AZ option expands an Amazon CloudSearch domain to an additional Availability Zone in the same Region to increase fault tolerance in the event of a service disruption. Changes to the Multi-AZ option can take about half an hour to become active. For more information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide. + */ + updateAvailabilityOptions(params: CloudSearch.Types.UpdateAvailabilityOptionsRequest, callback?: (err: AWSError, data: CloudSearch.Types.UpdateAvailabilityOptionsResponse) => void): Request; + /** + * Configures the availability options for a domain. Enabling the Multi-AZ option expands an Amazon CloudSearch domain to an additional Availability Zone in the same Region to increase fault tolerance in the event of a service disruption. Changes to the Multi-AZ option can take about half an hour to become active. For more information, see Configuring Availability Options in the Amazon CloudSearch Developer Guide. + */ + updateAvailabilityOptions(callback?: (err: AWSError, data: CloudSearch.Types.UpdateAvailabilityOptionsResponse) => void): Request; + /** + * Updates the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. For more information, see Configuring Domain Endpoint Options in the Amazon CloudSearch Developer Guide. + */ + updateDomainEndpointOptions(params: CloudSearch.Types.UpdateDomainEndpointOptionsRequest, callback?: (err: AWSError, data: CloudSearch.Types.UpdateDomainEndpointOptionsResponse) => void): Request; + /** + * Updates the domain's endpoint options, specifically whether all requests to the domain must arrive over HTTPS. For more information, see Configuring Domain Endpoint Options in the Amazon CloudSearch Developer Guide. + */ + updateDomainEndpointOptions(callback?: (err: AWSError, data: CloudSearch.Types.UpdateDomainEndpointOptionsResponse) => void): Request; + /** + * Configures scaling parameters for a domain. A domain's scaling parameters specify the desired search instance type and replication count. Amazon CloudSearch will still automatically scale your domain based on the volume of data and traffic, but not below the desired instance type and replication count. If the Multi-AZ option is enabled, these values control the resources used per Availability Zone. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide. + */ + updateScalingParameters(params: CloudSearch.Types.UpdateScalingParametersRequest, callback?: (err: AWSError, data: CloudSearch.Types.UpdateScalingParametersResponse) => void): Request; + /** + * Configures scaling parameters for a domain. A domain's scaling parameters specify the desired search instance type and replication count. Amazon CloudSearch will still automatically scale your domain based on the volume of data and traffic, but not below the desired instance type and replication count. If the Multi-AZ option is enabled, these values control the resources used per Availability Zone. For more information, see Configuring Scaling Options in the Amazon CloudSearch Developer Guide. + */ + updateScalingParameters(callback?: (err: AWSError, data: CloudSearch.Types.UpdateScalingParametersResponse) => void): Request; + /** + * Configures the access rules that control access to the domain's document and search endpoints. For more information, see Configuring Access for an Amazon CloudSearch Domain. + */ + updateServiceAccessPolicies(params: CloudSearch.Types.UpdateServiceAccessPoliciesRequest, callback?: (err: AWSError, data: CloudSearch.Types.UpdateServiceAccessPoliciesResponse) => void): Request; + /** + * Configures the access rules that control access to the domain's document and search endpoints. For more information, see Configuring Access for an Amazon CloudSearch Domain. + */ + updateServiceAccessPolicies(callback?: (err: AWSError, data: CloudSearch.Types.UpdateServiceAccessPoliciesResponse) => void): Request; +} +declare namespace CloudSearch { + export type APIVersion = string; + export type ARN = string; + export interface AccessPoliciesStatus { + Options: PolicyDocument; + Status: OptionStatus; + } + export type AlgorithmicStemming = "none"|"minimal"|"light"|"full"|string; + export interface AnalysisOptions { + /** + * A JSON object that defines synonym groups and aliases. A synonym group is an array of arrays, where each sub-array is a group of terms where each term in the group is considered a synonym of every other term in the group. The aliases value is an object that contains a collection of string:value pairs where the string specifies a term and the array of values specifies each of the aliases for that term. An alias is considered a synonym of the specified term, but the term is not considered a synonym of the alias. For more information about specifying synonyms, see Synonyms in the Amazon CloudSearch Developer Guide. + */ + Synonyms?: String; + /** + * A JSON array of terms to ignore during indexing and searching. For example, ["a", "an", "the", "of"]. The stopwords dictionary must explicitly list each word you want to ignore. Wildcards and regular expressions are not supported. + */ + Stopwords?: String; + /** + * A JSON object that contains a collection of string:value pairs that each map a term to its stem. For example, {"term1": "stem1", "term2": "stem2", "term3": "stem3"}. The stemming dictionary is applied in addition to any algorithmic stemming. This enables you to override the results of the algorithmic stemming to correct specific cases of overstemming or understemming. The maximum size of a stemming dictionary is 500 KB. + */ + StemmingDictionary?: String; + /** + * A JSON array that contains a collection of terms, tokens, readings and part of speech for Japanese Tokenizaiton. The Japanese tokenization dictionary enables you to override the default tokenization for selected terms. This is only valid for Japanese language fields. + */ + JapaneseTokenizationDictionary?: String; + /** + * The level of algorithmic stemming to perform: none, minimal, light, or full. The available levels vary depending on the language. For more information, see Language Specific Text Processing Settings in the Amazon CloudSearch Developer Guide + */ + AlgorithmicStemming?: AlgorithmicStemming; + } + export interface AnalysisScheme { + AnalysisSchemeName: StandardName; + AnalysisSchemeLanguage: AnalysisSchemeLanguage; + AnalysisOptions?: AnalysisOptions; + } + export type AnalysisSchemeLanguage = "ar"|"bg"|"ca"|"cs"|"da"|"de"|"el"|"en"|"es"|"eu"|"fa"|"fi"|"fr"|"ga"|"gl"|"he"|"hi"|"hu"|"hy"|"id"|"it"|"ja"|"ko"|"lv"|"mul"|"nl"|"no"|"pt"|"ro"|"ru"|"sv"|"th"|"tr"|"zh-Hans"|"zh-Hant"|string; + export interface AnalysisSchemeStatus { + Options: AnalysisScheme; + Status: OptionStatus; + } + export type AnalysisSchemeStatusList = AnalysisSchemeStatus[]; + export interface AvailabilityOptionsStatus { + /** + * The availability options configured for the domain. + */ + Options: MultiAZ; + Status: OptionStatus; + } + export type Boolean = boolean; + export interface BuildSuggestersRequest { + DomainName: DomainName; + } + export interface BuildSuggestersResponse { + FieldNames?: FieldNameList; + } + export interface CreateDomainRequest { + /** + * A name for the domain you are creating. Allowed characters are a-z (lower-case letters), 0-9, and hyphen (-). Domain names must start with a letter or number and be at least 3 and no more than 28 characters long. + */ + DomainName: DomainName; + } + export interface CreateDomainResponse { + DomainStatus?: DomainStatus; + } + export interface DateArrayOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: FieldValue; + /** + * A list of source fields to map to the field. + */ + SourceFields?: FieldNameCommaList; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + } + export interface DateOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: FieldValue; + SourceField?: FieldName; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + /** + * Whether the field can be used to sort the search results. + */ + SortEnabled?: Boolean; + } + export interface DefineAnalysisSchemeRequest { + DomainName: DomainName; + AnalysisScheme: AnalysisScheme; + } + export interface DefineAnalysisSchemeResponse { + AnalysisScheme: AnalysisSchemeStatus; + } + export interface DefineExpressionRequest { + DomainName: DomainName; + Expression: Expression; + } + export interface DefineExpressionResponse { + Expression: ExpressionStatus; + } + export interface DefineIndexFieldRequest { + DomainName: DomainName; + /** + * The index field and field options you want to configure. + */ + IndexField: IndexField; + } + export interface DefineIndexFieldResponse { + IndexField: IndexFieldStatus; + } + export interface DefineSuggesterRequest { + DomainName: DomainName; + Suggester: Suggester; + } + export interface DefineSuggesterResponse { + Suggester: SuggesterStatus; + } + export interface DeleteAnalysisSchemeRequest { + DomainName: DomainName; + /** + * The name of the analysis scheme you want to delete. + */ + AnalysisSchemeName: StandardName; + } + export interface DeleteAnalysisSchemeResponse { + /** + * The status of the analysis scheme being deleted. + */ + AnalysisScheme: AnalysisSchemeStatus; + } + export interface DeleteDomainRequest { + /** + * The name of the domain you want to permanently delete. + */ + DomainName: DomainName; + } + export interface DeleteDomainResponse { + DomainStatus?: DomainStatus; + } + export interface DeleteExpressionRequest { + DomainName: DomainName; + /** + * The name of the Expression to delete. + */ + ExpressionName: StandardName; + } + export interface DeleteExpressionResponse { + /** + * The status of the expression being deleted. + */ + Expression: ExpressionStatus; + } + export interface DeleteIndexFieldRequest { + DomainName: DomainName; + /** + * The name of the index field your want to remove from the domain's indexing options. + */ + IndexFieldName: DynamicFieldName; + } + export interface DeleteIndexFieldResponse { + /** + * The status of the index field being deleted. + */ + IndexField: IndexFieldStatus; + } + export interface DeleteSuggesterRequest { + DomainName: DomainName; + /** + * Specifies the name of the suggester you want to delete. + */ + SuggesterName: StandardName; + } + export interface DeleteSuggesterResponse { + /** + * The status of the suggester being deleted. + */ + Suggester: SuggesterStatus; + } + export interface DescribeAnalysisSchemesRequest { + /** + * The name of the domain you want to describe. + */ + DomainName: DomainName; + /** + * The analysis schemes you want to describe. + */ + AnalysisSchemeNames?: StandardNameList; + /** + * Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. + */ + Deployed?: Boolean; + } + export interface DescribeAnalysisSchemesResponse { + /** + * The analysis scheme descriptions. + */ + AnalysisSchemes: AnalysisSchemeStatusList; + } + export interface DescribeAvailabilityOptionsRequest { + /** + * The name of the domain you want to describe. + */ + DomainName: DomainName; + /** + * Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. + */ + Deployed?: Boolean; + } + export interface DescribeAvailabilityOptionsResponse { + /** + * The availability options configured for the domain. Indicates whether Multi-AZ is enabled for the domain. + */ + AvailabilityOptions?: AvailabilityOptionsStatus; + } + export interface DescribeDomainEndpointOptionsRequest { + /** + * A string that represents the name of a domain. + */ + DomainName: DomainName; + /** + * Whether to retrieve the latest configuration (which might be in a Processing state) or the current, active configuration. Defaults to false. + */ + Deployed?: Boolean; + } + export interface DescribeDomainEndpointOptionsResponse { + /** + * The status and configuration of a search domain's endpoint options. + */ + DomainEndpointOptions?: DomainEndpointOptionsStatus; + } + export interface DescribeDomainsRequest { + /** + * The names of the domains you want to include in the response. + */ + DomainNames?: DomainNameList; + } + export interface DescribeDomainsResponse { + DomainStatusList: DomainStatusList; + } + export interface DescribeExpressionsRequest { + /** + * The name of the domain you want to describe. + */ + DomainName: DomainName; + /** + * Limits the DescribeExpressions response to the specified expressions. If not specified, all expressions are shown. + */ + ExpressionNames?: StandardNameList; + /** + * Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. + */ + Deployed?: Boolean; + } + export interface DescribeExpressionsResponse { + /** + * The expressions configured for the domain. + */ + Expressions: ExpressionStatusList; + } + export interface DescribeIndexFieldsRequest { + /** + * The name of the domain you want to describe. + */ + DomainName: DomainName; + /** + * A list of the index fields you want to describe. If not specified, information is returned for all configured index fields. + */ + FieldNames?: DynamicFieldNameList; + /** + * Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. + */ + Deployed?: Boolean; + } + export interface DescribeIndexFieldsResponse { + /** + * The index fields configured for the domain. + */ + IndexFields: IndexFieldStatusList; + } + export interface DescribeScalingParametersRequest { + DomainName: DomainName; + } + export interface DescribeScalingParametersResponse { + ScalingParameters: ScalingParametersStatus; + } + export interface DescribeServiceAccessPoliciesRequest { + /** + * The name of the domain you want to describe. + */ + DomainName: DomainName; + /** + * Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. + */ + Deployed?: Boolean; + } + export interface DescribeServiceAccessPoliciesResponse { + /** + * The access rules configured for the domain specified in the request. + */ + AccessPolicies: AccessPoliciesStatus; + } + export interface DescribeSuggestersRequest { + /** + * The name of the domain you want to describe. + */ + DomainName: DomainName; + /** + * The suggesters you want to describe. + */ + SuggesterNames?: StandardNameList; + /** + * Whether to display the deployed configuration (true) or include any pending changes (false). Defaults to false. + */ + Deployed?: Boolean; + } + export interface DescribeSuggestersResponse { + /** + * The suggesters configured for the domain specified in the request. + */ + Suggesters: SuggesterStatusList; + } + export interface DocumentSuggesterOptions { + /** + * The name of the index field you want to use for suggestions. + */ + SourceField: FieldName; + /** + * The level of fuzziness allowed when suggesting matches for a string: none, low, or high. With none, the specified string is treated as an exact prefix. With low, suggestions must differ from the specified string by no more than one character. With high, suggestions can differ by up to two characters. The default is none. + */ + FuzzyMatching?: SuggesterFuzzyMatching; + /** + * An expression that computes a score for each suggestion to control how they are sorted. The scores are rounded to the nearest integer, with a floor of 0 and a ceiling of 2^31-1. A document's relevance score is not computed for suggestions, so sort expressions cannot reference the _score value. To sort suggestions using a numeric field or existing expression, simply specify the name of the field or expression. If no expression is configured for the suggester, the suggestions are sorted with the closest matches listed first. + */ + SortExpression?: String; + } + export interface DomainEndpointOptions { + /** + * Whether the domain is HTTPS only enabled. + */ + EnforceHTTPS?: Boolean; + /** + * The minimum required TLS version + */ + TLSSecurityPolicy?: TLSSecurityPolicy; + } + export interface DomainEndpointOptionsStatus { + /** + * The domain endpoint options configured for the domain. + */ + Options: DomainEndpointOptions; + /** + * The status of the configured domain endpoint options. + */ + Status: OptionStatus; + } + export type DomainId = string; + export type DomainName = string; + export type DomainNameList = DomainName[]; + export type DomainNameMap = {[key: string]: APIVersion}; + export interface DomainStatus { + DomainId: DomainId; + DomainName: DomainName; + ARN?: ARN; + /** + * True if the search domain is created. It can take several minutes to initialize a domain when CreateDomain is called. Newly created search domains are returned from DescribeDomains with a false value for Created until domain creation is complete. + */ + Created?: Boolean; + /** + * True if the search domain has been deleted. The system must clean up resources dedicated to the search domain when DeleteDomain is called. Newly deleted search domains are returned from DescribeDomains with a true value for IsDeleted for several minutes until resource cleanup is complete. + */ + Deleted?: Boolean; + /** + * The service endpoint for updating documents in a search domain. + */ + DocService?: ServiceEndpoint; + /** + * The service endpoint for requesting search results from a search domain. + */ + SearchService?: ServiceEndpoint; + /** + * True if IndexDocuments needs to be called to activate the current domain configuration. + */ + RequiresIndexDocuments: Boolean; + /** + * True if processing is being done to activate the current domain configuration. + */ + Processing?: Boolean; + /** + * The instance type that is being used to process search requests. + */ + SearchInstanceType?: SearchInstanceType; + /** + * The number of partitions across which the search index is spread. + */ + SearchPartitionCount?: PartitionCount; + /** + * The number of search instances that are available to process search requests. + */ + SearchInstanceCount?: InstanceCount; + Limits?: Limits; + } + export type DomainStatusList = DomainStatus[]; + export type Double = number; + export interface DoubleArrayOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: Double; + /** + * A list of source fields to map to the field. + */ + SourceFields?: FieldNameCommaList; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + } + export interface DoubleOptions { + /** + * A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document. + */ + DefaultValue?: Double; + /** + * The name of the source field to map to the field. + */ + SourceField?: FieldName; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + /** + * Whether the field can be used to sort the search results. + */ + SortEnabled?: Boolean; + } + export type DynamicFieldName = string; + export type DynamicFieldNameList = DynamicFieldName[]; + export interface Expression { + ExpressionName: StandardName; + ExpressionValue: ExpressionValue; + } + export interface ExpressionStatus { + /** + * The expression that is evaluated for sorting while processing a search request. + */ + Options: Expression; + Status: OptionStatus; + } + export type ExpressionStatusList = ExpressionStatus[]; + export type ExpressionValue = string; + export type FieldName = string; + export type FieldNameCommaList = string; + export type FieldNameList = FieldName[]; + export type FieldValue = string; + export interface IndexDocumentsRequest { + DomainName: DomainName; + } + export interface IndexDocumentsResponse { + /** + * The names of the fields that are currently being indexed. + */ + FieldNames?: FieldNameList; + } + export interface IndexField { + /** + * A string that represents the name of an index field. CloudSearch supports regular index fields as well as dynamic fields. A dynamic field's name defines a pattern that begins or ends with a wildcard. Any document fields that don't map to a regular index field but do match a dynamic field's pattern are configured with the dynamic field's indexing options. Regular field names begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Dynamic field names must begin or end with a wildcard (*). The wildcard can also be the only character in a dynamic field name. Multiple wildcards, and wildcards embedded within a string are not supported. The name score is reserved and cannot be used as a field name. To reference a document's ID, you can use the name _id. + */ + IndexFieldName: DynamicFieldName; + IndexFieldType: IndexFieldType; + IntOptions?: IntOptions; + DoubleOptions?: DoubleOptions; + LiteralOptions?: LiteralOptions; + TextOptions?: TextOptions; + DateOptions?: DateOptions; + LatLonOptions?: LatLonOptions; + IntArrayOptions?: IntArrayOptions; + DoubleArrayOptions?: DoubleArrayOptions; + LiteralArrayOptions?: LiteralArrayOptions; + TextArrayOptions?: TextArrayOptions; + DateArrayOptions?: DateArrayOptions; + } + export interface IndexFieldStatus { + Options: IndexField; + Status: OptionStatus; + } + export type IndexFieldStatusList = IndexFieldStatus[]; + export type IndexFieldType = "int"|"double"|"literal"|"text"|"date"|"latlon"|"int-array"|"double-array"|"literal-array"|"text-array"|"date-array"|string; + export type InstanceCount = number; + export interface IntArrayOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: Long; + /** + * A list of source fields to map to the field. + */ + SourceFields?: FieldNameCommaList; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + } + export interface IntOptions { + /** + * A value to use for the field if the field isn't specified for a document. This can be important if you are using the field in an expression and that field is not present in every document. + */ + DefaultValue?: Long; + /** + * The name of the source field to map to the field. + */ + SourceField?: FieldName; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + /** + * Whether the field can be used to sort the search results. + */ + SortEnabled?: Boolean; + } + export interface LatLonOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: FieldValue; + SourceField?: FieldName; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + /** + * Whether the field can be used to sort the search results. + */ + SortEnabled?: Boolean; + } + export interface Limits { + MaximumReplicationCount: MaximumReplicationCount; + MaximumPartitionCount: MaximumPartitionCount; + } + export interface ListDomainNamesResponse { + /** + * The names of the search domains owned by an account. + */ + DomainNames?: DomainNameMap; + } + export interface LiteralArrayOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: FieldValue; + /** + * A list of source fields to map to the field. + */ + SourceFields?: FieldNameCommaList; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + } + export interface LiteralOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: FieldValue; + SourceField?: FieldName; + /** + * Whether facet information can be returned for the field. + */ + FacetEnabled?: Boolean; + /** + * Whether the contents of the field are searchable. + */ + SearchEnabled?: Boolean; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + /** + * Whether the field can be used to sort the search results. + */ + SortEnabled?: Boolean; + } + export type Long = number; + export type MaximumPartitionCount = number; + export type MaximumReplicationCount = number; + export type MultiAZ = boolean; + export type OptionState = "RequiresIndexDocuments"|"Processing"|"Active"|"FailedToValidate"|string; + export interface OptionStatus { + /** + * A timestamp for when this option was created. + */ + CreationDate: UpdateTimestamp; + /** + * A timestamp for when this option was last updated. + */ + UpdateDate: UpdateTimestamp; + /** + * A unique integer that indicates when this option was last updated. + */ + UpdateVersion?: UIntValue; + /** + * The state of processing a change to an option. Possible values: RequiresIndexDocuments: the option's latest value will not be deployed until IndexDocuments has been called and indexing is complete. Processing: the option's latest value is in the process of being activated. Active: the option's latest value is completely deployed. FailedToValidate: the option value is not compatible with the domain's data and cannot be used to index the data. You must either modify the option value or update or remove the incompatible documents. + */ + State: OptionState; + /** + * Indicates that the option will be deleted once processing is complete. + */ + PendingDeletion?: Boolean; + } + export type PartitionCount = number; + export type PartitionInstanceType = "search.m1.small"|"search.m1.large"|"search.m2.xlarge"|"search.m2.2xlarge"|"search.m3.medium"|"search.m3.large"|"search.m3.xlarge"|"search.m3.2xlarge"|"search.small"|"search.medium"|"search.large"|"search.xlarge"|"search.2xlarge"|string; + export type PolicyDocument = string; + export interface ScalingParameters { + /** + * The instance type that you want to preconfigure for your domain. For example, search.m1.small. + */ + DesiredInstanceType?: PartitionInstanceType; + /** + * The number of replicas you want to preconfigure for each index partition. + */ + DesiredReplicationCount?: UIntValue; + /** + * The number of partitions you want to preconfigure for your domain. Only valid when you select m2.2xlarge as the desired instance type. + */ + DesiredPartitionCount?: UIntValue; + } + export interface ScalingParametersStatus { + Options: ScalingParameters; + Status: OptionStatus; + } + export type SearchInstanceType = string; + export interface ServiceEndpoint { + Endpoint?: ServiceUrl; + } + export type ServiceUrl = string; + export type StandardName = string; + export type StandardNameList = StandardName[]; + export type String = string; + export interface Suggester { + SuggesterName: StandardName; + DocumentSuggesterOptions: DocumentSuggesterOptions; + } + export type SuggesterFuzzyMatching = "none"|"low"|"high"|string; + export interface SuggesterStatus { + Options: Suggester; + Status: OptionStatus; + } + export type SuggesterStatusList = SuggesterStatus[]; + export type TLSSecurityPolicy = "Policy-Min-TLS-1-0-2019-07"|"Policy-Min-TLS-1-2-2019-07"|string; + export interface TextArrayOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: FieldValue; + /** + * A list of source fields to map to the field. + */ + SourceFields?: FieldNameCommaList; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + /** + * Whether highlights can be returned for the field. + */ + HighlightEnabled?: Boolean; + /** + * The name of an analysis scheme for a text-array field. + */ + AnalysisScheme?: Word; + } + export interface TextOptions { + /** + * A value to use for the field if the field isn't specified for a document. + */ + DefaultValue?: FieldValue; + SourceField?: FieldName; + /** + * Whether the contents of the field can be returned in the search results. + */ + ReturnEnabled?: Boolean; + /** + * Whether the field can be used to sort the search results. + */ + SortEnabled?: Boolean; + /** + * Whether highlights can be returned for the field. + */ + HighlightEnabled?: Boolean; + /** + * The name of an analysis scheme for a text field. + */ + AnalysisScheme?: Word; + } + export type UIntValue = number; + export interface UpdateAvailabilityOptionsRequest { + DomainName: DomainName; + /** + * You expand an existing search domain to a second Availability Zone by setting the Multi-AZ option to true. Similarly, you can turn off the Multi-AZ option to downgrade the domain to a single Availability Zone by setting the Multi-AZ option to false. + */ + MultiAZ: Boolean; + } + export interface UpdateAvailabilityOptionsResponse { + /** + * The newly-configured availability options. Indicates whether Multi-AZ is enabled for the domain. + */ + AvailabilityOptions?: AvailabilityOptionsStatus; + } + export interface UpdateDomainEndpointOptionsRequest { + /** + * A string that represents the name of a domain. + */ + DomainName: DomainName; + /** + * Whether to require that all requests to the domain arrive over HTTPS. We recommend Policy-Min-TLS-1-2-2019-07 for TLSSecurityPolicy. For compatibility with older clients, the default is Policy-Min-TLS-1-0-2019-07. + */ + DomainEndpointOptions: DomainEndpointOptions; + } + export interface UpdateDomainEndpointOptionsResponse { + /** + * The newly-configured domain endpoint options. + */ + DomainEndpointOptions?: DomainEndpointOptionsStatus; + } + export interface UpdateScalingParametersRequest { + DomainName: DomainName; + ScalingParameters: ScalingParameters; + } + export interface UpdateScalingParametersResponse { + ScalingParameters: ScalingParametersStatus; + } + export interface UpdateServiceAccessPoliciesRequest { + DomainName: DomainName; + /** + * The access rules you want to configure. These rules replace any existing rules. + */ + AccessPolicies: PolicyDocument; + } + export interface UpdateServiceAccessPoliciesResponse { + /** + * The access rules configured for the domain. + */ + AccessPolicies: AccessPoliciesStatus; + } + export type UpdateTimestamp = Date; + export type Word = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2011-02-01"|"2013-01-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudSearch client. + */ + export import Types = CloudSearch; +} +export = CloudSearch; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearch.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearch.js new file mode 100644 index 0000000000000000000000000000000000000000..3bd2fde941a27b1c7114e32f043e80327aad1b97 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearch.js @@ -0,0 +1,27 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudsearch'] = {}; +AWS.CloudSearch = Service.defineService('cloudsearch', ['2011-02-01', '2013-01-01']); +Object.defineProperty(apiLoader.services['cloudsearch'], '2011-02-01', { + get: function get() { + var model = require('../apis/cloudsearch-2011-02-01.min.json'); + model.paginators = require('../apis/cloudsearch-2011-02-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); +Object.defineProperty(apiLoader.services['cloudsearch'], '2013-01-01', { + get: function get() { + var model = require('../apis/cloudsearch-2013-01-01.min.json'); + model.paginators = require('../apis/cloudsearch-2013-01-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudSearch; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearchdomain.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearchdomain.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..45e3e378534e6d7ff4c636a392d060350ddb4ead --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearchdomain.d.ts @@ -0,0 +1,358 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +import {Readable} from 'stream'; +interface Blob {} +declare class CloudSearchDomain extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudSearchDomain.Types.ClientConfiguration) + config: Config & CloudSearchDomain.Types.ClientConfiguration; + /** + * Retrieves a list of documents that match the specified search criteria. How you specify the search criteria depends on which query parser you use. Amazon CloudSearch supports four query parsers: simple: search all text and text-array fields for the specified string. Search for phrases, individual terms, and prefixes. structured: search specific fields, construct compound queries using Boolean operators, and use advanced features such as term boosting and proximity searching. lucene: specify search criteria using the Apache Lucene query parser syntax. dismax: specify search criteria using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser. For more information, see Searching Your Data in the Amazon CloudSearch Developer Guide. The endpoint for submitting Search requests is domain-specific. You submit search requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. + */ + search(params: CloudSearchDomain.Types.SearchRequest, callback?: (err: AWSError, data: CloudSearchDomain.Types.SearchResponse) => void): Request; + /** + * Retrieves a list of documents that match the specified search criteria. How you specify the search criteria depends on which query parser you use. Amazon CloudSearch supports four query parsers: simple: search all text and text-array fields for the specified string. Search for phrases, individual terms, and prefixes. structured: search specific fields, construct compound queries using Boolean operators, and use advanced features such as term boosting and proximity searching. lucene: specify search criteria using the Apache Lucene query parser syntax. dismax: specify search criteria using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser. For more information, see Searching Your Data in the Amazon CloudSearch Developer Guide. The endpoint for submitting Search requests is domain-specific. You submit search requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. + */ + search(callback?: (err: AWSError, data: CloudSearchDomain.Types.SearchResponse) => void): Request; + /** + * Retrieves autocomplete suggestions for a partial query string. You can use suggestions enable you to display likely matches before users finish typing. In Amazon CloudSearch, suggestions are based on the contents of a particular text field. When you request suggestions, Amazon CloudSearch finds all of the documents whose values in the suggester field start with the specified query string. The beginning of the field must match the query string to be considered a match. For more information about configuring suggesters and retrieving suggestions, see Getting Suggestions in the Amazon CloudSearch Developer Guide. The endpoint for submitting Suggest requests is domain-specific. You submit suggest requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. + */ + suggest(params: CloudSearchDomain.Types.SuggestRequest, callback?: (err: AWSError, data: CloudSearchDomain.Types.SuggestResponse) => void): Request; + /** + * Retrieves autocomplete suggestions for a partial query string. You can use suggestions enable you to display likely matches before users finish typing. In Amazon CloudSearch, suggestions are based on the contents of a particular text field. When you request suggestions, Amazon CloudSearch finds all of the documents whose values in the suggester field start with the specified query string. The beginning of the field must match the query string to be considered a match. For more information about configuring suggesters and retrieving suggestions, see Getting Suggestions in the Amazon CloudSearch Developer Guide. The endpoint for submitting Suggest requests is domain-specific. You submit suggest requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. + */ + suggest(callback?: (err: AWSError, data: CloudSearchDomain.Types.SuggestResponse) => void): Request; + /** + * Posts a batch of documents to a search domain for indexing. A document batch is a collection of add and delete operations that represent the documents you want to add, update, or delete from your domain. Batches can be described in either JSON or XML. Each item that you want Amazon CloudSearch to return as a search result (such as a product) is represented as a document. Every document has a unique ID and one or more fields that contain the data that you want to search and return in results. Individual documents cannot contain more than 1 MB of data. The entire batch cannot exceed 5 MB. To get the best possible upload performance, group add and delete operations in batches that are close the 5 MB limit. Submitting a large volume of single-document batches can overload a domain's document service. The endpoint for submitting UploadDocuments requests is domain-specific. To get the document endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. For more information about formatting your data for Amazon CloudSearch, see Preparing Your Data in the Amazon CloudSearch Developer Guide. For more information about uploading data for indexing, see Uploading Data in the Amazon CloudSearch Developer Guide. + */ + uploadDocuments(params: CloudSearchDomain.Types.UploadDocumentsRequest, callback?: (err: AWSError, data: CloudSearchDomain.Types.UploadDocumentsResponse) => void): Request; + /** + * Posts a batch of documents to a search domain for indexing. A document batch is a collection of add and delete operations that represent the documents you want to add, update, or delete from your domain. Batches can be described in either JSON or XML. Each item that you want Amazon CloudSearch to return as a search result (such as a product) is represented as a document. Every document has a unique ID and one or more fields that contain the data that you want to search and return in results. Individual documents cannot contain more than 1 MB of data. The entire batch cannot exceed 5 MB. To get the best possible upload performance, group add and delete operations in batches that are close the 5 MB limit. Submitting a large volume of single-document batches can overload a domain's document service. The endpoint for submitting UploadDocuments requests is domain-specific. To get the document endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. For more information about formatting your data for Amazon CloudSearch, see Preparing Your Data in the Amazon CloudSearch Developer Guide. For more information about uploading data for indexing, see Uploading Data in the Amazon CloudSearch Developer Guide. + */ + uploadDocuments(callback?: (err: AWSError, data: CloudSearchDomain.Types.UploadDocumentsResponse) => void): Request; +} +declare namespace CloudSearchDomain { + export type Adds = number; + export type _Blob = Buffer|Uint8Array|Blob|string|Readable; + export interface Bucket { + /** + * The facet value being counted. + */ + value?: String; + /** + * The number of hits that contain the facet value in the specified facet field. + */ + count?: Long; + } + export interface BucketInfo { + /** + * A list of the calculated facet values and counts. + */ + buckets?: BucketList; + } + export type BucketList = Bucket[]; + export type ContentType = "application/json"|"application/xml"|string; + export type Cursor = string; + export type Deletes = number; + export interface DocumentServiceWarning { + /** + * The description for a warning returned by the document service. + */ + message?: String; + } + export type DocumentServiceWarnings = DocumentServiceWarning[]; + export type Double = number; + export type Expr = string; + export type Exprs = {[key: string]: String}; + export type Facet = string; + export type Facets = {[key: string]: BucketInfo}; + export interface FieldStats { + /** + * The minimum value found in the specified field in the result set. If the field is numeric (int, int-array, double, or double-array), min is the string representation of a double-precision 64-bit floating point value. If the field is date or date-array, min is the string representation of a date with the format specified in IETF RFC3339: yyyy-mm-ddTHH:mm:ss.SSSZ. + */ + min?: String; + /** + * The maximum value found in the specified field in the result set. If the field is numeric (int, int-array, double, or double-array), max is the string representation of a double-precision 64-bit floating point value. If the field is date or date-array, max is the string representation of a date with the format specified in IETF RFC3339: yyyy-mm-ddTHH:mm:ss.SSSZ. + */ + max?: String; + /** + * The number of documents that contain a value in the specified field in the result set. + */ + count?: Long; + /** + * The number of documents that do not contain a value in the specified field in the result set. + */ + missing?: Long; + /** + * The sum of the field values across the documents in the result set. null for date fields. + */ + sum?: Double; + /** + * The sum of all field values in the result set squared. + */ + sumOfSquares?: Double; + /** + * The average of the values found in the specified field in the result set. If the field is numeric (int, int-array, double, or double-array), mean is the string representation of a double-precision 64-bit floating point value. If the field is date or date-array, mean is the string representation of a date with the format specified in IETF RFC3339: yyyy-mm-ddTHH:mm:ss.SSSZ. + */ + mean?: String; + /** + * The standard deviation of the values in the specified field in the result set. + */ + stddev?: Double; + } + export type FieldValue = String[]; + export type Fields = {[key: string]: FieldValue}; + export type FilterQuery = string; + export type Highlight = string; + export type Highlights = {[key: string]: String}; + export interface Hit { + /** + * The document ID of a document that matches the search request. + */ + id?: String; + /** + * The fields returned from a document that matches the search request. + */ + fields?: Fields; + /** + * The expressions returned from a document that matches the search request. + */ + exprs?: Exprs; + /** + * The highlights returned from a document that matches the search request. + */ + highlights?: Highlights; + } + export type HitList = Hit[]; + export interface Hits { + /** + * The total number of documents that match the search request. + */ + found?: Long; + /** + * The index of the first matching document. + */ + start?: Long; + /** + * A cursor that can be used to retrieve the next set of matching documents when you want to page through a large result set. + */ + cursor?: String; + /** + * A document that matches the search request. + */ + hit?: HitList; + } + export type Long = number; + export type Partial = boolean; + export type Query = string; + export type QueryOptions = string; + export type QueryParser = "simple"|"structured"|"lucene"|"dismax"|string; + export type Return = string; + export interface SearchRequest { + /** + * Retrieves a cursor value you can use to page through large result sets. Use the size parameter to control the number of hits to include in each response. You can specify either the cursor or start parameter in a request; they are mutually exclusive. To get the first cursor, set the cursor value to initial. In subsequent requests, specify the cursor value returned in the hits section of the response. For more information, see Paginating Results in the Amazon CloudSearch Developer Guide. + */ + cursor?: Cursor; + /** + * Defines one or more numeric expressions that can be used to sort results or specify search or filter criteria. You can also specify expressions as return fields. You specify the expressions in JSON using the form {"EXPRESSIONNAME":"EXPRESSION"}. You can define and use multiple expressions in a search request. For example: {"expression1":"_score*rating", "expression2":"(1/rank)*year"} For information about the variables, operators, and functions you can use in expressions, see Writing Expressions in the Amazon CloudSearch Developer Guide. + */ + expr?: Expr; + /** + * Specifies one or more fields for which to get facet information, and options that control how the facet information is returned. Each specified field must be facet-enabled in the domain configuration. The fields and options are specified in JSON using the form {"FIELD":{"OPTION":VALUE,"OPTION:"STRING"},"FIELD":{"OPTION":VALUE,"OPTION":"STRING"}}. You can specify the following faceting options: buckets specifies an array of the facet values or ranges to count. Ranges are specified using the same syntax that you use to search for a range of values. For more information, see Searching for a Range of Values in the Amazon CloudSearch Developer Guide. Buckets are returned in the order they are specified in the request. The sort and size options are not valid if you specify buckets. size specifies the maximum number of facets to include in the results. By default, Amazon CloudSearch returns counts for the top 10. The size parameter is only valid when you specify the sort option; it cannot be used in conjunction with buckets. sort specifies how you want to sort the facets in the results: bucket or count. Specify bucket to sort alphabetically or numerically by facet value (in ascending order). Specify count to sort by the facet counts computed for each facet value (in descending order). To retrieve facet counts for particular values or ranges of values, use the buckets option instead of sort. If no facet options are specified, facet counts are computed for all field values, the facets are sorted by facet count, and the top 10 facets are returned in the results. To count particular buckets of values, use the buckets option. For example, the following request uses the buckets option to calculate and return facet counts by decade. {"year":{"buckets":["[1970,1979]","[1980,1989]","[1990,1999]","[2000,2009]","[2010,}"]}} To sort facets by facet count, use the count option. For example, the following request sets the sort option to count to sort the facet values by facet count, with the facet values that have the most matching documents listed first. Setting the size option to 3 returns only the top three facet values. {"year":{"sort":"count","size":3}} To sort the facets by value, use the bucket option. For example, the following request sets the sort option to bucket to sort the facet values numerically by year, with earliest year listed first. {"year":{"sort":"bucket"}} For more information, see Getting and Using Facet Information in the Amazon CloudSearch Developer Guide. + */ + facet?: Facet; + /** + * Specifies a structured query that filters the results of a search without affecting how the results are scored and sorted. You use filterQuery in conjunction with the query parameter to filter the documents that match the constraints specified in the query parameter. Specifying a filter controls only which matching documents are included in the results, it has no effect on how they are scored and sorted. The filterQuery parameter supports the full structured query syntax. For more information about using filters, see Filtering Matching Documents in the Amazon CloudSearch Developer Guide. + */ + filterQuery?: FilterQuery; + /** + * Retrieves highlights for matches in the specified text or text-array fields. Each specified field must be highlight enabled in the domain configuration. The fields and options are specified in JSON using the form {"FIELD":{"OPTION":VALUE,"OPTION:"STRING"},"FIELD":{"OPTION":VALUE,"OPTION":"STRING"}}. You can specify the following highlight options: format: specifies the format of the data in the text field: text or html. When data is returned as HTML, all non-alphanumeric characters are encoded. The default is html. max_phrases: specifies the maximum number of occurrences of the search term(s) you want to highlight. By default, the first occurrence is highlighted. pre_tag: specifies the string to prepend to an occurrence of a search term. The default for HTML highlights is &lt;em&gt;. The default for text highlights is *. post_tag: specifies the string to append to an occurrence of a search term. The default for HTML highlights is &lt;/em&gt;. The default for text highlights is *. If no highlight options are specified for a field, the returned field text is treated as HTML and the first match is highlighted with emphasis tags: &lt;em>search-term&lt;/em&gt;. For example, the following request retrieves highlights for the actors and title fields. { "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag": "","post_tag": ""} } + */ + highlight?: Highlight; + /** + * Enables partial results to be returned if one or more index partitions are unavailable. When your search index is partitioned across multiple search instances, by default Amazon CloudSearch only returns results if every partition can be queried. This means that the failure of a single search instance can result in 5xx (internal server) errors. When you enable partial results, Amazon CloudSearch returns whatever results are available and includes the percentage of documents searched in the search results (percent-searched). This enables you to more gracefully degrade your users' search experience. For example, rather than displaying no results, you could display the partial results and a message indicating that the results might be incomplete due to a temporary system outage. + */ + partial?: Partial; + /** + * Specifies the search criteria for the request. How you specify the search criteria depends on the query parser used for the request and the parser options specified in the queryOptions parameter. By default, the simple query parser is used to process requests. To use the structured, lucene, or dismax query parser, you must also specify the queryParser parameter. For more information about specifying search criteria, see Searching Your Data in the Amazon CloudSearch Developer Guide. + */ + query: Query; + /** + * Configures options for the query parser specified in the queryParser parameter. You specify the options in JSON using the following form {"OPTION1":"VALUE1","OPTION2":VALUE2"..."OPTIONN":"VALUEN"}. The options you can configure vary according to which parser you use: defaultOperator: The default operator used to combine individual terms in the search string. For example: defaultOperator: 'or'. For the dismax parser, you specify a percentage that represents the percentage of terms in the search string (rounded down) that must match, rather than a default operator. A value of 0% is the equivalent to OR, and a value of 100% is equivalent to AND. The percentage must be specified as a value in the range 0-100 followed by the percent (%) symbol. For example, defaultOperator: 50%. Valid values: and, or, a percentage in the range 0%-100% (dismax). Default: and (simple, structured, lucene) or 100 (dismax). Valid for: simple, structured, lucene, and dismax. fields: An array of the fields to search when no fields are specified in a search. If no fields are specified in a search and this option is not specified, all text and text-array fields are searched. You can specify a weight for each field to control the relative importance of each field when Amazon CloudSearch calculates relevance scores. To specify a field weight, append a caret (^) symbol and the weight to the field name. For example, to boost the importance of the title field over the description field you could specify: "fields":["title^5","description"]. Valid values: The name of any configured field and an optional numeric value greater than zero. Default: All text and text-array fields. Valid for: simple, structured, lucene, and dismax. operators: An array of the operators or special characters you want to disable for the simple query parser. If you disable the and, or, or not operators, the corresponding operators (+, |, -) have no special meaning and are dropped from the search string. Similarly, disabling prefix disables the wildcard operator (*) and disabling phrase disables the ability to search for phrases by enclosing phrases in double quotes. Disabling precedence disables the ability to control order of precedence using parentheses. Disabling near disables the ability to use the ~ operator to perform a sloppy phrase search. Disabling the fuzzy operator disables the ability to use the ~ operator to perform a fuzzy search. escape disables the ability to use a backslash (\) to escape special characters within the search string. Disabling whitespace is an advanced option that prevents the parser from tokenizing on whitespace, which can be useful for Vietnamese. (It prevents Vietnamese words from being split incorrectly.) For example, you could disable all operators other than the phrase operator to support just simple term and phrase queries: "operators":["and","not","or", "prefix"]. Valid values: and, escape, fuzzy, near, not, or, phrase, precedence, prefix, whitespace. Default: All operators and special characters are enabled. Valid for: simple. phraseFields: An array of the text or text-array fields you want to use for phrase searches. When the terms in the search string appear in close proximity within a field, the field scores higher. You can specify a weight for each field to boost that score. The phraseSlop option controls how much the matches can deviate from the search string and still be boosted. To specify a field weight, append a caret (^) symbol and the weight to the field name. For example, to boost phrase matches in the title field over the abstract field, you could specify: "phraseFields":["title^3", "plot"] Valid values: The name of any text or text-array field and an optional numeric value greater than zero. Default: No fields. If you don't specify any fields with phraseFields, proximity scoring is disabled even if phraseSlop is specified. Valid for: dismax. phraseSlop: An integer value that specifies how much matches can deviate from the search phrase and still be boosted according to the weights specified in the phraseFields option; for example, phraseSlop: 2. You must also specify phraseFields to enable proximity scoring. Valid values: positive integers. Default: 0. Valid for: dismax. explicitPhraseSlop: An integer value that specifies how much a match can deviate from the search phrase when the phrase is enclosed in double quotes in the search string. (Phrases that exceed this proximity distance are not considered a match.) For example, to specify a slop of three for dismax phrase queries, you would specify "explicitPhraseSlop":3. Valid values: positive integers. Default: 0. Valid for: dismax. tieBreaker: When a term in the search string is found in a document's field, a score is calculated for that field based on how common the word is in that field compared to other documents. If the term occurs in multiple fields within a document, by default only the highest scoring field contributes to the document's overall score. You can specify a tieBreaker value to enable the matches in lower-scoring fields to contribute to the document's score. That way, if two documents have the same max field score for a particular term, the score for the document that has matches in more fields will be higher. The formula for calculating the score with a tieBreaker is (max field score) + (tieBreaker) * (sum of the scores for the rest of the matching fields). Set tieBreaker to 0 to disregard all but the highest scoring field (pure max): "tieBreaker":0. Set to 1 to sum the scores from all fields (pure sum): "tieBreaker":1. Valid values: 0.0 to 1.0. Default: 0.0. Valid for: dismax. + */ + queryOptions?: QueryOptions; + /** + * Specifies which query parser to use to process the request. If queryParser is not specified, Amazon CloudSearch uses the simple query parser. Amazon CloudSearch supports four query parsers: simple: perform simple searches of text and text-array fields. By default, the simple query parser searches all text and text-array fields. You can specify which fields to search by with the queryOptions parameter. If you prefix a search term with a plus sign (+) documents must contain the term to be considered a match. (This is the default, unless you configure the default operator with the queryOptions parameter.) You can use the - (NOT), | (OR), and * (wildcard) operators to exclude particular terms, find results that match any of the specified terms, or search for a prefix. To search for a phrase rather than individual terms, enclose the phrase in double quotes. For more information, see Searching for Text in the Amazon CloudSearch Developer Guide. structured: perform advanced searches by combining multiple expressions to define the search criteria. You can also search within particular fields, search for values and ranges of values, and use advanced options such as term boosting, matchall, and near. For more information, see Constructing Compound Queries in the Amazon CloudSearch Developer Guide. lucene: search using the Apache Lucene query parser syntax. For more information, see Apache Lucene Query Parser Syntax. dismax: search using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser. For more information, see DisMax Query Parser Syntax. + */ + queryParser?: QueryParser; + /** + * Specifies the field and expression values to include in the response. Multiple fields or expressions are specified as a comma-separated list. By default, a search response includes all return enabled fields (_all_fields). To return only the document IDs for the matching documents, specify _no_fields. To retrieve the relevance score calculated for each document, specify _score. + */ + return?: Return; + /** + * Specifies the maximum number of search hits to include in the response. + */ + size?: Size; + /** + * Specifies the fields or custom expressions to use to sort the search results. Multiple fields or expressions are specified as a comma-separated list. You must specify the sort direction (asc or desc) for each field; for example, year desc,title asc. To use a field to sort results, the field must be sort-enabled in the domain configuration. Array type fields cannot be used for sorting. If no sort parameter is specified, results are sorted by their default relevance scores in descending order: _score desc. You can also sort by document ID (_id asc) and version (_version desc). For more information, see Sorting Results in the Amazon CloudSearch Developer Guide. + */ + sort?: Sort; + /** + * Specifies the offset of the first search hit you want to return. Note that the result set is zero-based; the first result is at index 0. You can specify either the start or cursor parameter in a request, they are mutually exclusive. For more information, see Paginating Results in the Amazon CloudSearch Developer Guide. + */ + start?: Start; + /** + * Specifies one or more fields for which to get statistics information. Each specified field must be facet-enabled in the domain configuration. The fields are specified in JSON using the form: {"FIELD-A":{},"FIELD-B":{}} There are currently no options supported for statistics. + */ + stats?: Stat; + } + export interface SearchResponse { + /** + * The status information returned for the search request. + */ + status?: SearchStatus; + /** + * The documents that match the search criteria. + */ + hits?: Hits; + /** + * The requested facet information. + */ + facets?: Facets; + /** + * The requested field statistics information. + */ + stats?: Stats; + } + export interface SearchStatus { + /** + * How long it took to process the request, in milliseconds. + */ + timems?: Long; + /** + * The encrypted resource ID for the request. + */ + rid?: String; + } + export type Size = number; + export type Sort = string; + export type Start = number; + export type Stat = string; + export type Stats = {[key: string]: FieldStats}; + export type String = string; + export interface SuggestModel { + /** + * The query string specified in the suggest request. + */ + query?: String; + /** + * The number of documents that were found to match the query string. + */ + found?: Long; + /** + * The documents that match the query string. + */ + suggestions?: Suggestions; + } + export interface SuggestRequest { + /** + * Specifies the string for which you want to get suggestions. + */ + query: Query; + /** + * Specifies the name of the suggester to use to find suggested matches. + */ + suggester: Suggester; + /** + * Specifies the maximum number of suggestions to return. + */ + size?: SuggestionsSize; + } + export interface SuggestResponse { + /** + * The status of a SuggestRequest. Contains the resource ID (rid) and how long it took to process the request (timems). + */ + status?: SuggestStatus; + /** + * Container for the matching search suggestion information. + */ + suggest?: SuggestModel; + } + export interface SuggestStatus { + /** + * How long it took to process the request, in milliseconds. + */ + timems?: Long; + /** + * The encrypted resource ID for the request. + */ + rid?: String; + } + export type Suggester = string; + export interface SuggestionMatch { + /** + * The string that matches the query string specified in the SuggestRequest. + */ + suggestion?: String; + /** + * The relevance score of a suggested match. + */ + score?: Long; + /** + * The document ID of the suggested document. + */ + id?: String; + } + export type Suggestions = SuggestionMatch[]; + export type SuggestionsSize = number; + export interface UploadDocumentsRequest { + /** + * A batch of documents formatted in JSON or HTML. + */ + documents: _Blob; + /** + * The format of the batch you are uploading. Amazon CloudSearch supports two document batch formats: application/json application/xml + */ + contentType: ContentType; + } + export interface UploadDocumentsResponse { + /** + * The status of an UploadDocumentsRequest. + */ + status?: String; + /** + * The number of documents that were added to the search domain. + */ + adds?: Adds; + /** + * The number of documents that were deleted from the search domain. + */ + deletes?: Deletes; + /** + * Any warnings returned by the document service about the documents being uploaded. + */ + warnings?: DocumentServiceWarnings; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2013-01-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudSearchDomain client. + */ + export import Types = CloudSearchDomain; +} +export = CloudSearchDomain; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearchdomain.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearchdomain.js new file mode 100644 index 0000000000000000000000000000000000000000..78c1e3a4641b5af572302668a36bf8b83d2ac43d --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudsearchdomain.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudsearchdomain'] = {}; +AWS.CloudSearchDomain = Service.defineService('cloudsearchdomain', ['2013-01-01']); +require('../lib/services/cloudsearchdomain'); +Object.defineProperty(apiLoader.services['cloudsearchdomain'], '2013-01-01', { + get: function get() { + var model = require('../apis/cloudsearchdomain-2013-01-01.min.json'); + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudSearchDomain; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudtrail.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudtrail.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..5a36ee51b9b980fd6190b77c713c9a5860c16263 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudtrail.d.ts @@ -0,0 +1,987 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudTrail extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudTrail.Types.ClientConfiguration) + config: Config & CloudTrail.Types.ClientConfiguration; + /** + * Adds one or more tags to a trail, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. Tag key names must be unique for a trail; you cannot have two keys with the same name but different values. If you specify a key without a value, the tag will be created with the specified key and a value of null. You can tag a trail that applies to all AWS Regions only from the Region in which the trail was created (also known as its home region). + */ + addTags(params: CloudTrail.Types.AddTagsRequest, callback?: (err: AWSError, data: CloudTrail.Types.AddTagsResponse) => void): Request; + /** + * Adds one or more tags to a trail, up to a limit of 50. Overwrites an existing tag's value when a new value is specified for an existing tag key. Tag key names must be unique for a trail; you cannot have two keys with the same name but different values. If you specify a key without a value, the tag will be created with the specified key and a value of null. You can tag a trail that applies to all AWS Regions only from the Region in which the trail was created (also known as its home region). + */ + addTags(callback?: (err: AWSError, data: CloudTrail.Types.AddTagsResponse) => void): Request; + /** + * Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. + */ + createTrail(params: CloudTrail.Types.CreateTrailRequest, callback?: (err: AWSError, data: CloudTrail.Types.CreateTrailResponse) => void): Request; + /** + * Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. + */ + createTrail(callback?: (err: AWSError, data: CloudTrail.Types.CreateTrailResponse) => void): Request; + /** + * Deletes a trail. This operation must be called from the region in which the trail was created. DeleteTrail cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions. + */ + deleteTrail(params: CloudTrail.Types.DeleteTrailRequest, callback?: (err: AWSError, data: CloudTrail.Types.DeleteTrailResponse) => void): Request; + /** + * Deletes a trail. This operation must be called from the region in which the trail was created. DeleteTrail cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions. + */ + deleteTrail(callback?: (err: AWSError, data: CloudTrail.Types.DeleteTrailResponse) => void): Request; + /** + * Retrieves settings for one or more trails associated with the current region for your account. + */ + describeTrails(params: CloudTrail.Types.DescribeTrailsRequest, callback?: (err: AWSError, data: CloudTrail.Types.DescribeTrailsResponse) => void): Request; + /** + * Retrieves settings for one or more trails associated with the current region for your account. + */ + describeTrails(callback?: (err: AWSError, data: CloudTrail.Types.DescribeTrailsResponse) => void): Request; + /** + * Describes the settings for the event selectors that you configured for your trail. The information returned for your event selectors includes the following: If your event selector includes read-only events, write-only events, or all events. This applies to both management events and data events. If your event selector includes management events. If your event selector includes data events, the resources on which you are logging data events. For more information, see Logging Data and Management Events for Trails in the AWS CloudTrail User Guide. + */ + getEventSelectors(params: CloudTrail.Types.GetEventSelectorsRequest, callback?: (err: AWSError, data: CloudTrail.Types.GetEventSelectorsResponse) => void): Request; + /** + * Describes the settings for the event selectors that you configured for your trail. The information returned for your event selectors includes the following: If your event selector includes read-only events, write-only events, or all events. This applies to both management events and data events. If your event selector includes management events. If your event selector includes data events, the resources on which you are logging data events. For more information, see Logging Data and Management Events for Trails in the AWS CloudTrail User Guide. + */ + getEventSelectors(callback?: (err: AWSError, data: CloudTrail.Types.GetEventSelectorsResponse) => void): Request; + /** + * Describes the settings for the Insights event selectors that you configured for your trail. GetInsightSelectors shows if CloudTrail Insights event logging is enabled on the trail, and if it is, which insight types are enabled. If you run GetInsightSelectors on a trail that does not have Insights events enabled, the operation throws the exception InsightNotEnabledException For more information, see Logging CloudTrail Insights Events for Trails in the AWS CloudTrail User Guide. + */ + getInsightSelectors(params: CloudTrail.Types.GetInsightSelectorsRequest, callback?: (err: AWSError, data: CloudTrail.Types.GetInsightSelectorsResponse) => void): Request; + /** + * Describes the settings for the Insights event selectors that you configured for your trail. GetInsightSelectors shows if CloudTrail Insights event logging is enabled on the trail, and if it is, which insight types are enabled. If you run GetInsightSelectors on a trail that does not have Insights events enabled, the operation throws the exception InsightNotEnabledException For more information, see Logging CloudTrail Insights Events for Trails in the AWS CloudTrail User Guide. + */ + getInsightSelectors(callback?: (err: AWSError, data: CloudTrail.Types.GetInsightSelectorsResponse) => void): Request; + /** + * Returns settings information for a specified trail. + */ + getTrail(params: CloudTrail.Types.GetTrailRequest, callback?: (err: AWSError, data: CloudTrail.Types.GetTrailResponse) => void): Request; + /** + * Returns settings information for a specified trail. + */ + getTrail(callback?: (err: AWSError, data: CloudTrail.Types.GetTrailResponse) => void): Request; + /** + * Returns a JSON-formatted list of information about the specified trail. Fields include information on delivery errors, Amazon SNS and Amazon S3 errors, and start and stop logging times for each trail. This operation returns trail status from a single region. To return trail status from all regions, you must call the operation on each region. + */ + getTrailStatus(params: CloudTrail.Types.GetTrailStatusRequest, callback?: (err: AWSError, data: CloudTrail.Types.GetTrailStatusResponse) => void): Request; + /** + * Returns a JSON-formatted list of information about the specified trail. Fields include information on delivery errors, Amazon SNS and Amazon S3 errors, and start and stop logging times for each trail. This operation returns trail status from a single region. To return trail status from all regions, you must call the operation on each region. + */ + getTrailStatus(callback?: (err: AWSError, data: CloudTrail.Types.GetTrailStatusResponse) => void): Request; + /** + * Returns all public keys whose private keys were used to sign the digest files within the specified time range. The public key is needed to validate digest files that were signed with its corresponding private key. CloudTrail uses different private/public key pairs per region. Each digest file is signed with a private key unique to its region. Therefore, when you validate a digest file from a particular region, you must look in the same region for its corresponding public key. + */ + listPublicKeys(params: CloudTrail.Types.ListPublicKeysRequest, callback?: (err: AWSError, data: CloudTrail.Types.ListPublicKeysResponse) => void): Request; + /** + * Returns all public keys whose private keys were used to sign the digest files within the specified time range. The public key is needed to validate digest files that were signed with its corresponding private key. CloudTrail uses different private/public key pairs per region. Each digest file is signed with a private key unique to its region. Therefore, when you validate a digest file from a particular region, you must look in the same region for its corresponding public key. + */ + listPublicKeys(callback?: (err: AWSError, data: CloudTrail.Types.ListPublicKeysResponse) => void): Request; + /** + * Lists the tags for the trail in the current region. + */ + listTags(params: CloudTrail.Types.ListTagsRequest, callback?: (err: AWSError, data: CloudTrail.Types.ListTagsResponse) => void): Request; + /** + * Lists the tags for the trail in the current region. + */ + listTags(callback?: (err: AWSError, data: CloudTrail.Types.ListTagsResponse) => void): Request; + /** + * Lists trails that are in the current account. + */ + listTrails(params: CloudTrail.Types.ListTrailsRequest, callback?: (err: AWSError, data: CloudTrail.Types.ListTrailsResponse) => void): Request; + /** + * Lists trails that are in the current account. + */ + listTrails(callback?: (err: AWSError, data: CloudTrail.Types.ListTrailsResponse) => void): Request; + /** + * Looks up management events or CloudTrail Insights events that are captured by CloudTrail. You can look up events that occurred in a region within the last 90 days. Lookup supports the following attributes for management events: AWS access key Event ID Event name Event source Read only Resource name Resource type User name Lookup supports the following attributes for Insights events: Event ID Event name Event source All attributes are optional. The default number of results returned is 50, with a maximum of 50 possible. The response includes a token that you can use to get the next page of results. The rate of lookup requests is limited to two per second, per account, per region. If this limit is exceeded, a throttling error occurs. + */ + lookupEvents(params: CloudTrail.Types.LookupEventsRequest, callback?: (err: AWSError, data: CloudTrail.Types.LookupEventsResponse) => void): Request; + /** + * Looks up management events or CloudTrail Insights events that are captured by CloudTrail. You can look up events that occurred in a region within the last 90 days. Lookup supports the following attributes for management events: AWS access key Event ID Event name Event source Read only Resource name Resource type User name Lookup supports the following attributes for Insights events: Event ID Event name Event source All attributes are optional. The default number of results returned is 50, with a maximum of 50 possible. The response includes a token that you can use to get the next page of results. The rate of lookup requests is limited to two per second, per account, per region. If this limit is exceeded, a throttling error occurs. + */ + lookupEvents(callback?: (err: AWSError, data: CloudTrail.Types.LookupEventsResponse) => void): Request; + /** + * Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event selectors to specify management and data event settings for your trail. By default, trails created without specific event selectors are configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event. Example You create an event selector for a trail and specify that you want write-only events. The EC2 GetConsoleOutput and RunInstances API operations occur in your account. CloudTrail evaluates whether the events match your event selectors. The RunInstances is a write-only event and it matches your event selector. The trail logs the event. The GetConsoleOutput is a read-only event that doesn't match your event selector. The trail doesn't log the event. The PutEventSelectors operation must be called from the region in which the trail was created; otherwise, an InvalidHomeRegionException exception is thrown. You can configure up to five event selectors for each trail. For more information, see Logging data and management events for trails and Quotas in AWS CloudTrail in the AWS CloudTrail User Guide. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors to a trail, any existing EventSelectors are overwritten. For more information about advanced event selectors, see Logging data events for trails in the AWS CloudTrail User Guide. + */ + putEventSelectors(params: CloudTrail.Types.PutEventSelectorsRequest, callback?: (err: AWSError, data: CloudTrail.Types.PutEventSelectorsResponse) => void): Request; + /** + * Configures an event selector or advanced event selectors for your trail. Use event selectors or advanced event selectors to specify management and data event settings for your trail. By default, trails created without specific event selectors are configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selectors or advanced event selectors in all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event. Example You create an event selector for a trail and specify that you want write-only events. The EC2 GetConsoleOutput and RunInstances API operations occur in your account. CloudTrail evaluates whether the events match your event selectors. The RunInstances is a write-only event and it matches your event selector. The trail logs the event. The GetConsoleOutput is a read-only event that doesn't match your event selector. The trail doesn't log the event. The PutEventSelectors operation must be called from the region in which the trail was created; otherwise, an InvalidHomeRegionException exception is thrown. You can configure up to five event selectors for each trail. For more information, see Logging data and management events for trails and Quotas in AWS CloudTrail in the AWS CloudTrail User Guide. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors to a trail, any existing EventSelectors are overwritten. For more information about advanced event selectors, see Logging data events for trails in the AWS CloudTrail User Guide. + */ + putEventSelectors(callback?: (err: AWSError, data: CloudTrail.Types.PutEventSelectorsResponse) => void): Request; + /** + * Lets you enable Insights event logging by specifying the Insights selectors that you want to enable on an existing trail. You also use PutInsightSelectors to turn off Insights event logging, by passing an empty list of insight types. In this release, only ApiCallRateInsight is supported as an Insights selector. + */ + putInsightSelectors(params: CloudTrail.Types.PutInsightSelectorsRequest, callback?: (err: AWSError, data: CloudTrail.Types.PutInsightSelectorsResponse) => void): Request; + /** + * Lets you enable Insights event logging by specifying the Insights selectors that you want to enable on an existing trail. You also use PutInsightSelectors to turn off Insights event logging, by passing an empty list of insight types. In this release, only ApiCallRateInsight is supported as an Insights selector. + */ + putInsightSelectors(callback?: (err: AWSError, data: CloudTrail.Types.PutInsightSelectorsResponse) => void): Request; + /** + * Removes the specified tags from a trail. + */ + removeTags(params: CloudTrail.Types.RemoveTagsRequest, callback?: (err: AWSError, data: CloudTrail.Types.RemoveTagsResponse) => void): Request; + /** + * Removes the specified tags from a trail. + */ + removeTags(callback?: (err: AWSError, data: CloudTrail.Types.RemoveTagsResponse) => void): Request; + /** + * Starts the recording of AWS API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions. + */ + startLogging(params: CloudTrail.Types.StartLoggingRequest, callback?: (err: AWSError, data: CloudTrail.Types.StartLoggingResponse) => void): Request; + /** + * Starts the recording of AWS API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions. + */ + startLogging(callback?: (err: AWSError, data: CloudTrail.Types.StartLoggingResponse) => void): Request; + /** + * Suspends the recording of AWS API calls and log file delivery for the specified trail. Under most circumstances, there is no need to use this action. You can update a trail without stopping it first. This action is the only way to stop recording. For a trail enabled in all regions, this operation must be called from the region in which the trail was created, or an InvalidHomeRegionException will occur. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail enabled in all regions. + */ + stopLogging(params: CloudTrail.Types.StopLoggingRequest, callback?: (err: AWSError, data: CloudTrail.Types.StopLoggingResponse) => void): Request; + /** + * Suspends the recording of AWS API calls and log file delivery for the specified trail. Under most circumstances, there is no need to use this action. You can update a trail without stopping it first. This action is the only way to stop recording. For a trail enabled in all regions, this operation must be called from the region in which the trail was created, or an InvalidHomeRegionException will occur. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail enabled in all regions. + */ + stopLogging(callback?: (err: AWSError, data: CloudTrail.Types.StopLoggingResponse) => void): Request; + /** + * Updates the settings that specify delivery of log files. Changes to a trail do not require stopping the CloudTrail service. Use this action to designate an existing bucket for log delivery. If the existing bucket has previously been a target for CloudTrail log files, an IAM policy exists for the bucket. UpdateTrail must be called from the region in which the trail was created; otherwise, an InvalidHomeRegionException is thrown. + */ + updateTrail(params: CloudTrail.Types.UpdateTrailRequest, callback?: (err: AWSError, data: CloudTrail.Types.UpdateTrailResponse) => void): Request; + /** + * Updates the settings that specify delivery of log files. Changes to a trail do not require stopping the CloudTrail service. Use this action to designate an existing bucket for log delivery. If the existing bucket has previously been a target for CloudTrail log files, an IAM policy exists for the bucket. UpdateTrail must be called from the region in which the trail was created; otherwise, an InvalidHomeRegionException is thrown. + */ + updateTrail(callback?: (err: AWSError, data: CloudTrail.Types.UpdateTrailResponse) => void): Request; +} +declare namespace CloudTrail { + export interface AddTagsRequest { + /** + * Specifies the ARN of the trail to which one or more tags will be added. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + ResourceId: String; + /** + * Contains a list of CloudTrail tags, up to a limit of 50 + */ + TagsList?: TagsList; + } + export interface AddTagsResponse { + } + export interface AdvancedEventSelector { + /** + * An optional, descriptive name for an advanced event selector, such as "Log data events for only two S3 buckets". + */ + Name?: SelectorName; + /** + * Contains all selector statements in an advanced event selector. + */ + FieldSelectors: AdvancedFieldSelectors; + } + export type AdvancedEventSelectors = AdvancedEventSelector[]; + export interface AdvancedFieldSelector { + /** + * A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, eventSource (for management events), eventName, resources.type, and resources.ARN. readOnly - Optional. Can be set to Equals a value of true or false. A value of false logs both read and write events. eventSource - For filtering management events only. This can be set only to NotEquals kms.amazonaws.com. eventName - Can use any operator. You can use it to filter in or filter out any data event logged to CloudTrail, such as PutBucket. You can have multiple values for this field, separated by commas. eventCategory - This is required. It must be set to Equals, and the value must be Management or Data. resources.type - This field is required. resources.type can only use the Equals operator, and the value can be one of the following: AWS::S3::Object, AWS::Lambda::Function, AWS::DynamoDB::Table, AWS::S3Outposts::Object, AWS::ManagedBlockchain::Node, or AWS::S3ObjectLambda::AccessPoint. You can have only one resources.type field per selector. To log data events on more than one resource type, add another selector. resources.ARN - You can use any operator with resources.ARN, but if you use Equals or NotEquals, the value must exactly match the ARN of a valid resource of the type you've specified in the template as the value of resources.type. For example, if resources.type equals AWS::S3::Object, the ARN must be in one of the following formats. To log all data events for all objects in a specific S3 bucket, use the StartsWith operator, and include only the bucket ARN as the matching value. The trailing slash is intentional; do not exclude it. arn:partition:s3:::bucket_name/ arn:partition:s3:::bucket_name/object_or_file_name/ When resources.type equals AWS::Lambda::Function, and the operator is set to Equals or NotEquals, the ARN must be in the following format: arn:partition:lambda:region:account_ID:function:function_name When resources.type equals AWS::DynamoDB::Table, and the operator is set to Equals or NotEquals, the ARN must be in the following format: arn:partition:dynamodb:region:account_ID:table:table_name When resources.type equals AWS::S3Outposts::Object, and the operator is set to Equals or NotEquals, the ARN must be in the following format: arn:partition:s3-outposts:region:>account_ID:object_path When resources.type equals AWS::ManagedBlockchain::Node, and the operator is set to Equals or NotEquals, the ARN must be in the following format: arn:partition:managedblockchain:region:account_ID:nodes/node_ID When resources.type equals AWS::S3ObjectLambda::AccessPoint, and the operator is set to Equals or NotEquals, the ARN must be in the following format: arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name + */ + Field: SelectorField; + /** + * An operator that includes events that match the exact value of the event record field specified as the value of Field. This is the only valid operator that you can use with the readOnly, eventCategory, and resources.type fields. + */ + Equals?: Operator; + /** + * An operator that includes events that match the first few characters of the event record field specified as the value of Field. + */ + StartsWith?: Operator; + /** + * An operator that includes events that match the last few characters of the event record field specified as the value of Field. + */ + EndsWith?: Operator; + /** + * An operator that excludes events that match the exact value of the event record field specified as the value of Field. + */ + NotEquals?: Operator; + /** + * An operator that excludes events that match the first few characters of the event record field specified as the value of Field. + */ + NotStartsWith?: Operator; + /** + * An operator that excludes events that match the last few characters of the event record field specified as the value of Field. + */ + NotEndsWith?: Operator; + } + export type AdvancedFieldSelectors = AdvancedFieldSelector[]; + export type Boolean = boolean; + export type ByteBuffer = Buffer|Uint8Array|Blob|string; + export interface CreateTrailRequest { + /** + * Specifies the name of the trail. The name must meet the following requirements: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) Start with a letter or number, and end with a letter or number Be between 3 and 128 characters Have no adjacent periods, underscores or dashes. Names like my-_namespace and my--namespace are invalid. Not be in IP address format (for example, 192.168.5.4) + */ + Name: String; + /** + * Specifies the name of the Amazon S3 bucket designated for publishing log files. See Amazon S3 Bucket Naming Requirements. + */ + S3BucketName: String; + /** + * Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see Finding Your CloudTrail Log Files. The maximum length is 200 characters. + */ + S3KeyPrefix?: String; + /** + * Specifies the name of the Amazon SNS topic defined for notification of log file delivery. The maximum length is 256 characters. + */ + SnsTopicName?: String; + /** + * Specifies whether the trail is publishing events from global services such as IAM to the log files. + */ + IncludeGlobalServiceEvents?: Boolean; + /** + * Specifies whether the trail is created in the current region or in all regions. The default is false, which creates a trail only in the region where you are signed in. As a best practice, consider creating trails that log events in all regions. + */ + IsMultiRegionTrail?: Boolean; + /** + * Specifies whether log file integrity validation is enabled. The default is false. When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail will not create digest files for log files that were delivered during a period in which log file integrity validation was disabled. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10. The same applies whenever you stop CloudTrail logging or delete a trail. + */ + EnableLogFileValidation?: Boolean; + /** + * Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn. + */ + CloudWatchLogsLogGroupArn?: String; + /** + * Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group. + */ + CloudWatchLogsRoleArn?: String; + /** + * Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by "alias/", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier. Examples: alias/MyAliasName arn:aws:kms:us-east-2:123456789012:alias/MyAliasName arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 12345678-1234-1234-1234-123456789012 + */ + KmsKeyId?: String; + /** + * Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in AWS Organizations. + */ + IsOrganizationTrail?: Boolean; + TagsList?: TagsList; + } + export interface CreateTrailResponse { + /** + * Specifies the name of the trail. + */ + Name?: String; + /** + * Specifies the name of the Amazon S3 bucket designated for publishing log files. + */ + S3BucketName?: String; + /** + * Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see Finding Your CloudTrail Log Files. + */ + S3KeyPrefix?: String; + /** + * This field is no longer in use. Use SnsTopicARN. + */ + SnsTopicName?: String; + /** + * Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications when log files are delivered. The format of a topic ARN is: arn:aws:sns:us-east-2:123456789012:MyTopic + */ + SnsTopicARN?: String; + /** + * Specifies whether the trail is publishing events from global services such as IAM to the log files. + */ + IncludeGlobalServiceEvents?: Boolean; + /** + * Specifies whether the trail exists in one region or in all regions. + */ + IsMultiRegionTrail?: Boolean; + /** + * Specifies the ARN of the trail that was created. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + TrailARN?: String; + /** + * Specifies whether log file integrity validation is enabled. + */ + LogFileValidationEnabled?: Boolean; + /** + * Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered. + */ + CloudWatchLogsLogGroupArn?: String; + /** + * Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group. + */ + CloudWatchLogsRoleArn?: String; + /** + * Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format: arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 + */ + KmsKeyId?: String; + /** + * Specifies whether the trail is an organization trail. + */ + IsOrganizationTrail?: Boolean; + } + export interface DataResource { + /** + * The resource type in which you want to log data events. You can specify AWS::S3::Object, AWS::Lambda::Function, or AWS::DynamoDB::Table resources. The AWS::S3Outposts::Object, AWS::ManagedBlockchain::Node, and AWS::S3ObjectLambda::AccessPoint resource types are not valid in basic event selectors. To log data events on these resource types, use advanced event selectors. + */ + Type?: String; + /** + * An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects. To log data events for all objects in all S3 buckets in your AWS account, specify the prefix as arn:aws:s3:::. This will also enable logging of data event activity performed by any user or role in your AWS account, even if that activity is performed on a bucket that belongs to another AWS account. To log data events for all objects in an S3 bucket, specify the bucket and an empty object prefix such as arn:aws:s3:::bucket-1/. The trail logs data events for all objects in this S3 bucket. To log data events for specific objects, specify the S3 bucket and object prefix such as arn:aws:s3:::bucket-1/example-images. The trail logs data events for objects in this S3 bucket that match the prefix. To log data events for all Lambda functions in your AWS account, specify the prefix as arn:aws:lambda. This will also enable logging of Invoke activity performed by any user or role in your AWS account, even if that activity is performed on a function that belongs to another AWS account. To log data events for a specific Lambda function, specify the function ARN. Lambda function ARNs are exact. For example, if you specify a function ARN arn:aws:lambda:us-west-2:111111111111:function:helloworld, data events will only be logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld. They will not be logged for arn:aws:lambda:us-west-2:111111111111:function:helloworld2. To log data events for all DynamoDB tables in your AWS account, specify the prefix as arn:aws:dynamodb. + */ + Values?: DataResourceValues; + } + export type DataResourceValues = String[]; + export type DataResources = DataResource[]; + export type _Date = Date; + export interface DeleteTrailRequest { + /** + * Specifies the name or the CloudTrail ARN of the trail to be deleted. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + Name: String; + } + export interface DeleteTrailResponse { + } + export interface DescribeTrailsRequest { + /** + * Specifies a list of trail names, trail ARNs, or both, of the trails to describe. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail If an empty list is specified, information for the trail in the current region is returned. If an empty list is specified and IncludeShadowTrails is false, then information for all trails in the current region is returned. If an empty list is specified and IncludeShadowTrails is null or true, then information for all trails in the current region and any associated shadow trails in other regions is returned. If one or more trail names are specified, information is returned only if the names match the names of trails belonging only to the current region. To return information about a trail in another region, you must specify its trail ARN. + */ + trailNameList?: TrailNameList; + /** + * Specifies whether to include shadow trails in the response. A shadow trail is the replication in a region of a trail that was created in a different region, or in the case of an organization trail, the replication of an organization trail in member accounts. If you do not include shadow trails, organization trails in a member account and region replication trails will not be returned. The default is true. + */ + includeShadowTrails?: Boolean; + } + export interface DescribeTrailsResponse { + /** + * The list of trail objects. Trail objects with string values are only returned if values for the objects exist in a trail's configuration. For example, SNSTopicName and SNSTopicARN are only returned in results if a trail is configured to send SNS notifications. Similarly, KMSKeyId only appears in results if a trail's log files are encrypted with AWS KMS-managed keys. + */ + trailList?: TrailList; + } + export interface Event { + /** + * The CloudTrail ID of the event returned. + */ + EventId?: String; + /** + * The name of the event returned. + */ + EventName?: String; + /** + * Information about whether the event is a write event or a read event. + */ + ReadOnly?: String; + /** + * The AWS access key ID that was used to sign the request. If the request was made with temporary security credentials, this is the access key ID of the temporary credentials. + */ + AccessKeyId?: String; + /** + * The date and time of the event returned. + */ + EventTime?: _Date; + /** + * The AWS service that the request was made to. + */ + EventSource?: String; + /** + * A user name or role name of the requester that called the API in the event returned. + */ + Username?: String; + /** + * A list of resources referenced by the event returned. + */ + Resources?: ResourceList; + /** + * A JSON string that contains a representation of the event returned. + */ + CloudTrailEvent?: String; + } + export type EventCategory = "insight"|string; + export interface EventSelector { + /** + * Specify if you want your trail to log read-only events, write-only events, or all. For example, the EC2 GetConsoleOutput is a read-only API operation and RunInstances is a write-only API operation. By default, the value is All. + */ + ReadWriteType?: ReadWriteType; + /** + * Specify if you want your event selector to include management events for your trail. For more information, see Management Events in the AWS CloudTrail User Guide. By default, the value is true. The first copy of management events is free. You are charged for additional copies of management events that you are logging on any subsequent trail in the same region. For more information about CloudTrail pricing, see AWS CloudTrail Pricing. + */ + IncludeManagementEvents?: Boolean; + /** + * CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions with basic event selectors. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail. This limit does not apply if you configure resource logging for all data events. For more information, see Data Events and Limits in AWS CloudTrail in the AWS CloudTrail User Guide. + */ + DataResources?: DataResources; + /** + * An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), or it can filter out AWS Key Management Service events by containing "kms.amazonaws.com". By default, ExcludeManagementEventSources is empty, and AWS KMS events are included in events that are logged to your trail. + */ + ExcludeManagementEventSources?: ExcludeManagementEventSources; + } + export type EventSelectors = EventSelector[]; + export type EventsList = Event[]; + export type ExcludeManagementEventSources = String[]; + export interface GetEventSelectorsRequest { + /** + * Specifies the name of the trail or trail ARN. If you specify a trail name, the string must meet the following requirements: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) Start with a letter or number, and end with a letter or number Be between 3 and 128 characters Have no adjacent periods, underscores or dashes. Names like my-_namespace and my--namespace are not valid. Not be in IP address format (for example, 192.168.5.4) If you specify a trail ARN, it must be in the format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + TrailName: String; + } + export interface GetEventSelectorsResponse { + /** + * The specified trail ARN that has the event selectors. + */ + TrailARN?: String; + /** + * The event selectors that are configured for the trail. + */ + EventSelectors?: EventSelectors; + /** + * The advanced event selectors that are configured for the trail. + */ + AdvancedEventSelectors?: AdvancedEventSelectors; + } + export interface GetInsightSelectorsRequest { + /** + * Specifies the name of the trail or trail ARN. If you specify a trail name, the string must meet the following requirements: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) Start with a letter or number, and end with a letter or number Be between 3 and 128 characters Have no adjacent periods, underscores or dashes. Names like my-_namespace and my--namespace are not valid. Not be in IP address format (for example, 192.168.5.4) If you specify a trail ARN, it must be in the format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + TrailName: String; + } + export interface GetInsightSelectorsResponse { + /** + * The Amazon Resource Name (ARN) of a trail for which you want to get Insights selectors. + */ + TrailARN?: String; + /** + * A JSON string that contains the insight types you want to log on a trail. In this release, only ApiCallRateInsight is supported as an insight type. + */ + InsightSelectors?: InsightSelectors; + } + export interface GetTrailRequest { + /** + * The name or the Amazon Resource Name (ARN) of the trail for which you want to retrieve settings information. + */ + Name: String; + } + export interface GetTrailResponse { + Trail?: Trail; + } + export interface GetTrailStatusRequest { + /** + * Specifies the name or the CloudTrail ARN of the trail for which you are requesting status. To get the status of a shadow trail (a replication of the trail in another region), you must specify its ARN. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + Name: String; + } + export interface GetTrailStatusResponse { + /** + * Whether the CloudTrail is currently logging AWS API calls. + */ + IsLogging?: Boolean; + /** + * Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver log files to the designated bucket. For more information see the topic Error Responses in the Amazon S3 API Reference. This error occurs only when there is a problem with the destination S3 bucket and will not occur for timeouts. To resolve the issue, create a new bucket and call UpdateTrail to specify the new bucket, or fix the existing objects so that CloudTrail can again write to the bucket. + */ + LatestDeliveryError?: String; + /** + * Displays any Amazon SNS error that CloudTrail encountered when attempting to send a notification. For more information about Amazon SNS errors, see the Amazon SNS Developer Guide. + */ + LatestNotificationError?: String; + /** + * Specifies the date and time that CloudTrail last delivered log files to an account's Amazon S3 bucket. + */ + LatestDeliveryTime?: _Date; + /** + * Specifies the date and time of the most recent Amazon SNS notification that CloudTrail has written a new log file to an account's Amazon S3 bucket. + */ + LatestNotificationTime?: _Date; + /** + * Specifies the most recent date and time when CloudTrail started recording API calls for an AWS account. + */ + StartLoggingTime?: _Date; + /** + * Specifies the most recent date and time when CloudTrail stopped recording API calls for an AWS account. + */ + StopLoggingTime?: _Date; + /** + * Displays any CloudWatch Logs error that CloudTrail encountered when attempting to deliver logs to CloudWatch Logs. + */ + LatestCloudWatchLogsDeliveryError?: String; + /** + * Displays the most recent date and time when CloudTrail delivered logs to CloudWatch Logs. + */ + LatestCloudWatchLogsDeliveryTime?: _Date; + /** + * Specifies the date and time that CloudTrail last delivered a digest file to an account's Amazon S3 bucket. + */ + LatestDigestDeliveryTime?: _Date; + /** + * Displays any Amazon S3 error that CloudTrail encountered when attempting to deliver a digest file to the designated bucket. For more information see the topic Error Responses in the Amazon S3 API Reference. This error occurs only when there is a problem with the destination S3 bucket and will not occur for timeouts. To resolve the issue, create a new bucket and call UpdateTrail to specify the new bucket, or fix the existing objects so that CloudTrail can again write to the bucket. + */ + LatestDigestDeliveryError?: String; + /** + * This field is no longer in use. + */ + LatestDeliveryAttemptTime?: String; + /** + * This field is no longer in use. + */ + LatestNotificationAttemptTime?: String; + /** + * This field is no longer in use. + */ + LatestNotificationAttemptSucceeded?: String; + /** + * This field is no longer in use. + */ + LatestDeliveryAttemptSucceeded?: String; + /** + * This field is no longer in use. + */ + TimeLoggingStarted?: String; + /** + * This field is no longer in use. + */ + TimeLoggingStopped?: String; + } + export interface InsightSelector { + /** + * The type of insights to log on a trail. In this release, only ApiCallRateInsight is supported as an insight type. + */ + InsightType?: InsightType; + } + export type InsightSelectors = InsightSelector[]; + export type InsightType = "ApiCallRateInsight"|string; + export interface ListPublicKeysRequest { + /** + * Optionally specifies, in UTC, the start of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used, and the current public key is returned. + */ + StartTime?: _Date; + /** + * Optionally specifies, in UTC, the end of the time range to look up public keys for CloudTrail digest files. If not specified, the current time is used. + */ + EndTime?: _Date; + /** + * Reserved for future use. + */ + NextToken?: String; + } + export interface ListPublicKeysResponse { + /** + * Contains an array of PublicKey objects. The returned public keys may have validity time ranges that overlap. + */ + PublicKeyList?: PublicKeyList; + /** + * Reserved for future use. + */ + NextToken?: String; + } + export interface ListTagsRequest { + /** + * Specifies a list of trail ARNs whose tags will be listed. The list has a limit of 20 ARNs. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + ResourceIdList: ResourceIdList; + /** + * Reserved for future use. + */ + NextToken?: String; + } + export interface ListTagsResponse { + /** + * A list of resource tags. + */ + ResourceTagList?: ResourceTagList; + /** + * Reserved for future use. + */ + NextToken?: String; + } + export interface ListTrailsRequest { + /** + * The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters. + */ + NextToken?: String; + } + export interface ListTrailsResponse { + /** + * Returns the name, ARN, and home region of trails in the current account. + */ + Trails?: Trails; + /** + * The token to use to get the next page of results after a previous API call. If the token does not appear, there are no more results to return. The token must be passed in with the same parameters as the previous call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters. + */ + NextToken?: String; + } + export interface LookupAttribute { + /** + * Specifies an attribute on which to filter the events returned. + */ + AttributeKey: LookupAttributeKey; + /** + * Specifies a value for the specified AttributeKey. + */ + AttributeValue: String; + } + export type LookupAttributeKey = "EventId"|"EventName"|"ReadOnly"|"Username"|"ResourceType"|"ResourceName"|"EventSource"|"AccessKeyId"|string; + export type LookupAttributesList = LookupAttribute[]; + export interface LookupEventsRequest { + /** + * Contains a list of lookup attributes. Currently the list can contain only one item. + */ + LookupAttributes?: LookupAttributesList; + /** + * Specifies that only events that occur after or at the specified time are returned. If the specified start time is after the specified end time, an error is returned. + */ + StartTime?: _Date; + /** + * Specifies that only events that occur before or at the specified time are returned. If the specified end time is before the specified start time, an error is returned. + */ + EndTime?: _Date; + /** + * Specifies the event category. If you do not specify an event category, events of the category are not returned in the response. For example, if you do not specify insight as the value of EventCategory, no Insights events are returned. + */ + EventCategory?: EventCategory; + /** + * The number of events to return. Possible values are 1 through 50. The default is 50. + */ + MaxResults?: MaxResults; + /** + * The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters. + */ + NextToken?: NextToken; + } + export interface LookupEventsResponse { + /** + * A list of events returned based on the lookup attributes specified and the CloudTrail event. The events list is sorted by time. The most recent event is listed first. + */ + Events?: EventsList; + /** + * The token to use to get the next page of results after a previous API call. If the token does not appear, there are no more results to return. The token must be passed in with the same parameters as the previous call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters. + */ + NextToken?: NextToken; + } + export type MaxResults = number; + export type NextToken = string; + export type Operator = OperatorValue[]; + export type OperatorValue = string; + export interface PublicKey { + /** + * The DER encoded public key value in PKCS#1 format. + */ + Value?: ByteBuffer; + /** + * The starting time of validity of the public key. + */ + ValidityStartTime?: _Date; + /** + * The ending time of validity of the public key. + */ + ValidityEndTime?: _Date; + /** + * The fingerprint of the public key. + */ + Fingerprint?: String; + } + export type PublicKeyList = PublicKey[]; + export interface PutEventSelectorsRequest { + /** + * Specifies the name of the trail or trail ARN. If you specify a trail name, the string must meet the following requirements: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) Start with a letter or number, and end with a letter or number Be between 3 and 128 characters Have no adjacent periods, underscores or dashes. Names like my-_namespace and my--namespace are invalid. Not be in IP address format (for example, 192.168.5.4) If you specify a trail ARN, it must be in the format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + TrailName: String; + /** + * Specifies the settings for your event selectors. You can configure up to five event selectors for a trail. You can use either EventSelectors or AdvancedEventSelectors in a PutEventSelectors request, but not both. If you apply EventSelectors to a trail, any existing AdvancedEventSelectors are overwritten. + */ + EventSelectors?: EventSelectors; + /** + * Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors to a trail, any existing EventSelectors are overwritten. For more information about advanced event selectors, see Logging data events for trails in the AWS CloudTrail User Guide. + */ + AdvancedEventSelectors?: AdvancedEventSelectors; + } + export interface PutEventSelectorsResponse { + /** + * Specifies the ARN of the trail that was updated with event selectors. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + TrailARN?: String; + /** + * Specifies the event selectors configured for your trail. + */ + EventSelectors?: EventSelectors; + /** + * Specifies the advanced event selectors configured for your trail. + */ + AdvancedEventSelectors?: AdvancedEventSelectors; + } + export interface PutInsightSelectorsRequest { + /** + * The name of the CloudTrail trail for which you want to change or add Insights selectors. + */ + TrailName: String; + /** + * A JSON string that contains the insight types you want to log on a trail. In this release, only ApiCallRateInsight is supported as an insight type. + */ + InsightSelectors: InsightSelectors; + } + export interface PutInsightSelectorsResponse { + /** + * The Amazon Resource Name (ARN) of a trail for which you want to change or add Insights selectors. + */ + TrailARN?: String; + /** + * A JSON string that contains the insight types you want to log on a trail. In this release, only ApiCallRateInsight is supported as an insight type. + */ + InsightSelectors?: InsightSelectors; + } + export type ReadWriteType = "ReadOnly"|"WriteOnly"|"All"|string; + export interface RemoveTagsRequest { + /** + * Specifies the ARN of the trail from which tags should be removed. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + ResourceId: String; + /** + * Specifies a list of tags to be removed. + */ + TagsList?: TagsList; + } + export interface RemoveTagsResponse { + } + export interface Resource { + /** + * The type of a resource referenced by the event returned. When the resource type cannot be determined, null is returned. Some examples of resource types are: Instance for EC2, Trail for CloudTrail, DBInstance for RDS, and AccessKey for IAM. To learn more about how to look up and filter events by the resource types supported for a service, see Filtering CloudTrail Events. + */ + ResourceType?: String; + /** + * The name of the resource referenced by the event returned. These are user-created names whose values will depend on the environment. For example, the resource name might be "auto-scaling-test-group" for an Auto Scaling Group or "i-1234567" for an EC2 Instance. + */ + ResourceName?: String; + } + export type ResourceIdList = String[]; + export type ResourceList = Resource[]; + export interface ResourceTag { + /** + * Specifies the ARN of the resource. + */ + ResourceId?: String; + /** + * A list of tags. + */ + TagsList?: TagsList; + } + export type ResourceTagList = ResourceTag[]; + export type SelectorField = string; + export type SelectorName = string; + export interface StartLoggingRequest { + /** + * Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs AWS API calls. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + Name: String; + } + export interface StartLoggingResponse { + } + export interface StopLoggingRequest { + /** + * Specifies the name or the CloudTrail ARN of the trail for which CloudTrail will stop logging AWS API calls. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + Name: String; + } + export interface StopLoggingResponse { + } + export type String = string; + export interface Tag { + /** + * The key in a key-value pair. The key must be must be no longer than 128 Unicode characters. The key must be unique for the resource to which it applies. + */ + Key: String; + /** + * The value in a key-value pair of a tag. The value must be no longer than 256 Unicode characters. + */ + Value?: String; + } + export type TagsList = Tag[]; + export interface Trail { + /** + * Name of the trail set by calling CreateTrail. The maximum length is 128 characters. + */ + Name?: String; + /** + * Name of the Amazon S3 bucket into which CloudTrail delivers your trail files. See Amazon S3 Bucket Naming Requirements. + */ + S3BucketName?: String; + /** + * Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see Finding Your CloudTrail Log Files.The maximum length is 200 characters. + */ + S3KeyPrefix?: String; + /** + * This field is no longer in use. Use SnsTopicARN. + */ + SnsTopicName?: String; + /** + * Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications when log files are delivered. The format of a topic ARN is: arn:aws:sns:us-east-2:123456789012:MyTopic + */ + SnsTopicARN?: String; + /** + * Set to True to include AWS API calls from AWS global services such as IAM. Otherwise, False. + */ + IncludeGlobalServiceEvents?: Boolean; + /** + * Specifies whether the trail exists only in one region or exists in all regions. + */ + IsMultiRegionTrail?: Boolean; + /** + * The region in which the trail was created. + */ + HomeRegion?: String; + /** + * Specifies the ARN of the trail. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + TrailARN?: String; + /** + * Specifies whether log file validation is enabled. + */ + LogFileValidationEnabled?: Boolean; + /** + * Specifies an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. + */ + CloudWatchLogsLogGroupArn?: String; + /** + * Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group. + */ + CloudWatchLogsRoleArn?: String; + /** + * Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format: arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 + */ + KmsKeyId?: String; + /** + * Specifies if the trail has custom event selectors. + */ + HasCustomEventSelectors?: Boolean; + /** + * Specifies whether a trail has insight types specified in an InsightSelector list. + */ + HasInsightSelectors?: Boolean; + /** + * Specifies whether the trail is an organization trail. + */ + IsOrganizationTrail?: Boolean; + } + export interface TrailInfo { + /** + * The ARN of a trail. + */ + TrailARN?: String; + /** + * The name of a trail. + */ + Name?: String; + /** + * The AWS region in which a trail was created. + */ + HomeRegion?: String; + } + export type TrailList = Trail[]; + export type TrailNameList = String[]; + export type Trails = TrailInfo[]; + export interface UpdateTrailRequest { + /** + * Specifies the name of the trail or trail ARN. If Name is a trail name, the string must meet the following requirements: Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-) Start with a letter or number, and end with a letter or number Be between 3 and 128 characters Have no adjacent periods, underscores or dashes. Names like my-_namespace and my--namespace are invalid. Not be in IP address format (for example, 192.168.5.4) If Name is a trail ARN, it must be in the format: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + Name: String; + /** + * Specifies the name of the Amazon S3 bucket designated for publishing log files. See Amazon S3 Bucket Naming Requirements. + */ + S3BucketName?: String; + /** + * Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see Finding Your CloudTrail Log Files. The maximum length is 200 characters. + */ + S3KeyPrefix?: String; + /** + * Specifies the name of the Amazon SNS topic defined for notification of log file delivery. The maximum length is 256 characters. + */ + SnsTopicName?: String; + /** + * Specifies whether the trail is publishing events from global services such as IAM to the log files. + */ + IncludeGlobalServiceEvents?: Boolean; + /** + * Specifies whether the trail applies only to the current region or to all regions. The default is false. If the trail exists only in the current region and this value is set to true, shadow trails (replications of the trail) will be created in the other regions. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted. As a best practice, consider using trails that log events in all regions. + */ + IsMultiRegionTrail?: Boolean; + /** + * Specifies whether log file validation is enabled. The default is false. When you disable log file integrity validation, the chain of digest files is broken after one hour. CloudTrail will not create digest files for log files that were delivered during a period in which log file integrity validation was disabled. For example, if you enable log file integrity validation at noon on January 1, disable it at noon on January 2, and re-enable it at noon on January 10, digest files will not be created for the log files delivered from noon on January 2 to noon on January 10. The same applies whenever you stop CloudTrail logging or delete a trail. + */ + EnableLogFileValidation?: Boolean; + /** + * Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn. + */ + CloudWatchLogsLogGroupArn?: String; + /** + * Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group. + */ + CloudWatchLogsRoleArn?: String; + /** + * Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by "alias/", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier. Examples: alias/MyAliasName arn:aws:kms:us-east-2:123456789012:alias/MyAliasName arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 12345678-1234-1234-1234-123456789012 + */ + KmsKeyId?: String; + /** + * Specifies whether the trail is applied to all accounts in an organization in AWS Organizations, or only for the current AWS account. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in AWS Organizations. If the trail is not an organization trail and this is set to true, the trail will be created in all AWS accounts that belong to the organization. If the trail is an organization trail and this is set to false, the trail will remain in the current AWS account but be deleted from all member accounts in the organization. + */ + IsOrganizationTrail?: Boolean; + } + export interface UpdateTrailResponse { + /** + * Specifies the name of the trail. + */ + Name?: String; + /** + * Specifies the name of the Amazon S3 bucket designated for publishing log files. + */ + S3BucketName?: String; + /** + * Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see Finding Your CloudTrail Log Files. + */ + S3KeyPrefix?: String; + /** + * This field is no longer in use. Use SnsTopicARN. + */ + SnsTopicName?: String; + /** + * Specifies the ARN of the Amazon SNS topic that CloudTrail uses to send notifications when log files are delivered. The format of a topic ARN is: arn:aws:sns:us-east-2:123456789012:MyTopic + */ + SnsTopicARN?: String; + /** + * Specifies whether the trail is publishing events from global services such as IAM to the log files. + */ + IncludeGlobalServiceEvents?: Boolean; + /** + * Specifies whether the trail exists in one region or in all regions. + */ + IsMultiRegionTrail?: Boolean; + /** + * Specifies the ARN of the trail that was updated. The format of a trail ARN is: arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail + */ + TrailARN?: String; + /** + * Specifies whether log file integrity validation is enabled. + */ + LogFileValidationEnabled?: Boolean; + /** + * Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered. + */ + CloudWatchLogsLogGroupArn?: String; + /** + * Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group. + */ + CloudWatchLogsRoleArn?: String; + /** + * Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the format: arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 + */ + KmsKeyId?: String; + /** + * Specifies whether the trail is an organization trail. + */ + IsOrganizationTrail?: Boolean; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2013-11-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudTrail client. + */ + export import Types = CloudTrail; +} +export = CloudTrail; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudtrail.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudtrail.js new file mode 100644 index 0000000000000000000000000000000000000000..3135c701849dd73f841fab6a89ca6a398ed2db42 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudtrail.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudtrail'] = {}; +AWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']); +Object.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', { + get: function get() { + var model = require('../apis/cloudtrail-2013-11-01.min.json'); + model.paginators = require('../apis/cloudtrail-2013-11-01.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudTrail; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatch.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatch.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..f74929c639ce6e4fec9567e3f5fabf517f2bc85f --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatch.d.ts @@ -0,0 +1,1954 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {WaiterConfiguration} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudWatch extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudWatch.Types.ClientConfiguration) + config: Config & CloudWatch.Types.ClientConfiguration; + /** + * Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation. In the event of an error, no alarms are deleted. It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete. To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False. Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. + */ + deleteAlarms(params: CloudWatch.Types.DeleteAlarmsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified alarms. You can delete up to 100 alarms in one operation. However, this total can include no more than one composite alarm. For example, you could delete 99 metric alarms and one composite alarms with one operation, but you can't delete two composite alarms with one operation. In the event of an error, no alarms are deleted. It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete. To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False. Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. + */ + deleteAlarms(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified anomaly detection model from your account. + */ + deleteAnomalyDetector(params: CloudWatch.Types.DeleteAnomalyDetectorInput, callback?: (err: AWSError, data: CloudWatch.Types.DeleteAnomalyDetectorOutput) => void): Request; + /** + * Deletes the specified anomaly detection model from your account. + */ + deleteAnomalyDetector(callback?: (err: AWSError, data: CloudWatch.Types.DeleteAnomalyDetectorOutput) => void): Request; + /** + * Deletes all dashboards that you specify. You can specify up to 100 dashboards to delete. If there is an error during this call, no dashboards are deleted. + */ + deleteDashboards(params: CloudWatch.Types.DeleteDashboardsInput, callback?: (err: AWSError, data: CloudWatch.Types.DeleteDashboardsOutput) => void): Request; + /** + * Deletes all dashboards that you specify. You can specify up to 100 dashboards to delete. If there is an error during this call, no dashboards are deleted. + */ + deleteDashboards(callback?: (err: AWSError, data: CloudWatch.Types.DeleteDashboardsOutput) => void): Request; + /** + * Permanently deletes the specified Contributor Insights rules. If you create a rule, delete it, and then re-create it with the same name, historical data from the first time the rule was created might not be available. + */ + deleteInsightRules(params: CloudWatch.Types.DeleteInsightRulesInput, callback?: (err: AWSError, data: CloudWatch.Types.DeleteInsightRulesOutput) => void): Request; + /** + * Permanently deletes the specified Contributor Insights rules. If you create a rule, delete it, and then re-create it with the same name, historical data from the first time the rule was created might not be available. + */ + deleteInsightRules(callback?: (err: AWSError, data: CloudWatch.Types.DeleteInsightRulesOutput) => void): Request; + /** + * Permanently deletes the metric stream that you specify. + */ + deleteMetricStream(params: CloudWatch.Types.DeleteMetricStreamInput, callback?: (err: AWSError, data: CloudWatch.Types.DeleteMetricStreamOutput) => void): Request; + /** + * Permanently deletes the metric stream that you specify. + */ + deleteMetricStream(callback?: (err: AWSError, data: CloudWatch.Types.DeleteMetricStreamOutput) => void): Request; + /** + * Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for either all metric alarms or all composite alarms are returned. CloudWatch retains the history of an alarm even if you delete the alarm. + */ + describeAlarmHistory(params: CloudWatch.Types.DescribeAlarmHistoryInput, callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmHistoryOutput) => void): Request; + /** + * Retrieves the history for the specified alarm. You can filter the results by date range or item type. If an alarm name is not specified, the histories for either all metric alarms or all composite alarms are returned. CloudWatch retains the history of an alarm even if you delete the alarm. + */ + describeAlarmHistory(callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmHistoryOutput) => void): Request; + /** + * Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm state, or a prefix for any action. + */ + describeAlarms(params: CloudWatch.Types.DescribeAlarmsInput, callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsOutput) => void): Request; + /** + * Retrieves the specified alarms. You can filter the results by specifying a prefix for the alarm name, the alarm state, or a prefix for any action. + */ + describeAlarms(callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsOutput) => void): Request; + /** + * Retrieves the alarms for the specified metric. To filter the results, specify a statistic, period, or unit. This operation retrieves only standard alarms that are based on the specified metric. It does not return alarms based on math expressions that use the specified metric, or composite alarms that use the specified metric. + */ + describeAlarmsForMetric(params: CloudWatch.Types.DescribeAlarmsForMetricInput, callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsForMetricOutput) => void): Request; + /** + * Retrieves the alarms for the specified metric. To filter the results, specify a statistic, period, or unit. This operation retrieves only standard alarms that are based on the specified metric. It does not return alarms based on math expressions that use the specified metric, or composite alarms that use the specified metric. + */ + describeAlarmsForMetric(callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsForMetricOutput) => void): Request; + /** + * Lists the anomaly detection models that you have created in your account. You can list all models in your account or filter the results to only the models that are related to a certain namespace, metric name, or metric dimension. + */ + describeAnomalyDetectors(params: CloudWatch.Types.DescribeAnomalyDetectorsInput, callback?: (err: AWSError, data: CloudWatch.Types.DescribeAnomalyDetectorsOutput) => void): Request; + /** + * Lists the anomaly detection models that you have created in your account. You can list all models in your account or filter the results to only the models that are related to a certain namespace, metric name, or metric dimension. + */ + describeAnomalyDetectors(callback?: (err: AWSError, data: CloudWatch.Types.DescribeAnomalyDetectorsOutput) => void): Request; + /** + * Returns a list of all the Contributor Insights rules in your account. For more information about Contributor Insights, see Using Contributor Insights to Analyze High-Cardinality Data. + */ + describeInsightRules(params: CloudWatch.Types.DescribeInsightRulesInput, callback?: (err: AWSError, data: CloudWatch.Types.DescribeInsightRulesOutput) => void): Request; + /** + * Returns a list of all the Contributor Insights rules in your account. For more information about Contributor Insights, see Using Contributor Insights to Analyze High-Cardinality Data. + */ + describeInsightRules(callback?: (err: AWSError, data: CloudWatch.Types.DescribeInsightRulesOutput) => void): Request; + /** + * Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes. + */ + disableAlarmActions(params: CloudWatch.Types.DisableAlarmActionsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Disables the actions for the specified alarms. When an alarm's actions are disabled, the alarm actions do not execute when the alarm state changes. + */ + disableAlarmActions(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Disables the specified Contributor Insights rules. When rules are disabled, they do not analyze log groups and do not incur costs. + */ + disableInsightRules(params: CloudWatch.Types.DisableInsightRulesInput, callback?: (err: AWSError, data: CloudWatch.Types.DisableInsightRulesOutput) => void): Request; + /** + * Disables the specified Contributor Insights rules. When rules are disabled, they do not analyze log groups and do not incur costs. + */ + disableInsightRules(callback?: (err: AWSError, data: CloudWatch.Types.DisableInsightRulesOutput) => void): Request; + /** + * Enables the actions for the specified alarms. + */ + enableAlarmActions(params: CloudWatch.Types.EnableAlarmActionsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Enables the actions for the specified alarms. + */ + enableAlarmActions(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Enables the specified Contributor Insights rules. When rules are enabled, they immediately begin analyzing log data. + */ + enableInsightRules(params: CloudWatch.Types.EnableInsightRulesInput, callback?: (err: AWSError, data: CloudWatch.Types.EnableInsightRulesOutput) => void): Request; + /** + * Enables the specified Contributor Insights rules. When rules are enabled, they immediately begin analyzing log data. + */ + enableInsightRules(callback?: (err: AWSError, data: CloudWatch.Types.EnableInsightRulesOutput) => void): Request; + /** + * Displays the details of the dashboard that you specify. To copy an existing dashboard, use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard to create the copy. + */ + getDashboard(params: CloudWatch.Types.GetDashboardInput, callback?: (err: AWSError, data: CloudWatch.Types.GetDashboardOutput) => void): Request; + /** + * Displays the details of the dashboard that you specify. To copy an existing dashboard, use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard to create the copy. + */ + getDashboard(callback?: (err: AWSError, data: CloudWatch.Types.GetDashboardOutput) => void): Request; + /** + * This operation returns the time series data collected by a Contributor Insights rule. The data includes the identity and number of contributors to the log group. You can also optionally return one or more statistics about each data point in the time series. These statistics can include the following: UniqueContributors -- the number of unique contributors for each data point. MaxContributorValue -- the value of the top contributor for each data point. The identity of the contributor might change for each data point in the graph. If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's Value, during that period. SampleCount -- the number of data points matched by the rule. Sum -- the sum of the values from all contributors during the time period represented by that data point. Minimum -- the minimum value from a single observation during the time period represented by that data point. Maximum -- the maximum value from a single observation during the time period represented by that data point. Average -- the average value from all contributors during the time period represented by that data point. + */ + getInsightRuleReport(params: CloudWatch.Types.GetInsightRuleReportInput, callback?: (err: AWSError, data: CloudWatch.Types.GetInsightRuleReportOutput) => void): Request; + /** + * This operation returns the time series data collected by a Contributor Insights rule. The data includes the identity and number of contributors to the log group. You can also optionally return one or more statistics about each data point in the time series. These statistics can include the following: UniqueContributors -- the number of unique contributors for each data point. MaxContributorValue -- the value of the top contributor for each data point. The identity of the contributor might change for each data point in the graph. If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's Value, during that period. SampleCount -- the number of data points matched by the rule. Sum -- the sum of the values from all contributors during the time period represented by that data point. Minimum -- the minimum value from a single observation during the time period represented by that data point. Maximum -- the maximum value from a single observation during the time period represented by that data point. Average -- the average value from all contributors during the time period represented by that data point. + */ + getInsightRuleReport(callback?: (err: AWSError, data: CloudWatch.Types.GetInsightRuleReportOutput) => void): Request; + /** + * You can use the GetMetricData API to retrieve as many as 500 different metrics in a single request, with a total of as many as 100,800 data points. You can also optionally perform math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide. Calls to the GetMetricData API have a different pricing structure than calls to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch Pricing. Amazon CloudWatch retains metric data as follows: Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1. Data points with a period of 60 seconds (1-minute) are available for 15 days. Data points with a period of 300 seconds (5-minute) are available for 63 days. Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. If you omit Unit in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. + */ + getMetricData(params: CloudWatch.Types.GetMetricDataInput, callback?: (err: AWSError, data: CloudWatch.Types.GetMetricDataOutput) => void): Request; + /** + * You can use the GetMetricData API to retrieve as many as 500 different metrics in a single request, with a total of as many as 100,800 data points. You can also optionally perform math expressions on the values of the returned statistics, to create new time series that represent new insights into your data. For example, using Lambda metrics, you could divide the Errors metric by the Invocations metric to get an error rate time series. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide. Calls to the GetMetricData API have a different pricing structure than calls to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch Pricing. Amazon CloudWatch retains metric data as follows: Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1. Data points with a period of 60 seconds (1-minute) are available for 15 days. Data points with a period of 300 seconds (5-minute) are available for 63 days. Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. If you omit Unit in your request, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. + */ + getMetricData(callback?: (err: AWSError, data: CloudWatch.Types.GetMetricDataOutput) => void): Request; + /** + * Gets statistics for the specified metric. The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. Data points are not returned in chronological order. CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: The SampleCount value of the statistic set is 1. The Min and the Max values of the statistic set are equal. Percentile statistics are not available for metrics when any of the metric values are negative numbers. Amazon CloudWatch retains metric data as follows: Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1. Data points with a period of 60 seconds (1-minute) are available for 15 days. Data points with a period of 300 seconds (5-minute) are available for 63 days. Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016. For information about metrics and dimensions supported by AWS services, see the Amazon CloudWatch Metrics and Dimensions Reference in the Amazon CloudWatch User Guide. + */ + getMetricStatistics(params: CloudWatch.Types.GetMetricStatisticsInput, callback?: (err: AWSError, data: CloudWatch.Types.GetMetricStatisticsOutput) => void): Request; + /** + * Gets statistics for the specified metric. The maximum number of data points returned from a single call is 1,440. If you request more than 1,440 data points, CloudWatch returns an error. To reduce the number of data points, you can narrow the specified time range and make multiple requests across adjacent time ranges, or you can increase the specified period. Data points are not returned in chronological order. CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-hour period, CloudWatch aggregates all data points with time stamps that fall within each one-hour period. Therefore, the number of values aggregated by CloudWatch is larger than the number of data points returned. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: The SampleCount value of the statistic set is 1. The Min and the Max values of the statistic set are equal. Percentile statistics are not available for metrics when any of the metric values are negative numbers. Amazon CloudWatch retains metric data as follows: Data points with a period of less than 60 seconds are available for 3 hours. These data points are high-resolution metrics and are available only for custom metrics that have been defined with a StorageResolution of 1. Data points with a period of 60 seconds (1-minute) are available for 15 days. Data points with a period of 300 seconds (5-minute) are available for 63 days. Data points with a period of 3600 seconds (1 hour) are available for 455 days (15 months). Data points that are initially published with a shorter period are aggregated together for long-term storage. For example, if you collect data using a period of 1 minute, the data remains available for 15 days with 1-minute resolution. After 15 days, this data is still available, but is aggregated and retrievable only with a resolution of 5 minutes. After 63 days, the data is further aggregated and is available with a resolution of 1 hour. CloudWatch started retaining 5-minute and 1-hour metric data as of July 9, 2016. For information about metrics and dimensions supported by AWS services, see the Amazon CloudWatch Metrics and Dimensions Reference in the Amazon CloudWatch User Guide. + */ + getMetricStatistics(callback?: (err: AWSError, data: CloudWatch.Types.GetMetricStatisticsOutput) => void): Request; + /** + * Returns information about the metric stream that you specify. + */ + getMetricStream(params: CloudWatch.Types.GetMetricStreamInput, callback?: (err: AWSError, data: CloudWatch.Types.GetMetricStreamOutput) => void): Request; + /** + * Returns information about the metric stream that you specify. + */ + getMetricStream(callback?: (err: AWSError, data: CloudWatch.Types.GetMetricStreamOutput) => void): Request; + /** + * You can use the GetMetricWidgetImage API to retrieve a snapshot graph of one or more Amazon CloudWatch metrics as a bitmap image. You can then embed this image into your services and products, such as wiki pages, reports, and documents. You could also retrieve images regularly, such as every minute, and create your own custom live dashboard. The graph you retrieve can include all CloudWatch metric graph features, including metric math and horizontal and vertical annotations. There is a limit of 20 transactions per second for this API. Each GetMetricWidgetImage action has the following limits: As many as 100 metrics in the graph. Up to 100 KB uncompressed payload. + */ + getMetricWidgetImage(params: CloudWatch.Types.GetMetricWidgetImageInput, callback?: (err: AWSError, data: CloudWatch.Types.GetMetricWidgetImageOutput) => void): Request; + /** + * You can use the GetMetricWidgetImage API to retrieve a snapshot graph of one or more Amazon CloudWatch metrics as a bitmap image. You can then embed this image into your services and products, such as wiki pages, reports, and documents. You could also retrieve images regularly, such as every minute, and create your own custom live dashboard. The graph you retrieve can include all CloudWatch metric graph features, including metric math and horizontal and vertical annotations. There is a limit of 20 transactions per second for this API. Each GetMetricWidgetImage action has the following limits: As many as 100 metrics in the graph. Up to 100 KB uncompressed payload. + */ + getMetricWidgetImage(callback?: (err: AWSError, data: CloudWatch.Types.GetMetricWidgetImageOutput) => void): Request; + /** + * Returns a list of the dashboards for your account. If you include DashboardNamePrefix, only those dashboards with names starting with the prefix are listed. Otherwise, all dashboards in your account are listed. ListDashboards returns up to 1000 results on one page. If there are more than 1000 dashboards, you can call ListDashboards again and include the value you received for NextToken in the first call, to receive the next 1000 results. + */ + listDashboards(params: CloudWatch.Types.ListDashboardsInput, callback?: (err: AWSError, data: CloudWatch.Types.ListDashboardsOutput) => void): Request; + /** + * Returns a list of the dashboards for your account. If you include DashboardNamePrefix, only those dashboards with names starting with the prefix are listed. Otherwise, all dashboards in your account are listed. ListDashboards returns up to 1000 results on one page. If there are more than 1000 dashboards, you can call ListDashboards again and include the value you received for NextToken in the first call, to receive the next 1000 results. + */ + listDashboards(callback?: (err: AWSError, data: CloudWatch.Types.ListDashboardsOutput) => void): Request; + /** + * Returns a list of metric streams in this account. + */ + listMetricStreams(params: CloudWatch.Types.ListMetricStreamsInput, callback?: (err: AWSError, data: CloudWatch.Types.ListMetricStreamsOutput) => void): Request; + /** + * Returns a list of metric streams in this account. + */ + listMetricStreams(callback?: (err: AWSError, data: CloudWatch.Types.ListMetricStreamsOutput) => void): Request; + /** + * List the specified metrics. You can use the returned metrics with GetMetricData or GetMetricStatistics to obtain statistical data. Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls. After you create a metric, allow up to 15 minutes before the metric appears. You can see statistics about the metric sooner by using GetMetricData or GetMetricStatistics. ListMetrics doesn't return information about metrics if those metrics haven't reported data in the past two weeks. To retrieve those metrics, use GetMetricData or GetMetricStatistics. + */ + listMetrics(params: CloudWatch.Types.ListMetricsInput, callback?: (err: AWSError, data: CloudWatch.Types.ListMetricsOutput) => void): Request; + /** + * List the specified metrics. You can use the returned metrics with GetMetricData or GetMetricStatistics to obtain statistical data. Up to 500 results are returned for any one call. To retrieve additional results, use the returned token with subsequent calls. After you create a metric, allow up to 15 minutes before the metric appears. You can see statistics about the metric sooner by using GetMetricData or GetMetricStatistics. ListMetrics doesn't return information about metrics if those metrics haven't reported data in the past two weeks. To retrieve those metrics, use GetMetricData or GetMetricStatistics. + */ + listMetrics(callback?: (err: AWSError, data: CloudWatch.Types.ListMetricsOutput) => void): Request; + /** + * Displays the tags associated with a CloudWatch resource. Currently, alarms and Contributor Insights rules support tagging. + */ + listTagsForResource(params: CloudWatch.Types.ListTagsForResourceInput, callback?: (err: AWSError, data: CloudWatch.Types.ListTagsForResourceOutput) => void): Request; + /** + * Displays the tags associated with a CloudWatch resource. Currently, alarms and Contributor Insights rules support tagging. + */ + listTagsForResource(callback?: (err: AWSError, data: CloudWatch.Types.ListTagsForResourceOutput) => void): Request; + /** + * Creates an anomaly detection model for a CloudWatch metric. You can use the model to display a band of expected normal values when the metric is graphed. For more information, see CloudWatch Anomaly Detection. + */ + putAnomalyDetector(params: CloudWatch.Types.PutAnomalyDetectorInput, callback?: (err: AWSError, data: CloudWatch.Types.PutAnomalyDetectorOutput) => void): Request; + /** + * Creates an anomaly detection model for a CloudWatch metric. You can use the model to display a band of expected normal values when the metric is graphed. For more information, see CloudWatch Anomaly Detection. + */ + putAnomalyDetector(callback?: (err: AWSError, data: CloudWatch.Types.PutAnomalyDetectorOutput) => void): Request; + /** + * Creates or updates a composite alarm. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met. The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms. Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state. Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics. It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete. To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False. Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in INSUFFICIENT_DATA state. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an IAM user, you must have iam:CreateServiceLinkedRole to create a composite alarm that has Systems Manager OpsItem actions. + */ + putCompositeAlarm(params: CloudWatch.Types.PutCompositeAlarmInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a composite alarm. When you create a composite alarm, you specify a rule expression for the alarm that takes into account the alarm states of other alarms that you have created. The composite alarm goes into ALARM state only if all conditions of the rule are met. The alarms specified in a composite alarm's rule expression can include metric alarms and other composite alarms. Using composite alarms can reduce alarm noise. You can create multiple metric alarms, and also create a composite alarm and set up alerts only for the composite alarm. For example, you could create a composite alarm that goes into ALARM state only when more than one of the underlying metric alarms are in ALARM state. Currently, the only alarm actions that can be taken by composite alarms are notifying SNS topics. It is possible to create a loop or cycle of composite alarms, where composite alarm A depends on composite alarm B, and composite alarm B also depends on composite alarm A. In this scenario, you can't delete any composite alarm that is part of the cycle because there is always still a composite alarm that depends on that alarm that you want to delete. To get out of such a situation, you must break the cycle by changing the rule of one of the composite alarms in the cycle to remove a dependency that creates the cycle. The simplest change to make to break a cycle is to change the AlarmRule of one of the alarms to False. Additionally, the evaluation of composite alarms stops if CloudWatch detects a cycle in the evaluation path. When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. For a composite alarm, this initial time after creation is the only time that the alarm can be in INSUFFICIENT_DATA state. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an IAM user, you must have iam:CreateServiceLinkedRole to create a composite alarm that has Systems Manager OpsItem actions. + */ + putCompositeAlarm(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here. All dashboards in your account are global, not region-specific. A simple way to create a dashboard using PutDashboard is to copy an existing dashboard. To copy an existing dashboard using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display the JSON block for that dashboard. Another way to copy a dashboard is to use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard. When you create a dashboard with PutDashboard, a good practice is to add a text widget at the top of the dashboard with a message that the dashboard was created by script and should not be changed in the console. This message could also point console users to the location of the DashboardBody script or the CloudFormation template used to create the dashboard. + */ + putDashboard(params: CloudWatch.Types.PutDashboardInput, callback?: (err: AWSError, data: CloudWatch.Types.PutDashboardOutput) => void): Request; + /** + * Creates a dashboard if it does not already exist, or updates an existing dashboard. If you update a dashboard, the entire contents are replaced with what you specify here. All dashboards in your account are global, not region-specific. A simple way to create a dashboard using PutDashboard is to copy an existing dashboard. To copy an existing dashboard using the console, you can load the dashboard and then use the View/edit source command in the Actions menu to display the JSON block for that dashboard. Another way to copy a dashboard is to use GetDashboard, and then use the data returned within DashboardBody as the template for the new dashboard when you call PutDashboard. When you create a dashboard with PutDashboard, a good practice is to add a text widget at the top of the dashboard with a message that the dashboard was created by script and should not be changed in the console. This message could also point console users to the location of the DashboardBody script or the CloudFormation template used to create the dashboard. + */ + putDashboard(callback?: (err: AWSError, data: CloudWatch.Types.PutDashboardOutput) => void): Request; + /** + * Creates a Contributor Insights rule. Rules evaluate log events in a CloudWatch Logs log group, enabling you to find contributor data for the log events in that log group. For more information, see Using Contributor Insights to Analyze High-Cardinality Data. If you create a rule, delete it, and then re-create it with the same name, historical data from the first time the rule was created might not be available. + */ + putInsightRule(params: CloudWatch.Types.PutInsightRuleInput, callback?: (err: AWSError, data: CloudWatch.Types.PutInsightRuleOutput) => void): Request; + /** + * Creates a Contributor Insights rule. Rules evaluate log events in a CloudWatch Logs log group, enabling you to find contributor data for the log events in that log group. For more information, see Using Contributor Insights to Analyze High-Cardinality Data. If you create a rule, delete it, and then re-create it with the same name, historical data from the first time the rule was created might not be available. + */ + putInsightRule(callback?: (err: AWSError, data: CloudWatch.Types.PutInsightRuleOutput) => void): Request; + /** + * Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model. Alarms based on anomaly detection models cannot have Auto Scaling actions. When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations: The iam:CreateServiceLinkedRole for all alarms with EC2 actions The iam:CreateServiceLinkedRole to create an alarm with Systems Manager OpsItem actions. The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked roles are called AWSServiceRoleForCloudWatchEvents and AWSServiceRoleForCloudWatchAlarms_ActionSSM. For more information, see AWS service-linked role. + */ + putMetricAlarm(params: CloudWatch.Types.PutMetricAlarmInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates an alarm and associates it with the specified metric, metric math expression, or anomaly detection model. Alarms based on anomaly detection models cannot have Auto Scaling actions. When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately. Any actions associated with the new state are then executed. When you update an existing alarm, its state is left unchanged, but the update completely overwrites the previous configuration of the alarm. If you are an IAM user, you must have Amazon EC2 permissions for some alarm operations: The iam:CreateServiceLinkedRole for all alarms with EC2 actions The iam:CreateServiceLinkedRole to create an alarm with Systems Manager OpsItem actions. The first time you create an alarm in the AWS Management Console, the CLI, or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked role for you. The service-linked roles are called AWSServiceRoleForCloudWatchEvents and AWSServiceRoleForCloudWatchAlarms_ActionSSM. For more information, see AWS service-linked role. + */ + putMetricAlarm(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics. You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data. Each PutMetricData request is limited to 40 KB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 20 different metrics. Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. You can use up to 10 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide. You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time. Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for GetMetricData or GetMetricStatistics. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal. The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount. + */ + putMetricData(params: CloudWatch.Types.PutMetricDataInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Publishes metric data points to Amazon CloudWatch. CloudWatch associates the data points with the specified metric. If the specified metric does not exist, CloudWatch creates the metric. When CloudWatch creates a metric, it can take up to fifteen minutes for the metric to appear in calls to ListMetrics. You can publish either individual data points in the Value field, or arrays of values and the number of times each value occurred during the period by using the Values and Counts fields in the MetricDatum structure. Using the Values and Counts method enables you to publish up to 150 values per metric with one PutMetricData request, and supports retrieving percentile statistics on this data. Each PutMetricData request is limited to 40 KB in size for HTTP POST requests. You can send a payload compressed by gzip. Each request is also limited to no more than 20 different metrics. Although the Value parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. You can use up to 10 dimensions per metric to further clarify what data the metric collects. Each dimension consists of a Name and Value pair. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide. You specify the time stamp to be associated with each data point. You can specify time stamps that are as much as two weeks before the current date, and as much as 2 hours after the current day and time. Data points with time stamps from 24 hours ago or longer can take at least 48 hours to become available for GetMetricData or GetMetricStatistics from the time they are submitted. Data points with time stamps between 3 and 24 hours ago can take as much as 2 hours to become available for for GetMetricData or GetMetricStatistics. CloudWatch needs raw data points to calculate percentile statistics. If you publish data using a statistic set instead, you can only retrieve percentile statistics for this data if one of the following conditions is true: The SampleCount value of the statistic set is 1 and Min, Max, and Sum are all equal. The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount. + */ + putMetricData(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a metric stream. Metric streams can automatically stream CloudWatch metrics to AWS destinations including Amazon S3 and to many third-party solutions. For more information, see Using Metric Streams. To create a metric stream, you must be logged on to an account that has the iam:PassRole permission and either the CloudWatchFullAccess policy or the cloudwatch:PutMetricStream permission. When you create or update a metric stream, you choose one of the following: Stream metrics from all metric namespaces in the account. Stream metrics from all metric namespaces in the account, except for the namespaces that you list in ExcludeFilters. Stream metrics from only the metric namespaces that you list in IncludeFilters. When you use PutMetricStream to create a new metric stream, the stream is created in the running state. If you use it to update an existing stream, the state of the stream is not changed. + */ + putMetricStream(params: CloudWatch.Types.PutMetricStreamInput, callback?: (err: AWSError, data: CloudWatch.Types.PutMetricStreamOutput) => void): Request; + /** + * Creates or updates a metric stream. Metric streams can automatically stream CloudWatch metrics to AWS destinations including Amazon S3 and to many third-party solutions. For more information, see Using Metric Streams. To create a metric stream, you must be logged on to an account that has the iam:PassRole permission and either the CloudWatchFullAccess policy or the cloudwatch:PutMetricStream permission. When you create or update a metric stream, you choose one of the following: Stream metrics from all metric namespaces in the account. Stream metrics from all metric namespaces in the account, except for the namespaces that you list in ExcludeFilters. Stream metrics from only the metric namespaces that you list in IncludeFilters. When you use PutMetricStream to create a new metric stream, the stream is created in the running state. If you use it to update an existing stream, the state of the stream is not changed. + */ + putMetricStream(callback?: (err: AWSError, data: CloudWatch.Types.PutMetricStreamOutput) => void): Request; + /** + * Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an SNS message. Metric alarms returns to their actual state quickly, often within seconds. Because the metric alarm state change happens quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory. If you use SetAlarmState on a composite alarm, the composite alarm is not guaranteed to return to its actual state. It returns to its actual state only once any of its children alarms change state. It is also reevaluated if you update its configuration. If an alarm triggers EC2 Auto Scaling policies or application Auto Scaling policies, you must include information in the StateReasonData parameter to enable the policy to take the correct action. + */ + setAlarmState(params: CloudWatch.Types.SetAlarmStateInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Temporarily sets the state of an alarm for testing purposes. When the updated state differs from the previous value, the action configured for the appropriate state is invoked. For example, if your alarm is configured to send an Amazon SNS message when an alarm is triggered, temporarily changing the alarm state to ALARM sends an SNS message. Metric alarms returns to their actual state quickly, often within seconds. Because the metric alarm state change happens quickly, it is typically only visible in the alarm's History tab in the Amazon CloudWatch console or through DescribeAlarmHistory. If you use SetAlarmState on a composite alarm, the composite alarm is not guaranteed to return to its actual state. It returns to its actual state only once any of its children alarms change state. It is also reevaluated if you update its configuration. If an alarm triggers EC2 Auto Scaling policies or application Auto Scaling policies, you must include information in the StateReasonData parameter to enable the policy to take the correct action. + */ + setAlarmState(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Starts the streaming of metrics for one or more of your metric streams. + */ + startMetricStreams(params: CloudWatch.Types.StartMetricStreamsInput, callback?: (err: AWSError, data: CloudWatch.Types.StartMetricStreamsOutput) => void): Request; + /** + * Starts the streaming of metrics for one or more of your metric streams. + */ + startMetricStreams(callback?: (err: AWSError, data: CloudWatch.Types.StartMetricStreamsOutput) => void): Request; + /** + * Stops the streaming of metrics for one or more of your metric streams. + */ + stopMetricStreams(params: CloudWatch.Types.StopMetricStreamsInput, callback?: (err: AWSError, data: CloudWatch.Types.StopMetricStreamsOutput) => void): Request; + /** + * Stops the streaming of metrics for one or more of your metric streams. + */ + stopMetricStreams(callback?: (err: AWSError, data: CloudWatch.Types.StopMetricStreamsOutput) => void): Request; + /** + * Assigns one or more tags (key-value pairs) to the specified CloudWatch resource. Currently, the only CloudWatch resources that can be tagged are alarms and Contributor Insights rules. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the TagResource action with an alarm that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a CloudWatch resource. + */ + tagResource(params: CloudWatch.Types.TagResourceInput, callback?: (err: AWSError, data: CloudWatch.Types.TagResourceOutput) => void): Request; + /** + * Assigns one or more tags (key-value pairs) to the specified CloudWatch resource. Currently, the only CloudWatch resources that can be tagged are alarms and Contributor Insights rules. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the TagResource action with an alarm that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a CloudWatch resource. + */ + tagResource(callback?: (err: AWSError, data: CloudWatch.Types.TagResourceOutput) => void): Request; + /** + * Removes one or more tags from the specified resource. + */ + untagResource(params: CloudWatch.Types.UntagResourceInput, callback?: (err: AWSError, data: CloudWatch.Types.UntagResourceOutput) => void): Request; + /** + * Removes one or more tags from the specified resource. + */ + untagResource(callback?: (err: AWSError, data: CloudWatch.Types.UntagResourceOutput) => void): Request; + /** + * Waits for the alarmExists state by periodically calling the underlying CloudWatch.describeAlarmsoperation every 5 seconds (at most 40 times). + */ + waitFor(state: "alarmExists", params: CloudWatch.Types.DescribeAlarmsInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsOutput) => void): Request; + /** + * Waits for the alarmExists state by periodically calling the underlying CloudWatch.describeAlarmsoperation every 5 seconds (at most 40 times). + */ + waitFor(state: "alarmExists", callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsOutput) => void): Request; + /** + * Waits for the compositeAlarmExists state by periodically calling the underlying CloudWatch.describeAlarmsoperation every 5 seconds (at most 40 times). + */ + waitFor(state: "compositeAlarmExists", params: CloudWatch.Types.DescribeAlarmsInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsOutput) => void): Request; + /** + * Waits for the compositeAlarmExists state by periodically calling the underlying CloudWatch.describeAlarmsoperation every 5 seconds (at most 40 times). + */ + waitFor(state: "compositeAlarmExists", callback?: (err: AWSError, data: CloudWatch.Types.DescribeAlarmsOutput) => void): Request; +} +declare namespace CloudWatch { + export type ActionPrefix = string; + export type ActionsEnabled = boolean; + export type AlarmArn = string; + export type AlarmDescription = string; + export interface AlarmHistoryItem { + /** + * The descriptive name for the alarm. + */ + AlarmName?: AlarmName; + /** + * The type of alarm, either metric alarm or composite alarm. + */ + AlarmType?: AlarmType; + /** + * The time stamp for the alarm history item. + */ + Timestamp?: Timestamp; + /** + * The type of alarm history item. + */ + HistoryItemType?: HistoryItemType; + /** + * A summary of the alarm history, in text format. + */ + HistorySummary?: HistorySummary; + /** + * Data about the alarm, in JSON format. + */ + HistoryData?: HistoryData; + } + export type AlarmHistoryItems = AlarmHistoryItem[]; + export type AlarmName = string; + export type AlarmNamePrefix = string; + export type AlarmNames = AlarmName[]; + export type AlarmRule = string; + export type AlarmType = "CompositeAlarm"|"MetricAlarm"|string; + export type AlarmTypes = AlarmType[]; + export type AmazonResourceName = string; + export interface AnomalyDetector { + /** + * The namespace of the metric associated with the anomaly detection model. + */ + Namespace?: Namespace; + /** + * The name of the metric associated with the anomaly detection model. + */ + MetricName?: MetricName; + /** + * The metric dimensions associated with the anomaly detection model. + */ + Dimensions?: Dimensions; + /** + * The statistic associated with the anomaly detection model. + */ + Stat?: AnomalyDetectorMetricStat; + /** + * The configuration specifies details about how the anomaly detection model is to be trained, including time ranges to exclude from use for training the model, and the time zone to use for the metric. + */ + Configuration?: AnomalyDetectorConfiguration; + /** + * The current status of the anomaly detector's training. The possible values are TRAINED | PENDING_TRAINING | TRAINED_INSUFFICIENT_DATA + */ + StateValue?: AnomalyDetectorStateValue; + } + export interface AnomalyDetectorConfiguration { + /** + * An array of time ranges to exclude from use when the anomaly detection model is trained. Use this to make sure that events that could cause unusual values for the metric, such as deployments, aren't used when CloudWatch creates the model. + */ + ExcludedTimeRanges?: AnomalyDetectorExcludedTimeRanges; + /** + * The time zone to use for the metric. This is useful to enable the model to automatically account for daylight savings time changes if the metric is sensitive to such time changes. To specify a time zone, use the name of the time zone as specified in the standard tz database. For more information, see tz database. + */ + MetricTimezone?: AnomalyDetectorMetricTimezone; + } + export type AnomalyDetectorExcludedTimeRanges = Range[]; + export type AnomalyDetectorMetricStat = string; + export type AnomalyDetectorMetricTimezone = string; + export type AnomalyDetectorStateValue = "PENDING_TRAINING"|"TRAINED_INSUFFICIENT_DATA"|"TRAINED"|string; + export type AnomalyDetectors = AnomalyDetector[]; + export type BatchFailures = PartialFailure[]; + export type ComparisonOperator = "GreaterThanOrEqualToThreshold"|"GreaterThanThreshold"|"LessThanThreshold"|"LessThanOrEqualToThreshold"|"LessThanLowerOrGreaterThanUpperThreshold"|"LessThanLowerThreshold"|"GreaterThanUpperThreshold"|string; + export interface CompositeAlarm { + /** + * Indicates whether actions should be executed during any changes to the alarm state. + */ + ActionsEnabled?: ActionsEnabled; + /** + * The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). + */ + AlarmActions?: ResourceList; + /** + * The Amazon Resource Name (ARN) of the alarm. + */ + AlarmArn?: AlarmArn; + /** + * The time stamp of the last update to the alarm configuration. + */ + AlarmConfigurationUpdatedTimestamp?: Timestamp; + /** + * The description of the alarm. + */ + AlarmDescription?: AlarmDescription; + /** + * The name of the alarm. + */ + AlarmName?: AlarmName; + /** + * The rule that this alarm uses to evaluate its alarm state. + */ + AlarmRule?: AlarmRule; + /** + * The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). + */ + InsufficientDataActions?: ResourceList; + /** + * The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + */ + OKActions?: ResourceList; + /** + * An explanation for the alarm state, in text format. + */ + StateReason?: StateReason; + /** + * An explanation for the alarm state, in JSON format. + */ + StateReasonData?: StateReasonData; + /** + * The time stamp of the last update to the alarm state. + */ + StateUpdatedTimestamp?: Timestamp; + /** + * The state value for the alarm. + */ + StateValue?: StateValue; + } + export type CompositeAlarms = CompositeAlarm[]; + export type Counts = DatapointValue[]; + export type DashboardArn = string; + export type DashboardBody = string; + export type DashboardEntries = DashboardEntry[]; + export interface DashboardEntry { + /** + * The name of the dashboard. + */ + DashboardName?: DashboardName; + /** + * The Amazon Resource Name (ARN) of the dashboard. + */ + DashboardArn?: DashboardArn; + /** + * The time stamp of when the dashboard was last modified, either by an API call or through the console. This number is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + */ + LastModified?: LastModified; + /** + * The size of the dashboard, in bytes. + */ + Size?: Size; + } + export type DashboardName = string; + export type DashboardNamePrefix = string; + export type DashboardNames = DashboardName[]; + export interface DashboardValidationMessage { + /** + * The data path related to the message. + */ + DataPath?: DataPath; + /** + * A message describing the error or warning. + */ + Message?: Message; + } + export type DashboardValidationMessages = DashboardValidationMessage[]; + export type DataPath = string; + export interface Datapoint { + /** + * The time stamp used for the data point. + */ + Timestamp?: Timestamp; + /** + * The number of metric values that contributed to the aggregate value of this data point. + */ + SampleCount?: DatapointValue; + /** + * The average of the metric values that correspond to the data point. + */ + Average?: DatapointValue; + /** + * The sum of the metric values for the data point. + */ + Sum?: DatapointValue; + /** + * The minimum metric value for the data point. + */ + Minimum?: DatapointValue; + /** + * The maximum metric value for the data point. + */ + Maximum?: DatapointValue; + /** + * The standard unit for the data point. + */ + Unit?: StandardUnit; + /** + * The percentile statistic for the data point. + */ + ExtendedStatistics?: DatapointValueMap; + } + export type DatapointValue = number; + export type DatapointValueMap = {[key: string]: DatapointValue}; + export type DatapointValues = DatapointValue[]; + export type Datapoints = Datapoint[]; + export type DatapointsToAlarm = number; + export interface DeleteAlarmsInput { + /** + * The alarms to be deleted. + */ + AlarmNames: AlarmNames; + } + export interface DeleteAnomalyDetectorInput { + /** + * The namespace associated with the anomaly detection model to delete. + */ + Namespace: Namespace; + /** + * The metric name associated with the anomaly detection model to delete. + */ + MetricName: MetricName; + /** + * The metric dimensions associated with the anomaly detection model to delete. + */ + Dimensions?: Dimensions; + /** + * The statistic associated with the anomaly detection model to delete. + */ + Stat: AnomalyDetectorMetricStat; + } + export interface DeleteAnomalyDetectorOutput { + } + export interface DeleteDashboardsInput { + /** + * The dashboards to be deleted. This parameter is required. + */ + DashboardNames: DashboardNames; + } + export interface DeleteDashboardsOutput { + } + export interface DeleteInsightRulesInput { + /** + * An array of the rule names to delete. If you need to find out the names of your rules, use DescribeInsightRules. + */ + RuleNames: InsightRuleNames; + } + export interface DeleteInsightRulesOutput { + /** + * An array listing the rules that could not be deleted. You cannot delete built-in rules. + */ + Failures?: BatchFailures; + } + export interface DeleteMetricStreamInput { + /** + * The name of the metric stream to delete. + */ + Name: MetricStreamName; + } + export interface DeleteMetricStreamOutput { + } + export interface DescribeAlarmHistoryInput { + /** + * The name of the alarm. + */ + AlarmName?: AlarmName; + /** + * Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned. + */ + AlarmTypes?: AlarmTypes; + /** + * The type of alarm histories to retrieve. + */ + HistoryItemType?: HistoryItemType; + /** + * The starting date to retrieve alarm history. + */ + StartDate?: Timestamp; + /** + * The ending date to retrieve alarm history. + */ + EndDate?: Timestamp; + /** + * The maximum number of alarm history records to retrieve. + */ + MaxRecords?: MaxRecords; + /** + * The token returned by a previous call to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * Specified whether to return the newest or oldest alarm history first. Specify TimestampDescending to have the newest event history returned first, and specify TimestampAscending to have the oldest history returned first. + */ + ScanBy?: ScanBy; + } + export interface DescribeAlarmHistoryOutput { + /** + * The alarm histories, in JSON format. + */ + AlarmHistoryItems?: AlarmHistoryItems; + /** + * The token that marks the start of the next batch of returned results. + */ + NextToken?: NextToken; + } + export interface DescribeAlarmsForMetricInput { + /** + * The name of the metric. + */ + MetricName: MetricName; + /** + * The namespace of the metric. + */ + Namespace: Namespace; + /** + * The statistic for the metric, other than percentiles. For percentile statistics, use ExtendedStatistics. + */ + Statistic?: Statistic; + /** + * The percentile statistic for the metric. Specify a value between p0.0 and p100. + */ + ExtendedStatistic?: ExtendedStatistic; + /** + * The dimensions associated with the metric. If the metric has any associated dimensions, you must specify them in order for the call to succeed. + */ + Dimensions?: Dimensions; + /** + * The period, in seconds, over which the statistic is applied. + */ + Period?: Period; + /** + * The unit for the metric. + */ + Unit?: StandardUnit; + } + export interface DescribeAlarmsForMetricOutput { + /** + * The information for each alarm with the specified metric. + */ + MetricAlarms?: MetricAlarms; + } + export interface DescribeAlarmsInput { + /** + * The names of the alarms to retrieve information about. + */ + AlarmNames?: AlarmNames; + /** + * An alarm name prefix. If you specify this parameter, you receive information about all alarms that have names that start with this prefix. If this parameter is specified, you cannot specify AlarmNames. + */ + AlarmNamePrefix?: AlarmNamePrefix; + /** + * Use this parameter to specify whether you want the operation to return metric alarms or composite alarms. If you omit this parameter, only metric alarms are returned. + */ + AlarmTypes?: AlarmTypes; + /** + * If you use this parameter and specify the name of a composite alarm, the operation returns information about the "children" alarms of the alarm you specify. These are the metric alarms and composite alarms referenced in the AlarmRule field of the composite alarm that you specify in ChildrenOfAlarmName. Information about the composite alarm that you name in ChildrenOfAlarmName is not returned. If you specify ChildrenOfAlarmName, you cannot specify any other parameters in the request except for MaxRecords and NextToken. If you do so, you receive a validation error. Only the Alarm Name, ARN, StateValue (OK/ALARM/INSUFFICIENT_DATA), and StateUpdatedTimestamp information are returned by this operation when you use this parameter. To get complete information about these alarms, perform another DescribeAlarms operation and specify the parent alarm names in the AlarmNames parameter. + */ + ChildrenOfAlarmName?: AlarmName; + /** + * If you use this parameter and specify the name of a metric or composite alarm, the operation returns information about the "parent" alarms of the alarm you specify. These are the composite alarms that have AlarmRule parameters that reference the alarm named in ParentsOfAlarmName. Information about the alarm that you specify in ParentsOfAlarmName is not returned. If you specify ParentsOfAlarmName, you cannot specify any other parameters in the request except for MaxRecords and NextToken. If you do so, you receive a validation error. Only the Alarm Name and ARN are returned by this operation when you use this parameter. To get complete information about these alarms, perform another DescribeAlarms operation and specify the parent alarm names in the AlarmNames parameter. + */ + ParentsOfAlarmName?: AlarmName; + /** + * Specify this parameter to receive information only about alarms that are currently in the state that you specify. + */ + StateValue?: StateValue; + /** + * Use this parameter to filter the results of the operation to only those alarms that use a certain alarm action. For example, you could specify the ARN of an SNS topic to find all alarms that send notifications to that topic. + */ + ActionPrefix?: ActionPrefix; + /** + * The maximum number of alarm descriptions to retrieve. + */ + MaxRecords?: MaxRecords; + /** + * The token returned by a previous call to indicate that there is more data available. + */ + NextToken?: NextToken; + } + export interface DescribeAlarmsOutput { + /** + * The information about any composite alarms returned by the operation. + */ + CompositeAlarms?: CompositeAlarms; + /** + * The information about any metric alarms returned by the operation. + */ + MetricAlarms?: MetricAlarms; + /** + * The token that marks the start of the next batch of returned results. + */ + NextToken?: NextToken; + } + export interface DescribeAnomalyDetectorsInput { + /** + * Use the token returned by the previous operation to request the next page of results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return in one operation. The maximum value that you can specify is 100. To retrieve the remaining results, make another call with the returned NextToken value. + */ + MaxResults?: MaxReturnedResultsCount; + /** + * Limits the results to only the anomaly detection models that are associated with the specified namespace. + */ + Namespace?: Namespace; + /** + * Limits the results to only the anomaly detection models that are associated with the specified metric name. If there are multiple metrics with this name in different namespaces that have anomaly detection models, they're all returned. + */ + MetricName?: MetricName; + /** + * Limits the results to only the anomaly detection models that are associated with the specified metric dimensions. If there are multiple metrics that have these dimensions and have anomaly detection models associated, they're all returned. + */ + Dimensions?: Dimensions; + } + export interface DescribeAnomalyDetectorsOutput { + /** + * The list of anomaly detection models returned by the operation. + */ + AnomalyDetectors?: AnomalyDetectors; + /** + * A token that you can use in a subsequent operation to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface DescribeInsightRulesInput { + /** + * Include this value, if it was returned by the previous operation, to get the next set of rules. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return in one operation. If you omit this parameter, the default of 500 is used. + */ + MaxResults?: InsightRuleMaxResults; + } + export interface DescribeInsightRulesOutput { + /** + * If this parameter is present, it is a token that marks the start of the next batch of returned results. + */ + NextToken?: NextToken; + /** + * The rules returned by the operation. + */ + InsightRules?: InsightRules; + } + export interface Dimension { + /** + * The name of the dimension. Dimension names cannot contain blank spaces or non-ASCII characters. + */ + Name: DimensionName; + /** + * The value of the dimension. Dimension values cannot contain blank spaces or non-ASCII characters. + */ + Value: DimensionValue; + } + export interface DimensionFilter { + /** + * The dimension name to be matched. + */ + Name: DimensionName; + /** + * The value of the dimension to be matched. + */ + Value?: DimensionValue; + } + export type DimensionFilters = DimensionFilter[]; + export type DimensionName = string; + export type DimensionValue = string; + export type Dimensions = Dimension[]; + export interface DisableAlarmActionsInput { + /** + * The names of the alarms. + */ + AlarmNames: AlarmNames; + } + export interface DisableInsightRulesInput { + /** + * An array of the rule names to disable. If you need to find out the names of your rules, use DescribeInsightRules. + */ + RuleNames: InsightRuleNames; + } + export interface DisableInsightRulesOutput { + /** + * An array listing the rules that could not be disabled. You cannot disable built-in rules. + */ + Failures?: BatchFailures; + } + export interface EnableAlarmActionsInput { + /** + * The names of the alarms. + */ + AlarmNames: AlarmNames; + } + export interface EnableInsightRulesInput { + /** + * An array of the rule names to enable. If you need to find out the names of your rules, use DescribeInsightRules. + */ + RuleNames: InsightRuleNames; + } + export interface EnableInsightRulesOutput { + /** + * An array listing the rules that could not be enabled. You cannot disable or enable built-in rules. + */ + Failures?: BatchFailures; + } + export type EvaluateLowSampleCountPercentile = string; + export type EvaluationPeriods = number; + export type ExceptionType = string; + export type ExtendedStatistic = string; + export type ExtendedStatistics = ExtendedStatistic[]; + export type FailureCode = string; + export type FailureDescription = string; + export type FailureResource = string; + export interface GetDashboardInput { + /** + * The name of the dashboard to be described. + */ + DashboardName: DashboardName; + } + export interface GetDashboardOutput { + /** + * The Amazon Resource Name (ARN) of the dashboard. + */ + DashboardArn?: DashboardArn; + /** + * The detailed information about the dashboard, including what widgets are included and their location on the dashboard. For more information about the DashboardBody syntax, see Dashboard Body Structure and Syntax. + */ + DashboardBody?: DashboardBody; + /** + * The name of the dashboard. + */ + DashboardName?: DashboardName; + } + export interface GetInsightRuleReportInput { + /** + * The name of the rule that you want to see data from. + */ + RuleName: InsightRuleName; + /** + * The start time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + */ + StartTime: Timestamp; + /** + * The end time of the data to use in the report. When used in a raw HTTP Query API, it is formatted as yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + */ + EndTime: Timestamp; + /** + * The period, in seconds, to use for the statistics in the InsightRuleMetricDatapoint results. + */ + Period: Period; + /** + * The maximum number of contributors to include in the report. The range is 1 to 100. If you omit this, the default of 10 is used. + */ + MaxContributorCount?: InsightRuleUnboundInteger; + /** + * Specifies which metrics to use for aggregation of contributor values for the report. You can specify one or more of the following metrics: UniqueContributors -- the number of unique contributors for each data point. MaxContributorValue -- the value of the top contributor for each data point. The identity of the contributor might change for each data point in the graph. If this rule aggregates by COUNT, the top contributor for each data point is the contributor with the most occurrences in that period. If the rule aggregates by SUM, the top contributor is the contributor with the highest sum in the log field specified by the rule's Value, during that period. SampleCount -- the number of data points matched by the rule. Sum -- the sum of the values from all contributors during the time period represented by that data point. Minimum -- the minimum value from a single observation during the time period represented by that data point. Maximum -- the maximum value from a single observation during the time period represented by that data point. Average -- the average value from all contributors during the time period represented by that data point. + */ + Metrics?: InsightRuleMetricList; + /** + * Determines what statistic to use to rank the contributors. Valid values are SUM and MAXIMUM. + */ + OrderBy?: InsightRuleOrderBy; + } + export interface GetInsightRuleReportOutput { + /** + * An array of the strings used as the keys for this rule. The keys are the dimensions used to classify contributors. If the rule contains more than one key, then each unique combination of values for the keys is counted as a unique contributor. + */ + KeyLabels?: InsightRuleContributorKeyLabels; + /** + * Specifies whether this rule aggregates contributor data by COUNT or SUM. + */ + AggregationStatistic?: InsightRuleAggregationStatistic; + /** + * The sum of the values from all individual contributors that match the rule. + */ + AggregateValue?: InsightRuleUnboundDouble; + /** + * An approximate count of the unique contributors found by this rule in this time period. + */ + ApproximateUniqueCount?: InsightRuleUnboundLong; + /** + * An array of the unique contributors found by this rule in this time period. If the rule contains multiple keys, each combination of values for the keys counts as a unique contributor. + */ + Contributors?: InsightRuleContributors; + /** + * A time series of metric data points that matches the time period in the rule request. + */ + MetricDatapoints?: InsightRuleMetricDatapoints; + } + export interface GetMetricDataInput { + /** + * The metric queries to be returned. A single GetMetricData call can include as many as 500 MetricDataQuery structures. Each of these structures can specify either a metric to retrieve, or a math expression to perform on retrieved data. + */ + MetricDataQueries: MetricDataQueries; + /** + * The time stamp indicating the earliest data to be returned. The value specified is inclusive; results include data points with the specified time stamp. CloudWatch rounds the specified time stamp as follows: Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. If you set Period to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15. For better performance, specify StartTime and EndTime values that align with the value of the metric's Period and sync up with the beginning and end of an hour. For example, if the Period of a metric is 5 minutes, specifying 12:05 or 12:30 as StartTime can get a faster response from CloudWatch than setting 12:07 or 12:29 as the StartTime. + */ + StartTime: Timestamp; + /** + * The time stamp indicating the latest data to be returned. The value specified is exclusive; results include data points up to the specified time stamp. For better performance, specify StartTime and EndTime values that align with the value of the metric's Period and sync up with the beginning and end of an hour. For example, if the Period of a metric is 5 minutes, specifying 12:05 or 12:30 as EndTime can get a faster response from CloudWatch than setting 12:07 or 12:29 as the EndTime. + */ + EndTime: Timestamp; + /** + * Include this value, if it was returned by the previous GetMetricData operation, to get the next set of data points. + */ + NextToken?: NextToken; + /** + * The order in which data points should be returned. TimestampDescending returns the newest data first and paginates when the MaxDatapoints limit is reached. TimestampAscending returns the oldest data first and paginates when the MaxDatapoints limit is reached. + */ + ScanBy?: ScanBy; + /** + * The maximum number of data points the request should return before paginating. If you omit this, the default of 100,800 is used. + */ + MaxDatapoints?: GetMetricDataMaxDatapoints; + /** + * This structure includes the Timezone parameter, which you can use to specify your time zone so that the labels of returned data display the correct time for your time zone. + */ + LabelOptions?: LabelOptions; + } + export type GetMetricDataLabelTimezone = string; + export type GetMetricDataMaxDatapoints = number; + export interface GetMetricDataOutput { + /** + * The metrics that are returned, including the metric name, namespace, and dimensions. + */ + MetricDataResults?: MetricDataResults; + /** + * A token that marks the next batch of returned results. + */ + NextToken?: NextToken; + /** + * Contains a message about this GetMetricData operation, if the operation results in such a message. An example of a message that might be returned is Maximum number of allowed metrics exceeded. If there is a message, as much of the operation as possible is still executed. A message appears here only if it is related to the global GetMetricData operation. Any message about a specific metric returned by the operation appears in the MetricDataResult object returned for that metric. + */ + Messages?: MetricDataResultMessages; + } + export interface GetMetricStatisticsInput { + /** + * The namespace of the metric, with or without spaces. + */ + Namespace: Namespace; + /** + * The name of the metric, with or without spaces. + */ + MetricName: MetricName; + /** + * The dimensions. If the metric contains multiple dimensions, you must include a value for each dimension. CloudWatch treats each unique combination of dimensions as a separate metric. If a specific combination of dimensions was not published, you can't retrieve statistics for it. You must specify the same dimensions that were used when the metrics were created. For an example, see Dimension Combinations in the Amazon CloudWatch User Guide. For more information about specifying dimensions, see Publishing Metrics in the Amazon CloudWatch User Guide. + */ + Dimensions?: Dimensions; + /** + * The time stamp that determines the first data point to return. Start times are evaluated relative to the time that CloudWatch receives the request. The value specified is inclusive; results include data points with the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z). CloudWatch rounds the specified time stamp as follows: Start time less than 15 days ago - Round down to the nearest whole minute. For example, 12:32:34 is rounded down to 12:32:00. Start time between 15 and 63 days ago - Round down to the nearest 5-minute clock interval. For example, 12:32:34 is rounded down to 12:30:00. Start time greater than 63 days ago - Round down to the nearest 1-hour clock interval. For example, 12:32:34 is rounded down to 12:00:00. If you set Period to 5, 10, or 30, the start time of your request is rounded down to the nearest time that corresponds to even 5-, 10-, or 30-second divisions of a minute. For example, if you make a query at (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time of your request is rounded down and you receive data from 01:05:10 to 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes of data, using a period of 5 seconds, you receive data timestamped between 15:02:15 and 15:07:15. + */ + StartTime: Timestamp; + /** + * The time stamp that determines the last data point to return. The value specified is exclusive; results include data points up to the specified time stamp. In a raw HTTP query, the time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z). + */ + EndTime: Timestamp; + /** + * The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second. If the StartTime parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). + */ + Period: Period; + /** + * The metric statistics, other than percentile. For percentile statistics, use ExtendedStatistics. When calling GetMetricStatistics, you must specify either Statistics or ExtendedStatistics, but not both. + */ + Statistics?: Statistics; + /** + * The percentile statistics. Specify values between p0.0 and p100. When calling GetMetricStatistics, you must specify either Statistics or ExtendedStatistics, but not both. Percentile statistics are not available for metrics when any of the metric values are negative numbers. + */ + ExtendedStatistics?: ExtendedStatistics; + /** + * The unit for a given metric. If you omit Unit, all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. + */ + Unit?: StandardUnit; + } + export interface GetMetricStatisticsOutput { + /** + * A label for the specified metric. + */ + Label?: MetricLabel; + /** + * The data points for the specified metric. + */ + Datapoints?: Datapoints; + } + export interface GetMetricStreamInput { + /** + * The name of the metric stream to retrieve information about. + */ + Name: MetricStreamName; + } + export interface GetMetricStreamOutput { + /** + * The ARN of the metric stream. + */ + Arn?: AmazonResourceName; + /** + * The name of the metric stream. + */ + Name?: MetricStreamName; + /** + * If this array of metric namespaces is present, then these namespaces are the only metric namespaces that are streamed by this metric stream. + */ + IncludeFilters?: MetricStreamFilters; + /** + * If this array of metric namespaces is present, then these namespaces are the only metric namespaces that are not streamed by this metric stream. In this case, all other metric namespaces in the account are streamed by this metric stream. + */ + ExcludeFilters?: MetricStreamFilters; + /** + * The ARN of the Amazon Kinesis Firehose delivery stream that is used by this metric stream. + */ + FirehoseArn?: AmazonResourceName; + /** + * The ARN of the IAM role that is used by this metric stream. + */ + RoleArn?: AmazonResourceName; + /** + * The state of the metric stream. The possible values are running and stopped. + */ + State?: MetricStreamState; + /** + * The date that the metric stream was created. + */ + CreationDate?: Timestamp; + /** + * The date of the most recent update to the metric stream's configuration. + */ + LastUpdateDate?: Timestamp; + /** + * + */ + OutputFormat?: MetricStreamOutputFormat; + } + export interface GetMetricWidgetImageInput { + /** + * A JSON string that defines the bitmap graph to be retrieved. The string includes the metrics to include in the graph, statistics, annotations, title, axis limits, and so on. You can include only one MetricWidget parameter in each GetMetricWidgetImage call. For more information about the syntax of MetricWidget see GetMetricWidgetImage: Metric Widget Structure and Syntax. If any metric on the graph could not load all the requested data points, an orange triangle with an exclamation point appears next to the graph legend. + */ + MetricWidget: MetricWidget; + /** + * The format of the resulting image. Only PNG images are supported. The default is png. If you specify png, the API returns an HTTP response with the content-type set to text/xml. The image data is in a MetricWidgetImage field. For example: <GetMetricWidgetImageResponse xmlns=<URLstring>> <GetMetricWidgetImageResult> <MetricWidgetImage> iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQEAYAAAAip... </MetricWidgetImage> </GetMetricWidgetImageResult> <ResponseMetadata> <RequestId>6f0d4192-4d42-11e8-82c1-f539a07e0e3b</RequestId> </ResponseMetadata> </GetMetricWidgetImageResponse> The image/png setting is intended only for custom HTTP requests. For most use cases, and all actions using an AWS SDK, you should use png. If you specify image/png, the HTTP response has a content-type set to image/png, and the body of the response is a PNG image. + */ + OutputFormat?: OutputFormat; + } + export interface GetMetricWidgetImageOutput { + /** + * The image of the graph, in the output format specified. The output is base64-encoded. + */ + MetricWidgetImage?: MetricWidgetImage; + } + export type HistoryData = string; + export type HistoryItemType = "ConfigurationUpdate"|"StateUpdate"|"Action"|string; + export type HistorySummary = string; + export interface InsightRule { + /** + * The name of the rule. + */ + Name: InsightRuleName; + /** + * Indicates whether the rule is enabled or disabled. + */ + State: InsightRuleState; + /** + * For rules that you create, this is always {"Name": "CloudWatchLogRule", "Version": 1}. For built-in rules, this is {"Name": "ServiceLogRule", "Version": 1} + */ + Schema: InsightRuleSchema; + /** + * The definition of the rule, as a JSON object. The definition contains the keywords used to define contributors, the value to aggregate on if this rule returns a sum instead of a count, and the filters. For details on the valid syntax, see Contributor Insights Rule Syntax. + */ + Definition: InsightRuleDefinition; + } + export type InsightRuleAggregationStatistic = string; + export interface InsightRuleContributor { + /** + * One of the log entry field keywords that is used to define contributors for this rule. + */ + Keys: InsightRuleContributorKeys; + /** + * An approximation of the aggregate value that comes from this contributor. + */ + ApproximateAggregateValue: InsightRuleUnboundDouble; + /** + * An array of the data points where this contributor is present. Only the data points when this contributor appeared are included in the array. + */ + Datapoints: InsightRuleContributorDatapoints; + } + export interface InsightRuleContributorDatapoint { + /** + * The timestamp of the data point. + */ + Timestamp: Timestamp; + /** + * The approximate value that this contributor added during this timestamp. + */ + ApproximateValue: InsightRuleUnboundDouble; + } + export type InsightRuleContributorDatapoints = InsightRuleContributorDatapoint[]; + export type InsightRuleContributorKey = string; + export type InsightRuleContributorKeyLabel = string; + export type InsightRuleContributorKeyLabels = InsightRuleContributorKeyLabel[]; + export type InsightRuleContributorKeys = InsightRuleContributorKey[]; + export type InsightRuleContributors = InsightRuleContributor[]; + export type InsightRuleDefinition = string; + export type InsightRuleMaxResults = number; + export interface InsightRuleMetricDatapoint { + /** + * The timestamp of the data point. + */ + Timestamp: Timestamp; + /** + * The number of unique contributors who published data during this timestamp. This statistic is returned only if you included it in the Metrics array in your request. + */ + UniqueContributors?: InsightRuleUnboundDouble; + /** + * The maximum value provided by one contributor during this timestamp. Each timestamp is evaluated separately, so the identity of the max contributor could be different for each timestamp. This statistic is returned only if you included it in the Metrics array in your request. + */ + MaxContributorValue?: InsightRuleUnboundDouble; + /** + * The number of occurrences that matched the rule during this data point. This statistic is returned only if you included it in the Metrics array in your request. + */ + SampleCount?: InsightRuleUnboundDouble; + /** + * The average value from all contributors during the time period represented by that data point. This statistic is returned only if you included it in the Metrics array in your request. + */ + Average?: InsightRuleUnboundDouble; + /** + * The sum of the values from all contributors during the time period represented by that data point. This statistic is returned only if you included it in the Metrics array in your request. + */ + Sum?: InsightRuleUnboundDouble; + /** + * The minimum value from a single contributor during the time period represented by that data point. This statistic is returned only if you included it in the Metrics array in your request. + */ + Minimum?: InsightRuleUnboundDouble; + /** + * The maximum value from a single occurence from a single contributor during the time period represented by that data point. This statistic is returned only if you included it in the Metrics array in your request. + */ + Maximum?: InsightRuleUnboundDouble; + } + export type InsightRuleMetricDatapoints = InsightRuleMetricDatapoint[]; + export type InsightRuleMetricList = InsightRuleMetricName[]; + export type InsightRuleMetricName = string; + export type InsightRuleName = string; + export type InsightRuleNames = InsightRuleName[]; + export type InsightRuleOrderBy = string; + export type InsightRuleSchema = string; + export type InsightRuleState = string; + export type InsightRuleUnboundDouble = number; + export type InsightRuleUnboundInteger = number; + export type InsightRuleUnboundLong = number; + export type InsightRules = InsightRule[]; + export interface LabelOptions { + /** + * The time zone to use for metric data return in this operation. The format is + or - followed by four digits. The first two digits indicate the number of hours ahead or behind of UTC, and the final two digits are the number of minutes. For example, +0130 indicates a time zone that is 1 hour and 30 minutes ahead of UTC. The default is +0000. + */ + Timezone?: GetMetricDataLabelTimezone; + } + export type LastModified = Date; + export interface ListDashboardsInput { + /** + * If you specify this parameter, only the dashboards with names starting with the specified string are listed. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, ".", "-", and "_". + */ + DashboardNamePrefix?: DashboardNamePrefix; + /** + * The token returned by a previous call to indicate that there is more data available. + */ + NextToken?: NextToken; + } + export interface ListDashboardsOutput { + /** + * The list of matching dashboards. + */ + DashboardEntries?: DashboardEntries; + /** + * The token that marks the start of the next batch of returned results. + */ + NextToken?: NextToken; + } + export interface ListMetricStreamsInput { + /** + * Include this value, if it was returned by the previous call, to get the next set of metric streams. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return in one operation. + */ + MaxResults?: ListMetricStreamsMaxResults; + } + export type ListMetricStreamsMaxResults = number; + export interface ListMetricStreamsOutput { + /** + * The token that marks the start of the next batch of returned results. You can use this token in a subsequent operation to get the next batch of results. + */ + NextToken?: NextToken; + /** + * The array of metric stream information. + */ + Entries?: MetricStreamEntries; + } + export interface ListMetricsInput { + /** + * The metric namespace to filter against. Only the namespace that matches exactly will be returned. + */ + Namespace?: Namespace; + /** + * The name of the metric to filter against. Only the metrics with names that match exactly will be returned. + */ + MetricName?: MetricName; + /** + * The dimensions to filter against. Only the dimensions that match exactly will be returned. + */ + Dimensions?: DimensionFilters; + /** + * The token returned by a previous call to indicate that there is more data available. + */ + NextToken?: NextToken; + /** + * To filter the results to show only metrics that have had data points published in the past three hours, specify this parameter with a value of PT3H. This is the only valid value for this parameter. The results that are returned are an approximation of the value you specify. There is a low probability that the returned results include metrics with last published data as much as 40 minutes more than the specified time interval. + */ + RecentlyActive?: RecentlyActive; + } + export interface ListMetricsOutput { + /** + * The metrics that match your request. + */ + Metrics?: Metrics; + /** + * The token that marks the start of the next batch of returned results. + */ + NextToken?: NextToken; + } + export interface ListTagsForResourceInput { + /** + * The ARN of the CloudWatch resource that you want to view tags for. The ARN format of an alarm is arn:aws:cloudwatch:Region:account-id:alarm:alarm-name The ARN format of a Contributor Insights rule is arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the Amazon Web Services General Reference. + */ + ResourceARN: AmazonResourceName; + } + export interface ListTagsForResourceOutput { + /** + * The list of tag keys and values associated with the resource you specified. + */ + Tags?: TagList; + } + export type MaxRecords = number; + export type MaxReturnedResultsCount = number; + export type Message = string; + export interface MessageData { + /** + * The error code or status code associated with the message. + */ + Code?: MessageDataCode; + /** + * The message text. + */ + Value?: MessageDataValue; + } + export type MessageDataCode = string; + export type MessageDataValue = string; + export interface Metric { + /** + * The namespace of the metric. + */ + Namespace?: Namespace; + /** + * The name of the metric. This is a required field. + */ + MetricName?: MetricName; + /** + * The dimensions for the metric. + */ + Dimensions?: Dimensions; + } + export interface MetricAlarm { + /** + * The name of the alarm. + */ + AlarmName?: AlarmName; + /** + * The Amazon Resource Name (ARN) of the alarm. + */ + AlarmArn?: AlarmArn; + /** + * The description of the alarm. + */ + AlarmDescription?: AlarmDescription; + /** + * The time stamp of the last update to the alarm configuration. + */ + AlarmConfigurationUpdatedTimestamp?: Timestamp; + /** + * Indicates whether actions should be executed during any changes to the alarm state. + */ + ActionsEnabled?: ActionsEnabled; + /** + * The actions to execute when this alarm transitions to the OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). + */ + OKActions?: ResourceList; + /** + * The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). + */ + AlarmActions?: ResourceList; + /** + * The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). + */ + InsufficientDataActions?: ResourceList; + /** + * The state value for the alarm. + */ + StateValue?: StateValue; + /** + * An explanation for the alarm state, in text format. + */ + StateReason?: StateReason; + /** + * An explanation for the alarm state, in JSON format. + */ + StateReasonData?: StateReasonData; + /** + * The time stamp of the last update to the alarm state. + */ + StateUpdatedTimestamp?: Timestamp; + /** + * The name of the metric associated with the alarm, if this is an alarm based on a single metric. + */ + MetricName?: MetricName; + /** + * The namespace of the metric associated with the alarm. + */ + Namespace?: Namespace; + /** + * The statistic for the metric associated with the alarm, other than percentile. For percentile statistics, use ExtendedStatistic. + */ + Statistic?: Statistic; + /** + * The percentile statistic for the metric associated with the alarm. Specify a value between p0.0 and p100. + */ + ExtendedStatistic?: ExtendedStatistic; + /** + * The dimensions for the metric associated with the alarm. + */ + Dimensions?: Dimensions; + /** + * The period, in seconds, over which the statistic is applied. + */ + Period?: Period; + /** + * The unit of the metric associated with the alarm. + */ + Unit?: StandardUnit; + /** + * The number of periods over which data is compared to the specified threshold. + */ + EvaluationPeriods?: EvaluationPeriods; + /** + * The number of data points that must be breaching to trigger the alarm. + */ + DatapointsToAlarm?: DatapointsToAlarm; + /** + * The value to compare with the specified statistic. + */ + Threshold?: Threshold; + /** + * The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. + */ + ComparisonOperator?: ComparisonOperator; + /** + * Sets how this alarm is to handle missing data points. If this parameter is omitted, the default behavior of missing is used. + */ + TreatMissingData?: TreatMissingData; + /** + * Used only for alarms based on percentiles. If ignore, the alarm state does not change during periods with too few data points to be statistically significant. If evaluate or this parameter is not used, the alarm is always evaluated and possibly changes state no matter how many data points are available. + */ + EvaluateLowSampleCountPercentile?: EvaluateLowSampleCountPercentile; + /** + * An array of MetricDataQuery structures, used in an alarm based on a metric math expression. Each structure either retrieves a metric or performs a math expression. One item in the Metrics array is the math expression that the alarm watches. This expression by designated by having ReturnData set to true. + */ + Metrics?: MetricDataQueries; + /** + * In an alarm based on an anomaly detection model, this is the ID of the ANOMALY_DETECTION_BAND function used as the threshold for the alarm. + */ + ThresholdMetricId?: MetricId; + } + export type MetricAlarms = MetricAlarm[]; + export type MetricData = MetricDatum[]; + export type MetricDataQueries = MetricDataQuery[]; + export interface MetricDataQuery { + /** + * A short name used to tie this object to the results in the response. This name must be unique within a single call to GetMetricData. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscore. The first character must be a lowercase letter. + */ + Id: MetricId; + /** + * The metric to be returned, along with statistics, period, and units. Use this parameter only if this object is retrieving a metric and not performing a math expression on returned data. Within one MetricDataQuery object, you must specify either Expression or MetricStat but not both. + */ + MetricStat?: MetricStat; + /** + * The math expression to be performed on the returned data, if this object is performing a math expression. This expression can use the Id of the other metrics to refer to those metrics, and can also use the Id of other expressions to use the result of those expressions. For more information about metric math expressions, see Metric Math Syntax and Functions in the Amazon CloudWatch User Guide. Within each MetricDataQuery object, you must specify either Expression or MetricStat but not both. + */ + Expression?: MetricExpression; + /** + * A human-readable label for this metric or expression. This is especially useful if this is an expression, so that you know what the value represents. If the metric or expression is shown in a CloudWatch dashboard widget, the label is shown. If Label is omitted, CloudWatch generates a default. You can put dynamic expressions into a label, so that it is more descriptive. For more information, see Using Dynamic Labels. + */ + Label?: MetricLabel; + /** + * When used in GetMetricData, this option indicates whether to return the timestamps and raw data values of this metric. If you are performing this call just to do math expressions and do not also need the raw data returned, you can specify False. If you omit this, the default of True is used. When used in PutMetricAlarm, specify True for the one expression result to use as the alarm. For all other metrics and expressions in the same PutMetricAlarm operation, specify ReturnData as False. + */ + ReturnData?: ReturnData; + /** + * The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData operation that includes a StorageResolution of 1 second. + */ + Period?: Period; + } + export interface MetricDataResult { + /** + * The short name you specified to represent this metric. + */ + Id?: MetricId; + /** + * The human-readable label associated with the data. + */ + Label?: MetricLabel; + /** + * The timestamps for the data points, formatted in Unix timestamp format. The number of timestamps always matches the number of values and the value for Timestamps[x] is Values[x]. + */ + Timestamps?: Timestamps; + /** + * The data points for the metric corresponding to Timestamps. The number of values always matches the number of timestamps and the timestamp for Values[x] is Timestamps[x]. + */ + Values?: DatapointValues; + /** + * The status of the returned data. Complete indicates that all data points in the requested time range were returned. PartialData means that an incomplete set of data points were returned. You can use the NextToken value that was returned and repeat your request to get more data points. NextToken is not returned if you are performing a math expression. InternalError indicates that an error occurred. Retry your request using NextToken, if present. + */ + StatusCode?: StatusCode; + /** + * A list of messages with additional information about the data returned. + */ + Messages?: MetricDataResultMessages; + } + export type MetricDataResultMessages = MessageData[]; + export type MetricDataResults = MetricDataResult[]; + export interface MetricDatum { + /** + * The name of the metric. + */ + MetricName: MetricName; + /** + * The dimensions associated with the metric. + */ + Dimensions?: Dimensions; + /** + * The time the metric data was received, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. + */ + Timestamp?: Timestamp; + /** + * The value for the metric. Although the parameter accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. + */ + Value?: DatapointValue; + /** + * The statistical values for the metric. + */ + StatisticValues?: StatisticSet; + /** + * Array of numbers representing the values for the metric during the period. Each unique value is listed just once in this array, and the corresponding number in the Counts array specifies the number of times that value occurred during the period. You can include up to 150 unique values in each PutMetricData action that specifies a Values array. Although the Values array accepts numbers of type Double, CloudWatch rejects values that are either too small or too large. Values must be in the range of -2^360 to 2^360. In addition, special values (for example, NaN, +Infinity, -Infinity) are not supported. + */ + Values?: Values; + /** + * Array of numbers that is used along with the Values array. Each number in the Count array is the number of times the corresponding value in the Values array occurred during the period. If you omit the Counts array, the default of 1 is used as the value for each count. If you include a Counts array, it must include the same amount of values as the Values array. + */ + Counts?: Counts; + /** + * When you are using a Put operation, this defines what unit you want to use when storing the metric. In a Get operation, this displays the unit that is used for the metric. + */ + Unit?: StandardUnit; + /** + * Valid values are 1 and 60. Setting this to 1 specifies this metric as a high-resolution metric, so that CloudWatch stores the metric with sub-minute resolution down to one second. Setting this to 60 specifies this metric as a regular-resolution metric, which CloudWatch stores at 1-minute resolution. Currently, high resolution is available only for custom metrics. For more information about high-resolution metrics, see High-Resolution Metrics in the Amazon CloudWatch User Guide. This field is optional, if you do not specify it the default of 60 is used. + */ + StorageResolution?: StorageResolution; + } + export type MetricExpression = string; + export type MetricId = string; + export type MetricLabel = string; + export type MetricName = string; + export interface MetricStat { + /** + * The metric to return, including the metric name, namespace, and dimensions. + */ + Metric: Metric; + /** + * The granularity, in seconds, of the returned data points. For metrics with regular resolution, a period can be as short as one minute (60 seconds) and must be a multiple of 60. For high-resolution metrics that are collected at intervals of less than one minute, the period can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution metrics are those metrics stored by a PutMetricData call that includes a StorageResolution of 1 second. If the StartTime parameter specifies a time stamp that is greater than 3 hours ago, you must specify the period as follows or no data points in that time range is returned: Start time between 3 hours and 15 days ago - Use a multiple of 60 seconds (1 minute). Start time between 15 and 63 days ago - Use a multiple of 300 seconds (5 minutes). Start time greater than 63 days ago - Use a multiple of 3600 seconds (1 hour). + */ + Period: Period; + /** + * The statistic to return. It can include any CloudWatch statistic or extended statistic. + */ + Stat: Stat; + /** + * When you are using a Put operation, this defines what unit you want to use when storing the metric. In a Get operation, if you omit Unit then all data that was collected with any unit is returned, along with the corresponding units that were specified when the data was reported to CloudWatch. If you specify a unit, the operation returns only data that was collected with that unit specified. If you specify a unit that does not match the data collected, the results of the operation are null. CloudWatch does not perform unit conversions. + */ + Unit?: StandardUnit; + } + export type MetricStreamEntries = MetricStreamEntry[]; + export interface MetricStreamEntry { + /** + * The ARN of the metric stream. + */ + Arn?: AmazonResourceName; + /** + * The date that the metric stream was originally created. + */ + CreationDate?: Timestamp; + /** + * The date that the configuration of this metric stream was most recently updated. + */ + LastUpdateDate?: Timestamp; + /** + * The name of the metric stream. + */ + Name?: MetricStreamName; + /** + * The ARN of the Kinesis Firehose devlivery stream that is used for this metric stream. + */ + FirehoseArn?: AmazonResourceName; + /** + * The current state of this stream. Valid values are running and stopped. + */ + State?: MetricStreamState; + /** + * The output format of this metric stream. Valid values are json and opentelemetry0.7. + */ + OutputFormat?: MetricStreamOutputFormat; + } + export interface MetricStreamFilter { + /** + * The name of the metric namespace in the filter. + */ + Namespace?: Namespace; + } + export type MetricStreamFilters = MetricStreamFilter[]; + export type MetricStreamName = string; + export type MetricStreamNames = MetricStreamName[]; + export type MetricStreamOutputFormat = "json"|"opentelemetry0.7"|string; + export type MetricStreamState = string; + export type MetricWidget = string; + export type MetricWidgetImage = Buffer|Uint8Array|Blob|string; + export type Metrics = Metric[]; + export type Namespace = string; + export type NextToken = string; + export type OutputFormat = string; + export interface PartialFailure { + /** + * The specified rule that could not be deleted. + */ + FailureResource?: FailureResource; + /** + * The type of error. + */ + ExceptionType?: ExceptionType; + /** + * The code of the error. + */ + FailureCode?: FailureCode; + /** + * A description of the error. + */ + FailureDescription?: FailureDescription; + } + export type Period = number; + export interface PutAnomalyDetectorInput { + /** + * The namespace of the metric to create the anomaly detection model for. + */ + Namespace: Namespace; + /** + * The name of the metric to create the anomaly detection model for. + */ + MetricName: MetricName; + /** + * The metric dimensions to create the anomaly detection model for. + */ + Dimensions?: Dimensions; + /** + * The statistic to use for the metric and the anomaly detection model. + */ + Stat: AnomalyDetectorMetricStat; + /** + * The configuration specifies details about how the anomaly detection model is to be trained, including time ranges to exclude when training and updating the model. You can specify as many as 10 time ranges. The configuration can also include the time zone to use for the metric. + */ + Configuration?: AnomalyDetectorConfiguration; + } + export interface PutAnomalyDetectorOutput { + } + export interface PutCompositeAlarmInput { + /** + * Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. The default is TRUE. + */ + ActionsEnabled?: ActionsEnabled; + /** + * The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: arn:aws:sns:region:account-id:sns-topic-name | arn:aws:ssm:region:account-id:opsitem:severity + */ + AlarmActions?: ResourceList; + /** + * The description for the composite alarm. + */ + AlarmDescription?: AlarmDescription; + /** + * The name for the composite alarm. This name must be unique within the Region. + */ + AlarmName: AlarmName; + /** + * An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For each alarm that you reference, you designate a function that specifies whether that alarm needs to be in ALARM state, OK state, or INSUFFICIENT_DATA state. You can use operators (AND, OR and NOT) to combine multiple functions in a single expression. You can use parenthesis to logically group the functions in your expression. You can use either alarm names or ARNs to reference the other alarms that are to be evaluated. Functions can include the following: ALARM("alarm-name or alarm-ARN") is TRUE if the named alarm is in ALARM state. OK("alarm-name or alarm-ARN") is TRUE if the named alarm is in OK state. INSUFFICIENT_DATA("alarm-name or alarm-ARN") is TRUE if the named alarm is in INSUFFICIENT_DATA state. TRUE always evaluates to TRUE. FALSE always evaluates to FALSE. TRUE and FALSE are useful for testing a complex AlarmRule structure, and for testing your alarm actions. Alarm names specified in AlarmRule can be surrounded with double-quotes ("), but do not have to be. The following are some examples of AlarmRule: ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh) specifies that the composite alarm goes into ALARM state only if both CPUUtilizationTooHigh and DiskReadOpsTooHigh alarms are in ALARM state. ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress) specifies that the alarm goes to ALARM state if CPUUtilizationTooHigh is in ALARM state and DeploymentInProgress is not in ALARM state. This example reduces alarm noise during a known deployment window. (ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND OK(NetworkOutTooHigh) goes into ALARM state if CPUUtilizationTooHigh OR DiskReadOpsTooHigh is in ALARM state, and if NetworkOutTooHigh is in OK state. This provides another example of using a composite alarm to prevent noise. This rule ensures that you are not notified with an alarm action on high CPU or disk usage if a known network problem is also occurring. The AlarmRule can specify as many as 100 "children" alarms. The AlarmRule expression can have as many as 500 elements. Elements are child alarms, TRUE or FALSE statements, and parentheses. + */ + AlarmRule: AlarmRule; + /** + * The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: arn:aws:sns:region:account-id:sns-topic-name + */ + InsufficientDataActions?: ResourceList; + /** + * The actions to execute when this alarm transitions to an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: arn:aws:sns:region:account-id:sns-topic-name + */ + OKActions?: ResourceList; + /** + * A list of key-value pairs to associate with the composite alarm. You can associate as many as 50 tags with an alarm. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values. + */ + Tags?: TagList; + } + export interface PutDashboardInput { + /** + * The name of the dashboard. If a dashboard with this name already exists, this call modifies that dashboard, replacing its current contents. Otherwise, a new dashboard is created. The maximum length is 255, and valid characters are A-Z, a-z, 0-9, "-", and "_". This parameter is required. + */ + DashboardName: DashboardName; + /** + * The detailed information about the dashboard in JSON format, including the widgets to include and their location on the dashboard. This parameter is required. For more information about the syntax, see Dashboard Body Structure and Syntax. + */ + DashboardBody: DashboardBody; + } + export interface PutDashboardOutput { + /** + * If the input for PutDashboard was correct and the dashboard was successfully created or modified, this result is empty. If this result includes only warning messages, then the input was valid enough for the dashboard to be created or modified, but some elements of the dashboard might not render. If this result includes error messages, the input was not valid and the operation failed. + */ + DashboardValidationMessages?: DashboardValidationMessages; + } + export interface PutInsightRuleInput { + /** + * A unique name for the rule. + */ + RuleName: InsightRuleName; + /** + * The state of the rule. Valid values are ENABLED and DISABLED. + */ + RuleState?: InsightRuleState; + /** + * The definition of the rule, as a JSON object. For details on the valid syntax, see Contributor Insights Rule Syntax. + */ + RuleDefinition: InsightRuleDefinition; + /** + * A list of key-value pairs to associate with the Contributor Insights rule. You can associate as many as 50 tags with a rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only the resources that have certain tag values. To be able to associate tags with a rule, you must have the cloudwatch:TagResource permission in addition to the cloudwatch:PutInsightRule permission. If you are using this operation to update an existing Contributor Insights rule, any tags you specify in this parameter are ignored. To change the tags of an existing rule, use TagResource. + */ + Tags?: TagList; + } + export interface PutInsightRuleOutput { + } + export interface PutMetricAlarmInput { + /** + * The name for the alarm. This name must be unique within the Region. + */ + AlarmName: AlarmName; + /** + * The description for the alarm. + */ + AlarmDescription?: AlarmDescription; + /** + * Indicates whether actions should be executed during any changes to the alarm state. The default is TRUE. + */ + ActionsEnabled?: ActionsEnabled; + /** + * The actions to execute when this alarm transitions to an OK state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0 + */ + OKActions?: ResourceList; + /** + * The actions to execute when this alarm transitions to the ALARM state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name | arn:aws:ssm:region:account-id:opsitem:severity Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 + */ + AlarmActions?: ResourceList; + /** + * The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Name (ARN). Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name Valid Values (for use with IAM roles): >arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0 | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0 + */ + InsufficientDataActions?: ResourceList; + /** + * The name for the metric associated with the alarm. For each PutMetricAlarm operation, you must specify either MetricName or a Metrics array. If you are creating an alarm based on a math expression, you cannot specify this parameter, or any of the Dimensions, Period, Namespace, Statistic, or ExtendedStatistic parameters. Instead, you specify all this information in the Metrics array. + */ + MetricName?: MetricName; + /** + * The namespace for the metric associated specified in MetricName. + */ + Namespace?: Namespace; + /** + * The statistic for the metric specified in MetricName, other than percentile. For percentile statistics, use ExtendedStatistic. When you call PutMetricAlarm and specify a MetricName, you must specify either Statistic or ExtendedStatistic, but not both. + */ + Statistic?: Statistic; + /** + * The percentile statistic for the metric specified in MetricName. Specify a value between p0.0 and p100. When you call PutMetricAlarm and specify a MetricName, you must specify either Statistic or ExtendedStatistic, but not both. + */ + ExtendedStatistic?: ExtendedStatistic; + /** + * The dimensions for the metric specified in MetricName. + */ + Dimensions?: Dimensions; + /** + * The length, in seconds, used each time the metric specified in MetricName is evaluated. Valid values are 10, 30, and any multiple of 60. Period is required for alarms based on static thresholds. If you are creating an alarm based on a metric math expression, you specify the period for each metric within the objects in the Metrics array. Be sure to specify 10 or 30 only for metrics that are stored by a PutMetricData call with a StorageResolution of 1. If you specify a period of 10 or 30 for a metric that does not have sub-minute resolution, the alarm still attempts to gather data at the period rate that you specify. In this case, it does not receive data for the attempts that do not correspond to a one-minute data resolution, and the alarm might often lapse into INSUFFICENT_DATA status. Specifying 10 or 30 also sets this alarm as a high-resolution alarm, which has a higher charge than other alarms. For more information about pricing, see Amazon CloudWatch Pricing. An alarm's total current evaluation period can be no longer than one day, so Period multiplied by EvaluationPeriods cannot be more than 86,400 seconds. + */ + Period?: Period; + /** + * The unit of measure for the statistic. For example, the units for the Amazon EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that an instance receives on all network interfaces. You can also specify a unit when you create a custom metric. Units help provide conceptual meaning to your data. Metric data points that specify a unit of measure, such as Percent, are aggregated separately. If you don't specify Unit, CloudWatch retrieves all unit types that have been published for the metric and attempts to evaluate the alarm. Usually, metrics are published with only one unit, so the alarm works as intended. However, if the metric is published with multiple types of units and you don't specify a unit, the alarm's behavior is not defined and it behaves predictably. We recommend omitting Unit so that you don't inadvertently specify an incorrect unit that is not published for this metric. Doing so causes the alarm to be stuck in the INSUFFICIENT DATA state. + */ + Unit?: StandardUnit; + /** + * The number of periods over which data is compared to the specified threshold. If you are setting an alarm that requires that a number of consecutive data points be breaching to trigger the alarm, this value specifies that number. If you are setting an "M out of N" alarm, this value is the N. An alarm's total current evaluation period can be no longer than one day, so this number multiplied by Period cannot be more than 86,400 seconds. + */ + EvaluationPeriods: EvaluationPeriods; + /** + * The number of data points that must be breaching to trigger the alarm. This is used only if you are setting an "M out of N" alarm. In that case, this value is the M. For more information, see Evaluating an Alarm in the Amazon CloudWatch User Guide. + */ + DatapointsToAlarm?: DatapointsToAlarm; + /** + * The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. + */ + Threshold?: Threshold; + /** + * The arithmetic operation to use when comparing the specified statistic and threshold. The specified statistic value is used as the first operand. The values LessThanLowerOrGreaterThanUpperThreshold, LessThanLowerThreshold, and GreaterThanUpperThreshold are used only for alarms based on anomaly detection models. + */ + ComparisonOperator: ComparisonOperator; + /** + * Sets how this alarm is to handle missing data points. If TreatMissingData is omitted, the default behavior of missing is used. For more information, see Configuring How CloudWatch Alarms Treats Missing Data. Valid Values: breaching | notBreaching | ignore | missing + */ + TreatMissingData?: TreatMissingData; + /** + * Used only for alarms based on percentiles. If you specify ignore, the alarm state does not change during periods with too few data points to be statistically significant. If you specify evaluate or omit this parameter, the alarm is always evaluated and possibly changes state no matter how many data points are available. For more information, see Percentile-Based CloudWatch Alarms and Low Data Samples. Valid Values: evaluate | ignore + */ + EvaluateLowSampleCountPercentile?: EvaluateLowSampleCountPercentile; + /** + * An array of MetricDataQuery structures that enable you to create an alarm based on the result of a metric math expression. For each PutMetricAlarm operation, you must specify either MetricName or a Metrics array. Each item in the Metrics array either retrieves a metric or performs a math expression. One item in the Metrics array is the expression that the alarm watches. You designate this expression by setting ReturnData to true for this object in the array. For more information, see MetricDataQuery. If you use the Metrics parameter, you cannot include the MetricName, Dimensions, Period, Namespace, Statistic, or ExtendedStatistic parameters of PutMetricAlarm in the same operation. Instead, you retrieve the metrics you are using in your math expression as part of the Metrics array. + */ + Metrics?: MetricDataQueries; + /** + * A list of key-value pairs to associate with the alarm. You can associate as many as 50 tags with an alarm. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. If you are using this operation to update an existing alarm, any tags you specify in this parameter are ignored. To change the tags of an existing alarm, use TagResource or UntagResource. + */ + Tags?: TagList; + /** + * If this is an alarm based on an anomaly detection model, make this value match the ID of the ANOMALY_DETECTION_BAND function. For an example of how to use this parameter, see the Anomaly Detection Model Alarm example on this page. If your alarm uses this parameter, it cannot have Auto Scaling actions. + */ + ThresholdMetricId?: MetricId; + } + export interface PutMetricDataInput { + /** + * The namespace for the metric data. To avoid conflicts with AWS service namespaces, you should not specify a namespace that begins with AWS/ + */ + Namespace: Namespace; + /** + * The data for the metric. The array can include no more than 20 metrics per call. + */ + MetricData: MetricData; + } + export interface PutMetricStreamInput { + /** + * If you are creating a new metric stream, this is the name for the new stream. The name must be different than the names of other metric streams in this account and Region. If you are updating a metric stream, specify the name of that stream here. Valid characters are A-Z, a-z, 0-9, "-" and "_". + */ + Name: MetricStreamName; + /** + * If you specify this parameter, the stream sends only the metrics from the metric namespaces that you specify here. You cannot include IncludeFilters and ExcludeFilters in the same operation. + */ + IncludeFilters?: MetricStreamFilters; + /** + * If you specify this parameter, the stream sends metrics from all metric namespaces except for the namespaces that you specify here. You cannot include ExcludeFilters and IncludeFilters in the same operation. + */ + ExcludeFilters?: MetricStreamFilters; + /** + * The ARN of the Amazon Kinesis Firehose delivery stream to use for this metric stream. This Amazon Kinesis Firehose delivery stream must already exist and must be in the same account as the metric stream. + */ + FirehoseArn: AmazonResourceName; + /** + * The ARN of an IAM role that this metric stream will use to access Amazon Kinesis Firehose resources. This IAM role must already exist and must be in the same account as the metric stream. This IAM role must include the following permissions: firehose:PutRecord firehose:PutRecordBatch + */ + RoleArn: AmazonResourceName; + /** + * The output format for the stream. Valid values are json and opentelemetry0.7. For more information about metric stream output formats, see Metric streams output formats. + */ + OutputFormat: MetricStreamOutputFormat; + /** + * A list of key-value pairs to associate with the metric stream. You can associate as many as 50 tags with a metric stream. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. + */ + Tags?: TagList; + } + export interface PutMetricStreamOutput { + /** + * The ARN of the metric stream. + */ + Arn?: AmazonResourceName; + } + export interface Range { + /** + * The start time of the range to exclude. The format is yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + */ + StartTime: Timestamp; + /** + * The end time of the range to exclude. The format is yyyy-MM-dd'T'HH:mm:ss. For example, 2019-07-01T23:59:59. + */ + EndTime: Timestamp; + } + export type RecentlyActive = "PT3H"|string; + export type ResourceList = ResourceName[]; + export type ResourceName = string; + export type ReturnData = boolean; + export type ScanBy = "TimestampDescending"|"TimestampAscending"|string; + export interface SetAlarmStateInput { + /** + * The name of the alarm. + */ + AlarmName: AlarmName; + /** + * The value of the state. + */ + StateValue: StateValue; + /** + * The reason that this alarm is set to this specific state, in text format. + */ + StateReason: StateReason; + /** + * The reason that this alarm is set to this specific state, in JSON format. For SNS or EC2 alarm actions, this is just informational. But for EC2 Auto Scaling or application Auto Scaling alarm actions, the Auto Scaling policy uses the information in this field to take the correct action. + */ + StateReasonData?: StateReasonData; + } + export type Size = number; + export type StandardUnit = "Seconds"|"Microseconds"|"Milliseconds"|"Bytes"|"Kilobytes"|"Megabytes"|"Gigabytes"|"Terabytes"|"Bits"|"Kilobits"|"Megabits"|"Gigabits"|"Terabits"|"Percent"|"Count"|"Bytes/Second"|"Kilobytes/Second"|"Megabytes/Second"|"Gigabytes/Second"|"Terabytes/Second"|"Bits/Second"|"Kilobits/Second"|"Megabits/Second"|"Gigabits/Second"|"Terabits/Second"|"Count/Second"|"None"|string; + export interface StartMetricStreamsInput { + /** + * The array of the names of metric streams to start streaming. This is an "all or nothing" operation. If you do not have permission to access all of the metric streams that you list here, then none of the streams that you list in the operation will start streaming. + */ + Names: MetricStreamNames; + } + export interface StartMetricStreamsOutput { + } + export type Stat = string; + export type StateReason = string; + export type StateReasonData = string; + export type StateValue = "OK"|"ALARM"|"INSUFFICIENT_DATA"|string; + export type Statistic = "SampleCount"|"Average"|"Sum"|"Minimum"|"Maximum"|string; + export interface StatisticSet { + /** + * The number of samples used for the statistic set. + */ + SampleCount: DatapointValue; + /** + * The sum of values for the sample set. + */ + Sum: DatapointValue; + /** + * The minimum value of the sample set. + */ + Minimum: DatapointValue; + /** + * The maximum value of the sample set. + */ + Maximum: DatapointValue; + } + export type Statistics = Statistic[]; + export type StatusCode = "Complete"|"InternalError"|"PartialData"|string; + export interface StopMetricStreamsInput { + /** + * The array of the names of metric streams to stop streaming. This is an "all or nothing" operation. If you do not have permission to access all of the metric streams that you list here, then none of the streams that you list in the operation will stop streaming. + */ + Names: MetricStreamNames; + } + export interface StopMetricStreamsOutput { + } + export type StorageResolution = number; + export interface Tag { + /** + * A string that you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources. + */ + Key: TagKey; + /** + * The value for the specified tag key. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceInput { + /** + * The ARN of the CloudWatch resource that you're adding tags to. The ARN format of an alarm is arn:aws:cloudwatch:Region:account-id:alarm:alarm-name The ARN format of a Contributor Insights rule is arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the Amazon Web Services General Reference. + */ + ResourceARN: AmazonResourceName; + /** + * The list of key-value pairs to associate with the alarm. + */ + Tags: TagList; + } + export interface TagResourceOutput { + } + export type TagValue = string; + export type Threshold = number; + export type Timestamp = Date; + export type Timestamps = Timestamp[]; + export type TreatMissingData = string; + export interface UntagResourceInput { + /** + * The ARN of the CloudWatch resource that you're removing tags from. The ARN format of an alarm is arn:aws:cloudwatch:Region:account-id:alarm:alarm-name The ARN format of a Contributor Insights rule is arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name For more information about ARN format, see Resource Types Defined by Amazon CloudWatch in the Amazon Web Services General Reference. + */ + ResourceARN: AmazonResourceName; + /** + * The list of tag keys to remove from the resource. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceOutput { + } + export type Values = DatapointValue[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2010-08-01"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudWatch client. + */ + export import Types = CloudWatch; +} +export = CloudWatch; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatch.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatch.js new file mode 100644 index 0000000000000000000000000000000000000000..f831637e1ccc2955d9e97c95a368d0a422fc7c44 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatch.js @@ -0,0 +1,19 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudwatch'] = {}; +AWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']); +Object.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', { + get: function get() { + var model = require('../apis/monitoring-2010-08-01.min.json'); + model.paginators = require('../apis/monitoring-2010-08-01.paginators.json').pagination; + model.waiters = require('../apis/monitoring-2010-08-01.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudWatch; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchevents.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchevents.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..689e230ff159953d6e88f3278e42dacaec40fbe4 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchevents.d.ts @@ -0,0 +1,2769 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudWatchEvents extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudWatchEvents.Types.ClientConfiguration) + config: Config & CloudWatchEvents.Types.ClientConfiguration; + /** + * Activates a partner event source that has been deactivated. Once activated, your matching event bus will start receiving events from the event source. + */ + activateEventSource(params: CloudWatchEvents.Types.ActivateEventSourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Activates a partner event source that has been deactivated. Once activated, your matching event bus will start receiving events from the event source. + */ + activateEventSource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Cancels the specified replay. + */ + cancelReplay(params: CloudWatchEvents.Types.CancelReplayRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.CancelReplayResponse) => void): Request; + /** + * Cancels the specified replay. + */ + cancelReplay(callback?: (err: AWSError, data: CloudWatchEvents.Types.CancelReplayResponse) => void): Request; + /** + * Creates an API destination, which is an HTTP invocation endpoint configured as a target for events. + */ + createApiDestination(params: CloudWatchEvents.Types.CreateApiDestinationRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateApiDestinationResponse) => void): Request; + /** + * Creates an API destination, which is an HTTP invocation endpoint configured as a target for events. + */ + createApiDestination(callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateApiDestinationResponse) => void): Request; + /** + * Creates an archive of events with the specified settings. When you create an archive, incoming events might not immediately start being sent to the archive. Allow a short period of time for changes to take effect. If you do not specify a pattern to filter events sent to the archive, all events are sent to the archive except replayed events. Replayed events are not sent to an archive. + */ + createArchive(params: CloudWatchEvents.Types.CreateArchiveRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateArchiveResponse) => void): Request; + /** + * Creates an archive of events with the specified settings. When you create an archive, incoming events might not immediately start being sent to the archive. Allow a short period of time for changes to take effect. If you do not specify a pattern to filter events sent to the archive, all events are sent to the archive except replayed events. Replayed events are not sent to an archive. + */ + createArchive(callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateArchiveResponse) => void): Request; + /** + * Creates a connection. A connection defines the authorization type and credentials to use for authorization with an API destination HTTP endpoint. + */ + createConnection(params: CloudWatchEvents.Types.CreateConnectionRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateConnectionResponse) => void): Request; + /** + * Creates a connection. A connection defines the authorization type and credentials to use for authorization with an API destination HTTP endpoint. + */ + createConnection(callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateConnectionResponse) => void): Request; + /** + * Creates a new event bus within your account. This can be a custom event bus which you can use to receive events from your custom applications and services, or it can be a partner event bus which can be matched to a partner event source. + */ + createEventBus(params: CloudWatchEvents.Types.CreateEventBusRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateEventBusResponse) => void): Request; + /** + * Creates a new event bus within your account. This can be a custom event bus which you can use to receive events from your custom applications and services, or it can be a partner event bus which can be matched to a partner event source. + */ + createEventBus(callback?: (err: AWSError, data: CloudWatchEvents.Types.CreateEventBusResponse) => void): Request; + /** + * Called by an SaaS partner to create a partner event source. This operation is not used by AWS customers. Each partner event source can be used by one AWS account to create a matching partner event bus in that AWS account. A SaaS partner must create one partner event source for each AWS account that wants to receive those event types. A partner event source creates events based on resources within the SaaS partner's service or application. An AWS account that creates a partner event bus that matches the partner event source can use that event bus to receive events from the partner, and then process them using AWS Events rules and targets. Partner event source names follow this format: partner_name/event_namespace/event_name partner_name is determined during partner registration and identifies the partner to AWS customers. event_namespace is determined by the partner and is a way for the partner to categorize their events. event_name is determined by the partner, and should uniquely identify an event-generating resource within the partner system. The combination of event_namespace and event_name should help AWS customers decide whether to create an event bus to receive these events. + */ + createPartnerEventSource(params: CloudWatchEvents.Types.CreatePartnerEventSourceRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.CreatePartnerEventSourceResponse) => void): Request; + /** + * Called by an SaaS partner to create a partner event source. This operation is not used by AWS customers. Each partner event source can be used by one AWS account to create a matching partner event bus in that AWS account. A SaaS partner must create one partner event source for each AWS account that wants to receive those event types. A partner event source creates events based on resources within the SaaS partner's service or application. An AWS account that creates a partner event bus that matches the partner event source can use that event bus to receive events from the partner, and then process them using AWS Events rules and targets. Partner event source names follow this format: partner_name/event_namespace/event_name partner_name is determined during partner registration and identifies the partner to AWS customers. event_namespace is determined by the partner and is a way for the partner to categorize their events. event_name is determined by the partner, and should uniquely identify an event-generating resource within the partner system. The combination of event_namespace and event_name should help AWS customers decide whether to create an event bus to receive these events. + */ + createPartnerEventSource(callback?: (err: AWSError, data: CloudWatchEvents.Types.CreatePartnerEventSourceResponse) => void): Request; + /** + * You can use this operation to temporarily stop receiving events from the specified partner event source. The matching event bus is not deleted. When you deactivate a partner event source, the source goes into PENDING state. If it remains in PENDING state for more than two weeks, it is deleted. To activate a deactivated partner event source, use ActivateEventSource. + */ + deactivateEventSource(params: CloudWatchEvents.Types.DeactivateEventSourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * You can use this operation to temporarily stop receiving events from the specified partner event source. The matching event bus is not deleted. When you deactivate a partner event source, the source goes into PENDING state. If it remains in PENDING state for more than two weeks, it is deleted. To activate a deactivated partner event source, use ActivateEventSource. + */ + deactivateEventSource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes all authorization parameters from the connection. This lets you remove the secret from the connection so you can reuse it without having to create a new connection. + */ + deauthorizeConnection(params: CloudWatchEvents.Types.DeauthorizeConnectionRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DeauthorizeConnectionResponse) => void): Request; + /** + * Removes all authorization parameters from the connection. This lets you remove the secret from the connection so you can reuse it without having to create a new connection. + */ + deauthorizeConnection(callback?: (err: AWSError, data: CloudWatchEvents.Types.DeauthorizeConnectionResponse) => void): Request; + /** + * Deletes the specified API destination. + */ + deleteApiDestination(params: CloudWatchEvents.Types.DeleteApiDestinationRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DeleteApiDestinationResponse) => void): Request; + /** + * Deletes the specified API destination. + */ + deleteApiDestination(callback?: (err: AWSError, data: CloudWatchEvents.Types.DeleteApiDestinationResponse) => void): Request; + /** + * Deletes the specified archive. + */ + deleteArchive(params: CloudWatchEvents.Types.DeleteArchiveRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DeleteArchiveResponse) => void): Request; + /** + * Deletes the specified archive. + */ + deleteArchive(callback?: (err: AWSError, data: CloudWatchEvents.Types.DeleteArchiveResponse) => void): Request; + /** + * Deletes a connection. + */ + deleteConnection(params: CloudWatchEvents.Types.DeleteConnectionRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DeleteConnectionResponse) => void): Request; + /** + * Deletes a connection. + */ + deleteConnection(callback?: (err: AWSError, data: CloudWatchEvents.Types.DeleteConnectionResponse) => void): Request; + /** + * Deletes the specified custom event bus or partner event bus. All rules associated with this event bus need to be deleted. You can't delete your account's default event bus. + */ + deleteEventBus(params: CloudWatchEvents.Types.DeleteEventBusRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified custom event bus or partner event bus. All rules associated with this event bus need to be deleted. You can't delete your account's default event bus. + */ + deleteEventBus(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * This operation is used by SaaS partners to delete a partner event source. This operation is not used by AWS customers. When you delete an event source, the status of the corresponding partner event bus in the AWS customer account becomes DELETED. + */ + deletePartnerEventSource(params: CloudWatchEvents.Types.DeletePartnerEventSourceRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * This operation is used by SaaS partners to delete a partner event source. This operation is not used by AWS customers. When you delete an event source, the status of the corresponding partner event bus in the AWS customer account becomes DELETED. + */ + deletePartnerEventSource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified rule. Before you can delete the rule, you must remove all targets, using RemoveTargets. When you delete a rule, incoming events might continue to match to the deleted rule. Allow a short period of time for changes to take effect. Managed rules are rules created and managed by another AWS service on your behalf. These rules are created by those other AWS services to support functionality in those services. You can delete these rules using the Force option, but you should do so only if you are sure the other service is not still using that rule. + */ + deleteRule(params: CloudWatchEvents.Types.DeleteRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified rule. Before you can delete the rule, you must remove all targets, using RemoveTargets. When you delete a rule, incoming events might continue to match to the deleted rule. Allow a short period of time for changes to take effect. Managed rules are rules created and managed by another AWS service on your behalf. These rules are created by those other AWS services to support functionality in those services. You can delete these rules using the Force option, but you should do so only if you are sure the other service is not still using that rule. + */ + deleteRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Retrieves details about an API destination. + */ + describeApiDestination(params: CloudWatchEvents.Types.DescribeApiDestinationRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeApiDestinationResponse) => void): Request; + /** + * Retrieves details about an API destination. + */ + describeApiDestination(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeApiDestinationResponse) => void): Request; + /** + * Retrieves details about an archive. + */ + describeArchive(params: CloudWatchEvents.Types.DescribeArchiveRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeArchiveResponse) => void): Request; + /** + * Retrieves details about an archive. + */ + describeArchive(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeArchiveResponse) => void): Request; + /** + * Retrieves details about a connection. + */ + describeConnection(params: CloudWatchEvents.Types.DescribeConnectionRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeConnectionResponse) => void): Request; + /** + * Retrieves details about a connection. + */ + describeConnection(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeConnectionResponse) => void): Request; + /** + * Displays details about an event bus in your account. This can include the external AWS accounts that are permitted to write events to your default event bus, and the associated policy. For custom event buses and partner event buses, it displays the name, ARN, policy, state, and creation time. To enable your account to receive events from other accounts on its default event bus, use PutPermission. For more information about partner event buses, see CreateEventBus. + */ + describeEventBus(params: CloudWatchEvents.Types.DescribeEventBusRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeEventBusResponse) => void): Request; + /** + * Displays details about an event bus in your account. This can include the external AWS accounts that are permitted to write events to your default event bus, and the associated policy. For custom event buses and partner event buses, it displays the name, ARN, policy, state, and creation time. To enable your account to receive events from other accounts on its default event bus, use PutPermission. For more information about partner event buses, see CreateEventBus. + */ + describeEventBus(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeEventBusResponse) => void): Request; + /** + * This operation lists details about a partner event source that is shared with your account. + */ + describeEventSource(params: CloudWatchEvents.Types.DescribeEventSourceRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeEventSourceResponse) => void): Request; + /** + * This operation lists details about a partner event source that is shared with your account. + */ + describeEventSource(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeEventSourceResponse) => void): Request; + /** + * An SaaS partner can use this operation to list details about a partner event source that they have created. AWS customers do not use this operation. Instead, AWS customers can use DescribeEventSource to see details about a partner event source that is shared with them. + */ + describePartnerEventSource(params: CloudWatchEvents.Types.DescribePartnerEventSourceRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribePartnerEventSourceResponse) => void): Request; + /** + * An SaaS partner can use this operation to list details about a partner event source that they have created. AWS customers do not use this operation. Instead, AWS customers can use DescribeEventSource to see details about a partner event source that is shared with them. + */ + describePartnerEventSource(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribePartnerEventSourceResponse) => void): Request; + /** + * Retrieves details about a replay. Use DescribeReplay to determine the progress of a running replay. A replay processes events to replay based on the time in the event, and replays them using 1 minute intervals. If you use StartReplay and specify an EventStartTime and an EventEndTime that covers a 20 minute time range, the events are replayed from the first minute of that 20 minute range first. Then the events from the second minute are replayed. You can use DescribeReplay to determine the progress of a replay. The value returned for EventLastReplayedTime indicates the time within the specified time range associated with the last event replayed. + */ + describeReplay(params: CloudWatchEvents.Types.DescribeReplayRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeReplayResponse) => void): Request; + /** + * Retrieves details about a replay. Use DescribeReplay to determine the progress of a running replay. A replay processes events to replay based on the time in the event, and replays them using 1 minute intervals. If you use StartReplay and specify an EventStartTime and an EventEndTime that covers a 20 minute time range, the events are replayed from the first minute of that 20 minute range first. Then the events from the second minute are replayed. You can use DescribeReplay to determine the progress of a replay. The value returned for EventLastReplayedTime indicates the time within the specified time range associated with the last event replayed. + */ + describeReplay(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeReplayResponse) => void): Request; + /** + * Describes the specified rule. DescribeRule does not list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule. + */ + describeRule(params: CloudWatchEvents.Types.DescribeRuleRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeRuleResponse) => void): Request; + /** + * Describes the specified rule. DescribeRule does not list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule. + */ + describeRule(callback?: (err: AWSError, data: CloudWatchEvents.Types.DescribeRuleResponse) => void): Request; + /** + * Disables the specified rule. A disabled rule won't match any events, and won't self-trigger if it has a schedule expression. When you disable a rule, incoming events might continue to match to the disabled rule. Allow a short period of time for changes to take effect. + */ + disableRule(params: CloudWatchEvents.Types.DisableRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Disables the specified rule. A disabled rule won't match any events, and won't self-trigger if it has a schedule expression. When you disable a rule, incoming events might continue to match to the disabled rule. Allow a short period of time for changes to take effect. + */ + disableRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Enables the specified rule. If the rule does not exist, the operation fails. When you enable a rule, incoming events might not immediately start matching to a newly enabled rule. Allow a short period of time for changes to take effect. + */ + enableRule(params: CloudWatchEvents.Types.EnableRuleRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Enables the specified rule. If the rule does not exist, the operation fails. When you enable a rule, incoming events might not immediately start matching to a newly enabled rule. Allow a short period of time for changes to take effect. + */ + enableRule(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Retrieves a list of API destination in the account in the current Region. + */ + listApiDestinations(params: CloudWatchEvents.Types.ListApiDestinationsRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListApiDestinationsResponse) => void): Request; + /** + * Retrieves a list of API destination in the account in the current Region. + */ + listApiDestinations(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListApiDestinationsResponse) => void): Request; + /** + * Lists your archives. You can either list all the archives or you can provide a prefix to match to the archive names. Filter parameters are exclusive. + */ + listArchives(params: CloudWatchEvents.Types.ListArchivesRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListArchivesResponse) => void): Request; + /** + * Lists your archives. You can either list all the archives or you can provide a prefix to match to the archive names. Filter parameters are exclusive. + */ + listArchives(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListArchivesResponse) => void): Request; + /** + * Retrieves a list of connections from the account. + */ + listConnections(params: CloudWatchEvents.Types.ListConnectionsRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListConnectionsResponse) => void): Request; + /** + * Retrieves a list of connections from the account. + */ + listConnections(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListConnectionsResponse) => void): Request; + /** + * Lists all the event buses in your account, including the default event bus, custom event buses, and partner event buses. + */ + listEventBuses(params: CloudWatchEvents.Types.ListEventBusesRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListEventBusesResponse) => void): Request; + /** + * Lists all the event buses in your account, including the default event bus, custom event buses, and partner event buses. + */ + listEventBuses(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListEventBusesResponse) => void): Request; + /** + * You can use this to see all the partner event sources that have been shared with your AWS account. For more information about partner event sources, see CreateEventBus. + */ + listEventSources(params: CloudWatchEvents.Types.ListEventSourcesRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListEventSourcesResponse) => void): Request; + /** + * You can use this to see all the partner event sources that have been shared with your AWS account. For more information about partner event sources, see CreateEventBus. + */ + listEventSources(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListEventSourcesResponse) => void): Request; + /** + * An SaaS partner can use this operation to display the AWS account ID that a particular partner event source name is associated with. This operation is not used by AWS customers. + */ + listPartnerEventSourceAccounts(params: CloudWatchEvents.Types.ListPartnerEventSourceAccountsRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListPartnerEventSourceAccountsResponse) => void): Request; + /** + * An SaaS partner can use this operation to display the AWS account ID that a particular partner event source name is associated with. This operation is not used by AWS customers. + */ + listPartnerEventSourceAccounts(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListPartnerEventSourceAccountsResponse) => void): Request; + /** + * An SaaS partner can use this operation to list all the partner event source names that they have created. This operation is not used by AWS customers. + */ + listPartnerEventSources(params: CloudWatchEvents.Types.ListPartnerEventSourcesRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListPartnerEventSourcesResponse) => void): Request; + /** + * An SaaS partner can use this operation to list all the partner event source names that they have created. This operation is not used by AWS customers. + */ + listPartnerEventSources(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListPartnerEventSourcesResponse) => void): Request; + /** + * Lists your replays. You can either list all the replays or you can provide a prefix to match to the replay names. Filter parameters are exclusive. + */ + listReplays(params: CloudWatchEvents.Types.ListReplaysRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListReplaysResponse) => void): Request; + /** + * Lists your replays. You can either list all the replays or you can provide a prefix to match to the replay names. Filter parameters are exclusive. + */ + listReplays(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListReplaysResponse) => void): Request; + /** + * Lists the rules for the specified target. You can see which of the rules in Amazon EventBridge can invoke a specific target in your account. + */ + listRuleNamesByTarget(params: CloudWatchEvents.Types.ListRuleNamesByTargetRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListRuleNamesByTargetResponse) => void): Request; + /** + * Lists the rules for the specified target. You can see which of the rules in Amazon EventBridge can invoke a specific target in your account. + */ + listRuleNamesByTarget(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListRuleNamesByTargetResponse) => void): Request; + /** + * Lists your Amazon EventBridge rules. You can either list all the rules or you can provide a prefix to match to the rule names. ListRules does not list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule. + */ + listRules(params: CloudWatchEvents.Types.ListRulesRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListRulesResponse) => void): Request; + /** + * Lists your Amazon EventBridge rules. You can either list all the rules or you can provide a prefix to match to the rule names. ListRules does not list the targets of a rule. To see the targets associated with a rule, use ListTargetsByRule. + */ + listRules(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListRulesResponse) => void): Request; + /** + * Displays the tags associated with an EventBridge resource. In EventBridge, rules and event buses can be tagged. + */ + listTagsForResource(params: CloudWatchEvents.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListTagsForResourceResponse) => void): Request; + /** + * Displays the tags associated with an EventBridge resource. In EventBridge, rules and event buses can be tagged. + */ + listTagsForResource(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListTagsForResourceResponse) => void): Request; + /** + * Lists the targets assigned to the specified rule. + */ + listTargetsByRule(params: CloudWatchEvents.Types.ListTargetsByRuleRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.ListTargetsByRuleResponse) => void): Request; + /** + * Lists the targets assigned to the specified rule. + */ + listTargetsByRule(callback?: (err: AWSError, data: CloudWatchEvents.Types.ListTargetsByRuleResponse) => void): Request; + /** + * Sends custom events to Amazon EventBridge so that they can be matched to rules. + */ + putEvents(params: CloudWatchEvents.Types.PutEventsRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.PutEventsResponse) => void): Request; + /** + * Sends custom events to Amazon EventBridge so that they can be matched to rules. + */ + putEvents(callback?: (err: AWSError, data: CloudWatchEvents.Types.PutEventsResponse) => void): Request; + /** + * This is used by SaaS partners to write events to a customer's partner event bus. AWS customers do not use this operation. + */ + putPartnerEvents(params: CloudWatchEvents.Types.PutPartnerEventsRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.PutPartnerEventsResponse) => void): Request; + /** + * This is used by SaaS partners to write events to a customer's partner event bus. AWS customers do not use this operation. + */ + putPartnerEvents(callback?: (err: AWSError, data: CloudWatchEvents.Types.PutPartnerEventsResponse) => void): Request; + /** + * Running PutPermission permits the specified AWS account or AWS organization to put events to the specified event bus. Amazon EventBridge (CloudWatch Events) rules in your account are triggered by these events arriving to an event bus in your account. For another account to send events to your account, that external account must have an EventBridge rule with your account's event bus as a target. To enable multiple AWS accounts to put events to your event bus, run PutPermission once for each of these accounts. Or, if all the accounts are members of the same AWS organization, you can run PutPermission once specifying Principal as "*" and specifying the AWS organization ID in Condition, to grant permissions to all accounts in that organization. If you grant permissions using an organization, then accounts in that organization must specify a RoleArn with proper permissions when they use PutTarget to add your account's event bus as a target. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide. The permission policy on the default event bus cannot exceed 10 KB in size. + */ + putPermission(params: CloudWatchEvents.Types.PutPermissionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Running PutPermission permits the specified AWS account or AWS organization to put events to the specified event bus. Amazon EventBridge (CloudWatch Events) rules in your account are triggered by these events arriving to an event bus in your account. For another account to send events to your account, that external account must have an EventBridge rule with your account's event bus as a target. To enable multiple AWS accounts to put events to your event bus, run PutPermission once for each of these accounts. Or, if all the accounts are members of the same AWS organization, you can run PutPermission once specifying Principal as "*" and specifying the AWS organization ID in Condition, to grant permissions to all accounts in that organization. If you grant permissions using an organization, then accounts in that organization must specify a RoleArn with proper permissions when they use PutTarget to add your account's event bus as a target. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide. The permission policy on the default event bus cannot exceed 10 KB in size. + */ + putPermission(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates the specified rule. Rules are enabled by default, or based on value of the state. You can disable a rule using DisableRule. A single rule watches for events from a single event bus. Events generated by AWS services go to your account's default event bus. Events generated by SaaS partner services or applications go to the matching partner event bus. If you have custom applications or services, you can specify whether their events go to your default event bus or a custom event bus that you have created. For more information, see CreateEventBus. If you are updating an existing rule, the rule is replaced with what you specify in this PutRule command. If you omit arguments in PutRule, the old values for those arguments are not kept. Instead, they are replaced with null values. When you create or update a rule, incoming events might not immediately start matching to new or updated rules. Allow a short period of time for changes to take effect. A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression, in which case the rule triggers on matching events as well as on a schedule. When you initially create a rule, you can optionally assign one or more tags to the rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only rules with certain tag values. To use the PutRule operation and assign tags, you must have both the events:PutRule and events:TagResource permissions. If you are updating an existing rule, any tags you specify in the PutRule operation are ignored. To update the tags of an existing rule, use TagResource and UntagResource. Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match. In EventBridge, it is possible to create rules that lead to infinite loops, where a rule is fired repeatedly. For example, a rule might detect that ACLs have changed on an S3 bucket, and trigger software to change them to the desired state. If the rule is not written carefully, the subsequent change to the ACLs fires the rule again, creating an infinite loop. To prevent this, write the rules so that the triggered actions do not re-fire the same rule. For example, your rule could fire only if ACLs are found to be in a bad state, instead of after any change. An infinite loop can quickly cause higher than expected charges. We recommend that you use budgeting, which alerts you when charges exceed your specified limit. For more information, see Managing Your Costs with Budgets. + */ + putRule(params: CloudWatchEvents.Types.PutRuleRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.PutRuleResponse) => void): Request; + /** + * Creates or updates the specified rule. Rules are enabled by default, or based on value of the state. You can disable a rule using DisableRule. A single rule watches for events from a single event bus. Events generated by AWS services go to your account's default event bus. Events generated by SaaS partner services or applications go to the matching partner event bus. If you have custom applications or services, you can specify whether their events go to your default event bus or a custom event bus that you have created. For more information, see CreateEventBus. If you are updating an existing rule, the rule is replaced with what you specify in this PutRule command. If you omit arguments in PutRule, the old values for those arguments are not kept. Instead, they are replaced with null values. When you create or update a rule, incoming events might not immediately start matching to new or updated rules. Allow a short period of time for changes to take effect. A rule must contain at least an EventPattern or ScheduleExpression. Rules with EventPatterns are triggered when a matching event is observed. Rules with ScheduleExpressions self-trigger based on the given schedule. A rule can have both an EventPattern and a ScheduleExpression, in which case the rule triggers on matching events as well as on a schedule. When you initially create a rule, you can optionally assign one or more tags to the rule. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only rules with certain tag values. To use the PutRule operation and assign tags, you must have both the events:PutRule and events:TagResource permissions. If you are updating an existing rule, any tags you specify in the PutRule operation are ignored. To update the tags of an existing rule, use TagResource and UntagResource. Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match. In EventBridge, it is possible to create rules that lead to infinite loops, where a rule is fired repeatedly. For example, a rule might detect that ACLs have changed on an S3 bucket, and trigger software to change them to the desired state. If the rule is not written carefully, the subsequent change to the ACLs fires the rule again, creating an infinite loop. To prevent this, write the rules so that the triggered actions do not re-fire the same rule. For example, your rule could fire only if ACLs are found to be in a bad state, instead of after any change. An infinite loop can quickly cause higher than expected charges. We recommend that you use budgeting, which alerts you when charges exceed your specified limit. For more information, see Managing Your Costs with Budgets. + */ + putRule(callback?: (err: AWSError, data: CloudWatchEvents.Types.PutRuleResponse) => void): Request; + /** + * Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule. Targets are the resources that are invoked when a rule is triggered. You can configure the following as targets for Events: EC2 instances SSM Run Command SSM Automation AWS Lambda functions Data streams in Amazon Kinesis Data Streams Data delivery streams in Amazon Kinesis Data Firehose Amazon ECS tasks AWS Step Functions state machines AWS Batch jobs AWS CodeBuild projects Pipelines in AWS CodePipeline Amazon Inspector assessment templates Amazon SNS topics Amazon SQS queues, including FIFO queues The default event bus of another AWS account Amazon API Gateway REST APIs Redshift Clusters to invoke Data API ExecuteStatement on Custom/SaaS HTTPS APIs via EventBridge API Destinations Amazon SageMaker Model Building Pipelines Creating rules with built-in targets is supported only in the AWS Management Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances API call, EC2 StopInstances API call, and EC2 TerminateInstances API call. For some target types, PutTargets provides target-specific parameters. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field. To be able to make API calls against the resources that you own, Amazon EventBridge (CloudWatch Events) needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource-based policies. For EC2 instances, Kinesis data streams, AWS Step Functions state machines and API Gateway REST APIs, EventBridge relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon EventBridge User Guide. If another AWS account is in the same region and has granted you permission (using PutPermission), you can send events to that account. Set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn value when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to another account is charged as a custom event. The account receiving the event is not charged. For more information, see Amazon EventBridge (CloudWatch Events) Pricing. Input, InputPath, and InputTransformer are not available with PutTarget if the target is an event bus of a different AWS account. If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide. For more information about enabling cross-account events, see PutPermission. Input, InputPath, and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event: If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format (unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target). If Input is specified in the form of valid JSON, then the matched event is overridden with this constant. If InputPath is specified in the form of JSONPath (for example, $.detail), then only the part of the event specified in the path is passed to the target (for example, only the detail part of the event is passed). If InputTransformer is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target. When you specify InputPath or InputTransformer, you must use JSON dot notation, not bracket notation. When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code. + */ + putTargets(params: CloudWatchEvents.Types.PutTargetsRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.PutTargetsResponse) => void): Request; + /** + * Adds the specified targets to the specified rule, or updates the targets if they are already associated with the rule. Targets are the resources that are invoked when a rule is triggered. You can configure the following as targets for Events: EC2 instances SSM Run Command SSM Automation AWS Lambda functions Data streams in Amazon Kinesis Data Streams Data delivery streams in Amazon Kinesis Data Firehose Amazon ECS tasks AWS Step Functions state machines AWS Batch jobs AWS CodeBuild projects Pipelines in AWS CodePipeline Amazon Inspector assessment templates Amazon SNS topics Amazon SQS queues, including FIFO queues The default event bus of another AWS account Amazon API Gateway REST APIs Redshift Clusters to invoke Data API ExecuteStatement on Custom/SaaS HTTPS APIs via EventBridge API Destinations Amazon SageMaker Model Building Pipelines Creating rules with built-in targets is supported only in the AWS Management Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances API call, EC2 StopInstances API call, and EC2 TerminateInstances API call. For some target types, PutTargets provides target-specific parameters. If the target is a Kinesis data stream, you can optionally specify which shard the event goes to by using the KinesisParameters argument. To invoke a command on multiple EC2 instances with one rule, you can use the RunCommandParameters field. To be able to make API calls against the resources that you own, Amazon EventBridge (CloudWatch Events) needs the appropriate permissions. For AWS Lambda and Amazon SNS resources, EventBridge relies on resource-based policies. For EC2 instances, Kinesis data streams, AWS Step Functions state machines and API Gateway REST APIs, EventBridge relies on IAM roles that you specify in the RoleARN argument in PutTargets. For more information, see Authentication and Access Control in the Amazon EventBridge User Guide. If another AWS account is in the same region and has granted you permission (using PutPermission), you can send events to that account. Set that account's event bus as a target of the rules in your account. To send the matched events to the other account, specify that account's event bus as the Arn value when you run PutTargets. If your account sends events to another account, your account is charged for each sent event. Each event sent to another account is charged as a custom event. The account receiving the event is not charged. For more information, see Amazon EventBridge (CloudWatch Events) Pricing. Input, InputPath, and InputTransformer are not available with PutTarget if the target is an event bus of a different AWS account. If you are setting the event bus of another account as the target, and that account granted permission to your account through an organization instead of directly by the account ID, then you must specify a RoleArn with proper permissions in the Target structure. For more information, see Sending and Receiving Events Between AWS Accounts in the Amazon EventBridge User Guide. For more information about enabling cross-account events, see PutPermission. Input, InputPath, and InputTransformer are mutually exclusive and optional parameters of a target. When a rule is triggered due to a matched event: If none of the following arguments are specified for a target, then the entire event is passed to the target in JSON format (unless the target is Amazon EC2 Run Command or Amazon ECS task, in which case nothing from the event is passed to the target). If Input is specified in the form of valid JSON, then the matched event is overridden with this constant. If InputPath is specified in the form of JSONPath (for example, $.detail), then only the part of the event specified in the path is passed to the target (for example, only the detail part of the event is passed). If InputTransformer is specified, then one or more specified JSONPaths are extracted from the event and used as values in a template that you specify as the input to the target. When you specify InputPath or InputTransformer, you must use JSON dot notation, not bracket notation. When you add targets to a rule and the associated rule triggers soon after, new or updated targets might not be immediately invoked. Allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code. + */ + putTargets(callback?: (err: AWSError, data: CloudWatchEvents.Types.PutTargetsResponse) => void): Request; + /** + * Revokes the permission of another AWS account to be able to put events to the specified event bus. Specify the account to revoke by the StatementId value that you associated with the account when you granted it permission with PutPermission. You can find the StatementId by using DescribeEventBus. + */ + removePermission(params: CloudWatchEvents.Types.RemovePermissionRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Revokes the permission of another AWS account to be able to put events to the specified event bus. Specify the account to revoke by the StatementId value that you associated with the account when you granted it permission with PutPermission. You can find the StatementId by using DescribeEventBus. + */ + removePermission(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes the specified targets from the specified rule. When the rule is triggered, those targets are no longer be invoked. When you remove a target, when the associated rule triggers, removed targets might continue to be invoked. Allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code. + */ + removeTargets(params: CloudWatchEvents.Types.RemoveTargetsRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.RemoveTargetsResponse) => void): Request; + /** + * Removes the specified targets from the specified rule. When the rule is triggered, those targets are no longer be invoked. When you remove a target, when the associated rule triggers, removed targets might continue to be invoked. Allow a short period of time for changes to take effect. This action can partially fail if too many requests are made at the same time. If that happens, FailedEntryCount is non-zero in the response and each entry in FailedEntries provides the ID of the failed target and the error code. + */ + removeTargets(callback?: (err: AWSError, data: CloudWatchEvents.Types.RemoveTargetsResponse) => void): Request; + /** + * Starts the specified replay. Events are not necessarily replayed in the exact same order that they were added to the archive. A replay processes events to replay based on the time in the event, and replays them using 1 minute intervals. If you specify an EventStartTime and an EventEndTime that covers a 20 minute time range, the events are replayed from the first minute of that 20 minute range first. Then the events from the second minute are replayed. You can use DescribeReplay to determine the progress of a replay. The value returned for EventLastReplayedTime indicates the time within the specified time range associated with the last event replayed. + */ + startReplay(params: CloudWatchEvents.Types.StartReplayRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.StartReplayResponse) => void): Request; + /** + * Starts the specified replay. Events are not necessarily replayed in the exact same order that they were added to the archive. A replay processes events to replay based on the time in the event, and replays them using 1 minute intervals. If you specify an EventStartTime and an EventEndTime that covers a 20 minute time range, the events are replayed from the first minute of that 20 minute range first. Then the events from the second minute are replayed. You can use DescribeReplay to determine the progress of a replay. The value returned for EventLastReplayedTime indicates the time within the specified time range associated with the last event replayed. + */ + startReplay(callback?: (err: AWSError, data: CloudWatchEvents.Types.StartReplayResponse) => void): Request; + /** + * Assigns one or more tags (key-value pairs) to the specified EventBridge resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. In EventBridge, rules and event buses can be tagged. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the TagResource action with a resource that already has tags. If you specify a new tag key, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource. + */ + tagResource(params: CloudWatchEvents.Types.TagResourceRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.TagResourceResponse) => void): Request; + /** + * Assigns one or more tags (key-value pairs) to the specified EventBridge resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. In EventBridge, rules and event buses can be tagged. Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters. You can use the TagResource action with a resource that already has tags. If you specify a new tag key, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource. + */ + tagResource(callback?: (err: AWSError, data: CloudWatchEvents.Types.TagResourceResponse) => void): Request; + /** + * Tests whether the specified event pattern matches the provided event. Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match. + */ + testEventPattern(params: CloudWatchEvents.Types.TestEventPatternRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.TestEventPatternResponse) => void): Request; + /** + * Tests whether the specified event pattern matches the provided event. Most services in AWS treat : or / as the same character in Amazon Resource Names (ARNs). However, EventBridge uses an exact match in event patterns and rules. Be sure to use the correct ARN characters when creating event patterns so that they match the ARN syntax in the event you want to match. + */ + testEventPattern(callback?: (err: AWSError, data: CloudWatchEvents.Types.TestEventPatternResponse) => void): Request; + /** + * Removes one or more tags from the specified EventBridge resource. In Amazon EventBridge (CloudWatch Events, rules and event buses can be tagged. + */ + untagResource(params: CloudWatchEvents.Types.UntagResourceRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.UntagResourceResponse) => void): Request; + /** + * Removes one or more tags from the specified EventBridge resource. In Amazon EventBridge (CloudWatch Events, rules and event buses can be tagged. + */ + untagResource(callback?: (err: AWSError, data: CloudWatchEvents.Types.UntagResourceResponse) => void): Request; + /** + * Updates an API destination. + */ + updateApiDestination(params: CloudWatchEvents.Types.UpdateApiDestinationRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.UpdateApiDestinationResponse) => void): Request; + /** + * Updates an API destination. + */ + updateApiDestination(callback?: (err: AWSError, data: CloudWatchEvents.Types.UpdateApiDestinationResponse) => void): Request; + /** + * Updates the specified archive. + */ + updateArchive(params: CloudWatchEvents.Types.UpdateArchiveRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.UpdateArchiveResponse) => void): Request; + /** + * Updates the specified archive. + */ + updateArchive(callback?: (err: AWSError, data: CloudWatchEvents.Types.UpdateArchiveResponse) => void): Request; + /** + * Updates settings for a connection. + */ + updateConnection(params: CloudWatchEvents.Types.UpdateConnectionRequest, callback?: (err: AWSError, data: CloudWatchEvents.Types.UpdateConnectionResponse) => void): Request; + /** + * Updates settings for a connection. + */ + updateConnection(callback?: (err: AWSError, data: CloudWatchEvents.Types.UpdateConnectionResponse) => void): Request; +} +declare namespace CloudWatchEvents { + export type AccountId = string; + export type Action = string; + export interface ActivateEventSourceRequest { + /** + * The name of the partner event source to activate. + */ + Name: EventSourceName; + } + export interface ApiDestination { + /** + * The ARN of the API destination. + */ + ApiDestinationArn?: ApiDestinationArn; + /** + * The name of the API destination. + */ + Name?: ApiDestinationName; + /** + * The state of the API destination. + */ + ApiDestinationState?: ApiDestinationState; + /** + * The ARN of the connection specified for the API destination. + */ + ConnectionArn?: ConnectionArn; + /** + * The URL to the endpoint for the API destination. + */ + InvocationEndpoint?: HttpsEndpoint; + /** + * The method to use to connect to the HTTP endpoint. + */ + HttpMethod?: ApiDestinationHttpMethod; + /** + * The maximum number of invocations per second to send to the HTTP endpoint. + */ + InvocationRateLimitPerSecond?: ApiDestinationInvocationRateLimitPerSecond; + /** + * A time stamp for the time that the API destination was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the API destination was last modified. + */ + LastModifiedTime?: Timestamp; + } + export type ApiDestinationArn = string; + export type ApiDestinationDescription = string; + export type ApiDestinationHttpMethod = "POST"|"GET"|"HEAD"|"OPTIONS"|"PUT"|"PATCH"|"DELETE"|string; + export type ApiDestinationInvocationRateLimitPerSecond = number; + export type ApiDestinationName = string; + export type ApiDestinationResponseList = ApiDestination[]; + export type ApiDestinationState = "ACTIVE"|"INACTIVE"|string; + export interface Archive { + /** + * The name of the archive. + */ + ArchiveName?: ArchiveName; + /** + * The ARN of the event bus associated with the archive. Only events from this event bus are sent to the archive. + */ + EventSourceArn?: Arn; + /** + * The current state of the archive. + */ + State?: ArchiveState; + /** + * A description for the reason that the archive is in the current state. + */ + StateReason?: ArchiveStateReason; + /** + * The number of days to retain events in the archive before they are deleted. + */ + RetentionDays?: RetentionDays; + /** + * The size of the archive, in bytes. + */ + SizeBytes?: Long; + /** + * The number of events in the archive. + */ + EventCount?: Long; + /** + * The time stamp for the time that the archive was created. + */ + CreationTime?: Timestamp; + } + export type ArchiveArn = string; + export type ArchiveDescription = string; + export type ArchiveName = string; + export type ArchiveResponseList = Archive[]; + export type ArchiveState = "ENABLED"|"DISABLED"|"CREATING"|"UPDATING"|"CREATE_FAILED"|"UPDATE_FAILED"|string; + export type ArchiveStateReason = string; + export type Arn = string; + export type AssignPublicIp = "ENABLED"|"DISABLED"|string; + export type AuthHeaderParameters = string; + export interface AwsVpcConfiguration { + /** + * Specifies the subnets associated with the task. These subnets must all be in the same VPC. You can specify as many as 16 subnets. + */ + Subnets: StringList; + /** + * Specifies the security groups associated with the task. These security groups must all be in the same VPC. You can specify as many as five security groups. If you do not specify a security group, the default security group for the VPC is used. + */ + SecurityGroups?: StringList; + /** + * Specifies whether the task's elastic network interface receives a public IP address. You can specify ENABLED only when LaunchType in EcsParameters is set to FARGATE. + */ + AssignPublicIp?: AssignPublicIp; + } + export interface BatchArrayProperties { + /** + * The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000. + */ + Size?: Integer; + } + export interface BatchParameters { + /** + * The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist. + */ + JobDefinition: String; + /** + * The name to use for this execution of the job, if the target is an AWS Batch job. + */ + JobName: String; + /** + * The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. This parameter is used only if the target is an AWS Batch job. + */ + ArrayProperties?: BatchArrayProperties; + /** + * The retry strategy to use for failed jobs, if the target is an AWS Batch job. The retry strategy is the number of times to retry the failed job execution. Valid values are 1–10. When you specify a retry strategy here, it overrides the retry strategy defined in the job definition. + */ + RetryStrategy?: BatchRetryStrategy; + } + export interface BatchRetryStrategy { + /** + * The number of times to attempt to retry, if the job fails. Valid values are 1–10. + */ + Attempts?: Integer; + } + export type Boolean = boolean; + export interface CancelReplayRequest { + /** + * The name of the replay to cancel. + */ + ReplayName: ReplayName; + } + export interface CancelReplayResponse { + /** + * The ARN of the replay to cancel. + */ + ReplayArn?: ReplayArn; + /** + * The current state of the replay. + */ + State?: ReplayState; + /** + * The reason that the replay is in the current state. + */ + StateReason?: ReplayStateReason; + } + export interface Condition { + /** + * Specifies the type of condition. Currently the only supported value is StringEquals. + */ + Type: String; + /** + * Specifies the key for the condition. Currently the only supported key is aws:PrincipalOrgID. + */ + Key: String; + /** + * Specifies the value for the key. Currently, this must be the ID of the organization. + */ + Value: String; + } + export interface Connection { + /** + * The ARN of the connection. + */ + ConnectionArn?: ConnectionArn; + /** + * The name of the connection. + */ + Name?: ConnectionName; + /** + * The state of the connection. + */ + ConnectionState?: ConnectionState; + /** + * The reason that the connection is in the connection state. + */ + StateReason?: ConnectionStateReason; + /** + * The authorization type specified for the connection. + */ + AuthorizationType?: ConnectionAuthorizationType; + /** + * A time stamp for the time that the connection was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the connection was last modified. + */ + LastModifiedTime?: Timestamp; + /** + * A time stamp for the time that the connection was last authorized. + */ + LastAuthorizedTime?: Timestamp; + } + export interface ConnectionApiKeyAuthResponseParameters { + /** + * The name of the header to use for the APIKeyValue used for authorization. + */ + ApiKeyName?: AuthHeaderParameters; + } + export type ConnectionArn = string; + export interface ConnectionAuthResponseParameters { + /** + * The authorization parameters for Basic authorization. + */ + BasicAuthParameters?: ConnectionBasicAuthResponseParameters; + /** + * The OAuth parameters to use for authorization. + */ + OAuthParameters?: ConnectionOAuthResponseParameters; + /** + * The API Key parameters to use for authorization. + */ + ApiKeyAuthParameters?: ConnectionApiKeyAuthResponseParameters; + /** + * Additional parameters for the connection that are passed through with every invocation to the HTTP endpoint. + */ + InvocationHttpParameters?: ConnectionHttpParameters; + } + export type ConnectionAuthorizationType = "BASIC"|"OAUTH_CLIENT_CREDENTIALS"|"API_KEY"|string; + export interface ConnectionBasicAuthResponseParameters { + /** + * The user name to use for Basic authorization. + */ + Username?: AuthHeaderParameters; + } + export interface ConnectionBodyParameter { + /** + * The key for the parameter. + */ + Key?: String; + /** + * The value associated with the key. + */ + Value?: String; + /** + * Specified whether the value is secret. + */ + IsValueSecret?: Boolean; + } + export type ConnectionBodyParametersList = ConnectionBodyParameter[]; + export type ConnectionDescription = string; + export interface ConnectionHeaderParameter { + /** + * The key for the parameter. + */ + Key?: HeaderKey; + /** + * The value associated with the key. + */ + Value?: HeaderValue; + /** + * Specified whether the value is a secret. + */ + IsValueSecret?: Boolean; + } + export type ConnectionHeaderParametersList = ConnectionHeaderParameter[]; + export interface ConnectionHttpParameters { + /** + * Contains additional header parameters for the connection. + */ + HeaderParameters?: ConnectionHeaderParametersList; + /** + * Contains additional query string parameters for the connection. + */ + QueryStringParameters?: ConnectionQueryStringParametersList; + /** + * Contains additional body string parameters for the connection. + */ + BodyParameters?: ConnectionBodyParametersList; + } + export type ConnectionName = string; + export interface ConnectionOAuthClientResponseParameters { + /** + * The client ID associated with the response to the connection request. + */ + ClientID?: AuthHeaderParameters; + } + export type ConnectionOAuthHttpMethod = "GET"|"POST"|"PUT"|string; + export interface ConnectionOAuthResponseParameters { + /** + * A ConnectionOAuthClientResponseParameters object that contains details about the client parameters returned when OAuth is specified as the authorization type. + */ + ClientParameters?: ConnectionOAuthClientResponseParameters; + /** + * The URL to the HTTP endpoint that authorized the request. + */ + AuthorizationEndpoint?: HttpsEndpoint; + /** + * The method used to connect to the HTTP endpoint. + */ + HttpMethod?: ConnectionOAuthHttpMethod; + /** + * The additional HTTP parameters used for the OAuth authorization request. + */ + OAuthHttpParameters?: ConnectionHttpParameters; + } + export interface ConnectionQueryStringParameter { + /** + * The key for a query string parameter. + */ + Key?: QueryStringKey; + /** + * The value associated with the key for the query string parameter. + */ + Value?: QueryStringValue; + /** + * Specifies whether the value is secret. + */ + IsValueSecret?: Boolean; + } + export type ConnectionQueryStringParametersList = ConnectionQueryStringParameter[]; + export type ConnectionResponseList = Connection[]; + export type ConnectionState = "CREATING"|"UPDATING"|"DELETING"|"AUTHORIZED"|"DEAUTHORIZED"|"AUTHORIZING"|"DEAUTHORIZING"|string; + export type ConnectionStateReason = string; + export interface CreateApiDestinationRequest { + /** + * The name for the API destination to create. + */ + Name: ApiDestinationName; + /** + * A description for the API destination to create. + */ + Description?: ApiDestinationDescription; + /** + * The ARN of the connection to use for the API destination. The destination endpoint must support the authorization type specified for the connection. + */ + ConnectionArn: ConnectionArn; + /** + * The URL to the HTTP invocation endpoint for the API destination. + */ + InvocationEndpoint: HttpsEndpoint; + /** + * The method to use for the request to the HTTP invocation endpoint. + */ + HttpMethod: ApiDestinationHttpMethod; + /** + * The maximum number of requests per second to send to the HTTP invocation endpoint. + */ + InvocationRateLimitPerSecond?: ApiDestinationInvocationRateLimitPerSecond; + } + export interface CreateApiDestinationResponse { + /** + * The ARN of the API destination that was created by the request. + */ + ApiDestinationArn?: ApiDestinationArn; + /** + * The state of the API destination that was created by the request. + */ + ApiDestinationState?: ApiDestinationState; + /** + * A time stamp indicating the time that the API destination was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp indicating the time that the API destination was last modified. + */ + LastModifiedTime?: Timestamp; + } + export interface CreateArchiveRequest { + /** + * The name for the archive to create. + */ + ArchiveName: ArchiveName; + /** + * The ARN of the event source associated with the archive. + */ + EventSourceArn: Arn; + /** + * A description for the archive. + */ + Description?: ArchiveDescription; + /** + * An event pattern to use to filter events sent to the archive. + */ + EventPattern?: EventPattern; + /** + * The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely + */ + RetentionDays?: RetentionDays; + } + export interface CreateArchiveResponse { + /** + * The ARN of the archive that was created. + */ + ArchiveArn?: ArchiveArn; + /** + * The state of the archive that was created. + */ + State?: ArchiveState; + /** + * The reason that the archive is in the state. + */ + StateReason?: ArchiveStateReason; + /** + * The time at which the archive was created. + */ + CreationTime?: Timestamp; + } + export interface CreateConnectionApiKeyAuthRequestParameters { + /** + * The name of the API key to use for authorization. + */ + ApiKeyName: AuthHeaderParameters; + /** + * The value for the API key to use for authorization. + */ + ApiKeyValue: AuthHeaderParameters; + } + export interface CreateConnectionAuthRequestParameters { + /** + * A CreateConnectionBasicAuthRequestParameters object that contains the Basic authorization parameters to use for the connection. + */ + BasicAuthParameters?: CreateConnectionBasicAuthRequestParameters; + /** + * A CreateConnectionOAuthRequestParameters object that contains the OAuth authorization parameters to use for the connection. + */ + OAuthParameters?: CreateConnectionOAuthRequestParameters; + /** + * A CreateConnectionApiKeyAuthRequestParameters object that contains the API key authorization parameters to use for the connection. + */ + ApiKeyAuthParameters?: CreateConnectionApiKeyAuthRequestParameters; + /** + * A ConnectionHttpParameters object that contains the API key authorization parameters to use for the connection. Note that if you include additional parameters for the target of a rule via HttpParameters, including query strings, the parameters added for the connection take precedence. + */ + InvocationHttpParameters?: ConnectionHttpParameters; + } + export interface CreateConnectionBasicAuthRequestParameters { + /** + * The user name to use for Basic authorization. + */ + Username: AuthHeaderParameters; + /** + * The password associated with the user name to use for Basic authorization. + */ + Password: AuthHeaderParameters; + } + export interface CreateConnectionOAuthClientRequestParameters { + /** + * The client ID to use for OAuth authorization for the connection. + */ + ClientID: AuthHeaderParameters; + /** + * The client secret associated with the client ID to use for OAuth authorization for the connection. + */ + ClientSecret: AuthHeaderParameters; + } + export interface CreateConnectionOAuthRequestParameters { + /** + * A CreateConnectionOAuthClientRequestParameters object that contains the client parameters for OAuth authorization. + */ + ClientParameters: CreateConnectionOAuthClientRequestParameters; + /** + * The URL to the authorization endpoint when OAuth is specified as the authorization type. + */ + AuthorizationEndpoint: HttpsEndpoint; + /** + * The method to use for the authorization request. + */ + HttpMethod: ConnectionOAuthHttpMethod; + /** + * A ConnectionHttpParameters object that contains details about the additional parameters to use for the connection. + */ + OAuthHttpParameters?: ConnectionHttpParameters; + } + export interface CreateConnectionRequest { + /** + * The name for the connection to create. + */ + Name: ConnectionName; + /** + * A description for the connection to create. + */ + Description?: ConnectionDescription; + /** + * The type of authorization to use for the connection. + */ + AuthorizationType: ConnectionAuthorizationType; + /** + * A CreateConnectionAuthRequestParameters object that contains the authorization parameters to use to authorize with the endpoint. + */ + AuthParameters: CreateConnectionAuthRequestParameters; + } + export interface CreateConnectionResponse { + /** + * The ARN of the connection that was created by the request. + */ + ConnectionArn?: ConnectionArn; + /** + * The state of the connection that was created by the request. + */ + ConnectionState?: ConnectionState; + /** + * A time stamp for the time that the connection was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the connection was last updated. + */ + LastModifiedTime?: Timestamp; + } + export interface CreateEventBusRequest { + /** + * The name of the new event bus. Event bus names cannot contain the / character. You can't use the name default for a custom event bus, as this name is already used for your account's default event bus. If this is a partner event bus, the name must exactly match the name of the partner event source that this event bus is matched to. + */ + Name: EventBusName; + /** + * If you are creating a partner event bus, this specifies the partner event source that the new event bus will be matched with. + */ + EventSourceName?: EventSourceName; + /** + * Tags to associate with the event bus. + */ + Tags?: TagList; + } + export interface CreateEventBusResponse { + /** + * The ARN of the new event bus. + */ + EventBusArn?: String; + } + export interface CreatePartnerEventSourceRequest { + /** + * The name of the partner event source. This name must be unique and must be in the format partner_name/event_namespace/event_name . The AWS account that wants to use this partner event source must create a partner event bus with a name that matches the name of the partner event source. + */ + Name: EventSourceName; + /** + * The AWS account ID that is permitted to create a matching partner event bus for this partner event source. + */ + Account: AccountId; + } + export interface CreatePartnerEventSourceResponse { + /** + * The ARN of the partner event source. + */ + EventSourceArn?: String; + } + export type CreatedBy = string; + export type Database = string; + export type DbUser = string; + export interface DeactivateEventSourceRequest { + /** + * The name of the partner event source to deactivate. + */ + Name: EventSourceName; + } + export interface DeadLetterConfig { + /** + * The ARN of the SQS queue specified as the target for the dead-letter queue. + */ + Arn?: ResourceArn; + } + export interface DeauthorizeConnectionRequest { + /** + * The name of the connection to remove authorization from. + */ + Name: ConnectionName; + } + export interface DeauthorizeConnectionResponse { + /** + * The ARN of the connection that authorization was removed from. + */ + ConnectionArn?: ConnectionArn; + /** + * The state of the connection. + */ + ConnectionState?: ConnectionState; + /** + * A time stamp for the time that the connection was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the connection was last updated. + */ + LastModifiedTime?: Timestamp; + /** + * A time stamp for the time that the connection was last authorized. + */ + LastAuthorizedTime?: Timestamp; + } + export interface DeleteApiDestinationRequest { + /** + * The name of the destination to delete. + */ + Name: ApiDestinationName; + } + export interface DeleteApiDestinationResponse { + } + export interface DeleteArchiveRequest { + /** + * The name of the archive to delete. + */ + ArchiveName: ArchiveName; + } + export interface DeleteArchiveResponse { + } + export interface DeleteConnectionRequest { + /** + * The name of the connection to delete. + */ + Name: ConnectionName; + } + export interface DeleteConnectionResponse { + /** + * The ARN of the connection that was deleted. + */ + ConnectionArn?: ConnectionArn; + /** + * The state of the connection before it was deleted. + */ + ConnectionState?: ConnectionState; + /** + * A time stamp for the time that the connection was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the connection was last modified before it was deleted. + */ + LastModifiedTime?: Timestamp; + /** + * A time stamp for the time that the connection was last authorized before it wa deleted. + */ + LastAuthorizedTime?: Timestamp; + } + export interface DeleteEventBusRequest { + /** + * The name of the event bus to delete. + */ + Name: EventBusName; + } + export interface DeletePartnerEventSourceRequest { + /** + * The name of the event source to delete. + */ + Name: EventSourceName; + /** + * The AWS account ID of the AWS customer that the event source was created for. + */ + Account: AccountId; + } + export interface DeleteRuleRequest { + /** + * The name of the rule. + */ + Name: RuleName; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + /** + * If this is a managed rule, created by an AWS service on your behalf, you must specify Force as True to delete the rule. This parameter is ignored for rules that are not managed rules. You can check whether a rule is a managed rule by using DescribeRule or ListRules and checking the ManagedBy field of the response. + */ + Force?: Boolean; + } + export interface DescribeApiDestinationRequest { + /** + * The name of the API destination to retrieve. + */ + Name: ApiDestinationName; + } + export interface DescribeApiDestinationResponse { + /** + * The ARN of the API destination retrieved. + */ + ApiDestinationArn?: ApiDestinationArn; + /** + * The name of the API destination retrieved. + */ + Name?: ApiDestinationName; + /** + * The description for the API destination retrieved. + */ + Description?: ApiDestinationDescription; + /** + * The state of the API destination retrieved. + */ + ApiDestinationState?: ApiDestinationState; + /** + * The ARN of the connection specified for the API destination retrieved. + */ + ConnectionArn?: ConnectionArn; + /** + * The URL to use to connect to the HTTP endpoint. + */ + InvocationEndpoint?: HttpsEndpoint; + /** + * The method to use to connect to the HTTP endpoint. + */ + HttpMethod?: ApiDestinationHttpMethod; + /** + * The maximum number of invocations per second to specified for the API destination. Note that if you set the invocation rate maximum to a value lower the rate necessary to send all events received on to the destination HTTP endpoint, some events may not be delivered within the 24-hour retry window. If you plan to set the rate lower than the rate necessary to deliver all events, consider using a dead-letter queue to catch events that are not delivered within 24 hours. + */ + InvocationRateLimitPerSecond?: ApiDestinationInvocationRateLimitPerSecond; + /** + * A time stamp for the time that the API destination was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the API destination was last modified. + */ + LastModifiedTime?: Timestamp; + } + export interface DescribeArchiveRequest { + /** + * The name of the archive to retrieve. + */ + ArchiveName: ArchiveName; + } + export interface DescribeArchiveResponse { + /** + * The ARN of the archive. + */ + ArchiveArn?: ArchiveArn; + /** + * The name of the archive. + */ + ArchiveName?: ArchiveName; + /** + * The ARN of the event source associated with the archive. + */ + EventSourceArn?: Arn; + /** + * The description of the archive. + */ + Description?: ArchiveDescription; + /** + * The event pattern used to filter events sent to the archive. + */ + EventPattern?: EventPattern; + /** + * The state of the archive. + */ + State?: ArchiveState; + /** + * The reason that the archive is in the state. + */ + StateReason?: ArchiveStateReason; + /** + * The number of days to retain events for in the archive. + */ + RetentionDays?: RetentionDays; + /** + * The size of the archive in bytes. + */ + SizeBytes?: Long; + /** + * The number of events in the archive. + */ + EventCount?: Long; + /** + * The time at which the archive was created. + */ + CreationTime?: Timestamp; + } + export interface DescribeConnectionRequest { + /** + * The name of the connection to retrieve. + */ + Name: ConnectionName; + } + export interface DescribeConnectionResponse { + /** + * The ARN of the connection retrieved. + */ + ConnectionArn?: ConnectionArn; + /** + * The name of the connection retrieved. + */ + Name?: ConnectionName; + /** + * The description for the connection retrieved. + */ + Description?: ConnectionDescription; + /** + * The state of the connection retrieved. + */ + ConnectionState?: ConnectionState; + /** + * The reason that the connection is in the current connection state. + */ + StateReason?: ConnectionStateReason; + /** + * The type of authorization specified for the connection. + */ + AuthorizationType?: ConnectionAuthorizationType; + /** + * The ARN of the secret created from the authorization parameters specified for the connection. + */ + SecretArn?: SecretsManagerSecretArn; + /** + * The parameters to use for authorization for the connection. + */ + AuthParameters?: ConnectionAuthResponseParameters; + /** + * A time stamp for the time that the connection was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the connection was last modified. + */ + LastModifiedTime?: Timestamp; + /** + * A time stamp for the time that the connection was last authorized. + */ + LastAuthorizedTime?: Timestamp; + } + export interface DescribeEventBusRequest { + /** + * The name or ARN of the event bus to show details for. If you omit this, the default event bus is displayed. + */ + Name?: EventBusNameOrArn; + } + export interface DescribeEventBusResponse { + /** + * The name of the event bus. Currently, this is always default. + */ + Name?: String; + /** + * The Amazon Resource Name (ARN) of the account permitted to write events to the current account. + */ + Arn?: String; + /** + * The policy that enables the external account to send events to your account. + */ + Policy?: String; + } + export interface DescribeEventSourceRequest { + /** + * The name of the partner event source to display the details of. + */ + Name: EventSourceName; + } + export interface DescribeEventSourceResponse { + /** + * The ARN of the partner event source. + */ + Arn?: String; + /** + * The name of the SaaS partner that created the event source. + */ + CreatedBy?: String; + /** + * The date and time that the event source was created. + */ + CreationTime?: Timestamp; + /** + * The date and time that the event source will expire if you do not create a matching event bus. + */ + ExpirationTime?: Timestamp; + /** + * The name of the partner event source. + */ + Name?: String; + /** + * The state of the event source. If it is ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it is PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it is DELETED, you have created a matching event bus, but the event source has since been deleted. + */ + State?: EventSourceState; + } + export interface DescribePartnerEventSourceRequest { + /** + * The name of the event source to display. + */ + Name: EventSourceName; + } + export interface DescribePartnerEventSourceResponse { + /** + * The ARN of the event source. + */ + Arn?: String; + /** + * The name of the event source. + */ + Name?: String; + } + export interface DescribeReplayRequest { + /** + * The name of the replay to retrieve. + */ + ReplayName: ReplayName; + } + export interface DescribeReplayResponse { + /** + * The name of the replay. + */ + ReplayName?: ReplayName; + /** + * The ARN of the replay. + */ + ReplayArn?: ReplayArn; + /** + * The description of the replay. + */ + Description?: ReplayDescription; + /** + * The current state of the replay. + */ + State?: ReplayState; + /** + * The reason that the replay is in the current state. + */ + StateReason?: ReplayStateReason; + /** + * The ARN of the archive events were replayed from. + */ + EventSourceArn?: Arn; + /** + * A ReplayDestination object that contains details about the replay. + */ + Destination?: ReplayDestination; + /** + * The time stamp of the first event that was last replayed from the archive. + */ + EventStartTime?: Timestamp; + /** + * The time stamp for the last event that was replayed from the archive. + */ + EventEndTime?: Timestamp; + /** + * The time that the event was last replayed. + */ + EventLastReplayedTime?: Timestamp; + /** + * A time stamp for the time that the replay started. + */ + ReplayStartTime?: Timestamp; + /** + * A time stamp for the time that the replay stopped. + */ + ReplayEndTime?: Timestamp; + } + export interface DescribeRuleRequest { + /** + * The name of the rule. + */ + Name: RuleName; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + } + export interface DescribeRuleResponse { + /** + * The name of the rule. + */ + Name?: RuleName; + /** + * The Amazon Resource Name (ARN) of the rule. + */ + Arn?: RuleArn; + /** + * The event pattern. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide. + */ + EventPattern?: EventPattern; + /** + * The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5 minutes)". + */ + ScheduleExpression?: ScheduleExpression; + /** + * Specifies whether the rule is enabled or disabled. + */ + State?: RuleState; + /** + * The description of the rule. + */ + Description?: RuleDescription; + /** + * The Amazon Resource Name (ARN) of the IAM role associated with the rule. + */ + RoleArn?: RoleArn; + /** + * If this is a managed rule, created by an AWS service on your behalf, this field displays the principal name of the AWS service that created the rule. + */ + ManagedBy?: ManagedBy; + /** + * The name of the event bus associated with the rule. + */ + EventBusName?: EventBusName; + /** + * The account ID of the user that created the rule. If you use PutRule to put a rule on an event bus in another account, the other account is the owner of the rule, and the rule ARN includes the account ID for that account. However, the value for CreatedBy is the account ID as the account that created the rule in the other account. + */ + CreatedBy?: CreatedBy; + } + export interface DisableRuleRequest { + /** + * The name of the rule. + */ + Name: RuleName; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + } + export interface EcsParameters { + /** + * The ARN of the task definition to use if the event target is an Amazon ECS task. + */ + TaskDefinitionArn: Arn; + /** + * The number of tasks to create based on TaskDefinition. The default is 1. + */ + TaskCount?: LimitMin1; + /** + * Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. The FARGATE value is supported only in the Regions where AWS Fargate with Amazon ECS is supported. For more information, see AWS Fargate on Amazon ECS in the Amazon Elastic Container Service Developer Guide. + */ + LaunchType?: LaunchType; + /** + * Use this structure if the ECS task uses the awsvpc network mode. This structure specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. This structure is required if LaunchType is FARGATE because the awsvpc mode is required for Fargate tasks. If you specify NetworkConfiguration when the target ECS task does not use the awsvpc network mode, the task fails. + */ + NetworkConfiguration?: NetworkConfiguration; + /** + * Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as 1.1.0. This structure is used only if LaunchType is FARGATE. For more information about valid platform versions, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide. + */ + PlatformVersion?: String; + /** + * Specifies an ECS task group for the task. The maximum length is 255 characters. + */ + Group?: String; + } + export interface EnableRuleRequest { + /** + * The name of the rule. + */ + Name: RuleName; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + } + export type ErrorCode = string; + export type ErrorMessage = string; + export interface EventBus { + /** + * The name of the event bus. + */ + Name?: String; + /** + * The ARN of the event bus. + */ + Arn?: String; + /** + * The permissions policy of the event bus, describing which other AWS accounts can write events to this event bus. + */ + Policy?: String; + } + export type EventBusList = EventBus[]; + export type EventBusName = string; + export type EventBusNameOrArn = string; + export type EventId = string; + export type EventPattern = string; + export type EventResource = string; + export type EventResourceList = EventResource[]; + export interface EventSource { + /** + * The ARN of the event source. + */ + Arn?: String; + /** + * The name of the partner that created the event source. + */ + CreatedBy?: String; + /** + * The date and time the event source was created. + */ + CreationTime?: Timestamp; + /** + * The date and time that the event source will expire, if the AWS account doesn't create a matching event bus for it. + */ + ExpirationTime?: Timestamp; + /** + * The name of the event source. + */ + Name?: String; + /** + * The state of the event source. If it is ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it is PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it is DELETED, you have created a matching event bus, but the event source has since been deleted. + */ + State?: EventSourceState; + } + export type EventSourceList = EventSource[]; + export type EventSourceName = string; + export type EventSourceNamePrefix = string; + export type EventSourceState = "PENDING"|"ACTIVE"|"DELETED"|string; + export type EventTime = Date; + export type HeaderKey = string; + export type HeaderParametersMap = {[key: string]: HeaderValue}; + export type HeaderValue = string; + export interface HttpParameters { + /** + * The path parameter values to be used to populate API Gateway REST API or EventBridge ApiDestination path wildcards ("*"). + */ + PathParameterValues?: PathParameterList; + /** + * The headers that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination. + */ + HeaderParameters?: HeaderParametersMap; + /** + * The query string keys/values that need to be sent as part of request invoking the API Gateway REST API or EventBridge ApiDestination. + */ + QueryStringParameters?: QueryStringParametersMap; + } + export type HttpsEndpoint = string; + export interface InputTransformer { + /** + * Map of JSON paths to be extracted from the event. You can then insert these in the template in InputTemplate to produce the output you want to be sent to the target. InputPathsMap is an array key-value pairs, where each value is a valid JSON path. You can have as many as 100 key-value pairs. You must use JSON dot notation, not bracket notation. The keys cannot start with "AWS." + */ + InputPathsMap?: TransformerPaths; + /** + * Input template where you specify placeholders that will be filled with the values of the keys from InputPathsMap to customize the data sent to the target. Enclose each InputPathsMaps value in brackets: <value> The InputTemplate must be valid JSON. If InputTemplate is a JSON object (surrounded by curly braces), the following restrictions apply: The placeholder cannot be used as an object key. The following example shows the syntax for using InputPathsMap and InputTemplate. "InputTransformer": { "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"}, "InputTemplate": "<instance> is in state <status>" } To have the InputTemplate include quote marks within a JSON string, escape each quote marks with a slash, as in the following example: "InputTransformer": { "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"}, "InputTemplate": "<instance> is in state \"<status>\"" } The InputTemplate can also be valid JSON with varibles in quotes or out, as in the following example: "InputTransformer": { "InputPathsMap": {"instance": "$.detail.instance","status": "$.detail.status"}, "InputTemplate": '{"myInstance": <instance>,"myStatus": "<instance> is in state \"<status>\""}' } + */ + InputTemplate: TransformerInput; + } + export type InputTransformerPathKey = string; + export type Integer = number; + export interface KinesisParameters { + /** + * The JSON path to be extracted from the event and used as the partition key. For more information, see Amazon Kinesis Streams Key Concepts in the Amazon Kinesis Streams Developer Guide. + */ + PartitionKeyPath: TargetPartitionKeyPath; + } + export type LaunchType = "EC2"|"FARGATE"|string; + export type LimitMax100 = number; + export type LimitMin1 = number; + export interface ListApiDestinationsRequest { + /** + * A name prefix to filter results returned. Only API destinations with a name that starts with the prefix are returned. + */ + NamePrefix?: ApiDestinationName; + /** + * The ARN of the connection specified for the API destination. + */ + ConnectionArn?: ConnectionArn; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of API destinations to include in the response. + */ + Limit?: LimitMax100; + } + export interface ListApiDestinationsResponse { + /** + * An array of ApiDestination objects that include information about an API destination. + */ + ApiDestinations?: ApiDestinationResponseList; + /** + * A token you can use in a subsequent request to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListArchivesRequest { + /** + * A name prefix to filter the archives returned. Only archives with name that match the prefix are returned. + */ + NamePrefix?: ArchiveName; + /** + * The ARN of the event source associated with the archive. + */ + EventSourceArn?: Arn; + /** + * The state of the archive. + */ + State?: ArchiveState; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return. + */ + Limit?: LimitMax100; + } + export interface ListArchivesResponse { + /** + * An array of Archive objects that include details about an archive. + */ + Archives?: ArchiveResponseList; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListConnectionsRequest { + /** + * A name prefix to filter results returned. Only connections with a name that starts with the prefix are returned. + */ + NamePrefix?: ConnectionName; + /** + * The state of the connection. + */ + ConnectionState?: ConnectionState; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of connections to return. + */ + Limit?: LimitMax100; + } + export interface ListConnectionsResponse { + /** + * An array of connections objects that include details about the connections. + */ + Connections?: ConnectionResponseList; + /** + * A token you can use in a subsequent request to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListEventBusesRequest { + /** + * Specifying this limits the results to only those event buses with names that start with the specified prefix. + */ + NamePrefix?: EventBusName; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results. + */ + Limit?: LimitMax100; + } + export interface ListEventBusesResponse { + /** + * This list of event buses. + */ + EventBuses?: EventBusList; + /** + * A token you can use in a subsequent operation to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListEventSourcesRequest { + /** + * Specifying this limits the results to only those partner event sources with names that start with the specified prefix. + */ + NamePrefix?: EventSourceNamePrefix; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results. + */ + Limit?: LimitMax100; + } + export interface ListEventSourcesResponse { + /** + * The list of event sources. + */ + EventSources?: EventSourceList; + /** + * A token you can use in a subsequent operation to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListPartnerEventSourceAccountsRequest { + /** + * The name of the partner event source to display account information about. + */ + EventSourceName: EventSourceName; + /** + * The token returned by a previous call to this operation. Specifying this retrieves the next set of results. + */ + NextToken?: NextToken; + /** + * Specifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results. + */ + Limit?: LimitMax100; + } + export interface ListPartnerEventSourceAccountsResponse { + /** + * The list of partner event sources returned by the operation. + */ + PartnerEventSourceAccounts?: PartnerEventSourceAccountList; + /** + * A token you can use in a subsequent operation to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListPartnerEventSourcesRequest { + /** + * If you specify this, the results are limited to only those partner event sources that start with the string you specify. + */ + NamePrefix: PartnerEventSourceNamePrefix; + /** + * The token returned by a previous call to this operation. Specifying this retrieves the next set of results. + */ + NextToken?: NextToken; + /** + * pecifying this limits the number of results returned by this operation. The operation also returns a NextToken which you can use in a subsequent operation to retrieve the next set of results. + */ + Limit?: LimitMax100; + } + export interface ListPartnerEventSourcesResponse { + /** + * The list of partner event sources returned by the operation. + */ + PartnerEventSources?: PartnerEventSourceList; + /** + * A token you can use in a subsequent operation to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListReplaysRequest { + /** + * A name prefix to filter the replays returned. Only replays with name that match the prefix are returned. + */ + NamePrefix?: ReplayName; + /** + * The state of the replay. + */ + State?: ReplayState; + /** + * The ARN of the event source associated with the replay. + */ + EventSourceArn?: Arn; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of replays to retrieve. + */ + Limit?: LimitMax100; + } + export interface ListReplaysResponse { + /** + * An array of Replay objects that contain information about the replay. + */ + Replays?: ReplayList; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + } + export interface ListRuleNamesByTargetRequest { + /** + * The Amazon Resource Name (ARN) of the target resource. + */ + TargetArn: TargetArn; + /** + * The name or ARN of the event bus to list rules for. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return. + */ + Limit?: LimitMax100; + } + export interface ListRuleNamesByTargetResponse { + /** + * The names of the rules that can invoke the given target. + */ + RuleNames?: RuleNameList; + /** + * Indicates whether there are additional results to retrieve. If there are no more results, the value is null. + */ + NextToken?: NextToken; + } + export interface ListRulesRequest { + /** + * The prefix matching the rule name. + */ + NamePrefix?: RuleName; + /** + * The name or ARN of the event bus to list the rules for. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return. + */ + Limit?: LimitMax100; + } + export interface ListRulesResponse { + /** + * The rules that match the specified criteria. + */ + Rules?: RuleResponseList; + /** + * Indicates whether there are additional results to retrieve. If there are no more results, the value is null. + */ + NextToken?: NextToken; + } + export interface ListTagsForResourceRequest { + /** + * The ARN of the EventBridge resource for which you want to view tags. + */ + ResourceARN: Arn; + } + export interface ListTagsForResourceResponse { + /** + * The list of tag keys and values associated with the resource you specified + */ + Tags?: TagList; + } + export interface ListTargetsByRuleRequest { + /** + * The name of the rule. + */ + Rule: RuleName; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + /** + * The token returned by a previous call to retrieve the next set of results. + */ + NextToken?: NextToken; + /** + * The maximum number of results to return. + */ + Limit?: LimitMax100; + } + export interface ListTargetsByRuleResponse { + /** + * The targets assigned to the rule. + */ + Targets?: TargetList; + /** + * Indicates whether there are additional results to retrieve. If there are no more results, the value is null. + */ + NextToken?: NextToken; + } + export type Long = number; + export type ManagedBy = string; + export type MaximumEventAgeInSeconds = number; + export type MaximumRetryAttempts = number; + export type MessageGroupId = string; + export interface NetworkConfiguration { + /** + * Use this structure to specify the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode. + */ + awsvpcConfiguration?: AwsVpcConfiguration; + } + export type NextToken = string; + export type NonPartnerEventBusName = string; + export type NonPartnerEventBusNameOrArn = string; + export interface PartnerEventSource { + /** + * The ARN of the partner event source. + */ + Arn?: String; + /** + * The name of the partner event source. + */ + Name?: String; + } + export interface PartnerEventSourceAccount { + /** + * The AWS account ID that the partner event source was offered to. + */ + Account?: AccountId; + /** + * The date and time the event source was created. + */ + CreationTime?: Timestamp; + /** + * The date and time that the event source will expire, if the AWS account doesn't create a matching event bus for it. + */ + ExpirationTime?: Timestamp; + /** + * The state of the event source. If it is ACTIVE, you have already created a matching event bus for this event source, and that event bus is active. If it is PENDING, either you haven't yet created a matching event bus, or that event bus is deactivated. If it is DELETED, you have created a matching event bus, but the event source has since been deleted. + */ + State?: EventSourceState; + } + export type PartnerEventSourceAccountList = PartnerEventSourceAccount[]; + export type PartnerEventSourceList = PartnerEventSource[]; + export type PartnerEventSourceNamePrefix = string; + export type PathParameter = string; + export type PathParameterList = PathParameter[]; + export type Principal = string; + export interface PutEventsRequest { + /** + * The entry that defines an event in your system. You can specify several parameters for the entry such as the source and type of the event, resources associated with the event, and so on. + */ + Entries: PutEventsRequestEntryList; + } + export interface PutEventsRequestEntry { + /** + * The time stamp of the event, per RFC3339. If no time stamp is provided, the time stamp of the PutEvents call is used. + */ + Time?: EventTime; + /** + * The source of the event. + */ + Source?: String; + /** + * AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present. + */ + Resources?: EventResourceList; + /** + * Free-form string used to decide what fields to expect in the event detail. + */ + DetailType?: String; + /** + * A valid JSON string. There is no other schema imposed. The JSON string may contain fields and nested subobjects. + */ + Detail?: String; + /** + * The name or ARN of the event bus to receive the event. Only the rules that are associated with this event bus are used to match the event. If you omit this, the default event bus is used. + */ + EventBusName?: NonPartnerEventBusNameOrArn; + /** + * An AWS X-Ray trade header, which is an http header (X-Amzn-Trace-Id) that contains the trace-id associated with the event. To learn more about X-Ray trace headers, see Tracing header in the AWS X-Ray Developer Guide. + */ + TraceHeader?: TraceHeader; + } + export type PutEventsRequestEntryList = PutEventsRequestEntry[]; + export interface PutEventsResponse { + /** + * The number of failed entries. + */ + FailedEntryCount?: Integer; + /** + * The successfully and unsuccessfully ingested events results. If the ingestion was successful, the entry has the event ID in it. Otherwise, you can use the error code and error message to identify the problem with the entry. + */ + Entries?: PutEventsResultEntryList; + } + export interface PutEventsResultEntry { + /** + * The ID of the event. + */ + EventId?: EventId; + /** + * The error code that indicates why the event submission failed. + */ + ErrorCode?: ErrorCode; + /** + * The error message that explains why the event submission failed. + */ + ErrorMessage?: ErrorMessage; + } + export type PutEventsResultEntryList = PutEventsResultEntry[]; + export interface PutPartnerEventsRequest { + /** + * The list of events to write to the event bus. + */ + Entries: PutPartnerEventsRequestEntryList; + } + export interface PutPartnerEventsRequestEntry { + /** + * The date and time of the event. + */ + Time?: EventTime; + /** + * The event source that is generating the evntry. + */ + Source?: EventSourceName; + /** + * AWS resources, identified by Amazon Resource Name (ARN), which the event primarily concerns. Any number, including zero, may be present. + */ + Resources?: EventResourceList; + /** + * A free-form string used to decide what fields to expect in the event detail. + */ + DetailType?: String; + /** + * A valid JSON string. There is no other schema imposed. The JSON string may contain fields and nested subobjects. + */ + Detail?: String; + } + export type PutPartnerEventsRequestEntryList = PutPartnerEventsRequestEntry[]; + export interface PutPartnerEventsResponse { + /** + * The number of events from this operation that could not be written to the partner event bus. + */ + FailedEntryCount?: Integer; + /** + * The list of events from this operation that were successfully written to the partner event bus. + */ + Entries?: PutPartnerEventsResultEntryList; + } + export interface PutPartnerEventsResultEntry { + /** + * The ID of the event. + */ + EventId?: EventId; + /** + * The error code that indicates why the event submission failed. + */ + ErrorCode?: ErrorCode; + /** + * The error message that explains why the event submission failed. + */ + ErrorMessage?: ErrorMessage; + } + export type PutPartnerEventsResultEntryList = PutPartnerEventsResultEntry[]; + export interface PutPermissionRequest { + /** + * The name of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: NonPartnerEventBusName; + /** + * The action that you are enabling the other account to perform. Currently, this must be events:PutEvents. + */ + Action?: Action; + /** + * The 12-digit AWS account ID that you are permitting to put events to your default event bus. Specify "*" to permit any account to put events to your default event bus. If you specify "*" without specifying Condition, avoid creating rules that may match undesirable events. To create more secure rules, make sure that the event pattern for each rule contains an account field with a specific account ID from which to receive events. Rules with an account field do not match any events sent from other accounts. + */ + Principal?: Principal; + /** + * An identifier string for the external account that you are granting permissions to. If you later want to revoke the permission for this external account, specify this StatementId when you run RemovePermission. + */ + StatementId?: StatementId; + /** + * This parameter enables you to limit the permission to accounts that fulfill a certain condition, such as being a member of a certain AWS organization. For more information about AWS Organizations, see What Is AWS Organizations in the AWS Organizations User Guide. If you specify Condition with an AWS organization ID, and specify "*" as the value for Principal, you grant permission to all the accounts in the named organization. The Condition is a JSON string which must contain Type, Key, and Value fields. + */ + Condition?: Condition; + /** + * A JSON string that describes the permission policy statement. You can include a Policy parameter in the request instead of using the StatementId, Action, Principal, or Condition parameters. + */ + Policy?: String; + } + export interface PutRuleRequest { + /** + * The name of the rule that you are creating or updating. + */ + Name: RuleName; + /** + * The scheduling expression. For example, "cron(0 20 * * ? *)" or "rate(5 minutes)". + */ + ScheduleExpression?: ScheduleExpression; + /** + * The event pattern. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide. + */ + EventPattern?: EventPattern; + /** + * Indicates whether the rule is enabled or disabled. + */ + State?: RuleState; + /** + * A description of the rule. + */ + Description?: RuleDescription; + /** + * The Amazon Resource Name (ARN) of the IAM role associated with the rule. + */ + RoleArn?: RoleArn; + /** + * The list of key-value pairs to associate with the rule. + */ + Tags?: TagList; + /** + * The name or ARN of the event bus to associate with this rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + } + export interface PutRuleResponse { + /** + * The Amazon Resource Name (ARN) of the rule. + */ + RuleArn?: RuleArn; + } + export interface PutTargetsRequest { + /** + * The name of the rule. + */ + Rule: RuleName; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + /** + * The targets to update or add to the rule. + */ + Targets: TargetList; + } + export interface PutTargetsResponse { + /** + * The number of failed entries. + */ + FailedEntryCount?: Integer; + /** + * The failed target entries. + */ + FailedEntries?: PutTargetsResultEntryList; + } + export interface PutTargetsResultEntry { + /** + * The ID of the target. + */ + TargetId?: TargetId; + /** + * The error code that indicates why the target addition failed. If the value is ConcurrentModificationException, too many requests were made at the same time. + */ + ErrorCode?: ErrorCode; + /** + * The error message that explains why the target addition failed. + */ + ErrorMessage?: ErrorMessage; + } + export type PutTargetsResultEntryList = PutTargetsResultEntry[]; + export type QueryStringKey = string; + export type QueryStringParametersMap = {[key: string]: QueryStringValue}; + export type QueryStringValue = string; + export interface RedshiftDataParameters { + /** + * The name or ARN of the secret that enables access to the database. Required when authenticating using AWS Secrets Manager. + */ + SecretManagerArn?: RedshiftSecretManagerArn; + /** + * The name of the database. Required when authenticating using temporary credentials. + */ + Database: Database; + /** + * The database user name. Required when authenticating using temporary credentials. + */ + DbUser?: DbUser; + /** + * The SQL statement text to run. + */ + Sql: Sql; + /** + * The name of the SQL statement. You can name the SQL statement when you create it to identify the query. + */ + StatementName?: StatementName; + /** + * Indicates whether to send an event back to EventBridge after the SQL statement runs. + */ + WithEvent?: Boolean; + } + export type RedshiftSecretManagerArn = string; + export interface RemovePermissionRequest { + /** + * The statement ID corresponding to the account that is no longer allowed to put events to the default event bus. + */ + StatementId?: StatementId; + /** + * Specifies whether to remove all permissions. + */ + RemoveAllPermissions?: Boolean; + /** + * The name of the event bus to revoke permissions for. If you omit this, the default event bus is used. + */ + EventBusName?: NonPartnerEventBusName; + } + export interface RemoveTargetsRequest { + /** + * The name of the rule. + */ + Rule: RuleName; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusNameOrArn; + /** + * The IDs of the targets to remove from the rule. + */ + Ids: TargetIdList; + /** + * If this is a managed rule, created by an AWS service on your behalf, you must specify Force as True to remove targets. This parameter is ignored for rules that are not managed rules. You can check whether a rule is a managed rule by using DescribeRule or ListRules and checking the ManagedBy field of the response. + */ + Force?: Boolean; + } + export interface RemoveTargetsResponse { + /** + * The number of failed entries. + */ + FailedEntryCount?: Integer; + /** + * The failed target entries. + */ + FailedEntries?: RemoveTargetsResultEntryList; + } + export interface RemoveTargetsResultEntry { + /** + * The ID of the target. + */ + TargetId?: TargetId; + /** + * The error code that indicates why the target removal failed. If the value is ConcurrentModificationException, too many requests were made at the same time. + */ + ErrorCode?: ErrorCode; + /** + * The error message that explains why the target removal failed. + */ + ErrorMessage?: ErrorMessage; + } + export type RemoveTargetsResultEntryList = RemoveTargetsResultEntry[]; + export interface Replay { + /** + * The name of the replay. + */ + ReplayName?: ReplayName; + /** + * The ARN of the archive to replay event from. + */ + EventSourceArn?: Arn; + /** + * The current state of the replay. + */ + State?: ReplayState; + /** + * A description of why the replay is in the current state. + */ + StateReason?: ReplayStateReason; + /** + * A time stamp for the time to start replaying events. This is determined by the time in the event as described in Time. + */ + EventStartTime?: Timestamp; + /** + * A time stamp for the time to start replaying events. Any event with a creation time prior to the EventEndTime specified is replayed. + */ + EventEndTime?: Timestamp; + /** + * A time stamp for the time that the last event was replayed. + */ + EventLastReplayedTime?: Timestamp; + /** + * A time stamp for the time that the replay started. + */ + ReplayStartTime?: Timestamp; + /** + * A time stamp for the time that the replay completed. + */ + ReplayEndTime?: Timestamp; + } + export type ReplayArn = string; + export type ReplayDescription = string; + export interface ReplayDestination { + /** + * The ARN of the event bus to replay event to. You can replay events only to the event bus specified to create the archive. + */ + Arn: Arn; + /** + * A list of ARNs for rules to replay events to. + */ + FilterArns?: ReplayDestinationFilters; + } + export type ReplayDestinationFilters = Arn[]; + export type ReplayList = Replay[]; + export type ReplayName = string; + export type ReplayState = "STARTING"|"RUNNING"|"CANCELLING"|"COMPLETED"|"CANCELLED"|"FAILED"|string; + export type ReplayStateReason = string; + export type ResourceArn = string; + export type RetentionDays = number; + export interface RetryPolicy { + /** + * The maximum number of retry attempts to make before the request fails. Retry attempts continue until either the maximum number of attempts is made or until the duration of the MaximumEventAgeInSeconds is met. + */ + MaximumRetryAttempts?: MaximumRetryAttempts; + /** + * The maximum amount of time, in seconds, to continue to make retry attempts. + */ + MaximumEventAgeInSeconds?: MaximumEventAgeInSeconds; + } + export type RoleArn = string; + export interface Rule { + /** + * The name of the rule. + */ + Name?: RuleName; + /** + * The Amazon Resource Name (ARN) of the rule. + */ + Arn?: RuleArn; + /** + * The event pattern of the rule. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide. + */ + EventPattern?: EventPattern; + /** + * The state of the rule. + */ + State?: RuleState; + /** + * The description of the rule. + */ + Description?: RuleDescription; + /** + * The scheduling expression. For example, "cron(0 20 * * ? *)", "rate(5 minutes)". + */ + ScheduleExpression?: ScheduleExpression; + /** + * The Amazon Resource Name (ARN) of the role that is used for target invocation. + */ + RoleArn?: RoleArn; + /** + * If the rule was created on behalf of your account by an AWS service, this field displays the principal name of the service that created the rule. + */ + ManagedBy?: ManagedBy; + /** + * The name or ARN of the event bus associated with the rule. If you omit this, the default event bus is used. + */ + EventBusName?: EventBusName; + } + export type RuleArn = string; + export type RuleDescription = string; + export type RuleName = string; + export type RuleNameList = RuleName[]; + export type RuleResponseList = Rule[]; + export type RuleState = "ENABLED"|"DISABLED"|string; + export interface RunCommandParameters { + /** + * Currently, we support including only one RunCommandTarget block, which specifies either an array of InstanceIds or a tag. + */ + RunCommandTargets: RunCommandTargets; + } + export interface RunCommandTarget { + /** + * Can be either tag: tag-key or InstanceIds. + */ + Key: RunCommandTargetKey; + /** + * If Key is tag: tag-key, Values is a list of tag values. If Key is InstanceIds, Values is a list of Amazon EC2 instance IDs. + */ + Values: RunCommandTargetValues; + } + export type RunCommandTargetKey = string; + export type RunCommandTargetValue = string; + export type RunCommandTargetValues = RunCommandTargetValue[]; + export type RunCommandTargets = RunCommandTarget[]; + export interface SageMakerPipelineParameter { + /** + * Name of parameter to start execution of a SageMaker Model Building Pipeline. + */ + Name: SageMakerPipelineParameterName; + /** + * Value of parameter to start execution of a SageMaker Model Building Pipeline. + */ + Value: SageMakerPipelineParameterValue; + } + export type SageMakerPipelineParameterList = SageMakerPipelineParameter[]; + export type SageMakerPipelineParameterName = string; + export type SageMakerPipelineParameterValue = string; + export interface SageMakerPipelineParameters { + /** + * List of Parameter names and values for SageMaker Model Building Pipeline execution. + */ + PipelineParameterList?: SageMakerPipelineParameterList; + } + export type ScheduleExpression = string; + export type SecretsManagerSecretArn = string; + export type Sql = string; + export interface SqsParameters { + /** + * The FIFO message group ID to use as the target. + */ + MessageGroupId?: MessageGroupId; + } + export interface StartReplayRequest { + /** + * The name of the replay to start. + */ + ReplayName: ReplayName; + /** + * A description for the replay to start. + */ + Description?: ReplayDescription; + /** + * The ARN of the archive to replay events from. + */ + EventSourceArn: Arn; + /** + * A time stamp for the time to start replaying events. Only events that occurred between the EventStartTime and EventEndTime are replayed. + */ + EventStartTime: Timestamp; + /** + * A time stamp for the time to stop replaying events. Only events that occurred between the EventStartTime and EventEndTime are replayed. + */ + EventEndTime: Timestamp; + /** + * A ReplayDestination object that includes details about the destination for the replay. + */ + Destination: ReplayDestination; + } + export interface StartReplayResponse { + /** + * The ARN of the replay. + */ + ReplayArn?: ReplayArn; + /** + * The state of the replay. + */ + State?: ReplayState; + /** + * The reason that the replay is in the state. + */ + StateReason?: ReplayStateReason; + /** + * The time at which the replay started. + */ + ReplayStartTime?: Timestamp; + } + export type StatementId = string; + export type StatementName = string; + export type String = string; + export type StringList = String[]; + export interface Tag { + /** + * A string you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources. + */ + Key: TagKey; + /** + * The value for the specified tag key. + */ + Value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The ARN of the EventBridge resource that you're adding tags to. + */ + ResourceARN: Arn; + /** + * The list of key-value pairs to associate with the resource. + */ + Tags: TagList; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export interface Target { + /** + * The ID of the target. + */ + Id: TargetId; + /** + * The Amazon Resource Name (ARN) of the target. + */ + Arn: TargetArn; + /** + * The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. If one rule triggers multiple targets, you can use a different IAM role for each target. + */ + RoleArn?: RoleArn; + /** + * Valid JSON text passed to the target. In this case, nothing from the event itself is passed to the target. For more information, see The JavaScript Object Notation (JSON) Data Interchange Format. + */ + Input?: TargetInput; + /** + * The value of the JSONPath that is used for extracting part of the matched event when passing it to the target. You must use JSON dot notation, not bracket notation. For more information about JSON paths, see JSONPath. + */ + InputPath?: TargetInputPath; + /** + * Settings to enable you to provide custom input to a target based on certain event data. You can extract one or more key-value pairs from the event and then use that data to send customized input to the target. + */ + InputTransformer?: InputTransformer; + /** + * The custom parameter you can use to control the shard assignment, when the target is a Kinesis data stream. If you do not include this parameter, the default is to use the eventId as the partition key. + */ + KinesisParameters?: KinesisParameters; + /** + * Parameters used when you are using the rule to invoke Amazon EC2 Run Command. + */ + RunCommandParameters?: RunCommandParameters; + /** + * Contains the Amazon ECS task definition and task count to be used, if the event target is an Amazon ECS task. For more information about Amazon ECS tasks, see Task Definitions in the Amazon EC2 Container Service Developer Guide. + */ + EcsParameters?: EcsParameters; + /** + * If the event target is an AWS Batch job, this contains the job definition, job name, and other parameters. For more information, see Jobs in the AWS Batch User Guide. + */ + BatchParameters?: BatchParameters; + /** + * Contains the message group ID to use when the target is a FIFO queue. If you specify an SQS FIFO queue as a target, the queue must have content-based deduplication enabled. + */ + SqsParameters?: SqsParameters; + /** + * Contains the HTTP parameters to use when the target is a API Gateway REST endpoint or EventBridge ApiDestination. If you specify an API Gateway REST API or EventBridge ApiDestination as a target, you can use this parameter to specify headers, path parameters, and query string keys/values as part of your target invoking request. If you're using ApiDestinations, the corresponding Connection can also have these values configured. In case of any conflicting keys, values from the Connection take precedence. + */ + HttpParameters?: HttpParameters; + /** + * Contains the Redshift Data API parameters to use when the target is a Redshift cluster. If you specify a Redshift Cluster as a Target, you can use this to specify parameters to invoke the Redshift Data API ExecuteStatement based on EventBridge events. + */ + RedshiftDataParameters?: RedshiftDataParameters; + /** + * Contains the SageMaker Model Building Pipeline parameters to start execution of a SageMaker Model Building Pipeline. If you specify a SageMaker Model Building Pipeline as a target, you can use this to specify parameters to start a pipeline execution based on EventBridge events. + */ + SageMakerPipelineParameters?: SageMakerPipelineParameters; + /** + * The DeadLetterConfig that defines the target queue to send dead-letter queue events to. + */ + DeadLetterConfig?: DeadLetterConfig; + /** + * The RetryPolicy object that contains the retry policy configuration to use for the dead-letter queue. + */ + RetryPolicy?: RetryPolicy; + } + export type TargetArn = string; + export type TargetId = string; + export type TargetIdList = TargetId[]; + export type TargetInput = string; + export type TargetInputPath = string; + export type TargetList = Target[]; + export type TargetPartitionKeyPath = string; + export interface TestEventPatternRequest { + /** + * The event pattern. For more information, see Events and Event Patterns in the Amazon EventBridge User Guide. + */ + EventPattern: EventPattern; + /** + * The event, in JSON format, to test against the event pattern. The JSON must follow the format specified in AWS Events, and the following fields are mandatory: id account source time region resources detail-type + */ + Event: String; + } + export interface TestEventPatternResponse { + /** + * Indicates whether the event matches the event pattern. + */ + Result?: Boolean; + } + export type Timestamp = Date; + export type TraceHeader = string; + export type TransformerInput = string; + export type TransformerPaths = {[key: string]: TargetInputPath}; + export interface UntagResourceRequest { + /** + * The ARN of the EventBridge resource from which you are removing tags. + */ + ResourceARN: Arn; + /** + * The list of tag keys to remove from the resource. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export interface UpdateApiDestinationRequest { + /** + * The name of the API destination to update. + */ + Name: ApiDestinationName; + /** + * The name of the API destination to update. + */ + Description?: ApiDestinationDescription; + /** + * The ARN of the connection to use for the API destination. + */ + ConnectionArn?: ConnectionArn; + /** + * The URL to the endpoint to use for the API destination. + */ + InvocationEndpoint?: HttpsEndpoint; + /** + * The method to use for the API destination. + */ + HttpMethod?: ApiDestinationHttpMethod; + /** + * The maximum number of invocations per second to send to the API destination. + */ + InvocationRateLimitPerSecond?: ApiDestinationInvocationRateLimitPerSecond; + } + export interface UpdateApiDestinationResponse { + /** + * The ARN of the API destination that was updated. + */ + ApiDestinationArn?: ApiDestinationArn; + /** + * The state of the API destination that was updated. + */ + ApiDestinationState?: ApiDestinationState; + /** + * A time stamp for the time that the API destination was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the API destination was last modified. + */ + LastModifiedTime?: Timestamp; + } + export interface UpdateArchiveRequest { + /** + * The name of the archive to update. + */ + ArchiveName: ArchiveName; + /** + * The description for the archive. + */ + Description?: ArchiveDescription; + /** + * The event pattern to use to filter events sent to the archive. + */ + EventPattern?: EventPattern; + /** + * The number of days to retain events in the archive. + */ + RetentionDays?: RetentionDays; + } + export interface UpdateArchiveResponse { + /** + * The ARN of the archive. + */ + ArchiveArn?: ArchiveArn; + /** + * The state of the archive. + */ + State?: ArchiveState; + /** + * The reason that the archive is in the current state. + */ + StateReason?: ArchiveStateReason; + /** + * The time at which the archive was updated. + */ + CreationTime?: Timestamp; + } + export interface UpdateConnectionApiKeyAuthRequestParameters { + /** + * The name of the API key to use for authorization. + */ + ApiKeyName?: AuthHeaderParameters; + /** + * The value associated with teh API key to use for authorization. + */ + ApiKeyValue?: AuthHeaderParameters; + } + export interface UpdateConnectionAuthRequestParameters { + /** + * A UpdateConnectionBasicAuthRequestParameters object that contains the authorization parameters for Basic authorization. + */ + BasicAuthParameters?: UpdateConnectionBasicAuthRequestParameters; + /** + * A UpdateConnectionOAuthRequestParameters object that contains the authorization parameters for OAuth authorization. + */ + OAuthParameters?: UpdateConnectionOAuthRequestParameters; + /** + * A UpdateConnectionApiKeyAuthRequestParameters object that contains the authorization parameters for API key authorization. + */ + ApiKeyAuthParameters?: UpdateConnectionApiKeyAuthRequestParameters; + /** + * A ConnectionHttpParameters object that contains the additional parameters to use for the connection. + */ + InvocationHttpParameters?: ConnectionHttpParameters; + } + export interface UpdateConnectionBasicAuthRequestParameters { + /** + * The user name to use for Basic authorization. + */ + Username?: AuthHeaderParameters; + /** + * The password associated with the user name to use for Basic authorization. + */ + Password?: AuthHeaderParameters; + } + export interface UpdateConnectionOAuthClientRequestParameters { + /** + * The client ID to use for OAuth authorization. + */ + ClientID?: AuthHeaderParameters; + /** + * The client secret assciated with the client ID to use for OAuth authorization. + */ + ClientSecret?: AuthHeaderParameters; + } + export interface UpdateConnectionOAuthRequestParameters { + /** + * A UpdateConnectionOAuthClientRequestParameters object that contains the client parameters to use for the connection when OAuth is specified as the authorization type. + */ + ClientParameters?: UpdateConnectionOAuthClientRequestParameters; + /** + * The URL to the authorization endpoint when OAuth is specified as the authorization type. + */ + AuthorizationEndpoint?: HttpsEndpoint; + /** + * The method used to connect to the HTTP endpoint. + */ + HttpMethod?: ConnectionOAuthHttpMethod; + /** + * The additional HTTP parameters used for the OAuth authorization request. + */ + OAuthHttpParameters?: ConnectionHttpParameters; + } + export interface UpdateConnectionRequest { + /** + * The name of the connection to update. + */ + Name: ConnectionName; + /** + * A description for the connection. + */ + Description?: ConnectionDescription; + /** + * The type of authorization to use for the connection. + */ + AuthorizationType?: ConnectionAuthorizationType; + /** + * The authorization parameters to use for the connection. + */ + AuthParameters?: UpdateConnectionAuthRequestParameters; + } + export interface UpdateConnectionResponse { + /** + * The ARN of the connection that was updated. + */ + ConnectionArn?: ConnectionArn; + /** + * The state of the connection that was updated. + */ + ConnectionState?: ConnectionState; + /** + * A time stamp for the time that the connection was created. + */ + CreationTime?: Timestamp; + /** + * A time stamp for the time that the connection was last modified. + */ + LastModifiedTime?: Timestamp; + /** + * A time stamp for the time that the connection was last authorized. + */ + LastAuthorizedTime?: Timestamp; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2014-02-03"|"2015-10-07"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudWatchEvents client. + */ + export import Types = CloudWatchEvents; +} +export = CloudWatchEvents; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchevents.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchevents.js new file mode 100644 index 0000000000000000000000000000000000000000..72ea0c72cd480309331aba0196140166a9072e4a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchevents.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudwatchevents'] = {}; +AWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']); +Object.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', { + get: function get() { + var model = require('../apis/events-2015-10-07.min.json'); + model.paginators = require('../apis/events-2015-10-07.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudWatchEvents; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchlogs.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchlogs.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..e95043f63d3860ce271c51546641633fa54d94c8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchlogs.d.ts @@ -0,0 +1,1586 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CloudWatchLogs extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CloudWatchLogs.Types.ClientConfiguration) + config: Config & CloudWatchLogs.Types.ClientConfiguration; + /** + * Associates the specified AWS Key Management Service (AWS KMS) customer master key (CMK) with the specified log group. Associating an AWS KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. CloudWatch Logs supports only symmetric CMKs. Do not use an associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys. It can take up to 5 minutes for this operation to take effect. If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error. + */ + associateKmsKey(params: CloudWatchLogs.Types.AssociateKmsKeyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Associates the specified AWS Key Management Service (AWS KMS) customer master key (CMK) with the specified log group. Associating an AWS KMS CMK with a log group overrides any existing associations between the log group and a CMK. After a CMK is associated with a log group, all newly ingested data for the log group is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. CloudWatch Logs supports only symmetric CMKs. Do not use an associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys. It can take up to 5 minutes for this operation to take effect. If you attempt to associate a CMK with a log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error. + */ + associateKmsKey(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Cancels the specified export task. The task must be in the PENDING or RUNNING state. + */ + cancelExportTask(params: CloudWatchLogs.Types.CancelExportTaskRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Cancels the specified export task. The task must be in the PENDING or RUNNING state. + */ + cancelExportTask(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination. This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask. You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects. Exporting to S3 buckets that are encrypted with AES-256 is supported. Exporting to S3 buckets encrypted with SSE-KMS is not supported. + */ + createExportTask(params: CloudWatchLogs.Types.CreateExportTaskRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.CreateExportTaskResponse) => void): Request; + /** + * Creates an export task, which allows you to efficiently export data from a log group to an Amazon S3 bucket. When you perform a CreateExportTask operation, you must use credentials that have permission to write to the S3 bucket that you specify as the destination. This is an asynchronous call. If all the required information is provided, this operation initiates an export task and responds with the ID of the task. After the task has started, you can use DescribeExportTasks to get the status of the export task. Each account can only have one active (RUNNING or PENDING) export task at a time. To cancel an export task, use CancelExportTask. You can export logs from multiple log groups or multiple time ranges to the same S3 bucket. To separate out log data for each export task, you can specify a prefix to be used as the Amazon S3 key prefix for all exported objects. Exporting to S3 buckets that are encrypted with AES-256 is supported. Exporting to S3 buckets encrypted with SSE-KMS is not supported. + */ + createExportTask(callback?: (err: AWSError, data: CloudWatchLogs.Types.CreateExportTaskResponse) => void): Request; + /** + * Creates a log group with the specified name. You can create up to 20,000 log groups per account. You must use the following guidelines when naming a log group: Log group names must be unique within a region for an AWS account. Log group names can be between 1 and 512 characters long. Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign) When you create a log group, by default the log events in the log group never expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy. If you associate a AWS Key Management Service (AWS KMS) customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error. CloudWatch Logs supports only symmetric CMKs. Do not associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys. + */ + createLogGroup(params: CloudWatchLogs.Types.CreateLogGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a log group with the specified name. You can create up to 20,000 log groups per account. You must use the following guidelines when naming a log group: Log group names must be unique within a region for an AWS account. Log group names can be between 1 and 512 characters long. Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), '.' (period), and '#' (number sign) When you create a log group, by default the log events in the log group never expire. To set a retention policy so that events expire and are deleted after a specified time, use PutRetentionPolicy. If you associate a AWS Key Management Service (AWS KMS) customer master key (CMK) with the log group, ingested data is encrypted using the CMK. This association is stored as long as the data encrypted with the CMK is still within Amazon CloudWatch Logs. This enables Amazon CloudWatch Logs to decrypt this data whenever it is requested. If you attempt to associate a CMK with the log group but the CMK does not exist or the CMK is disabled, you receive an InvalidParameterException error. CloudWatch Logs supports only symmetric CMKs. Do not associate an asymmetric CMK with your log group. For more information, see Using Symmetric and Asymmetric Keys. + */ + createLogGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored. There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on CreateLogStream operations, after which transactions are throttled. You must use the following guidelines when naming a log stream: Log stream names must be unique within the log group. Log stream names can be between 1 and 512 characters long. The ':' (colon) and '*' (asterisk) characters are not allowed. + */ + createLogStream(params: CloudWatchLogs.Types.CreateLogStreamRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a log stream for the specified log group. A log stream is a sequence of log events that originate from a single source, such as an application instance or a resource that is being monitored. There is no limit on the number of log streams that you can create for a log group. There is a limit of 50 TPS on CreateLogStream operations, after which transactions are throttled. You must use the following guidelines when naming a log stream: Log stream names must be unique within the log group. Log stream names can be between 1 and 512 characters long. The ':' (colon) and '*' (asterisk) characters are not allowed. + */ + createLogStream(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination. + */ + deleteDestination(params: CloudWatchLogs.Types.DeleteDestinationRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified destination, and eventually disables all the subscription filters that publish to it. This operation does not delete the physical resource encapsulated by the destination. + */ + deleteDestination(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified log group and permanently deletes all the archived log events associated with the log group. + */ + deleteLogGroup(params: CloudWatchLogs.Types.DeleteLogGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified log group and permanently deletes all the archived log events associated with the log group. + */ + deleteLogGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified log stream and permanently deletes all the archived log events associated with the log stream. + */ + deleteLogStream(params: CloudWatchLogs.Types.DeleteLogStreamRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified log stream and permanently deletes all the archived log events associated with the log stream. + */ + deleteLogStream(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified metric filter. + */ + deleteMetricFilter(params: CloudWatchLogs.Types.DeleteMetricFilterRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified metric filter. + */ + deleteMetricFilter(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a saved CloudWatch Logs Insights query definition. A query definition contains details about a saved CloudWatch Logs Insights query. Each DeleteQueryDefinition operation can delete one query definition. You must have the logs:DeleteQueryDefinition permission to be able to perform this operation. + */ + deleteQueryDefinition(params: CloudWatchLogs.Types.DeleteQueryDefinitionRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DeleteQueryDefinitionResponse) => void): Request; + /** + * Deletes a saved CloudWatch Logs Insights query definition. A query definition contains details about a saved CloudWatch Logs Insights query. Each DeleteQueryDefinition operation can delete one query definition. You must have the logs:DeleteQueryDefinition permission to be able to perform this operation. + */ + deleteQueryDefinition(callback?: (err: AWSError, data: CloudWatchLogs.Types.DeleteQueryDefinitionResponse) => void): Request; + /** + * Deletes a resource policy from this account. This revokes the access of the identities in that policy to put log events to this account. + */ + deleteResourcePolicy(params: CloudWatchLogs.Types.DeleteResourcePolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a resource policy from this account. This revokes the access of the identities in that policy to put log events to this account. + */ + deleteResourcePolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified retention policy. Log events do not expire if they belong to log groups without a retention policy. + */ + deleteRetentionPolicy(params: CloudWatchLogs.Types.DeleteRetentionPolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified retention policy. Log events do not expire if they belong to log groups without a retention policy. + */ + deleteRetentionPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified subscription filter. + */ + deleteSubscriptionFilter(params: CloudWatchLogs.Types.DeleteSubscriptionFilterRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes the specified subscription filter. + */ + deleteSubscriptionFilter(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Lists all your destinations. The results are ASCII-sorted by destination name. + */ + describeDestinations(params: CloudWatchLogs.Types.DescribeDestinationsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeDestinationsResponse) => void): Request; + /** + * Lists all your destinations. The results are ASCII-sorted by destination name. + */ + describeDestinations(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeDestinationsResponse) => void): Request; + /** + * Lists the specified export tasks. You can list all your export tasks or filter the results based on task ID or task status. + */ + describeExportTasks(params: CloudWatchLogs.Types.DescribeExportTasksRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeExportTasksResponse) => void): Request; + /** + * Lists the specified export tasks. You can list all your export tasks or filter the results based on task ID or task status. + */ + describeExportTasks(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeExportTasksResponse) => void): Request; + /** + * Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name. + */ + describeLogGroups(params: CloudWatchLogs.Types.DescribeLogGroupsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeLogGroupsResponse) => void): Request; + /** + * Lists the specified log groups. You can list all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name. + */ + describeLogGroups(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeLogGroupsResponse) => void): Request; + /** + * Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. This operation has a limit of five transactions per second, after which transactions are throttled. + */ + describeLogStreams(params: CloudWatchLogs.Types.DescribeLogStreamsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeLogStreamsResponse) => void): Request; + /** + * Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered. This operation has a limit of five transactions per second, after which transactions are throttled. + */ + describeLogStreams(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeLogStreamsResponse) => void): Request; + /** + * Lists the specified metric filters. You can list all of the metric filters or filter the results by log name, prefix, metric name, or metric namespace. The results are ASCII-sorted by filter name. + */ + describeMetricFilters(params: CloudWatchLogs.Types.DescribeMetricFiltersRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeMetricFiltersResponse) => void): Request; + /** + * Lists the specified metric filters. You can list all of the metric filters or filter the results by log name, prefix, metric name, or metric namespace. The results are ASCII-sorted by filter name. + */ + describeMetricFilters(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeMetricFiltersResponse) => void): Request; + /** + * Returns a list of CloudWatch Logs Insights queries that are scheduled, executing, or have been executed recently in this account. You can request all queries or limit it to queries of a specific log group or queries with a certain status. + */ + describeQueries(params: CloudWatchLogs.Types.DescribeQueriesRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeQueriesResponse) => void): Request; + /** + * Returns a list of CloudWatch Logs Insights queries that are scheduled, executing, or have been executed recently in this account. You can request all queries or limit it to queries of a specific log group or queries with a certain status. + */ + describeQueries(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeQueriesResponse) => void): Request; + /** + * This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions. You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string. + */ + describeQueryDefinitions(params: CloudWatchLogs.Types.DescribeQueryDefinitionsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeQueryDefinitionsResponse) => void): Request; + /** + * This operation returns a paginated list of your saved CloudWatch Logs Insights query definitions. You can use the queryDefinitionNamePrefix parameter to limit the results to only the query definitions that have names that start with a certain string. + */ + describeQueryDefinitions(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeQueryDefinitionsResponse) => void): Request; + /** + * Lists the resource policies in this account. + */ + describeResourcePolicies(params: CloudWatchLogs.Types.DescribeResourcePoliciesRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeResourcePoliciesResponse) => void): Request; + /** + * Lists the resource policies in this account. + */ + describeResourcePolicies(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeResourcePoliciesResponse) => void): Request; + /** + * Lists the subscription filters for the specified log group. You can list all the subscription filters or filter the results by prefix. The results are ASCII-sorted by filter name. + */ + describeSubscriptionFilters(params: CloudWatchLogs.Types.DescribeSubscriptionFiltersRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeSubscriptionFiltersResponse) => void): Request; + /** + * Lists the subscription filters for the specified log group. You can list all the subscription filters or filter the results by prefix. The results are ASCII-sorted by filter name. + */ + describeSubscriptionFilters(callback?: (err: AWSError, data: CloudWatchLogs.Types.DescribeSubscriptionFiltersResponse) => void): Request; + /** + * Disassociates the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group. After the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested. Note that it can take up to 5 minutes for this operation to take effect. + */ + disassociateKmsKey(params: CloudWatchLogs.Types.DisassociateKmsKeyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Disassociates the associated AWS Key Management Service (AWS KMS) customer master key (CMK) from the specified log group. After the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever the encrypted data is requested. Note that it can take up to 5 minutes for this operation to take effect. + */ + disassociateKmsKey(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request. + */ + filterLogEvents(params: CloudWatchLogs.Types.FilterLogEventsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.FilterLogEventsResponse) => void): Request; + /** + * Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request. + */ + filterLogEvents(callback?: (err: AWSError, data: CloudWatchLogs.Types.FilterLogEventsResponse) => void): Request; + /** + * Lists log events from the specified log stream. You can list all of the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token. + */ + getLogEvents(params: CloudWatchLogs.Types.GetLogEventsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.GetLogEventsResponse) => void): Request; + /** + * Lists log events from the specified log stream. You can list all of the log events or filter using a time range. By default, this operation returns as many log events as can fit in a response size of 1MB (up to 10,000 log events). You can get additional log events by specifying one of the tokens in a subsequent call. This operation can return empty results while there are more log events available through the token. + */ + getLogEvents(callback?: (err: AWSError, data: CloudWatchLogs.Types.GetLogEventsResponse) => void): Request; + /** + * Returns a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field. The search is limited to a time period that you specify. In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see Supported Logs and Discovered Fields. The response results are sorted by the frequency percentage, starting with the highest percentage. + */ + getLogGroupFields(params: CloudWatchLogs.Types.GetLogGroupFieldsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.GetLogGroupFieldsResponse) => void): Request; + /** + * Returns a list of the fields that are included in log events in the specified log group, along with the percentage of log events that contain each field. The search is limited to a time period that you specify. In the results, fields that start with @ are fields generated by CloudWatch Logs. For example, @timestamp is the timestamp of each log event. For more information about the fields that are generated by CloudWatch logs, see Supported Logs and Discovered Fields. The response results are sorted by the frequency percentage, starting with the highest percentage. + */ + getLogGroupFields(callback?: (err: AWSError, data: CloudWatchLogs.Types.GetLogGroupFieldsResponse) => void): Request; + /** + * Retrieves all of the fields and values of a single log event. All fields are retrieved, even if the original query that produced the logRecordPointer retrieved only a subset of fields. Fields are returned as field name/field value pairs. The full unparsed log event is returned within @message. + */ + getLogRecord(params: CloudWatchLogs.Types.GetLogRecordRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.GetLogRecordResponse) => void): Request; + /** + * Retrieves all of the fields and values of a single log event. All fields are retrieved, even if the original query that produced the logRecordPointer retrieved only a subset of fields. Fields are returned as field name/field value pairs. The full unparsed log event is returned within @message. + */ + getLogRecord(callback?: (err: AWSError, data: CloudWatchLogs.Types.GetLogRecordResponse) => void): Request; + /** + * Returns the results from the specified query. Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record. GetQueryResults does not start a query execution. To run a query, use StartQuery. If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results. + */ + getQueryResults(params: CloudWatchLogs.Types.GetQueryResultsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.GetQueryResultsResponse) => void): Request; + /** + * Returns the results from the specified query. Only the fields requested in the query are returned, along with a @ptr field, which is the identifier for the log record. You can use the value of @ptr in a GetLogRecord operation to get the full log record. GetQueryResults does not start a query execution. To run a query, use StartQuery. If the value of the Status field in the output is Running, this operation returns only partial results. If you see a value of Scheduled or Running for the status, you can retry the operation later to see the final results. + */ + getQueryResults(callback?: (err: AWSError, data: CloudWatchLogs.Types.GetQueryResultsResponse) => void): Request; + /** + * Lists the tags for the specified log group. + */ + listTagsLogGroup(params: CloudWatchLogs.Types.ListTagsLogGroupRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.ListTagsLogGroupResponse) => void): Request; + /** + * Lists the tags for the specified log group. + */ + listTagsLogGroup(callback?: (err: AWSError, data: CloudWatchLogs.Types.ListTagsLogGroupResponse) => void): Request; + /** + * Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions. A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents. Through an access policy, a destination controls what is written to it. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination. To perform a PutDestination operation, you must also have the iam:PassRole permission. + */ + putDestination(params: CloudWatchLogs.Types.PutDestinationRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.PutDestinationResponse) => void): Request; + /** + * Creates or updates a destination. This operation is used only to create destinations for cross-account subscriptions. A destination encapsulates a physical resource (such as an Amazon Kinesis stream) and enables you to subscribe to a real-time stream of log events for a different account, ingested using PutLogEvents. Through an access policy, a destination controls what is written to it. By default, PutDestination does not set any access policy with the destination, which means a cross-account user cannot call PutSubscriptionFilter against this destination. To enable this, the destination owner must call PutDestinationPolicy after PutDestination. To perform a PutDestination operation, you must also have the iam:PassRole permission. + */ + putDestination(callback?: (err: AWSError, data: CloudWatchLogs.Types.PutDestinationResponse) => void): Request; + /** + * Creates or updates an access policy associated with an existing destination. An access policy is an IAM policy document that is used to authorize claims to register a subscription filter against a given destination. If multiple AWS accounts are sending logs to this destination, each sender account must be listed separately in the policy. The policy does not support specifying * as the Principal or the use of the aws:PrincipalOrgId global key. + */ + putDestinationPolicy(params: CloudWatchLogs.Types.PutDestinationPolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates an access policy associated with an existing destination. An access policy is an IAM policy document that is used to authorize claims to register a subscription filter against a given destination. If multiple AWS accounts are sending logs to this destination, each sender account must be listed separately in the policy. The policy does not support specifying * as the Principal or the use of the aws:PrincipalOrgId global key. + */ + putDestinationPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Uploads a batch of log events to the specified log stream. You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the expectedSequenceToken field from InvalidSequenceTokenException. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected. The batch of events must satisfy the following constraints: The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event. None of the log events in the batch can be more than 2 hours in the future. None of the log events in the batch can be older than 14 days or older than the retention period of the log group. The log events in the batch must be in chronological order by their timestamp. The timestamp is the time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. (In AWS Tools for PowerShell and the AWS SDK for .NET, the timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss. For example, 2017-09-15T13:45:30.) A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails. The maximum number of log events in a batch is 10,000. There is a quota of 5 requests per second per log stream. Additional requests are throttled. This quota can't be changed. If a call to PutLogEvents returns "UnrecognizedClientException" the most likely cause is an invalid AWS access key ID or secret key. + */ + putLogEvents(params: CloudWatchLogs.Types.PutLogEventsRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.PutLogEventsResponse) => void): Request; + /** + * Uploads a batch of log events to the specified log stream. You must include the sequence token obtained from the response of the previous call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token in the expectedSequenceToken field from InvalidSequenceTokenException. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected. The batch of events must satisfy the following constraints: The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event. None of the log events in the batch can be more than 2 hours in the future. None of the log events in the batch can be older than 14 days or older than the retention period of the log group. The log events in the batch must be in chronological order by their timestamp. The timestamp is the time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. (In AWS Tools for PowerShell and the AWS SDK for .NET, the timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss. For example, 2017-09-15T13:45:30.) A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails. The maximum number of log events in a batch is 10,000. There is a quota of 5 requests per second per log stream. Additional requests are throttled. This quota can't be changed. If a call to PutLogEvents returns "UnrecognizedClientException" the most likely cause is an invalid AWS access key ID or secret key. + */ + putLogEvents(callback?: (err: AWSError, data: CloudWatchLogs.Types.PutLogEventsResponse) => void): Request; + /** + * Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents. The maximum number of metric filters that can be associated with a log group is 100. When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created. Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated AWS Charges. + */ + putMetricFilter(params: CloudWatchLogs.Types.PutMetricFilterRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a metric filter and associates it with the specified log group. Metric filters allow you to configure rules to extract metric data from log events ingested through PutLogEvents. The maximum number of metric filters that can be associated with a log group is 100. When you create a metric filter, you can also optionally assign a unit and dimensions to the metric that is created. Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated AWS Charges. + */ + putMetricFilter(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a query definition for CloudWatch Logs Insights. For more information, see Analyzing Log Data with CloudWatch Logs Insights. To update a query definition, specify its queryDefinitionId in your request. The values of name, queryString, and logGroupNames are changed to the values that you specify in your update operation. No current values are retained from the current query definition. For example, if you update a current query definition that includes log groups, and you don't specify the logGroupNames parameter in your update operation, the query definition changes to contain no log groups. You must have the logs:PutQueryDefinition permission to be able to perform this operation. + */ + putQueryDefinition(params: CloudWatchLogs.Types.PutQueryDefinitionRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.PutQueryDefinitionResponse) => void): Request; + /** + * Creates or updates a query definition for CloudWatch Logs Insights. For more information, see Analyzing Log Data with CloudWatch Logs Insights. To update a query definition, specify its queryDefinitionId in your request. The values of name, queryString, and logGroupNames are changed to the values that you specify in your update operation. No current values are retained from the current query definition. For example, if you update a current query definition that includes log groups, and you don't specify the logGroupNames parameter in your update operation, the query definition changes to contain no log groups. You must have the logs:PutQueryDefinition permission to be able to perform this operation. + */ + putQueryDefinition(callback?: (err: AWSError, data: CloudWatchLogs.Types.PutQueryDefinitionResponse) => void): Request; + /** + * Creates or updates a resource policy allowing other AWS services to put log events to this account, such as Amazon Route 53. An account can have up to 10 resource policies per AWS Region. + */ + putResourcePolicy(params: CloudWatchLogs.Types.PutResourcePolicyRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.PutResourcePolicyResponse) => void): Request; + /** + * Creates or updates a resource policy allowing other AWS services to put log events to this account, such as Amazon Route 53. An account can have up to 10 resource policies per AWS Region. + */ + putResourcePolicy(callback?: (err: AWSError, data: CloudWatchLogs.Types.PutResourcePolicyResponse) => void): Request; + /** + * Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group. + */ + putRetentionPolicy(params: CloudWatchLogs.Types.PutRetentionPolicyRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets the retention of the specified log group. A retention policy allows you to configure the number of days for which to retain log events in the specified log group. + */ + putRetentionPolicy(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. When log events are sent to the receiving service, they are Base64 encoded and compressed with the gzip format. The following destinations are supported for subscription filters: An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. A logical destination that belongs to a different account, for cross-account delivery. An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery. Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName. To perform a PutSubscriptionFilter operation, you must also have the iam:PassRole permission. + */ + putSubscriptionFilter(params: CloudWatchLogs.Types.PutSubscriptionFilterRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates or updates a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events ingested through PutLogEvents and have them delivered to a specific destination. When log events are sent to the receiving service, they are Base64 encoded and compressed with the gzip format. The following destinations are supported for subscription filters: An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. A logical destination that belongs to a different account, for cross-account delivery. An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. An AWS Lambda function that belongs to the same account as the subscription filter, for same-account delivery. Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName. To perform a PutSubscriptionFilter operation, you must also have the iam:PassRole permission. + */ + putSubscriptionFilter(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see CloudWatch Logs Insights Query Syntax. Queries time out after 15 minutes of execution. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. + */ + startQuery(params: CloudWatchLogs.Types.StartQueryRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.StartQueryResponse) => void): Request; + /** + * Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see CloudWatch Logs Insights Query Syntax. Queries time out after 15 minutes of execution. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. + */ + startQuery(callback?: (err: AWSError, data: CloudWatchLogs.Types.StartQueryResponse) => void): Request; + /** + * Stops a CloudWatch Logs Insights query that is in progress. If the query has already ended, the operation returns an error indicating that the specified query is not running. + */ + stopQuery(params: CloudWatchLogs.Types.StopQueryRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.StopQueryResponse) => void): Request; + /** + * Stops a CloudWatch Logs Insights query that is in progress. If the query has already ended, the operation returns an error indicating that the specified query is not running. + */ + stopQuery(callback?: (err: AWSError, data: CloudWatchLogs.Types.StopQueryResponse) => void): Request; + /** + * Adds or updates the specified tags for the specified log group. To list the tags for a log group, use ListTagsLogGroup. To remove tags, use UntagLogGroup. For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide. + */ + tagLogGroup(params: CloudWatchLogs.Types.TagLogGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds or updates the specified tags for the specified log group. To list the tags for a log group, use ListTagsLogGroup. To remove tags, use UntagLogGroup. For more information about tags, see Tag Log Groups in Amazon CloudWatch Logs in the Amazon CloudWatch Logs User Guide. + */ + tagLogGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern. + */ + testMetricFilter(params: CloudWatchLogs.Types.TestMetricFilterRequest, callback?: (err: AWSError, data: CloudWatchLogs.Types.TestMetricFilterResponse) => void): Request; + /** + * Tests the filter pattern of a metric filter against a sample of log event messages. You can use this operation to validate the correctness of a metric filter pattern. + */ + testMetricFilter(callback?: (err: AWSError, data: CloudWatchLogs.Types.TestMetricFilterResponse) => void): Request; + /** + * Removes the specified tags from the specified log group. To list the tags for a log group, use ListTagsLogGroup. To add tags, use TagLogGroup. + */ + untagLogGroup(params: CloudWatchLogs.Types.UntagLogGroupRequest, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes the specified tags from the specified log group. To list the tags for a log group, use ListTagsLogGroup. To add tags, use TagLogGroup. + */ + untagLogGroup(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; +} +declare namespace CloudWatchLogs { + export type AccessPolicy = string; + export type Arn = string; + export interface AssociateKmsKeyRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. This must be a symmetric CMK. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS) and Using Symmetric and Asymmetric Keys. + */ + kmsKeyId: KmsKeyId; + } + export interface CancelExportTaskRequest { + /** + * The ID of the export task. + */ + taskId: ExportTaskId; + } + export interface CreateExportTaskRequest { + /** + * The name of the export task. + */ + taskName?: ExportTaskName; + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * Export only log streams that match the provided prefix. If you don't specify a value, no prefix filter is applied. + */ + logStreamNamePrefix?: LogStreamName; + /** + * The start time of the range for the request, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp earlier than this time are not exported. + */ + from: Timestamp; + /** + * The end time of the range for the request, expreswatchlogsdocused as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported. + */ + to: Timestamp; + /** + * The name of S3 bucket for the exported log data. The bucket must be in the same AWS region. + */ + destination: ExportDestinationBucket; + /** + * The prefix used as the start of the key for every object exported. If you don't specify a value, the default is exportedlogs. + */ + destinationPrefix?: ExportDestinationPrefix; + } + export interface CreateExportTaskResponse { + /** + * The ID of the export task. + */ + taskId?: ExportTaskId; + } + export interface CreateLogGroupRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. For more information, see Amazon Resource Names - AWS Key Management Service (AWS KMS). + */ + kmsKeyId?: KmsKeyId; + /** + * The key-value pairs to use for the tags. + */ + tags?: Tags; + } + export interface CreateLogStreamRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The name of the log stream. + */ + logStreamName: LogStreamName; + } + export type Days = number; + export type DefaultValue = number; + export interface DeleteDestinationRequest { + /** + * The name of the destination. + */ + destinationName: DestinationName; + } + export interface DeleteLogGroupRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + } + export interface DeleteLogStreamRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The name of the log stream. + */ + logStreamName: LogStreamName; + } + export interface DeleteMetricFilterRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The name of the metric filter. + */ + filterName: FilterName; + } + export interface DeleteQueryDefinitionRequest { + /** + * The ID of the query definition that you want to delete. You can use DescribeQueryDefinitions to retrieve the IDs of your saved query definitions. + */ + queryDefinitionId: QueryId; + } + export interface DeleteQueryDefinitionResponse { + /** + * A value of TRUE indicates that the operation succeeded. FALSE indicates that the operation failed. + */ + success?: Success; + } + export interface DeleteResourcePolicyRequest { + /** + * The name of the policy to be revoked. This parameter is required. + */ + policyName?: PolicyName; + } + export interface DeleteRetentionPolicyRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + } + export interface DeleteSubscriptionFilterRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The name of the subscription filter. + */ + filterName: FilterName; + } + export type Descending = boolean; + export interface DescribeDestinationsRequest { + /** + * The prefix to match. If you don't specify a value, no prefix filter is applied. + */ + DestinationNamePrefix?: DestinationName; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + nextToken?: NextToken; + /** + * The maximum number of items returned. If you don't specify a value, the default is up to 50 items. + */ + limit?: DescribeLimit; + } + export interface DescribeDestinationsResponse { + /** + * The destinations. + */ + destinations?: Destinations; + nextToken?: NextToken; + } + export interface DescribeExportTasksRequest { + /** + * The ID of the export task. Specifying a task ID filters the results to zero or one export tasks. + */ + taskId?: ExportTaskId; + /** + * The status code of the export task. Specifying a status code filters the results to zero or more export tasks. + */ + statusCode?: ExportTaskStatusCode; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + nextToken?: NextToken; + /** + * The maximum number of items returned. If you don't specify a value, the default is up to 50 items. + */ + limit?: DescribeLimit; + } + export interface DescribeExportTasksResponse { + /** + * The export tasks. + */ + exportTasks?: ExportTasks; + nextToken?: NextToken; + } + export type DescribeLimit = number; + export interface DescribeLogGroupsRequest { + /** + * The prefix to match. + */ + logGroupNamePrefix?: LogGroupName; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + nextToken?: NextToken; + /** + * The maximum number of items returned. If you don't specify a value, the default is up to 50 items. + */ + limit?: DescribeLimit; + } + export interface DescribeLogGroupsResponse { + /** + * The log groups. If the retentionInDays value if not included for a log group, then that log group is set to have its events never expire. + */ + logGroups?: LogGroups; + nextToken?: NextToken; + } + export interface DescribeLogStreamsRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The prefix to match. If orderBy is LastEventTime, you cannot specify this parameter. + */ + logStreamNamePrefix?: LogStreamName; + /** + * If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName. If you order the results by event time, you cannot specify the logStreamNamePrefix parameter. lastEventTimestamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTimestamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer. + */ + orderBy?: OrderBy; + /** + * If the value is true, results are returned in descending order. If the value is to false, results are returned in ascending order. The default value is false. + */ + descending?: Descending; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + nextToken?: NextToken; + /** + * The maximum number of items returned. If you don't specify a value, the default is up to 50 items. + */ + limit?: DescribeLimit; + } + export interface DescribeLogStreamsResponse { + /** + * The log streams. + */ + logStreams?: LogStreams; + nextToken?: NextToken; + } + export interface DescribeMetricFiltersRequest { + /** + * The name of the log group. + */ + logGroupName?: LogGroupName; + /** + * The prefix to match. CloudWatch Logs uses the value you set here only if you also include the logGroupName parameter in your request. + */ + filterNamePrefix?: FilterName; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + nextToken?: NextToken; + /** + * The maximum number of items returned. If you don't specify a value, the default is up to 50 items. + */ + limit?: DescribeLimit; + /** + * Filters results to include only those with the specified metric name. If you include this parameter in your request, you must also include the metricNamespace parameter. + */ + metricName?: MetricName; + /** + * Filters results to include only those in the specified namespace. If you include this parameter in your request, you must also include the metricName parameter. + */ + metricNamespace?: MetricNamespace; + } + export interface DescribeMetricFiltersResponse { + /** + * The metric filters. + */ + metricFilters?: MetricFilters; + nextToken?: NextToken; + } + export type DescribeQueriesMaxResults = number; + export interface DescribeQueriesRequest { + /** + * Limits the returned queries to only those for the specified log group. + */ + logGroupName?: LogGroupName; + /** + * Limits the returned queries to only those that have the specified status. Valid values are Cancelled, Complete, Failed, Running, and Scheduled. + */ + status?: QueryStatus; + /** + * Limits the number of returned queries to the specified number. + */ + maxResults?: DescribeQueriesMaxResults; + nextToken?: NextToken; + } + export interface DescribeQueriesResponse { + /** + * The list of queries that match the request. + */ + queries?: QueryInfoList; + nextToken?: NextToken; + } + export interface DescribeQueryDefinitionsRequest { + /** + * Use this parameter to filter your results to only the query definitions that have names that start with the prefix you specify. + */ + queryDefinitionNamePrefix?: QueryDefinitionName; + /** + * Limits the number of returned query definitions to the specified number. + */ + maxResults?: QueryListMaxResults; + nextToken?: NextToken; + } + export interface DescribeQueryDefinitionsResponse { + /** + * The list of query definitions that match your request. + */ + queryDefinitions?: QueryDefinitionList; + nextToken?: NextToken; + } + export interface DescribeResourcePoliciesRequest { + nextToken?: NextToken; + /** + * The maximum number of resource policies to be displayed with one call of this API. + */ + limit?: DescribeLimit; + } + export interface DescribeResourcePoliciesResponse { + /** + * The resource policies that exist in this account. + */ + resourcePolicies?: ResourcePolicies; + nextToken?: NextToken; + } + export interface DescribeSubscriptionFiltersRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The prefix to match. If you don't specify a value, no prefix filter is applied. + */ + filterNamePrefix?: FilterName; + /** + * The token for the next set of items to return. (You received this token from a previous call.) + */ + nextToken?: NextToken; + /** + * The maximum number of items returned. If you don't specify a value, the default is up to 50 items. + */ + limit?: DescribeLimit; + } + export interface DescribeSubscriptionFiltersResponse { + /** + * The subscription filters. + */ + subscriptionFilters?: SubscriptionFilters; + nextToken?: NextToken; + } + export interface Destination { + /** + * The name of the destination. + */ + destinationName?: DestinationName; + /** + * The Amazon Resource Name (ARN) of the physical target where the log events are delivered (for example, a Kinesis stream). + */ + targetArn?: TargetArn; + /** + * A role for impersonation, used when delivering log events to the target. + */ + roleArn?: RoleArn; + /** + * An IAM policy document that governs which AWS accounts can create subscription filters against this destination. + */ + accessPolicy?: AccessPolicy; + /** + * The ARN of this destination. + */ + arn?: Arn; + /** + * The creation time of the destination, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + creationTime?: Timestamp; + } + export type DestinationArn = string; + export type DestinationName = string; + export type Destinations = Destination[]; + export type Dimensions = {[key: string]: DimensionsValue}; + export type DimensionsKey = string; + export type DimensionsValue = string; + export interface DisassociateKmsKeyRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + } + export type Distribution = "Random"|"ByLogStream"|string; + export type EventId = string; + export type EventMessage = string; + export type EventNumber = number; + export type EventsLimit = number; + export type ExportDestinationBucket = string; + export type ExportDestinationPrefix = string; + export interface ExportTask { + /** + * The ID of the export task. + */ + taskId?: ExportTaskId; + /** + * The name of the export task. + */ + taskName?: ExportTaskName; + /** + * The name of the log group from which logs data was exported. + */ + logGroupName?: LogGroupName; + /** + * The start time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not exported. + */ + from?: Timestamp; + /** + * The end time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not exported. + */ + to?: Timestamp; + /** + * The name of the S3 bucket to which the log data was exported. + */ + destination?: ExportDestinationBucket; + /** + * The prefix that was used as the start of Amazon S3 key for every object exported. + */ + destinationPrefix?: ExportDestinationPrefix; + /** + * The status of the export task. + */ + status?: ExportTaskStatus; + /** + * Execution information about the export task. + */ + executionInfo?: ExportTaskExecutionInfo; + } + export interface ExportTaskExecutionInfo { + /** + * The creation time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + creationTime?: Timestamp; + /** + * The completion time of the export task, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + completionTime?: Timestamp; + } + export type ExportTaskId = string; + export type ExportTaskName = string; + export interface ExportTaskStatus { + /** + * The status code of the export task. + */ + code?: ExportTaskStatusCode; + /** + * The status message related to the status code. + */ + message?: ExportTaskStatusMessage; + } + export type ExportTaskStatusCode = "CANCELLED"|"COMPLETED"|"FAILED"|"PENDING"|"PENDING_CANCEL"|"RUNNING"|string; + export type ExportTaskStatusMessage = string; + export type ExportTasks = ExportTask[]; + export type ExtractedValues = {[key: string]: Value}; + export type Field = string; + export type FilterCount = number; + export interface FilterLogEventsRequest { + /** + * The name of the log group to search. + */ + logGroupName: LogGroupName; + /** + * Filters the results to only logs from the log streams in this list. If you specify a value for both logStreamNamePrefix and logStreamNames, the action returns an InvalidParameterException error. + */ + logStreamNames?: InputLogStreamNames; + /** + * Filters the results to include only events from log streams that have names starting with this prefix. If you specify a value for both logStreamNamePrefix and logStreamNames, but the value for logStreamNamePrefix does not match any log stream names specified in logStreamNames, the action returns an InvalidParameterException error. + */ + logStreamNamePrefix?: LogStreamName; + /** + * The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp before this time are not returned. + */ + startTime?: Timestamp; + /** + * The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not returned. + */ + endTime?: Timestamp; + /** + * The filter pattern to use. For more information, see Filter and Pattern Syntax. If not provided, all the events are matched. + */ + filterPattern?: FilterPattern; + /** + * The token for the next set of events to return. (You received this token from a previous call.) + */ + nextToken?: NextToken; + /** + * The maximum number of events to return. The default is 10,000 events. + */ + limit?: EventsLimit; + /** + * If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group, interleaved in a single response. If the value is false, all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false. Important: Starting on June 17, 2019, this parameter is ignored and the value is assumed to be true. The response from this operation always interleaves events from multiple log streams within a log group. + */ + interleaved?: Interleaved; + } + export interface FilterLogEventsResponse { + /** + * The matched events. + */ + events?: FilteredLogEvents; + /** + * IMPORTANT Starting on May 15, 2020, this parameter will be deprecated. This parameter will be an empty list after the deprecation occurs. Indicates which log streams have been searched and whether each has been searched completely. + */ + searchedLogStreams?: SearchedLogStreams; + /** + * The token to use when requesting the next set of items. The token expires after 24 hours. + */ + nextToken?: NextToken; + } + export type FilterName = string; + export type FilterPattern = string; + export interface FilteredLogEvent { + /** + * The name of the log stream to which this event belongs. + */ + logStreamName?: LogStreamName; + /** + * The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + timestamp?: Timestamp; + /** + * The data contained in the log event. + */ + message?: EventMessage; + /** + * The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + ingestionTime?: Timestamp; + /** + * The ID of the event. + */ + eventId?: EventId; + } + export type FilteredLogEvents = FilteredLogEvent[]; + export interface GetLogEventsRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The name of the log stream. + */ + logStreamName: LogStreamName; + /** + * The start of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to this time or later than this time are included. Events with a timestamp earlier than this time are not included. + */ + startTime?: Timestamp; + /** + * The end of the time range, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. Events with a timestamp equal to or later than this time are not included. + */ + endTime?: Timestamp; + /** + * The token for the next set of items to return. (You received this token from a previous call.) Using this token works only when you specify true for startFromHead. + */ + nextToken?: NextToken; + /** + * The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1 MB, up to 10,000 log events. + */ + limit?: EventsLimit; + /** + * If the value is true, the earliest log events are returned first. If the value is false, the latest log events are returned first. The default value is false. If you are using nextToken in this operation, you must specify true for startFromHead. + */ + startFromHead?: StartFromHead; + } + export interface GetLogEventsResponse { + /** + * The events. + */ + events?: OutputLogEvents; + /** + * The token for the next set of items in the forward direction. The token expires after 24 hours. If you have reached the end of the stream, it returns the same token you passed in. + */ + nextForwardToken?: NextToken; + /** + * The token for the next set of items in the backward direction. The token expires after 24 hours. This token is never null. If you have reached the end of the stream, it returns the same token you passed in. + */ + nextBackwardToken?: NextToken; + } + export interface GetLogGroupFieldsRequest { + /** + * The name of the log group to search. + */ + logGroupName: LogGroupName; + /** + * The time to set as the center of the query. If you specify time, the 15 minutes before this time are queries. If you omit time the 8 minutes before and 8 minutes after this time are searched. The time value is specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + */ + time?: Timestamp; + } + export interface GetLogGroupFieldsResponse { + /** + * The array of fields found in the query. Each object in the array contains the name of the field, along with the percentage of time it appeared in the log events that were queried. + */ + logGroupFields?: LogGroupFieldList; + } + export interface GetLogRecordRequest { + /** + * The pointer corresponding to the log event record you want to retrieve. You get this from the response of a GetQueryResults operation. In that response, the value of the @ptr field for a log event is the value to use as logRecordPointer to retrieve that complete log event record. + */ + logRecordPointer: LogRecordPointer; + } + export interface GetLogRecordResponse { + /** + * The requested log event, as a JSON string. + */ + logRecord?: LogRecord; + } + export interface GetQueryResultsRequest { + /** + * The ID number of the query. + */ + queryId: QueryId; + } + export interface GetQueryResultsResponse { + /** + * The log events that matched the query criteria during the most recent time it ran. The results value is an array of arrays. Each log event is one object in the top-level array. Each of these log event objects is an array of field/value pairs. + */ + results?: QueryResults; + /** + * Includes the number of log events scanned by the query, the number of log events that matched the query criteria, and the total number of bytes in the log events that were scanned. These values reflect the full raw results of the query. + */ + statistics?: QueryStatistics; + /** + * The status of the most recent running of the query. Possible values are Cancelled, Complete, Failed, Running, Scheduled, Timeout, and Unknown. Queries time out after 15 minutes of execution. To avoid having your queries time out, reduce the time range being searched or partition your query into a number of queries. + */ + status?: QueryStatus; + } + export interface InputLogEvent { + /** + * The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + timestamp: Timestamp; + /** + * The raw event message. + */ + message: EventMessage; + } + export type InputLogEvents = InputLogEvent[]; + export type InputLogStreamNames = LogStreamName[]; + export type Interleaved = boolean; + export type KmsKeyId = string; + export interface ListTagsLogGroupRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + } + export interface ListTagsLogGroupResponse { + /** + * The tags for the log group. + */ + tags?: Tags; + } + export type LogEventIndex = number; + export interface LogGroup { + /** + * The name of the log group. + */ + logGroupName?: LogGroupName; + /** + * The creation time of the log group, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + creationTime?: Timestamp; + retentionInDays?: Days; + /** + * The number of metric filters. + */ + metricFilterCount?: FilterCount; + /** + * The Amazon Resource Name (ARN) of the log group. + */ + arn?: Arn; + /** + * The number of bytes stored. + */ + storedBytes?: StoredBytes; + /** + * The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + */ + kmsKeyId?: KmsKeyId; + } + export interface LogGroupField { + /** + * The name of a log field. + */ + name?: Field; + /** + * The percentage of log events queried that contained the field. + */ + percent?: Percentage; + } + export type LogGroupFieldList = LogGroupField[]; + export type LogGroupName = string; + export type LogGroupNames = LogGroupName[]; + export type LogGroups = LogGroup[]; + export type LogRecord = {[key: string]: Value}; + export type LogRecordPointer = string; + export interface LogStream { + /** + * The name of the log stream. + */ + logStreamName?: LogStreamName; + /** + * The creation time of the stream, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + creationTime?: Timestamp; + /** + * The time of the first event, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + firstEventTimestamp?: Timestamp; + /** + * The time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. The lastEventTime value updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer. + */ + lastEventTimestamp?: Timestamp; + /** + * The ingestion time, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + lastIngestionTime?: Timestamp; + /** + * The sequence token. + */ + uploadSequenceToken?: SequenceToken; + /** + * The Amazon Resource Name (ARN) of the log stream. + */ + arn?: Arn; + /** + * The number of bytes stored. Important: On June 17, 2019, this parameter was deprecated for log streams, and is always reported as zero. This change applies only to log streams. The storedBytes parameter for log groups is not affected. + */ + storedBytes?: StoredBytes; + } + export type LogStreamName = string; + export type LogStreamSearchedCompletely = boolean; + export type LogStreams = LogStream[]; + export interface MetricFilter { + /** + * The name of the metric filter. + */ + filterName?: FilterName; + filterPattern?: FilterPattern; + /** + * The metric transformations. + */ + metricTransformations?: MetricTransformations; + /** + * The creation time of the metric filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + creationTime?: Timestamp; + /** + * The name of the log group. + */ + logGroupName?: LogGroupName; + } + export interface MetricFilterMatchRecord { + /** + * The event number. + */ + eventNumber?: EventNumber; + /** + * The raw event data. + */ + eventMessage?: EventMessage; + /** + * The values extracted from the event data by the filter. + */ + extractedValues?: ExtractedValues; + } + export type MetricFilterMatches = MetricFilterMatchRecord[]; + export type MetricFilters = MetricFilter[]; + export type MetricName = string; + export type MetricNamespace = string; + export interface MetricTransformation { + /** + * The name of the CloudWatch metric. + */ + metricName: MetricName; + /** + * A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see Namespaces. + */ + metricNamespace: MetricNamespace; + /** + * The value to publish to the CloudWatch metric when a filter pattern matches a log event. + */ + metricValue: MetricValue; + /** + * (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. + */ + defaultValue?: DefaultValue; + /** + * The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as IPAddress or requestID as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see Creating a Billing Alarm to Monitor Your Estimated AWS Charges. + */ + dimensions?: Dimensions; + /** + * The unit to assign to the metric. If you omit this, the unit is set as None. + */ + unit?: StandardUnit; + } + export type MetricTransformations = MetricTransformation[]; + export type MetricValue = string; + export type NextToken = string; + export type OrderBy = "LogStreamName"|"LastEventTime"|string; + export interface OutputLogEvent { + /** + * The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + timestamp?: Timestamp; + /** + * The data contained in the log event. + */ + message?: EventMessage; + /** + * The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + ingestionTime?: Timestamp; + } + export type OutputLogEvents = OutputLogEvent[]; + export type Percentage = number; + export type PolicyDocument = string; + export type PolicyName = string; + export interface PutDestinationPolicyRequest { + /** + * A name for an existing destination. + */ + destinationName: DestinationName; + /** + * An IAM policy document that authorizes cross-account users to deliver their log events to the associated destination. This can be up to 5120 bytes. + */ + accessPolicy: AccessPolicy; + } + export interface PutDestinationRequest { + /** + * A name for the destination. + */ + destinationName: DestinationName; + /** + * The ARN of an Amazon Kinesis stream to which to deliver matching log events. + */ + targetArn: TargetArn; + /** + * The ARN of an IAM role that grants CloudWatch Logs permissions to call the Amazon Kinesis PutRecord operation on the destination stream. + */ + roleArn: RoleArn; + } + export interface PutDestinationResponse { + /** + * The destination. + */ + destination?: Destination; + } + export interface PutLogEventsRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The name of the log stream. + */ + logStreamName: LogStreamName; + /** + * The log events. + */ + logEvents: InputLogEvents; + /** + * The sequence token obtained from the response of the previous PutLogEvents call. An upload in a newly created log stream does not require a sequence token. You can also get the sequence token using DescribeLogStreams. If you call PutLogEvents twice within a narrow time period using the same value for sequenceToken, both calls might be successful or one might be rejected. + */ + sequenceToken?: SequenceToken; + } + export interface PutLogEventsResponse { + /** + * The next sequence token. + */ + nextSequenceToken?: SequenceToken; + /** + * The rejected events. + */ + rejectedLogEventsInfo?: RejectedLogEventsInfo; + } + export interface PutMetricFilterRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * A name for the metric filter. + */ + filterName: FilterName; + /** + * A filter pattern for extracting metric data out of ingested log events. + */ + filterPattern: FilterPattern; + /** + * A collection of information that defines how metric data gets emitted. + */ + metricTransformations: MetricTransformations; + } + export interface PutQueryDefinitionRequest { + /** + * A name for the query definition. If you are saving a lot of query definitions, we recommend that you name them so that you can easily find the ones you want by using the first part of the name as a filter in the queryDefinitionNamePrefix parameter of DescribeQueryDefinitions. + */ + name: QueryDefinitionName; + /** + * If you are updating a query definition, use this parameter to specify the ID of the query definition that you want to update. You can use DescribeQueryDefinitions to retrieve the IDs of your saved query definitions. If you are creating a query definition, do not specify this parameter. CloudWatch generates a unique ID for the new query definition and include it in the response to this operation. + */ + queryDefinitionId?: QueryId; + /** + * Use this parameter to include specific log groups as part of your query definition. If you are updating a query definition and you omit this parameter, then the updated definition will contain no log groups. + */ + logGroupNames?: LogGroupNames; + /** + * The query string to use for this definition. For more information, see CloudWatch Logs Insights Query Syntax. + */ + queryString: QueryDefinitionString; + } + export interface PutQueryDefinitionResponse { + /** + * The ID of the query definition. + */ + queryDefinitionId?: QueryId; + } + export interface PutResourcePolicyRequest { + /** + * Name of the new policy. This parameter is required. + */ + policyName?: PolicyName; + /** + * Details of the new policy, including the identity of the principal that is enabled to put logs to this account. This is formatted as a JSON string. This parameter is required. The following example creates a resource policy enabling the Route 53 service to put DNS query logs in to the specified log group. Replace "logArn" with the ARN of your CloudWatch Logs resource, such as a log group or log stream. { "Version": "2012-10-17", "Statement": [ { "Sid": "Route53LogsToCloudWatchLogs", "Effect": "Allow", "Principal": { "Service": [ "route53.amazonaws.com" ] }, "Action":"logs:PutLogEvents", "Resource": "logArn" } ] } + */ + policyDocument?: PolicyDocument; + } + export interface PutResourcePolicyResponse { + /** + * The new policy. + */ + resourcePolicy?: ResourcePolicy; + } + export interface PutRetentionPolicyRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + retentionInDays: Days; + } + export interface PutSubscriptionFilterRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * A name for the subscription filter. If you are updating an existing filter, you must specify the correct name in filterName. To find the name of the filter currently associated with a log group, use DescribeSubscriptionFilters. + */ + filterName: FilterName; + /** + * A filter pattern for subscribing to a filtered stream of log events. + */ + filterPattern: FilterPattern; + /** + * The ARN of the destination to deliver matching log events to. Currently, the supported destinations are: An Amazon Kinesis stream belonging to the same account as the subscription filter, for same-account delivery. A logical destination (specified using an ARN) belonging to a different account, for cross-account delivery. If you are setting up a cross-account subscription, the destination must have an IAM policy associated with it that allows the sender to send logs to the destination. For more information, see PutDestinationPolicy. An Amazon Kinesis Firehose delivery stream belonging to the same account as the subscription filter, for same-account delivery. An AWS Lambda function belonging to the same account as the subscription filter, for same-account delivery. + */ + destinationArn: DestinationArn; + /** + * The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + */ + roleArn?: RoleArn; + /** + * The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + */ + distribution?: Distribution; + } + export interface QueryDefinition { + /** + * The unique ID of the query definition. + */ + queryDefinitionId?: QueryId; + /** + * The name of the query definition. + */ + name?: QueryDefinitionName; + /** + * The query string to use for this definition. For more information, see CloudWatch Logs Insights Query Syntax. + */ + queryString?: QueryDefinitionString; + /** + * The date that the query definition was most recently modified. + */ + lastModified?: Timestamp; + /** + * If this query definition contains a list of log groups that it is limited to, that list appears here. + */ + logGroupNames?: LogGroupNames; + } + export type QueryDefinitionList = QueryDefinition[]; + export type QueryDefinitionName = string; + export type QueryDefinitionString = string; + export type QueryId = string; + export interface QueryInfo { + /** + * The unique ID number of this query. + */ + queryId?: QueryId; + /** + * The query string used in this query. + */ + queryString?: QueryString; + /** + * The status of this query. Possible values are Cancelled, Complete, Failed, Running, Scheduled, and Unknown. + */ + status?: QueryStatus; + /** + * The date and time that this query was created. + */ + createTime?: Timestamp; + /** + * The name of the log group scanned by this query. + */ + logGroupName?: LogGroupName; + } + export type QueryInfoList = QueryInfo[]; + export type QueryListMaxResults = number; + export type QueryResults = ResultRows[]; + export interface QueryStatistics { + /** + * The number of log events that matched the query string. + */ + recordsMatched?: StatsValue; + /** + * The total number of log events scanned during the query. + */ + recordsScanned?: StatsValue; + /** + * The total number of bytes in the log events scanned during the query. + */ + bytesScanned?: StatsValue; + } + export type QueryStatus = "Scheduled"|"Running"|"Complete"|"Failed"|"Cancelled"|"Timeout"|"Unknown"|string; + export type QueryString = string; + export interface RejectedLogEventsInfo { + /** + * The log events that are too new. + */ + tooNewLogEventStartIndex?: LogEventIndex; + /** + * The log events that are too old. + */ + tooOldLogEventEndIndex?: LogEventIndex; + /** + * The expired log events. + */ + expiredLogEventEndIndex?: LogEventIndex; + } + export type ResourcePolicies = ResourcePolicy[]; + export interface ResourcePolicy { + /** + * The name of the resource policy. + */ + policyName?: PolicyName; + /** + * The details of the policy. + */ + policyDocument?: PolicyDocument; + /** + * Timestamp showing when this policy was last updated, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + lastUpdatedTime?: Timestamp; + } + export interface ResultField { + /** + * The log event field. + */ + field?: Field; + /** + * The value of this field. + */ + value?: Value; + } + export type ResultRows = ResultField[]; + export type RoleArn = string; + export interface SearchedLogStream { + /** + * The name of the log stream. + */ + logStreamName?: LogStreamName; + /** + * Indicates whether all the events in this log stream were searched. + */ + searchedCompletely?: LogStreamSearchedCompletely; + } + export type SearchedLogStreams = SearchedLogStream[]; + export type SequenceToken = string; + export type StandardUnit = "Seconds"|"Microseconds"|"Milliseconds"|"Bytes"|"Kilobytes"|"Megabytes"|"Gigabytes"|"Terabytes"|"Bits"|"Kilobits"|"Megabits"|"Gigabits"|"Terabits"|"Percent"|"Count"|"Bytes/Second"|"Kilobytes/Second"|"Megabytes/Second"|"Gigabytes/Second"|"Terabytes/Second"|"Bits/Second"|"Kilobits/Second"|"Megabits/Second"|"Gigabits/Second"|"Terabits/Second"|"Count/Second"|"None"|string; + export type StartFromHead = boolean; + export interface StartQueryRequest { + /** + * The log group on which to perform the query. A StartQuery operation must include a logGroupNames or a logGroupName parameter, but not both. + */ + logGroupName?: LogGroupName; + /** + * The list of log groups to be queried. You can include up to 20 log groups. A StartQuery operation must include a logGroupNames or a logGroupName parameter, but not both. + */ + logGroupNames?: LogGroupNames; + /** + * The beginning of the time range to query. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + */ + startTime: Timestamp; + /** + * The end of the time range to query. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 UTC. + */ + endTime: Timestamp; + /** + * The query string to use. For more information, see CloudWatch Logs Insights Query Syntax. + */ + queryString: QueryString; + /** + * The maximum number of log events to return in the query. If the query string uses the fields command, only the specified fields and their values are returned. The default is 1000. + */ + limit?: EventsLimit; + } + export interface StartQueryResponse { + /** + * The unique ID of the query. + */ + queryId?: QueryId; + } + export type StatsValue = number; + export interface StopQueryRequest { + /** + * The ID number of the query to stop. To find this ID number, use DescribeQueries. + */ + queryId: QueryId; + } + export interface StopQueryResponse { + /** + * This is true if the query was stopped by the StopQuery operation. + */ + success?: Success; + } + export type StoredBytes = number; + export interface SubscriptionFilter { + /** + * The name of the subscription filter. + */ + filterName?: FilterName; + /** + * The name of the log group. + */ + logGroupName?: LogGroupName; + filterPattern?: FilterPattern; + /** + * The Amazon Resource Name (ARN) of the destination. + */ + destinationArn?: DestinationArn; + /** + * + */ + roleArn?: RoleArn; + distribution?: Distribution; + /** + * The creation time of the subscription filter, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. + */ + creationTime?: Timestamp; + } + export type SubscriptionFilters = SubscriptionFilter[]; + export type Success = boolean; + export type TagKey = string; + export type TagList = TagKey[]; + export interface TagLogGroupRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The key-value pairs to use for the tags. + */ + tags: Tags; + } + export type TagValue = string; + export type Tags = {[key: string]: TagValue}; + export type TargetArn = string; + export type TestEventMessages = EventMessage[]; + export interface TestMetricFilterRequest { + filterPattern: FilterPattern; + /** + * The log event messages to test. + */ + logEventMessages: TestEventMessages; + } + export interface TestMetricFilterResponse { + /** + * The matched events. + */ + matches?: MetricFilterMatches; + } + export type Timestamp = number; + export type Token = string; + export interface UntagLogGroupRequest { + /** + * The name of the log group. + */ + logGroupName: LogGroupName; + /** + * The tag keys. The corresponding tags are removed from the log group. + */ + tags: TagList; + } + export type Value = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2014-03-28"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CloudWatchLogs client. + */ + export import Types = CloudWatchLogs; +} +export = CloudWatchLogs; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchlogs.js b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchlogs.js new file mode 100644 index 0000000000000000000000000000000000000000..d79a8dda7f13deeee1cbfaabe59d0ac5e641700c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/cloudwatchlogs.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['cloudwatchlogs'] = {}; +AWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']); +Object.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', { + get: function get() { + var model = require('../apis/logs-2014-03-28.min.json'); + model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CloudWatchLogs; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codeartifact.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/codeartifact.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..615f97efde4c1b1988a3eaa47cef98ce358abc59 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codeartifact.d.ts @@ -0,0 +1,1761 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +import {Readable} from 'stream'; +interface Blob {} +declare class CodeArtifact extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CodeArtifact.Types.ClientConfiguration) + config: Config & CodeArtifact.Types.ClientConfiguration; + /** + * Adds an existing external connection to a repository. One external connection is allowed per repository. A repository can have one or more upstream repositories, or an external connection. + */ + associateExternalConnection(params: CodeArtifact.Types.AssociateExternalConnectionRequest, callback?: (err: AWSError, data: CodeArtifact.Types.AssociateExternalConnectionResult) => void): Request; + /** + * Adds an existing external connection to a repository. One external connection is allowed per repository. A repository can have one or more upstream repositories, or an external connection. + */ + associateExternalConnection(callback?: (err: AWSError, data: CodeArtifact.Types.AssociateExternalConnectionResult) => void): Request; + /** + * Copies package versions from one repository to another repository in the same domain. You must specify versions or versionRevisions. You cannot specify both. + */ + copyPackageVersions(params: CodeArtifact.Types.CopyPackageVersionsRequest, callback?: (err: AWSError, data: CodeArtifact.Types.CopyPackageVersionsResult) => void): Request; + /** + * Copies package versions from one repository to another repository in the same domain. You must specify versions or versionRevisions. You cannot specify both. + */ + copyPackageVersions(callback?: (err: AWSError, data: CodeArtifact.Types.CopyPackageVersionsResult) => void): Request; + /** + * Creates a domain. CodeArtifact domains make it easier to manage multiple repositories across an organization. You can use a domain to apply permissions across many repositories owned by different AWS accounts. An asset is stored only once in a domain, even if it's in multiple repositories. Although you can have multiple domains, we recommend a single production domain that contains all published artifacts so that your development teams can find and share packages. You can use a second pre-production domain to test changes to the production domain configuration. + */ + createDomain(params: CodeArtifact.Types.CreateDomainRequest, callback?: (err: AWSError, data: CodeArtifact.Types.CreateDomainResult) => void): Request; + /** + * Creates a domain. CodeArtifact domains make it easier to manage multiple repositories across an organization. You can use a domain to apply permissions across many repositories owned by different AWS accounts. An asset is stored only once in a domain, even if it's in multiple repositories. Although you can have multiple domains, we recommend a single production domain that contains all published artifacts so that your development teams can find and share packages. You can use a second pre-production domain to test changes to the production domain configuration. + */ + createDomain(callback?: (err: AWSError, data: CodeArtifact.Types.CreateDomainResult) => void): Request; + /** + * Creates a repository. + */ + createRepository(params: CodeArtifact.Types.CreateRepositoryRequest, callback?: (err: AWSError, data: CodeArtifact.Types.CreateRepositoryResult) => void): Request; + /** + * Creates a repository. + */ + createRepository(callback?: (err: AWSError, data: CodeArtifact.Types.CreateRepositoryResult) => void): Request; + /** + * Deletes a domain. You cannot delete a domain that contains repositories. If you want to delete a domain with repositories, first delete its repositories. + */ + deleteDomain(params: CodeArtifact.Types.DeleteDomainRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DeleteDomainResult) => void): Request; + /** + * Deletes a domain. You cannot delete a domain that contains repositories. If you want to delete a domain with repositories, first delete its repositories. + */ + deleteDomain(callback?: (err: AWSError, data: CodeArtifact.Types.DeleteDomainResult) => void): Request; + /** + * Deletes the resource policy set on a domain. + */ + deleteDomainPermissionsPolicy(params: CodeArtifact.Types.DeleteDomainPermissionsPolicyRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DeleteDomainPermissionsPolicyResult) => void): Request; + /** + * Deletes the resource policy set on a domain. + */ + deleteDomainPermissionsPolicy(callback?: (err: AWSError, data: CodeArtifact.Types.DeleteDomainPermissionsPolicyResult) => void): Request; + /** + * Deletes one or more versions of a package. A deleted package version cannot be restored in your repository. If you want to remove a package version from your repository and be able to restore it later, set its status to Archived. Archived packages cannot be downloaded from a repository and don't show up with list package APIs (for example, ListackageVersions), but you can restore them using UpdatePackageVersionsStatus. + */ + deletePackageVersions(params: CodeArtifact.Types.DeletePackageVersionsRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DeletePackageVersionsResult) => void): Request; + /** + * Deletes one or more versions of a package. A deleted package version cannot be restored in your repository. If you want to remove a package version from your repository and be able to restore it later, set its status to Archived. Archived packages cannot be downloaded from a repository and don't show up with list package APIs (for example, ListackageVersions), but you can restore them using UpdatePackageVersionsStatus. + */ + deletePackageVersions(callback?: (err: AWSError, data: CodeArtifact.Types.DeletePackageVersionsResult) => void): Request; + /** + * Deletes a repository. + */ + deleteRepository(params: CodeArtifact.Types.DeleteRepositoryRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DeleteRepositoryResult) => void): Request; + /** + * Deletes a repository. + */ + deleteRepository(callback?: (err: AWSError, data: CodeArtifact.Types.DeleteRepositoryResult) => void): Request; + /** + * Deletes the resource policy that is set on a repository. After a resource policy is deleted, the permissions allowed and denied by the deleted policy are removed. The effect of deleting a resource policy might not be immediate. Use DeleteRepositoryPermissionsPolicy with caution. After a policy is deleted, AWS users, roles, and accounts lose permissions to perform the repository actions granted by the deleted policy. + */ + deleteRepositoryPermissionsPolicy(params: CodeArtifact.Types.DeleteRepositoryPermissionsPolicyRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DeleteRepositoryPermissionsPolicyResult) => void): Request; + /** + * Deletes the resource policy that is set on a repository. After a resource policy is deleted, the permissions allowed and denied by the deleted policy are removed. The effect of deleting a resource policy might not be immediate. Use DeleteRepositoryPermissionsPolicy with caution. After a policy is deleted, AWS users, roles, and accounts lose permissions to perform the repository actions granted by the deleted policy. + */ + deleteRepositoryPermissionsPolicy(callback?: (err: AWSError, data: CodeArtifact.Types.DeleteRepositoryPermissionsPolicyResult) => void): Request; + /** + * Returns a DomainDescription object that contains information about the requested domain. + */ + describeDomain(params: CodeArtifact.Types.DescribeDomainRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DescribeDomainResult) => void): Request; + /** + * Returns a DomainDescription object that contains information about the requested domain. + */ + describeDomain(callback?: (err: AWSError, data: CodeArtifact.Types.DescribeDomainResult) => void): Request; + /** + * Returns a PackageVersionDescription object that contains information about the requested package version. + */ + describePackageVersion(params: CodeArtifact.Types.DescribePackageVersionRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DescribePackageVersionResult) => void): Request; + /** + * Returns a PackageVersionDescription object that contains information about the requested package version. + */ + describePackageVersion(callback?: (err: AWSError, data: CodeArtifact.Types.DescribePackageVersionResult) => void): Request; + /** + * Returns a RepositoryDescription object that contains detailed information about the requested repository. + */ + describeRepository(params: CodeArtifact.Types.DescribeRepositoryRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DescribeRepositoryResult) => void): Request; + /** + * Returns a RepositoryDescription object that contains detailed information about the requested repository. + */ + describeRepository(callback?: (err: AWSError, data: CodeArtifact.Types.DescribeRepositoryResult) => void): Request; + /** + * Removes an existing external connection from a repository. + */ + disassociateExternalConnection(params: CodeArtifact.Types.DisassociateExternalConnectionRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DisassociateExternalConnectionResult) => void): Request; + /** + * Removes an existing external connection from a repository. + */ + disassociateExternalConnection(callback?: (err: AWSError, data: CodeArtifact.Types.DisassociateExternalConnectionResult) => void): Request; + /** + * Deletes the assets in package versions and sets the package versions' status to Disposed. A disposed package version cannot be restored in your repository because its assets are deleted. To view all disposed package versions in a repository, use ListPackageVersions and set the status parameter to Disposed. To view information about a disposed package version, use DescribePackageVersion. + */ + disposePackageVersions(params: CodeArtifact.Types.DisposePackageVersionsRequest, callback?: (err: AWSError, data: CodeArtifact.Types.DisposePackageVersionsResult) => void): Request; + /** + * Deletes the assets in package versions and sets the package versions' status to Disposed. A disposed package version cannot be restored in your repository because its assets are deleted. To view all disposed package versions in a repository, use ListPackageVersions and set the status parameter to Disposed. To view information about a disposed package version, use DescribePackageVersion. + */ + disposePackageVersions(callback?: (err: AWSError, data: CodeArtifact.Types.DisposePackageVersionsResult) => void): Request; + /** + * Generates a temporary authorization token for accessing repositories in the domain. This API requires the codeartifact:GetAuthorizationToken and sts:GetServiceBearerToken permissions. For more information about authorization tokens, see AWS CodeArtifact authentication and tokens. CodeArtifact authorization tokens are valid for a period of 12 hours when created with the login command. You can call login periodically to refresh the token. When you create an authorization token with the GetAuthorizationToken API, you can set a custom authorization period, up to a maximum of 12 hours, with the durationSeconds parameter. The authorization period begins after login or GetAuthorizationToken is called. If login or GetAuthorizationToken is called while assuming a role, the token lifetime is independent of the maximum session duration of the role. For example, if you call sts assume-role and specify a session duration of 15 minutes, then generate a CodeArtifact authorization token, the token will be valid for the full authorization period even though this is longer than the 15-minute session duration. See Using IAM Roles for more information on controlling session duration. + */ + getAuthorizationToken(params: CodeArtifact.Types.GetAuthorizationTokenRequest, callback?: (err: AWSError, data: CodeArtifact.Types.GetAuthorizationTokenResult) => void): Request; + /** + * Generates a temporary authorization token for accessing repositories in the domain. This API requires the codeartifact:GetAuthorizationToken and sts:GetServiceBearerToken permissions. For more information about authorization tokens, see AWS CodeArtifact authentication and tokens. CodeArtifact authorization tokens are valid for a period of 12 hours when created with the login command. You can call login periodically to refresh the token. When you create an authorization token with the GetAuthorizationToken API, you can set a custom authorization period, up to a maximum of 12 hours, with the durationSeconds parameter. The authorization period begins after login or GetAuthorizationToken is called. If login or GetAuthorizationToken is called while assuming a role, the token lifetime is independent of the maximum session duration of the role. For example, if you call sts assume-role and specify a session duration of 15 minutes, then generate a CodeArtifact authorization token, the token will be valid for the full authorization period even though this is longer than the 15-minute session duration. See Using IAM Roles for more information on controlling session duration. + */ + getAuthorizationToken(callback?: (err: AWSError, data: CodeArtifact.Types.GetAuthorizationTokenResult) => void): Request; + /** + * Returns the resource policy attached to the specified domain. The policy is a resource-based policy, not an identity-based policy. For more information, see Identity-based policies and resource-based policies in the AWS Identity and Access Management User Guide. + */ + getDomainPermissionsPolicy(params: CodeArtifact.Types.GetDomainPermissionsPolicyRequest, callback?: (err: AWSError, data: CodeArtifact.Types.GetDomainPermissionsPolicyResult) => void): Request; + /** + * Returns the resource policy attached to the specified domain. The policy is a resource-based policy, not an identity-based policy. For more information, see Identity-based policies and resource-based policies in the AWS Identity and Access Management User Guide. + */ + getDomainPermissionsPolicy(callback?: (err: AWSError, data: CodeArtifact.Types.GetDomainPermissionsPolicyResult) => void): Request; + /** + * Returns an asset (or file) that is in a package. For example, for a Maven package version, use GetPackageVersionAsset to download a JAR file, a POM file, or any other assets in the package version. + */ + getPackageVersionAsset(params: CodeArtifact.Types.GetPackageVersionAssetRequest, callback?: (err: AWSError, data: CodeArtifact.Types.GetPackageVersionAssetResult) => void): Request; + /** + * Returns an asset (or file) that is in a package. For example, for a Maven package version, use GetPackageVersionAsset to download a JAR file, a POM file, or any other assets in the package version. + */ + getPackageVersionAsset(callback?: (err: AWSError, data: CodeArtifact.Types.GetPackageVersionAssetResult) => void): Request; + /** + * Gets the readme file or descriptive text for a package version. For packages that do not contain a readme file, CodeArtifact extracts a description from a metadata file. For example, from the <description> element in the pom.xml file of a Maven package. The returned text might contain formatting. For example, it might contain formatting for Markdown or reStructuredText. + */ + getPackageVersionReadme(params: CodeArtifact.Types.GetPackageVersionReadmeRequest, callback?: (err: AWSError, data: CodeArtifact.Types.GetPackageVersionReadmeResult) => void): Request; + /** + * Gets the readme file or descriptive text for a package version. For packages that do not contain a readme file, CodeArtifact extracts a description from a metadata file. For example, from the <description> element in the pom.xml file of a Maven package. The returned text might contain formatting. For example, it might contain formatting for Markdown or reStructuredText. + */ + getPackageVersionReadme(callback?: (err: AWSError, data: CodeArtifact.Types.GetPackageVersionReadmeResult) => void): Request; + /** + * Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format: npm pypi maven + */ + getRepositoryEndpoint(params: CodeArtifact.Types.GetRepositoryEndpointRequest, callback?: (err: AWSError, data: CodeArtifact.Types.GetRepositoryEndpointResult) => void): Request; + /** + * Returns the endpoint of a repository for a specific package format. A repository has one endpoint for each package format: npm pypi maven + */ + getRepositoryEndpoint(callback?: (err: AWSError, data: CodeArtifact.Types.GetRepositoryEndpointResult) => void): Request; + /** + * Returns the resource policy that is set on a repository. + */ + getRepositoryPermissionsPolicy(params: CodeArtifact.Types.GetRepositoryPermissionsPolicyRequest, callback?: (err: AWSError, data: CodeArtifact.Types.GetRepositoryPermissionsPolicyResult) => void): Request; + /** + * Returns the resource policy that is set on a repository. + */ + getRepositoryPermissionsPolicy(callback?: (err: AWSError, data: CodeArtifact.Types.GetRepositoryPermissionsPolicyResult) => void): Request; + /** + * Returns a list of DomainSummary objects for all domains owned by the AWS account that makes this call. Each returned DomainSummary object contains information about a domain. + */ + listDomains(params: CodeArtifact.Types.ListDomainsRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListDomainsResult) => void): Request; + /** + * Returns a list of DomainSummary objects for all domains owned by the AWS account that makes this call. Each returned DomainSummary object contains information about a domain. + */ + listDomains(callback?: (err: AWSError, data: CodeArtifact.Types.ListDomainsResult) => void): Request; + /** + * Returns a list of AssetSummary objects for assets in a package version. + */ + listPackageVersionAssets(params: CodeArtifact.Types.ListPackageVersionAssetsRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListPackageVersionAssetsResult) => void): Request; + /** + * Returns a list of AssetSummary objects for assets in a package version. + */ + listPackageVersionAssets(callback?: (err: AWSError, data: CodeArtifact.Types.ListPackageVersionAssetsResult) => void): Request; + /** + * Returns the direct dependencies for a package version. The dependencies are returned as PackageDependency objects. CodeArtifact extracts the dependencies for a package version from the metadata file for the package format (for example, the package.json file for npm packages and the pom.xml file for Maven). Any package version dependencies that are not listed in the configuration file are not returned. + */ + listPackageVersionDependencies(params: CodeArtifact.Types.ListPackageVersionDependenciesRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListPackageVersionDependenciesResult) => void): Request; + /** + * Returns the direct dependencies for a package version. The dependencies are returned as PackageDependency objects. CodeArtifact extracts the dependencies for a package version from the metadata file for the package format (for example, the package.json file for npm packages and the pom.xml file for Maven). Any package version dependencies that are not listed in the configuration file are not returned. + */ + listPackageVersionDependencies(callback?: (err: AWSError, data: CodeArtifact.Types.ListPackageVersionDependenciesResult) => void): Request; + /** + * Returns a list of PackageVersionSummary objects for package versions in a repository that match the request parameters. + */ + listPackageVersions(params: CodeArtifact.Types.ListPackageVersionsRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListPackageVersionsResult) => void): Request; + /** + * Returns a list of PackageVersionSummary objects for package versions in a repository that match the request parameters. + */ + listPackageVersions(callback?: (err: AWSError, data: CodeArtifact.Types.ListPackageVersionsResult) => void): Request; + /** + * Returns a list of PackageSummary objects for packages in a repository that match the request parameters. + */ + listPackages(params: CodeArtifact.Types.ListPackagesRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListPackagesResult) => void): Request; + /** + * Returns a list of PackageSummary objects for packages in a repository that match the request parameters. + */ + listPackages(callback?: (err: AWSError, data: CodeArtifact.Types.ListPackagesResult) => void): Request; + /** + * Returns a list of RepositorySummary objects. Each RepositorySummary contains information about a repository in the specified AWS account and that matches the input parameters. + */ + listRepositories(params: CodeArtifact.Types.ListRepositoriesRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListRepositoriesResult) => void): Request; + /** + * Returns a list of RepositorySummary objects. Each RepositorySummary contains information about a repository in the specified AWS account and that matches the input parameters. + */ + listRepositories(callback?: (err: AWSError, data: CodeArtifact.Types.ListRepositoriesResult) => void): Request; + /** + * Returns a list of RepositorySummary objects. Each RepositorySummary contains information about a repository in the specified domain and that matches the input parameters. + */ + listRepositoriesInDomain(params: CodeArtifact.Types.ListRepositoriesInDomainRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListRepositoriesInDomainResult) => void): Request; + /** + * Returns a list of RepositorySummary objects. Each RepositorySummary contains information about a repository in the specified domain and that matches the input parameters. + */ + listRepositoriesInDomain(callback?: (err: AWSError, data: CodeArtifact.Types.ListRepositoriesInDomainResult) => void): Request; + /** + * Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeArtifact. + */ + listTagsForResource(params: CodeArtifact.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: CodeArtifact.Types.ListTagsForResourceResult) => void): Request; + /** + * Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeArtifact. + */ + listTagsForResource(callback?: (err: AWSError, data: CodeArtifact.Types.ListTagsForResourceResult) => void): Request; + /** + * Sets a resource policy on a domain that specifies permissions to access it. When you call PutDomainPermissionsPolicy, the resource policy on the domain is ignored when evaluting permissions. This ensures that the owner of a domain cannot lock themselves out of the domain, which would prevent them from being able to update the resource policy. + */ + putDomainPermissionsPolicy(params: CodeArtifact.Types.PutDomainPermissionsPolicyRequest, callback?: (err: AWSError, data: CodeArtifact.Types.PutDomainPermissionsPolicyResult) => void): Request; + /** + * Sets a resource policy on a domain that specifies permissions to access it. When you call PutDomainPermissionsPolicy, the resource policy on the domain is ignored when evaluting permissions. This ensures that the owner of a domain cannot lock themselves out of the domain, which would prevent them from being able to update the resource policy. + */ + putDomainPermissionsPolicy(callback?: (err: AWSError, data: CodeArtifact.Types.PutDomainPermissionsPolicyResult) => void): Request; + /** + * Sets the resource policy on a repository that specifies permissions to access it. When you call PutRepositoryPermissionsPolicy, the resource policy on the repository is ignored when evaluting permissions. This ensures that the owner of a repository cannot lock themselves out of the repository, which would prevent them from being able to update the resource policy. + */ + putRepositoryPermissionsPolicy(params: CodeArtifact.Types.PutRepositoryPermissionsPolicyRequest, callback?: (err: AWSError, data: CodeArtifact.Types.PutRepositoryPermissionsPolicyResult) => void): Request; + /** + * Sets the resource policy on a repository that specifies permissions to access it. When you call PutRepositoryPermissionsPolicy, the resource policy on the repository is ignored when evaluting permissions. This ensures that the owner of a repository cannot lock themselves out of the repository, which would prevent them from being able to update the resource policy. + */ + putRepositoryPermissionsPolicy(callback?: (err: AWSError, data: CodeArtifact.Types.PutRepositoryPermissionsPolicyResult) => void): Request; + /** + * Adds or updates tags for a resource in AWS CodeArtifact. + */ + tagResource(params: CodeArtifact.Types.TagResourceRequest, callback?: (err: AWSError, data: CodeArtifact.Types.TagResourceResult) => void): Request; + /** + * Adds or updates tags for a resource in AWS CodeArtifact. + */ + tagResource(callback?: (err: AWSError, data: CodeArtifact.Types.TagResourceResult) => void): Request; + /** + * Removes tags from a resource in AWS CodeArtifact. + */ + untagResource(params: CodeArtifact.Types.UntagResourceRequest, callback?: (err: AWSError, data: CodeArtifact.Types.UntagResourceResult) => void): Request; + /** + * Removes tags from a resource in AWS CodeArtifact. + */ + untagResource(callback?: (err: AWSError, data: CodeArtifact.Types.UntagResourceResult) => void): Request; + /** + * Updates the status of one or more versions of a package. + */ + updatePackageVersionsStatus(params: CodeArtifact.Types.UpdatePackageVersionsStatusRequest, callback?: (err: AWSError, data: CodeArtifact.Types.UpdatePackageVersionsStatusResult) => void): Request; + /** + * Updates the status of one or more versions of a package. + */ + updatePackageVersionsStatus(callback?: (err: AWSError, data: CodeArtifact.Types.UpdatePackageVersionsStatusResult) => void): Request; + /** + * Update the properties of a repository. + */ + updateRepository(params: CodeArtifact.Types.UpdateRepositoryRequest, callback?: (err: AWSError, data: CodeArtifact.Types.UpdateRepositoryResult) => void): Request; + /** + * Update the properties of a repository. + */ + updateRepository(callback?: (err: AWSError, data: CodeArtifact.Types.UpdateRepositoryResult) => void): Request; +} +declare namespace CodeArtifact { + export type AccountId = string; + export type Arn = string; + export type Asset = Buffer|Uint8Array|Blob|string|Readable; + export type AssetHashes = {[key: string]: HashValue}; + export type AssetName = string; + export interface AssetSummary { + /** + * The name of the asset. + */ + name: AssetName; + /** + * The size of the asset. + */ + size?: LongOptional; + /** + * The hashes of the asset. + */ + hashes?: AssetHashes; + } + export type AssetSummaryList = AssetSummary[]; + export interface AssociateExternalConnectionRequest { + /** + * The name of the domain that contains the repository. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository to which the external connection is added. + */ + repository: RepositoryName; + /** + * The name of the external connection to add to the repository. The following values are supported: public:npmjs - for the npm public repository. public:pypi - for the Python Package Index. public:maven-central - for Maven Central. public:maven-googleandroid - for the Google Android repository. public:maven-gradleplugins - for the Gradle plugins repository. public:maven-commonsware - for the CommonsWare Android repository. + */ + externalConnection: ExternalConnectionName; + } + export interface AssociateExternalConnectionResult { + /** + * Information about the connected repository after processing the request. + */ + repository?: RepositoryDescription; + } + export type AuthorizationTokenDurationSeconds = number; + export type BooleanOptional = boolean; + export interface CopyPackageVersionsRequest { + /** + * The name of the domain that contains the source and destination repositories. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that contains the package versions to copy. + */ + sourceRepository: RepositoryName; + /** + * The name of the repository into which package versions are copied. + */ + destinationRepository: RepositoryName; + /** + * The format of the package that is copied. The valid package types are: npm: A Node Package Manager (npm) package. pypi: A Python Package Index (PyPI) package. maven: A Maven package that contains compiled code in a distributable format, such as a JAR file. + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package that is copied. + */ + package: PackageName; + /** + * The versions of the package to copy. You must specify versions or versionRevisions. You cannot specify both. + */ + versions?: PackageVersionList; + /** + * A list of key-value pairs. The keys are package versions and the values are package version revisions. A CopyPackageVersion operation succeeds if the specified versions in the source repository match the specified package version revision. You must specify versions or versionRevisions. You cannot specify both. + */ + versionRevisions?: PackageVersionRevisionMap; + /** + * Set to true to overwrite a package version that already exists in the destination repository. If set to false and the package version already exists in the destination repository, the package version is returned in the failedVersions field of the response with an ALREADY_EXISTS error code. + */ + allowOverwrite?: BooleanOptional; + /** + * Set to true to copy packages from repositories that are upstream from the source repository to the destination repository. The default setting is false. For more information, see Working with upstream repositories. + */ + includeFromUpstream?: BooleanOptional; + } + export interface CopyPackageVersionsResult { + /** + * A list of the package versions that were successfully copied to your repository. + */ + successfulVersions?: SuccessfulPackageVersionInfoMap; + /** + * A map of package versions that failed to copy and their error codes. The possible error codes are in the PackageVersionError data type. They are: ALREADY_EXISTS MISMATCHED_REVISION MISMATCHED_STATUS NOT_ALLOWED NOT_FOUND SKIPPED + */ + failedVersions?: PackageVersionErrorMap; + } + export interface CreateDomainRequest { + /** + * The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. + */ + domain: DomainName; + /** + * The encryption key for the domain. This is used to encrypt content stored in a domain. An encryption key can be a key ID, a key Amazon Resource Name (ARN), a key alias, or a key alias ARN. To specify an encryptionKey, your IAM role must have kms:DescribeKey and kms:CreateGrant permissions on the encryption key that is used. For more information, see DescribeKey in the AWS Key Management Service API Reference and AWS KMS API Permissions Reference in the AWS Key Management Service Developer Guide. CodeArtifact supports only symmetric CMKs. Do not associate an asymmetric CMK with your domain. For more information, see Using symmetric and asymmetric keys in the AWS Key Management Service Developer Guide. + */ + encryptionKey?: Arn; + /** + * One or more tag key-value pairs for the domain. + */ + tags?: TagList; + } + export interface CreateDomainResult { + /** + * Contains information about the created domain after processing the request. + */ + domain?: DomainDescription; + } + export interface CreateRepositoryRequest { + /** + * The name of the domain that contains the created repository. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository to create. + */ + repository: RepositoryName; + /** + * A description of the created repository. + */ + description?: Description; + /** + * A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories. + */ + upstreams?: UpstreamRepositoryList; + /** + * One or more tag key-value pairs for the repository. + */ + tags?: TagList; + } + export interface CreateRepositoryResult { + /** + * Information about the created repository after processing the request. + */ + repository?: RepositoryDescription; + } + export interface DeleteDomainPermissionsPolicyRequest { + /** + * The name of the domain associated with the resource policy to be deleted. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The current revision of the resource policy to be deleted. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. + */ + policyRevision?: PolicyRevision; + } + export interface DeleteDomainPermissionsPolicyResult { + /** + * Information about the deleted resource policy after processing the request. + */ + policy?: ResourcePolicy; + } + export interface DeleteDomainRequest { + /** + * The name of the domain to delete. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + } + export interface DeleteDomainResult { + /** + * Contains information about the deleted domain after processing the request. + */ + domain?: DomainDescription; + } + export interface DeletePackageVersionsRequest { + /** + * The name of the domain that contains the package to delete. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that contains the package versions to delete. + */ + repository: RepositoryName; + /** + * The format of the package versions to delete. The valid values are: npm pypi maven + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package with the versions to delete. + */ + package: PackageName; + /** + * An array of strings that specify the versions of the package to delete. + */ + versions: PackageVersionList; + /** + * The expected status of the package version to delete. Valid values are: Published Unfinished Unlisted Archived Disposed + */ + expectedStatus?: PackageVersionStatus; + } + export interface DeletePackageVersionsResult { + /** + * A list of the package versions that were successfully deleted. + */ + successfulVersions?: SuccessfulPackageVersionInfoMap; + /** + * A PackageVersionError object that contains a map of errors codes for the deleted package that failed. The possible error codes are: ALREADY_EXISTS MISMATCHED_REVISION MISMATCHED_STATUS NOT_ALLOWED NOT_FOUND SKIPPED + */ + failedVersions?: PackageVersionErrorMap; + } + export interface DeleteRepositoryPermissionsPolicyRequest { + /** + * The name of the domain that contains the repository associated with the resource policy to be deleted. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that is associated with the resource policy to be deleted + */ + repository: RepositoryName; + /** + * The revision of the repository's resource policy to be deleted. This revision is used for optimistic locking, which prevents others from accidentally overwriting your changes to the repository's resource policy. + */ + policyRevision?: PolicyRevision; + } + export interface DeleteRepositoryPermissionsPolicyResult { + /** + * Information about the deleted policy after processing the request. + */ + policy?: ResourcePolicy; + } + export interface DeleteRepositoryRequest { + /** + * The name of the domain that contains the repository to delete. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository to delete. + */ + repository: RepositoryName; + } + export interface DeleteRepositoryResult { + /** + * Information about the deleted repository after processing the request. + */ + repository?: RepositoryDescription; + } + export interface DescribeDomainRequest { + /** + * A string that specifies the name of the requested domain. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + } + export interface DescribeDomainResult { + domain?: DomainDescription; + } + export interface DescribePackageVersionRequest { + /** + * The name of the domain that contains the repository that contains the package version. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that contains the package version. + */ + repository: RepositoryName; + /** + * A format that specifies the type of the requested package version. The valid values are: npm pypi maven + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the requested package version. + */ + package: PackageName; + /** + * A string that contains the package version (for example, 3.5.2). + */ + packageVersion: PackageVersion; + } + export interface DescribePackageVersionResult { + /** + * A PackageVersionDescription object that contains information about the requested package version. + */ + packageVersion: PackageVersionDescription; + } + export interface DescribeRepositoryRequest { + /** + * The name of the domain that contains the repository to describe. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * A string that specifies the name of the requested repository. + */ + repository: RepositoryName; + } + export interface DescribeRepositoryResult { + /** + * A RepositoryDescription object that contains the requested repository information. + */ + repository?: RepositoryDescription; + } + export type Description = string; + export interface DisassociateExternalConnectionRequest { + /** + * The name of the domain that contains the repository from which to remove the external repository. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository from which the external connection will be removed. + */ + repository: RepositoryName; + /** + * The name of the external connection to be removed from the repository. + */ + externalConnection: ExternalConnectionName; + } + export interface DisassociateExternalConnectionResult { + /** + * The repository associated with the removed external connection. + */ + repository?: RepositoryDescription; + } + export interface DisposePackageVersionsRequest { + /** + * The name of the domain that contains the repository you want to dispose. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that contains the package versions you want to dispose. + */ + repository: RepositoryName; + /** + * A format that specifies the type of package versions you want to dispose. The valid values are: npm pypi maven + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package with the versions you want to dispose. + */ + package: PackageName; + /** + * The versions of the package you want to dispose. + */ + versions: PackageVersionList; + /** + * The revisions of the package versions you want to dispose. + */ + versionRevisions?: PackageVersionRevisionMap; + /** + * The expected status of the package version to dispose. Valid values are: Published Unfinished Unlisted Archived Disposed + */ + expectedStatus?: PackageVersionStatus; + } + export interface DisposePackageVersionsResult { + /** + * A list of the package versions that were successfully disposed. + */ + successfulVersions?: SuccessfulPackageVersionInfoMap; + /** + * A PackageVersionError object that contains a map of errors codes for the disposed package versions that failed. The possible error codes are: ALREADY_EXISTS MISMATCHED_REVISION MISMATCHED_STATUS NOT_ALLOWED NOT_FOUND SKIPPED + */ + failedVersions?: PackageVersionErrorMap; + } + export interface DomainDescription { + /** + * The name of the domain. + */ + name?: DomainName; + /** + * The AWS account ID that owns the domain. + */ + owner?: AccountId; + /** + * The Amazon Resource Name (ARN) of the domain. + */ + arn?: Arn; + /** + * The current status of a domain. The valid values are Active Deleted + */ + status?: DomainStatus; + /** + * A timestamp that represents the date and time the domain was created. + */ + createdTime?: Timestamp; + /** + * The ARN of an AWS Key Management Service (AWS KMS) key associated with a domain. + */ + encryptionKey?: Arn; + /** + * The number of repositories in the domain. + */ + repositoryCount?: Integer; + /** + * The total size of all assets in the domain. + */ + assetSizeBytes?: Long; + /** + * The Amazon Resource Name (ARN) of the Amazon S3 bucket that is used to store package assets in the domain. + */ + s3BucketArn?: Arn; + } + export type DomainName = string; + export type DomainStatus = "Active"|"Deleted"|string; + export interface DomainSummary { + /** + * The name of the domain. + */ + name?: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + owner?: AccountId; + /** + * The ARN of the domain. + */ + arn?: Arn; + /** + * A string that contains the status of the domain. The valid values are: Active Deleted + */ + status?: DomainStatus; + /** + * A timestamp that contains the date and time the domain was created. + */ + createdTime?: Timestamp; + /** + * The key used to encrypt the domain. + */ + encryptionKey?: Arn; + } + export type DomainSummaryList = DomainSummary[]; + export type ErrorMessage = string; + export type ExternalConnectionName = string; + export type ExternalConnectionStatus = "Available"|string; + export interface GetAuthorizationTokenRequest { + /** + * The name of the domain that is in scope for the generated authorization token. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The time, in seconds, that the generated authorization token is valid. Valid values are 0 and any number between 900 (15 minutes) and 43200 (12 hours). A value of 0 will set the expiration of the authorization token to the same expiration of the user's role's temporary credentials. + */ + durationSeconds?: AuthorizationTokenDurationSeconds; + } + export interface GetAuthorizationTokenResult { + /** + * The returned authentication token. + */ + authorizationToken?: String; + /** + * A timestamp that specifies the date and time the authorization token expires. + */ + expiration?: Timestamp; + } + export interface GetDomainPermissionsPolicyRequest { + /** + * The name of the domain to which the resource policy is attached. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + } + export interface GetDomainPermissionsPolicyResult { + /** + * The returned resource policy. + */ + policy?: ResourcePolicy; + } + export interface GetPackageVersionAssetRequest { + /** + * The name of the domain that contains the repository that contains the package version with the requested asset. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The repository that contains the package version with the requested asset. + */ + repository: RepositoryName; + /** + * A format that specifies the type of the package version with the requested asset file. The valid values are: npm pypi maven + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package that contains the requested asset. + */ + package: PackageName; + /** + * A string that contains the package version (for example, 3.5.2). + */ + packageVersion: PackageVersion; + /** + * The name of the requested asset. + */ + asset: AssetName; + /** + * The name of the package version revision that contains the requested asset. + */ + packageVersionRevision?: PackageVersionRevision; + } + export interface GetPackageVersionAssetResult { + /** + * The binary file, or asset, that is downloaded. + */ + asset?: Asset; + /** + * The name of the asset that is downloaded. + */ + assetName?: AssetName; + /** + * A string that contains the package version (for example, 3.5.2). + */ + packageVersion?: PackageVersion; + /** + * The name of the package version revision that contains the downloaded asset. + */ + packageVersionRevision?: PackageVersionRevision; + } + export interface GetPackageVersionReadmeRequest { + /** + * The name of the domain that contains the repository that contains the package version with the requested readme file. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The repository that contains the package with the requested readme file. + */ + repository: RepositoryName; + /** + * A format that specifies the type of the package version with the requested readme file. The valid values are: npm pypi maven + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package version that contains the requested readme file. + */ + package: PackageName; + /** + * A string that contains the package version (for example, 3.5.2). + */ + packageVersion: PackageVersion; + } + export interface GetPackageVersionReadmeResult { + /** + * The format of the package with the requested readme file. Valid format types are: npm pypi maven + */ + format?: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package that contains the returned readme file. + */ + package?: PackageName; + /** + * The version of the package with the requested readme file. + */ + version?: PackageVersion; + /** + * The current revision associated with the package version. + */ + versionRevision?: PackageVersionRevision; + /** + * The text of the returned readme file. + */ + readme?: String; + } + export interface GetRepositoryEndpointRequest { + /** + * The name of the domain that contains the repository. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository. + */ + repository: RepositoryName; + /** + * Returns which endpoint of a repository to return. A repository has one endpoint for each package format: npm pypi maven + */ + format: PackageFormat; + } + export interface GetRepositoryEndpointResult { + /** + * A string that specifies the URL of the returned endpoint. + */ + repositoryEndpoint?: String; + } + export interface GetRepositoryPermissionsPolicyRequest { + /** + * The name of the domain containing the repository whose associated resource policy is to be retrieved. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository whose associated resource policy is to be retrieved. + */ + repository: RepositoryName; + } + export interface GetRepositoryPermissionsPolicyResult { + /** + * The returned resource policy. + */ + policy?: ResourcePolicy; + } + export type HashAlgorithm = "MD5"|"SHA-1"|"SHA-256"|"SHA-512"|string; + export type HashValue = string; + export type Integer = number; + export interface LicenseInfo { + /** + * Name of the license. + */ + name?: String; + /** + * The URL for license data. + */ + url?: String; + } + export type LicenseInfoList = LicenseInfo[]; + export type ListDomainsMaxResults = number; + export interface ListDomainsRequest { + /** + * The maximum number of results to return per page. + */ + maxResults?: ListDomainsMaxResults; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListDomainsResult { + /** + * The returned list of DomainSummary objects. + */ + domains?: DomainSummaryList; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export type ListPackageVersionAssetsMaxResults = number; + export interface ListPackageVersionAssetsRequest { + /** + * The name of the domain that contains the repository associated with the package version assets. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that contains the package that contains the returned package version assets. + */ + repository: RepositoryName; + /** + * The format of the package that contains the returned package version assets. The valid package types are: npm: A Node Package Manager (npm) package. pypi: A Python Package Index (PyPI) package. maven: A Maven package that contains compiled code in a distributable format, such as a JAR file. + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package that contains the returned package version assets. + */ + package: PackageName; + /** + * A string that contains the package version (for example, 3.5.2). + */ + packageVersion: PackageVersion; + /** + * The maximum number of results to return per page. + */ + maxResults?: ListPackageVersionAssetsMaxResults; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListPackageVersionAssetsResult { + /** + * The format of the package that contains the returned package version assets. + */ + format?: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package that contains the returned package version assets. + */ + package?: PackageName; + /** + * The version of the package associated with the returned assets. + */ + version?: PackageVersion; + /** + * The current revision associated with the package version. + */ + versionRevision?: PackageVersionRevision; + /** + * If there are additional results, this is the token for the next set of results. + */ + nextToken?: PaginationToken; + /** + * The returned list of AssetSummary objects. + */ + assets?: AssetSummaryList; + } + export interface ListPackageVersionDependenciesRequest { + /** + * The name of the domain that contains the repository that contains the requested package version dependencies. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that contains the requested package version. + */ + repository: RepositoryName; + /** + * The format of the package with the requested dependencies. The valid package types are: npm: A Node Package Manager (npm) package. pypi: A Python Package Index (PyPI) package. maven: A Maven package that contains compiled code in a distributable format, such as a JAR file. + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package versions' package. + */ + package: PackageName; + /** + * A string that contains the package version (for example, 3.5.2). + */ + packageVersion: PackageVersion; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListPackageVersionDependenciesResult { + /** + * A format that specifies the type of the package that contains the returned dependencies. The valid values are: npm pypi maven + */ + format?: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package that contains the returned package versions dependencies. + */ + package?: PackageName; + /** + * The version of the package that is specified in the request. + */ + version?: PackageVersion; + /** + * The current revision associated with the package version. + */ + versionRevision?: PackageVersionRevision; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + /** + * The returned list of PackageDependency objects. + */ + dependencies?: PackageDependencyList; + } + export type ListPackageVersionsMaxResults = number; + export interface ListPackageVersionsRequest { + /** + * The name of the domain that contains the repository that contains the returned package versions. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository that contains the package. + */ + repository: RepositoryName; + /** + * The format of the returned packages. The valid package types are: npm: A Node Package Manager (npm) package. pypi: A Python Package Index (PyPI) package. maven: A Maven package that contains compiled code in a distributable format, such as a JAR file. + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package for which you want to return a list of package versions. + */ + package: PackageName; + /** + * A string that specifies the status of the package versions to include in the returned list. It can be one of the following: Published Unfinished Unlisted Archived Disposed + */ + status?: PackageVersionStatus; + /** + * How to sort the returned list of package versions. + */ + sortBy?: PackageVersionSortType; + /** + * The maximum number of results to return per page. + */ + maxResults?: ListPackageVersionsMaxResults; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListPackageVersionsResult { + /** + * The default package version to display. This depends on the package format: For Maven and PyPI packages, it's the most recently published package version. For npm packages, it's the version referenced by the latest tag. If the latest tag is not set, it's the most recently published package version. + */ + defaultDisplayVersion?: PackageVersion; + /** + * A format of the package. Valid package format values are: npm pypi maven + */ + format?: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package. + */ + package?: PackageName; + /** + * The returned list of PackageVersionSummary objects. + */ + versions?: PackageVersionSummaryList; + /** + * If there are additional results, this is the token for the next set of results. + */ + nextToken?: PaginationToken; + } + export type ListPackagesMaxResults = number; + export interface ListPackagesRequest { + /** + * The name of the domain that contains the repository that contains the requested list of packages. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository from which packages are to be listed. + */ + repository: RepositoryName; + /** + * The format of the packages. The valid package types are: npm: A Node Package Manager (npm) package. pypi: A Python Package Index (PyPI) package. maven: A Maven package that contains compiled code in a distributable format, such as a JAR file. + */ + format?: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * A prefix used to filter returned packages. Only packages with names that start with packagePrefix are returned. + */ + packagePrefix?: PackageName; + /** + * The maximum number of results to return per page. + */ + maxResults?: ListPackagesMaxResults; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListPackagesResult { + /** + * The list of returned PackageSummary objects. + */ + packages?: PackageSummaryList; + /** + * If there are additional results, this is the token for the next set of results. + */ + nextToken?: PaginationToken; + } + export type ListRepositoriesInDomainMaxResults = number; + export interface ListRepositoriesInDomainRequest { + /** + * The name of the domain that contains the returned list of repositories. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * Filter the list of repositories to only include those that are managed by the AWS account ID. + */ + administratorAccount?: AccountId; + /** + * A prefix used to filter returned repositories. Only repositories with names that start with repositoryPrefix are returned. + */ + repositoryPrefix?: RepositoryName; + /** + * The maximum number of results to return per page. + */ + maxResults?: ListRepositoriesInDomainMaxResults; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListRepositoriesInDomainResult { + /** + * The returned list of repositories. + */ + repositories?: RepositorySummaryList; + /** + * If there are additional results, this is the token for the next set of results. + */ + nextToken?: PaginationToken; + } + export type ListRepositoriesMaxResults = number; + export interface ListRepositoriesRequest { + /** + * A prefix used to filter returned repositories. Only repositories with names that start with repositoryPrefix are returned. + */ + repositoryPrefix?: RepositoryName; + /** + * The maximum number of results to return per page. + */ + maxResults?: ListRepositoriesMaxResults; + /** + * The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListRepositoriesResult { + /** + * The returned list of RepositorySummary objects. + */ + repositories?: RepositorySummaryList; + /** + * If there are additional results, this is the token for the next set of results. + */ + nextToken?: PaginationToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource to get tags for. + */ + resourceArn: Arn; + } + export interface ListTagsForResourceResult { + /** + * A list of tag key and value pairs associated with the specified resource. + */ + tags?: TagList; + } + export type Long = number; + export type LongOptional = number; + export interface PackageDependency { + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package that this package depends on. + */ + package?: PackageName; + /** + * The type of a package dependency. The possible values depend on the package type. Example types are compile, runtime, and test for Maven packages, and dev, prod, and optional for npm packages. + */ + dependencyType?: String; + /** + * The required version, or version range, of the package that this package depends on. The version format is specific to the package type. For example, the following are possible valid required versions: 1.2.3, ^2.3.4, or 4.x. + */ + versionRequirement?: String; + } + export type PackageDependencyList = PackageDependency[]; + export type PackageFormat = "npm"|"pypi"|"maven"|"nuget"|string; + export type PackageName = string; + export type PackageNamespace = string; + export interface PackageSummary { + /** + * The format of the package. Valid values are: npm pypi maven + */ + format?: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package. + */ + package?: PackageName; + } + export type PackageSummaryList = PackageSummary[]; + export type PackageVersion = string; + export interface PackageVersionDescription { + /** + * The format of the package version. The valid package formats are: npm: A Node Package Manager (npm) package. pypi: A Python Package Index (PyPI) package. maven: A Maven package that contains compiled code in a distributable format, such as a JAR file. + */ + format?: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the requested package. + */ + packageName?: PackageName; + /** + * The name of the package that is displayed. The displayName varies depending on the package version's format. For example, if an npm package is named ui, is in the namespace vue, and has the format npm, then the displayName is @vue/ui. + */ + displayName?: String255; + /** + * The version of the package. + */ + version?: PackageVersion; + /** + * A summary of the package version. The summary is extracted from the package. The information in and detail level of the summary depends on the package version's format. + */ + summary?: String; + /** + * The homepage associated with the package. + */ + homePage?: String; + /** + * The repository for the source code in the package version, or the source code used to build it. + */ + sourceCodeRepository?: String; + /** + * A timestamp that contains the date and time the package version was published. + */ + publishedTime?: Timestamp; + /** + * Information about licenses associated with the package version. + */ + licenses?: LicenseInfoList; + /** + * The revision of the package version. + */ + revision?: PackageVersionRevision; + /** + * A string that contains the status of the package version. It can be one of the following: Published Unfinished Unlisted Archived Disposed + */ + status?: PackageVersionStatus; + } + export interface PackageVersionError { + /** + * The error code associated with the error. Valid error codes are: ALREADY_EXISTS MISMATCHED_REVISION MISMATCHED_STATUS NOT_ALLOWED NOT_FOUND SKIPPED + */ + errorCode?: PackageVersionErrorCode; + /** + * The error message associated with the error. + */ + errorMessage?: ErrorMessage; + } + export type PackageVersionErrorCode = "ALREADY_EXISTS"|"MISMATCHED_REVISION"|"MISMATCHED_STATUS"|"NOT_ALLOWED"|"NOT_FOUND"|"SKIPPED"|string; + export type PackageVersionErrorMap = {[key: string]: PackageVersionError}; + export type PackageVersionList = PackageVersion[]; + export type PackageVersionRevision = string; + export type PackageVersionRevisionMap = {[key: string]: PackageVersionRevision}; + export type PackageVersionSortType = "PUBLISHED_TIME"|string; + export type PackageVersionStatus = "Published"|"Unfinished"|"Unlisted"|"Archived"|"Disposed"|"Deleted"|string; + export interface PackageVersionSummary { + /** + * Information about a package version. + */ + version: PackageVersion; + /** + * The revision associated with a package version. + */ + revision?: PackageVersionRevision; + /** + * A string that contains the status of the package version. It can be one of the following: Published Unfinished Unlisted Archived Disposed + */ + status: PackageVersionStatus; + } + export type PackageVersionSummaryList = PackageVersionSummary[]; + export type PaginationToken = string; + export type PolicyDocument = string; + export type PolicyRevision = string; + export interface PutDomainPermissionsPolicyRequest { + /** + * The name of the domain on which to set the resource policy. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. + */ + policyRevision?: PolicyRevision; + /** + * A valid displayable JSON Aspen policy string to be set as the access control resource policy on the provided domain. + */ + policyDocument: PolicyDocument; + } + export interface PutDomainPermissionsPolicyResult { + /** + * The resource policy that was set after processing the request. + */ + policy?: ResourcePolicy; + } + export interface PutRepositoryPermissionsPolicyRequest { + /** + * The name of the domain containing the repository to set the resource policy on. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository to set the resource policy on. + */ + repository: RepositoryName; + /** + * Sets the revision of the resource policy that specifies permissions to access the repository. This revision is used for optimistic locking, which prevents others from overwriting your changes to the repository's resource policy. + */ + policyRevision?: PolicyRevision; + /** + * A valid displayable JSON Aspen policy string to be set as the access control resource policy on the provided repository. + */ + policyDocument: PolicyDocument; + } + export interface PutRepositoryPermissionsPolicyResult { + /** + * The resource policy that was set after processing the request. + */ + policy?: ResourcePolicy; + } + export interface RepositoryDescription { + /** + * The name of the repository. + */ + name?: RepositoryName; + /** + * The 12-digit account number of the AWS account that manages the repository. + */ + administratorAccount?: AccountId; + /** + * The name of the domain that contains the repository. + */ + domainName?: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain that contains the repository. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The Amazon Resource Name (ARN) of the repository. + */ + arn?: Arn; + /** + * A text description of the repository. + */ + description?: Description; + /** + * A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories. + */ + upstreams?: UpstreamRepositoryInfoList; + /** + * An array of external connections associated with the repository. + */ + externalConnections?: RepositoryExternalConnectionInfoList; + } + export interface RepositoryExternalConnectionInfo { + /** + * The name of the external connection associated with a repository. + */ + externalConnectionName?: ExternalConnectionName; + /** + * The package format associated with a repository's external connection. The valid package formats are: npm: A Node Package Manager (npm) package. pypi: A Python Package Index (PyPI) package. maven: A Maven package that contains compiled code in a distributable format, such as a JAR file. + */ + packageFormat?: PackageFormat; + /** + * The status of the external connection of a repository. There is one valid value, Available. + */ + status?: ExternalConnectionStatus; + } + export type RepositoryExternalConnectionInfoList = RepositoryExternalConnectionInfo[]; + export type RepositoryName = string; + export interface RepositorySummary { + /** + * The name of the repository. + */ + name?: RepositoryName; + /** + * The AWS account ID that manages the repository. + */ + administratorAccount?: AccountId; + /** + * The name of the domain that contains the repository. + */ + domainName?: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The ARN of the repository. + */ + arn?: Arn; + /** + * The description of the repository. + */ + description?: Description; + } + export type RepositorySummaryList = RepositorySummary[]; + export interface ResourcePolicy { + /** + * The ARN of the resource associated with the resource policy + */ + resourceArn?: Arn; + /** + * The current revision of the resource policy. + */ + revision?: PolicyRevision; + /** + * The resource policy formatted in JSON. + */ + document?: PolicyDocument; + } + export type String = string; + export type String255 = string; + export interface SuccessfulPackageVersionInfo { + /** + * The revision of a package version. + */ + revision?: String; + /** + * The status of a package version. Valid statuses are: Published Unfinished Unlisted Archived Disposed + */ + status?: PackageVersionStatus; + } + export type SuccessfulPackageVersionInfoMap = {[key: string]: SuccessfulPackageVersionInfo}; + export interface Tag { + /** + * The tag key. + */ + key: TagKey; + /** + * The tag value. + */ + value: TagValue; + } + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagList = Tag[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that you want to add or update tags for. + */ + resourceArn: Arn; + /** + * The tags you want to modify or add to the resource. + */ + tags: TagList; + } + export interface TagResourceResult { + } + export type TagValue = string; + export type Timestamp = Date; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that you want to remove tags from. + */ + resourceArn: Arn; + /** + * The tag key for each tag that you want to remove from the resource. + */ + tagKeys: TagKeyList; + } + export interface UntagResourceResult { + } + export interface UpdatePackageVersionsStatusRequest { + /** + * The name of the domain that contains the repository that contains the package versions with a status to be updated. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The repository that contains the package versions with the status you want to update. + */ + repository: RepositoryName; + /** + * A format that specifies the type of the package with the statuses to update. The valid values are: npm pypi maven + */ + format: PackageFormat; + /** + * The namespace of the package. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package is its groupId. The namespace of an npm package is its scope. A Python package does not contain a corresponding component, so Python packages do not have a namespace. + */ + namespace?: PackageNamespace; + /** + * The name of the package with the version statuses to update. + */ + package: PackageName; + /** + * An array of strings that specify the versions of the package with the statuses to update. + */ + versions: PackageVersionList; + /** + * A map of package versions and package version revisions. The map key is the package version (for example, 3.5.2), and the map value is the package version revision. + */ + versionRevisions?: PackageVersionRevisionMap; + /** + * The package version’s expected status before it is updated. If expectedStatus is provided, the package version's status is updated only if its status at the time UpdatePackageVersionsStatus is called matches expectedStatus. + */ + expectedStatus?: PackageVersionStatus; + /** + * The status you want to change the package version status to. + */ + targetStatus: PackageVersionStatus; + } + export interface UpdatePackageVersionsStatusResult { + /** + * A list of PackageVersionError objects, one for each package version with a status that failed to update. + */ + successfulVersions?: SuccessfulPackageVersionInfoMap; + /** + * A list of SuccessfulPackageVersionInfo objects, one for each package version with a status that successfully updated. + */ + failedVersions?: PackageVersionErrorMap; + } + export interface UpdateRepositoryRequest { + /** + * The name of the domain associated with the repository to update. + */ + domain: DomainName; + /** + * The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. + */ + domainOwner?: AccountId; + /** + * The name of the repository to update. + */ + repository: RepositoryName; + /** + * An updated repository description. + */ + description?: Description; + /** + * A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when AWS CodeArtifact looks for a requested package version. For more information, see Working with upstream repositories. + */ + upstreams?: UpstreamRepositoryList; + } + export interface UpdateRepositoryResult { + /** + * The updated repository. + */ + repository?: RepositoryDescription; + } + export interface UpstreamRepository { + /** + * The name of an upstream repository. + */ + repositoryName: RepositoryName; + } + export interface UpstreamRepositoryInfo { + /** + * The name of an upstream repository. + */ + repositoryName?: RepositoryName; + } + export type UpstreamRepositoryInfoList = UpstreamRepositoryInfo[]; + export type UpstreamRepositoryList = UpstreamRepository[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-09-22"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CodeArtifact client. + */ + export import Types = CodeArtifact; +} +export = CodeArtifact; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codeartifact.js b/justdanceonline-main/node_modules/aws-sdk/clients/codeartifact.js new file mode 100644 index 0000000000000000000000000000000000000000..9893046c4ae450f8be35c7834f5225881c5424ff --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codeartifact.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['codeartifact'] = {}; +AWS.CodeArtifact = Service.defineService('codeartifact', ['2018-09-22']); +Object.defineProperty(apiLoader.services['codeartifact'], '2018-09-22', { + get: function get() { + var model = require('../apis/codeartifact-2018-09-22.min.json'); + model.paginators = require('../apis/codeartifact-2018-09-22.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CodeArtifact; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codebuild.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/codebuild.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..5d350deff02587c6a8a0f0ea3ca56328ecffc5b3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codebuild.d.ts @@ -0,0 +1,2932 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CodeBuild extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CodeBuild.Types.ClientConfiguration) + config: Config & CodeBuild.Types.ClientConfiguration; + /** + * Deletes one or more builds. + */ + batchDeleteBuilds(params: CodeBuild.Types.BatchDeleteBuildsInput, callback?: (err: AWSError, data: CodeBuild.Types.BatchDeleteBuildsOutput) => void): Request; + /** + * Deletes one or more builds. + */ + batchDeleteBuilds(callback?: (err: AWSError, data: CodeBuild.Types.BatchDeleteBuildsOutput) => void): Request; + /** + * Retrieves information about one or more batch builds. + */ + batchGetBuildBatches(params: CodeBuild.Types.BatchGetBuildBatchesInput, callback?: (err: AWSError, data: CodeBuild.Types.BatchGetBuildBatchesOutput) => void): Request; + /** + * Retrieves information about one or more batch builds. + */ + batchGetBuildBatches(callback?: (err: AWSError, data: CodeBuild.Types.BatchGetBuildBatchesOutput) => void): Request; + /** + * Gets information about one or more builds. + */ + batchGetBuilds(params: CodeBuild.Types.BatchGetBuildsInput, callback?: (err: AWSError, data: CodeBuild.Types.BatchGetBuildsOutput) => void): Request; + /** + * Gets information about one or more builds. + */ + batchGetBuilds(callback?: (err: AWSError, data: CodeBuild.Types.BatchGetBuildsOutput) => void): Request; + /** + * Gets information about one or more build projects. + */ + batchGetProjects(params: CodeBuild.Types.BatchGetProjectsInput, callback?: (err: AWSError, data: CodeBuild.Types.BatchGetProjectsOutput) => void): Request; + /** + * Gets information about one or more build projects. + */ + batchGetProjects(callback?: (err: AWSError, data: CodeBuild.Types.BatchGetProjectsOutput) => void): Request; + /** + * Returns an array of report groups. + */ + batchGetReportGroups(params: CodeBuild.Types.BatchGetReportGroupsInput, callback?: (err: AWSError, data: CodeBuild.Types.BatchGetReportGroupsOutput) => void): Request; + /** + * Returns an array of report groups. + */ + batchGetReportGroups(callback?: (err: AWSError, data: CodeBuild.Types.BatchGetReportGroupsOutput) => void): Request; + /** + * Returns an array of reports. + */ + batchGetReports(params: CodeBuild.Types.BatchGetReportsInput, callback?: (err: AWSError, data: CodeBuild.Types.BatchGetReportsOutput) => void): Request; + /** + * Returns an array of reports. + */ + batchGetReports(callback?: (err: AWSError, data: CodeBuild.Types.BatchGetReportsOutput) => void): Request; + /** + * Creates a build project. + */ + createProject(params: CodeBuild.Types.CreateProjectInput, callback?: (err: AWSError, data: CodeBuild.Types.CreateProjectOutput) => void): Request; + /** + * Creates a build project. + */ + createProject(callback?: (err: AWSError, data: CodeBuild.Types.CreateProjectOutput) => void): Request; + /** + * Creates a report group. A report group contains a collection of reports. + */ + createReportGroup(params: CodeBuild.Types.CreateReportGroupInput, callback?: (err: AWSError, data: CodeBuild.Types.CreateReportGroupOutput) => void): Request; + /** + * Creates a report group. A report group contains a collection of reports. + */ + createReportGroup(callback?: (err: AWSError, data: CodeBuild.Types.CreateReportGroupOutput) => void): Request; + /** + * For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, enables AWS CodeBuild to start rebuilding the source code every time a code change is pushed to the repository. If you enable webhooks for an AWS CodeBuild project, and the project is used as a build step in AWS CodePipeline, then two identical builds are created for each commit. One build is triggered through webhooks, and one through AWS CodePipeline. Because billing is on a per-build basis, you are billed for both builds. Therefore, if you are using AWS CodePipeline, we recommend that you disable webhooks in AWS CodeBuild. In the AWS CodeBuild console, clear the Webhook box. For more information, see step 5 in Change a Build Project's Settings. + */ + createWebhook(params: CodeBuild.Types.CreateWebhookInput, callback?: (err: AWSError, data: CodeBuild.Types.CreateWebhookOutput) => void): Request; + /** + * For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, enables AWS CodeBuild to start rebuilding the source code every time a code change is pushed to the repository. If you enable webhooks for an AWS CodeBuild project, and the project is used as a build step in AWS CodePipeline, then two identical builds are created for each commit. One build is triggered through webhooks, and one through AWS CodePipeline. Because billing is on a per-build basis, you are billed for both builds. Therefore, if you are using AWS CodePipeline, we recommend that you disable webhooks in AWS CodeBuild. In the AWS CodeBuild console, clear the Webhook box. For more information, see step 5 in Change a Build Project's Settings. + */ + createWebhook(callback?: (err: AWSError, data: CodeBuild.Types.CreateWebhookOutput) => void): Request; + /** + * Deletes a batch build. + */ + deleteBuildBatch(params: CodeBuild.Types.DeleteBuildBatchInput, callback?: (err: AWSError, data: CodeBuild.Types.DeleteBuildBatchOutput) => void): Request; + /** + * Deletes a batch build. + */ + deleteBuildBatch(callback?: (err: AWSError, data: CodeBuild.Types.DeleteBuildBatchOutput) => void): Request; + /** + * Deletes a build project. When you delete a project, its builds are not deleted. + */ + deleteProject(params: CodeBuild.Types.DeleteProjectInput, callback?: (err: AWSError, data: CodeBuild.Types.DeleteProjectOutput) => void): Request; + /** + * Deletes a build project. When you delete a project, its builds are not deleted. + */ + deleteProject(callback?: (err: AWSError, data: CodeBuild.Types.DeleteProjectOutput) => void): Request; + /** + * Deletes a report. + */ + deleteReport(params: CodeBuild.Types.DeleteReportInput, callback?: (err: AWSError, data: CodeBuild.Types.DeleteReportOutput) => void): Request; + /** + * Deletes a report. + */ + deleteReport(callback?: (err: AWSError, data: CodeBuild.Types.DeleteReportOutput) => void): Request; + /** + * Deletes a report group. Before you delete a report group, you must delete its reports. + */ + deleteReportGroup(params: CodeBuild.Types.DeleteReportGroupInput, callback?: (err: AWSError, data: CodeBuild.Types.DeleteReportGroupOutput) => void): Request; + /** + * Deletes a report group. Before you delete a report group, you must delete its reports. + */ + deleteReportGroup(callback?: (err: AWSError, data: CodeBuild.Types.DeleteReportGroupOutput) => void): Request; + /** + * Deletes a resource policy that is identified by its resource ARN. + */ + deleteResourcePolicy(params: CodeBuild.Types.DeleteResourcePolicyInput, callback?: (err: AWSError, data: CodeBuild.Types.DeleteResourcePolicyOutput) => void): Request; + /** + * Deletes a resource policy that is identified by its resource ARN. + */ + deleteResourcePolicy(callback?: (err: AWSError, data: CodeBuild.Types.DeleteResourcePolicyOutput) => void): Request; + /** + * Deletes a set of GitHub, GitHub Enterprise, or Bitbucket source credentials. + */ + deleteSourceCredentials(params: CodeBuild.Types.DeleteSourceCredentialsInput, callback?: (err: AWSError, data: CodeBuild.Types.DeleteSourceCredentialsOutput) => void): Request; + /** + * Deletes a set of GitHub, GitHub Enterprise, or Bitbucket source credentials. + */ + deleteSourceCredentials(callback?: (err: AWSError, data: CodeBuild.Types.DeleteSourceCredentialsOutput) => void): Request; + /** + * For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, stops AWS CodeBuild from rebuilding the source code every time a code change is pushed to the repository. + */ + deleteWebhook(params: CodeBuild.Types.DeleteWebhookInput, callback?: (err: AWSError, data: CodeBuild.Types.DeleteWebhookOutput) => void): Request; + /** + * For an existing AWS CodeBuild build project that has its source code stored in a GitHub or Bitbucket repository, stops AWS CodeBuild from rebuilding the source code every time a code change is pushed to the repository. + */ + deleteWebhook(callback?: (err: AWSError, data: CodeBuild.Types.DeleteWebhookOutput) => void): Request; + /** + * Retrieves one or more code coverage reports. + */ + describeCodeCoverages(params: CodeBuild.Types.DescribeCodeCoveragesInput, callback?: (err: AWSError, data: CodeBuild.Types.DescribeCodeCoveragesOutput) => void): Request; + /** + * Retrieves one or more code coverage reports. + */ + describeCodeCoverages(callback?: (err: AWSError, data: CodeBuild.Types.DescribeCodeCoveragesOutput) => void): Request; + /** + * Returns a list of details about test cases for a report. + */ + describeTestCases(params: CodeBuild.Types.DescribeTestCasesInput, callback?: (err: AWSError, data: CodeBuild.Types.DescribeTestCasesOutput) => void): Request; + /** + * Returns a list of details about test cases for a report. + */ + describeTestCases(callback?: (err: AWSError, data: CodeBuild.Types.DescribeTestCasesOutput) => void): Request; + /** + * Analyzes and accumulates test report values for the specified test reports. + */ + getReportGroupTrend(params: CodeBuild.Types.GetReportGroupTrendInput, callback?: (err: AWSError, data: CodeBuild.Types.GetReportGroupTrendOutput) => void): Request; + /** + * Analyzes and accumulates test report values for the specified test reports. + */ + getReportGroupTrend(callback?: (err: AWSError, data: CodeBuild.Types.GetReportGroupTrendOutput) => void): Request; + /** + * Gets a resource policy that is identified by its resource ARN. + */ + getResourcePolicy(params: CodeBuild.Types.GetResourcePolicyInput, callback?: (err: AWSError, data: CodeBuild.Types.GetResourcePolicyOutput) => void): Request; + /** + * Gets a resource policy that is identified by its resource ARN. + */ + getResourcePolicy(callback?: (err: AWSError, data: CodeBuild.Types.GetResourcePolicyOutput) => void): Request; + /** + * Imports the source repository credentials for an AWS CodeBuild project that has its source code stored in a GitHub, GitHub Enterprise, or Bitbucket repository. + */ + importSourceCredentials(params: CodeBuild.Types.ImportSourceCredentialsInput, callback?: (err: AWSError, data: CodeBuild.Types.ImportSourceCredentialsOutput) => void): Request; + /** + * Imports the source repository credentials for an AWS CodeBuild project that has its source code stored in a GitHub, GitHub Enterprise, or Bitbucket repository. + */ + importSourceCredentials(callback?: (err: AWSError, data: CodeBuild.Types.ImportSourceCredentialsOutput) => void): Request; + /** + * Resets the cache for a project. + */ + invalidateProjectCache(params: CodeBuild.Types.InvalidateProjectCacheInput, callback?: (err: AWSError, data: CodeBuild.Types.InvalidateProjectCacheOutput) => void): Request; + /** + * Resets the cache for a project. + */ + invalidateProjectCache(callback?: (err: AWSError, data: CodeBuild.Types.InvalidateProjectCacheOutput) => void): Request; + /** + * Retrieves the identifiers of your build batches in the current region. + */ + listBuildBatches(params: CodeBuild.Types.ListBuildBatchesInput, callback?: (err: AWSError, data: CodeBuild.Types.ListBuildBatchesOutput) => void): Request; + /** + * Retrieves the identifiers of your build batches in the current region. + */ + listBuildBatches(callback?: (err: AWSError, data: CodeBuild.Types.ListBuildBatchesOutput) => void): Request; + /** + * Retrieves the identifiers of the build batches for a specific project. + */ + listBuildBatchesForProject(params: CodeBuild.Types.ListBuildBatchesForProjectInput, callback?: (err: AWSError, data: CodeBuild.Types.ListBuildBatchesForProjectOutput) => void): Request; + /** + * Retrieves the identifiers of the build batches for a specific project. + */ + listBuildBatchesForProject(callback?: (err: AWSError, data: CodeBuild.Types.ListBuildBatchesForProjectOutput) => void): Request; + /** + * Gets a list of build IDs, with each build ID representing a single build. + */ + listBuilds(params: CodeBuild.Types.ListBuildsInput, callback?: (err: AWSError, data: CodeBuild.Types.ListBuildsOutput) => void): Request; + /** + * Gets a list of build IDs, with each build ID representing a single build. + */ + listBuilds(callback?: (err: AWSError, data: CodeBuild.Types.ListBuildsOutput) => void): Request; + /** + * Gets a list of build identifiers for the specified build project, with each build identifier representing a single build. + */ + listBuildsForProject(params: CodeBuild.Types.ListBuildsForProjectInput, callback?: (err: AWSError, data: CodeBuild.Types.ListBuildsForProjectOutput) => void): Request; + /** + * Gets a list of build identifiers for the specified build project, with each build identifier representing a single build. + */ + listBuildsForProject(callback?: (err: AWSError, data: CodeBuild.Types.ListBuildsForProjectOutput) => void): Request; + /** + * Gets information about Docker images that are managed by AWS CodeBuild. + */ + listCuratedEnvironmentImages(params: CodeBuild.Types.ListCuratedEnvironmentImagesInput, callback?: (err: AWSError, data: CodeBuild.Types.ListCuratedEnvironmentImagesOutput) => void): Request; + /** + * Gets information about Docker images that are managed by AWS CodeBuild. + */ + listCuratedEnvironmentImages(callback?: (err: AWSError, data: CodeBuild.Types.ListCuratedEnvironmentImagesOutput) => void): Request; + /** + * Gets a list of build project names, with each build project name representing a single build project. + */ + listProjects(params: CodeBuild.Types.ListProjectsInput, callback?: (err: AWSError, data: CodeBuild.Types.ListProjectsOutput) => void): Request; + /** + * Gets a list of build project names, with each build project name representing a single build project. + */ + listProjects(callback?: (err: AWSError, data: CodeBuild.Types.ListProjectsOutput) => void): Request; + /** + * Gets a list ARNs for the report groups in the current AWS account. + */ + listReportGroups(params: CodeBuild.Types.ListReportGroupsInput, callback?: (err: AWSError, data: CodeBuild.Types.ListReportGroupsOutput) => void): Request; + /** + * Gets a list ARNs for the report groups in the current AWS account. + */ + listReportGroups(callback?: (err: AWSError, data: CodeBuild.Types.ListReportGroupsOutput) => void): Request; + /** + * Returns a list of ARNs for the reports in the current AWS account. + */ + listReports(params: CodeBuild.Types.ListReportsInput, callback?: (err: AWSError, data: CodeBuild.Types.ListReportsOutput) => void): Request; + /** + * Returns a list of ARNs for the reports in the current AWS account. + */ + listReports(callback?: (err: AWSError, data: CodeBuild.Types.ListReportsOutput) => void): Request; + /** + * Returns a list of ARNs for the reports that belong to a ReportGroup. + */ + listReportsForReportGroup(params: CodeBuild.Types.ListReportsForReportGroupInput, callback?: (err: AWSError, data: CodeBuild.Types.ListReportsForReportGroupOutput) => void): Request; + /** + * Returns a list of ARNs for the reports that belong to a ReportGroup. + */ + listReportsForReportGroup(callback?: (err: AWSError, data: CodeBuild.Types.ListReportsForReportGroupOutput) => void): Request; + /** + * Gets a list of projects that are shared with other AWS accounts or users. + */ + listSharedProjects(params: CodeBuild.Types.ListSharedProjectsInput, callback?: (err: AWSError, data: CodeBuild.Types.ListSharedProjectsOutput) => void): Request; + /** + * Gets a list of projects that are shared with other AWS accounts or users. + */ + listSharedProjects(callback?: (err: AWSError, data: CodeBuild.Types.ListSharedProjectsOutput) => void): Request; + /** + * Gets a list of report groups that are shared with other AWS accounts or users. + */ + listSharedReportGroups(params: CodeBuild.Types.ListSharedReportGroupsInput, callback?: (err: AWSError, data: CodeBuild.Types.ListSharedReportGroupsOutput) => void): Request; + /** + * Gets a list of report groups that are shared with other AWS accounts or users. + */ + listSharedReportGroups(callback?: (err: AWSError, data: CodeBuild.Types.ListSharedReportGroupsOutput) => void): Request; + /** + * Returns a list of SourceCredentialsInfo objects. + */ + listSourceCredentials(params: CodeBuild.Types.ListSourceCredentialsInput, callback?: (err: AWSError, data: CodeBuild.Types.ListSourceCredentialsOutput) => void): Request; + /** + * Returns a list of SourceCredentialsInfo objects. + */ + listSourceCredentials(callback?: (err: AWSError, data: CodeBuild.Types.ListSourceCredentialsOutput) => void): Request; + /** + * Stores a resource policy for the ARN of a Project or ReportGroup object. + */ + putResourcePolicy(params: CodeBuild.Types.PutResourcePolicyInput, callback?: (err: AWSError, data: CodeBuild.Types.PutResourcePolicyOutput) => void): Request; + /** + * Stores a resource policy for the ARN of a Project or ReportGroup object. + */ + putResourcePolicy(callback?: (err: AWSError, data: CodeBuild.Types.PutResourcePolicyOutput) => void): Request; + /** + * Restarts a build. + */ + retryBuild(params: CodeBuild.Types.RetryBuildInput, callback?: (err: AWSError, data: CodeBuild.Types.RetryBuildOutput) => void): Request; + /** + * Restarts a build. + */ + retryBuild(callback?: (err: AWSError, data: CodeBuild.Types.RetryBuildOutput) => void): Request; + /** + * Restarts a failed batch build. Only batch builds that have failed can be retried. + */ + retryBuildBatch(params: CodeBuild.Types.RetryBuildBatchInput, callback?: (err: AWSError, data: CodeBuild.Types.RetryBuildBatchOutput) => void): Request; + /** + * Restarts a failed batch build. Only batch builds that have failed can be retried. + */ + retryBuildBatch(callback?: (err: AWSError, data: CodeBuild.Types.RetryBuildBatchOutput) => void): Request; + /** + * Starts running a build. + */ + startBuild(params: CodeBuild.Types.StartBuildInput, callback?: (err: AWSError, data: CodeBuild.Types.StartBuildOutput) => void): Request; + /** + * Starts running a build. + */ + startBuild(callback?: (err: AWSError, data: CodeBuild.Types.StartBuildOutput) => void): Request; + /** + * Starts a batch build for a project. + */ + startBuildBatch(params: CodeBuild.Types.StartBuildBatchInput, callback?: (err: AWSError, data: CodeBuild.Types.StartBuildBatchOutput) => void): Request; + /** + * Starts a batch build for a project. + */ + startBuildBatch(callback?: (err: AWSError, data: CodeBuild.Types.StartBuildBatchOutput) => void): Request; + /** + * Attempts to stop running a build. + */ + stopBuild(params: CodeBuild.Types.StopBuildInput, callback?: (err: AWSError, data: CodeBuild.Types.StopBuildOutput) => void): Request; + /** + * Attempts to stop running a build. + */ + stopBuild(callback?: (err: AWSError, data: CodeBuild.Types.StopBuildOutput) => void): Request; + /** + * Stops a running batch build. + */ + stopBuildBatch(params: CodeBuild.Types.StopBuildBatchInput, callback?: (err: AWSError, data: CodeBuild.Types.StopBuildBatchOutput) => void): Request; + /** + * Stops a running batch build. + */ + stopBuildBatch(callback?: (err: AWSError, data: CodeBuild.Types.StopBuildBatchOutput) => void): Request; + /** + * Changes the settings of a build project. + */ + updateProject(params: CodeBuild.Types.UpdateProjectInput, callback?: (err: AWSError, data: CodeBuild.Types.UpdateProjectOutput) => void): Request; + /** + * Changes the settings of a build project. + */ + updateProject(callback?: (err: AWSError, data: CodeBuild.Types.UpdateProjectOutput) => void): Request; + /** + * Updates a report group. + */ + updateReportGroup(params: CodeBuild.Types.UpdateReportGroupInput, callback?: (err: AWSError, data: CodeBuild.Types.UpdateReportGroupOutput) => void): Request; + /** + * Updates a report group. + */ + updateReportGroup(callback?: (err: AWSError, data: CodeBuild.Types.UpdateReportGroupOutput) => void): Request; + /** + * Updates the webhook associated with an AWS CodeBuild build project. If you use Bitbucket for your repository, rotateSecret is ignored. + */ + updateWebhook(params: CodeBuild.Types.UpdateWebhookInput, callback?: (err: AWSError, data: CodeBuild.Types.UpdateWebhookOutput) => void): Request; + /** + * Updates the webhook associated with an AWS CodeBuild build project. If you use Bitbucket for your repository, rotateSecret is ignored. + */ + updateWebhook(callback?: (err: AWSError, data: CodeBuild.Types.UpdateWebhookOutput) => void): Request; +} +declare namespace CodeBuild { + export type ArtifactNamespace = "NONE"|"BUILD_ID"|string; + export type ArtifactPackaging = "NONE"|"ZIP"|string; + export type ArtifactsType = "CODEPIPELINE"|"S3"|"NO_ARTIFACTS"|string; + export type AuthType = "OAUTH"|"BASIC_AUTH"|"PERSONAL_ACCESS_TOKEN"|string; + export interface BatchDeleteBuildsInput { + /** + * The IDs of the builds to delete. + */ + ids: BuildIds; + } + export interface BatchDeleteBuildsOutput { + /** + * The IDs of the builds that were successfully deleted. + */ + buildsDeleted?: BuildIds; + /** + * Information about any builds that could not be successfully deleted. + */ + buildsNotDeleted?: BuildsNotDeleted; + } + export interface BatchGetBuildBatchesInput { + /** + * An array that contains the batch build identifiers to retrieve. + */ + ids: BuildBatchIds; + } + export interface BatchGetBuildBatchesOutput { + /** + * An array of BuildBatch objects that represent the retrieved batch builds. + */ + buildBatches?: BuildBatches; + /** + * An array that contains the identifiers of any batch builds that are not found. + */ + buildBatchesNotFound?: BuildBatchIds; + } + export interface BatchGetBuildsInput { + /** + * The IDs of the builds. + */ + ids: BuildIds; + } + export interface BatchGetBuildsOutput { + /** + * Information about the requested builds. + */ + builds?: Builds; + /** + * The IDs of builds for which information could not be found. + */ + buildsNotFound?: BuildIds; + } + export interface BatchGetProjectsInput { + /** + * The names or ARNs of the build projects. To get information about a project shared with your AWS account, its ARN must be specified. You cannot specify a shared project using its name. + */ + names: ProjectNames; + } + export interface BatchGetProjectsOutput { + /** + * Information about the requested build projects. + */ + projects?: Projects; + /** + * The names of build projects for which information could not be found. + */ + projectsNotFound?: ProjectNames; + } + export interface BatchGetReportGroupsInput { + /** + * An array of report group ARNs that identify the report groups to return. + */ + reportGroupArns: ReportGroupArns; + } + export interface BatchGetReportGroupsOutput { + /** + * The array of report groups returned by BatchGetReportGroups. + */ + reportGroups?: ReportGroups; + /** + * An array of ARNs passed to BatchGetReportGroups that are not associated with a ReportGroup. + */ + reportGroupsNotFound?: ReportGroupArns; + } + export interface BatchGetReportsInput { + /** + * An array of ARNs that identify the Report objects to return. + */ + reportArns: ReportArns; + } + export interface BatchGetReportsOutput { + /** + * The array of Report objects returned by BatchGetReports. + */ + reports?: Reports; + /** + * An array of ARNs passed to BatchGetReportGroups that are not associated with a Report. + */ + reportsNotFound?: ReportArns; + } + export interface BatchRestrictions { + /** + * Specifies the maximum number of builds allowed. + */ + maximumBuildsAllowed?: WrapperInt; + /** + * An array of strings that specify the compute types that are allowed for the batch build. See Build environment compute types in the AWS CodeBuild User Guide for these values. + */ + computeTypesAllowed?: ComputeTypesAllowed; + } + export type Boolean = boolean; + export type BucketOwnerAccess = "NONE"|"READ_ONLY"|"FULL"|string; + export interface Build { + /** + * The unique ID for the build. + */ + id?: NonEmptyString; + /** + * The Amazon Resource Name (ARN) of the build. + */ + arn?: NonEmptyString; + /** + * The number of the build. For each project, the buildNumber of its first build is 1. The buildNumber of each subsequent build is incremented by 1. If a build is deleted, the buildNumber of other builds does not change. + */ + buildNumber?: WrapperLong; + /** + * When the build process started, expressed in Unix time format. + */ + startTime?: Timestamp; + /** + * When the build process ended, expressed in Unix time format. + */ + endTime?: Timestamp; + /** + * The current build phase. + */ + currentPhase?: String; + /** + * The current status of the build. Valid values include: FAILED: The build failed. FAULT: The build faulted. IN_PROGRESS: The build is still in progress. STOPPED: The build stopped. SUCCEEDED: The build succeeded. TIMED_OUT: The build timed out. + */ + buildStatus?: StatusType; + /** + * Any version identifier for the version of the source code to be built. If sourceVersion is specified at the project level, then this sourceVersion (at the build level) takes precedence. For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide. + */ + sourceVersion?: NonEmptyString; + /** + * An identifier for the version of this build's source code. For AWS CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. For AWS CodePipeline, the source revision provided by AWS CodePipeline. For Amazon S3, this does not apply. + */ + resolvedSourceVersion?: NonEmptyString; + /** + * The name of the AWS CodeBuild project. + */ + projectName?: NonEmptyString; + /** + * Information about all previous build phases that are complete and information about any current build phase that is not yet complete. + */ + phases?: BuildPhases; + /** + * Information about the source code to be built. + */ + source?: ProjectSource; + /** + * An array of ProjectSource objects. + */ + secondarySources?: ProjectSources; + /** + * An array of ProjectSourceVersion objects. Each ProjectSourceVersion must be one of: For AWS CodeCommit: the commit ID, branch, or Git tag to use. For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example, pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Amazon S3: the version ID of the object that represents the build input ZIP file to use. + */ + secondarySourceVersions?: ProjectSecondarySourceVersions; + /** + * Information about the output artifacts for the build. + */ + artifacts?: BuildArtifacts; + /** + * An array of ProjectArtifacts objects. + */ + secondaryArtifacts?: BuildArtifactsList; + /** + * Information about the cache for the build. + */ + cache?: ProjectCache; + /** + * Information about the build environment for this build. + */ + environment?: ProjectEnvironment; + /** + * The name of a service role used for this build. + */ + serviceRole?: NonEmptyString; + /** + * Information about the build's logs in Amazon CloudWatch Logs. + */ + logs?: LogsLocation; + /** + * How long, in minutes, for AWS CodeBuild to wait before timing out this build if it does not get marked as completed. + */ + timeoutInMinutes?: WrapperInt; + /** + * The number of minutes a build is allowed to be queued before it times out. + */ + queuedTimeoutInMinutes?: WrapperInt; + /** + * Whether the build is complete. True if complete; otherwise, false. + */ + buildComplete?: Boolean; + /** + * The entity that started the build. Valid values include: If AWS CodePipeline started the build, the pipeline's name (for example, codepipeline/my-demo-pipeline). If an AWS Identity and Access Management (IAM) user started the build, the user's name (for example, MyUserName). If the Jenkins plugin for AWS CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. + */ + initiator?: String; + /** + * If your AWS CodeBuild project accesses resources in an Amazon VPC, you provide this parameter that identifies the VPC ID and the list of security group IDs and subnet IDs. The security groups and subnets must belong to the same VPC. You must provide at least one security group and one subnet ID. + */ + vpcConfig?: VpcConfig; + /** + * Describes a network interface. + */ + networkInterface?: NetworkInterface; + /** + * The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key. You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/<alias-name>). + */ + encryptionKey?: NonEmptyString; + /** + * A list of exported environment variables for this build. Exported environment variables are used in conjunction with AWS CodePipeline to export environment variables from the current build stage to subsequent stages in the pipeline. For more information, see Working with variables in the AWS CodePipeline User Guide. + */ + exportedEnvironmentVariables?: ExportedEnvironmentVariables; + /** + * An array of the ARNs associated with this build's reports. + */ + reportArns?: BuildReportArns; + /** + * An array of ProjectFileSystemLocation objects for a CodeBuild build project. A ProjectFileSystemLocation object specifies the identifier, location, mountOptions, mountPoint, and type of a file system created using Amazon Elastic File System. + */ + fileSystemLocations?: ProjectFileSystemLocations; + /** + * Contains information about the debug session for this build. + */ + debugSession?: DebugSession; + /** + * The ARN of the batch build that this build is a member of, if applicable. + */ + buildBatchArn?: String; + } + export interface BuildArtifacts { + /** + * Information about the location of the build artifacts. + */ + location?: String; + /** + * The SHA-256 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. This value is available only if the build project's packaging value is set to ZIP. + */ + sha256sum?: String; + /** + * The MD5 hash of the build artifact. You can use this hash along with a checksum tool to confirm file integrity and authenticity. This value is available only if the build project's packaging value is set to ZIP. + */ + md5sum?: String; + /** + * If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. + */ + overrideArtifactName?: WrapperBoolean; + /** + * Information that tells you if encryption for build artifacts is disabled. + */ + encryptionDisabled?: WrapperBoolean; + /** + * An identifier for this artifact definition. + */ + artifactIdentifier?: String; + bucketOwnerAccess?: BucketOwnerAccess; + } + export type BuildArtifactsList = BuildArtifacts[]; + export interface BuildBatch { + /** + * The identifier of the batch build. + */ + id?: NonEmptyString; + /** + * The ARN of the batch build. + */ + arn?: NonEmptyString; + /** + * The date and time that the batch build started. + */ + startTime?: Timestamp; + /** + * The date and time that the batch build ended. + */ + endTime?: Timestamp; + /** + * The current phase of the batch build. + */ + currentPhase?: String; + /** + * The status of the batch build. + */ + buildBatchStatus?: StatusType; + /** + * The identifier of the version of the source code to be built. + */ + sourceVersion?: NonEmptyString; + /** + * The identifier of the resolved version of this batch build's source code. For AWS CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit ID. For AWS CodePipeline, the source revision provided by AWS CodePipeline. For Amazon S3, this does not apply. + */ + resolvedSourceVersion?: NonEmptyString; + /** + * The name of the batch build project. + */ + projectName?: NonEmptyString; + /** + * An array of BuildBatchPhase objects the specify the phases of the batch build. + */ + phases?: BuildBatchPhases; + source?: ProjectSource; + /** + * An array of ProjectSource objects that define the sources for the batch build. + */ + secondarySources?: ProjectSources; + /** + * An array of ProjectSourceVersion objects. Each ProjectSourceVersion must be one of: For AWS CodeCommit: the commit ID, branch, or Git tag to use. For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example, pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Amazon S3: the version ID of the object that represents the build input ZIP file to use. + */ + secondarySourceVersions?: ProjectSecondarySourceVersions; + /** + * A BuildArtifacts object the defines the build artifacts for this batch build. + */ + artifacts?: BuildArtifacts; + /** + * An array of BuildArtifacts objects the define the build artifacts for this batch build. + */ + secondaryArtifacts?: BuildArtifactsList; + cache?: ProjectCache; + environment?: ProjectEnvironment; + /** + * The name of a service role used for builds in the batch. + */ + serviceRole?: NonEmptyString; + logConfig?: LogsConfig; + /** + * Specifies the maximum amount of time, in minutes, that the build in a batch must be completed in. + */ + buildTimeoutInMinutes?: WrapperInt; + /** + * Specifies the amount of time, in minutes, that the batch build is allowed to be queued before it times out. + */ + queuedTimeoutInMinutes?: WrapperInt; + /** + * Indicates if the batch build is complete. + */ + complete?: Boolean; + /** + * The entity that started the batch build. Valid values include: If AWS CodePipeline started the build, the pipeline's name (for example, codepipeline/my-demo-pipeline). If an AWS Identity and Access Management (IAM) user started the build, the user's name. If the Jenkins plugin for AWS CodeBuild started the build, the string CodeBuild-Jenkins-Plugin. + */ + initiator?: String; + vpcConfig?: VpcConfig; + /** + * The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the batch build output artifacts. You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key. You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/<alias-name>). + */ + encryptionKey?: NonEmptyString; + /** + * The number of the batch build. For each project, the buildBatchNumber of its first batch build is 1. The buildBatchNumber of each subsequent batch build is incremented by 1. If a batch build is deleted, the buildBatchNumber of other batch builds does not change. + */ + buildBatchNumber?: WrapperLong; + /** + * An array of ProjectFileSystemLocation objects for the batch build project. A ProjectFileSystemLocation object specifies the identifier, location, mountOptions, mountPoint, and type of a file system created using Amazon Elastic File System. + */ + fileSystemLocations?: ProjectFileSystemLocations; + buildBatchConfig?: ProjectBuildBatchConfig; + /** + * An array of BuildGroup objects that define the build groups for the batch build. + */ + buildGroups?: BuildGroups; + /** + * Specifies if session debugging is enabled for this batch build. For more information, see Viewing a running build in Session Manager. Batch session debugging is not supported for matrix batch builds. + */ + debugSessionEnabled?: WrapperBoolean; + } + export interface BuildBatchFilter { + /** + * The status of the batch builds to retrieve. Only batch builds that have this status will be retrieved. + */ + status?: StatusType; + } + export type BuildBatchIds = NonEmptyString[]; + export interface BuildBatchPhase { + /** + * The name of the batch build phase. Valid values include: COMBINE_ARTIFACTS Build output artifacts are being combined and uploaded to the output location. DOWNLOAD_BATCHSPEC The batch build specification is being downloaded. FAILED One or more of the builds failed. IN_PROGRESS The batch build is in progress. STOPPED The batch build was stopped. SUBMITTED The btach build has been submitted. SUCCEEDED The batch build succeeded. + */ + phaseType?: BuildBatchPhaseType; + /** + * The current status of the batch build phase. Valid values include: FAILED The build phase failed. FAULT The build phase faulted. IN_PROGRESS The build phase is still in progress. QUEUED The build has been submitted and is queued behind other submitted builds. STOPPED The build phase stopped. SUCCEEDED The build phase succeeded. TIMED_OUT The build phase timed out. + */ + phaseStatus?: StatusType; + /** + * When the batch build phase started, expressed in Unix time format. + */ + startTime?: Timestamp; + /** + * When the batch build phase ended, expressed in Unix time format. + */ + endTime?: Timestamp; + /** + * How long, in seconds, between the starting and ending times of the batch build's phase. + */ + durationInSeconds?: WrapperLong; + /** + * Additional information about the batch build phase. Especially to help troubleshoot a failed batch build. + */ + contexts?: PhaseContexts; + } + export type BuildBatchPhaseType = "SUBMITTED"|"DOWNLOAD_BATCHSPEC"|"IN_PROGRESS"|"COMBINE_ARTIFACTS"|"SUCCEEDED"|"FAILED"|"STOPPED"|string; + export type BuildBatchPhases = BuildBatchPhase[]; + export type BuildBatches = BuildBatch[]; + export interface BuildGroup { + /** + * Contains the identifier of the build group. + */ + identifier?: String; + /** + * An array of strings that contain the identifiers of the build groups that this build group depends on. + */ + dependsOn?: Identifiers; + /** + * Specifies if failures in this build group can be ignored. + */ + ignoreFailure?: Boolean; + /** + * A BuildSummary object that contains a summary of the current build group. + */ + currentBuildSummary?: BuildSummary; + /** + * An array of BuildSummary objects that contain summaries of previous build groups. + */ + priorBuildSummaryList?: BuildSummaries; + } + export type BuildGroups = BuildGroup[]; + export type BuildIds = NonEmptyString[]; + export interface BuildNotDeleted { + /** + * The ID of the build that could not be successfully deleted. + */ + id?: NonEmptyString; + /** + * Additional information about the build that could not be successfully deleted. + */ + statusCode?: String; + } + export interface BuildPhase { + /** + * The name of the build phase. Valid values include: BUILD: Core build activities typically occur in this build phase. COMPLETED: The build has been completed. DOWNLOAD_SOURCE: Source code is being downloaded in this build phase. FINALIZING: The build process is completing in this build phase. INSTALL: Installation activities typically occur in this build phase. POST_BUILD: Post-build activities typically occur in this build phase. PRE_BUILD: Pre-build activities typically occur in this build phase. PROVISIONING: The build environment is being set up. QUEUED: The build has been submitted and is queued behind other submitted builds. SUBMITTED: The build has been submitted. UPLOAD_ARTIFACTS: Build output artifacts are being uploaded to the output location. + */ + phaseType?: BuildPhaseType; + /** + * The current status of the build phase. Valid values include: FAILED The build phase failed. FAULT The build phase faulted. IN_PROGRESS The build phase is still in progress. QUEUED The build has been submitted and is queued behind other submitted builds. STOPPED The build phase stopped. SUCCEEDED The build phase succeeded. TIMED_OUT The build phase timed out. + */ + phaseStatus?: StatusType; + /** + * When the build phase started, expressed in Unix time format. + */ + startTime?: Timestamp; + /** + * When the build phase ended, expressed in Unix time format. + */ + endTime?: Timestamp; + /** + * How long, in seconds, between the starting and ending times of the build's phase. + */ + durationInSeconds?: WrapperLong; + /** + * Additional information about a build phase, especially to help troubleshoot a failed build. + */ + contexts?: PhaseContexts; + } + export type BuildPhaseType = "SUBMITTED"|"QUEUED"|"PROVISIONING"|"DOWNLOAD_SOURCE"|"INSTALL"|"PRE_BUILD"|"BUILD"|"POST_BUILD"|"UPLOAD_ARTIFACTS"|"FINALIZING"|"COMPLETED"|string; + export type BuildPhases = BuildPhase[]; + export type BuildReportArns = String[]; + export interface BuildStatusConfig { + /** + * Specifies the context of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. Bitbucket This parameter is used for the name parameter in the Bitbucket commit status. For more information, see build in the Bitbucket API documentation. GitHub/GitHub Enterprise Server This parameter is used for the context parameter in the GitHub commit status. For more information, see Create a commit status in the GitHub developer guide. + */ + context?: String; + /** + * Specifies the target url of the build status CodeBuild sends to the source provider. The usage of this parameter depends on the source provider. Bitbucket This parameter is used for the url parameter in the Bitbucket commit status. For more information, see build in the Bitbucket API documentation. GitHub/GitHub Enterprise Server This parameter is used for the target_url parameter in the GitHub commit status. For more information, see Create a commit status in the GitHub developer guide. + */ + targetUrl?: String; + } + export type BuildSummaries = BuildSummary[]; + export interface BuildSummary { + /** + * The batch build ARN. + */ + arn?: String; + /** + * When the build was started, expressed in Unix time format. + */ + requestedOn?: Timestamp; + /** + * The status of the build group. FAILED The build group failed. FAULT The build group faulted. IN_PROGRESS The build group is still in progress. STOPPED The build group stopped. SUCCEEDED The build group succeeded. TIMED_OUT The build group timed out. + */ + buildStatus?: StatusType; + /** + * A ResolvedArtifact object that represents the primary build artifacts for the build group. + */ + primaryArtifact?: ResolvedArtifact; + /** + * An array of ResolvedArtifact objects that represents the secondary build artifacts for the build group. + */ + secondaryArtifacts?: ResolvedSecondaryArtifacts; + } + export type Builds = Build[]; + export type BuildsNotDeleted = BuildNotDeleted[]; + export type CacheMode = "LOCAL_DOCKER_LAYER_CACHE"|"LOCAL_SOURCE_CACHE"|"LOCAL_CUSTOM_CACHE"|string; + export type CacheType = "NO_CACHE"|"S3"|"LOCAL"|string; + export interface CloudWatchLogsConfig { + /** + * The current status of the logs in Amazon CloudWatch Logs for a build project. Valid values are: ENABLED: Amazon CloudWatch Logs are enabled for this build project. DISABLED: Amazon CloudWatch Logs are not enabled for this build project. + */ + status: LogsConfigStatusType; + /** + * The group name of the logs in Amazon CloudWatch Logs. For more information, see Working with Log Groups and Log Streams. + */ + groupName?: String; + /** + * The prefix of the stream name of the Amazon CloudWatch Logs. For more information, see Working with Log Groups and Log Streams. + */ + streamName?: String; + } + export interface CodeCoverage { + /** + * The identifier of the code coverage report. + */ + id?: NonEmptyString; + /** + * The ARN of the report. + */ + reportARN?: NonEmptyString; + /** + * The path of the test report file. + */ + filePath?: NonEmptyString; + /** + * The percentage of lines that are covered by your tests. + */ + lineCoveragePercentage?: Percentage; + /** + * The number of lines that are covered by your tests. + */ + linesCovered?: NonNegativeInt; + /** + * The number of lines that are not covered by your tests. + */ + linesMissed?: NonNegativeInt; + /** + * The percentage of branches that are covered by your tests. + */ + branchCoveragePercentage?: Percentage; + /** + * The number of conditional branches that are covered by your tests. + */ + branchesCovered?: NonNegativeInt; + /** + * The number of conditional branches that are not covered by your tests. + */ + branchesMissed?: NonNegativeInt; + /** + * The date and time that the tests were run. + */ + expired?: Timestamp; + } + export interface CodeCoverageReportSummary { + /** + * The percentage of lines that are covered by your tests. + */ + lineCoveragePercentage?: Percentage; + /** + * The number of lines that are covered by your tests. + */ + linesCovered?: NonNegativeInt; + /** + * The number of lines that are not covered by your tests. + */ + linesMissed?: NonNegativeInt; + /** + * The percentage of branches that are covered by your tests. + */ + branchCoveragePercentage?: Percentage; + /** + * The number of conditional branches that are covered by your tests. + */ + branchesCovered?: NonNegativeInt; + /** + * The number of conditional branches that are not covered by your tests. + */ + branchesMissed?: NonNegativeInt; + } + export type CodeCoverages = CodeCoverage[]; + export type ComputeType = "BUILD_GENERAL1_SMALL"|"BUILD_GENERAL1_MEDIUM"|"BUILD_GENERAL1_LARGE"|"BUILD_GENERAL1_2XLARGE"|string; + export type ComputeTypesAllowed = NonEmptyString[]; + export interface CreateProjectInput { + /** + * The name of the build project. + */ + name: ProjectName; + /** + * A description that makes the build project easy to identify. + */ + description?: ProjectDescription; + /** + * Information about the build input source code for the build project. + */ + source: ProjectSource; + /** + * An array of ProjectSource objects. + */ + secondarySources?: ProjectSources; + /** + * A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of: For AWS CodeCommit: the commit ID, branch, or Git tag to use. For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Amazon S3: the version ID of the object that represents the build input ZIP file to use. If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level). For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide. + */ + sourceVersion?: String; + /** + * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at the build level, then they take precedence over these secondarySourceVersions (at the project level). + */ + secondarySourceVersions?: ProjectSecondarySourceVersions; + /** + * Information about the build output artifacts for the build project. + */ + artifacts: ProjectArtifacts; + /** + * An array of ProjectArtifacts objects. + */ + secondaryArtifacts?: ProjectArtifactsList; + /** + * Stores recently used information so that it can be quickly accessed at a later time. + */ + cache?: ProjectCache; + /** + * Information about the build environment for the build project. + */ + environment: ProjectEnvironment; + /** + * The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. + */ + serviceRole: NonEmptyString; + /** + * How long, in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before it times out any build that has not been marked as completed. The default is 60 minutes. + */ + timeoutInMinutes?: TimeOut; + /** + * The number of minutes a build is allowed to be queued before it times out. + */ + queuedTimeoutInMinutes?: TimeOut; + /** + * The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key. You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/<alias-name>). + */ + encryptionKey?: NonEmptyString; + /** + * A list of tag key and value pairs associated with this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. + */ + tags?: TagList; + /** + * VpcConfig enables AWS CodeBuild to access resources in an Amazon VPC. + */ + vpcConfig?: VpcConfig; + /** + * Set this to true to generate a publicly accessible URL for your project's build badge. + */ + badgeEnabled?: WrapperBoolean; + /** + * Information about logs for the build project. These can be logs in Amazon CloudWatch Logs, logs uploaded to a specified S3 bucket, or both. + */ + logsConfig?: LogsConfig; + /** + * An array of ProjectFileSystemLocation objects for a CodeBuild build project. A ProjectFileSystemLocation object specifies the identifier, location, mountOptions, mountPoint, and type of a file system created using Amazon Elastic File System. + */ + fileSystemLocations?: ProjectFileSystemLocations; + /** + * A ProjectBuildBatchConfig object that defines the batch build options for the project. + */ + buildBatchConfig?: ProjectBuildBatchConfig; + /** + * The maximum number of concurrent builds that are allowed for this project. New builds are only started if the current number of builds is less than or equal to this limit. If the current build count meets this limit, new builds are throttled and are not run. + */ + concurrentBuildLimit?: WrapperInt; + } + export interface CreateProjectOutput { + /** + * Information about the build project that was created. + */ + project?: Project; + } + export interface CreateReportGroupInput { + /** + * The name of the report group. + */ + name: ReportGroupName; + /** + * The type of report group. + */ + type: ReportType; + /** + * A ReportExportConfig object that contains information about where the report group test results are exported. + */ + exportConfig: ReportExportConfig; + /** + * A list of tag key and value pairs associated with this report group. These tags are available for use by AWS services that support AWS CodeBuild report group tags. + */ + tags?: TagList; + } + export interface CreateReportGroupOutput { + /** + * Information about the report group that was created. + */ + reportGroup?: ReportGroup; + } + export interface CreateWebhookInput { + /** + * The name of the AWS CodeBuild project. + */ + projectName: ProjectName; + /** + * A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If branchFilter is empty, then all branches are built. It is recommended that you use filterGroups instead of branchFilter. + */ + branchFilter?: String; + /** + * An array of arrays of WebhookFilter objects used to determine which webhooks are triggered. At least one WebhookFilter in the array must specify EVENT as its type. For a build to be triggered, at least one filter group in the filterGroups array must pass. For a filter group to pass, each of its filters must pass. + */ + filterGroups?: FilterGroups; + /** + * Specifies the type of build this webhook will trigger. + */ + buildType?: WebhookBuildType; + } + export interface CreateWebhookOutput { + /** + * Information about a webhook that connects repository events to a build project in AWS CodeBuild. + */ + webhook?: Webhook; + } + export type CredentialProviderType = "SECRETS_MANAGER"|string; + export interface DebugSession { + /** + * Specifies if session debugging is enabled for this build. + */ + sessionEnabled?: WrapperBoolean; + /** + * Contains the identifier of the Session Manager session used for the build. To work with the paused build, you open this session to examine, control, and resume the build. + */ + sessionTarget?: NonEmptyString; + } + export interface DeleteBuildBatchInput { + /** + * The identifier of the batch build to delete. + */ + id: NonEmptyString; + } + export interface DeleteBuildBatchOutput { + /** + * The status code. + */ + statusCode?: String; + /** + * An array of strings that contain the identifiers of the builds that were deleted. + */ + buildsDeleted?: BuildIds; + /** + * An array of BuildNotDeleted objects that specify the builds that could not be deleted. + */ + buildsNotDeleted?: BuildsNotDeleted; + } + export interface DeleteProjectInput { + /** + * The name of the build project. + */ + name: NonEmptyString; + } + export interface DeleteProjectOutput { + } + export interface DeleteReportGroupInput { + /** + * The ARN of the report group to delete. + */ + arn: NonEmptyString; + /** + * If true, deletes any reports that belong to a report group before deleting the report group. If false, you must delete any reports in the report group. Use ListReportsForReportGroup to get the reports in a report group. Use DeleteReport to delete the reports. If you call DeleteReportGroup for a report group that contains one or more reports, an exception is thrown. + */ + deleteReports?: Boolean; + } + export interface DeleteReportGroupOutput { + } + export interface DeleteReportInput { + /** + * The ARN of the report to delete. + */ + arn: NonEmptyString; + } + export interface DeleteReportOutput { + } + export interface DeleteResourcePolicyInput { + /** + * The ARN of the resource that is associated with the resource policy. + */ + resourceArn: NonEmptyString; + } + export interface DeleteResourcePolicyOutput { + } + export interface DeleteSourceCredentialsInput { + /** + * The Amazon Resource Name (ARN) of the token. + */ + arn: NonEmptyString; + } + export interface DeleteSourceCredentialsOutput { + /** + * The Amazon Resource Name (ARN) of the token. + */ + arn?: NonEmptyString; + } + export interface DeleteWebhookInput { + /** + * The name of the AWS CodeBuild project. + */ + projectName: ProjectName; + } + export interface DeleteWebhookOutput { + } + export interface DescribeCodeCoveragesInput { + /** + * The ARN of the report for which test cases are returned. + */ + reportArn: NonEmptyString; + /** + * The nextToken value returned from a previous call to DescribeCodeCoverages. This specifies the next item to return. To return the beginning of the list, exclude this parameter. + */ + nextToken?: String; + /** + * The maximum number of results to return. + */ + maxResults?: PageSize; + /** + * Specifies if the results are sorted in ascending or descending order. + */ + sortOrder?: SortOrderType; + /** + * Specifies how the results are sorted. Possible values are: FILE_PATH The results are sorted by file path. LINE_COVERAGE_PERCENTAGE The results are sorted by the percentage of lines that are covered. + */ + sortBy?: ReportCodeCoverageSortByType; + /** + * The minimum line coverage percentage to report. + */ + minLineCoveragePercentage?: Percentage; + /** + * The maximum line coverage percentage to report. + */ + maxLineCoveragePercentage?: Percentage; + } + export interface DescribeCodeCoveragesOutput { + /** + * If there are more items to return, this contains a token that is passed to a subsequent call to DescribeCodeCoverages to retrieve the next set of items. + */ + nextToken?: String; + /** + * An array of CodeCoverage objects that contain the results. + */ + codeCoverages?: CodeCoverages; + } + export interface DescribeTestCasesInput { + /** + * The ARN of the report for which test cases are returned. + */ + reportArn: String; + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The maximum number of paginated test cases returned per response. Use nextToken to iterate pages in the list of returned TestCase objects. The default value is 100. + */ + maxResults?: PageSize; + /** + * A TestCaseFilter object used to filter the returned reports. + */ + filter?: TestCaseFilter; + } + export interface DescribeTestCasesOutput { + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The returned list of test cases. + */ + testCases?: TestCases; + } + export interface EnvironmentImage { + /** + * The name of the Docker image. + */ + name?: String; + /** + * The description of the Docker image. + */ + description?: String; + /** + * A list of environment image versions. + */ + versions?: ImageVersions; + } + export type EnvironmentImages = EnvironmentImage[]; + export interface EnvironmentLanguage { + /** + * The programming language for the Docker images. + */ + language?: LanguageType; + /** + * The list of Docker images that are related by the specified programming language. + */ + images?: EnvironmentImages; + } + export type EnvironmentLanguages = EnvironmentLanguage[]; + export interface EnvironmentPlatform { + /** + * The platform's name. + */ + platform?: PlatformType; + /** + * The list of programming languages that are available for the specified platform. + */ + languages?: EnvironmentLanguages; + } + export type EnvironmentPlatforms = EnvironmentPlatform[]; + export type EnvironmentType = "WINDOWS_CONTAINER"|"LINUX_CONTAINER"|"LINUX_GPU_CONTAINER"|"ARM_CONTAINER"|"WINDOWS_SERVER_2019_CONTAINER"|string; + export interface EnvironmentVariable { + /** + * The name or key of the environment variable. + */ + name: NonEmptyString; + /** + * The value of the environment variable. We strongly discourage the use of PLAINTEXT environment variables to store sensitive values, especially AWS secret key IDs and secret access keys. PLAINTEXT environment variables can be displayed in plain text using the AWS CodeBuild console and the AWS Command Line Interface (AWS CLI). For sensitive values, we recommend you use an environment variable of type PARAMETER_STORE or SECRETS_MANAGER. + */ + value: String; + /** + * The type of environment variable. Valid values include: PARAMETER_STORE: An environment variable stored in Amazon EC2 Systems Manager Parameter Store. To learn how to specify a parameter store environment variable, see env/parameter-store in the AWS CodeBuild User Guide. PLAINTEXT: An environment variable in plain text format. This is the default value. SECRETS_MANAGER: An environment variable stored in AWS Secrets Manager. To learn how to specify a secrets manager environment variable, see env/secrets-manager in the AWS CodeBuild User Guide. + */ + type?: EnvironmentVariableType; + } + export type EnvironmentVariableType = "PLAINTEXT"|"PARAMETER_STORE"|"SECRETS_MANAGER"|string; + export type EnvironmentVariables = EnvironmentVariable[]; + export interface ExportedEnvironmentVariable { + /** + * The name of the exported environment variable. + */ + name?: NonEmptyString; + /** + * The value assigned to the exported environment variable. + */ + value?: String; + } + export type ExportedEnvironmentVariables = ExportedEnvironmentVariable[]; + export type FileSystemType = "EFS"|string; + export type FilterGroup = WebhookFilter[]; + export type FilterGroups = FilterGroup[]; + export interface GetReportGroupTrendInput { + /** + * The ARN of the report group that contains the reports to analyze. + */ + reportGroupArn: NonEmptyString; + /** + * The number of reports to analyze. This operation always retrieves the most recent reports. If this parameter is omitted, the most recent 100 reports are analyzed. + */ + numOfReports?: PageSize; + /** + * The test report value to accumulate. This must be one of the following values: Test reports: DURATION Accumulate the test run times for the specified reports. PASS_RATE Accumulate the percentage of tests that passed for the specified test reports. TOTAL Accumulate the total number of tests for the specified test reports. Code coverage reports: BRANCH_COVERAGE Accumulate the branch coverage percentages for the specified test reports. BRANCHES_COVERED Accumulate the branches covered values for the specified test reports. BRANCHES_MISSED Accumulate the branches missed values for the specified test reports. LINE_COVERAGE Accumulate the line coverage percentages for the specified test reports. LINES_COVERED Accumulate the lines covered values for the specified test reports. LINES_MISSED Accumulate the lines not covered values for the specified test reports. + */ + trendField: ReportGroupTrendFieldType; + } + export interface GetReportGroupTrendOutput { + /** + * Contains the accumulated trend data. + */ + stats?: ReportGroupTrendStats; + /** + * An array that contains the raw data for each report. + */ + rawData?: ReportGroupTrendRawDataList; + } + export interface GetResourcePolicyInput { + /** + * The ARN of the resource that is associated with the resource policy. + */ + resourceArn: NonEmptyString; + } + export interface GetResourcePolicyOutput { + /** + * The resource policy for the resource identified by the input ARN parameter. + */ + policy?: NonEmptyString; + } + export type GitCloneDepth = number; + export interface GitSubmodulesConfig { + /** + * Set to true to fetch Git submodules for your AWS CodeBuild build project. + */ + fetchSubmodules: WrapperBoolean; + } + export type Identifiers = NonEmptyString[]; + export type ImagePullCredentialsType = "CODEBUILD"|"SERVICE_ROLE"|string; + export type ImageVersions = String[]; + export interface ImportSourceCredentialsInput { + /** + * The Bitbucket username when the authType is BASIC_AUTH. This parameter is not valid for other types of source providers or connections. + */ + username?: NonEmptyString; + /** + * For GitHub or GitHub Enterprise, this is the personal access token. For Bitbucket, this is the app password. + */ + token: SensitiveNonEmptyString; + /** + * The source provider used for this project. + */ + serverType: ServerType; + /** + * The type of authentication used to connect to a GitHub, GitHub Enterprise, or Bitbucket repository. An OAUTH connection is not supported by the API and must be created using the AWS CodeBuild console. + */ + authType: AuthType; + /** + * Set to false to prevent overwriting the repository source credentials. Set to true to overwrite the repository source credentials. The default value is true. + */ + shouldOverwrite?: WrapperBoolean; + } + export interface ImportSourceCredentialsOutput { + /** + * The Amazon Resource Name (ARN) of the token. + */ + arn?: NonEmptyString; + } + export interface InvalidateProjectCacheInput { + /** + * The name of the AWS CodeBuild build project that the cache is reset for. + */ + projectName: NonEmptyString; + } + export interface InvalidateProjectCacheOutput { + } + export type KeyInput = string; + export type LanguageType = "JAVA"|"PYTHON"|"NODE_JS"|"RUBY"|"GOLANG"|"DOCKER"|"ANDROID"|"DOTNET"|"BASE"|"PHP"|string; + export interface ListBuildBatchesForProjectInput { + /** + * The name of the project. + */ + projectName?: NonEmptyString; + /** + * A BuildBatchFilter object that specifies the filters for the search. + */ + filter?: BuildBatchFilter; + /** + * The maximum number of results to return. + */ + maxResults?: PageSize; + /** + * Specifies the sort order of the returned items. Valid values include: ASCENDING: List the batch build identifiers in ascending order by identifier. DESCENDING: List the batch build identifiers in descending order by identifier. + */ + sortOrder?: SortOrderType; + /** + * The nextToken value returned from a previous call to ListBuildBatchesForProject. This specifies the next item to return. To return the beginning of the list, exclude this parameter. + */ + nextToken?: String; + } + export interface ListBuildBatchesForProjectOutput { + /** + * An array of strings that contains the batch build identifiers. + */ + ids?: BuildBatchIds; + /** + * If there are more items to return, this contains a token that is passed to a subsequent call to ListBuildBatchesForProject to retrieve the next set of items. + */ + nextToken?: String; + } + export interface ListBuildBatchesInput { + /** + * A BuildBatchFilter object that specifies the filters for the search. + */ + filter?: BuildBatchFilter; + /** + * The maximum number of results to return. + */ + maxResults?: PageSize; + /** + * Specifies the sort order of the returned items. Valid values include: ASCENDING: List the batch build identifiers in ascending order by identifier. DESCENDING: List the batch build identifiers in descending order by identifier. + */ + sortOrder?: SortOrderType; + /** + * The nextToken value returned from a previous call to ListBuildBatches. This specifies the next item to return. To return the beginning of the list, exclude this parameter. + */ + nextToken?: String; + } + export interface ListBuildBatchesOutput { + /** + * An array of strings that contains the batch build identifiers. + */ + ids?: BuildBatchIds; + /** + * If there are more items to return, this contains a token that is passed to a subsequent call to ListBuildBatches to retrieve the next set of items. + */ + nextToken?: String; + } + export interface ListBuildsForProjectInput { + /** + * The name of the AWS CodeBuild project. + */ + projectName: NonEmptyString; + /** + * The order to list results in. The results are sorted by build number, not the build identifier. Valid values include: ASCENDING: List the build IDs in ascending order by build ID. DESCENDING: List the build IDs in descending order by build ID. If the project has more than 100 builds, setting the sort order will result in an error. + */ + sortOrder?: SortOrderType; + /** + * During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + } + export interface ListBuildsForProjectOutput { + /** + * A list of build IDs for the specified build project, with each build ID representing a single build. + */ + ids?: BuildIds; + /** + * If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. + */ + nextToken?: String; + } + export interface ListBuildsInput { + /** + * The order to list build IDs. Valid values include: ASCENDING: List the build IDs in ascending order by build ID. DESCENDING: List the build IDs in descending order by build ID. + */ + sortOrder?: SortOrderType; + /** + * During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + } + export interface ListBuildsOutput { + /** + * A list of build IDs, with each build ID representing a single build. + */ + ids?: BuildIds; + /** + * If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. + */ + nextToken?: String; + } + export interface ListCuratedEnvironmentImagesInput { + } + export interface ListCuratedEnvironmentImagesOutput { + /** + * Information about supported platforms for Docker images that are managed by AWS CodeBuild. + */ + platforms?: EnvironmentPlatforms; + } + export interface ListProjectsInput { + /** + * The criterion to be used to list build project names. Valid values include: CREATED_TIME: List based on when each build project was created. LAST_MODIFIED_TIME: List based on when information about each build project was last changed. NAME: List based on each build project's name. Use sortOrder to specify in what order to list the build project names based on the preceding criteria. + */ + sortBy?: ProjectSortByType; + /** + * The order in which to list build projects. Valid values include: ASCENDING: List in ascending order. DESCENDING: List in descending order. Use sortBy to specify the criterion to be used to list build project names. + */ + sortOrder?: SortOrderType; + /** + * During a previous call, if there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: NonEmptyString; + } + export interface ListProjectsOutput { + /** + * If there are more than 100 items in the list, only the first 100 items are returned, along with a unique string called a nextToken. To get the next batch of items in the list, call this operation again, adding the next token to the call. + */ + nextToken?: String; + /** + * The list of build project names, with each build project name representing a single build project. + */ + projects?: ProjectNames; + } + export interface ListReportGroupsInput { + /** + * Used to specify the order to sort the list of returned report groups. Valid values are ASCENDING and DESCENDING. + */ + sortOrder?: SortOrderType; + /** + * The criterion to be used to list build report groups. Valid values include: CREATED_TIME: List based on when each report group was created. LAST_MODIFIED_TIME: List based on when each report group was last changed. NAME: List based on each report group's name. + */ + sortBy?: ReportGroupSortByType; + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The maximum number of paginated report groups returned per response. Use nextToken to iterate pages in the list of returned ReportGroup objects. The default value is 100. + */ + maxResults?: PageSize; + } + export interface ListReportGroupsOutput { + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The list of ARNs for the report groups in the current AWS account. + */ + reportGroups?: ReportGroupArns; + } + export interface ListReportsForReportGroupInput { + /** + * The ARN of the report group for which you want to return report ARNs. + */ + reportGroupArn: String; + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * Use to specify whether the results are returned in ascending or descending order. + */ + sortOrder?: SortOrderType; + /** + * The maximum number of paginated reports in this report group returned per response. Use nextToken to iterate pages in the list of returned Report objects. The default value is 100. + */ + maxResults?: PageSize; + /** + * A ReportFilter object used to filter the returned reports. + */ + filter?: ReportFilter; + } + export interface ListReportsForReportGroupOutput { + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The list of report ARNs. + */ + reports?: ReportArns; + } + export interface ListReportsInput { + /** + * Specifies the sort order for the list of returned reports. Valid values are: ASCENDING: return reports in chronological order based on their creation date. DESCENDING: return reports in the reverse chronological order based on their creation date. + */ + sortOrder?: SortOrderType; + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The maximum number of paginated reports returned per response. Use nextToken to iterate pages in the list of returned Report objects. The default value is 100. + */ + maxResults?: PageSize; + /** + * A ReportFilter object used to filter the returned reports. + */ + filter?: ReportFilter; + } + export interface ListReportsOutput { + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The list of returned ARNs for the reports in the current AWS account. + */ + reports?: ReportArns; + } + export interface ListSharedProjectsInput { + /** + * The criterion to be used to list build projects shared with the current AWS account or user. Valid values include: ARN: List based on the ARN. MODIFIED_TIME: List based on when information about the shared project was last changed. + */ + sortBy?: SharedResourceSortByType; + /** + * The order in which to list shared build projects. Valid values include: ASCENDING: List in ascending order. DESCENDING: List in descending order. + */ + sortOrder?: SortOrderType; + /** + * The maximum number of paginated shared build projects returned per response. Use nextToken to iterate pages in the list of returned Project objects. The default value is 100. + */ + maxResults?: PageSize; + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: NonEmptyString; + } + export interface ListSharedProjectsOutput { + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The list of ARNs for the build projects shared with the current AWS account or user. + */ + projects?: ProjectArns; + } + export interface ListSharedReportGroupsInput { + /** + * The order in which to list shared report groups. Valid values include: ASCENDING: List in ascending order. DESCENDING: List in descending order. + */ + sortOrder?: SortOrderType; + /** + * The criterion to be used to list report groups shared with the current AWS account or user. Valid values include: ARN: List based on the ARN. MODIFIED_TIME: List based on when information about the shared report group was last changed. + */ + sortBy?: SharedResourceSortByType; + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The maximum number of paginated shared report groups per response. Use nextToken to iterate pages in the list of returned ReportGroup objects. The default value is 100. + */ + maxResults?: PageSize; + } + export interface ListSharedReportGroupsOutput { + /** + * During a previous call, the maximum number of items that can be returned is the value specified in maxResults. If there more items in the list, then a unique string called a nextToken is returned. To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned. + */ + nextToken?: String; + /** + * The list of ARNs for the report groups shared with the current AWS account or user. + */ + reportGroups?: ReportGroupArns; + } + export interface ListSourceCredentialsInput { + } + export interface ListSourceCredentialsOutput { + /** + * A list of SourceCredentialsInfo objects. Each SourceCredentialsInfo object includes the authentication type, token ARN, and type of source provider for one set of credentials. + */ + sourceCredentialsInfos?: SourceCredentialsInfos; + } + export interface LogsConfig { + /** + * Information about Amazon CloudWatch Logs for a build project. Amazon CloudWatch Logs are enabled by default. + */ + cloudWatchLogs?: CloudWatchLogsConfig; + /** + * Information about logs built to an S3 bucket for a build project. S3 logs are not enabled by default. + */ + s3Logs?: S3LogsConfig; + } + export type LogsConfigStatusType = "ENABLED"|"DISABLED"|string; + export interface LogsLocation { + /** + * The name of the Amazon CloudWatch Logs group for the build logs. + */ + groupName?: String; + /** + * The name of the Amazon CloudWatch Logs stream for the build logs. + */ + streamName?: String; + /** + * The URL to an individual build log in Amazon CloudWatch Logs. + */ + deepLink?: String; + /** + * The URL to a build log in an S3 bucket. + */ + s3DeepLink?: String; + /** + * The ARN of Amazon CloudWatch Logs for a build project. Its format is arn:${Partition}:logs:${Region}:${Account}:log-group:${LogGroupName}:log-stream:${LogStreamName}. For more information, see Resources Defined by Amazon CloudWatch Logs. + */ + cloudWatchLogsArn?: String; + /** + * The ARN of S3 logs for a build project. Its format is arn:${Partition}:s3:::${BucketName}/${ObjectName}. For more information, see Resources Defined by Amazon S3. + */ + s3LogsArn?: String; + /** + * Information about Amazon CloudWatch Logs for a build project. + */ + cloudWatchLogs?: CloudWatchLogsConfig; + /** + * Information about S3 logs for a build project. + */ + s3Logs?: S3LogsConfig; + } + export interface NetworkInterface { + /** + * The ID of the subnet. + */ + subnetId?: NonEmptyString; + /** + * The ID of the network interface. + */ + networkInterfaceId?: NonEmptyString; + } + export type NonEmptyString = string; + export type NonNegativeInt = number; + export type PageSize = number; + export type Percentage = number; + export interface PhaseContext { + /** + * The status code for the context of the build phase. + */ + statusCode?: String; + /** + * An explanation of the build phase's context. This might include a command ID and an exit code. + */ + message?: String; + } + export type PhaseContexts = PhaseContext[]; + export type PlatformType = "DEBIAN"|"AMAZON_LINUX"|"UBUNTU"|"WINDOWS_SERVER"|string; + export interface Project { + /** + * The name of the build project. + */ + name?: ProjectName; + /** + * The Amazon Resource Name (ARN) of the build project. + */ + arn?: String; + /** + * A description that makes the build project easy to identify. + */ + description?: ProjectDescription; + /** + * Information about the build input source code for this build project. + */ + source?: ProjectSource; + /** + * An array of ProjectSource objects. + */ + secondarySources?: ProjectSources; + /** + * A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of: For AWS CodeCommit: the commit ID, branch, or Git tag to use. For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Amazon S3: the version ID of the object that represents the build input ZIP file to use. If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level). For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide. + */ + sourceVersion?: String; + /** + * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at the build level, then they take over these secondarySourceVersions (at the project level). + */ + secondarySourceVersions?: ProjectSecondarySourceVersions; + /** + * Information about the build output artifacts for the build project. + */ + artifacts?: ProjectArtifacts; + /** + * An array of ProjectArtifacts objects. + */ + secondaryArtifacts?: ProjectArtifactsList; + /** + * Information about the cache for the build project. + */ + cache?: ProjectCache; + /** + * Information about the build environment for this build project. + */ + environment?: ProjectEnvironment; + /** + * The ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. + */ + serviceRole?: NonEmptyString; + /** + * How long, in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed. The default is 60 minutes. + */ + timeoutInMinutes?: TimeOut; + /** + * The number of minutes a build is allowed to be queued before it times out. + */ + queuedTimeoutInMinutes?: TimeOut; + /** + * The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key. You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/<alias-name>). + */ + encryptionKey?: NonEmptyString; + /** + * A list of tag key and value pairs associated with this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. + */ + tags?: TagList; + /** + * When the build project was created, expressed in Unix time format. + */ + created?: Timestamp; + /** + * When the build project's settings were last modified, expressed in Unix time format. + */ + lastModified?: Timestamp; + /** + * Information about a webhook that connects repository events to a build project in AWS CodeBuild. + */ + webhook?: Webhook; + /** + * Information about the VPC configuration that AWS CodeBuild accesses. + */ + vpcConfig?: VpcConfig; + /** + * Information about the build badge for the build project. + */ + badge?: ProjectBadge; + /** + * Information about logs for the build project. A project can create logs in Amazon CloudWatch Logs, an S3 bucket, or both. + */ + logsConfig?: LogsConfig; + /** + * An array of ProjectFileSystemLocation objects for a CodeBuild build project. A ProjectFileSystemLocation object specifies the identifier, location, mountOptions, mountPoint, and type of a file system created using Amazon Elastic File System. + */ + fileSystemLocations?: ProjectFileSystemLocations; + /** + * A ProjectBuildBatchConfig object that defines the batch build options for the project. + */ + buildBatchConfig?: ProjectBuildBatchConfig; + /** + * The maximum number of concurrent builds that are allowed for this project. New builds are only started if the current number of builds is less than or equal to this limit. If the current build count meets this limit, new builds are throttled and are not run. + */ + concurrentBuildLimit?: WrapperInt; + } + export type ProjectArns = NonEmptyString[]; + export interface ProjectArtifacts { + /** + * The type of build output artifact. Valid values include: CODEPIPELINE: The build project has build output generated through AWS CodePipeline. The CODEPIPELINE type is not supported for secondaryArtifacts. NO_ARTIFACTS: The build project does not produce any build output. S3: The build project stores build output in Amazon S3. + */ + type: ArtifactsType; + /** + * Information about the build output artifact location: If type is set to CODEPIPELINE, AWS CodePipeline ignores this value if specified. This is because AWS CodePipeline manages its build output locations instead of AWS CodeBuild. If type is set to NO_ARTIFACTS, this value is ignored if specified, because no build output is produced. If type is set to S3, this is the name of the output bucket. + */ + location?: String; + /** + * Along with namespaceType and name, the pattern that AWS CodeBuild uses to name and store the output artifact: If type is set to CODEPIPELINE, AWS CodePipeline ignores this value if specified. This is because AWS CodePipeline manages its build output names instead of AWS CodeBuild. If type is set to NO_ARTIFACTS, this value is ignored if specified, because no build output is produced. If type is set to S3, this is the path to the output artifact. If path is not specified, path is not used. For example, if path is set to MyArtifacts, namespaceType is set to NONE, and name is set to MyArtifact.zip, the output artifact is stored in the output bucket at MyArtifacts/MyArtifact.zip. + */ + path?: String; + /** + * Along with path and name, the pattern that AWS CodeBuild uses to determine the name and location to store the output artifact: If type is set to CODEPIPELINE, AWS CodePipeline ignores this value if specified. This is because AWS CodePipeline manages its build output names instead of AWS CodeBuild. If type is set to NO_ARTIFACTS, this value is ignored if specified, because no build output is produced. If type is set to S3, valid values include: BUILD_ID: Include the build ID in the location of the build output artifact. NONE: Do not include the build ID. This is the default if namespaceType is not specified. For example, if path is set to MyArtifacts, namespaceType is set to BUILD_ID, and name is set to MyArtifact.zip, the output artifact is stored in MyArtifacts/<build-ID>/MyArtifact.zip. + */ + namespaceType?: ArtifactNamespace; + /** + * Along with path and namespaceType, the pattern that AWS CodeBuild uses to name and store the output artifact: If type is set to CODEPIPELINE, AWS CodePipeline ignores this value if specified. This is because AWS CodePipeline manages its build output names instead of AWS CodeBuild. If type is set to NO_ARTIFACTS, this value is ignored if specified, because no build output is produced. If type is set to S3, this is the name of the output artifact object. If you set the name to be a forward slash ("/"), the artifact is stored in the root of the output bucket. For example: If path is set to MyArtifacts, namespaceType is set to BUILD_ID, and name is set to MyArtifact.zip, then the output artifact is stored in MyArtifacts/<build-ID>/MyArtifact.zip. If path is empty, namespaceType is set to NONE, and name is set to "/", the output artifact is stored in the root of the output bucket. If path is set to MyArtifacts, namespaceType is set to BUILD_ID, and name is set to "/", the output artifact is stored in MyArtifacts/<build-ID>. + */ + name?: String; + /** + * The type of build output artifact to create: If type is set to CODEPIPELINE, AWS CodePipeline ignores this value if specified. This is because AWS CodePipeline manages its build output artifacts instead of AWS CodeBuild. If type is set to NO_ARTIFACTS, this value is ignored if specified, because no build output is produced. If type is set to S3, valid values include: NONE: AWS CodeBuild creates in the output bucket a folder that contains the build output. This is the default if packaging is not specified. ZIP: AWS CodeBuild creates in the output bucket a ZIP file that contains the build output. + */ + packaging?: ArtifactPackaging; + /** + * If this flag is set, a name specified in the buildspec file overrides the artifact name. The name specified in a buildspec file is calculated at build time and uses the Shell Command Language. For example, you can append a date and time to your artifact name so that it is always unique. + */ + overrideArtifactName?: WrapperBoolean; + /** + * Set to true if you do not want your output artifacts encrypted. This option is valid only if your artifacts type is Amazon S3. If this is set with another artifacts type, an invalidInputException is thrown. + */ + encryptionDisabled?: WrapperBoolean; + /** + * An identifier for this artifact definition. + */ + artifactIdentifier?: String; + bucketOwnerAccess?: BucketOwnerAccess; + } + export type ProjectArtifactsList = ProjectArtifacts[]; + export interface ProjectBadge { + /** + * Set this to true to generate a publicly accessible URL for your project's build badge. + */ + badgeEnabled?: Boolean; + /** + * The publicly-accessible URL through which you can access the build badge for your project. + */ + badgeRequestUrl?: String; + } + export interface ProjectBuildBatchConfig { + /** + * Specifies the service role ARN for the batch build project. + */ + serviceRole?: NonEmptyString; + /** + * Specifies if the build artifacts for the batch build should be combined into a single artifact location. + */ + combineArtifacts?: WrapperBoolean; + /** + * A BatchRestrictions object that specifies the restrictions for the batch build. + */ + restrictions?: BatchRestrictions; + /** + * Specifies the maximum amount of time, in minutes, that the batch build must be completed in. + */ + timeoutInMins?: WrapperInt; + } + export interface ProjectCache { + /** + * The type of cache used by the build project. Valid values include: NO_CACHE: The build project does not use any cache. S3: The build project reads and writes from and to S3. LOCAL: The build project stores a cache locally on a build host that is only available to that build host. + */ + type: CacheType; + /** + * Information about the cache location: NO_CACHE or LOCAL: This value is ignored. S3: This is the S3 bucket name/prefix. + */ + location?: String; + /** + * An array of strings that specify the local cache modes. You can use one or more local cache modes at the same time. This is only used for LOCAL cache types. Possible values are: LOCAL_SOURCE_CACHE Caches Git metadata for primary and secondary sources. After the cache is created, subsequent builds pull only the change between commits. This mode is a good choice for projects with a clean working directory and a source that is a large Git repository. If you choose this option and your project does not use a Git repository (GitHub, GitHub Enterprise, or Bitbucket), the option is ignored. LOCAL_DOCKER_LAYER_CACHE Caches existing Docker layers. This mode is a good choice for projects that build or pull large Docker images. It can prevent the performance issues caused by pulling large Docker images down from the network. You can use a Docker layer cache in the Linux environment only. The privileged flag must be set so that your project has the required Docker permissions. You should consider the security implications before you use a Docker layer cache. LOCAL_CUSTOM_CACHE Caches directories you specify in the buildspec file. This mode is a good choice if your build scenario is not suited to one of the other three local cache modes. If you use a custom cache: Only directories can be specified for caching. You cannot specify individual files. Symlinks are used to reference cached directories. Cached directories are linked to your build before it downloads its project sources. Cached items are overridden if a source item has the same name. Directories are specified using cache paths in the buildspec file. + */ + modes?: ProjectCacheModes; + } + export type ProjectCacheModes = CacheMode[]; + export type ProjectDescription = string; + export interface ProjectEnvironment { + /** + * The type of build environment to use for related builds. The environment type ARM_CONTAINER is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), EU (Ireland), Asia Pacific (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and EU (Frankfurt). The environment type LINUX_CONTAINER with compute type build.general1.2xlarge is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China (Beijing), and China (Ningxia). The environment type LINUX_GPU_CONTAINER is available only in regions US East (N. Virginia), US East (Ohio), US West (Oregon), Canada (Central), EU (Ireland), EU (London), EU (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney) , China (Beijing), and China (Ningxia). + */ + type: EnvironmentType; + /** + * The image tag or image digest that identifies the Docker image to use for this build project. Use the following formats: For an image tag: <registry>/<repository>:<tag>. For example, in the Docker repository that CodeBuild uses to manage its Docker images, this would be aws/codebuild/standard:4.0. For an image digest: <registry>/<repository>@<digest>. For example, to specify an image with the digest "sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf," use <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf. + */ + image: NonEmptyString; + /** + * Information about the compute resources the build project uses. Available values include: BUILD_GENERAL1_SMALL: Use up to 3 GB memory and 2 vCPUs for builds. BUILD_GENERAL1_MEDIUM: Use up to 7 GB memory and 4 vCPUs for builds. BUILD_GENERAL1_LARGE: Use up to 16 GB memory and 8 vCPUs for builds, depending on your environment type. BUILD_GENERAL1_2XLARGE: Use up to 145 GB memory, 72 vCPUs, and 824 GB of SSD storage for builds. This compute type supports Docker images up to 100 GB uncompressed. If you use BUILD_GENERAL1_LARGE: For environment type LINUX_CONTAINER, you can use up to 15 GB memory and 8 vCPUs for builds. For environment type LINUX_GPU_CONTAINER, you can use up to 255 GB memory, 32 vCPUs, and 4 NVIDIA Tesla V100 GPUs for builds. For environment type ARM_CONTAINER, you can use up to 16 GB memory and 8 vCPUs on ARM-based processors for builds. For more information, see Build Environment Compute Types in the AWS CodeBuild User Guide. + */ + computeType: ComputeType; + /** + * A set of environment variables to make available to builds for this build project. + */ + environmentVariables?: EnvironmentVariables; + /** + * Enables running the Docker daemon inside a Docker container. Set to true only if the build project is used to build Docker images. Otherwise, a build that attempts to interact with the Docker daemon fails. The default setting is false. You can initialize the Docker daemon during the install phase of your build by adding one of the following sets of commands to the install phase of your buildspec file: If the operating system's base image is Ubuntu Linux: - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay& - timeout 15 sh -c "until docker info; do echo .; sleep 1; done" If the operating system's base image is Alpine Linux and the previous command does not work, add the -t argument to timeout: - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay& - timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done" + */ + privilegedMode?: WrapperBoolean; + /** + * The ARN of the Amazon S3 bucket, path prefix, and object key that contains the PEM-encoded certificate for the build project. For more information, see certificate in the AWS CodeBuild User Guide. + */ + certificate?: String; + /** + * The credentials for access to a private registry. + */ + registryCredential?: RegistryCredential; + /** + * The type of credentials AWS CodeBuild uses to pull images in your build. There are two valid values: CODEBUILD specifies that AWS CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust AWS CodeBuild's service principal. SERVICE_ROLE specifies that AWS CodeBuild uses your build project's service role. When you use a cross-account or private registry image, you must use SERVICE_ROLE credentials. When you use an AWS CodeBuild curated image, you must use CODEBUILD credentials. + */ + imagePullCredentialsType?: ImagePullCredentialsType; + } + export interface ProjectFileSystemLocation { + /** + * The type of the file system. The one supported type is EFS. + */ + type?: FileSystemType; + /** + * A string that specifies the location of the file system created by Amazon EFS. Its format is efs-dns-name:/directory-path. You can find the DNS name of file system when you view it in the AWS EFS console. The directory path is a path to a directory in the file system that CodeBuild mounts. For example, if the DNS name of a file system is fs-abcd1234.efs.us-west-2.amazonaws.com, and its mount directory is my-efs-mount-directory, then the location is fs-abcd1234.efs.us-west-2.amazonaws.com:/my-efs-mount-directory. The directory path in the format efs-dns-name:/directory-path is optional. If you do not specify a directory path, the location is only the DNS name and CodeBuild mounts the entire file system. + */ + location?: String; + /** + * The location in the container where you mount the file system. + */ + mountPoint?: String; + /** + * The name used to access a file system created by Amazon EFS. CodeBuild creates an environment variable by appending the identifier in all capital letters to CODEBUILD_. For example, if you specify my_efs for identifier, a new environment variable is create named CODEBUILD_MY_EFS. The identifier is used to mount your file system. + */ + identifier?: String; + /** + * The mount options for a file system created by AWS EFS. The default mount options used by CodeBuild are nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2. For more information, see Recommended NFS Mount Options. + */ + mountOptions?: String; + } + export type ProjectFileSystemLocations = ProjectFileSystemLocation[]; + export type ProjectName = string; + export type ProjectNames = NonEmptyString[]; + export type ProjectSecondarySourceVersions = ProjectSourceVersion[]; + export type ProjectSortByType = "NAME"|"CREATED_TIME"|"LAST_MODIFIED_TIME"|string; + export interface ProjectSource { + /** + * The type of repository that contains the source code to be built. Valid values include: BITBUCKET: The source code is in a Bitbucket repository. CODECOMMIT: The source code is in an AWS CodeCommit repository. CODEPIPELINE: The source code settings are specified in the source action of a pipeline in AWS CodePipeline. GITHUB: The source code is in a GitHub or GitHub Enterprise Cloud repository. GITHUB_ENTERPRISE: The source code is in a GitHub Enterprise Server repository. NO_SOURCE: The project does not have input source code. S3: The source code is in an Amazon S3 bucket. + */ + type: SourceType; + /** + * Information about the location of the source code to be built. Valid values include: For source code settings that are specified in the source action of a pipeline in AWS CodePipeline, location should not be specified. If it is specified, AWS CodePipeline ignores it. This is because AWS CodePipeline uses the settings in a pipeline's source action instead of this value. For source code in an AWS CodeCommit repository, the HTTPS clone URL to the repository that contains the source code and the buildspec file (for example, https://git-codecommit.<region-ID>.amazonaws.com/v1/repos/<repo-name>). For source code in an Amazon S3 input bucket, one of the following. The path to the ZIP file that contains the source code (for example, <bucket-name>/<path>/<object-name>.zip). The path to the folder that contains the source code (for example, <bucket-name>/<path-to-source-code>/<folder>/). For source code in a GitHub repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your AWS account to your GitHub account. Use the AWS CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with GitHub, on the GitHub Authorize application page, for Organization access, choose Request access next to each repository you want to allow AWS CodeBuild to have access to, and then choose Authorize application. (After you have connected to your GitHub account, you do not need to finish creating the build project. You can leave the AWS CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the source object, set the auth object's type value to OAUTH. For source code in a Bitbucket repository, the HTTPS clone URL to the repository that contains the source and the buildspec file. You must connect your AWS account to your Bitbucket account. Use the AWS CodeBuild console to start creating a build project. When you use the console to connect (or reconnect) with Bitbucket, on the Bitbucket Confirm access to your account page, choose Grant access. (After you have connected to your Bitbucket account, you do not need to finish creating the build project. You can leave the AWS CodeBuild console.) To instruct AWS CodeBuild to use this connection, in the source object, set the auth object's type value to OAUTH. + */ + location?: String; + /** + * Information about the Git clone depth for the build project. + */ + gitCloneDepth?: GitCloneDepth; + /** + * Information about the Git submodules configuration for the build project. + */ + gitSubmodulesConfig?: GitSubmodulesConfig; + /** + * The buildspec file declaration to use for the builds in this build project. If this value is set, it can be either an inline buildspec definition, the path to an alternate buildspec file relative to the value of the built-in CODEBUILD_SRC_DIR environment variable, or the path to an S3 bucket. The bucket must be in the same AWS Region as the build project. Specify the buildspec file using its ARN (for example, arn:aws:s3:::my-codebuild-sample2/buildspec.yml). If this value is not provided or is set to an empty string, the source code must contain a buildspec file in its root directory. For more information, see Buildspec File Name and Storage Location. + */ + buildspec?: String; + /** + * Information about the authorization settings for AWS CodeBuild to access the source code to be built. This information is for the AWS CodeBuild console's use only. Your code should not get or set this information directly. + */ + auth?: SourceAuth; + /** + * Set to true to report the status of a build's start and finish to your source provider. This option is valid only when your source provider is GitHub, GitHub Enterprise, or Bitbucket. If this is set and you use a different source provider, an invalidInputException is thrown. To be able to report the build status to the source provider, the user associated with the source provider must have write access to the repo. If the user does not have write access, the build status cannot be updated. For more information, see Source provider access in the AWS CodeBuild User Guide. The status of a build triggered by a webhook is always reported to your source provider. + */ + reportBuildStatus?: WrapperBoolean; + /** + * Contains information that defines how the build project reports the build status to the source provider. This option is only used when the source provider is GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + */ + buildStatusConfig?: BuildStatusConfig; + /** + * Enable this flag to ignore SSL warnings while connecting to the project source code. + */ + insecureSsl?: WrapperBoolean; + /** + * An identifier for this project source. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length. + */ + sourceIdentifier?: String; + } + export interface ProjectSourceVersion { + /** + * An identifier for a source in the build project. The identifier can only contain alphanumeric characters and underscores, and must be less than 128 characters in length. + */ + sourceIdentifier: String; + /** + * The source version for the corresponding source identifier. If specified, must be one of: For AWS CodeCommit: the commit ID, branch, or Git tag to use. For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example, pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Amazon S3: the version ID of the object that represents the build input ZIP file to use. For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide. + */ + sourceVersion: String; + } + export type ProjectSources = ProjectSource[]; + export type Projects = Project[]; + export interface PutResourcePolicyInput { + /** + * A JSON-formatted resource policy. For more information, see Sharing a Project and Sharing a Report Group in the AWS CodeBuild User Guide. + */ + policy: NonEmptyString; + /** + * The ARN of the Project or ReportGroup resource you want to associate with a resource policy. + */ + resourceArn: NonEmptyString; + } + export interface PutResourcePolicyOutput { + /** + * The ARN of the Project or ReportGroup resource that is associated with a resource policy. + */ + resourceArn?: NonEmptyString; + } + export interface RegistryCredential { + /** + * The Amazon Resource Name (ARN) or name of credentials created using AWS Secrets Manager. The credential can use the name of the credentials only if they exist in your current AWS Region. + */ + credential: NonEmptyString; + /** + * The service that created the credentials to access a private Docker registry. The valid value, SECRETS_MANAGER, is for AWS Secrets Manager. + */ + credentialProvider: CredentialProviderType; + } + export interface Report { + /** + * The ARN of the report run. + */ + arn?: NonEmptyString; + /** + * The type of the report that was run. CODE_COVERAGE A code coverage report. TEST A test report. + */ + type?: ReportType; + /** + * The name of the report that was run. + */ + name?: String; + /** + * The ARN of the report group associated with this report. + */ + reportGroupArn?: NonEmptyString; + /** + * The ARN of the build run that generated this report. + */ + executionId?: String; + /** + * The status of this report. + */ + status?: ReportStatusType; + /** + * The date and time this report run occurred. + */ + created?: Timestamp; + /** + * The date and time a report expires. A report expires 30 days after it is created. An expired report is not available to view in CodeBuild. + */ + expired?: Timestamp; + /** + * Information about where the raw data used to generate this report was exported. + */ + exportConfig?: ReportExportConfig; + /** + * A boolean that specifies if this report run is truncated. The list of test cases is truncated after the maximum number of test cases is reached. + */ + truncated?: WrapperBoolean; + /** + * A TestReportSummary object that contains information about this test report. + */ + testSummary?: TestReportSummary; + /** + * A CodeCoverageReportSummary object that contains a code coverage summary for this report. + */ + codeCoverageSummary?: CodeCoverageReportSummary; + } + export type ReportArns = NonEmptyString[]; + export type ReportCodeCoverageSortByType = "LINE_COVERAGE_PERCENTAGE"|"FILE_PATH"|string; + export interface ReportExportConfig { + /** + * The export configuration type. Valid values are: S3: The report results are exported to an S3 bucket. NO_EXPORT: The report results are not exported. + */ + exportConfigType?: ReportExportConfigType; + /** + * A S3ReportExportConfig object that contains information about the S3 bucket where the run of a report is exported. + */ + s3Destination?: S3ReportExportConfig; + } + export type ReportExportConfigType = "S3"|"NO_EXPORT"|string; + export interface ReportFilter { + /** + * The status used to filter reports. You can filter using one status only. + */ + status?: ReportStatusType; + } + export interface ReportGroup { + /** + * The ARN of the ReportGroup. + */ + arn?: NonEmptyString; + /** + * The name of the ReportGroup. + */ + name?: ReportGroupName; + /** + * The type of the ReportGroup. This can be one of the following values: CODE_COVERAGE The report group contains code coverage reports. TEST The report group contains test reports. + */ + type?: ReportType; + /** + * Information about the destination where the raw data of this ReportGroup is exported. + */ + exportConfig?: ReportExportConfig; + /** + * The date and time this ReportGroup was created. + */ + created?: Timestamp; + /** + * The date and time this ReportGroup was last modified. + */ + lastModified?: Timestamp; + /** + * A list of tag key and value pairs associated with this report group. These tags are available for use by AWS services that support AWS CodeBuild report group tags. + */ + tags?: TagList; + /** + * The status of the report group. This property is read-only. This can be one of the following values: ACTIVE The report group is active. DELETING The report group is in the process of being deleted. + */ + status?: ReportGroupStatusType; + } + export type ReportGroupArns = NonEmptyString[]; + export type ReportGroupName = string; + export type ReportGroupSortByType = "NAME"|"CREATED_TIME"|"LAST_MODIFIED_TIME"|string; + export type ReportGroupStatusType = "ACTIVE"|"DELETING"|string; + export type ReportGroupTrendFieldType = "PASS_RATE"|"DURATION"|"TOTAL"|"LINE_COVERAGE"|"LINES_COVERED"|"LINES_MISSED"|"BRANCH_COVERAGE"|"BRANCHES_COVERED"|"BRANCHES_MISSED"|string; + export type ReportGroupTrendRawDataList = ReportWithRawData[]; + export interface ReportGroupTrendStats { + /** + * Contains the average of all values analyzed. + */ + average?: String; + /** + * Contains the maximum value analyzed. + */ + max?: String; + /** + * Contains the minimum value analyzed. + */ + min?: String; + } + export type ReportGroups = ReportGroup[]; + export type ReportPackagingType = "ZIP"|"NONE"|string; + export type ReportStatusCounts = {[key: string]: WrapperInt}; + export type ReportStatusType = "GENERATING"|"SUCCEEDED"|"FAILED"|"INCOMPLETE"|"DELETING"|string; + export type ReportType = "TEST"|"CODE_COVERAGE"|string; + export interface ReportWithRawData { + /** + * The ARN of the report. + */ + reportArn?: NonEmptyString; + /** + * The value of the requested data field from the report. + */ + data?: String; + } + export type Reports = Report[]; + export interface ResolvedArtifact { + /** + * Specifies the type of artifact. + */ + type?: ArtifactsType; + /** + * The location of the artifact. + */ + location?: String; + /** + * The identifier of the artifact. + */ + identifier?: String; + } + export type ResolvedSecondaryArtifacts = ResolvedArtifact[]; + export interface RetryBuildBatchInput { + /** + * Specifies the identifier of the batch build to restart. + */ + id?: NonEmptyString; + /** + * A unique, case sensitive identifier you provide to ensure the idempotency of the RetryBuildBatch request. The token is included in the RetryBuildBatch request and is valid for five minutes. If you repeat the RetryBuildBatch request with the same token, but change a parameter, AWS CodeBuild returns a parameter mismatch error. + */ + idempotencyToken?: String; + /** + * Specifies the type of retry to perform. + */ + retryType?: RetryBuildBatchType; + } + export interface RetryBuildBatchOutput { + buildBatch?: BuildBatch; + } + export type RetryBuildBatchType = "RETRY_ALL_BUILDS"|"RETRY_FAILED_BUILDS"|string; + export interface RetryBuildInput { + /** + * Specifies the identifier of the build to restart. + */ + id?: NonEmptyString; + /** + * A unique, case sensitive identifier you provide to ensure the idempotency of the RetryBuild request. The token is included in the RetryBuild request and is valid for five minutes. If you repeat the RetryBuild request with the same token, but change a parameter, AWS CodeBuild returns a parameter mismatch error. + */ + idempotencyToken?: String; + } + export interface RetryBuildOutput { + build?: Build; + } + export interface S3LogsConfig { + /** + * The current status of the S3 build logs. Valid values are: ENABLED: S3 build logs are enabled for this build project. DISABLED: S3 build logs are not enabled for this build project. + */ + status: LogsConfigStatusType; + /** + * The ARN of an S3 bucket and the path prefix for S3 logs. If your Amazon S3 bucket name is my-bucket, and your path prefix is build-log, then acceptable formats are my-bucket/build-log or arn:aws:s3:::my-bucket/build-log. + */ + location?: String; + /** + * Set to true if you do not want your S3 build log output encrypted. By default S3 build logs are encrypted. + */ + encryptionDisabled?: WrapperBoolean; + bucketOwnerAccess?: BucketOwnerAccess; + } + export interface S3ReportExportConfig { + /** + * The name of the S3 bucket where the raw data of a report are exported. + */ + bucket?: NonEmptyString; + /** + * The AWS account identifier of the owner of the Amazon S3 bucket. This allows report data to be exported to an Amazon S3 bucket that is owned by an account other than the account running the build. + */ + bucketOwner?: String; + /** + * The path to the exported report's raw data results. + */ + path?: String; + /** + * The type of build output artifact to create. Valid values include: NONE: AWS CodeBuild creates the raw data in the output bucket. This is the default if packaging is not specified. ZIP: AWS CodeBuild creates a ZIP file with the raw data in the output bucket. + */ + packaging?: ReportPackagingType; + /** + * The encryption key for the report's encrypted raw data. + */ + encryptionKey?: NonEmptyString; + /** + * A boolean value that specifies if the results of a report are encrypted. + */ + encryptionDisabled?: WrapperBoolean; + } + export type SecurityGroupIds = NonEmptyString[]; + export type SensitiveNonEmptyString = string; + export type ServerType = "GITHUB"|"BITBUCKET"|"GITHUB_ENTERPRISE"|string; + export type SharedResourceSortByType = "ARN"|"MODIFIED_TIME"|string; + export type SortOrderType = "ASCENDING"|"DESCENDING"|string; + export interface SourceAuth { + /** + * This data type is deprecated and is no longer accurate or used. The authorization type to use. The only valid value is OAUTH, which represents the OAuth authorization type. + */ + type: SourceAuthType; + /** + * The resource value that applies to the specified authorization type. + */ + resource?: String; + } + export type SourceAuthType = "OAUTH"|string; + export interface SourceCredentialsInfo { + /** + * The Amazon Resource Name (ARN) of the token. + */ + arn?: NonEmptyString; + /** + * The type of source provider. The valid options are GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + */ + serverType?: ServerType; + /** + * The type of authentication used by the credentials. Valid options are OAUTH, BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + */ + authType?: AuthType; + } + export type SourceCredentialsInfos = SourceCredentialsInfo[]; + export type SourceType = "CODECOMMIT"|"CODEPIPELINE"|"GITHUB"|"S3"|"BITBUCKET"|"GITHUB_ENTERPRISE"|"NO_SOURCE"|string; + export interface StartBuildBatchInput { + /** + * The name of the project. + */ + projectName: NonEmptyString; + /** + * An array of ProjectSource objects that override the secondary sources defined in the batch build project. + */ + secondarySourcesOverride?: ProjectSources; + /** + * An array of ProjectSourceVersion objects that override the secondary source versions in the batch build project. + */ + secondarySourcesVersionOverride?: ProjectSecondarySourceVersions; + /** + * The version of the batch build input to be built, for this build only. If not specified, the latest version is used. If specified, the contents depends on the source provider: AWS CodeCommit The commit ID, branch, or Git tag to use. GitHub The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. Bitbucket The commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. Amazon S3 The version ID of the object that represents the build input ZIP file to use. If sourceVersion is specified at the project level, then this sourceVersion (at the build level) takes precedence. For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide. + */ + sourceVersion?: String; + /** + * An array of ProjectArtifacts objects that contains information about the build output artifact overrides for the build project. + */ + artifactsOverride?: ProjectArtifacts; + /** + * An array of ProjectArtifacts objects that override the secondary artifacts defined in the batch build project. + */ + secondaryArtifactsOverride?: ProjectArtifactsList; + /** + * An array of EnvironmentVariable objects that override, or add to, the environment variables defined in the batch build project. + */ + environmentVariablesOverride?: EnvironmentVariables; + /** + * The source input type that overrides the source input defined in the batch build project. + */ + sourceTypeOverride?: SourceType; + /** + * A location that overrides, for this batch build, the source location defined in the batch build project. + */ + sourceLocationOverride?: String; + /** + * A SourceAuth object that overrides the one defined in the batch build project. This override applies only if the build project's source is BitBucket or GitHub. + */ + sourceAuthOverride?: SourceAuth; + /** + * The user-defined depth of history, with a minimum value of 0, that overrides, for this batch build only, any previous depth of history defined in the batch build project. + */ + gitCloneDepthOverride?: GitCloneDepth; + /** + * A GitSubmodulesConfig object that overrides the Git submodules configuration for this batch build. + */ + gitSubmodulesConfigOverride?: GitSubmodulesConfig; + /** + * A buildspec file declaration that overrides, for this build only, the latest one already defined in the build project. If this value is set, it can be either an inline buildspec definition, the path to an alternate buildspec file relative to the value of the built-in CODEBUILD_SRC_DIR environment variable, or the path to an S3 bucket. The bucket must be in the same AWS Region as the build project. Specify the buildspec file using its ARN (for example, arn:aws:s3:::my-codebuild-sample2/buildspec.yml). If this value is not provided or is set to an empty string, the source code must contain a buildspec file in its root directory. For more information, see Buildspec File Name and Storage Location. + */ + buildspecOverride?: String; + /** + * Enable this flag to override the insecure SSL setting that is specified in the batch build project. The insecure SSL setting determines whether to ignore SSL warnings while connecting to the project source code. This override applies only if the build's source is GitHub Enterprise. + */ + insecureSslOverride?: WrapperBoolean; + /** + * Set to true to report to your source provider the status of a batch build's start and completion. If you use this option with a source provider other than GitHub, GitHub Enterprise, or Bitbucket, an invalidInputException is thrown. The status of a build triggered by a webhook is always reported to your source provider. + */ + reportBuildBatchStatusOverride?: WrapperBoolean; + /** + * A container type for this batch build that overrides the one specified in the batch build project. + */ + environmentTypeOverride?: EnvironmentType; + /** + * The name of an image for this batch build that overrides the one specified in the batch build project. + */ + imageOverride?: NonEmptyString; + /** + * The name of a compute type for this batch build that overrides the one specified in the batch build project. + */ + computeTypeOverride?: ComputeType; + /** + * The name of a certificate for this batch build that overrides the one specified in the batch build project. + */ + certificateOverride?: String; + /** + * A ProjectCache object that specifies cache overrides. + */ + cacheOverride?: ProjectCache; + /** + * The name of a service role for this batch build that overrides the one specified in the batch build project. + */ + serviceRoleOverride?: NonEmptyString; + /** + * Enable this flag to override privileged mode in the batch build project. + */ + privilegedModeOverride?: WrapperBoolean; + /** + * Overrides the build timeout specified in the batch build project. + */ + buildTimeoutInMinutesOverride?: TimeOut; + /** + * The number of minutes a batch build is allowed to be queued before it times out. + */ + queuedTimeoutInMinutesOverride?: TimeOut; + /** + * The AWS Key Management Service (AWS KMS) customer master key (CMK) that overrides the one specified in the batch build project. The CMK key encrypts the build output artifacts. You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key. You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/<alias-name>). + */ + encryptionKeyOverride?: NonEmptyString; + /** + * A unique, case sensitive identifier you provide to ensure the idempotency of the StartBuildBatch request. The token is included in the StartBuildBatch request and is valid for five minutes. If you repeat the StartBuildBatch request with the same token, but change a parameter, AWS CodeBuild returns a parameter mismatch error. + */ + idempotencyToken?: String; + /** + * A LogsConfig object that override the log settings defined in the batch build project. + */ + logsConfigOverride?: LogsConfig; + /** + * A RegistryCredential object that overrides credentials for access to a private registry. + */ + registryCredentialOverride?: RegistryCredential; + /** + * The type of credentials AWS CodeBuild uses to pull images in your batch build. There are two valid values: CODEBUILD Specifies that AWS CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust AWS CodeBuild's service principal. SERVICE_ROLE Specifies that AWS CodeBuild uses your build project's service role. When using a cross-account or private registry image, you must use SERVICE_ROLE credentials. When using an AWS CodeBuild curated image, you must use CODEBUILD credentials. + */ + imagePullCredentialsTypeOverride?: ImagePullCredentialsType; + /** + * A BuildBatchConfigOverride object that contains batch build configuration overrides. + */ + buildBatchConfigOverride?: ProjectBuildBatchConfig; + /** + * Specifies if session debugging is enabled for this batch build. For more information, see Viewing a running build in Session Manager. Batch session debugging is not supported for matrix batch builds. + */ + debugSessionEnabled?: WrapperBoolean; + } + export interface StartBuildBatchOutput { + /** + * A BuildBatch object that contains information about the batch build. + */ + buildBatch?: BuildBatch; + } + export interface StartBuildInput { + /** + * The name of the AWS CodeBuild build project to start running a build. + */ + projectName: NonEmptyString; + /** + * An array of ProjectSource objects. + */ + secondarySourcesOverride?: ProjectSources; + /** + * An array of ProjectSourceVersion objects that specify one or more versions of the project's secondary sources to be used for this build only. + */ + secondarySourcesVersionOverride?: ProjectSecondarySourceVersions; + /** + * The version of the build input to be built, for this build only. If not specified, the latest version is used. If specified, the contents depends on the source provider: AWS CodeCommit The commit ID, branch, or Git tag to use. GitHub The commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. Bitbucket The commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. Amazon S3 The version ID of the object that represents the build input ZIP file to use. If sourceVersion is specified at the project level, then this sourceVersion (at the build level) takes precedence. For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide. + */ + sourceVersion?: String; + /** + * Build output artifact settings that override, for this build only, the latest ones already defined in the build project. + */ + artifactsOverride?: ProjectArtifacts; + /** + * An array of ProjectArtifacts objects. + */ + secondaryArtifactsOverride?: ProjectArtifactsList; + /** + * A set of environment variables that overrides, for this build only, the latest ones already defined in the build project. + */ + environmentVariablesOverride?: EnvironmentVariables; + /** + * A source input type, for this build, that overrides the source input defined in the build project. + */ + sourceTypeOverride?: SourceType; + /** + * A location that overrides, for this build, the source location for the one defined in the build project. + */ + sourceLocationOverride?: String; + /** + * An authorization type for this build that overrides the one defined in the build project. This override applies only if the build project's source is BitBucket or GitHub. + */ + sourceAuthOverride?: SourceAuth; + /** + * The user-defined depth of history, with a minimum value of 0, that overrides, for this build only, any previous depth of history defined in the build project. + */ + gitCloneDepthOverride?: GitCloneDepth; + /** + * Information about the Git submodules configuration for this build of an AWS CodeBuild build project. + */ + gitSubmodulesConfigOverride?: GitSubmodulesConfig; + /** + * A buildspec file declaration that overrides, for this build only, the latest one already defined in the build project. If this value is set, it can be either an inline buildspec definition, the path to an alternate buildspec file relative to the value of the built-in CODEBUILD_SRC_DIR environment variable, or the path to an S3 bucket. The bucket must be in the same AWS Region as the build project. Specify the buildspec file using its ARN (for example, arn:aws:s3:::my-codebuild-sample2/buildspec.yml). If this value is not provided or is set to an empty string, the source code must contain a buildspec file in its root directory. For more information, see Buildspec File Name and Storage Location. + */ + buildspecOverride?: String; + /** + * Enable this flag to override the insecure SSL setting that is specified in the build project. The insecure SSL setting determines whether to ignore SSL warnings while connecting to the project source code. This override applies only if the build's source is GitHub Enterprise. + */ + insecureSslOverride?: WrapperBoolean; + /** + * Set to true to report to your source provider the status of a build's start and completion. If you use this option with a source provider other than GitHub, GitHub Enterprise, or Bitbucket, an invalidInputException is thrown. To be able to report the build status to the source provider, the user associated with the source provider must have write access to the repo. If the user does not have write access, the build status cannot be updated. For more information, see Source provider access in the AWS CodeBuild User Guide. The status of a build triggered by a webhook is always reported to your source provider. + */ + reportBuildStatusOverride?: WrapperBoolean; + /** + * Contains information that defines how the build project reports the build status to the source provider. This option is only used when the source provider is GITHUB, GITHUB_ENTERPRISE, or BITBUCKET. + */ + buildStatusConfigOverride?: BuildStatusConfig; + /** + * A container type for this build that overrides the one specified in the build project. + */ + environmentTypeOverride?: EnvironmentType; + /** + * The name of an image for this build that overrides the one specified in the build project. + */ + imageOverride?: NonEmptyString; + /** + * The name of a compute type for this build that overrides the one specified in the build project. + */ + computeTypeOverride?: ComputeType; + /** + * The name of a certificate for this build that overrides the one specified in the build project. + */ + certificateOverride?: String; + /** + * A ProjectCache object specified for this build that overrides the one defined in the build project. + */ + cacheOverride?: ProjectCache; + /** + * The name of a service role for this build that overrides the one specified in the build project. + */ + serviceRoleOverride?: NonEmptyString; + /** + * Enable this flag to override privileged mode in the build project. + */ + privilegedModeOverride?: WrapperBoolean; + /** + * The number of build timeout minutes, from 5 to 480 (8 hours), that overrides, for this build only, the latest setting already defined in the build project. + */ + timeoutInMinutesOverride?: TimeOut; + /** + * The number of minutes a build is allowed to be queued before it times out. + */ + queuedTimeoutInMinutesOverride?: TimeOut; + /** + * The AWS Key Management Service (AWS KMS) customer master key (CMK) that overrides the one specified in the build project. The CMK key encrypts the build output artifacts. You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key. You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/<alias-name>). + */ + encryptionKeyOverride?: NonEmptyString; + /** + * A unique, case sensitive identifier you provide to ensure the idempotency of the StartBuild request. The token is included in the StartBuild request and is valid for 5 minutes. If you repeat the StartBuild request with the same token, but change a parameter, AWS CodeBuild returns a parameter mismatch error. + */ + idempotencyToken?: String; + /** + * Log settings for this build that override the log settings defined in the build project. + */ + logsConfigOverride?: LogsConfig; + /** + * The credentials for access to a private registry. + */ + registryCredentialOverride?: RegistryCredential; + /** + * The type of credentials AWS CodeBuild uses to pull images in your build. There are two valid values: CODEBUILD Specifies that AWS CodeBuild uses its own credentials. This requires that you modify your ECR repository policy to trust AWS CodeBuild's service principal. SERVICE_ROLE Specifies that AWS CodeBuild uses your build project's service role. When using a cross-account or private registry image, you must use SERVICE_ROLE credentials. When using an AWS CodeBuild curated image, you must use CODEBUILD credentials. + */ + imagePullCredentialsTypeOverride?: ImagePullCredentialsType; + /** + * Specifies if session debugging is enabled for this build. For more information, see Viewing a running build in Session Manager. + */ + debugSessionEnabled?: WrapperBoolean; + } + export interface StartBuildOutput { + /** + * Information about the build to be run. + */ + build?: Build; + } + export type StatusType = "SUCCEEDED"|"FAILED"|"FAULT"|"TIMED_OUT"|"IN_PROGRESS"|"STOPPED"|string; + export interface StopBuildBatchInput { + /** + * The identifier of the batch build to stop. + */ + id: NonEmptyString; + } + export interface StopBuildBatchOutput { + buildBatch?: BuildBatch; + } + export interface StopBuildInput { + /** + * The ID of the build. + */ + id: NonEmptyString; + } + export interface StopBuildOutput { + /** + * Information about the build. + */ + build?: Build; + } + export type String = string; + export type Subnets = NonEmptyString[]; + export interface Tag { + /** + * The tag's key. + */ + key?: KeyInput; + /** + * The tag's value. + */ + value?: ValueInput; + } + export type TagList = Tag[]; + export interface TestCase { + /** + * The ARN of the report to which the test case belongs. + */ + reportArn?: NonEmptyString; + /** + * The path to the raw data file that contains the test result. + */ + testRawDataPath?: String; + /** + * A string that is applied to a series of related test cases. CodeBuild generates the prefix. The prefix depends on the framework used to generate the tests. + */ + prefix?: String; + /** + * The name of the test case. + */ + name?: String; + /** + * The status returned by the test case after it was run. Valid statuses are SUCCEEDED, FAILED, ERROR, SKIPPED, and UNKNOWN. + */ + status?: String; + /** + * The number of nanoseconds it took to run this test case. + */ + durationInNanoSeconds?: WrapperLong; + /** + * A message associated with a test case. For example, an error message or stack trace. + */ + message?: String; + /** + * The date and time a test case expires. A test case expires 30 days after it is created. An expired test case is not available to view in CodeBuild. + */ + expired?: Timestamp; + } + export interface TestCaseFilter { + /** + * The status used to filter test cases. A TestCaseFilter can have one status. Valid values are: SUCCEEDED FAILED ERROR SKIPPED UNKNOWN + */ + status?: String; + /** + * A keyword that is used to filter on the name or the prefix of the test cases. Only test cases where the keyword is a substring of the name or the prefix will be returned. + */ + keyword?: String; + } + export type TestCases = TestCase[]; + export interface TestReportSummary { + /** + * The number of test cases in this TestReportSummary. The total includes truncated test cases. + */ + total: WrapperInt; + /** + * A map that contains the number of each type of status returned by the test results in this TestReportSummary. + */ + statusCounts: ReportStatusCounts; + /** + * The number of nanoseconds it took to run all of the test cases in this report. + */ + durationInNanoSeconds: WrapperLong; + } + export type TimeOut = number; + export type Timestamp = Date; + export interface UpdateProjectInput { + /** + * The name of the build project. You cannot change a build project's name. + */ + name: NonEmptyString; + /** + * A new or replacement description of the build project. + */ + description?: ProjectDescription; + /** + * Information to be changed about the build input source code for the build project. + */ + source?: ProjectSource; + /** + * An array of ProjectSource objects. + */ + secondarySources?: ProjectSources; + /** + * A version of the build input to be built for this project. If not specified, the latest version is used. If specified, it must be one of: For AWS CodeCommit: the commit ID, branch, or Git tag to use. For GitHub: the commit ID, pull request ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a pull request ID is specified, it must use the format pr/pull-request-ID (for example pr/25). If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Bitbucket: the commit ID, branch name, or tag name that corresponds to the version of the source code you want to build. If a branch name is specified, the branch's HEAD commit ID is used. If not specified, the default branch's HEAD commit ID is used. For Amazon S3: the version ID of the object that represents the build input ZIP file to use. If sourceVersion is specified at the build level, then that version takes precedence over this sourceVersion (at the project level). For more information, see Source Version Sample with CodeBuild in the AWS CodeBuild User Guide. + */ + sourceVersion?: String; + /** + * An array of ProjectSourceVersion objects. If secondarySourceVersions is specified at the build level, then they take over these secondarySourceVersions (at the project level). + */ + secondarySourceVersions?: ProjectSecondarySourceVersions; + /** + * Information to be changed about the build output artifacts for the build project. + */ + artifacts?: ProjectArtifacts; + /** + * An array of ProjectSource objects. + */ + secondaryArtifacts?: ProjectArtifactsList; + /** + * Stores recently used information so that it can be quickly accessed at a later time. + */ + cache?: ProjectCache; + /** + * Information to be changed about the build environment for the build project. + */ + environment?: ProjectEnvironment; + /** + * The replacement ARN of the AWS Identity and Access Management (IAM) role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account. + */ + serviceRole?: NonEmptyString; + /** + * The replacement value in minutes, from 5 to 480 (8 hours), for AWS CodeBuild to wait before timing out any related build that did not get marked as completed. + */ + timeoutInMinutes?: TimeOut; + /** + * The number of minutes a build is allowed to be queued before it times out. + */ + queuedTimeoutInMinutes?: TimeOut; + /** + * The AWS Key Management Service (AWS KMS) customer master key (CMK) to be used for encrypting the build output artifacts. You can use a cross-account KMS key to encrypt the build output artifacts if your service role has permission to that key. You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK's alias (using the format alias/<alias-name>). + */ + encryptionKey?: NonEmptyString; + /** + * An updated list of tag key and value pairs associated with this build project. These tags are available for use by AWS services that support AWS CodeBuild build project tags. + */ + tags?: TagList; + /** + * VpcConfig enables AWS CodeBuild to access resources in an Amazon VPC. + */ + vpcConfig?: VpcConfig; + /** + * Set this to true to generate a publicly accessible URL for your project's build badge. + */ + badgeEnabled?: WrapperBoolean; + /** + * Information about logs for the build project. A project can create logs in Amazon CloudWatch Logs, logs in an S3 bucket, or both. + */ + logsConfig?: LogsConfig; + /** + * An array of ProjectFileSystemLocation objects for a CodeBuild build project. A ProjectFileSystemLocation object specifies the identifier, location, mountOptions, mountPoint, and type of a file system created using Amazon Elastic File System. + */ + fileSystemLocations?: ProjectFileSystemLocations; + buildBatchConfig?: ProjectBuildBatchConfig; + /** + * The maximum number of concurrent builds that are allowed for this project. New builds are only started if the current number of builds is less than or equal to this limit. If the current build count meets this limit, new builds are throttled and are not run. To remove this limit, set this value to -1. + */ + concurrentBuildLimit?: WrapperInt; + } + export interface UpdateProjectOutput { + /** + * Information about the build project that was changed. + */ + project?: Project; + } + export interface UpdateReportGroupInput { + /** + * The ARN of the report group to update. + */ + arn: NonEmptyString; + /** + * Used to specify an updated export type. Valid values are: S3: The report results are exported to an S3 bucket. NO_EXPORT: The report results are not exported. + */ + exportConfig?: ReportExportConfig; + /** + * An updated list of tag key and value pairs associated with this report group. These tags are available for use by AWS services that support AWS CodeBuild report group tags. + */ + tags?: TagList; + } + export interface UpdateReportGroupOutput { + /** + * Information about the updated report group. + */ + reportGroup?: ReportGroup; + } + export interface UpdateWebhookInput { + /** + * The name of the AWS CodeBuild project. + */ + projectName: ProjectName; + /** + * A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If branchFilter is empty, then all branches are built. It is recommended that you use filterGroups instead of branchFilter. + */ + branchFilter?: String; + /** + * A boolean value that specifies whether the associated GitHub repository's secret token should be updated. If you use Bitbucket for your repository, rotateSecret is ignored. + */ + rotateSecret?: Boolean; + /** + * An array of arrays of WebhookFilter objects used to determine if a webhook event can trigger a build. A filter group must contain at least one EVENT WebhookFilter. + */ + filterGroups?: FilterGroups; + /** + * Specifies the type of build this webhook will trigger. + */ + buildType?: WebhookBuildType; + } + export interface UpdateWebhookOutput { + /** + * Information about a repository's webhook that is associated with a project in AWS CodeBuild. + */ + webhook?: Webhook; + } + export type ValueInput = string; + export interface VpcConfig { + /** + * The ID of the Amazon VPC. + */ + vpcId?: NonEmptyString; + /** + * A list of one or more subnet IDs in your Amazon VPC. + */ + subnets?: Subnets; + /** + * A list of one or more security groups IDs in your Amazon VPC. + */ + securityGroupIds?: SecurityGroupIds; + } + export interface Webhook { + /** + * The URL to the webhook. + */ + url?: NonEmptyString; + /** + * The AWS CodeBuild endpoint where webhook events are sent. + */ + payloadUrl?: NonEmptyString; + /** + * The secret token of the associated repository. A Bitbucket webhook does not support secret. + */ + secret?: NonEmptyString; + /** + * A regular expression used to determine which repository branches are built when a webhook is triggered. If the name of a branch matches the regular expression, then it is built. If branchFilter is empty, then all branches are built. It is recommended that you use filterGroups instead of branchFilter. + */ + branchFilter?: String; + /** + * An array of arrays of WebhookFilter objects used to determine which webhooks are triggered. At least one WebhookFilter in the array must specify EVENT as its type. For a build to be triggered, at least one filter group in the filterGroups array must pass. For a filter group to pass, each of its filters must pass. + */ + filterGroups?: FilterGroups; + /** + * Specifies the type of build this webhook will trigger. + */ + buildType?: WebhookBuildType; + /** + * A timestamp that indicates the last time a repository's secret token was modified. + */ + lastModifiedSecret?: Timestamp; + } + export type WebhookBuildType = "BUILD"|"BUILD_BATCH"|string; + export interface WebhookFilter { + /** + * The type of webhook filter. There are six webhook filter types: EVENT, ACTOR_ACCOUNT_ID, HEAD_REF, BASE_REF, FILE_PATH, and COMMIT_MESSAGE. EVENT A webhook event triggers a build when the provided pattern matches one of five event types: PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, and PULL_REQUEST_MERGED. The EVENT patterns are specified as a comma-separated string. For example, PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED filters all push, pull request created, and pull request updated events. The PULL_REQUEST_REOPENED works with GitHub and GitHub Enterprise only. ACTOR_ACCOUNT_ID A webhook event triggers a build when a GitHub, GitHub Enterprise, or Bitbucket account ID matches the regular expression pattern. HEAD_REF A webhook event triggers a build when the head reference matches the regular expression pattern. For example, refs/heads/branch-name and refs/tags/tag-name. Works with GitHub and GitHub Enterprise push, GitHub and GitHub Enterprise pull request, Bitbucket push, and Bitbucket pull request events. BASE_REF A webhook event triggers a build when the base reference matches the regular expression pattern. For example, refs/heads/branch-name. Works with pull request events only. FILE_PATH A webhook triggers a build when the path of a changed file matches the regular expression pattern. Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. COMMIT_MESSAGE A webhook triggers a build when the head commit message matches the regular expression pattern. Works with GitHub and Bitbucket events push and pull requests events. Also works with GitHub Enterprise push events, but does not work with GitHub Enterprise pull request events. + */ + type: WebhookFilterType; + /** + * For a WebHookFilter that uses EVENT type, a comma-separated string that specifies one or more events. For example, the webhook filter PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED allows all push, pull request created, and pull request updated events to trigger a build. For a WebHookFilter that uses any of the other filter types, a regular expression pattern. For example, a WebHookFilter that uses HEAD_REF for its type and the pattern ^refs/heads/ triggers a build when the head reference is a branch with a reference name refs/heads/branch-name. + */ + pattern: String; + /** + * Used to indicate that the pattern determines which webhook events do not trigger a build. If true, then a webhook event that does not match the pattern triggers a build. If false, then a webhook event that matches the pattern triggers a build. + */ + excludeMatchedPattern?: WrapperBoolean; + } + export type WebhookFilterType = "EVENT"|"BASE_REF"|"HEAD_REF"|"ACTOR_ACCOUNT_ID"|"FILE_PATH"|"COMMIT_MESSAGE"|string; + export type WrapperBoolean = boolean; + export type WrapperInt = number; + export type WrapperLong = number; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2016-10-06"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CodeBuild client. + */ + export import Types = CodeBuild; +} +export = CodeBuild; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codebuild.js b/justdanceonline-main/node_modules/aws-sdk/clients/codebuild.js new file mode 100644 index 0000000000000000000000000000000000000000..e5f190dfe6a5df8fbd8920a3366854470976eb9c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codebuild.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['codebuild'] = {}; +AWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']); +Object.defineProperty(apiLoader.services['codebuild'], '2016-10-06', { + get: function get() { + var model = require('../apis/codebuild-2016-10-06.min.json'); + model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CodeBuild; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codecommit.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/codecommit.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..50d02dd4530f569914701f3b47a76de912667d08 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codecommit.d.ts @@ -0,0 +1,3800 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CodeCommit extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CodeCommit.Types.ClientConfiguration) + config: Config & CodeCommit.Types.ClientConfiguration; + /** + * Creates an association between an approval rule template and a specified repository. Then, the next time a pull request is created in the repository where the destination reference (if specified) matches the destination reference (branch) for the pull request, an approval rule that matches the template conditions is automatically created for that pull request. If no destination references are specified in the template, an approval rule that matches the template contents is created for all pull requests in that repository. + */ + associateApprovalRuleTemplateWithRepository(params: CodeCommit.Types.AssociateApprovalRuleTemplateWithRepositoryInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates an association between an approval rule template and a specified repository. Then, the next time a pull request is created in the repository where the destination reference (if specified) matches the destination reference (branch) for the pull request, an approval rule that matches the template conditions is automatically created for that pull request. If no destination references are specified in the template, an approval rule that matches the template contents is created for all pull requests in that repository. + */ + associateApprovalRuleTemplateWithRepository(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates an association between an approval rule template and one or more specified repositories. + */ + batchAssociateApprovalRuleTemplateWithRepositories(params: CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesInput, callback?: (err: AWSError, data: CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesOutput) => void): Request; + /** + * Creates an association between an approval rule template and one or more specified repositories. + */ + batchAssociateApprovalRuleTemplateWithRepositories(callback?: (err: AWSError, data: CodeCommit.Types.BatchAssociateApprovalRuleTemplateWithRepositoriesOutput) => void): Request; + /** + * Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. + */ + batchDescribeMergeConflicts(params: CodeCommit.Types.BatchDescribeMergeConflictsInput, callback?: (err: AWSError, data: CodeCommit.Types.BatchDescribeMergeConflictsOutput) => void): Request; + /** + * Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. + */ + batchDescribeMergeConflicts(callback?: (err: AWSError, data: CodeCommit.Types.BatchDescribeMergeConflictsOutput) => void): Request; + /** + * Removes the association between an approval rule template and one or more specified repositories. + */ + batchDisassociateApprovalRuleTemplateFromRepositories(params: CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesInput, callback?: (err: AWSError, data: CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput) => void): Request; + /** + * Removes the association between an approval rule template and one or more specified repositories. + */ + batchDisassociateApprovalRuleTemplateFromRepositories(callback?: (err: AWSError, data: CodeCommit.Types.BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput) => void): Request; + /** + * Returns information about the contents of one or more commits in a repository. + */ + batchGetCommits(params: CodeCommit.Types.BatchGetCommitsInput, callback?: (err: AWSError, data: CodeCommit.Types.BatchGetCommitsOutput) => void): Request; + /** + * Returns information about the contents of one or more commits in a repository. + */ + batchGetCommits(callback?: (err: AWSError, data: CodeCommit.Types.BatchGetCommitsOutput) => void): Request; + /** + * Returns information about one or more repositories. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. + */ + batchGetRepositories(params: CodeCommit.Types.BatchGetRepositoriesInput, callback?: (err: AWSError, data: CodeCommit.Types.BatchGetRepositoriesOutput) => void): Request; + /** + * Returns information about one or more repositories. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. + */ + batchGetRepositories(callback?: (err: AWSError, data: CodeCommit.Types.BatchGetRepositoriesOutput) => void): Request; + /** + * Creates a template for approval rules that can then be associated with one or more repositories in your AWS account. When you associate a template with a repository, AWS CodeCommit creates an approval rule that matches the conditions of the template for all pull requests that meet the conditions of the template. For more information, see AssociateApprovalRuleTemplateWithRepository. + */ + createApprovalRuleTemplate(params: CodeCommit.Types.CreateApprovalRuleTemplateInput, callback?: (err: AWSError, data: CodeCommit.Types.CreateApprovalRuleTemplateOutput) => void): Request; + /** + * Creates a template for approval rules that can then be associated with one or more repositories in your AWS account. When you associate a template with a repository, AWS CodeCommit creates an approval rule that matches the conditions of the template for all pull requests that meet the conditions of the template. For more information, see AssociateApprovalRuleTemplateWithRepository. + */ + createApprovalRuleTemplate(callback?: (err: AWSError, data: CodeCommit.Types.CreateApprovalRuleTemplateOutput) => void): Request; + /** + * Creates a branch in a repository and points the branch to a commit. Calling the create branch operation does not set a repository's default branch. To do this, call the update default branch operation. + */ + createBranch(params: CodeCommit.Types.CreateBranchInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a branch in a repository and points the branch to a commit. Calling the create branch operation does not set a repository's default branch. To do this, call the update default branch operation. + */ + createBranch(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates a commit for a repository on the tip of a specified branch. + */ + createCommit(params: CodeCommit.Types.CreateCommitInput, callback?: (err: AWSError, data: CodeCommit.Types.CreateCommitOutput) => void): Request; + /** + * Creates a commit for a repository on the tip of a specified branch. + */ + createCommit(callback?: (err: AWSError, data: CodeCommit.Types.CreateCommitOutput) => void): Request; + /** + * Creates a pull request in the specified repository. + */ + createPullRequest(params: CodeCommit.Types.CreatePullRequestInput, callback?: (err: AWSError, data: CodeCommit.Types.CreatePullRequestOutput) => void): Request; + /** + * Creates a pull request in the specified repository. + */ + createPullRequest(callback?: (err: AWSError, data: CodeCommit.Types.CreatePullRequestOutput) => void): Request; + /** + * Creates an approval rule for a pull request. + */ + createPullRequestApprovalRule(params: CodeCommit.Types.CreatePullRequestApprovalRuleInput, callback?: (err: AWSError, data: CodeCommit.Types.CreatePullRequestApprovalRuleOutput) => void): Request; + /** + * Creates an approval rule for a pull request. + */ + createPullRequestApprovalRule(callback?: (err: AWSError, data: CodeCommit.Types.CreatePullRequestApprovalRuleOutput) => void): Request; + /** + * Creates a new, empty repository. + */ + createRepository(params: CodeCommit.Types.CreateRepositoryInput, callback?: (err: AWSError, data: CodeCommit.Types.CreateRepositoryOutput) => void): Request; + /** + * Creates a new, empty repository. + */ + createRepository(callback?: (err: AWSError, data: CodeCommit.Types.CreateRepositoryOutput) => void): Request; + /** + * Creates an unreferenced commit that represents the result of merging two branches using a specified merge strategy. This can help you determine the outcome of a potential merge. This API cannot be used with the fast-forward merge strategy because that strategy does not create a merge commit. This unreferenced merge commit can only be accessed using the GetCommit API or through git commands such as git fetch. To retrieve this commit, you must specify its commit ID or otherwise reference it. + */ + createUnreferencedMergeCommit(params: CodeCommit.Types.CreateUnreferencedMergeCommitInput, callback?: (err: AWSError, data: CodeCommit.Types.CreateUnreferencedMergeCommitOutput) => void): Request; + /** + * Creates an unreferenced commit that represents the result of merging two branches using a specified merge strategy. This can help you determine the outcome of a potential merge. This API cannot be used with the fast-forward merge strategy because that strategy does not create a merge commit. This unreferenced merge commit can only be accessed using the GetCommit API or through git commands such as git fetch. To retrieve this commit, you must specify its commit ID or otherwise reference it. + */ + createUnreferencedMergeCommit(callback?: (err: AWSError, data: CodeCommit.Types.CreateUnreferencedMergeCommitOutput) => void): Request; + /** + * Deletes a specified approval rule template. Deleting a template does not remove approval rules on pull requests already created with the template. + */ + deleteApprovalRuleTemplate(params: CodeCommit.Types.DeleteApprovalRuleTemplateInput, callback?: (err: AWSError, data: CodeCommit.Types.DeleteApprovalRuleTemplateOutput) => void): Request; + /** + * Deletes a specified approval rule template. Deleting a template does not remove approval rules on pull requests already created with the template. + */ + deleteApprovalRuleTemplate(callback?: (err: AWSError, data: CodeCommit.Types.DeleteApprovalRuleTemplateOutput) => void): Request; + /** + * Deletes a branch from a repository, unless that branch is the default branch for the repository. + */ + deleteBranch(params: CodeCommit.Types.DeleteBranchInput, callback?: (err: AWSError, data: CodeCommit.Types.DeleteBranchOutput) => void): Request; + /** + * Deletes a branch from a repository, unless that branch is the default branch for the repository. + */ + deleteBranch(callback?: (err: AWSError, data: CodeCommit.Types.DeleteBranchOutput) => void): Request; + /** + * Deletes the content of a comment made on a change, file, or commit in a repository. + */ + deleteCommentContent(params: CodeCommit.Types.DeleteCommentContentInput, callback?: (err: AWSError, data: CodeCommit.Types.DeleteCommentContentOutput) => void): Request; + /** + * Deletes the content of a comment made on a change, file, or commit in a repository. + */ + deleteCommentContent(callback?: (err: AWSError, data: CodeCommit.Types.DeleteCommentContentOutput) => void): Request; + /** + * Deletes a specified file from a specified branch. A commit is created on the branch that contains the revision. The file still exists in the commits earlier to the commit that contains the deletion. + */ + deleteFile(params: CodeCommit.Types.DeleteFileInput, callback?: (err: AWSError, data: CodeCommit.Types.DeleteFileOutput) => void): Request; + /** + * Deletes a specified file from a specified branch. A commit is created on the branch that contains the revision. The file still exists in the commits earlier to the commit that contains the deletion. + */ + deleteFile(callback?: (err: AWSError, data: CodeCommit.Types.DeleteFileOutput) => void): Request; + /** + * Deletes an approval rule from a specified pull request. Approval rules can be deleted from a pull request only if the pull request is open, and if the approval rule was created specifically for a pull request and not generated from an approval rule template associated with the repository where the pull request was created. You cannot delete an approval rule from a merged or closed pull request. + */ + deletePullRequestApprovalRule(params: CodeCommit.Types.DeletePullRequestApprovalRuleInput, callback?: (err: AWSError, data: CodeCommit.Types.DeletePullRequestApprovalRuleOutput) => void): Request; + /** + * Deletes an approval rule from a specified pull request. Approval rules can be deleted from a pull request only if the pull request is open, and if the approval rule was created specifically for a pull request and not generated from an approval rule template associated with the repository where the pull request was created. You cannot delete an approval rule from a merged or closed pull request. + */ + deletePullRequestApprovalRule(callback?: (err: AWSError, data: CodeCommit.Types.DeletePullRequestApprovalRuleOutput) => void): Request; + /** + * Deletes a repository. If a specified repository was already deleted, a null repository ID is returned. Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository fail. + */ + deleteRepository(params: CodeCommit.Types.DeleteRepositoryInput, callback?: (err: AWSError, data: CodeCommit.Types.DeleteRepositoryOutput) => void): Request; + /** + * Deletes a repository. If a specified repository was already deleted, a null repository ID is returned. Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository fail. + */ + deleteRepository(callback?: (err: AWSError, data: CodeCommit.Types.DeleteRepositoryOutput) => void): Request; + /** + * Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. If the merge option for the attempted merge is specified as FAST_FORWARD_MERGE, an exception is thrown. + */ + describeMergeConflicts(params: CodeCommit.Types.DescribeMergeConflictsInput, callback?: (err: AWSError, data: CodeCommit.Types.DescribeMergeConflictsOutput) => void): Request; + /** + * Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. If the merge option for the attempted merge is specified as FAST_FORWARD_MERGE, an exception is thrown. + */ + describeMergeConflicts(callback?: (err: AWSError, data: CodeCommit.Types.DescribeMergeConflictsOutput) => void): Request; + /** + * Returns information about one or more pull request events. + */ + describePullRequestEvents(params: CodeCommit.Types.DescribePullRequestEventsInput, callback?: (err: AWSError, data: CodeCommit.Types.DescribePullRequestEventsOutput) => void): Request; + /** + * Returns information about one or more pull request events. + */ + describePullRequestEvents(callback?: (err: AWSError, data: CodeCommit.Types.DescribePullRequestEventsOutput) => void): Request; + /** + * Removes the association between a template and a repository so that approval rules based on the template are not automatically created when pull requests are created in the specified repository. This does not delete any approval rules previously created for pull requests through the template association. + */ + disassociateApprovalRuleTemplateFromRepository(params: CodeCommit.Types.DisassociateApprovalRuleTemplateFromRepositoryInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes the association between a template and a repository so that approval rules based on the template are not automatically created when pull requests are created in the specified repository. This does not delete any approval rules previously created for pull requests through the template association. + */ + disassociateApprovalRuleTemplateFromRepository(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Evaluates whether a pull request has met all the conditions specified in its associated approval rules. + */ + evaluatePullRequestApprovalRules(params: CodeCommit.Types.EvaluatePullRequestApprovalRulesInput, callback?: (err: AWSError, data: CodeCommit.Types.EvaluatePullRequestApprovalRulesOutput) => void): Request; + /** + * Evaluates whether a pull request has met all the conditions specified in its associated approval rules. + */ + evaluatePullRequestApprovalRules(callback?: (err: AWSError, data: CodeCommit.Types.EvaluatePullRequestApprovalRulesOutput) => void): Request; + /** + * Returns information about a specified approval rule template. + */ + getApprovalRuleTemplate(params: CodeCommit.Types.GetApprovalRuleTemplateInput, callback?: (err: AWSError, data: CodeCommit.Types.GetApprovalRuleTemplateOutput) => void): Request; + /** + * Returns information about a specified approval rule template. + */ + getApprovalRuleTemplate(callback?: (err: AWSError, data: CodeCommit.Types.GetApprovalRuleTemplateOutput) => void): Request; + /** + * Returns the base-64 encoded content of an individual blob in a repository. + */ + getBlob(params: CodeCommit.Types.GetBlobInput, callback?: (err: AWSError, data: CodeCommit.Types.GetBlobOutput) => void): Request; + /** + * Returns the base-64 encoded content of an individual blob in a repository. + */ + getBlob(callback?: (err: AWSError, data: CodeCommit.Types.GetBlobOutput) => void): Request; + /** + * Returns information about a repository branch, including its name and the last commit ID. + */ + getBranch(params: CodeCommit.Types.GetBranchInput, callback?: (err: AWSError, data: CodeCommit.Types.GetBranchOutput) => void): Request; + /** + * Returns information about a repository branch, including its name and the last commit ID. + */ + getBranch(callback?: (err: AWSError, data: CodeCommit.Types.GetBranchOutput) => void): Request; + /** + * Returns the content of a comment made on a change, file, or commit in a repository. Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. + */ + getComment(params: CodeCommit.Types.GetCommentInput, callback?: (err: AWSError, data: CodeCommit.Types.GetCommentOutput) => void): Request; + /** + * Returns the content of a comment made on a change, file, or commit in a repository. Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. + */ + getComment(callback?: (err: AWSError, data: CodeCommit.Types.GetCommentOutput) => void): Request; + /** + * Returns information about reactions to a specified comment ID. Reactions from users who have been deleted will not be included in the count. + */ + getCommentReactions(params: CodeCommit.Types.GetCommentReactionsInput, callback?: (err: AWSError, data: CodeCommit.Types.GetCommentReactionsOutput) => void): Request; + /** + * Returns information about reactions to a specified comment ID. Reactions from users who have been deleted will not be included in the count. + */ + getCommentReactions(callback?: (err: AWSError, data: CodeCommit.Types.GetCommentReactionsOutput) => void): Request; + /** + * Returns information about comments made on the comparison between two commits. Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. + */ + getCommentsForComparedCommit(params: CodeCommit.Types.GetCommentsForComparedCommitInput, callback?: (err: AWSError, data: CodeCommit.Types.GetCommentsForComparedCommitOutput) => void): Request; + /** + * Returns information about comments made on the comparison between two commits. Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. + */ + getCommentsForComparedCommit(callback?: (err: AWSError, data: CodeCommit.Types.GetCommentsForComparedCommitOutput) => void): Request; + /** + * Returns comments made on a pull request. Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. + */ + getCommentsForPullRequest(params: CodeCommit.Types.GetCommentsForPullRequestInput, callback?: (err: AWSError, data: CodeCommit.Types.GetCommentsForPullRequestOutput) => void): Request; + /** + * Returns comments made on a pull request. Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions. + */ + getCommentsForPullRequest(callback?: (err: AWSError, data: CodeCommit.Types.GetCommentsForPullRequestOutput) => void): Request; + /** + * Returns information about a commit, including commit message and committer information. + */ + getCommit(params: CodeCommit.Types.GetCommitInput, callback?: (err: AWSError, data: CodeCommit.Types.GetCommitOutput) => void): Request; + /** + * Returns information about a commit, including commit message and committer information. + */ + getCommit(callback?: (err: AWSError, data: CodeCommit.Types.GetCommitOutput) => void): Request; + /** + * Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID, or other fully qualified reference). Results can be limited to a specified path. + */ + getDifferences(params: CodeCommit.Types.GetDifferencesInput, callback?: (err: AWSError, data: CodeCommit.Types.GetDifferencesOutput) => void): Request; + /** + * Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID, or other fully qualified reference). Results can be limited to a specified path. + */ + getDifferences(callback?: (err: AWSError, data: CodeCommit.Types.GetDifferencesOutput) => void): Request; + /** + * Returns the base-64 encoded contents of a specified file and its metadata. + */ + getFile(params: CodeCommit.Types.GetFileInput, callback?: (err: AWSError, data: CodeCommit.Types.GetFileOutput) => void): Request; + /** + * Returns the base-64 encoded contents of a specified file and its metadata. + */ + getFile(callback?: (err: AWSError, data: CodeCommit.Types.GetFileOutput) => void): Request; + /** + * Returns the contents of a specified folder in a repository. + */ + getFolder(params: CodeCommit.Types.GetFolderInput, callback?: (err: AWSError, data: CodeCommit.Types.GetFolderOutput) => void): Request; + /** + * Returns the contents of a specified folder in a repository. + */ + getFolder(callback?: (err: AWSError, data: CodeCommit.Types.GetFolderOutput) => void): Request; + /** + * Returns information about a specified merge commit. + */ + getMergeCommit(params: CodeCommit.Types.GetMergeCommitInput, callback?: (err: AWSError, data: CodeCommit.Types.GetMergeCommitOutput) => void): Request; + /** + * Returns information about a specified merge commit. + */ + getMergeCommit(callback?: (err: AWSError, data: CodeCommit.Types.GetMergeCommitOutput) => void): Request; + /** + * Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository. + */ + getMergeConflicts(params: CodeCommit.Types.GetMergeConflictsInput, callback?: (err: AWSError, data: CodeCommit.Types.GetMergeConflictsOutput) => void): Request; + /** + * Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository. + */ + getMergeConflicts(callback?: (err: AWSError, data: CodeCommit.Types.GetMergeConflictsOutput) => void): Request; + /** + * Returns information about the merge options available for merging two specified branches. For details about why a merge option is not available, use GetMergeConflicts or DescribeMergeConflicts. + */ + getMergeOptions(params: CodeCommit.Types.GetMergeOptionsInput, callback?: (err: AWSError, data: CodeCommit.Types.GetMergeOptionsOutput) => void): Request; + /** + * Returns information about the merge options available for merging two specified branches. For details about why a merge option is not available, use GetMergeConflicts or DescribeMergeConflicts. + */ + getMergeOptions(callback?: (err: AWSError, data: CodeCommit.Types.GetMergeOptionsOutput) => void): Request; + /** + * Gets information about a pull request in a specified repository. + */ + getPullRequest(params: CodeCommit.Types.GetPullRequestInput, callback?: (err: AWSError, data: CodeCommit.Types.GetPullRequestOutput) => void): Request; + /** + * Gets information about a pull request in a specified repository. + */ + getPullRequest(callback?: (err: AWSError, data: CodeCommit.Types.GetPullRequestOutput) => void): Request; + /** + * Gets information about the approval states for a specified pull request. Approval states only apply to pull requests that have one or more approval rules applied to them. + */ + getPullRequestApprovalStates(params: CodeCommit.Types.GetPullRequestApprovalStatesInput, callback?: (err: AWSError, data: CodeCommit.Types.GetPullRequestApprovalStatesOutput) => void): Request; + /** + * Gets information about the approval states for a specified pull request. Approval states only apply to pull requests that have one or more approval rules applied to them. + */ + getPullRequestApprovalStates(callback?: (err: AWSError, data: CodeCommit.Types.GetPullRequestApprovalStatesOutput) => void): Request; + /** + * Returns information about whether approval rules have been set aside (overridden) for a pull request, and if so, the Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request. + */ + getPullRequestOverrideState(params: CodeCommit.Types.GetPullRequestOverrideStateInput, callback?: (err: AWSError, data: CodeCommit.Types.GetPullRequestOverrideStateOutput) => void): Request; + /** + * Returns information about whether approval rules have been set aside (overridden) for a pull request, and if so, the Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request. + */ + getPullRequestOverrideState(callback?: (err: AWSError, data: CodeCommit.Types.GetPullRequestOverrideStateOutput) => void): Request; + /** + * Returns information about a repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. + */ + getRepository(params: CodeCommit.Types.GetRepositoryInput, callback?: (err: AWSError, data: CodeCommit.Types.GetRepositoryOutput) => void): Request; + /** + * Returns information about a repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. + */ + getRepository(callback?: (err: AWSError, data: CodeCommit.Types.GetRepositoryOutput) => void): Request; + /** + * Gets information about triggers configured for a repository. + */ + getRepositoryTriggers(params: CodeCommit.Types.GetRepositoryTriggersInput, callback?: (err: AWSError, data: CodeCommit.Types.GetRepositoryTriggersOutput) => void): Request; + /** + * Gets information about triggers configured for a repository. + */ + getRepositoryTriggers(callback?: (err: AWSError, data: CodeCommit.Types.GetRepositoryTriggersOutput) => void): Request; + /** + * Lists all approval rule templates in the specified AWS Region in your AWS account. If an AWS Region is not specified, the AWS Region where you are signed in is used. + */ + listApprovalRuleTemplates(params: CodeCommit.Types.ListApprovalRuleTemplatesInput, callback?: (err: AWSError, data: CodeCommit.Types.ListApprovalRuleTemplatesOutput) => void): Request; + /** + * Lists all approval rule templates in the specified AWS Region in your AWS account. If an AWS Region is not specified, the AWS Region where you are signed in is used. + */ + listApprovalRuleTemplates(callback?: (err: AWSError, data: CodeCommit.Types.ListApprovalRuleTemplatesOutput) => void): Request; + /** + * Lists all approval rule templates that are associated with a specified repository. + */ + listAssociatedApprovalRuleTemplatesForRepository(params: CodeCommit.Types.ListAssociatedApprovalRuleTemplatesForRepositoryInput, callback?: (err: AWSError, data: CodeCommit.Types.ListAssociatedApprovalRuleTemplatesForRepositoryOutput) => void): Request; + /** + * Lists all approval rule templates that are associated with a specified repository. + */ + listAssociatedApprovalRuleTemplatesForRepository(callback?: (err: AWSError, data: CodeCommit.Types.ListAssociatedApprovalRuleTemplatesForRepositoryOutput) => void): Request; + /** + * Gets information about one or more branches in a repository. + */ + listBranches(params: CodeCommit.Types.ListBranchesInput, callback?: (err: AWSError, data: CodeCommit.Types.ListBranchesOutput) => void): Request; + /** + * Gets information about one or more branches in a repository. + */ + listBranches(callback?: (err: AWSError, data: CodeCommit.Types.ListBranchesOutput) => void): Request; + /** + * Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN. + */ + listPullRequests(params: CodeCommit.Types.ListPullRequestsInput, callback?: (err: AWSError, data: CodeCommit.Types.ListPullRequestsOutput) => void): Request; + /** + * Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN. + */ + listPullRequests(callback?: (err: AWSError, data: CodeCommit.Types.ListPullRequestsOutput) => void): Request; + /** + * Gets information about one or more repositories. + */ + listRepositories(params: CodeCommit.Types.ListRepositoriesInput, callback?: (err: AWSError, data: CodeCommit.Types.ListRepositoriesOutput) => void): Request; + /** + * Gets information about one or more repositories. + */ + listRepositories(callback?: (err: AWSError, data: CodeCommit.Types.ListRepositoriesOutput) => void): Request; + /** + * Lists all repositories associated with the specified approval rule template. + */ + listRepositoriesForApprovalRuleTemplate(params: CodeCommit.Types.ListRepositoriesForApprovalRuleTemplateInput, callback?: (err: AWSError, data: CodeCommit.Types.ListRepositoriesForApprovalRuleTemplateOutput) => void): Request; + /** + * Lists all repositories associated with the specified approval rule template. + */ + listRepositoriesForApprovalRuleTemplate(callback?: (err: AWSError, data: CodeCommit.Types.ListRepositoriesForApprovalRuleTemplateOutput) => void): Request; + /** + * Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see CodeCommit Resources and Operations in the AWS CodeCommit User Guide. + */ + listTagsForResource(params: CodeCommit.Types.ListTagsForResourceInput, callback?: (err: AWSError, data: CodeCommit.Types.ListTagsForResourceOutput) => void): Request; + /** + * Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see CodeCommit Resources and Operations in the AWS CodeCommit User Guide. + */ + listTagsForResource(callback?: (err: AWSError, data: CodeCommit.Types.ListTagsForResourceOutput) => void): Request; + /** + * Merges two branches using the fast-forward merge strategy. + */ + mergeBranchesByFastForward(params: CodeCommit.Types.MergeBranchesByFastForwardInput, callback?: (err: AWSError, data: CodeCommit.Types.MergeBranchesByFastForwardOutput) => void): Request; + /** + * Merges two branches using the fast-forward merge strategy. + */ + mergeBranchesByFastForward(callback?: (err: AWSError, data: CodeCommit.Types.MergeBranchesByFastForwardOutput) => void): Request; + /** + * Merges two branches using the squash merge strategy. + */ + mergeBranchesBySquash(params: CodeCommit.Types.MergeBranchesBySquashInput, callback?: (err: AWSError, data: CodeCommit.Types.MergeBranchesBySquashOutput) => void): Request; + /** + * Merges two branches using the squash merge strategy. + */ + mergeBranchesBySquash(callback?: (err: AWSError, data: CodeCommit.Types.MergeBranchesBySquashOutput) => void): Request; + /** + * Merges two specified branches using the three-way merge strategy. + */ + mergeBranchesByThreeWay(params: CodeCommit.Types.MergeBranchesByThreeWayInput, callback?: (err: AWSError, data: CodeCommit.Types.MergeBranchesByThreeWayOutput) => void): Request; + /** + * Merges two specified branches using the three-way merge strategy. + */ + mergeBranchesByThreeWay(callback?: (err: AWSError, data: CodeCommit.Types.MergeBranchesByThreeWayOutput) => void): Request; + /** + * Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge strategy. If the merge is successful, it closes the pull request. + */ + mergePullRequestByFastForward(params: CodeCommit.Types.MergePullRequestByFastForwardInput, callback?: (err: AWSError, data: CodeCommit.Types.MergePullRequestByFastForwardOutput) => void): Request; + /** + * Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge strategy. If the merge is successful, it closes the pull request. + */ + mergePullRequestByFastForward(callback?: (err: AWSError, data: CodeCommit.Types.MergePullRequestByFastForwardOutput) => void): Request; + /** + * Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the squash merge strategy. If the merge is successful, it closes the pull request. + */ + mergePullRequestBySquash(params: CodeCommit.Types.MergePullRequestBySquashInput, callback?: (err: AWSError, data: CodeCommit.Types.MergePullRequestBySquashOutput) => void): Request; + /** + * Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the squash merge strategy. If the merge is successful, it closes the pull request. + */ + mergePullRequestBySquash(callback?: (err: AWSError, data: CodeCommit.Types.MergePullRequestBySquashOutput) => void): Request; + /** + * Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the three-way merge strategy. If the merge is successful, it closes the pull request. + */ + mergePullRequestByThreeWay(params: CodeCommit.Types.MergePullRequestByThreeWayInput, callback?: (err: AWSError, data: CodeCommit.Types.MergePullRequestByThreeWayOutput) => void): Request; + /** + * Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the three-way merge strategy. If the merge is successful, it closes the pull request. + */ + mergePullRequestByThreeWay(callback?: (err: AWSError, data: CodeCommit.Types.MergePullRequestByThreeWayOutput) => void): Request; + /** + * Sets aside (overrides) all approval rule requirements for a specified pull request. + */ + overridePullRequestApprovalRules(params: CodeCommit.Types.OverridePullRequestApprovalRulesInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets aside (overrides) all approval rule requirements for a specified pull request. + */ + overridePullRequestApprovalRules(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Posts a comment on the comparison between two commits. + */ + postCommentForComparedCommit(params: CodeCommit.Types.PostCommentForComparedCommitInput, callback?: (err: AWSError, data: CodeCommit.Types.PostCommentForComparedCommitOutput) => void): Request; + /** + * Posts a comment on the comparison between two commits. + */ + postCommentForComparedCommit(callback?: (err: AWSError, data: CodeCommit.Types.PostCommentForComparedCommitOutput) => void): Request; + /** + * Posts a comment on a pull request. + */ + postCommentForPullRequest(params: CodeCommit.Types.PostCommentForPullRequestInput, callback?: (err: AWSError, data: CodeCommit.Types.PostCommentForPullRequestOutput) => void): Request; + /** + * Posts a comment on a pull request. + */ + postCommentForPullRequest(callback?: (err: AWSError, data: CodeCommit.Types.PostCommentForPullRequestOutput) => void): Request; + /** + * Posts a comment in reply to an existing comment on a comparison between commits or a pull request. + */ + postCommentReply(params: CodeCommit.Types.PostCommentReplyInput, callback?: (err: AWSError, data: CodeCommit.Types.PostCommentReplyOutput) => void): Request; + /** + * Posts a comment in reply to an existing comment on a comparison between commits or a pull request. + */ + postCommentReply(callback?: (err: AWSError, data: CodeCommit.Types.PostCommentReplyOutput) => void): Request; + /** + * Adds or updates a reaction to a specified comment for the user whose identity is used to make the request. You can only add or update a reaction for yourself. You cannot add, modify, or delete a reaction for another user. + */ + putCommentReaction(params: CodeCommit.Types.PutCommentReactionInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds or updates a reaction to a specified comment for the user whose identity is used to make the request. You can only add or update a reaction for yourself. You cannot add, modify, or delete a reaction for another user. + */ + putCommentReaction(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds or updates a file in a branch in an AWS CodeCommit repository, and generates a commit for the addition in the specified branch. + */ + putFile(params: CodeCommit.Types.PutFileInput, callback?: (err: AWSError, data: CodeCommit.Types.PutFileOutput) => void): Request; + /** + * Adds or updates a file in a branch in an AWS CodeCommit repository, and generates a commit for the addition in the specified branch. + */ + putFile(callback?: (err: AWSError, data: CodeCommit.Types.PutFileOutput) => void): Request; + /** + * Replaces all triggers for a repository. Used to create or delete triggers. + */ + putRepositoryTriggers(params: CodeCommit.Types.PutRepositoryTriggersInput, callback?: (err: AWSError, data: CodeCommit.Types.PutRepositoryTriggersOutput) => void): Request; + /** + * Replaces all triggers for a repository. Used to create or delete triggers. + */ + putRepositoryTriggers(callback?: (err: AWSError, data: CodeCommit.Types.PutRepositoryTriggersOutput) => void): Request; + /** + * Adds or updates tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see CodeCommit Resources and Operations in the AWS CodeCommit User Guide. + */ + tagResource(params: CodeCommit.Types.TagResourceInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds or updates tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see CodeCommit Resources and Operations in the AWS CodeCommit User Guide. + */ + tagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Tests the functionality of repository triggers by sending information to the trigger target. If real data is available in the repository, the test sends data from the last commit. If no data is available, sample data is generated. + */ + testRepositoryTriggers(params: CodeCommit.Types.TestRepositoryTriggersInput, callback?: (err: AWSError, data: CodeCommit.Types.TestRepositoryTriggersOutput) => void): Request; + /** + * Tests the functionality of repository triggers by sending information to the trigger target. If real data is available in the repository, the test sends data from the last commit. If no data is available, sample data is generated. + */ + testRepositoryTriggers(callback?: (err: AWSError, data: CodeCommit.Types.TestRepositoryTriggersOutput) => void): Request; + /** + * Removes tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see CodeCommit Resources and Operations in the AWS CodeCommit User Guide. + */ + untagResource(params: CodeCommit.Types.UntagResourceInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see CodeCommit Resources and Operations in the AWS CodeCommit User Guide. + */ + untagResource(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the content of an approval rule template. You can change the number of required approvals, the membership of the approval rule, and whether an approval pool is defined. + */ + updateApprovalRuleTemplateContent(params: CodeCommit.Types.UpdateApprovalRuleTemplateContentInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdateApprovalRuleTemplateContentOutput) => void): Request; + /** + * Updates the content of an approval rule template. You can change the number of required approvals, the membership of the approval rule, and whether an approval pool is defined. + */ + updateApprovalRuleTemplateContent(callback?: (err: AWSError, data: CodeCommit.Types.UpdateApprovalRuleTemplateContentOutput) => void): Request; + /** + * Updates the description for a specified approval rule template. + */ + updateApprovalRuleTemplateDescription(params: CodeCommit.Types.UpdateApprovalRuleTemplateDescriptionInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdateApprovalRuleTemplateDescriptionOutput) => void): Request; + /** + * Updates the description for a specified approval rule template. + */ + updateApprovalRuleTemplateDescription(callback?: (err: AWSError, data: CodeCommit.Types.UpdateApprovalRuleTemplateDescriptionOutput) => void): Request; + /** + * Updates the name of a specified approval rule template. + */ + updateApprovalRuleTemplateName(params: CodeCommit.Types.UpdateApprovalRuleTemplateNameInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdateApprovalRuleTemplateNameOutput) => void): Request; + /** + * Updates the name of a specified approval rule template. + */ + updateApprovalRuleTemplateName(callback?: (err: AWSError, data: CodeCommit.Types.UpdateApprovalRuleTemplateNameOutput) => void): Request; + /** + * Replaces the contents of a comment. + */ + updateComment(params: CodeCommit.Types.UpdateCommentInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdateCommentOutput) => void): Request; + /** + * Replaces the contents of a comment. + */ + updateComment(callback?: (err: AWSError, data: CodeCommit.Types.UpdateCommentOutput) => void): Request; + /** + * Sets or changes the default branch name for the specified repository. If you use this operation to change the default branch name to the current default branch name, a success message is returned even though the default branch did not change. + */ + updateDefaultBranch(params: CodeCommit.Types.UpdateDefaultBranchInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets or changes the default branch name for the specified repository. If you use this operation to change the default branch name to the current default branch name, a success message is returned even though the default branch did not change. + */ + updateDefaultBranch(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the structure of an approval rule created specifically for a pull request. For example, you can change the number of required approvers and the approval pool for approvers. + */ + updatePullRequestApprovalRuleContent(params: CodeCommit.Types.UpdatePullRequestApprovalRuleContentInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestApprovalRuleContentOutput) => void): Request; + /** + * Updates the structure of an approval rule created specifically for a pull request. For example, you can change the number of required approvers and the approval pool for approvers. + */ + updatePullRequestApprovalRuleContent(callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestApprovalRuleContentOutput) => void): Request; + /** + * Updates the state of a user's approval on a pull request. The user is derived from the signed-in account when the request is made. + */ + updatePullRequestApprovalState(params: CodeCommit.Types.UpdatePullRequestApprovalStateInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Updates the state of a user's approval on a pull request. The user is derived from the signed-in account when the request is made. + */ + updatePullRequestApprovalState(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Replaces the contents of the description of a pull request. + */ + updatePullRequestDescription(params: CodeCommit.Types.UpdatePullRequestDescriptionInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestDescriptionOutput) => void): Request; + /** + * Replaces the contents of the description of a pull request. + */ + updatePullRequestDescription(callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestDescriptionOutput) => void): Request; + /** + * Updates the status of a pull request. + */ + updatePullRequestStatus(params: CodeCommit.Types.UpdatePullRequestStatusInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestStatusOutput) => void): Request; + /** + * Updates the status of a pull request. + */ + updatePullRequestStatus(callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestStatusOutput) => void): Request; + /** + * Replaces the title of a pull request. + */ + updatePullRequestTitle(params: CodeCommit.Types.UpdatePullRequestTitleInput, callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestTitleOutput) => void): Request; + /** + * Replaces the title of a pull request. + */ + updatePullRequestTitle(callback?: (err: AWSError, data: CodeCommit.Types.UpdatePullRequestTitleOutput) => void): Request; + /** + * Sets or changes the comment or description for a repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. + */ + updateRepositoryDescription(params: CodeCommit.Types.UpdateRepositoryDescriptionInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Sets or changes the comment or description for a repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. + */ + updateRepositoryDescription(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Renames a repository. The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix .git is prohibited. For more information about the limits on repository names, see Limits in the AWS CodeCommit User Guide. + */ + updateRepositoryName(params: CodeCommit.Types.UpdateRepositoryNameInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Renames a repository. The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix .git is prohibited. For more information about the limits on repository names, see Limits in the AWS CodeCommit User Guide. + */ + updateRepositoryName(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; +} +declare namespace CodeCommit { + export type AccountId = string; + export type AdditionalData = string; + export interface Approval { + /** + * The Amazon Resource Name (ARN) of the user. + */ + userArn?: Arn; + /** + * The state of the approval, APPROVE or REVOKE. REVOKE states are not stored. + */ + approvalState?: ApprovalState; + } + export type ApprovalList = Approval[]; + export interface ApprovalRule { + /** + * The system-generated ID of the approval rule. + */ + approvalRuleId?: ApprovalRuleId; + /** + * The name of the approval rule. + */ + approvalRuleName?: ApprovalRuleName; + /** + * The content of the approval rule. + */ + approvalRuleContent?: ApprovalRuleContent; + /** + * The SHA-256 hash signature for the content of the approval rule. + */ + ruleContentSha256?: RuleContentSha256; + /** + * The date the approval rule was most recently changed, in timestamp format. + */ + lastModifiedDate?: LastModifiedDate; + /** + * The date the approval rule was created, in timestamp format. + */ + creationDate?: CreationDate; + /** + * The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule. + */ + lastModifiedUser?: Arn; + /** + * The approval rule template used to create the rule. + */ + originApprovalRuleTemplate?: OriginApprovalRuleTemplate; + } + export type ApprovalRuleContent = string; + export interface ApprovalRuleEventMetadata { + /** + * The name of the approval rule. + */ + approvalRuleName?: ApprovalRuleName; + /** + * The system-generated ID of the approval rule. + */ + approvalRuleId?: ApprovalRuleId; + /** + * The content of the approval rule. + */ + approvalRuleContent?: ApprovalRuleContent; + } + export type ApprovalRuleId = string; + export type ApprovalRuleName = string; + export interface ApprovalRuleOverriddenEventMetadata { + /** + * The revision ID of the pull request when the override event occurred. + */ + revisionId?: RevisionId; + /** + * The status of the override event. + */ + overrideStatus?: OverrideStatus; + } + export interface ApprovalRuleTemplate { + /** + * The system-generated ID of the approval rule template. + */ + approvalRuleTemplateId?: ApprovalRuleTemplateId; + /** + * The name of the approval rule template. + */ + approvalRuleTemplateName?: ApprovalRuleTemplateName; + /** + * The description of the approval rule template. + */ + approvalRuleTemplateDescription?: ApprovalRuleTemplateDescription; + /** + * The content of the approval rule template. + */ + approvalRuleTemplateContent?: ApprovalRuleTemplateContent; + /** + * The SHA-256 hash signature for the content of the approval rule template. + */ + ruleContentSha256?: RuleContentSha256; + /** + * The date the approval rule template was most recently changed, in timestamp format. + */ + lastModifiedDate?: LastModifiedDate; + /** + * The date the approval rule template was created, in timestamp format. + */ + creationDate?: CreationDate; + /** + * The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule template. + */ + lastModifiedUser?: Arn; + } + export type ApprovalRuleTemplateContent = string; + export type ApprovalRuleTemplateDescription = string; + export type ApprovalRuleTemplateId = string; + export type ApprovalRuleTemplateName = string; + export type ApprovalRuleTemplateNameList = ApprovalRuleTemplateName[]; + export type ApprovalRulesList = ApprovalRule[]; + export type ApprovalRulesNotSatisfiedList = ApprovalRuleName[]; + export type ApprovalRulesSatisfiedList = ApprovalRuleName[]; + export type ApprovalState = "APPROVE"|"REVOKE"|string; + export interface ApprovalStateChangedEventMetadata { + /** + * The revision ID of the pull request when the approval state changed. + */ + revisionId?: RevisionId; + /** + * The approval status for the pull request. + */ + approvalStatus?: ApprovalState; + } + export type Approved = boolean; + export type Arn = string; + export interface AssociateApprovalRuleTemplateWithRepositoryInput { + /** + * The name for the approval rule template. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The name of the repository that you want to associate with the template. + */ + repositoryName: RepositoryName; + } + export interface BatchAssociateApprovalRuleTemplateWithRepositoriesError { + /** + * The name of the repository where the association was not made. + */ + repositoryName?: RepositoryName; + /** + * An error code that specifies whether the repository name was not valid or not found. + */ + errorCode?: ErrorCode; + /** + * An error message that provides details about why the repository name was not found or not valid. + */ + errorMessage?: ErrorMessage; + } + export type BatchAssociateApprovalRuleTemplateWithRepositoriesErrorsList = BatchAssociateApprovalRuleTemplateWithRepositoriesError[]; + export interface BatchAssociateApprovalRuleTemplateWithRepositoriesInput { + /** + * The name of the template you want to associate with one or more repositories. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The names of the repositories you want to associate with the template. The length constraint limit is for each string in the array. The array itself can be empty. + */ + repositoryNames: RepositoryNameList; + } + export interface BatchAssociateApprovalRuleTemplateWithRepositoriesOutput { + /** + * A list of names of the repositories that have been associated with the template. + */ + associatedRepositoryNames: RepositoryNameList; + /** + * A list of any errors that might have occurred while attempting to create the association between the template and the repositories. + */ + errors: BatchAssociateApprovalRuleTemplateWithRepositoriesErrorsList; + } + export interface BatchDescribeMergeConflictsError { + /** + * The path to the file. + */ + filePath: Path; + /** + * The name of the exception. + */ + exceptionName: ExceptionName; + /** + * The message provided by the exception. + */ + message: Message; + } + export type BatchDescribeMergeConflictsErrors = BatchDescribeMergeConflictsError[]; + export interface BatchDescribeMergeConflictsInput { + /** + * The name of the repository that contains the merge conflicts you want to review. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The merge option or strategy you want to use to merge the code. + */ + mergeOption: MergeOptionTypeEnum; + /** + * The maximum number of merge hunks to include in the output. + */ + maxMergeHunks?: MaxResults; + /** + * The maximum number of files to include in the output. + */ + maxConflictFiles?: MaxResults; + /** + * The path of the target files used to describe the conflicts. If not specified, the default is all conflict files. + */ + filePaths?: FilePaths; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + } + export interface BatchDescribeMergeConflictsOutput { + /** + * A list of conflicts for each file, including the conflict metadata and the hunks of the differences between the files. + */ + conflicts: Conflicts; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + nextToken?: NextToken; + /** + * A list of any errors returned while describing the merge conflicts for each file. + */ + errors?: BatchDescribeMergeConflictsErrors; + /** + * The commit ID of the destination commit specifier that was used in the merge evaluation. + */ + destinationCommitId: ObjectId; + /** + * The commit ID of the source commit specifier that was used in the merge evaluation. + */ + sourceCommitId: ObjectId; + /** + * The commit ID of the merge base. + */ + baseCommitId?: ObjectId; + } + export interface BatchDisassociateApprovalRuleTemplateFromRepositoriesError { + /** + * The name of the repository where the association with the template was not able to be removed. + */ + repositoryName?: RepositoryName; + /** + * An error code that specifies whether the repository name was not valid or not found. + */ + errorCode?: ErrorCode; + /** + * An error message that provides details about why the repository name was either not found or not valid. + */ + errorMessage?: ErrorMessage; + } + export type BatchDisassociateApprovalRuleTemplateFromRepositoriesErrorsList = BatchDisassociateApprovalRuleTemplateFromRepositoriesError[]; + export interface BatchDisassociateApprovalRuleTemplateFromRepositoriesInput { + /** + * The name of the template that you want to disassociate from one or more repositories. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The repository names that you want to disassociate from the approval rule template. The length constraint limit is for each string in the array. The array itself can be empty. + */ + repositoryNames: RepositoryNameList; + } + export interface BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput { + /** + * A list of repository names that have had their association with the template removed. + */ + disassociatedRepositoryNames: RepositoryNameList; + /** + * A list of any errors that might have occurred while attempting to remove the association between the template and the repositories. + */ + errors: BatchDisassociateApprovalRuleTemplateFromRepositoriesErrorsList; + } + export interface BatchGetCommitsError { + /** + * A commit ID that either could not be found or was not in a valid format. + */ + commitId?: ObjectId; + /** + * An error code that specifies whether the commit ID was not valid or not found. + */ + errorCode?: ErrorCode; + /** + * An error message that provides detail about why the commit ID either was not found or was not valid. + */ + errorMessage?: ErrorMessage; + } + export type BatchGetCommitsErrorsList = BatchGetCommitsError[]; + export interface BatchGetCommitsInput { + /** + * The full commit IDs of the commits to get information about. You must supply the full SHA IDs of each commit. You cannot use shortened SHA IDs. + */ + commitIds: CommitIdsInputList; + /** + * The name of the repository that contains the commits. + */ + repositoryName: RepositoryName; + } + export interface BatchGetCommitsOutput { + /** + * An array of commit data type objects, each of which contains information about a specified commit. + */ + commits?: CommitObjectsList; + /** + * Returns any commit IDs for which information could not be found. For example, if one of the commit IDs was a shortened SHA ID or that commit was not found in the specified repository, the ID returns an error object with more information. + */ + errors?: BatchGetCommitsErrorsList; + } + export interface BatchGetRepositoriesInput { + /** + * The names of the repositories to get information about. The length constraint limit is for each string in the array. The array itself can be empty. + */ + repositoryNames: RepositoryNameList; + } + export interface BatchGetRepositoriesOutput { + /** + * A list of repositories returned by the batch get repositories operation. + */ + repositories?: RepositoryMetadataList; + /** + * Returns a list of repository names for which information could not be found. + */ + repositoriesNotFound?: RepositoryNotFoundList; + } + export interface BlobMetadata { + /** + * The full ID of the blob. + */ + blobId?: ObjectId; + /** + * The path to the blob and associated file name, if any. + */ + path?: Path; + /** + * The file mode permissions of the blob. File mode permission codes include: 100644 indicates read/write 100755 indicates read/write/execute 160000 indicates a submodule 120000 indicates a symlink + */ + mode?: Mode; + } + export interface BranchInfo { + /** + * The name of the branch. + */ + branchName?: BranchName; + /** + * The ID of the last commit made to the branch. + */ + commitId?: CommitId; + } + export type BranchName = string; + export type BranchNameList = BranchName[]; + export type CallerReactions = ReactionValue[]; + export type CapitalBoolean = boolean; + export type ChangeTypeEnum = "A"|"M"|"D"|string; + export type ClientRequestToken = string; + export type CloneUrlHttp = string; + export type CloneUrlSsh = string; + export interface Comment { + /** + * The system-generated comment ID. + */ + commentId?: CommentId; + /** + * The content of the comment. + */ + content?: Content; + /** + * The ID of the comment for which this comment is a reply, if any. + */ + inReplyTo?: CommentId; + /** + * The date and time the comment was created, in timestamp format. + */ + creationDate?: CreationDate; + /** + * The date and time the comment was most recently modified, in timestamp format. + */ + lastModifiedDate?: LastModifiedDate; + /** + * The Amazon Resource Name (ARN) of the person who posted the comment. + */ + authorArn?: Arn; + /** + * A Boolean value indicating whether the comment has been deleted. + */ + deleted?: IsCommentDeleted; + /** + * A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token. + */ + clientRequestToken?: ClientRequestToken; + /** + * The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API. + */ + callerReactions?: CallerReactions; + /** + * A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions. + */ + reactionCounts?: ReactionCountsMap; + } + export type CommentId = string; + export type Comments = Comment[]; + export interface CommentsForComparedCommit { + /** + * The name of the repository that contains the compared commits. + */ + repositoryName?: RepositoryName; + /** + * The full commit ID of the commit used to establish the before of the comparison. + */ + beforeCommitId?: CommitId; + /** + * The full commit ID of the commit used to establish the after of the comparison. + */ + afterCommitId?: CommitId; + /** + * The full blob ID of the commit used to establish the before of the comparison. + */ + beforeBlobId?: ObjectId; + /** + * The full blob ID of the commit used to establish the after of the comparison. + */ + afterBlobId?: ObjectId; + /** + * Location information about the comment on the comparison, including the file name, line number, and whether the version of the file where the comment was made is BEFORE or AFTER. + */ + location?: Location; + /** + * An array of comment objects. Each comment object contains information about a comment on the comparison between commits. + */ + comments?: Comments; + } + export type CommentsForComparedCommitData = CommentsForComparedCommit[]; + export interface CommentsForPullRequest { + /** + * The system-generated ID of the pull request. + */ + pullRequestId?: PullRequestId; + /** + * The name of the repository that contains the pull request. + */ + repositoryName?: RepositoryName; + /** + * The full commit ID of the commit that was the tip of the destination branch when the pull request was created. This commit is superceded by the after commit in the source branch when and if you merge the source branch into the destination branch. + */ + beforeCommitId?: CommitId; + /** + * The full commit ID of the commit that was the tip of the source branch at the time the comment was made. + */ + afterCommitId?: CommitId; + /** + * The full blob ID of the file on which you want to comment on the destination commit. + */ + beforeBlobId?: ObjectId; + /** + * The full blob ID of the file on which you want to comment on the source commit. + */ + afterBlobId?: ObjectId; + /** + * Location information about the comment on the pull request, including the file name, line number, and whether the version of the file where the comment was made is BEFORE (destination branch) or AFTER (source branch). + */ + location?: Location; + /** + * An array of comment objects. Each comment object contains information about a comment on the pull request. + */ + comments?: Comments; + } + export type CommentsForPullRequestData = CommentsForPullRequest[]; + export interface Commit { + /** + * The full SHA ID of the specified commit. + */ + commitId?: ObjectId; + /** + * Tree information for the specified commit. + */ + treeId?: ObjectId; + /** + * A list of parent commits for the specified commit. Each parent commit ID is the full commit ID. + */ + parents?: ParentList; + /** + * The commit message associated with the specified commit. + */ + message?: Message; + /** + * Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git. + */ + author?: UserInfo; + /** + * Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git. For more information about the difference between an author and a committer in Git, see Viewing the Commit History in Pro Git by Scott Chacon and Ben Straub. + */ + committer?: UserInfo; + /** + * Any other data associated with the specified commit. + */ + additionalData?: AdditionalData; + } + export type CommitId = string; + export type CommitIdsInputList = ObjectId[]; + export type CommitName = string; + export type CommitObjectsList = Commit[]; + export interface Conflict { + /** + * Metadata about a conflict in a merge operation. + */ + conflictMetadata?: ConflictMetadata; + /** + * A list of hunks that contain the differences between files or lines causing the conflict. + */ + mergeHunks?: MergeHunks; + } + export type ConflictDetailLevelTypeEnum = "FILE_LEVEL"|"LINE_LEVEL"|string; + export interface ConflictMetadata { + /** + * The path of the file that contains conflicts. + */ + filePath?: Path; + /** + * The file sizes of the file in the source, destination, and base of the merge. + */ + fileSizes?: FileSizes; + /** + * The file modes of the file in the source, destination, and base of the merge. + */ + fileModes?: FileModes; + /** + * Information about any object type conflicts in a merge operation. + */ + objectTypes?: ObjectTypes; + /** + * The number of conflicts, including both hunk conflicts and metadata conflicts. + */ + numberOfConflicts?: NumberOfConflicts; + /** + * A boolean value (true or false) indicating whether the file is binary or textual in the source, destination, and base of the merge. + */ + isBinaryFile?: IsBinaryFile; + /** + * A boolean value indicating whether there are conflicts in the content of a file. + */ + contentConflict?: IsContentConflict; + /** + * A boolean value indicating whether there are conflicts in the file mode of a file. + */ + fileModeConflict?: IsFileModeConflict; + /** + * A boolean value (true or false) indicating whether there are conflicts between the branches in the object type of a file, folder, or submodule. + */ + objectTypeConflict?: IsObjectTypeConflict; + /** + * Whether an add, modify, or delete operation caused the conflict between the source and destination of the merge. + */ + mergeOperations?: MergeOperations; + } + export type ConflictMetadataList = ConflictMetadata[]; + export interface ConflictResolution { + /** + * Files to have content replaced as part of the merge conflict resolution. + */ + replaceContents?: ReplaceContentEntries; + /** + * Files to be deleted as part of the merge conflict resolution. + */ + deleteFiles?: DeleteFileEntries; + /** + * File modes that are set as part of the merge conflict resolution. + */ + setFileModes?: SetFileModeEntries; + } + export type ConflictResolutionStrategyTypeEnum = "NONE"|"ACCEPT_SOURCE"|"ACCEPT_DESTINATION"|"AUTOMERGE"|string; + export type Conflicts = Conflict[]; + export type Content = string; + export type Count = number; + export interface CreateApprovalRuleTemplateInput { + /** + * The name of the approval rule template. Provide descriptive names, because this name is applied to the approval rules created automatically in associated repositories. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The content of the approval rule that is created on pull requests in associated repositories. If you specify one or more destination references (branches), approval rules are created in an associated repository only if their destination references (branches) match those specified in the template. When you create the content of the approval rule template, you can specify approvers in an approval pool in one of two ways: CodeCommitApprovers: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account 123456789012 and Mary_Major, all of the following are counted as approvals coming from that user: An IAM user in the account (arn:aws:iam::123456789012:user/Mary_Major) A federated user identified in IAM as Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major) This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major) unless you include a wildcard (*Mary_Major). Fully qualified ARN: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role. For more information about IAM ARNs, wildcards, and formats, see IAM Identifiers in the IAM User Guide. + */ + approvalRuleTemplateContent: ApprovalRuleTemplateContent; + /** + * The description of the approval rule template. Consider providing a description that explains what this template does and when it might be appropriate to associate it with repositories. + */ + approvalRuleTemplateDescription?: ApprovalRuleTemplateDescription; + } + export interface CreateApprovalRuleTemplateOutput { + /** + * The content and structure of the created approval rule template. + */ + approvalRuleTemplate: ApprovalRuleTemplate; + } + export interface CreateBranchInput { + /** + * The name of the repository in which you want to create the new branch. + */ + repositoryName: RepositoryName; + /** + * The name of the new branch to create. + */ + branchName: BranchName; + /** + * The ID of the commit to point the new branch to. + */ + commitId: CommitId; + } + export interface CreateCommitInput { + /** + * The name of the repository where you create the commit. + */ + repositoryName: RepositoryName; + /** + * The name of the branch where you create the commit. + */ + branchName: BranchName; + /** + * The ID of the commit that is the parent of the commit you create. Not required if this is an empty repository. + */ + parentCommitId?: CommitId; + /** + * The name of the author who created the commit. This information is used as both the author and committer for the commit. + */ + authorName?: Name; + /** + * The email address of the person who created the commit. + */ + email?: Email; + /** + * The commit message you want to include in the commit. Commit messages are limited to 256 KB. If no message is specified, a default message is used. + */ + commitMessage?: Message; + /** + * If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a ..gitkeep file is created for empty folders. The default is false. + */ + keepEmptyFolders?: KeepEmptyFolders; + /** + * The files to add or update in this commit. + */ + putFiles?: PutFileEntries; + /** + * The files to delete in this commit. These files still exist in earlier commits. + */ + deleteFiles?: DeleteFileEntries; + /** + * The file modes to update for files in this commit. + */ + setFileModes?: SetFileModeEntries; + } + export interface CreateCommitOutput { + /** + * The full commit ID of the commit that contains your committed file changes. + */ + commitId?: ObjectId; + /** + * The full SHA-1 pointer of the tree information for the commit that contains the commited file changes. + */ + treeId?: ObjectId; + /** + * The files added as part of the committed file changes. + */ + filesAdded?: FilesMetadata; + /** + * The files updated as part of the commited file changes. + */ + filesUpdated?: FilesMetadata; + /** + * The files deleted as part of the committed file changes. + */ + filesDeleted?: FilesMetadata; + } + export interface CreatePullRequestApprovalRuleInput { + /** + * The system-generated ID of the pull request for which you want to create the approval rule. + */ + pullRequestId: PullRequestId; + /** + * The name for the approval rule. + */ + approvalRuleName: ApprovalRuleName; + /** + * The content of the approval rule, including the number of approvals needed and the structure of an approval pool defined for approvals, if any. For more information about approval pools, see the AWS CodeCommit User Guide. When you create the content of the approval rule, you can specify approvers in an approval pool in one of two ways: CodeCommitApprovers: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account 123456789012 and Mary_Major, all of the following would be counted as approvals coming from that user: An IAM user in the account (arn:aws:iam::123456789012:user/Mary_Major) A federated user identified in IAM as Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major) This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major) unless you include a wildcard (*Mary_Major). Fully qualified ARN: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role. For more information about IAM ARNs, wildcards, and formats, see IAM Identifiers in the IAM User Guide. + */ + approvalRuleContent: ApprovalRuleContent; + } + export interface CreatePullRequestApprovalRuleOutput { + /** + * Information about the created approval rule. + */ + approvalRule: ApprovalRule; + } + export interface CreatePullRequestInput { + /** + * The title of the pull request. This title is used to identify the pull request to other users in the repository. + */ + title: Title; + /** + * A description of the pull request. + */ + description?: Description; + /** + * The targets for the pull request, including the source of the code to be reviewed (the source branch) and the destination where the creator of the pull request intends the code to be merged after the pull request is closed (the destination branch). + */ + targets: TargetList; + /** + * A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token. The AWS SDKs prepopulate client request tokens. If you are using an AWS SDK, an idempotency token is created for you. + */ + clientRequestToken?: ClientRequestToken; + } + export interface CreatePullRequestOutput { + /** + * Information about the newly created pull request. + */ + pullRequest: PullRequest; + } + export interface CreateRepositoryInput { + /** + * The name of the new repository to be created. The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. For more information about the limits on repository names, see Limits in the AWS CodeCommit User Guide. The suffix .git is prohibited. + */ + repositoryName: RepositoryName; + /** + * A comment or description about the new repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. + */ + repositoryDescription?: RepositoryDescription; + /** + * One or more tag key-value pairs to use when tagging this repository. + */ + tags?: TagsMap; + } + export interface CreateRepositoryOutput { + /** + * Information about the newly created repository. + */ + repositoryMetadata?: RepositoryMetadata; + } + export interface CreateUnreferencedMergeCommitInput { + /** + * The name of the repository where you want to create the unreferenced merge commit. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The merge option or strategy you want to use to merge the code. + */ + mergeOption: MergeOptionTypeEnum; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * The name of the author who created the unreferenced commit. This information is used as both the author and committer for the commit. + */ + authorName?: Name; + /** + * The email address for the person who created the unreferenced commit. + */ + email?: Email; + /** + * The commit message for the unreferenced commit. + */ + commitMessage?: Message; + /** + * If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If this is specified as true, a .gitkeep file is created for empty folders. The default is false. + */ + keepEmptyFolders?: KeepEmptyFolders; + /** + * If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge. + */ + conflictResolution?: ConflictResolution; + } + export interface CreateUnreferencedMergeCommitOutput { + /** + * The full commit ID of the commit that contains your merge results. + */ + commitId?: ObjectId; + /** + * The full SHA-1 pointer of the tree information for the commit that contains the merge results. + */ + treeId?: ObjectId; + } + export type CreationDate = Date; + export type _Date = string; + export interface DeleteApprovalRuleTemplateInput { + /** + * The name of the approval rule template to delete. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + } + export interface DeleteApprovalRuleTemplateOutput { + /** + * The system-generated ID of the deleted approval rule template. If the template has been previously deleted, the only response is a 200 OK. + */ + approvalRuleTemplateId: ApprovalRuleTemplateId; + } + export interface DeleteBranchInput { + /** + * The name of the repository that contains the branch to be deleted. + */ + repositoryName: RepositoryName; + /** + * The name of the branch to delete. + */ + branchName: BranchName; + } + export interface DeleteBranchOutput { + /** + * Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch. + */ + deletedBranch?: BranchInfo; + } + export interface DeleteCommentContentInput { + /** + * The unique, system-generated ID of the comment. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + */ + commentId: CommentId; + } + export interface DeleteCommentContentOutput { + /** + * Information about the comment you just deleted. + */ + comment?: Comment; + } + export type DeleteFileEntries = DeleteFileEntry[]; + export interface DeleteFileEntry { + /** + * The full path of the file to be deleted, including the name of the file. + */ + filePath: Path; + } + export interface DeleteFileInput { + /** + * The name of the repository that contains the file to delete. + */ + repositoryName: RepositoryName; + /** + * The name of the branch where the commit that deletes the file is made. + */ + branchName: BranchName; + /** + * The fully qualified path to the file that to be deleted, including the full name and extension of that file. For example, /examples/file.md is a fully qualified path to a file named file.md in a folder named examples. + */ + filePath: Path; + /** + * The ID of the commit that is the tip of the branch where you want to create the commit that deletes the file. This must be the HEAD commit for the branch. The commit that deletes the file is created from this commit ID. + */ + parentCommitId: CommitId; + /** + * If a file is the only object in the folder or directory, specifies whether to delete the folder or directory that contains the file. By default, empty folders are deleted. This includes empty folders that are part of the directory structure. For example, if the path to a file is dir1/dir2/dir3/dir4, and dir2 and dir3 are empty, deleting the last file in dir4 also deletes the empty folders dir4, dir3, and dir2. + */ + keepEmptyFolders?: KeepEmptyFolders; + /** + * The commit message you want to include as part of deleting the file. Commit messages are limited to 256 KB. If no message is specified, a default message is used. + */ + commitMessage?: Message; + /** + * The name of the author of the commit that deletes the file. If no name is specified, the user's ARN is used as the author name and committer name. + */ + name?: Name; + /** + * The email address for the commit that deletes the file. If no email address is specified, the email address is left blank. + */ + email?: Email; + } + export interface DeleteFileOutput { + /** + * The full commit ID of the commit that contains the change that deletes the file. + */ + commitId: ObjectId; + /** + * The blob ID removed from the tree as part of deleting the file. + */ + blobId: ObjectId; + /** + * The full SHA-1 pointer of the tree information for the commit that contains the delete file change. + */ + treeId: ObjectId; + /** + * The fully qualified path to the file to be deleted, including the full name and extension of that file. + */ + filePath: Path; + } + export interface DeletePullRequestApprovalRuleInput { + /** + * The system-generated ID of the pull request that contains the approval rule you want to delete. + */ + pullRequestId: PullRequestId; + /** + * The name of the approval rule you want to delete. + */ + approvalRuleName: ApprovalRuleName; + } + export interface DeletePullRequestApprovalRuleOutput { + /** + * The ID of the deleted approval rule. If the approval rule was deleted in an earlier API call, the response is 200 OK without content. + */ + approvalRuleId: ApprovalRuleId; + } + export interface DeleteRepositoryInput { + /** + * The name of the repository to delete. + */ + repositoryName: RepositoryName; + } + export interface DeleteRepositoryOutput { + /** + * The ID of the repository that was deleted. + */ + repositoryId?: RepositoryId; + } + export interface DescribeMergeConflictsInput { + /** + * The name of the repository where you want to get information about a merge conflict. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The merge option or strategy you want to use to merge the code. + */ + mergeOption: MergeOptionTypeEnum; + /** + * The maximum number of merge hunks to include in the output. + */ + maxMergeHunks?: MaxResults; + /** + * The path of the target files used to describe the conflicts. + */ + filePath: Path; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + } + export interface DescribeMergeConflictsOutput { + /** + * Contains metadata about the conflicts found in the merge. + */ + conflictMetadata: ConflictMetadata; + /** + * A list of merge hunks of the differences between the files or lines. + */ + mergeHunks: MergeHunks; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + nextToken?: NextToken; + /** + * The commit ID of the destination commit specifier that was used in the merge evaluation. + */ + destinationCommitId: ObjectId; + /** + * The commit ID of the source commit specifier that was used in the merge evaluation. + */ + sourceCommitId: ObjectId; + /** + * The commit ID of the merge base. + */ + baseCommitId?: ObjectId; + } + export interface DescribePullRequestEventsInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * Optional. The pull request event type about which you want to return information. + */ + pullRequestEventType?: PullRequestEventType; + /** + * The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with more commits or changing the status of a pull request. + */ + actorArn?: Arn; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. The default is 100 events, which is also the maximum number of events that can be returned in a result. + */ + maxResults?: MaxResults; + } + export interface DescribePullRequestEventsOutput { + /** + * Information about the pull request events. + */ + pullRequestEvents: PullRequestEventList; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + nextToken?: NextToken; + } + export type Description = string; + export interface Difference { + /** + * Information about a beforeBlob data type object, including the ID, the file mode permission code, and the path. + */ + beforeBlob?: BlobMetadata; + /** + * Information about an afterBlob data type object, including the ID, the file mode permission code, and the path. + */ + afterBlob?: BlobMetadata; + /** + * Whether the change type of the difference is an addition (A), deletion (D), or modification (M). + */ + changeType?: ChangeTypeEnum; + } + export type DifferenceList = Difference[]; + export interface DisassociateApprovalRuleTemplateFromRepositoryInput { + /** + * The name of the approval rule template to disassociate from a specified repository. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The name of the repository you want to disassociate from the template. + */ + repositoryName: RepositoryName; + } + export type Email = string; + export type ErrorCode = string; + export type ErrorMessage = string; + export interface EvaluatePullRequestApprovalRulesInput { + /** + * The system-generated ID of the pull request you want to evaluate. + */ + pullRequestId: PullRequestId; + /** + * The system-generated ID for the pull request revision. To retrieve the most recent revision ID for a pull request, use GetPullRequest. + */ + revisionId: RevisionId; + } + export interface EvaluatePullRequestApprovalRulesOutput { + /** + * The result of the evaluation, including the names of the rules whose conditions have been met (if any), the names of the rules whose conditions have not been met (if any), whether the pull request is in the approved state, and whether the pull request approval rule has been set aside by an override. + */ + evaluation: Evaluation; + } + export interface Evaluation { + /** + * Whether the state of the pull request is approved. + */ + approved?: Approved; + /** + * Whether the approval rule requirements for the pull request have been overridden and no longer need to be met. + */ + overridden?: Overridden; + /** + * The names of the approval rules that have had their conditions met. + */ + approvalRulesSatisfied?: ApprovalRulesSatisfiedList; + /** + * The names of the approval rules that have not had their conditions met. + */ + approvalRulesNotSatisfied?: ApprovalRulesNotSatisfiedList; + } + export type EventDate = Date; + export type ExceptionName = string; + export interface File { + /** + * The blob ID that contains the file information. + */ + blobId?: ObjectId; + /** + * The fully qualified path to the file in the repository. + */ + absolutePath?: Path; + /** + * The relative path of the file from the folder where the query originated. + */ + relativePath?: Path; + /** + * The extrapolated file mode permissions for the file. Valid values include EXECUTABLE and NORMAL. + */ + fileMode?: FileModeTypeEnum; + } + export type FileContent = Buffer|Uint8Array|Blob|string; + export type FileList = File[]; + export interface FileMetadata { + /** + * The full path to the file to be added or updated, including the name of the file. + */ + absolutePath?: Path; + /** + * The blob ID that contains the file information. + */ + blobId?: ObjectId; + /** + * The extrapolated file mode permissions for the file. Valid values include EXECUTABLE and NORMAL. + */ + fileMode?: FileModeTypeEnum; + } + export type FileModeTypeEnum = "EXECUTABLE"|"NORMAL"|"SYMLINK"|string; + export interface FileModes { + /** + * The file mode of a file in the source of a merge or pull request. + */ + source?: FileModeTypeEnum; + /** + * The file mode of a file in the destination of a merge or pull request. + */ + destination?: FileModeTypeEnum; + /** + * The file mode of a file in the base of a merge or pull request. + */ + base?: FileModeTypeEnum; + } + export type FilePaths = Path[]; + export type FileSize = number; + export interface FileSizes { + /** + * The size of a file in the source of a merge or pull request. + */ + source?: FileSize; + /** + * The size of a file in the destination of a merge or pull request. + */ + destination?: FileSize; + /** + * The size of a file in the base of a merge or pull request. + */ + base?: FileSize; + } + export type FilesMetadata = FileMetadata[]; + export interface Folder { + /** + * The full SHA-1 pointer of the tree information for the commit that contains the folder. + */ + treeId?: ObjectId; + /** + * The fully qualified path of the folder in the repository. + */ + absolutePath?: Path; + /** + * The relative path of the specified folder from the folder where the query originated. + */ + relativePath?: Path; + } + export type FolderList = Folder[]; + export interface GetApprovalRuleTemplateInput { + /** + * The name of the approval rule template for which you want to get information. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + } + export interface GetApprovalRuleTemplateOutput { + /** + * The content and structure of the approval rule template. + */ + approvalRuleTemplate: ApprovalRuleTemplate; + } + export interface GetBlobInput { + /** + * The name of the repository that contains the blob. + */ + repositoryName: RepositoryName; + /** + * The ID of the blob, which is its SHA-1 pointer. + */ + blobId: ObjectId; + } + export interface GetBlobOutput { + /** + * The content of the blob, usually a file. + */ + content: blob; + } + export interface GetBranchInput { + /** + * The name of the repository that contains the branch for which you want to retrieve information. + */ + repositoryName?: RepositoryName; + /** + * The name of the branch for which you want to retrieve information. + */ + branchName?: BranchName; + } + export interface GetBranchOutput { + /** + * The name of the branch. + */ + branch?: BranchInfo; + } + export interface GetCommentInput { + /** + * The unique, system-generated ID of the comment. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + */ + commentId: CommentId; + } + export interface GetCommentOutput { + /** + * The contents of the comment. + */ + comment?: Comment; + } + export interface GetCommentReactionsInput { + /** + * The ID of the comment for which you want to get reactions information. + */ + commentId: CommentId; + /** + * Optional. The Amazon Resource Name (ARN) of the user or identity for which you want to get reaction information. + */ + reactionUserArn?: Arn; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. The default is the same as the allowed maximum, 1,000. + */ + maxResults?: MaxResults; + } + export interface GetCommentReactionsOutput { + /** + * An array of reactions to the specified comment. + */ + reactionsForComment: ReactionsForCommentList; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + nextToken?: NextToken; + } + export interface GetCommentsForComparedCommitInput { + /** + * The name of the repository where you want to compare commits. + */ + repositoryName: RepositoryName; + /** + * To establish the directionality of the comparison, the full commit ID of the before commit. + */ + beforeCommitId?: CommitId; + /** + * To establish the directionality of the comparison, the full commit ID of the after commit. + */ + afterCommitId: CommitId; + /** + * An enumeration token that when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. The default is 100 comments, but you can configure up to 500. + */ + maxResults?: MaxResults; + } + export interface GetCommentsForComparedCommitOutput { + /** + * A list of comment objects on the compared commit. + */ + commentsForComparedCommitData?: CommentsForComparedCommitData; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + nextToken?: NextToken; + } + export interface GetCommentsForPullRequestInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The name of the repository that contains the pull request. + */ + repositoryName?: RepositoryName; + /** + * The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created. + */ + beforeCommitId?: CommitId; + /** + * The full commit ID of the commit in the source branch that was the tip of the branch at the time the comment was made. + */ + afterCommitId?: CommitId; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. The default is 100 comments. You can return up to 500 comments with a single request. + */ + maxResults?: MaxResults; + } + export interface GetCommentsForPullRequestOutput { + /** + * An array of comment objects on the pull request. + */ + commentsForPullRequestData?: CommentsForPullRequestData; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + nextToken?: NextToken; + } + export interface GetCommitInput { + /** + * The name of the repository to which the commit was made. + */ + repositoryName: RepositoryName; + /** + * The commit ID. Commit IDs are the full SHA ID of the commit. + */ + commitId: ObjectId; + } + export interface GetCommitOutput { + /** + * A commit data type object that contains information about the specified commit. + */ + commit: Commit; + } + export interface GetDifferencesInput { + /** + * The name of the repository where you want to get differences. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, the full commit ID). Optional. If not specified, all changes before the afterCommitSpecifier value are shown. If you do not use beforeCommitSpecifier in your request, consider limiting the results with maxResults. + */ + beforeCommitSpecifier?: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit. + */ + afterCommitSpecifier: CommitName; + /** + * The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If beforePath and afterPath are not specified, differences are shown for all paths. + */ + beforePath?: Path; + /** + * The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences are shown for all paths. + */ + afterPath?: Path; + /** + * A non-zero, non-negative integer used to limit the number of returned results. + */ + MaxResults?: Limit; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + NextToken?: NextToken; + } + export interface GetDifferencesOutput { + /** + * A data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M). + */ + differences?: DifferenceList; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + NextToken?: NextToken; + } + export interface GetFileInput { + /** + * The name of the repository that contains the file. + */ + repositoryName: RepositoryName; + /** + * The fully quaified reference that identifies the commit that contains the file. For example, you can specify a full commit ID, a tag, a branch name, or a reference such as refs/heads/master. If none is provided, the head commit is used. + */ + commitSpecifier?: CommitName; + /** + * The fully qualified path to the file, including the full name and extension of the file. For example, /examples/file.md is the fully qualified path to a file named file.md in a folder named examples. + */ + filePath: Path; + } + export interface GetFileOutput { + /** + * The full commit ID of the commit that contains the content returned by GetFile. + */ + commitId: ObjectId; + /** + * The blob ID of the object that represents the file content. + */ + blobId: ObjectId; + /** + * The fully qualified path to the specified file. Returns the name and extension of the file. + */ + filePath: Path; + /** + * The extrapolated file mode permissions of the blob. Valid values include strings such as EXECUTABLE and not numeric values. The file mode permissions returned by this API are not the standard file mode permission values, such as 100644, but rather extrapolated values. See the supported return values. + */ + fileMode: FileModeTypeEnum; + /** + * The size of the contents of the file, in bytes. + */ + fileSize: ObjectSize; + /** + * The base-64 encoded binary data object that represents the content of the file. + */ + fileContent: FileContent; + } + export interface GetFolderInput { + /** + * The name of the repository. + */ + repositoryName: RepositoryName; + /** + * A fully qualified reference used to identify a commit that contains the version of the folder's content to return. A fully qualified reference can be a commit ID, branch name, tag, or reference such as HEAD. If no specifier is provided, the folder content is returned as it exists in the HEAD commit. + */ + commitSpecifier?: CommitName; + /** + * The fully qualified path to the folder whose contents are returned, including the folder name. For example, /examples is a fully-qualified path to a folder named examples that was created off of the root directory (/) of a repository. + */ + folderPath: Path; + } + export interface GetFolderOutput { + /** + * The full commit ID used as a reference for the returned version of the folder content. + */ + commitId: ObjectId; + /** + * The fully qualified path of the folder whose contents are returned. + */ + folderPath: Path; + /** + * The full SHA-1 pointer of the tree information for the commit that contains the folder. + */ + treeId?: ObjectId; + /** + * The list of folders that exist under the specified folder, if any. + */ + subFolders?: FolderList; + /** + * The list of files in the specified folder, if any. + */ + files?: FileList; + /** + * The list of symbolic links to other files and folders in the specified folder, if any. + */ + symbolicLinks?: SymbolicLinkList; + /** + * The list of submodules in the specified folder, if any. + */ + subModules?: SubModuleList; + } + export interface GetMergeCommitInput { + /** + * The name of the repository that contains the merge commit about which you want to get information. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + } + export interface GetMergeCommitOutput { + /** + * The commit ID of the source commit specifier that was used in the merge evaluation. + */ + sourceCommitId?: ObjectId; + /** + * The commit ID of the destination commit specifier that was used in the merge evaluation. + */ + destinationCommitId?: ObjectId; + /** + * The commit ID of the merge base. + */ + baseCommitId?: ObjectId; + /** + * The commit ID for the merge commit created when the source branch was merged into the destination branch. If the fast-forward merge strategy was used, there is no merge commit. + */ + mergedCommitId?: ObjectId; + } + export interface GetMergeConflictsInput { + /** + * The name of the repository where the pull request was created. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The merge option or strategy you want to use to merge the code. + */ + mergeOption: MergeOptionTypeEnum; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * The maximum number of files to include in the output. + */ + maxConflictFiles?: MaxResults; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + } + export interface GetMergeConflictsOutput { + /** + * A Boolean value that indicates whether the code is mergeable by the specified merge option. + */ + mergeable: IsMergeable; + /** + * The commit ID of the destination commit specifier that was used in the merge evaluation. + */ + destinationCommitId: ObjectId; + /** + * The commit ID of the source commit specifier that was used in the merge evaluation. + */ + sourceCommitId: ObjectId; + /** + * The commit ID of the merge base. + */ + baseCommitId?: ObjectId; + /** + * A list of metadata for any conflicting files. If the specified merge strategy is FAST_FORWARD_MERGE, this list is always empty. + */ + conflictMetadataList: ConflictMetadataList; + /** + * An enumeration token that can be used in a request to return the next batch of the results. + */ + nextToken?: NextToken; + } + export interface GetMergeOptionsInput { + /** + * The name of the repository that contains the commits about which you want to get merge options. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + } + export interface GetMergeOptionsOutput { + /** + * The merge option or strategy used to merge the code. + */ + mergeOptions: MergeOptions; + /** + * The commit ID of the source commit specifier that was used in the merge evaluation. + */ + sourceCommitId: ObjectId; + /** + * The commit ID of the destination commit specifier that was used in the merge evaluation. + */ + destinationCommitId: ObjectId; + /** + * The commit ID of the merge base. + */ + baseCommitId: ObjectId; + } + export interface GetPullRequestApprovalStatesInput { + /** + * The system-generated ID for the pull request. + */ + pullRequestId: PullRequestId; + /** + * The system-generated ID for the pull request revision. + */ + revisionId: RevisionId; + } + export interface GetPullRequestApprovalStatesOutput { + /** + * Information about users who have approved the pull request. + */ + approvals?: ApprovalList; + } + export interface GetPullRequestInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + } + export interface GetPullRequestOutput { + /** + * Information about the specified pull request. + */ + pullRequest: PullRequest; + } + export interface GetPullRequestOverrideStateInput { + /** + * The ID of the pull request for which you want to get information about whether approval rules have been set aside (overridden). + */ + pullRequestId: PullRequestId; + /** + * The system-generated ID of the revision for the pull request. To retrieve the most recent revision ID, use GetPullRequest. + */ + revisionId: RevisionId; + } + export interface GetPullRequestOverrideStateOutput { + /** + * A Boolean value that indicates whether a pull request has had its rules set aside (TRUE) or whether all approval rules still apply (FALSE). + */ + overridden?: Overridden; + /** + * The Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request. + */ + overrider?: Arn; + } + export interface GetRepositoryInput { + /** + * The name of the repository to get information about. + */ + repositoryName: RepositoryName; + } + export interface GetRepositoryOutput { + /** + * Information about the repository. + */ + repositoryMetadata?: RepositoryMetadata; + } + export interface GetRepositoryTriggersInput { + /** + * The name of the repository for which the trigger is configured. + */ + repositoryName: RepositoryName; + } + export interface GetRepositoryTriggersOutput { + /** + * The system-generated unique ID for the trigger. + */ + configurationId?: RepositoryTriggersConfigurationId; + /** + * The JSON block of configuration information for each trigger. + */ + triggers?: RepositoryTriggersList; + } + export type HunkContent = string; + export interface IsBinaryFile { + /** + * The binary or non-binary status of file in the source of a merge or pull request. + */ + source?: CapitalBoolean; + /** + * The binary or non-binary status of a file in the destination of a merge or pull request. + */ + destination?: CapitalBoolean; + /** + * The binary or non-binary status of a file in the base of a merge or pull request. + */ + base?: CapitalBoolean; + } + export type IsCommentDeleted = boolean; + export type IsContentConflict = boolean; + export type IsFileModeConflict = boolean; + export type IsHunkConflict = boolean; + export type IsMergeable = boolean; + export type IsMerged = boolean; + export type IsMove = boolean; + export type IsObjectTypeConflict = boolean; + export type KeepEmptyFolders = boolean; + export type LastModifiedDate = Date; + export type Limit = number; + export type LineNumber = number; + export interface ListApprovalRuleTemplatesInput { + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. + */ + maxResults?: MaxResults; + } + export interface ListApprovalRuleTemplatesOutput { + /** + * The names of all the approval rule templates found in the AWS Region for your AWS account. + */ + approvalRuleTemplateNames?: ApprovalRuleTemplateNameList; + /** + * An enumeration token that allows the operation to batch the next results of the operation. + */ + nextToken?: NextToken; + } + export interface ListAssociatedApprovalRuleTemplatesForRepositoryInput { + /** + * The name of the repository for which you want to list all associated approval rule templates. + */ + repositoryName: RepositoryName; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. + */ + maxResults?: MaxResults; + } + export interface ListAssociatedApprovalRuleTemplatesForRepositoryOutput { + /** + * The names of all approval rule templates associated with the repository. + */ + approvalRuleTemplateNames?: ApprovalRuleTemplateNameList; + /** + * An enumeration token that allows the operation to batch the next results of the operation. + */ + nextToken?: NextToken; + } + export interface ListBranchesInput { + /** + * The name of the repository that contains the branches. + */ + repositoryName: RepositoryName; + /** + * An enumeration token that allows the operation to batch the results. + */ + nextToken?: NextToken; + } + export interface ListBranchesOutput { + /** + * The list of branch names. + */ + branches?: BranchNameList; + /** + * An enumeration token that returns the batch of the results. + */ + nextToken?: NextToken; + } + export interface ListPullRequestsInput { + /** + * The name of the repository for which you want to list pull requests. + */ + repositoryName: RepositoryName; + /** + * Optional. The Amazon Resource Name (ARN) of the user who created the pull request. If used, this filters the results to pull requests created by that user. + */ + authorArn?: Arn; + /** + * Optional. The status of the pull request. If used, this refines the results to the pull requests that match the specified status. + */ + pullRequestStatus?: PullRequestStatusEnum; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. + */ + maxResults?: MaxResults; + } + export interface ListPullRequestsOutput { + /** + * The system-generated IDs of the pull requests. + */ + pullRequestIds: PullRequestIdList; + /** + * An enumeration token that allows the operation to batch the next results of the operation. + */ + nextToken?: NextToken; + } + export interface ListRepositoriesForApprovalRuleTemplateInput { + /** + * The name of the approval rule template for which you want to list repositories that are associated with that template. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + /** + * A non-zero, non-negative integer used to limit the number of returned results. + */ + maxResults?: MaxResults; + } + export interface ListRepositoriesForApprovalRuleTemplateOutput { + /** + * A list of repository names that are associated with the specified approval rule template. + */ + repositoryNames?: RepositoryNameList; + /** + * An enumeration token that allows the operation to batch the next results of the operation. + */ + nextToken?: NextToken; + } + export interface ListRepositoriesInput { + /** + * An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved. + */ + nextToken?: NextToken; + /** + * The criteria used to sort the results of a list repositories operation. + */ + sortBy?: SortByEnum; + /** + * The order in which to sort the results of a list repositories operation. + */ + order?: OrderEnum; + } + export interface ListRepositoriesOutput { + /** + * Lists the repositories called by the list repositories operation. + */ + repositories?: RepositoryNameIdPairList; + /** + * An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved. + */ + nextToken?: NextToken; + } + export interface ListTagsForResourceInput { + /** + * The Amazon Resource Name (ARN) of the resource for which you want to get information about tags, if any. + */ + resourceArn: ResourceArn; + /** + * An enumeration token that, when provided in a request, returns the next batch of the results. + */ + nextToken?: NextToken; + } + export interface ListTagsForResourceOutput { + /** + * A list of tag key and value pairs associated with the specified resource. + */ + tags?: TagsMap; + /** + * An enumeration token that allows the operation to batch the next results of the operation. + */ + nextToken?: NextToken; + } + export interface Location { + /** + * The name of the file being compared, including its extension and subdirectory, if any. + */ + filePath?: Path; + /** + * The position of a change in a compared file, in line number format. + */ + filePosition?: Position; + /** + * In a comparison of commits or a pull request, whether the change is in the before or after of that comparison. + */ + relativeFileVersion?: RelativeFileVersionEnum; + } + export type MaxResults = number; + export interface MergeBranchesByFastForwardInput { + /** + * The name of the repository where you want to merge two branches. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The branch where the merge is applied. + */ + targetBranch?: BranchName; + } + export interface MergeBranchesByFastForwardOutput { + /** + * The commit ID of the merge in the destination or target branch. + */ + commitId?: ObjectId; + /** + * The tree ID of the merge in the destination or target branch. + */ + treeId?: ObjectId; + } + export interface MergeBranchesBySquashInput { + /** + * The name of the repository where you want to merge two branches. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The branch where the merge is applied. + */ + targetBranch?: BranchName; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * The name of the author who created the commit. This information is used as both the author and committer for the commit. + */ + authorName?: Name; + /** + * The email address of the person merging the branches. This information is used in the commit information for the merge. + */ + email?: Email; + /** + * The commit message for the merge. + */ + commitMessage?: Message; + /** + * If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If this is specified as true, a .gitkeep file is created for empty folders. The default is false. + */ + keepEmptyFolders?: KeepEmptyFolders; + /** + * If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge. + */ + conflictResolution?: ConflictResolution; + } + export interface MergeBranchesBySquashOutput { + /** + * The commit ID of the merge in the destination or target branch. + */ + commitId?: ObjectId; + /** + * The tree ID of the merge in the destination or target branch. + */ + treeId?: ObjectId; + } + export interface MergeBranchesByThreeWayInput { + /** + * The name of the repository where you want to merge two branches. + */ + repositoryName: RepositoryName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + sourceCommitSpecifier: CommitName; + /** + * The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). + */ + destinationCommitSpecifier: CommitName; + /** + * The branch where the merge is applied. + */ + targetBranch?: BranchName; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * The name of the author who created the commit. This information is used as both the author and committer for the commit. + */ + authorName?: Name; + /** + * The email address of the person merging the branches. This information is used in the commit information for the merge. + */ + email?: Email; + /** + * The commit message to include in the commit information for the merge. + */ + commitMessage?: Message; + /** + * If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false. + */ + keepEmptyFolders?: KeepEmptyFolders; + /** + * If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge. + */ + conflictResolution?: ConflictResolution; + } + export interface MergeBranchesByThreeWayOutput { + /** + * The commit ID of the merge in the destination or target branch. + */ + commitId?: ObjectId; + /** + * The tree ID of the merge in the destination or target branch. + */ + treeId?: ObjectId; + } + export interface MergeHunk { + /** + * A Boolean value indicating whether a combination of hunks contains a conflict. Conflicts occur when the same file or the same lines in a file were modified in both the source and destination of a merge or pull request. Valid values include true, false, and null. True when the hunk represents a conflict and one or more files contains a line conflict. File mode conflicts in a merge do not set this to true. + */ + isConflict?: IsHunkConflict; + /** + * Information about the merge hunk in the source of a merge or pull request. + */ + source?: MergeHunkDetail; + /** + * Information about the merge hunk in the destination of a merge or pull request. + */ + destination?: MergeHunkDetail; + /** + * Information about the merge hunk in the base of a merge or pull request. + */ + base?: MergeHunkDetail; + } + export interface MergeHunkDetail { + /** + * The start position of the hunk in the merge result. + */ + startLine?: LineNumber; + /** + * The end position of the hunk in the merge result. + */ + endLine?: LineNumber; + /** + * The base-64 encoded content of the hunk merged region that might contain a conflict. + */ + hunkContent?: HunkContent; + } + export type MergeHunks = MergeHunk[]; + export interface MergeMetadata { + /** + * A Boolean value indicating whether the merge has been made. + */ + isMerged?: IsMerged; + /** + * The Amazon Resource Name (ARN) of the user who merged the branches. + */ + mergedBy?: Arn; + /** + * The commit ID for the merge commit, if any. + */ + mergeCommitId?: CommitId; + /** + * The merge strategy used in the merge. + */ + mergeOption?: MergeOptionTypeEnum; + } + export interface MergeOperations { + /** + * The operation (add, modify, or delete) on a file in the source of a merge or pull request. + */ + source?: ChangeTypeEnum; + /** + * The operation on a file in the destination of a merge or pull request. + */ + destination?: ChangeTypeEnum; + } + export type MergeOptionTypeEnum = "FAST_FORWARD_MERGE"|"SQUASH_MERGE"|"THREE_WAY_MERGE"|string; + export type MergeOptions = MergeOptionTypeEnum[]; + export interface MergePullRequestByFastForwardInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The name of the repository where the pull request was created. + */ + repositoryName: RepositoryName; + /** + * The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID. + */ + sourceCommitId?: ObjectId; + } + export interface MergePullRequestByFastForwardOutput { + /** + * Information about the specified pull request, including the merge. + */ + pullRequest?: PullRequest; + } + export interface MergePullRequestBySquashInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The name of the repository where the pull request was created. + */ + repositoryName: RepositoryName; + /** + * The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID. + */ + sourceCommitId?: ObjectId; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * The commit message to include in the commit information for the merge. + */ + commitMessage?: Message; + /** + * The name of the author who created the commit. This information is used as both the author and committer for the commit. + */ + authorName?: Name; + /** + * The email address of the person merging the branches. This information is used in the commit information for the merge. + */ + email?: Email; + /** + * If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false. + */ + keepEmptyFolders?: KeepEmptyFolders; + /** + * If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge. + */ + conflictResolution?: ConflictResolution; + } + export interface MergePullRequestBySquashOutput { + pullRequest?: PullRequest; + } + export interface MergePullRequestByThreeWayInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The name of the repository where the pull request was created. + */ + repositoryName: RepositoryName; + /** + * The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID. + */ + sourceCommitId?: ObjectId; + /** + * The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. + */ + conflictDetailLevel?: ConflictDetailLevelTypeEnum; + /** + * Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. + */ + conflictResolutionStrategy?: ConflictResolutionStrategyTypeEnum; + /** + * The commit message to include in the commit information for the merge. + */ + commitMessage?: Message; + /** + * The name of the author who created the commit. This information is used as both the author and committer for the commit. + */ + authorName?: Name; + /** + * The email address of the person merging the branches. This information is used in the commit information for the merge. + */ + email?: Email; + /** + * If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false. + */ + keepEmptyFolders?: KeepEmptyFolders; + /** + * If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge. + */ + conflictResolution?: ConflictResolution; + } + export interface MergePullRequestByThreeWayOutput { + pullRequest?: PullRequest; + } + export type Message = string; + export type Mode = string; + export type Name = string; + export type NextToken = string; + export type NumberOfConflicts = number; + export type ObjectId = string; + export type ObjectSize = number; + export type ObjectTypeEnum = "FILE"|"DIRECTORY"|"GIT_LINK"|"SYMBOLIC_LINK"|string; + export interface ObjectTypes { + /** + * The type of the object in the source branch. + */ + source?: ObjectTypeEnum; + /** + * The type of the object in the destination branch. + */ + destination?: ObjectTypeEnum; + /** + * The type of the object in the base commit of the merge. + */ + base?: ObjectTypeEnum; + } + export type OrderEnum = "ascending"|"descending"|string; + export interface OriginApprovalRuleTemplate { + /** + * The ID of the template that created the approval rule. + */ + approvalRuleTemplateId?: ApprovalRuleTemplateId; + /** + * The name of the template that created the approval rule. + */ + approvalRuleTemplateName?: ApprovalRuleTemplateName; + } + export type Overridden = boolean; + export interface OverridePullRequestApprovalRulesInput { + /** + * The system-generated ID of the pull request for which you want to override all approval rule requirements. To get this information, use GetPullRequest. + */ + pullRequestId: PullRequestId; + /** + * The system-generated ID of the most recent revision of the pull request. You cannot override approval rules for anything but the most recent revision of a pull request. To get the revision ID, use GetPullRequest. + */ + revisionId: RevisionId; + /** + * Whether you want to set aside approval rule requirements for the pull request (OVERRIDE) or revoke a previous override and apply approval rule requirements (REVOKE). REVOKE status is not stored. + */ + overrideStatus: OverrideStatus; + } + export type OverrideStatus = "OVERRIDE"|"REVOKE"|string; + export type ParentList = ObjectId[]; + export type Path = string; + export type Position = number; + export interface PostCommentForComparedCommitInput { + /** + * The name of the repository where you want to post a comment on the comparison between commits. + */ + repositoryName: RepositoryName; + /** + * To establish the directionality of the comparison, the full commit ID of the before commit. Required for commenting on any commit unless that commit is the initial commit. + */ + beforeCommitId?: CommitId; + /** + * To establish the directionality of the comparison, the full commit ID of the after commit. + */ + afterCommitId: CommitId; + /** + * The location of the comparison where you want to comment. + */ + location?: Location; + /** + * The content of the comment you want to make. + */ + content: Content; + /** + * A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token. + */ + clientRequestToken?: ClientRequestToken; + } + export interface PostCommentForComparedCommitOutput { + /** + * The name of the repository where you posted a comment on the comparison between commits. + */ + repositoryName?: RepositoryName; + /** + * In the directionality you established, the full commit ID of the before commit. + */ + beforeCommitId?: CommitId; + /** + * In the directionality you established, the full commit ID of the after commit. + */ + afterCommitId?: CommitId; + /** + * In the directionality you established, the blob ID of the before blob. + */ + beforeBlobId?: ObjectId; + /** + * In the directionality you established, the blob ID of the after blob. + */ + afterBlobId?: ObjectId; + /** + * The location of the comment in the comparison between the two commits. + */ + location?: Location; + /** + * The content of the comment you posted. + */ + comment?: Comment; + } + export interface PostCommentForPullRequestInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The name of the repository where you want to post a comment on a pull request. + */ + repositoryName: RepositoryName; + /** + * The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created. + */ + beforeCommitId: CommitId; + /** + * The full commit ID of the commit in the source branch that is the current tip of the branch for the pull request when you post the comment. + */ + afterCommitId: CommitId; + /** + * The location of the change where you want to post your comment. If no location is provided, the comment is posted as a general comment on the pull request difference between the before commit ID and the after commit ID. + */ + location?: Location; + /** + * The content of your comment on the change. + */ + content: Content; + /** + * A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token. + */ + clientRequestToken?: ClientRequestToken; + } + export interface PostCommentForPullRequestOutput { + /** + * The name of the repository where you posted a comment on a pull request. + */ + repositoryName?: RepositoryName; + /** + * The system-generated ID of the pull request. + */ + pullRequestId?: PullRequestId; + /** + * The full commit ID of the commit in the source branch used to create the pull request, or in the case of an updated pull request, the full commit ID of the commit used to update the pull request. + */ + beforeCommitId?: CommitId; + /** + * The full commit ID of the commit in the destination branch where the pull request is merged. + */ + afterCommitId?: CommitId; + /** + * In the directionality of the pull request, the blob ID of the before blob. + */ + beforeBlobId?: ObjectId; + /** + * In the directionality of the pull request, the blob ID of the after blob. + */ + afterBlobId?: ObjectId; + /** + * The location of the change where you posted your comment. + */ + location?: Location; + /** + * The content of the comment you posted. + */ + comment?: Comment; + } + export interface PostCommentReplyInput { + /** + * The system-generated ID of the comment to which you want to reply. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + */ + inReplyTo: CommentId; + /** + * A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token. + */ + clientRequestToken?: ClientRequestToken; + /** + * The contents of your reply to a comment. + */ + content: Content; + } + export interface PostCommentReplyOutput { + /** + * Information about the reply to a comment. + */ + comment?: Comment; + } + export interface PullRequest { + /** + * The system-generated ID of the pull request. + */ + pullRequestId?: PullRequestId; + /** + * The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users. + */ + title?: Title; + /** + * The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request. + */ + description?: Description; + /** + * The day and time of the last user or system activity on the pull request, in timestamp format. + */ + lastActivityDate?: LastModifiedDate; + /** + * The date and time the pull request was originally created, in timestamp format. + */ + creationDate?: CreationDate; + /** + * The status of the pull request. Pull request status can only change from OPEN to CLOSED. + */ + pullRequestStatus?: PullRequestStatusEnum; + /** + * The Amazon Resource Name (ARN) of the user who created the pull request. + */ + authorArn?: Arn; + /** + * The targets of the pull request, including the source branch and destination branch for the pull request. + */ + pullRequestTargets?: PullRequestTargetList; + /** + * A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token. + */ + clientRequestToken?: ClientRequestToken; + /** + * The system-generated revision ID for the pull request. + */ + revisionId?: RevisionId; + /** + * The approval rules applied to the pull request. + */ + approvalRules?: ApprovalRulesList; + } + export interface PullRequestCreatedEventMetadata { + /** + * The name of the repository where the pull request was created. + */ + repositoryName?: RepositoryName; + /** + * The commit ID on the source branch used when the pull request was created. + */ + sourceCommitId?: CommitId; + /** + * The commit ID of the tip of the branch specified as the destination branch when the pull request was created. + */ + destinationCommitId?: CommitId; + /** + * The commit ID of the most recent commit that the source branch and the destination branch have in common. + */ + mergeBase?: CommitId; + } + export interface PullRequestEvent { + /** + * The system-generated ID of the pull request. + */ + pullRequestId?: PullRequestId; + /** + * The day and time of the pull request event, in timestamp format. + */ + eventDate?: EventDate; + /** + * The type of the pull request event (for example, a status change event (PULL_REQUEST_STATUS_CHANGED) or update event (PULL_REQUEST_SOURCE_REFERENCE_UPDATED)). + */ + pullRequestEventType?: PullRequestEventType; + /** + * The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with more commits or changing the status of a pull request. + */ + actorArn?: Arn; + /** + * Information about the source and destination branches for the pull request. + */ + pullRequestCreatedEventMetadata?: PullRequestCreatedEventMetadata; + /** + * Information about the change in status for the pull request event. + */ + pullRequestStatusChangedEventMetadata?: PullRequestStatusChangedEventMetadata; + /** + * Information about the updated source branch for the pull request event. + */ + pullRequestSourceReferenceUpdatedEventMetadata?: PullRequestSourceReferenceUpdatedEventMetadata; + /** + * Information about the change in mergability state for the pull request event. + */ + pullRequestMergedStateChangedEventMetadata?: PullRequestMergedStateChangedEventMetadata; + /** + * Information about a pull request event. + */ + approvalRuleEventMetadata?: ApprovalRuleEventMetadata; + /** + * Information about an approval state change for a pull request. + */ + approvalStateChangedEventMetadata?: ApprovalStateChangedEventMetadata; + /** + * Information about an approval rule override event for a pull request. + */ + approvalRuleOverriddenEventMetadata?: ApprovalRuleOverriddenEventMetadata; + } + export type PullRequestEventList = PullRequestEvent[]; + export type PullRequestEventType = "PULL_REQUEST_CREATED"|"PULL_REQUEST_STATUS_CHANGED"|"PULL_REQUEST_SOURCE_REFERENCE_UPDATED"|"PULL_REQUEST_MERGE_STATE_CHANGED"|"PULL_REQUEST_APPROVAL_RULE_CREATED"|"PULL_REQUEST_APPROVAL_RULE_UPDATED"|"PULL_REQUEST_APPROVAL_RULE_DELETED"|"PULL_REQUEST_APPROVAL_RULE_OVERRIDDEN"|"PULL_REQUEST_APPROVAL_STATE_CHANGED"|string; + export type PullRequestId = string; + export type PullRequestIdList = PullRequestId[]; + export interface PullRequestMergedStateChangedEventMetadata { + /** + * The name of the repository where the pull request was created. + */ + repositoryName?: RepositoryName; + /** + * The name of the branch that the pull request is merged into. + */ + destinationReference?: ReferenceName; + /** + * Information about the merge state change event. + */ + mergeMetadata?: MergeMetadata; + } + export interface PullRequestSourceReferenceUpdatedEventMetadata { + /** + * The name of the repository where the pull request was updated. + */ + repositoryName?: RepositoryName; + /** + * The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was updated. + */ + beforeCommitId?: CommitId; + /** + * The full commit ID of the commit in the source branch that was the tip of the branch at the time the pull request was updated. + */ + afterCommitId?: CommitId; + /** + * The commit ID of the most recent commit that the source branch and the destination branch have in common. + */ + mergeBase?: CommitId; + } + export interface PullRequestStatusChangedEventMetadata { + /** + * The changed status of the pull request. + */ + pullRequestStatus?: PullRequestStatusEnum; + } + export type PullRequestStatusEnum = "OPEN"|"CLOSED"|string; + export interface PullRequestTarget { + /** + * The name of the repository that contains the pull request source and destination branches. + */ + repositoryName?: RepositoryName; + /** + * The branch of the repository that contains the changes for the pull request. Also known as the source branch. + */ + sourceReference?: ReferenceName; + /** + * The branch of the repository where the pull request changes are merged. Also known as the destination branch. + */ + destinationReference?: ReferenceName; + /** + * The full commit ID that is the tip of the destination branch. This is the commit where the pull request was or will be merged. + */ + destinationCommit?: CommitId; + /** + * The full commit ID of the tip of the source branch used to create the pull request. If the pull request branch is updated by a push while the pull request is open, the commit ID changes to reflect the new tip of the branch. + */ + sourceCommit?: CommitId; + /** + * The commit ID of the most recent commit that the source branch and the destination branch have in common. + */ + mergeBase?: CommitId; + /** + * Returns metadata about the state of the merge, including whether the merge has been made. + */ + mergeMetadata?: MergeMetadata; + } + export type PullRequestTargetList = PullRequestTarget[]; + export interface PutCommentReactionInput { + /** + * The ID of the comment to which you want to add or update a reaction. + */ + commentId: CommentId; + /** + * The emoji reaction you want to add or update. To remove a reaction, provide a value of blank or null. You can also provide the value of none. For information about emoji reaction values supported in AWS CodeCommit, see the AWS CodeCommit User Guide. + */ + reactionValue: ReactionValue; + } + export type PutFileEntries = PutFileEntry[]; + export interface PutFileEntry { + /** + * The full path to the file in the repository, including the name of the file. + */ + filePath: Path; + /** + * The extrapolated file mode permissions for the file. Valid values include EXECUTABLE and NORMAL. + */ + fileMode?: FileModeTypeEnum; + /** + * The content of the file, if a source file is not specified. + */ + fileContent?: FileContent; + /** + * The name and full path of the file that contains the changes you want to make as part of the commit, if you are not providing the file content directly. + */ + sourceFile?: SourceFileSpecifier; + } + export interface PutFileInput { + /** + * The name of the repository where you want to add or update the file. + */ + repositoryName: RepositoryName; + /** + * The name of the branch where you want to add or update the file. If this is an empty repository, this branch is created. + */ + branchName: BranchName; + /** + * The content of the file, in binary object format. + */ + fileContent: FileContent; + /** + * The name of the file you want to add or update, including the relative path to the file in the repository. If the path does not currently exist in the repository, the path is created as part of adding the file. + */ + filePath: Path; + /** + * The file mode permissions of the blob. Valid file mode permissions are listed here. + */ + fileMode?: FileModeTypeEnum; + /** + * The full commit ID of the head commit in the branch where you want to add or update the file. If this is an empty repository, no commit ID is required. If this is not an empty repository, a commit ID is required. The commit ID must match the ID of the head commit at the time of the operation. Otherwise, an error occurs, and the file is not added or updated. + */ + parentCommitId?: CommitId; + /** + * A message about why this file was added or updated. Although it is optional, a message makes the commit history for your repository more useful. + */ + commitMessage?: Message; + /** + * The name of the person adding or updating the file. Although it is optional, a name makes the commit history for your repository more useful. + */ + name?: Name; + /** + * An email address for the person adding or updating the file. + */ + email?: Email; + } + export interface PutFileOutput { + /** + * The full SHA ID of the commit that contains this file change. + */ + commitId: ObjectId; + /** + * The ID of the blob, which is its SHA-1 pointer. + */ + blobId: ObjectId; + /** + * The full SHA-1 pointer of the tree information for the commit that contains this file change. + */ + treeId: ObjectId; + } + export interface PutRepositoryTriggersInput { + /** + * The name of the repository where you want to create or update the trigger. + */ + repositoryName: RepositoryName; + /** + * The JSON block of configuration information for each trigger. + */ + triggers: RepositoryTriggersList; + } + export interface PutRepositoryTriggersOutput { + /** + * The system-generated unique ID for the create or update operation. + */ + configurationId?: RepositoryTriggersConfigurationId; + } + export type ReactionCountsMap = {[key: string]: Count}; + export type ReactionEmoji = string; + export interface ReactionForComment { + /** + * The reaction for a specified comment. + */ + reaction?: ReactionValueFormats; + /** + * The Amazon Resource Names (ARNs) of users who have provided reactions to the comment. + */ + reactionUsers?: ReactionUsersList; + /** + * A numerical count of users who reacted with the specified emoji whose identities have been subsequently deleted from IAM. While these IAM users or roles no longer exist, the reactions might still appear in total reaction counts. + */ + reactionsFromDeletedUsersCount?: Count; + } + export type ReactionShortCode = string; + export type ReactionUnicode = string; + export type ReactionUsersList = Arn[]; + export type ReactionValue = string; + export interface ReactionValueFormats { + /** + * The Emoji Version 1.0 graphic of the reaction. These graphics are interpreted slightly differently on different operating systems. + */ + emoji?: ReactionEmoji; + /** + * The emoji short code for the reaction. Short codes are interpreted slightly differently on different operating systems. + */ + shortCode?: ReactionShortCode; + /** + * The Unicode codepoint for the reaction. + */ + unicode?: ReactionUnicode; + } + export type ReactionsForCommentList = ReactionForComment[]; + export type ReferenceName = string; + export type RelativeFileVersionEnum = "BEFORE"|"AFTER"|string; + export type ReplaceContentEntries = ReplaceContentEntry[]; + export interface ReplaceContentEntry { + /** + * The path of the conflicting file. + */ + filePath: Path; + /** + * The replacement type to use when determining how to resolve the conflict. + */ + replacementType: ReplacementTypeEnum; + /** + * The base-64 encoded content to use when the replacement type is USE_NEW_CONTENT. + */ + content?: FileContent; + /** + * The file mode to apply during conflict resoltion. + */ + fileMode?: FileModeTypeEnum; + } + export type ReplacementTypeEnum = "KEEP_BASE"|"KEEP_SOURCE"|"KEEP_DESTINATION"|"USE_NEW_CONTENT"|string; + export type RepositoryDescription = string; + export type RepositoryId = string; + export interface RepositoryMetadata { + /** + * The ID of the AWS account associated with the repository. + */ + accountId?: AccountId; + /** + * The ID of the repository. + */ + repositoryId?: RepositoryId; + /** + * The repository's name. + */ + repositoryName?: RepositoryName; + /** + * A comment or description about the repository. + */ + repositoryDescription?: RepositoryDescription; + /** + * The repository's default branch name. + */ + defaultBranch?: BranchName; + /** + * The date and time the repository was last modified, in timestamp format. + */ + lastModifiedDate?: LastModifiedDate; + /** + * The date and time the repository was created, in timestamp format. + */ + creationDate?: CreationDate; + /** + * The URL to use for cloning the repository over HTTPS. + */ + cloneUrlHttp?: CloneUrlHttp; + /** + * The URL to use for cloning the repository over SSH. + */ + cloneUrlSsh?: CloneUrlSsh; + /** + * The Amazon Resource Name (ARN) of the repository. + */ + Arn?: Arn; + } + export type RepositoryMetadataList = RepositoryMetadata[]; + export type RepositoryName = string; + export interface RepositoryNameIdPair { + /** + * The name associated with the repository. + */ + repositoryName?: RepositoryName; + /** + * The ID associated with the repository. + */ + repositoryId?: RepositoryId; + } + export type RepositoryNameIdPairList = RepositoryNameIdPair[]; + export type RepositoryNameList = RepositoryName[]; + export type RepositoryNotFoundList = RepositoryName[]; + export interface RepositoryTrigger { + /** + * The name of the trigger. + */ + name: RepositoryTriggerName; + /** + * The ARN of the resource that is the target for a trigger (for example, the ARN of a topic in Amazon SNS). + */ + destinationArn: Arn; + /** + * Any custom data associated with the trigger to be included in the information sent to the target of the trigger. + */ + customData?: RepositoryTriggerCustomData; + /** + * The branches to be included in the trigger configuration. If you specify an empty array, the trigger applies to all branches. Although no content is required in the array, you must include the array itself. + */ + branches?: BranchNameList; + /** + * The repository events that cause the trigger to run actions in another service, such as sending a notification through Amazon SNS. The valid value "all" cannot be used with any other values. + */ + events: RepositoryTriggerEventList; + } + export type RepositoryTriggerCustomData = string; + export type RepositoryTriggerEventEnum = "all"|"updateReference"|"createReference"|"deleteReference"|string; + export type RepositoryTriggerEventList = RepositoryTriggerEventEnum[]; + export interface RepositoryTriggerExecutionFailure { + /** + * The name of the trigger that did not run. + */ + trigger?: RepositoryTriggerName; + /** + * Message information about the trigger that did not run. + */ + failureMessage?: RepositoryTriggerExecutionFailureMessage; + } + export type RepositoryTriggerExecutionFailureList = RepositoryTriggerExecutionFailure[]; + export type RepositoryTriggerExecutionFailureMessage = string; + export type RepositoryTriggerName = string; + export type RepositoryTriggerNameList = RepositoryTriggerName[]; + export type RepositoryTriggersConfigurationId = string; + export type RepositoryTriggersList = RepositoryTrigger[]; + export type ResourceArn = string; + export type RevisionId = string; + export type RuleContentSha256 = string; + export type SetFileModeEntries = SetFileModeEntry[]; + export interface SetFileModeEntry { + /** + * The full path to the file, including the name of the file. + */ + filePath: Path; + /** + * The file mode for the file. + */ + fileMode: FileModeTypeEnum; + } + export type SortByEnum = "repositoryName"|"lastModifiedDate"|string; + export interface SourceFileSpecifier { + /** + * The full path to the file, including the name of the file. + */ + filePath: Path; + /** + * Whether to remove the source file from the parent commit. + */ + isMove?: IsMove; + } + export interface SubModule { + /** + * The commit ID that contains the reference to the submodule. + */ + commitId?: ObjectId; + /** + * The fully qualified path to the folder that contains the reference to the submodule. + */ + absolutePath?: Path; + /** + * The relative path of the submodule from the folder where the query originated. + */ + relativePath?: Path; + } + export type SubModuleList = SubModule[]; + export interface SymbolicLink { + /** + * The blob ID that contains the information about the symbolic link. + */ + blobId?: ObjectId; + /** + * The fully qualified path to the folder that contains the symbolic link. + */ + absolutePath?: Path; + /** + * The relative path of the symbolic link from the folder where the query originated. + */ + relativePath?: Path; + /** + * The file mode permissions of the blob that cotains information about the symbolic link. + */ + fileMode?: FileModeTypeEnum; + } + export type SymbolicLinkList = SymbolicLink[]; + export type TagKey = string; + export type TagKeysList = TagKey[]; + export interface TagResourceInput { + /** + * The Amazon Resource Name (ARN) of the resource to which you want to add or update tags. + */ + resourceArn: ResourceArn; + /** + * The key-value pair to use when tagging this repository. + */ + tags: TagsMap; + } + export type TagValue = string; + export type TagsMap = {[key: string]: TagValue}; + export interface Target { + /** + * The name of the repository that contains the pull request. + */ + repositoryName: RepositoryName; + /** + * The branch of the repository that contains the changes for the pull request. Also known as the source branch. + */ + sourceReference: ReferenceName; + /** + * The branch of the repository where the pull request changes are merged. Also known as the destination branch. + */ + destinationReference?: ReferenceName; + } + export type TargetList = Target[]; + export interface TestRepositoryTriggersInput { + /** + * The name of the repository in which to test the triggers. + */ + repositoryName: RepositoryName; + /** + * The list of triggers to test. + */ + triggers: RepositoryTriggersList; + } + export interface TestRepositoryTriggersOutput { + /** + * The list of triggers that were successfully tested. This list provides the names of the triggers that were successfully tested, separated by commas. + */ + successfulExecutions?: RepositoryTriggerNameList; + /** + * The list of triggers that were not tested. This list provides the names of the triggers that could not be tested, separated by commas. + */ + failedExecutions?: RepositoryTriggerExecutionFailureList; + } + export type Title = string; + export interface UntagResourceInput { + /** + * The Amazon Resource Name (ARN) of the resource to which you want to remove tags. + */ + resourceArn: ResourceArn; + /** + * The tag key for each tag that you want to remove from the resource. + */ + tagKeys: TagKeysList; + } + export interface UpdateApprovalRuleTemplateContentInput { + /** + * The name of the approval rule template where you want to update the content of the rule. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The content that replaces the existing content of the rule. Content statements must be complete. You cannot provide only the changes. + */ + newRuleContent: ApprovalRuleTemplateContent; + /** + * The SHA-256 hash signature for the content of the approval rule. You can retrieve this information by using GetPullRequest. + */ + existingRuleContentSha256?: RuleContentSha256; + } + export interface UpdateApprovalRuleTemplateContentOutput { + approvalRuleTemplate: ApprovalRuleTemplate; + } + export interface UpdateApprovalRuleTemplateDescriptionInput { + /** + * The name of the template for which you want to update the description. + */ + approvalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The updated description of the approval rule template. + */ + approvalRuleTemplateDescription: ApprovalRuleTemplateDescription; + } + export interface UpdateApprovalRuleTemplateDescriptionOutput { + /** + * The structure and content of the updated approval rule template. + */ + approvalRuleTemplate: ApprovalRuleTemplate; + } + export interface UpdateApprovalRuleTemplateNameInput { + /** + * The current name of the approval rule template. + */ + oldApprovalRuleTemplateName: ApprovalRuleTemplateName; + /** + * The new name you want to apply to the approval rule template. + */ + newApprovalRuleTemplateName: ApprovalRuleTemplateName; + } + export interface UpdateApprovalRuleTemplateNameOutput { + /** + * The structure and content of the updated approval rule template. + */ + approvalRuleTemplate: ApprovalRuleTemplate; + } + export interface UpdateCommentInput { + /** + * The system-generated ID of the comment you want to update. To get this ID, use GetCommentsForComparedCommit or GetCommentsForPullRequest. + */ + commentId: CommentId; + /** + * The updated content to replace the existing content of the comment. + */ + content: Content; + } + export interface UpdateCommentOutput { + /** + * Information about the updated comment. + */ + comment?: Comment; + } + export interface UpdateDefaultBranchInput { + /** + * The name of the repository to set or change the default branch for. + */ + repositoryName: RepositoryName; + /** + * The name of the branch to set as the default. + */ + defaultBranchName: BranchName; + } + export interface UpdatePullRequestApprovalRuleContentInput { + /** + * The system-generated ID of the pull request. + */ + pullRequestId: PullRequestId; + /** + * The name of the approval rule you want to update. + */ + approvalRuleName: ApprovalRuleName; + /** + * The SHA-256 hash signature for the content of the approval rule. You can retrieve this information by using GetPullRequest. + */ + existingRuleContentSha256?: RuleContentSha256; + /** + * The updated content for the approval rule. When you update the content of the approval rule, you can specify approvers in an approval pool in one of two ways: CodeCommitApprovers: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account 123456789012 and Mary_Major, all of the following are counted as approvals coming from that user: An IAM user in the account (arn:aws:iam::123456789012:user/Mary_Major) A federated user identified in IAM as Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major) This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major) unless you include a wildcard (*Mary_Major). Fully qualified ARN: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role. For more information about IAM ARNs, wildcards, and formats, see IAM Identifiers in the IAM User Guide. + */ + newRuleContent: ApprovalRuleContent; + } + export interface UpdatePullRequestApprovalRuleContentOutput { + /** + * Information about the updated approval rule. + */ + approvalRule: ApprovalRule; + } + export interface UpdatePullRequestApprovalStateInput { + /** + * The system-generated ID of the pull request. + */ + pullRequestId: PullRequestId; + /** + * The system-generated ID of the revision. + */ + revisionId: RevisionId; + /** + * The approval state to associate with the user on the pull request. + */ + approvalState: ApprovalState; + } + export interface UpdatePullRequestDescriptionInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The updated content of the description for the pull request. This content replaces the existing description. + */ + description: Description; + } + export interface UpdatePullRequestDescriptionOutput { + /** + * Information about the updated pull request. + */ + pullRequest: PullRequest; + } + export interface UpdatePullRequestStatusInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The status of the pull request. The only valid operations are to update the status from OPEN to OPEN, OPEN to CLOSED or from CLOSED to CLOSED. + */ + pullRequestStatus: PullRequestStatusEnum; + } + export interface UpdatePullRequestStatusOutput { + /** + * Information about the pull request. + */ + pullRequest: PullRequest; + } + export interface UpdatePullRequestTitleInput { + /** + * The system-generated ID of the pull request. To get this ID, use ListPullRequests. + */ + pullRequestId: PullRequestId; + /** + * The updated title of the pull request. This replaces the existing title. + */ + title: Title; + } + export interface UpdatePullRequestTitleOutput { + /** + * Information about the updated pull request. + */ + pullRequest: PullRequest; + } + export interface UpdateRepositoryDescriptionInput { + /** + * The name of the repository to set or change the comment or description for. + */ + repositoryName: RepositoryName; + /** + * The new comment or description for the specified repository. Repository descriptions are limited to 1,000 characters. + */ + repositoryDescription?: RepositoryDescription; + } + export interface UpdateRepositoryNameInput { + /** + * The current name of the repository. + */ + oldName: RepositoryName; + /** + * The new name for the repository. + */ + newName: RepositoryName; + } + export interface UserInfo { + /** + * The name of the user who made the specified commit. + */ + name?: Name; + /** + * The email address associated with the user who made the commit, if any. + */ + email?: Email; + /** + * The date when the specified commit was commited, in timestamp format with GMT offset. + */ + date?: _Date; + } + export type blob = Buffer|Uint8Array|Blob|string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2015-04-13"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CodeCommit client. + */ + export import Types = CodeCommit; +} +export = CodeCommit; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codecommit.js b/justdanceonline-main/node_modules/aws-sdk/clients/codecommit.js new file mode 100644 index 0000000000000000000000000000000000000000..04081c4a267c0bfa22cc56294872b8a2a98d9390 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codecommit.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['codecommit'] = {}; +AWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']); +Object.defineProperty(apiLoader.services['codecommit'], '2015-04-13', { + get: function get() { + var model = require('../apis/codecommit-2015-04-13.min.json'); + model.paginators = require('../apis/codecommit-2015-04-13.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CodeCommit; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codedeploy.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/codedeploy.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..9f57f3fa2f2261c6635d1cc46aa08fa591807f32 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codedeploy.d.ts @@ -0,0 +1,2491 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {WaiterConfiguration} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CodeDeploy extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CodeDeploy.Types.ClientConfiguration) + config: Config & CodeDeploy.Types.ClientConfiguration; + /** + * Adds tags to on-premises instances. + */ + addTagsToOnPremisesInstances(params: CodeDeploy.Types.AddTagsToOnPremisesInstancesInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Adds tags to on-premises instances. + */ + addTagsToOnPremisesInstances(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Gets information about one or more application revisions. The maximum number of application revisions that can be returned is 25. + */ + batchGetApplicationRevisions(params: CodeDeploy.Types.BatchGetApplicationRevisionsInput, callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetApplicationRevisionsOutput) => void): Request; + /** + * Gets information about one or more application revisions. The maximum number of application revisions that can be returned is 25. + */ + batchGetApplicationRevisions(callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetApplicationRevisionsOutput) => void): Request; + /** + * Gets information about one or more applications. The maximum number of applications that can be returned is 100. + */ + batchGetApplications(params: CodeDeploy.Types.BatchGetApplicationsInput, callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetApplicationsOutput) => void): Request; + /** + * Gets information about one or more applications. The maximum number of applications that can be returned is 100. + */ + batchGetApplications(callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetApplicationsOutput) => void): Request; + /** + * Gets information about one or more deployment groups. + */ + batchGetDeploymentGroups(params: CodeDeploy.Types.BatchGetDeploymentGroupsInput, callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentGroupsOutput) => void): Request; + /** + * Gets information about one or more deployment groups. + */ + batchGetDeploymentGroups(callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentGroupsOutput) => void): Request; + /** + * This method works, but is deprecated. Use BatchGetDeploymentTargets instead. Returns an array of one or more instances associated with a deployment. This method works with EC2/On-premises and AWS Lambda compute platforms. The newer BatchGetDeploymentTargets works with all compute platforms. The maximum number of instances that can be returned is 25. + */ + batchGetDeploymentInstances(params: CodeDeploy.Types.BatchGetDeploymentInstancesInput, callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentInstancesOutput) => void): Request; + /** + * This method works, but is deprecated. Use BatchGetDeploymentTargets instead. Returns an array of one or more instances associated with a deployment. This method works with EC2/On-premises and AWS Lambda compute platforms. The newer BatchGetDeploymentTargets works with all compute platforms. The maximum number of instances that can be returned is 25. + */ + batchGetDeploymentInstances(callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentInstancesOutput) => void): Request; + /** + * Returns an array of one or more targets associated with a deployment. This method works with all compute types and should be used instead of the deprecated BatchGetDeploymentInstances. The maximum number of targets that can be returned is 25. The type of targets returned depends on the deployment's compute platform or deployment method: EC2/On-premises: Information about EC2 instance targets. AWS Lambda: Information about Lambda functions targets. Amazon ECS: Information about Amazon ECS service targets. CloudFormation: Information about targets of blue/green deployments initiated by a CloudFormation stack update. + */ + batchGetDeploymentTargets(params: CodeDeploy.Types.BatchGetDeploymentTargetsInput, callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentTargetsOutput) => void): Request; + /** + * Returns an array of one or more targets associated with a deployment. This method works with all compute types and should be used instead of the deprecated BatchGetDeploymentInstances. The maximum number of targets that can be returned is 25. The type of targets returned depends on the deployment's compute platform or deployment method: EC2/On-premises: Information about EC2 instance targets. AWS Lambda: Information about Lambda functions targets. Amazon ECS: Information about Amazon ECS service targets. CloudFormation: Information about targets of blue/green deployments initiated by a CloudFormation stack update. + */ + batchGetDeploymentTargets(callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentTargetsOutput) => void): Request; + /** + * Gets information about one or more deployments. The maximum number of deployments that can be returned is 25. + */ + batchGetDeployments(params: CodeDeploy.Types.BatchGetDeploymentsInput, callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentsOutput) => void): Request; + /** + * Gets information about one or more deployments. The maximum number of deployments that can be returned is 25. + */ + batchGetDeployments(callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetDeploymentsOutput) => void): Request; + /** + * Gets information about one or more on-premises instances. The maximum number of on-premises instances that can be returned is 25. + */ + batchGetOnPremisesInstances(params: CodeDeploy.Types.BatchGetOnPremisesInstancesInput, callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetOnPremisesInstancesOutput) => void): Request; + /** + * Gets information about one or more on-premises instances. The maximum number of on-premises instances that can be returned is 25. + */ + batchGetOnPremisesInstances(callback?: (err: AWSError, data: CodeDeploy.Types.BatchGetOnPremisesInstancesOutput) => void): Request; + /** + * For a blue/green deployment, starts the process of rerouting traffic from instances in the original environment to instances in the replacement environment without waiting for a specified wait time to elapse. (Traffic rerouting, which is achieved by registering instances in the replacement environment with the load balancer, can start as soon as all instances have a status of Ready.) + */ + continueDeployment(params: CodeDeploy.Types.ContinueDeploymentInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * For a blue/green deployment, starts the process of rerouting traffic from instances in the original environment to instances in the replacement environment without waiting for a specified wait time to elapse. (Traffic rerouting, which is achieved by registering instances in the replacement environment with the load balancer, can start as soon as all instances have a status of Ready.) + */ + continueDeployment(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Creates an application. + */ + createApplication(params: CodeDeploy.Types.CreateApplicationInput, callback?: (err: AWSError, data: CodeDeploy.Types.CreateApplicationOutput) => void): Request; + /** + * Creates an application. + */ + createApplication(callback?: (err: AWSError, data: CodeDeploy.Types.CreateApplicationOutput) => void): Request; + /** + * Deploys an application revision through the specified deployment group. + */ + createDeployment(params: CodeDeploy.Types.CreateDeploymentInput, callback?: (err: AWSError, data: CodeDeploy.Types.CreateDeploymentOutput) => void): Request; + /** + * Deploys an application revision through the specified deployment group. + */ + createDeployment(callback?: (err: AWSError, data: CodeDeploy.Types.CreateDeploymentOutput) => void): Request; + /** + * Creates a deployment configuration. + */ + createDeploymentConfig(params: CodeDeploy.Types.CreateDeploymentConfigInput, callback?: (err: AWSError, data: CodeDeploy.Types.CreateDeploymentConfigOutput) => void): Request; + /** + * Creates a deployment configuration. + */ + createDeploymentConfig(callback?: (err: AWSError, data: CodeDeploy.Types.CreateDeploymentConfigOutput) => void): Request; + /** + * Creates a deployment group to which application revisions are deployed. + */ + createDeploymentGroup(params: CodeDeploy.Types.CreateDeploymentGroupInput, callback?: (err: AWSError, data: CodeDeploy.Types.CreateDeploymentGroupOutput) => void): Request; + /** + * Creates a deployment group to which application revisions are deployed. + */ + createDeploymentGroup(callback?: (err: AWSError, data: CodeDeploy.Types.CreateDeploymentGroupOutput) => void): Request; + /** + * Deletes an application. + */ + deleteApplication(params: CodeDeploy.Types.DeleteApplicationInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes an application. + */ + deleteApplication(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a deployment configuration. A deployment configuration cannot be deleted if it is currently in use. Predefined configurations cannot be deleted. + */ + deleteDeploymentConfig(params: CodeDeploy.Types.DeleteDeploymentConfigInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a deployment configuration. A deployment configuration cannot be deleted if it is currently in use. Predefined configurations cannot be deleted. + */ + deleteDeploymentConfig(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deletes a deployment group. + */ + deleteDeploymentGroup(params: CodeDeploy.Types.DeleteDeploymentGroupInput, callback?: (err: AWSError, data: CodeDeploy.Types.DeleteDeploymentGroupOutput) => void): Request; + /** + * Deletes a deployment group. + */ + deleteDeploymentGroup(callback?: (err: AWSError, data: CodeDeploy.Types.DeleteDeploymentGroupOutput) => void): Request; + /** + * Deletes a GitHub account connection. + */ + deleteGitHubAccountToken(params: CodeDeploy.Types.DeleteGitHubAccountTokenInput, callback?: (err: AWSError, data: CodeDeploy.Types.DeleteGitHubAccountTokenOutput) => void): Request; + /** + * Deletes a GitHub account connection. + */ + deleteGitHubAccountToken(callback?: (err: AWSError, data: CodeDeploy.Types.DeleteGitHubAccountTokenOutput) => void): Request; + /** + * Deletes resources linked to an external ID. + */ + deleteResourcesByExternalId(params: CodeDeploy.Types.DeleteResourcesByExternalIdInput, callback?: (err: AWSError, data: CodeDeploy.Types.DeleteResourcesByExternalIdOutput) => void): Request; + /** + * Deletes resources linked to an external ID. + */ + deleteResourcesByExternalId(callback?: (err: AWSError, data: CodeDeploy.Types.DeleteResourcesByExternalIdOutput) => void): Request; + /** + * Deregisters an on-premises instance. + */ + deregisterOnPremisesInstance(params: CodeDeploy.Types.DeregisterOnPremisesInstanceInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Deregisters an on-premises instance. + */ + deregisterOnPremisesInstance(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Gets information about an application. + */ + getApplication(params: CodeDeploy.Types.GetApplicationInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetApplicationOutput) => void): Request; + /** + * Gets information about an application. + */ + getApplication(callback?: (err: AWSError, data: CodeDeploy.Types.GetApplicationOutput) => void): Request; + /** + * Gets information about an application revision. + */ + getApplicationRevision(params: CodeDeploy.Types.GetApplicationRevisionInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetApplicationRevisionOutput) => void): Request; + /** + * Gets information about an application revision. + */ + getApplicationRevision(callback?: (err: AWSError, data: CodeDeploy.Types.GetApplicationRevisionOutput) => void): Request; + /** + * Gets information about a deployment. The content property of the appSpecContent object in the returned revision is always null. Use GetApplicationRevision and the sha256 property of the returned appSpecContent object to get the content of the deployment’s AppSpec file. + */ + getDeployment(params: CodeDeploy.Types.GetDeploymentInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentOutput) => void): Request; + /** + * Gets information about a deployment. The content property of the appSpecContent object in the returned revision is always null. Use GetApplicationRevision and the sha256 property of the returned appSpecContent object to get the content of the deployment’s AppSpec file. + */ + getDeployment(callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentOutput) => void): Request; + /** + * Gets information about a deployment configuration. + */ + getDeploymentConfig(params: CodeDeploy.Types.GetDeploymentConfigInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentConfigOutput) => void): Request; + /** + * Gets information about a deployment configuration. + */ + getDeploymentConfig(callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentConfigOutput) => void): Request; + /** + * Gets information about a deployment group. + */ + getDeploymentGroup(params: CodeDeploy.Types.GetDeploymentGroupInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentGroupOutput) => void): Request; + /** + * Gets information about a deployment group. + */ + getDeploymentGroup(callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentGroupOutput) => void): Request; + /** + * Gets information about an instance as part of a deployment. + */ + getDeploymentInstance(params: CodeDeploy.Types.GetDeploymentInstanceInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentInstanceOutput) => void): Request; + /** + * Gets information about an instance as part of a deployment. + */ + getDeploymentInstance(callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentInstanceOutput) => void): Request; + /** + * Returns information about a deployment target. + */ + getDeploymentTarget(params: CodeDeploy.Types.GetDeploymentTargetInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentTargetOutput) => void): Request; + /** + * Returns information about a deployment target. + */ + getDeploymentTarget(callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentTargetOutput) => void): Request; + /** + * Gets information about an on-premises instance. + */ + getOnPremisesInstance(params: CodeDeploy.Types.GetOnPremisesInstanceInput, callback?: (err: AWSError, data: CodeDeploy.Types.GetOnPremisesInstanceOutput) => void): Request; + /** + * Gets information about an on-premises instance. + */ + getOnPremisesInstance(callback?: (err: AWSError, data: CodeDeploy.Types.GetOnPremisesInstanceOutput) => void): Request; + /** + * Lists information about revisions for an application. + */ + listApplicationRevisions(params: CodeDeploy.Types.ListApplicationRevisionsInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListApplicationRevisionsOutput) => void): Request; + /** + * Lists information about revisions for an application. + */ + listApplicationRevisions(callback?: (err: AWSError, data: CodeDeploy.Types.ListApplicationRevisionsOutput) => void): Request; + /** + * Lists the applications registered with the IAM user or AWS account. + */ + listApplications(params: CodeDeploy.Types.ListApplicationsInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListApplicationsOutput) => void): Request; + /** + * Lists the applications registered with the IAM user or AWS account. + */ + listApplications(callback?: (err: AWSError, data: CodeDeploy.Types.ListApplicationsOutput) => void): Request; + /** + * Lists the deployment configurations with the IAM user or AWS account. + */ + listDeploymentConfigs(params: CodeDeploy.Types.ListDeploymentConfigsInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentConfigsOutput) => void): Request; + /** + * Lists the deployment configurations with the IAM user or AWS account. + */ + listDeploymentConfigs(callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentConfigsOutput) => void): Request; + /** + * Lists the deployment groups for an application registered with the IAM user or AWS account. + */ + listDeploymentGroups(params: CodeDeploy.Types.ListDeploymentGroupsInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentGroupsOutput) => void): Request; + /** + * Lists the deployment groups for an application registered with the IAM user or AWS account. + */ + listDeploymentGroups(callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentGroupsOutput) => void): Request; + /** + * The newer BatchGetDeploymentTargets should be used instead because it works with all compute types. ListDeploymentInstances throws an exception if it is used with a compute platform other than EC2/On-premises or AWS Lambda. Lists the instance for a deployment associated with the IAM user or AWS account. + */ + listDeploymentInstances(params: CodeDeploy.Types.ListDeploymentInstancesInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentInstancesOutput) => void): Request; + /** + * The newer BatchGetDeploymentTargets should be used instead because it works with all compute types. ListDeploymentInstances throws an exception if it is used with a compute platform other than EC2/On-premises or AWS Lambda. Lists the instance for a deployment associated with the IAM user or AWS account. + */ + listDeploymentInstances(callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentInstancesOutput) => void): Request; + /** + * Returns an array of target IDs that are associated a deployment. + */ + listDeploymentTargets(params: CodeDeploy.Types.ListDeploymentTargetsInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentTargetsOutput) => void): Request; + /** + * Returns an array of target IDs that are associated a deployment. + */ + listDeploymentTargets(callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentTargetsOutput) => void): Request; + /** + * Lists the deployments in a deployment group for an application registered with the IAM user or AWS account. + */ + listDeployments(params: CodeDeploy.Types.ListDeploymentsInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentsOutput) => void): Request; + /** + * Lists the deployments in a deployment group for an application registered with the IAM user or AWS account. + */ + listDeployments(callback?: (err: AWSError, data: CodeDeploy.Types.ListDeploymentsOutput) => void): Request; + /** + * Lists the names of stored connections to GitHub accounts. + */ + listGitHubAccountTokenNames(params: CodeDeploy.Types.ListGitHubAccountTokenNamesInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListGitHubAccountTokenNamesOutput) => void): Request; + /** + * Lists the names of stored connections to GitHub accounts. + */ + listGitHubAccountTokenNames(callback?: (err: AWSError, data: CodeDeploy.Types.ListGitHubAccountTokenNamesOutput) => void): Request; + /** + * Gets a list of names for one or more on-premises instances. Unless otherwise specified, both registered and deregistered on-premises instance names are listed. To list only registered or deregistered on-premises instance names, use the registration status parameter. + */ + listOnPremisesInstances(params: CodeDeploy.Types.ListOnPremisesInstancesInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListOnPremisesInstancesOutput) => void): Request; + /** + * Gets a list of names for one or more on-premises instances. Unless otherwise specified, both registered and deregistered on-premises instance names are listed. To list only registered or deregistered on-premises instance names, use the registration status parameter. + */ + listOnPremisesInstances(callback?: (err: AWSError, data: CodeDeploy.Types.ListOnPremisesInstancesOutput) => void): Request; + /** + * Returns a list of tags for the resource identified by a specified Amazon Resource Name (ARN). Tags are used to organize and categorize your CodeDeploy resources. + */ + listTagsForResource(params: CodeDeploy.Types.ListTagsForResourceInput, callback?: (err: AWSError, data: CodeDeploy.Types.ListTagsForResourceOutput) => void): Request; + /** + * Returns a list of tags for the resource identified by a specified Amazon Resource Name (ARN). Tags are used to organize and categorize your CodeDeploy resources. + */ + listTagsForResource(callback?: (err: AWSError, data: CodeDeploy.Types.ListTagsForResourceOutput) => void): Request; + /** + * Sets the result of a Lambda validation function. The function validates lifecycle hooks during a deployment that uses the AWS Lambda or Amazon ECS compute platform. For AWS Lambda deployments, the available lifecycle hooks are BeforeAllowTraffic and AfterAllowTraffic. For Amazon ECS deployments, the available lifecycle hooks are BeforeInstall, AfterInstall, AfterAllowTestTraffic, BeforeAllowTraffic, and AfterAllowTraffic. Lambda validation functions return Succeeded or Failed. For more information, see AppSpec 'hooks' Section for an AWS Lambda Deployment and AppSpec 'hooks' Section for an Amazon ECS Deployment. + */ + putLifecycleEventHookExecutionStatus(params: CodeDeploy.Types.PutLifecycleEventHookExecutionStatusInput, callback?: (err: AWSError, data: CodeDeploy.Types.PutLifecycleEventHookExecutionStatusOutput) => void): Request; + /** + * Sets the result of a Lambda validation function. The function validates lifecycle hooks during a deployment that uses the AWS Lambda or Amazon ECS compute platform. For AWS Lambda deployments, the available lifecycle hooks are BeforeAllowTraffic and AfterAllowTraffic. For Amazon ECS deployments, the available lifecycle hooks are BeforeInstall, AfterInstall, AfterAllowTestTraffic, BeforeAllowTraffic, and AfterAllowTraffic. Lambda validation functions return Succeeded or Failed. For more information, see AppSpec 'hooks' Section for an AWS Lambda Deployment and AppSpec 'hooks' Section for an Amazon ECS Deployment. + */ + putLifecycleEventHookExecutionStatus(callback?: (err: AWSError, data: CodeDeploy.Types.PutLifecycleEventHookExecutionStatusOutput) => void): Request; + /** + * Registers with AWS CodeDeploy a revision for the specified application. + */ + registerApplicationRevision(params: CodeDeploy.Types.RegisterApplicationRevisionInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Registers with AWS CodeDeploy a revision for the specified application. + */ + registerApplicationRevision(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Registers an on-premises instance. Only one IAM ARN (an IAM session ARN or IAM user ARN) is supported in the request. You cannot use both. + */ + registerOnPremisesInstance(params: CodeDeploy.Types.RegisterOnPremisesInstanceInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Registers an on-premises instance. Only one IAM ARN (an IAM session ARN or IAM user ARN) is supported in the request. You cannot use both. + */ + registerOnPremisesInstance(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes one or more tags from one or more on-premises instances. + */ + removeTagsFromOnPremisesInstances(params: CodeDeploy.Types.RemoveTagsFromOnPremisesInstancesInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Removes one or more tags from one or more on-premises instances. + */ + removeTagsFromOnPremisesInstances(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * In a blue/green deployment, overrides any specified wait time and starts terminating instances immediately after the traffic routing is complete. + */ + skipWaitTimeForInstanceTermination(params: CodeDeploy.Types.SkipWaitTimeForInstanceTerminationInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * In a blue/green deployment, overrides any specified wait time and starts terminating instances immediately after the traffic routing is complete. + */ + skipWaitTimeForInstanceTermination(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Attempts to stop an ongoing deployment. + */ + stopDeployment(params: CodeDeploy.Types.StopDeploymentInput, callback?: (err: AWSError, data: CodeDeploy.Types.StopDeploymentOutput) => void): Request; + /** + * Attempts to stop an ongoing deployment. + */ + stopDeployment(callback?: (err: AWSError, data: CodeDeploy.Types.StopDeploymentOutput) => void): Request; + /** + * Associates the list of tags in the input Tags parameter with the resource identified by the ResourceArn input parameter. + */ + tagResource(params: CodeDeploy.Types.TagResourceInput, callback?: (err: AWSError, data: CodeDeploy.Types.TagResourceOutput) => void): Request; + /** + * Associates the list of tags in the input Tags parameter with the resource identified by the ResourceArn input parameter. + */ + tagResource(callback?: (err: AWSError, data: CodeDeploy.Types.TagResourceOutput) => void): Request; + /** + * Disassociates a resource from a list of tags. The resource is identified by the ResourceArn input parameter. The tags are identified by the list of keys in the TagKeys input parameter. + */ + untagResource(params: CodeDeploy.Types.UntagResourceInput, callback?: (err: AWSError, data: CodeDeploy.Types.UntagResourceOutput) => void): Request; + /** + * Disassociates a resource from a list of tags. The resource is identified by the ResourceArn input parameter. The tags are identified by the list of keys in the TagKeys input parameter. + */ + untagResource(callback?: (err: AWSError, data: CodeDeploy.Types.UntagResourceOutput) => void): Request; + /** + * Changes the name of an application. + */ + updateApplication(params: CodeDeploy.Types.UpdateApplicationInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Changes the name of an application. + */ + updateApplication(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>; + /** + * Changes information about a deployment group. + */ + updateDeploymentGroup(params: CodeDeploy.Types.UpdateDeploymentGroupInput, callback?: (err: AWSError, data: CodeDeploy.Types.UpdateDeploymentGroupOutput) => void): Request; + /** + * Changes information about a deployment group. + */ + updateDeploymentGroup(callback?: (err: AWSError, data: CodeDeploy.Types.UpdateDeploymentGroupOutput) => void): Request; + /** + * Waits for the deploymentSuccessful state by periodically calling the underlying CodeDeploy.getDeploymentoperation every 15 seconds (at most 120 times). + */ + waitFor(state: "deploymentSuccessful", params: CodeDeploy.Types.GetDeploymentInput & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentOutput) => void): Request; + /** + * Waits for the deploymentSuccessful state by periodically calling the underlying CodeDeploy.getDeploymentoperation every 15 seconds (at most 120 times). + */ + waitFor(state: "deploymentSuccessful", callback?: (err: AWSError, data: CodeDeploy.Types.GetDeploymentOutput) => void): Request; +} +declare namespace CodeDeploy { + export interface AddTagsToOnPremisesInstancesInput { + /** + * The tag key-value pairs to add to the on-premises instances. Keys and values are both required. Keys cannot be null or empty strings. Value-only tags are not allowed. + */ + tags: TagList; + /** + * The names of the on-premises instances to which to add tags. + */ + instanceNames: InstanceNameList; + } + export type AdditionalDeploymentStatusInfo = string; + export interface Alarm { + /** + * The name of the alarm. Maximum length is 255 characters. Each alarm name can be used only once in a list of alarms. + */ + name?: AlarmName; + } + export interface AlarmConfiguration { + /** + * Indicates whether the alarm configuration is enabled. + */ + enabled?: Boolean; + /** + * Indicates whether a deployment should continue if information about the current state of alarms cannot be retrieved from Amazon CloudWatch. The default value is false. true: The deployment proceeds even if alarm status information can't be retrieved from Amazon CloudWatch. false: The deployment stops if alarm status information can't be retrieved from Amazon CloudWatch. + */ + ignorePollAlarmFailure?: Boolean; + /** + * A list of alarms configured for the deployment group. A maximum of 10 alarms can be added to a deployment group. + */ + alarms?: AlarmList; + } + export type AlarmList = Alarm[]; + export type AlarmName = string; + export interface AppSpecContent { + /** + * The YAML-formatted or JSON-formatted revision string. For an AWS Lambda deployment, the content includes a Lambda function name, the alias for its original version, and the alias for its replacement version. The deployment shifts traffic from the original version of the Lambda function to the replacement version. For an Amazon ECS deployment, the content includes the task name, information about the load balancer that serves traffic to the container, and more. For both types of deployments, the content can specify Lambda functions that run at specified hooks, such as BeforeInstall, during a deployment. + */ + content?: RawStringContent; + /** + * The SHA256 hash value of the revision content. + */ + sha256?: RawStringSha256; + } + export type ApplicationId = string; + export interface ApplicationInfo { + /** + * The application ID. + */ + applicationId?: ApplicationId; + /** + * The application name. + */ + applicationName?: ApplicationName; + /** + * The time at which the application was created. + */ + createTime?: Timestamp; + /** + * True if the user has authenticated with GitHub for the specified application. Otherwise, false. + */ + linkedToGitHub?: Boolean; + /** + * The name for a connection to a GitHub account. + */ + gitHubAccountName?: GitHubAccountTokenName; + /** + * The destination platform type for deployment of the application (Lambda or Server). + */ + computePlatform?: ComputePlatform; + } + export type ApplicationName = string; + export type ApplicationRevisionSortBy = "registerTime"|"firstUsedTime"|"lastUsedTime"|string; + export type ApplicationsInfoList = ApplicationInfo[]; + export type ApplicationsList = ApplicationName[]; + export type Arn = string; + export interface AutoRollbackConfiguration { + /** + * Indicates whether a defined automatic rollback configuration is currently enabled. + */ + enabled?: Boolean; + /** + * The event type or types that trigger a rollback. + */ + events?: AutoRollbackEventsList; + } + export type AutoRollbackEvent = "DEPLOYMENT_FAILURE"|"DEPLOYMENT_STOP_ON_ALARM"|"DEPLOYMENT_STOP_ON_REQUEST"|string; + export type AutoRollbackEventsList = AutoRollbackEvent[]; + export interface AutoScalingGroup { + /** + * The Auto Scaling group name. + */ + name?: AutoScalingGroupName; + /** + * An Auto Scaling lifecycle event hook name. + */ + hook?: AutoScalingGroupHook; + } + export type AutoScalingGroupHook = string; + export type AutoScalingGroupList = AutoScalingGroup[]; + export type AutoScalingGroupName = string; + export type AutoScalingGroupNameList = AutoScalingGroupName[]; + export interface BatchGetApplicationRevisionsInput { + /** + * The name of an AWS CodeDeploy application about which to get revision information. + */ + applicationName: ApplicationName; + /** + * An array of RevisionLocation objects that specify information to get about the application revisions, including type and location. The maximum number of RevisionLocation objects you can specify is 25. + */ + revisions: RevisionLocationList; + } + export interface BatchGetApplicationRevisionsOutput { + /** + * The name of the application that corresponds to the revisions. + */ + applicationName?: ApplicationName; + /** + * Information about errors that might have occurred during the API call. + */ + errorMessage?: ErrorMessage; + /** + * Additional information about the revisions, including the type and location. + */ + revisions?: RevisionInfoList; + } + export interface BatchGetApplicationsInput { + /** + * A list of application names separated by spaces. The maximum number of application names you can specify is 100. + */ + applicationNames: ApplicationsList; + } + export interface BatchGetApplicationsOutput { + /** + * Information about the applications. + */ + applicationsInfo?: ApplicationsInfoList; + } + export interface BatchGetDeploymentGroupsInput { + /** + * The name of an AWS CodeDeploy application associated with the applicable IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * The names of the deployment groups. + */ + deploymentGroupNames: DeploymentGroupsList; + } + export interface BatchGetDeploymentGroupsOutput { + /** + * Information about the deployment groups. + */ + deploymentGroupsInfo?: DeploymentGroupInfoList; + /** + * Information about errors that might have occurred during the API call. + */ + errorMessage?: ErrorMessage; + } + export interface BatchGetDeploymentInstancesInput { + /** + * The unique ID of a deployment. + */ + deploymentId: DeploymentId; + /** + * The unique IDs of instances used in the deployment. The maximum number of instance IDs you can specify is 25. + */ + instanceIds: InstancesList; + } + export interface BatchGetDeploymentInstancesOutput { + /** + * Information about the instance. + */ + instancesSummary?: InstanceSummaryList; + /** + * Information about errors that might have occurred during the API call. + */ + errorMessage?: ErrorMessage; + } + export interface BatchGetDeploymentTargetsInput { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * The unique IDs of the deployment targets. The compute platform of the deployment determines the type of the targets and their formats. The maximum number of deployment target IDs you can specify is 25. For deployments that use the EC2/On-premises compute platform, the target IDs are EC2 or on-premises instances IDs, and their target type is instanceTarget. For deployments that use the AWS Lambda compute platform, the target IDs are the names of Lambda functions, and their target type is instanceTarget. For deployments that use the Amazon ECS compute platform, the target IDs are pairs of Amazon ECS clusters and services specified using the format <clustername>:<servicename>. Their target type is ecsTarget. For deployments that are deployed with AWS CloudFormation, the target IDs are CloudFormation stack IDs. Their target type is cloudFormationTarget. + */ + targetIds?: TargetIdList; + } + export interface BatchGetDeploymentTargetsOutput { + /** + * A list of target objects for a deployment. Each target object contains details about the target, such as its status and lifecycle events. The type of the target objects depends on the deployment' compute platform. EC2/On-premises: Each target object is an EC2 or on-premises instance. AWS Lambda: The target object is a specific version of an AWS Lambda function. Amazon ECS: The target object is an Amazon ECS service. CloudFormation: The target object is an AWS CloudFormation blue/green deployment. + */ + deploymentTargets?: DeploymentTargetList; + } + export interface BatchGetDeploymentsInput { + /** + * A list of deployment IDs, separated by spaces. The maximum number of deployment IDs you can specify is 25. + */ + deploymentIds: DeploymentsList; + } + export interface BatchGetDeploymentsOutput { + /** + * Information about the deployments. + */ + deploymentsInfo?: DeploymentsInfoList; + } + export interface BatchGetOnPremisesInstancesInput { + /** + * The names of the on-premises instances about which to get information. The maximum number of instance names you can specify is 25. + */ + instanceNames: InstanceNameList; + } + export interface BatchGetOnPremisesInstancesOutput { + /** + * Information about the on-premises instances. + */ + instanceInfos?: InstanceInfoList; + } + export interface BlueGreenDeploymentConfiguration { + /** + * Information about whether to terminate instances in the original fleet during a blue/green deployment. + */ + terminateBlueInstancesOnDeploymentSuccess?: BlueInstanceTerminationOption; + /** + * Information about the action to take when newly provisioned instances are ready to receive traffic in a blue/green deployment. + */ + deploymentReadyOption?: DeploymentReadyOption; + /** + * Information about how instances are provisioned for a replacement environment in a blue/green deployment. + */ + greenFleetProvisioningOption?: GreenFleetProvisioningOption; + } + export interface BlueInstanceTerminationOption { + /** + * The action to take on instances in the original environment after a successful blue/green deployment. TERMINATE: Instances are terminated after a specified wait time. KEEP_ALIVE: Instances are left running after they are deregistered from the load balancer and removed from the deployment group. + */ + action?: InstanceAction; + /** + * For an Amazon EC2 deployment, the number of minutes to wait after a successful blue/green deployment before terminating instances from the original environment. For an Amazon ECS deployment, the number of minutes before deleting the original (blue) task set. During an Amazon ECS deployment, CodeDeploy shifts traffic from the original (blue) task set to a replacement (green) task set. The maximum setting is 2880 minutes (2 days). + */ + terminationWaitTimeInMinutes?: Duration; + } + export type Boolean = boolean; + export type BundleType = "tar"|"tgz"|"zip"|"YAML"|"JSON"|string; + export type CloudFormationResourceType = string; + export interface CloudFormationTarget { + /** + * The unique ID of an AWS CloudFormation blue/green deployment. + */ + deploymentId?: DeploymentId; + /** + * The unique ID of a deployment target that has a type of CloudFormationTarget. + */ + targetId?: TargetId; + /** + * The date and time when the target application was updated by an AWS CloudFormation blue/green deployment. + */ + lastUpdatedAt?: Time; + /** + * The lifecycle events of the AWS CloudFormation blue/green deployment to this target application. + */ + lifecycleEvents?: LifecycleEventList; + /** + * The status of an AWS CloudFormation blue/green deployment's target application. + */ + status?: TargetStatus; + /** + * The resource type for the AWS CloudFormation blue/green deployment. + */ + resourceType?: CloudFormationResourceType; + /** + * The percentage of production traffic that the target version of an AWS CloudFormation blue/green deployment receives. + */ + targetVersionWeight?: TrafficWeight; + } + export type CommitId = string; + export type ComputePlatform = "Server"|"Lambda"|"ECS"|string; + export interface ContinueDeploymentInput { + /** + * The unique ID of a blue/green deployment for which you want to start rerouting traffic to the replacement environment. + */ + deploymentId?: DeploymentId; + /** + * The status of the deployment's waiting period. READY_WAIT indicates that the deployment is ready to start shifting traffic. TERMINATION_WAIT indicates that the traffic is shifted, but the original target is not terminated. + */ + deploymentWaitType?: DeploymentWaitType; + } + export interface CreateApplicationInput { + /** + * The name of the application. This name must be unique with the applicable IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * The destination platform type for the deployment (Lambda, Server, or ECS). + */ + computePlatform?: ComputePlatform; + /** + * The metadata that you apply to CodeDeploy applications to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define. + */ + tags?: TagList; + } + export interface CreateApplicationOutput { + /** + * A unique application ID. + */ + applicationId?: ApplicationId; + } + export interface CreateDeploymentConfigInput { + /** + * The name of the deployment configuration to create. + */ + deploymentConfigName: DeploymentConfigName; + /** + * The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value. The type parameter takes either of the following values: HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value. FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances. The value parameter takes an integer. For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95. + */ + minimumHealthyHosts?: MinimumHealthyHosts; + /** + * The configuration that specifies how the deployment traffic is routed. + */ + trafficRoutingConfig?: TrafficRoutingConfig; + /** + * The destination platform type for the deployment (Lambda, Server, or ECS). + */ + computePlatform?: ComputePlatform; + } + export interface CreateDeploymentConfigOutput { + /** + * A unique deployment configuration ID. + */ + deploymentConfigId?: DeploymentConfigId; + } + export interface CreateDeploymentGroupInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * The name of a new deployment group for the specified application. + */ + deploymentGroupName: DeploymentGroupName; + /** + * If specified, the deployment configuration name can be either one of the predefined configurations provided with AWS CodeDeploy or a custom deployment configuration that you create by calling the create deployment configuration operation. CodeDeployDefault.OneAtATime is the default deployment configuration. It is used if a configuration isn't specified for the deployment or deployment group. For more information about the predefined deployment configurations in AWS CodeDeploy, see Working with Deployment Configurations in CodeDeploy in the AWS CodeDeploy User Guide. + */ + deploymentConfigName?: DeploymentConfigName; + /** + * The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags. Cannot be used in the same call as ec2TagSet. + */ + ec2TagFilters?: EC2TagFilterList; + /** + * The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags. Cannot be used in the same call as OnPremisesTagSet. + */ + onPremisesInstanceTagFilters?: TagFilterList; + /** + * A list of associated Amazon EC2 Auto Scaling groups. + */ + autoScalingGroups?: AutoScalingGroupNameList; + /** + * A service role Amazon Resource Name (ARN) that allows AWS CodeDeploy to act on the user's behalf when interacting with AWS services. + */ + serviceRoleArn: Role; + /** + * Information about triggers to create when the deployment group is created. For examples, see Create a Trigger for an AWS CodeDeploy Event in the AWS CodeDeploy User Guide. + */ + triggerConfigurations?: TriggerConfigList; + /** + * Information to add about Amazon CloudWatch alarms when the deployment group is created. + */ + alarmConfiguration?: AlarmConfiguration; + /** + * Configuration information for an automatic rollback that is added when a deployment group is created. + */ + autoRollbackConfiguration?: AutoRollbackConfiguration; + /** + * Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances. If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions. + */ + outdatedInstancesStrategy?: OutdatedInstancesStrategy; + /** + * Information about the type of deployment, in-place or blue/green, that you want to run and whether to route deployment traffic behind a load balancer. + */ + deploymentStyle?: DeploymentStyle; + /** + * Information about blue/green deployment options for a deployment group. + */ + blueGreenDeploymentConfiguration?: BlueGreenDeploymentConfiguration; + /** + * Information about the load balancer used in a deployment. + */ + loadBalancerInfo?: LoadBalancerInfo; + /** + * Information about groups of tags applied to EC2 instances. The deployment group includes only EC2 instances identified by all the tag groups. Cannot be used in the same call as ec2TagFilters. + */ + ec2TagSet?: EC2TagSet; + /** + * The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <clustername>:<servicename>. + */ + ecsServices?: ECSServiceList; + /** + * Information about groups of tags applied to on-premises instances. The deployment group includes only on-premises instances identified by all of the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters. + */ + onPremisesTagSet?: OnPremisesTagSet; + /** + * The metadata that you apply to CodeDeploy deployment groups to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define. + */ + tags?: TagList; + } + export interface CreateDeploymentGroupOutput { + /** + * A unique deployment group ID. + */ + deploymentGroupId?: DeploymentGroupId; + } + export interface CreateDeploymentInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * The name of the deployment group. + */ + deploymentGroupName?: DeploymentGroupName; + /** + * The type and location of the revision to deploy. + */ + revision?: RevisionLocation; + /** + * The name of a deployment configuration associated with the IAM user or AWS account. If not specified, the value configured in the deployment group is used as the default. If the deployment group does not have a deployment configuration associated with it, CodeDeployDefault.OneAtATime is used by default. + */ + deploymentConfigName?: DeploymentConfigName; + /** + * A comment about the deployment. + */ + description?: Description; + /** + * If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop. If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted. During a deployment, the AWS CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail. If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored. + */ + ignoreApplicationStopFailures?: Boolean; + /** + * Information about the instances that belong to the replacement environment in a blue/green deployment. + */ + targetInstances?: TargetInstances; + /** + * Configuration information for an automatic rollback that is added when a deployment is created. + */ + autoRollbackConfiguration?: AutoRollbackConfiguration; + /** + * Indicates whether to deploy to all instances or only to instances that are not running the latest application revision. + */ + updateOutdatedInstancesOnly?: Boolean; + /** + * Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment. The fileExistsBehavior parameter takes any of the following values: DISALLOW: The deployment fails. This is also the default behavior if no option is specified. OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance. RETAIN: The version of the file already on the instance is kept and used as part of the new deployment. + */ + fileExistsBehavior?: FileExistsBehavior; + } + export interface CreateDeploymentOutput { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + } + export interface DeleteApplicationInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + } + export interface DeleteDeploymentConfigInput { + /** + * The name of a deployment configuration associated with the IAM user or AWS account. + */ + deploymentConfigName: DeploymentConfigName; + } + export interface DeleteDeploymentGroupInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * The name of a deployment group for the specified application. + */ + deploymentGroupName: DeploymentGroupName; + } + export interface DeleteDeploymentGroupOutput { + /** + * If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the Amazon EC2 instances in the Auto Scaling group. + */ + hooksNotCleanedUp?: AutoScalingGroupList; + } + export interface DeleteGitHubAccountTokenInput { + /** + * The name of the GitHub account connection to delete. + */ + tokenName?: GitHubAccountTokenName; + } + export interface DeleteGitHubAccountTokenOutput { + /** + * The name of the GitHub account connection that was deleted. + */ + tokenName?: GitHubAccountTokenName; + } + export interface DeleteResourcesByExternalIdInput { + /** + * The unique ID of an external resource (for example, a CloudFormation stack ID) that is linked to one or more CodeDeploy resources. + */ + externalId?: ExternalId; + } + export interface DeleteResourcesByExternalIdOutput { + } + export type DeploymentConfigId = string; + export interface DeploymentConfigInfo { + /** + * The deployment configuration ID. + */ + deploymentConfigId?: DeploymentConfigId; + /** + * The deployment configuration name. + */ + deploymentConfigName?: DeploymentConfigName; + /** + * Information about the number or percentage of minimum healthy instance. + */ + minimumHealthyHosts?: MinimumHealthyHosts; + /** + * The time at which the deployment configuration was created. + */ + createTime?: Timestamp; + /** + * The destination platform type for the deployment (Lambda, Server, or ECS). + */ + computePlatform?: ComputePlatform; + /** + * The configuration that specifies how the deployment traffic is routed. Used for deployments with a Lambda or ECS compute platform only. + */ + trafficRoutingConfig?: TrafficRoutingConfig; + } + export type DeploymentConfigName = string; + export type DeploymentConfigsList = DeploymentConfigName[]; + export type DeploymentCreator = "user"|"autoscaling"|"codeDeployRollback"|"CodeDeploy"|"CodeDeployAutoUpdate"|"CloudFormation"|"CloudFormationRollback"|string; + export type DeploymentGroupId = string; + export interface DeploymentGroupInfo { + /** + * The application name. + */ + applicationName?: ApplicationName; + /** + * The deployment group ID. + */ + deploymentGroupId?: DeploymentGroupId; + /** + * The deployment group name. + */ + deploymentGroupName?: DeploymentGroupName; + /** + * The deployment configuration name. + */ + deploymentConfigName?: DeploymentConfigName; + /** + * The Amazon EC2 tags on which to filter. The deployment group includes EC2 instances with any of the specified tags. + */ + ec2TagFilters?: EC2TagFilterList; + /** + * The on-premises instance tags on which to filter. The deployment group includes on-premises instances with any of the specified tags. + */ + onPremisesInstanceTagFilters?: TagFilterList; + /** + * A list of associated Auto Scaling groups. + */ + autoScalingGroups?: AutoScalingGroupList; + /** + * A service role Amazon Resource Name (ARN) that grants CodeDeploy permission to make calls to AWS services on your behalf. For more information, see Create a Service Role for AWS CodeDeploy in the AWS CodeDeploy User Guide. + */ + serviceRoleArn?: Role; + /** + * Information about the deployment group's target revision, including type and location. + */ + targetRevision?: RevisionLocation; + /** + * Information about triggers associated with the deployment group. + */ + triggerConfigurations?: TriggerConfigList; + /** + * A list of alarms associated with the deployment group. + */ + alarmConfiguration?: AlarmConfiguration; + /** + * Information about the automatic rollback configuration associated with the deployment group. + */ + autoRollbackConfiguration?: AutoRollbackConfiguration; + /** + * Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer. + */ + deploymentStyle?: DeploymentStyle; + /** + * Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances. If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions. + */ + outdatedInstancesStrategy?: OutdatedInstancesStrategy; + /** + * Information about blue/green deployment options for a deployment group. + */ + blueGreenDeploymentConfiguration?: BlueGreenDeploymentConfiguration; + /** + * Information about the load balancer to use in a deployment. + */ + loadBalancerInfo?: LoadBalancerInfo; + /** + * Information about the most recent successful deployment to the deployment group. + */ + lastSuccessfulDeployment?: LastDeploymentInfo; + /** + * Information about the most recent attempted deployment to the deployment group. + */ + lastAttemptedDeployment?: LastDeploymentInfo; + /** + * Information about groups of tags applied to an EC2 instance. The deployment group includes only EC2 instances identified by all of the tag groups. Cannot be used in the same call as ec2TagFilters. + */ + ec2TagSet?: EC2TagSet; + /** + * Information about groups of tags applied to an on-premises instance. The deployment group includes only on-premises instances identified by all the tag groups. Cannot be used in the same call as onPremisesInstanceTagFilters. + */ + onPremisesTagSet?: OnPremisesTagSet; + /** + * The destination platform type for the deployment (Lambda, Server, or ECS). + */ + computePlatform?: ComputePlatform; + /** + * The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <clustername>:<servicename>. + */ + ecsServices?: ECSServiceList; + } + export type DeploymentGroupInfoList = DeploymentGroupInfo[]; + export type DeploymentGroupName = string; + export type DeploymentGroupsList = DeploymentGroupName[]; + export type DeploymentId = string; + export interface DeploymentInfo { + /** + * The application name. + */ + applicationName?: ApplicationName; + /** + * The deployment group name. + */ + deploymentGroupName?: DeploymentGroupName; + /** + * The deployment configuration name. + */ + deploymentConfigName?: DeploymentConfigName; + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * Information about the application revision that was deployed to the deployment group before the most recent successful deployment. + */ + previousRevision?: RevisionLocation; + /** + * Information about the location of stored application artifacts and the service from which to retrieve them. + */ + revision?: RevisionLocation; + /** + * The current state of the deployment as a whole. + */ + status?: DeploymentStatus; + /** + * Information about any error associated with this deployment. + */ + errorInformation?: ErrorInformation; + /** + * A timestamp that indicates when the deployment was created. + */ + createTime?: Timestamp; + /** + * A timestamp that indicates when the deployment was deployed to the deployment group. In some cases, the reported value of the start time might be later than the complete time. This is due to differences in the clock settings of backend servers that participate in the deployment process. + */ + startTime?: Timestamp; + /** + * A timestamp that indicates when the deployment was complete. + */ + completeTime?: Timestamp; + /** + * A summary of the deployment status of the instances in the deployment. + */ + deploymentOverview?: DeploymentOverview; + /** + * A comment about the deployment. + */ + description?: Description; + /** + * The means by which the deployment was created: user: A user created the deployment. autoscaling: Amazon EC2 Auto Scaling created the deployment. codeDeployRollback: A rollback process created the deployment. CodeDeployAutoUpdate: An auto-update process created the deployment when it detected outdated EC2 instances. + */ + creator?: DeploymentCreator; + /** + * If true, then if an ApplicationStop, BeforeBlockTraffic, or AfterBlockTraffic deployment lifecycle event to an instance fails, then the deployment continues to the next deployment lifecycle event. For example, if ApplicationStop fails, the deployment continues with DownloadBundle. If BeforeBlockTraffic fails, the deployment continues with BlockTraffic. If AfterBlockTraffic fails, the deployment continues with ApplicationStop. If false or not specified, then if a lifecycle event fails during a deployment to an instance, that deployment fails. If deployment to that instance is part of an overall deployment and the number of healthy hosts is not less than the minimum number of healthy hosts, then a deployment to the next instance is attempted. During a deployment, the AWS CodeDeploy agent runs the scripts specified for ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic in the AppSpec file from the previous successful deployment. (All other scripts are run from the AppSpec file in the current deployment.) If one of these scripts contains an error and does not run successfully, the deployment can fail. If the cause of the failure is a script from the last successful deployment that will never run successfully, create a new deployment and use ignoreApplicationStopFailures to specify that the ApplicationStop, BeforeBlockTraffic, and AfterBlockTraffic failures should be ignored. + */ + ignoreApplicationStopFailures?: Boolean; + /** + * Information about the automatic rollback configuration associated with the deployment. + */ + autoRollbackConfiguration?: AutoRollbackConfiguration; + /** + * Indicates whether only instances that are not running the latest application revision are to be deployed to. + */ + updateOutdatedInstancesOnly?: Boolean; + /** + * Information about a deployment rollback. + */ + rollbackInfo?: RollbackInfo; + /** + * Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer. + */ + deploymentStyle?: DeploymentStyle; + /** + * Information about the instances that belong to the replacement environment in a blue/green deployment. + */ + targetInstances?: TargetInstances; + /** + * Indicates whether the wait period set for the termination of instances in the original environment has started. Status is 'false' if the KEEP_ALIVE option is specified. Otherwise, 'true' as soon as the termination wait period starts. + */ + instanceTerminationWaitTimeStarted?: Boolean; + /** + * Information about blue/green deployment options for this deployment. + */ + blueGreenDeploymentConfiguration?: BlueGreenDeploymentConfiguration; + /** + * Information about the load balancer used in the deployment. + */ + loadBalancerInfo?: LoadBalancerInfo; + /** + * Provides information about the results of a deployment, such as whether instances in the original environment in a blue/green deployment were not terminated. + */ + additionalDeploymentStatusInfo?: AdditionalDeploymentStatusInfo; + /** + * Information about how AWS CodeDeploy handles files that already exist in a deployment target location but weren't part of the previous successful deployment. DISALLOW: The deployment fails. This is also the default behavior if no option is specified. OVERWRITE: The version of the file from the application revision currently being deployed replaces the version already on the instance. RETAIN: The version of the file already on the instance is kept and used as part of the new deployment. + */ + fileExistsBehavior?: FileExistsBehavior; + /** + * Messages that contain information about the status of a deployment. + */ + deploymentStatusMessages?: DeploymentStatusMessageList; + /** + * The destination platform type for the deployment (Lambda, Server, or ECS). + */ + computePlatform?: ComputePlatform; + /** + * The unique ID for an external resource (for example, a CloudFormation stack ID) that is linked to this deployment. + */ + externalId?: ExternalId; + relatedDeployments?: RelatedDeployments; + } + export type DeploymentOption = "WITH_TRAFFIC_CONTROL"|"WITHOUT_TRAFFIC_CONTROL"|string; + export interface DeploymentOverview { + /** + * The number of instances in the deployment in a pending state. + */ + Pending?: InstanceCount; + /** + * The number of instances in which the deployment is in progress. + */ + InProgress?: InstanceCount; + /** + * The number of instances in the deployment to which revisions have been successfully deployed. + */ + Succeeded?: InstanceCount; + /** + * The number of instances in the deployment in a failed state. + */ + Failed?: InstanceCount; + /** + * The number of instances in the deployment in a skipped state. + */ + Skipped?: InstanceCount; + /** + * The number of instances in a replacement environment ready to receive traffic in a blue/green deployment. + */ + Ready?: InstanceCount; + } + export type DeploymentReadyAction = "CONTINUE_DEPLOYMENT"|"STOP_DEPLOYMENT"|string; + export interface DeploymentReadyOption { + /** + * Information about when to reroute traffic from an original environment to a replacement environment in a blue/green deployment. CONTINUE_DEPLOYMENT: Register new instances with the load balancer immediately after the new application revision is installed on the instances in the replacement environment. STOP_DEPLOYMENT: Do not register new instances with a load balancer unless traffic rerouting is started using ContinueDeployment. If traffic rerouting is not started before the end of the specified wait period, the deployment status is changed to Stopped. + */ + actionOnTimeout?: DeploymentReadyAction; + /** + * The number of minutes to wait before the status of a blue/green deployment is changed to Stopped if rerouting is not started manually. Applies only to the STOP_DEPLOYMENT option for actionOnTimeout. + */ + waitTimeInMinutes?: Duration; + } + export type DeploymentStatus = "Created"|"Queued"|"InProgress"|"Baking"|"Succeeded"|"Failed"|"Stopped"|"Ready"|string; + export type DeploymentStatusList = DeploymentStatus[]; + export type DeploymentStatusMessageList = ErrorMessage[]; + export interface DeploymentStyle { + /** + * Indicates whether to run an in-place deployment or a blue/green deployment. + */ + deploymentType?: DeploymentType; + /** + * Indicates whether to route deployment traffic behind a load balancer. + */ + deploymentOption?: DeploymentOption; + } + export interface DeploymentTarget { + /** + * The deployment type that is specific to the deployment's compute platform or deployments initiated by a CloudFormation stack update. + */ + deploymentTargetType?: DeploymentTargetType; + /** + * Information about the target for a deployment that uses the EC2/On-premises compute platform. + */ + instanceTarget?: InstanceTarget; + /** + * Information about the target for a deployment that uses the AWS Lambda compute platform. + */ + lambdaTarget?: LambdaTarget; + /** + * Information about the target for a deployment that uses the Amazon ECS compute platform. + */ + ecsTarget?: ECSTarget; + cloudFormationTarget?: CloudFormationTarget; + } + export type DeploymentTargetList = DeploymentTarget[]; + export type DeploymentTargetType = "InstanceTarget"|"LambdaTarget"|"ECSTarget"|"CloudFormationTarget"|string; + export type DeploymentType = "IN_PLACE"|"BLUE_GREEN"|string; + export type DeploymentWaitType = "READY_WAIT"|"TERMINATION_WAIT"|string; + export type DeploymentsInfoList = DeploymentInfo[]; + export type DeploymentsList = DeploymentId[]; + export interface DeregisterOnPremisesInstanceInput { + /** + * The name of the on-premises instance to deregister. + */ + instanceName: InstanceName; + } + export type Description = string; + export interface Diagnostics { + /** + * The associated error code: Success: The specified script ran. ScriptMissing: The specified script was not found in the specified location. ScriptNotExecutable: The specified script is not a recognized executable file type. ScriptTimedOut: The specified script did not finish running in the specified time period. ScriptFailed: The specified script failed to run as expected. UnknownError: The specified script did not run for an unknown reason. + */ + errorCode?: LifecycleErrorCode; + /** + * The name of the script. + */ + scriptName?: ScriptName; + /** + * The message associated with the error. + */ + message?: LifecycleMessage; + /** + * The last portion of the diagnostic log. If available, AWS CodeDeploy returns up to the last 4 KB of the diagnostic log. + */ + logTail?: LogTail; + } + export type Duration = number; + export interface EC2TagFilter { + /** + * The tag filter key. + */ + Key?: Key; + /** + * The tag filter value. + */ + Value?: Value; + /** + * The tag filter type: KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value. + */ + Type?: EC2TagFilterType; + } + export type EC2TagFilterList = EC2TagFilter[]; + export type EC2TagFilterType = "KEY_ONLY"|"VALUE_ONLY"|"KEY_AND_VALUE"|string; + export interface EC2TagSet { + /** + * A list that contains other lists of EC2 instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list. + */ + ec2TagSetList?: EC2TagSetList; + } + export type EC2TagSetList = EC2TagFilterList[]; + export type ECSClusterName = string; + export interface ECSService { + /** + * The name of the target Amazon ECS service. + */ + serviceName?: ECSServiceName; + /** + * The name of the cluster that the Amazon ECS service is associated with. + */ + clusterName?: ECSClusterName; + } + export type ECSServiceList = ECSService[]; + export type ECSServiceName = string; + export interface ECSTarget { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * The unique ID of a deployment target that has a type of ecsTarget. + */ + targetId?: TargetId; + /** + * The Amazon Resource Name (ARN) of the target. + */ + targetArn?: TargetArn; + /** + * The date and time when the target Amazon ECS application was updated by a deployment. + */ + lastUpdatedAt?: Time; + /** + * The lifecycle events of the deployment to this target Amazon ECS application. + */ + lifecycleEvents?: LifecycleEventList; + /** + * The status an Amazon ECS deployment's target ECS application. + */ + status?: TargetStatus; + /** + * The ECSTaskSet objects associated with the ECS target. + */ + taskSetsInfo?: ECSTaskSetList; + } + export interface ECSTaskSet { + /** + * A unique ID of an ECSTaskSet. + */ + identifer?: ECSTaskSetIdentifier; + /** + * The number of tasks in a task set. During a deployment that uses the Amazon ECS compute type, CodeDeploy instructs Amazon ECS to create a new task set and uses this value to determine how many tasks to create. After the updated task set is created, CodeDeploy shifts traffic to the new task set. + */ + desiredCount?: ECSTaskSetCount; + /** + * The number of tasks in the task set that are in the PENDING status during an Amazon ECS deployment. A task in the PENDING state is preparing to enter the RUNNING state. A task set enters the PENDING status when it launches for the first time, or when it is restarted after being in the STOPPED state. + */ + pendingCount?: ECSTaskSetCount; + /** + * The number of tasks in the task set that are in the RUNNING status during an Amazon ECS deployment. A task in the RUNNING state is running and ready for use. + */ + runningCount?: ECSTaskSetCount; + /** + * The status of the task set. There are three valid task set statuses: PRIMARY: Indicates the task set is serving production traffic. ACTIVE: Indicates the task set is not serving production traffic. DRAINING: Indicates the tasks in the task set are being stopped and their corresponding targets are being deregistered from their target group. + */ + status?: ECSTaskSetStatus; + /** + * The percentage of traffic served by this task set. + */ + trafficWeight?: TrafficWeight; + /** + * The target group associated with the task set. The target group is used by AWS CodeDeploy to manage traffic to a task set. + */ + targetGroup?: TargetGroupInfo; + /** + * A label that identifies whether the ECS task set is an original target (BLUE) or a replacement target (GREEN). + */ + taskSetLabel?: TargetLabel; + } + export type ECSTaskSetCount = number; + export type ECSTaskSetIdentifier = string; + export type ECSTaskSetList = ECSTaskSet[]; + export type ECSTaskSetStatus = string; + export interface ELBInfo { + /** + * For blue/green deployments, the name of the load balancer that is used to route traffic from original instances to replacement instances in a blue/green deployment. For in-place deployments, the name of the load balancer that instances are deregistered from so they are not serving traffic during a deployment, and then re-registered with after the deployment is complete. + */ + name?: ELBName; + } + export type ELBInfoList = ELBInfo[]; + export type ELBName = string; + export type ETag = string; + export type ErrorCode = "AGENT_ISSUE"|"ALARM_ACTIVE"|"APPLICATION_MISSING"|"AUTOSCALING_VALIDATION_ERROR"|"AUTO_SCALING_CONFIGURATION"|"AUTO_SCALING_IAM_ROLE_PERMISSIONS"|"CODEDEPLOY_RESOURCE_CANNOT_BE_FOUND"|"CUSTOMER_APPLICATION_UNHEALTHY"|"DEPLOYMENT_GROUP_MISSING"|"ECS_UPDATE_ERROR"|"ELASTIC_LOAD_BALANCING_INVALID"|"ELB_INVALID_INSTANCE"|"HEALTH_CONSTRAINTS"|"HEALTH_CONSTRAINTS_INVALID"|"HOOK_EXECUTION_FAILURE"|"IAM_ROLE_MISSING"|"IAM_ROLE_PERMISSIONS"|"INTERNAL_ERROR"|"INVALID_ECS_SERVICE"|"INVALID_LAMBDA_CONFIGURATION"|"INVALID_LAMBDA_FUNCTION"|"INVALID_REVISION"|"MANUAL_STOP"|"MISSING_BLUE_GREEN_DEPLOYMENT_CONFIGURATION"|"MISSING_ELB_INFORMATION"|"MISSING_GITHUB_TOKEN"|"NO_EC2_SUBSCRIPTION"|"NO_INSTANCES"|"OVER_MAX_INSTANCES"|"RESOURCE_LIMIT_EXCEEDED"|"REVISION_MISSING"|"THROTTLED"|"TIMEOUT"|"CLOUDFORMATION_STACK_FAILURE"|string; + export interface ErrorInformation { + /** + * For more information, see Error Codes for AWS CodeDeploy in the AWS CodeDeploy User Guide. The error code: APPLICATION_MISSING: The application was missing. This error code is most likely raised if the application is deleted after the deployment is created, but before it is started. DEPLOYMENT_GROUP_MISSING: The deployment group was missing. This error code is most likely raised if the deployment group is deleted after the deployment is created, but before it is started. HEALTH_CONSTRAINTS: The deployment failed on too many instances to be successfully deployed within the instance health constraints specified. HEALTH_CONSTRAINTS_INVALID: The revision cannot be successfully deployed within the instance health constraints specified. IAM_ROLE_MISSING: The service role cannot be accessed. IAM_ROLE_PERMISSIONS: The service role does not have the correct permissions. INTERNAL_ERROR: There was an internal error. NO_EC2_SUBSCRIPTION: The calling account is not subscribed to Amazon EC2. NO_INSTANCES: No instances were specified, or no instances can be found. OVER_MAX_INSTANCES: The maximum number of instances was exceeded. THROTTLED: The operation was throttled because the calling account exceeded the throttling limits of one or more AWS services. TIMEOUT: The deployment has timed out. REVISION_MISSING: The revision ID was missing. This error code is most likely raised if the revision is deleted after the deployment is created, but before it is started. + */ + code?: ErrorCode; + /** + * An accompanying error message. + */ + message?: ErrorMessage; + } + export type ErrorMessage = string; + export type ExternalId = string; + export type FileExistsBehavior = "DISALLOW"|"OVERWRITE"|"RETAIN"|string; + export type FilterValue = string; + export type FilterValueList = FilterValue[]; + export interface GenericRevisionInfo { + /** + * A comment about the revision. + */ + description?: Description; + /** + * The deployment groups for which this is the current target revision. + */ + deploymentGroups?: DeploymentGroupsList; + /** + * When the revision was first used by AWS CodeDeploy. + */ + firstUsedTime?: Timestamp; + /** + * When the revision was last used by AWS CodeDeploy. + */ + lastUsedTime?: Timestamp; + /** + * When the revision was registered with AWS CodeDeploy. + */ + registerTime?: Timestamp; + } + export interface GetApplicationInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + } + export interface GetApplicationOutput { + /** + * Information about the application. + */ + application?: ApplicationInfo; + } + export interface GetApplicationRevisionInput { + /** + * The name of the application that corresponds to the revision. + */ + applicationName: ApplicationName; + /** + * Information about the application revision to get, including type and location. + */ + revision: RevisionLocation; + } + export interface GetApplicationRevisionOutput { + /** + * The name of the application that corresponds to the revision. + */ + applicationName?: ApplicationName; + /** + * Additional information about the revision, including type and location. + */ + revision?: RevisionLocation; + /** + * General information about the revision. + */ + revisionInfo?: GenericRevisionInfo; + } + export interface GetDeploymentConfigInput { + /** + * The name of a deployment configuration associated with the IAM user or AWS account. + */ + deploymentConfigName: DeploymentConfigName; + } + export interface GetDeploymentConfigOutput { + /** + * Information about the deployment configuration. + */ + deploymentConfigInfo?: DeploymentConfigInfo; + } + export interface GetDeploymentGroupInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * The name of a deployment group for the specified application. + */ + deploymentGroupName: DeploymentGroupName; + } + export interface GetDeploymentGroupOutput { + /** + * Information about the deployment group. + */ + deploymentGroupInfo?: DeploymentGroupInfo; + } + export interface GetDeploymentInput { + /** + * The unique ID of a deployment associated with the IAM user or AWS account. + */ + deploymentId: DeploymentId; + } + export interface GetDeploymentInstanceInput { + /** + * The unique ID of a deployment. + */ + deploymentId: DeploymentId; + /** + * The unique ID of an instance in the deployment group. + */ + instanceId: InstanceId; + } + export interface GetDeploymentInstanceOutput { + /** + * Information about the instance. + */ + instanceSummary?: InstanceSummary; + } + export interface GetDeploymentOutput { + /** + * Information about the deployment. + */ + deploymentInfo?: DeploymentInfo; + } + export interface GetDeploymentTargetInput { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * The unique ID of a deployment target. + */ + targetId?: TargetId; + } + export interface GetDeploymentTargetOutput { + /** + * A deployment target that contains information about a deployment such as its status, lifecycle events, and when it was last updated. It also contains metadata about the deployment target. The deployment target metadata depends on the deployment target's type (instanceTarget, lambdaTarget, or ecsTarget). + */ + deploymentTarget?: DeploymentTarget; + } + export interface GetOnPremisesInstanceInput { + /** + * The name of the on-premises instance about which to get information. + */ + instanceName: InstanceName; + } + export interface GetOnPremisesInstanceOutput { + /** + * Information about the on-premises instance. + */ + instanceInfo?: InstanceInfo; + } + export type GitHubAccountTokenName = string; + export type GitHubAccountTokenNameList = GitHubAccountTokenName[]; + export interface GitHubLocation { + /** + * The GitHub account and repository pair that stores a reference to the commit that represents the bundled artifacts for the application revision. Specified as account/repository. + */ + repository?: Repository; + /** + * The SHA1 commit ID of the GitHub commit that represents the bundled artifacts for the application revision. + */ + commitId?: CommitId; + } + export type GreenFleetProvisioningAction = "DISCOVER_EXISTING"|"COPY_AUTO_SCALING_GROUP"|string; + export interface GreenFleetProvisioningOption { + /** + * The method used to add instances to a replacement environment. DISCOVER_EXISTING: Use instances that already exist or will be created manually. COPY_AUTO_SCALING_GROUP: Use settings from a specified Auto Scaling group to define and create instances in a new Auto Scaling group. + */ + action?: GreenFleetProvisioningAction; + } + export type IamSessionArn = string; + export type IamUserArn = string; + export type InstanceAction = "TERMINATE"|"KEEP_ALIVE"|string; + export type InstanceArn = string; + export type InstanceCount = number; + export type InstanceId = string; + export interface InstanceInfo { + /** + * The name of the on-premises instance. + */ + instanceName?: InstanceName; + /** + * The ARN of the IAM session associated with the on-premises instance. + */ + iamSessionArn?: IamSessionArn; + /** + * The IAM user ARN associated with the on-premises instance. + */ + iamUserArn?: IamUserArn; + /** + * The ARN of the on-premises instance. + */ + instanceArn?: InstanceArn; + /** + * The time at which the on-premises instance was registered. + */ + registerTime?: Timestamp; + /** + * If the on-premises instance was deregistered, the time at which the on-premises instance was deregistered. + */ + deregisterTime?: Timestamp; + /** + * The tags currently associated with the on-premises instance. + */ + tags?: TagList; + } + export type InstanceInfoList = InstanceInfo[]; + export type InstanceName = string; + export type InstanceNameList = InstanceName[]; + export type InstanceStatus = "Pending"|"InProgress"|"Succeeded"|"Failed"|"Skipped"|"Unknown"|"Ready"|string; + export type InstanceStatusList = InstanceStatus[]; + export interface InstanceSummary { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * The instance ID. + */ + instanceId?: InstanceId; + /** + * The deployment status for this instance: Pending: The deployment is pending for this instance. In Progress: The deployment is in progress for this instance. Succeeded: The deployment has succeeded for this instance. Failed: The deployment has failed for this instance. Skipped: The deployment has been skipped for this instance. Unknown: The deployment status is unknown for this instance. + */ + status?: InstanceStatus; + /** + * A timestamp that indicates when the instance information was last updated. + */ + lastUpdatedAt?: Timestamp; + /** + * A list of lifecycle events for this instance. + */ + lifecycleEvents?: LifecycleEventList; + /** + * Information about which environment an instance belongs to in a blue/green deployment. BLUE: The instance is part of the original environment. GREEN: The instance is part of the replacement environment. + */ + instanceType?: InstanceType; + } + export type InstanceSummaryList = InstanceSummary[]; + export interface InstanceTarget { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * The unique ID of a deployment target that has a type of instanceTarget. + */ + targetId?: TargetId; + /** + * The Amazon Resource Name (ARN) of the target. + */ + targetArn?: TargetArn; + /** + * The status an EC2/On-premises deployment's target instance. + */ + status?: TargetStatus; + /** + * The date and time when the target instance was updated by a deployment. + */ + lastUpdatedAt?: Time; + /** + * The lifecycle events of the deployment to this target instance. + */ + lifecycleEvents?: LifecycleEventList; + /** + * A label that identifies whether the instance is an original target (BLUE) or a replacement target (GREEN). + */ + instanceLabel?: TargetLabel; + } + export type InstanceType = "Blue"|"Green"|string; + export type InstanceTypeList = InstanceType[]; + export type InstancesList = InstanceId[]; + export type Key = string; + export type LambdaFunctionAlias = string; + export interface LambdaFunctionInfo { + /** + * The name of a Lambda function. + */ + functionName?: LambdaFunctionName; + /** + * The alias of a Lambda function. For more information, see AWS Lambda Function Aliases in the AWS Lambda Developer Guide. + */ + functionAlias?: LambdaFunctionAlias; + /** + * The version of a Lambda function that production traffic points to. + */ + currentVersion?: Version; + /** + * The version of a Lambda function that production traffic points to after the Lambda function is deployed. + */ + targetVersion?: Version; + /** + * The percentage of production traffic that the target version of a Lambda function receives. + */ + targetVersionWeight?: TrafficWeight; + } + export type LambdaFunctionName = string; + export interface LambdaTarget { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * The unique ID of a deployment target that has a type of lambdaTarget. + */ + targetId?: TargetId; + /** + * The Amazon Resource Name (ARN) of the target. + */ + targetArn?: TargetArn; + /** + * The status an AWS Lambda deployment's target Lambda function. + */ + status?: TargetStatus; + /** + * The date and time when the target Lambda function was updated by a deployment. + */ + lastUpdatedAt?: Time; + /** + * The lifecycle events of the deployment to this target Lambda function. + */ + lifecycleEvents?: LifecycleEventList; + /** + * A LambdaFunctionInfo object that describes a target Lambda function. + */ + lambdaFunctionInfo?: LambdaFunctionInfo; + } + export interface LastDeploymentInfo { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * The status of the most recent deployment. + */ + status?: DeploymentStatus; + /** + * A timestamp that indicates when the most recent deployment to the deployment group was complete. + */ + endTime?: Timestamp; + /** + * A timestamp that indicates when the most recent deployment to the deployment group started. + */ + createTime?: Timestamp; + } + export type LifecycleErrorCode = "Success"|"ScriptMissing"|"ScriptNotExecutable"|"ScriptTimedOut"|"ScriptFailed"|"UnknownError"|string; + export interface LifecycleEvent { + /** + * The deployment lifecycle event name, such as ApplicationStop, BeforeInstall, AfterInstall, ApplicationStart, or ValidateService. + */ + lifecycleEventName?: LifecycleEventName; + /** + * Diagnostic information about the deployment lifecycle event. + */ + diagnostics?: Diagnostics; + /** + * A timestamp that indicates when the deployment lifecycle event started. + */ + startTime?: Timestamp; + /** + * A timestamp that indicates when the deployment lifecycle event ended. + */ + endTime?: Timestamp; + /** + * The deployment lifecycle event status: Pending: The deployment lifecycle event is pending. InProgress: The deployment lifecycle event is in progress. Succeeded: The deployment lifecycle event ran successfully. Failed: The deployment lifecycle event has failed. Skipped: The deployment lifecycle event has been skipped. Unknown: The deployment lifecycle event is unknown. + */ + status?: LifecycleEventStatus; + } + export type LifecycleEventHookExecutionId = string; + export type LifecycleEventList = LifecycleEvent[]; + export type LifecycleEventName = string; + export type LifecycleEventStatus = "Pending"|"InProgress"|"Succeeded"|"Failed"|"Skipped"|"Unknown"|string; + export type LifecycleMessage = string; + export interface ListApplicationRevisionsInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * The column name to use to sort the list results: registerTime: Sort by the time the revisions were registered with AWS CodeDeploy. firstUsedTime: Sort by the time the revisions were first used in a deployment. lastUsedTime: Sort by the time the revisions were last used in a deployment. If not specified or set to null, the results are returned in an arbitrary order. + */ + sortBy?: ApplicationRevisionSortBy; + /** + * The order in which to sort the list results: ascending: ascending order. descending: descending order. If not specified, the results are sorted in ascending order. If set to null, the results are sorted in an arbitrary order. + */ + sortOrder?: SortOrder; + /** + * An Amazon S3 bucket name to limit the search for revisions. If set to null, all of the user's buckets are searched. + */ + s3Bucket?: S3Bucket; + /** + * A key prefix for the set of Amazon S3 objects to limit the search for revisions. + */ + s3KeyPrefix?: S3Key; + /** + * Whether to list revisions based on whether the revision is the target revision of a deployment group: include: List revisions that are target revisions of a deployment group. exclude: Do not list revisions that are target revisions of a deployment group. ignore: List all revisions. + */ + deployed?: ListStateFilterAction; + /** + * An identifier returned from the previous ListApplicationRevisions call. It can be used to return the next set of applications in the list. + */ + nextToken?: NextToken; + } + export interface ListApplicationRevisionsOutput { + /** + * A list of locations that contain the matching revisions. + */ + revisions?: RevisionLocationList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list application revisions call to return the next set of application revisions in the list. + */ + nextToken?: NextToken; + } + export interface ListApplicationsInput { + /** + * An identifier returned from the previous list applications call. It can be used to return the next set of applications in the list. + */ + nextToken?: NextToken; + } + export interface ListApplicationsOutput { + /** + * A list of application names. + */ + applications?: ApplicationsList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list applications call to return the next set of applications in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentConfigsInput { + /** + * An identifier returned from the previous ListDeploymentConfigs call. It can be used to return the next set of deployment configurations in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentConfigsOutput { + /** + * A list of deployment configurations, including built-in configurations such as CodeDeployDefault.OneAtATime. + */ + deploymentConfigsList?: DeploymentConfigsList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment configurations call to return the next set of deployment configurations in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentGroupsInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * An identifier returned from the previous list deployment groups call. It can be used to return the next set of deployment groups in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentGroupsOutput { + /** + * The application name. + */ + applicationName?: ApplicationName; + /** + * A list of deployment group names. + */ + deploymentGroups?: DeploymentGroupsList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment groups call to return the next set of deployment groups in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentInstancesInput { + /** + * The unique ID of a deployment. + */ + deploymentId: DeploymentId; + /** + * An identifier returned from the previous list deployment instances call. It can be used to return the next set of deployment instances in the list. + */ + nextToken?: NextToken; + /** + * A subset of instances to list by status: Pending: Include those instances with pending deployments. InProgress: Include those instances where deployments are still in progress. Succeeded: Include those instances with successful deployments. Failed: Include those instances with failed deployments. Skipped: Include those instances with skipped deployments. Unknown: Include those instances with deployments in an unknown state. + */ + instanceStatusFilter?: InstanceStatusList; + /** + * The set of instances in a blue/green deployment, either those in the original environment ("BLUE") or those in the replacement environment ("GREEN"), for which you want to view instance information. + */ + instanceTypeFilter?: InstanceTypeList; + } + export interface ListDeploymentInstancesOutput { + /** + * A list of instance IDs. + */ + instancesList?: InstancesList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployment instances call to return the next set of deployment instances in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentTargetsInput { + /** + * The unique ID of a deployment. + */ + deploymentId?: DeploymentId; + /** + * A token identifier returned from the previous ListDeploymentTargets call. It can be used to return the next set of deployment targets in the list. + */ + nextToken?: NextToken; + /** + * A key used to filter the returned targets. The two valid values are: TargetStatus - A TargetStatus filter string can be Failed, InProgress, Pending, Ready, Skipped, Succeeded, or Unknown. ServerInstanceLabel - A ServerInstanceLabel filter string can be Blue or Green. + */ + targetFilters?: TargetFilters; + } + export interface ListDeploymentTargetsOutput { + /** + * The unique IDs of deployment targets. + */ + targetIds?: TargetIdList; + /** + * If a large amount of information is returned, a token identifier is also returned. It can be used in a subsequent ListDeploymentTargets call to return the next set of deployment targets in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentsInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. If applicationName is specified, then deploymentGroupName must be specified. If it is not specified, then deploymentGroupName must not be specified. + */ + applicationName?: ApplicationName; + /** + * The name of a deployment group for the specified application. If deploymentGroupName is specified, then applicationName must be specified. If it is not specified, then applicationName must not be specified. + */ + deploymentGroupName?: DeploymentGroupName; + /** + * The unique ID of an external resource for returning deployments linked to the external resource. + */ + externalId?: ExternalId; + /** + * A subset of deployments to list by status: Created: Include created deployments in the resulting list. Queued: Include queued deployments in the resulting list. In Progress: Include in-progress deployments in the resulting list. Succeeded: Include successful deployments in the resulting list. Failed: Include failed deployments in the resulting list. Stopped: Include stopped deployments in the resulting list. + */ + includeOnlyStatuses?: DeploymentStatusList; + /** + * A time range (start and end) for returning a subset of the list of deployments. + */ + createTimeRange?: TimeRange; + /** + * An identifier returned from the previous list deployments call. It can be used to return the next set of deployments in the list. + */ + nextToken?: NextToken; + } + export interface ListDeploymentsOutput { + /** + * A list of deployment IDs. + */ + deployments?: DeploymentsList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list deployments call to return the next set of deployments in the list. + */ + nextToken?: NextToken; + } + export interface ListGitHubAccountTokenNamesInput { + /** + * An identifier returned from the previous ListGitHubAccountTokenNames call. It can be used to return the next set of names in the list. + */ + nextToken?: NextToken; + } + export interface ListGitHubAccountTokenNamesOutput { + /** + * A list of names of connections to GitHub accounts. + */ + tokenNameList?: GitHubAccountTokenNameList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent ListGitHubAccountTokenNames call to return the next set of names in the list. + */ + nextToken?: NextToken; + } + export interface ListOnPremisesInstancesInput { + /** + * The registration status of the on-premises instances: Deregistered: Include deregistered on-premises instances in the resulting list. Registered: Include registered on-premises instances in the resulting list. + */ + registrationStatus?: RegistrationStatus; + /** + * The on-premises instance tags that are used to restrict the on-premises instance names returned. + */ + tagFilters?: TagFilterList; + /** + * An identifier returned from the previous list on-premises instances call. It can be used to return the next set of on-premises instances in the list. + */ + nextToken?: NextToken; + } + export interface ListOnPremisesInstancesOutput { + /** + * The list of matching on-premises instance names. + */ + instanceNames?: InstanceNameList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list on-premises instances call to return the next set of on-premises instances in the list. + */ + nextToken?: NextToken; + } + export type ListStateFilterAction = "include"|"exclude"|"ignore"|string; + export interface ListTagsForResourceInput { + /** + * The ARN of a CodeDeploy resource. ListTagsForResource returns all the tags associated with the resource that is identified by the ResourceArn. + */ + ResourceArn: Arn; + /** + * An identifier returned from the previous ListTagsForResource call. It can be used to return the next set of applications in the list. + */ + NextToken?: NextToken; + } + export interface ListTagsForResourceOutput { + /** + * A list of tags returned by ListTagsForResource. The tags are associated with the resource identified by the input ResourceArn parameter. + */ + Tags?: TagList; + /** + * If a large amount of information is returned, an identifier is also returned. It can be used in a subsequent list application revisions call to return the next set of application revisions in the list. + */ + NextToken?: NextToken; + } + export type ListenerArn = string; + export type ListenerArnList = ListenerArn[]; + export interface LoadBalancerInfo { + /** + * An array that contains information about the load balancer to use for load balancing in a deployment. In Elastic Load Balancing, load balancers are used with Classic Load Balancers. Adding more than one load balancer to the array is not supported. + */ + elbInfoList?: ELBInfoList; + /** + * An array that contains information about the target group to use for load balancing in a deployment. In Elastic Load Balancing, target groups are used with Application Load Balancers. Adding more than one target group to the array is not supported. + */ + targetGroupInfoList?: TargetGroupInfoList; + /** + * The target group pair information. This is an array of TargeGroupPairInfo objects with a maximum size of one. + */ + targetGroupPairInfoList?: TargetGroupPairInfoList; + } + export type LogTail = string; + export type Message = string; + export interface MinimumHealthyHosts { + /** + * The minimum healthy instance type: HOST_COUNT: The minimum number of healthy instances as an absolute value. FLEET_PERCENT: The minimum number of healthy instances as a percentage of the total number of instances in the deployment. In an example of nine instances, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment is successful if six or more instances are deployed to successfully. Otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instances at a time. The deployment is successful if four or more instances are deployed to successfully. Otherwise, the deployment fails. In a call to the GetDeploymentConfig, CodeDeployDefault.OneAtATime returns a minimum healthy instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instance at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.) In addition, with CodeDeployDefault.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful. For more information, see AWS CodeDeploy Instance Health in the AWS CodeDeploy User Guide. + */ + type?: MinimumHealthyHostsType; + /** + * The minimum healthy instance value. + */ + value?: MinimumHealthyHostsValue; + } + export type MinimumHealthyHostsType = "HOST_COUNT"|"FLEET_PERCENT"|string; + export type MinimumHealthyHostsValue = number; + export type NextToken = string; + export type NullableBoolean = boolean; + export interface OnPremisesTagSet { + /** + * A list that contains other lists of on-premises instance tag groups. For an instance to be included in the deployment group, it must be identified by all of the tag groups in the list. + */ + onPremisesTagSetList?: OnPremisesTagSetList; + } + export type OnPremisesTagSetList = TagFilterList[]; + export type OutdatedInstancesStrategy = "UPDATE"|"IGNORE"|string; + export type Percentage = number; + export interface PutLifecycleEventHookExecutionStatusInput { + /** + * The unique ID of a deployment. Pass this ID to a Lambda function that validates a deployment lifecycle event. + */ + deploymentId?: DeploymentId; + /** + * The execution ID of a deployment's lifecycle hook. A deployment lifecycle hook is specified in the hooks section of the AppSpec file. + */ + lifecycleEventHookExecutionId?: LifecycleEventHookExecutionId; + /** + * The result of a Lambda function that validates a deployment lifecycle event. Succeeded and Failed are the only valid values for status. + */ + status?: LifecycleEventStatus; + } + export interface PutLifecycleEventHookExecutionStatusOutput { + /** + * The execution ID of the lifecycle event hook. A hook is specified in the hooks section of the deployment's AppSpec file. + */ + lifecycleEventHookExecutionId?: LifecycleEventHookExecutionId; + } + export interface RawString { + /** + * The YAML-formatted or JSON-formatted revision string. It includes information about which Lambda function to update and optional Lambda functions that validate deployment lifecycle events. + */ + content?: RawStringContent; + /** + * The SHA256 hash value of the revision content. + */ + sha256?: RawStringSha256; + } + export type RawStringContent = string; + export type RawStringSha256 = string; + export interface RegisterApplicationRevisionInput { + /** + * The name of an AWS CodeDeploy application associated with the IAM user or AWS account. + */ + applicationName: ApplicationName; + /** + * A comment about the revision. + */ + description?: Description; + /** + * Information about the application revision to register, including type and location. + */ + revision: RevisionLocation; + } + export interface RegisterOnPremisesInstanceInput { + /** + * The name of the on-premises instance to register. + */ + instanceName: InstanceName; + /** + * The ARN of the IAM session to associate with the on-premises instance. + */ + iamSessionArn?: IamSessionArn; + /** + * The ARN of the IAM user to associate with the on-premises instance. + */ + iamUserArn?: IamUserArn; + } + export type RegistrationStatus = "Registered"|"Deregistered"|string; + export interface RelatedDeployments { + /** + * The deployment ID of the root deployment that triggered this deployment. + */ + autoUpdateOutdatedInstancesRootDeploymentId?: DeploymentId; + /** + * The deployment IDs of 'auto-update outdated instances' deployments triggered by this deployment. + */ + autoUpdateOutdatedInstancesDeploymentIds?: DeploymentsList; + } + export interface RemoveTagsFromOnPremisesInstancesInput { + /** + * The tag key-value pairs to remove from the on-premises instances. + */ + tags: TagList; + /** + * The names of the on-premises instances from which to remove tags. + */ + instanceNames: InstanceNameList; + } + export type Repository = string; + export interface RevisionInfo { + /** + * Information about the location and type of an application revision. + */ + revisionLocation?: RevisionLocation; + /** + * Information about an application revision, including usage details and associated deployment groups. + */ + genericRevisionInfo?: GenericRevisionInfo; + } + export type RevisionInfoList = RevisionInfo[]; + export interface RevisionLocation { + /** + * The type of application revision: S3: An application revision stored in Amazon S3. GitHub: An application revision stored in GitHub (EC2/On-premises deployments only). String: A YAML-formatted or JSON-formatted string (AWS Lambda deployments only). AppSpecContent: An AppSpecContent object that contains the contents of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML stored as a RawString. + */ + revisionType?: RevisionLocationType; + /** + * Information about the location of a revision stored in Amazon S3. + */ + s3Location?: S3Location; + /** + * Information about the location of application artifacts stored in GitHub. + */ + gitHubLocation?: GitHubLocation; + /** + * Information about the location of an AWS Lambda deployment revision stored as a RawString. + */ + string?: RawString; + /** + * The content of an AppSpec file for an AWS Lambda or Amazon ECS deployment. The content is formatted as JSON or YAML and stored as a RawString. + */ + appSpecContent?: AppSpecContent; + } + export type RevisionLocationList = RevisionLocation[]; + export type RevisionLocationType = "S3"|"GitHub"|"String"|"AppSpecContent"|string; + export type Role = string; + export interface RollbackInfo { + /** + * The ID of the deployment rollback. + */ + rollbackDeploymentId?: DeploymentId; + /** + * The deployment ID of the deployment that was underway and triggered a rollback deployment because it failed or was stopped. + */ + rollbackTriggeringDeploymentId?: DeploymentId; + /** + * Information that describes the status of a deployment rollback (for example, whether the deployment can't be rolled back, is in progress, failed, or succeeded). + */ + rollbackMessage?: Description; + } + export type S3Bucket = string; + export type S3Key = string; + export interface S3Location { + /** + * The name of the Amazon S3 bucket where the application revision is stored. + */ + bucket?: S3Bucket; + /** + * The name of the Amazon S3 object that represents the bundled artifacts for the application revision. + */ + key?: S3Key; + /** + * The file type of the application revision. Must be one of the following: tar: A tar archive file. tgz: A compressed tar archive file. zip: A zip archive file. + */ + bundleType?: BundleType; + /** + * A specific version of the Amazon S3 object that represents the bundled artifacts for the application revision. If the version is not specified, the system uses the most recent version by default. + */ + version?: VersionId; + /** + * The ETag of the Amazon S3 object that represents the bundled artifacts for the application revision. If the ETag is not specified as an input parameter, ETag validation of the object is skipped. + */ + eTag?: ETag; + } + export type ScriptName = string; + export interface SkipWaitTimeForInstanceTerminationInput { + /** + * The unique ID of a blue/green deployment for which you want to skip the instance termination wait time. + */ + deploymentId?: DeploymentId; + } + export type SortOrder = "ascending"|"descending"|string; + export interface StopDeploymentInput { + /** + * The unique ID of a deployment. + */ + deploymentId: DeploymentId; + /** + * Indicates, when a deployment is stopped, whether instances that have been updated should be rolled back to the previous version of the application revision. + */ + autoRollbackEnabled?: NullableBoolean; + } + export interface StopDeploymentOutput { + /** + * The status of the stop deployment operation: Pending: The stop operation is pending. Succeeded: The stop operation was successful. + */ + status?: StopStatus; + /** + * An accompanying status message. + */ + statusMessage?: Message; + } + export type StopStatus = "Pending"|"Succeeded"|string; + export interface Tag { + /** + * The tag's key. + */ + Key?: Key; + /** + * The tag's value. + */ + Value?: Value; + } + export interface TagFilter { + /** + * The on-premises instance tag filter key. + */ + Key?: Key; + /** + * The on-premises instance tag filter value. + */ + Value?: Value; + /** + * The on-premises instance tag filter type: KEY_ONLY: Key only. VALUE_ONLY: Value only. KEY_AND_VALUE: Key and value. + */ + Type?: TagFilterType; + } + export type TagFilterList = TagFilter[]; + export type TagFilterType = "KEY_ONLY"|"VALUE_ONLY"|"KEY_AND_VALUE"|string; + export type TagKeyList = Key[]; + export type TagList = Tag[]; + export interface TagResourceInput { + /** + * The ARN of a resource, such as a CodeDeploy application or deployment group. + */ + ResourceArn: Arn; + /** + * A list of tags that TagResource associates with a resource. The resource is identified by the ResourceArn input parameter. + */ + Tags: TagList; + } + export interface TagResourceOutput { + } + export type TargetArn = string; + export type TargetFilterName = "TargetStatus"|"ServerInstanceLabel"|string; + export type TargetFilters = {[key: string]: FilterValueList}; + export interface TargetGroupInfo { + /** + * For blue/green deployments, the name of the target group that instances in the original environment are deregistered from, and instances in the replacement environment are registered with. For in-place deployments, the name of the target group that instances are deregistered from, so they are not serving traffic during a deployment, and then re-registered with after the deployment is complete. + */ + name?: TargetGroupName; + } + export type TargetGroupInfoList = TargetGroupInfo[]; + export type TargetGroupName = string; + export interface TargetGroupPairInfo { + /** + * One pair of target groups. One is associated with the original task set. The second is associated with the task set that serves traffic after the deployment is complete. + */ + targetGroups?: TargetGroupInfoList; + /** + * The path used by a load balancer to route production traffic when an Amazon ECS deployment is complete. + */ + prodTrafficRoute?: TrafficRoute; + /** + * An optional path used by a load balancer to route test traffic after an Amazon ECS deployment. Validation can occur while test traffic is served during a deployment. + */ + testTrafficRoute?: TrafficRoute; + } + export type TargetGroupPairInfoList = TargetGroupPairInfo[]; + export type TargetId = string; + export type TargetIdList = TargetId[]; + export interface TargetInstances { + /** + * The tag filter key, type, and value used to identify Amazon EC2 instances in a replacement environment for a blue/green deployment. Cannot be used in the same call as ec2TagSet. + */ + tagFilters?: EC2TagFilterList; + /** + * The names of one or more Auto Scaling groups to identify a replacement environment for a blue/green deployment. + */ + autoScalingGroups?: AutoScalingGroupNameList; + /** + * Information about the groups of EC2 instance tags that an instance must be identified by in order for it to be included in the replacement environment for a blue/green deployment. Cannot be used in the same call as tagFilters. + */ + ec2TagSet?: EC2TagSet; + } + export type TargetLabel = "Blue"|"Green"|string; + export type TargetStatus = "Pending"|"InProgress"|"Succeeded"|"Failed"|"Skipped"|"Unknown"|"Ready"|string; + export type Time = Date; + export interface TimeBasedCanary { + /** + * The percentage of traffic to shift in the first increment of a TimeBasedCanary deployment. + */ + canaryPercentage?: Percentage; + /** + * The number of minutes between the first and second traffic shifts of a TimeBasedCanary deployment. + */ + canaryInterval?: WaitTimeInMins; + } + export interface TimeBasedLinear { + /** + * The percentage of traffic that is shifted at the start of each increment of a TimeBasedLinear deployment. + */ + linearPercentage?: Percentage; + /** + * The number of minutes between each incremental traffic shift of a TimeBasedLinear deployment. + */ + linearInterval?: WaitTimeInMins; + } + export interface TimeRange { + /** + * The start time of the time range. Specify null to leave the start time open-ended. + */ + start?: Timestamp; + /** + * The end time of the time range. Specify null to leave the end time open-ended. + */ + end?: Timestamp; + } + export type Timestamp = Date; + export interface TrafficRoute { + /** + * The Amazon Resource Name (ARN) of one listener. The listener identifies the route between a target group and a load balancer. This is an array of strings with a maximum size of one. + */ + listenerArns?: ListenerArnList; + } + export interface TrafficRoutingConfig { + /** + * The type of traffic shifting (TimeBasedCanary or TimeBasedLinear) used by a deployment configuration. + */ + type?: TrafficRoutingType; + /** + * A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file. + */ + timeBasedCanary?: TimeBasedCanary; + /** + * A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in equal increments, with an equal number of minutes between each increment. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file. + */ + timeBasedLinear?: TimeBasedLinear; + } + export type TrafficRoutingType = "TimeBasedCanary"|"TimeBasedLinear"|"AllAtOnce"|string; + export type TrafficWeight = number; + export interface TriggerConfig { + /** + * The name of the notification trigger. + */ + triggerName?: TriggerName; + /** + * The Amazon Resource Name (ARN) of the Amazon Simple Notification Service topic through which notifications about deployment or instance events are sent. + */ + triggerTargetArn?: TriggerTargetArn; + /** + * The event type or types for which notifications are triggered. + */ + triggerEvents?: TriggerEventTypeList; + } + export type TriggerConfigList = TriggerConfig[]; + export type TriggerEventType = "DeploymentStart"|"DeploymentSuccess"|"DeploymentFailure"|"DeploymentStop"|"DeploymentRollback"|"DeploymentReady"|"InstanceStart"|"InstanceSuccess"|"InstanceFailure"|"InstanceReady"|string; + export type TriggerEventTypeList = TriggerEventType[]; + export type TriggerName = string; + export type TriggerTargetArn = string; + export interface UntagResourceInput { + /** + * The Amazon Resource Name (ARN) that specifies from which resource to disassociate the tags with the keys in the TagKeys input parameter. + */ + ResourceArn: Arn; + /** + * A list of keys of Tag objects. The Tag objects identified by the keys are disassociated from the resource specified by the ResourceArn input parameter. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceOutput { + } + export interface UpdateApplicationInput { + /** + * The current name of the application you want to change. + */ + applicationName?: ApplicationName; + /** + * The new name to give the application. + */ + newApplicationName?: ApplicationName; + } + export interface UpdateDeploymentGroupInput { + /** + * The application name that corresponds to the deployment group to update. + */ + applicationName: ApplicationName; + /** + * The current name of the deployment group. + */ + currentDeploymentGroupName: DeploymentGroupName; + /** + * The new name of the deployment group, if you want to change it. + */ + newDeploymentGroupName?: DeploymentGroupName; + /** + * The replacement deployment configuration name to use, if you want to change it. + */ + deploymentConfigName?: DeploymentConfigName; + /** + * The replacement set of Amazon EC2 tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names. + */ + ec2TagFilters?: EC2TagFilterList; + /** + * The replacement set of on-premises instance tags on which to filter, if you want to change them. To keep the existing tags, enter their names. To remove tags, do not enter any tag names. + */ + onPremisesInstanceTagFilters?: TagFilterList; + /** + * The replacement list of Auto Scaling groups to be included in the deployment group, if you want to change them. To keep the Auto Scaling groups, enter their names. To remove Auto Scaling groups, do not enter any Auto Scaling group names. + */ + autoScalingGroups?: AutoScalingGroupNameList; + /** + * A replacement ARN for the service role, if you want to change it. + */ + serviceRoleArn?: Role; + /** + * Information about triggers to change when the deployment group is updated. For examples, see Edit a Trigger in a CodeDeploy Deployment Group in the AWS CodeDeploy User Guide. + */ + triggerConfigurations?: TriggerConfigList; + /** + * Information to add or change about Amazon CloudWatch alarms when the deployment group is updated. + */ + alarmConfiguration?: AlarmConfiguration; + /** + * Information for an automatic rollback configuration that is added or changed when a deployment group is updated. + */ + autoRollbackConfiguration?: AutoRollbackConfiguration; + /** + * Indicates what happens when new EC2 instances are launched mid-deployment and do not receive the deployed application revision. If this option is set to UPDATE or is unspecified, CodeDeploy initiates one or more 'auto-update outdated instances' deployments to apply the deployed application revision to the new EC2 instances. If this option is set to IGNORE, CodeDeploy does not initiate a deployment to update the new EC2 instances. This may result in instances having different revisions. + */ + outdatedInstancesStrategy?: OutdatedInstancesStrategy; + /** + * Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer. + */ + deploymentStyle?: DeploymentStyle; + /** + * Information about blue/green deployment options for a deployment group. + */ + blueGreenDeploymentConfiguration?: BlueGreenDeploymentConfiguration; + /** + * Information about the load balancer used in a deployment. + */ + loadBalancerInfo?: LoadBalancerInfo; + /** + * Information about groups of tags applied to on-premises instances. The deployment group includes only EC2 instances identified by all the tag groups. + */ + ec2TagSet?: EC2TagSet; + /** + * The target Amazon ECS services in the deployment group. This applies only to deployment groups that use the Amazon ECS compute platform. A target Amazon ECS service is specified as an Amazon ECS cluster and service name pair using the format <clustername>:<servicename>. + */ + ecsServices?: ECSServiceList; + /** + * Information about an on-premises instance tag set. The deployment group includes only on-premises instances identified by all the tag groups. + */ + onPremisesTagSet?: OnPremisesTagSet; + } + export interface UpdateDeploymentGroupOutput { + /** + * If the output contains no data, and the corresponding deployment group contained at least one Auto Scaling group, AWS CodeDeploy successfully removed all corresponding Auto Scaling lifecycle event hooks from the AWS account. If the output contains data, AWS CodeDeploy could not remove some Auto Scaling lifecycle event hooks from the AWS account. + */ + hooksNotCleanedUp?: AutoScalingGroupList; + } + export type Value = string; + export type Version = string; + export type VersionId = string; + export type WaitTimeInMins = number; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2014-10-06"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CodeDeploy client. + */ + export import Types = CodeDeploy; +} +export = CodeDeploy; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codedeploy.js b/justdanceonline-main/node_modules/aws-sdk/clients/codedeploy.js new file mode 100644 index 0000000000000000000000000000000000000000..4aed9dc6bc0e70d03265cab9b42eea613f528def --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codedeploy.js @@ -0,0 +1,19 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['codedeploy'] = {}; +AWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']); +Object.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', { + get: function get() { + var model = require('../apis/codedeploy-2014-10-06.min.json'); + model.paginators = require('../apis/codedeploy-2014-10-06.paginators.json').pagination; + model.waiters = require('../apis/codedeploy-2014-10-06.waiters2.json').waiters; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CodeDeploy; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codeguruprofiler.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/codeguruprofiler.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7bdcfe8be252268eb3a5d4b0522a55e1252640b0 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codeguruprofiler.d.ts @@ -0,0 +1,1080 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CodeGuruProfiler extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CodeGuruProfiler.Types.ClientConfiguration) + config: Config & CodeGuruProfiler.Types.ClientConfiguration; + /** + * Add up to 2 anomaly notifications channels for a profiling group. + */ + addNotificationChannels(params: CodeGuruProfiler.Types.AddNotificationChannelsRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.AddNotificationChannelsResponse) => void): Request; + /** + * Add up to 2 anomaly notifications channels for a profiling group. + */ + addNotificationChannels(callback?: (err: AWSError, data: CodeGuruProfiler.Types.AddNotificationChannelsResponse) => void): Request; + /** + * Returns the time series of values for a requested list of frame metrics from a time period. + */ + batchGetFrameMetricData(params: CodeGuruProfiler.Types.BatchGetFrameMetricDataRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.BatchGetFrameMetricDataResponse) => void): Request; + /** + * Returns the time series of values for a requested list of frame metrics from a time period. + */ + batchGetFrameMetricData(callback?: (err: AWSError, data: CodeGuruProfiler.Types.BatchGetFrameMetricDataResponse) => void): Request; + /** + * Used by profiler agents to report their current state and to receive remote configuration updates. For example, ConfigureAgent can be used to tell an agent whether to profile or not and for how long to return profiling data. + */ + configureAgent(params: CodeGuruProfiler.Types.ConfigureAgentRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.ConfigureAgentResponse) => void): Request; + /** + * Used by profiler agents to report their current state and to receive remote configuration updates. For example, ConfigureAgent can be used to tell an agent whether to profile or not and for how long to return profiling data. + */ + configureAgent(callback?: (err: AWSError, data: CodeGuruProfiler.Types.ConfigureAgentResponse) => void): Request; + /** + * Creates a profiling group. + */ + createProfilingGroup(params: CodeGuruProfiler.Types.CreateProfilingGroupRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.CreateProfilingGroupResponse) => void): Request; + /** + * Creates a profiling group. + */ + createProfilingGroup(callback?: (err: AWSError, data: CodeGuruProfiler.Types.CreateProfilingGroupResponse) => void): Request; + /** + * Deletes a profiling group. + */ + deleteProfilingGroup(params: CodeGuruProfiler.Types.DeleteProfilingGroupRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.DeleteProfilingGroupResponse) => void): Request; + /** + * Deletes a profiling group. + */ + deleteProfilingGroup(callback?: (err: AWSError, data: CodeGuruProfiler.Types.DeleteProfilingGroupResponse) => void): Request; + /** + * Returns a ProfilingGroupDescription object that contains information about the requested profiling group. + */ + describeProfilingGroup(params: CodeGuruProfiler.Types.DescribeProfilingGroupRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.DescribeProfilingGroupResponse) => void): Request; + /** + * Returns a ProfilingGroupDescription object that contains information about the requested profiling group. + */ + describeProfilingGroup(callback?: (err: AWSError, data: CodeGuruProfiler.Types.DescribeProfilingGroupResponse) => void): Request; + /** + * Returns a list of FindingsReportSummary objects that contain analysis results for all profiling groups in your AWS account. + */ + getFindingsReportAccountSummary(params: CodeGuruProfiler.Types.GetFindingsReportAccountSummaryRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetFindingsReportAccountSummaryResponse) => void): Request; + /** + * Returns a list of FindingsReportSummary objects that contain analysis results for all profiling groups in your AWS account. + */ + getFindingsReportAccountSummary(callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetFindingsReportAccountSummaryResponse) => void): Request; + /** + * Get the current configuration for anomaly notifications for a profiling group. + */ + getNotificationConfiguration(params: CodeGuruProfiler.Types.GetNotificationConfigurationRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetNotificationConfigurationResponse) => void): Request; + /** + * Get the current configuration for anomaly notifications for a profiling group. + */ + getNotificationConfiguration(callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetNotificationConfigurationResponse) => void): Request; + /** + * Returns the JSON-formatted resource-based policy on a profiling group. + */ + getPolicy(params: CodeGuruProfiler.Types.GetPolicyRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetPolicyResponse) => void): Request; + /** + * Returns the JSON-formatted resource-based policy on a profiling group. + */ + getPolicy(callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetPolicyResponse) => void): Request; + /** + * Gets the aggregated profile of a profiling group for a specified time range. Amazon CodeGuru Profiler collects posted agent profiles for a profiling group into aggregated profiles. <note> <p> Because aggregated profiles expire over time <code>GetProfile</code> is not idempotent. </p> </note> <p> Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>, <code>endTime</code>, <code>period</code>. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only <code>period</code>, the latest aggregated profile is returned. </p> <p> Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. </p> <ul> <li> <p> If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. </p> </li> <li> <p> If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. </p> </li> <li> <p> If the aggregation period is 1 day, the aggregated profile is retained for 3 years. </p> </li> </ul> <p>There are two use cases for calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html"> <code>ListProfileTimes</code> </a> to view the time ranges of existing aggregated profiles. Use them in a <code>GetProfile</code> request to return a specific, existing aggregated profile. </p> </li> <li> <p> If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. </p> <p> If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. </p> </li> </ol> + */ + getProfile(params: CodeGuruProfiler.Types.GetProfileRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetProfileResponse) => void): Request; + /** + * Gets the aggregated profile of a profiling group for a specified time range. Amazon CodeGuru Profiler collects posted agent profiles for a profiling group into aggregated profiles. <note> <p> Because aggregated profiles expire over time <code>GetProfile</code> is not idempotent. </p> </note> <p> Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>, <code>endTime</code>, <code>period</code>. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only <code>period</code>, the latest aggregated profile is returned. </p> <p> Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. </p> <ul> <li> <p> If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. </p> </li> <li> <p> If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. </p> </li> <li> <p> If the aggregation period is 1 day, the aggregated profile is retained for 3 years. </p> </li> </ul> <p>There are two use cases for calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html"> <code>ListProfileTimes</code> </a> to view the time ranges of existing aggregated profiles. Use them in a <code>GetProfile</code> request to return a specific, existing aggregated profile. </p> </li> <li> <p> If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. </p> <p> If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. </p> </li> </ol> + */ + getProfile(callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetProfileResponse) => void): Request; + /** + * Returns a list of Recommendation objects that contain recommendations for a profiling group for a given time period. A list of Anomaly objects that contains details about anomalies detected in the profiling group for the same time period is also returned. + */ + getRecommendations(params: CodeGuruProfiler.Types.GetRecommendationsRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetRecommendationsResponse) => void): Request; + /** + * Returns a list of Recommendation objects that contain recommendations for a profiling group for a given time period. A list of Anomaly objects that contains details about anomalies detected in the profiling group for the same time period is also returned. + */ + getRecommendations(callback?: (err: AWSError, data: CodeGuruProfiler.Types.GetRecommendationsResponse) => void): Request; + /** + * List the available reports for a given profiling group and time range. + */ + listFindingsReports(params: CodeGuruProfiler.Types.ListFindingsReportsRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListFindingsReportsResponse) => void): Request; + /** + * List the available reports for a given profiling group and time range. + */ + listFindingsReports(callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListFindingsReportsResponse) => void): Request; + /** + * Lists the start times of the available aggregated profiles of a profiling group for an aggregation period within the specified time range. + */ + listProfileTimes(params: CodeGuruProfiler.Types.ListProfileTimesRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListProfileTimesResponse) => void): Request; + /** + * Lists the start times of the available aggregated profiles of a profiling group for an aggregation period within the specified time range. + */ + listProfileTimes(callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListProfileTimesResponse) => void): Request; + /** + * Returns a list of profiling groups. The profiling groups are returned as ProfilingGroupDescription objects. + */ + listProfilingGroups(params: CodeGuruProfiler.Types.ListProfilingGroupsRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListProfilingGroupsResponse) => void): Request; + /** + * Returns a list of profiling groups. The profiling groups are returned as ProfilingGroupDescription objects. + */ + listProfilingGroups(callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListProfilingGroupsResponse) => void): Request; + /** + * Returns a list of the tags that are assigned to a specified resource. + */ + listTagsForResource(params: CodeGuruProfiler.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListTagsForResourceResponse) => void): Request; + /** + * Returns a list of the tags that are assigned to a specified resource. + */ + listTagsForResource(callback?: (err: AWSError, data: CodeGuruProfiler.Types.ListTagsForResourceResponse) => void): Request; + /** + * Submits profiling data to an aggregated profile of a profiling group. To get an aggregated profile that is created with this profiling data, use GetProfile . + */ + postAgentProfile(params: CodeGuruProfiler.Types.PostAgentProfileRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.PostAgentProfileResponse) => void): Request; + /** + * Submits profiling data to an aggregated profile of a profiling group. To get an aggregated profile that is created with this profiling data, use GetProfile . + */ + postAgentProfile(callback?: (err: AWSError, data: CodeGuruProfiler.Types.PostAgentProfileResponse) => void): Request; + /** + * Adds permissions to a profiling group's resource-based policy that are provided using an action group. If a profiling group doesn't have a resource-based policy, one is created for it using the permissions in the action group and the roles and users in the principals parameter. <p> The one supported action group that can be added is <code>agentPermission</code> which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html"> <code>PostAgentProfile</code> </a>. </p> <p> The first time you call <code>PutPermission</code> on a profiling group, do not specify a <code>revisionId</code> because it doesn't have a resource-based policy. Subsequent calls must provide a <code>revisionId</code> to specify which revision of the resource-based policy to add the permissions to. </p> <p> The response contains the profiling group's JSON-formatted resource policy. </p> + */ + putPermission(params: CodeGuruProfiler.Types.PutPermissionRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.PutPermissionResponse) => void): Request; + /** + * Adds permissions to a profiling group's resource-based policy that are provided using an action group. If a profiling group doesn't have a resource-based policy, one is created for it using the permissions in the action group and the roles and users in the principals parameter. <p> The one supported action group that can be added is <code>agentPermission</code> which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html"> <code>PostAgentProfile</code> </a>. </p> <p> The first time you call <code>PutPermission</code> on a profiling group, do not specify a <code>revisionId</code> because it doesn't have a resource-based policy. Subsequent calls must provide a <code>revisionId</code> to specify which revision of the resource-based policy to add the permissions to. </p> <p> The response contains the profiling group's JSON-formatted resource policy. </p> + */ + putPermission(callback?: (err: AWSError, data: CodeGuruProfiler.Types.PutPermissionResponse) => void): Request; + /** + * Remove one anomaly notifications channel for a profiling group. + */ + removeNotificationChannel(params: CodeGuruProfiler.Types.RemoveNotificationChannelRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.RemoveNotificationChannelResponse) => void): Request; + /** + * Remove one anomaly notifications channel for a profiling group. + */ + removeNotificationChannel(callback?: (err: AWSError, data: CodeGuruProfiler.Types.RemoveNotificationChannelResponse) => void): Request; + /** + * Removes permissions from a profiling group's resource-based policy that are provided using an action group. The one supported action group that can be removed is agentPermission which grants ConfigureAgent and PostAgent permissions. For more information, see Resource-based policies in CodeGuru Profiler in the Amazon CodeGuru Profiler User Guide, ConfigureAgent , and PostAgentProfile . + */ + removePermission(params: CodeGuruProfiler.Types.RemovePermissionRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.RemovePermissionResponse) => void): Request; + /** + * Removes permissions from a profiling group's resource-based policy that are provided using an action group. The one supported action group that can be removed is agentPermission which grants ConfigureAgent and PostAgent permissions. For more information, see Resource-based policies in CodeGuru Profiler in the Amazon CodeGuru Profiler User Guide, ConfigureAgent , and PostAgentProfile . + */ + removePermission(callback?: (err: AWSError, data: CodeGuruProfiler.Types.RemovePermissionResponse) => void): Request; + /** + * Sends feedback to CodeGuru Profiler about whether the anomaly detected by the analysis is useful or not. + */ + submitFeedback(params: CodeGuruProfiler.Types.SubmitFeedbackRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.SubmitFeedbackResponse) => void): Request; + /** + * Sends feedback to CodeGuru Profiler about whether the anomaly detected by the analysis is useful or not. + */ + submitFeedback(callback?: (err: AWSError, data: CodeGuruProfiler.Types.SubmitFeedbackResponse) => void): Request; + /** + * Use to assign one or more tags to a resource. + */ + tagResource(params: CodeGuruProfiler.Types.TagResourceRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.TagResourceResponse) => void): Request; + /** + * Use to assign one or more tags to a resource. + */ + tagResource(callback?: (err: AWSError, data: CodeGuruProfiler.Types.TagResourceResponse) => void): Request; + /** + * Use to remove one or more tags from a resource. + */ + untagResource(params: CodeGuruProfiler.Types.UntagResourceRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.UntagResourceResponse) => void): Request; + /** + * Use to remove one or more tags from a resource. + */ + untagResource(callback?: (err: AWSError, data: CodeGuruProfiler.Types.UntagResourceResponse) => void): Request; + /** + * Updates a profiling group. + */ + updateProfilingGroup(params: CodeGuruProfiler.Types.UpdateProfilingGroupRequest, callback?: (err: AWSError, data: CodeGuruProfiler.Types.UpdateProfilingGroupResponse) => void): Request; + /** + * Updates a profiling group. + */ + updateProfilingGroup(callback?: (err: AWSError, data: CodeGuruProfiler.Types.UpdateProfilingGroupResponse) => void): Request; +} +declare namespace CodeGuruProfiler { + export type ActionGroup = "agentPermissions"|string; + export interface AddNotificationChannelsRequest { + /** + * One or 2 channels to report to when anomalies are detected. + */ + channels: Channels; + /** + * The name of the profiling group that we are setting up notifications for. + */ + profilingGroupName: ProfilingGroupName; + } + export interface AddNotificationChannelsResponse { + /** + * The new notification configuration for this profiling group. + */ + notificationConfiguration?: NotificationConfiguration; + } + export interface AgentConfiguration { + /** + * Parameters used by the profiler. The valid parameters are: MaxStackDepth - The maximum depth of the stacks in the code that is represented in the profile. For example, if CodeGuru Profiler finds a method A, which calls method B, which calls method C, which calls method D, then the depth is 4. If the maxDepth is set to 2, then the profiler evaluates A and B. MemoryUsageLimitPercent - The percentage of memory that is used by the profiler. MinimumTimeForReportingInMilliseconds - The minimum time in milliseconds between sending reports. ReportingIntervalInMilliseconds - The reporting interval in milliseconds used to report profiles. SamplingIntervalInMilliseconds - The sampling interval in milliseconds that is used to profile samples. + */ + agentParameters?: AgentParameters; + /** + * How long a profiling agent should send profiling data using ConfigureAgent . For example, if this is set to 300, the profiling agent calls ConfigureAgent every 5 minutes to submit the profiled data collected during that period. + */ + periodInSeconds: Integer; + /** + * A Boolean that specifies whether the profiling agent collects profiling data or not. Set to true to enable profiling. + */ + shouldProfile: Boolean; + } + export interface AgentOrchestrationConfig { + /** + * A Boolean that specifies whether the profiling agent collects profiling data or not. Set to true to enable profiling. + */ + profilingEnabled: Boolean; + } + export type AgentParameterField = "SamplingIntervalInMilliseconds"|"ReportingIntervalInMilliseconds"|"MinimumTimeForReportingInMilliseconds"|"MemoryUsageLimitPercent"|"MaxStackDepth"|string; + export type AgentParameters = {[key: string]: String}; + export type AgentProfile = Buffer|Uint8Array|Blob|string; + export type AggregatedProfile = Buffer|Uint8Array|Blob|string; + export interface AggregatedProfileTime { + /** + * The aggregation period. This indicates the period during which an aggregation profile collects posted agent profiles for a profiling group. Use one of three valid durations that are specified using the ISO 8601 format. P1D — 1 day PT1H — 1 hour PT5M — 5 minutes + */ + period?: AggregationPeriod; + /** + * The time that aggregation of posted agent profiles for a profiling group starts. The aggregation profile contains profiles posted by the agent starting at this time for an aggregation period specified by the period property of the AggregatedProfileTime object. Specify start using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + start?: Timestamp; + } + export type AggregationPeriod = "PT5M"|"PT1H"|"P1D"|string; + export type Anomalies = Anomaly[]; + export interface Anomaly { + /** + * A list of the instances of the detected anomalies during the requested period. + */ + instances: AnomalyInstances; + /** + * Details about the metric that the analysis used when it detected the anomaly. The metric includes the name of the frame that was analyzed with the type and thread states used to derive the metric value for that frame. + */ + metric: Metric; + /** + * The reason for which metric was flagged as anomalous. + */ + reason: String; + } + export interface AnomalyInstance { + /** + * The end time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + endTime?: Timestamp; + /** + * The universally unique identifier (UUID) of an instance of an anomaly in a metric. + */ + id: String; + /** + * The start time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + startTime: Timestamp; + /** + * Feedback type on a specific instance of anomaly submitted by the user. + */ + userFeedback?: UserFeedback; + } + export type AnomalyInstanceId = string; + export type AnomalyInstances = AnomalyInstance[]; + export interface BatchGetFrameMetricDataRequest { + /** + * The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + endTime?: Timestamp; + /** + * The details of the metrics that are used to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame. + */ + frameMetrics?: FrameMetrics; + /** + * The duration of the frame metrics used to return the time series values. Specify using the ISO 8601 format. The maximum period duration is one day (PT24H or P1D). + */ + period?: Period; + /** + * The name of the profiling group associated with the the frame metrics used to return the time series values. + */ + profilingGroupName: ProfilingGroupName; + /** + * The start time of the time period for the frame metrics used to return the time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + startTime?: Timestamp; + /** + * The requested resolution of time steps for the returned time series of values. If the requested target resolution is not available due to data not being retained we provide a best effort result by falling back to the most granular available resolution after the target resolution. There are 3 valid values. P1D — 1 day PT1H — 1 hour PT5M — 5 minutes + */ + targetResolution?: AggregationPeriod; + } + export interface BatchGetFrameMetricDataResponse { + /** + * The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + endTime: Timestamp; + /** + * List of instances, or time steps, in the time series. For example, if the period is one day (PT24H)), and the resolution is five minutes (PT5M), then there are 288 endTimes in the list that are each five minutes appart. + */ + endTimes: ListOfTimestamps; + /** + * Details of the metrics to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread states to use to get the count for the metric value of the frame. + */ + frameMetricData: FrameMetricData; + /** + * Resolution or granularity of the profile data used to generate the time series. This is the value used to jump through time steps in a time series. There are 3 valid values. P1D — 1 day PT1H — 1 hour PT5M — 5 minutes + */ + resolution: AggregationPeriod; + /** + * The start time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + startTime: Timestamp; + /** + * List of instances which remained unprocessed. This will create a missing time step in the list of end times. + */ + unprocessedEndTimes: UnprocessedEndTimeMap; + } + export type Boolean = boolean; + export interface Channel { + /** + * List of publishers for different type of events that may be detected in an application from the profile. Anomaly detection is the only event publisher in Profiler. + */ + eventPublishers: EventPublishers; + /** + * Unique identifier for each Channel in the notification configuration of a Profiling Group. A random UUID for channelId is used when adding a channel to the notification configuration if not specified in the request. + */ + id?: ChannelId; + /** + * Unique arn of the resource to be used for notifications. We support a valid SNS topic arn as a channel uri. + */ + uri: ChannelUri; + } + export type ChannelId = string; + export type ChannelUri = string; + export type Channels = Channel[]; + export type ClientToken = string; + export type ComputePlatform = "Default"|"AWSLambda"|string; + export interface ConfigureAgentRequest { + /** + * A universally unique identifier (UUID) for a profiling instance. For example, if the profiling instance is an Amazon EC2 instance, it is the instance ID. If it is an AWS Fargate container, it is the container's task ID. + */ + fleetInstanceId?: FleetInstanceId; + /** + * Metadata captured about the compute platform the agent is running on. It includes information about sampling and reporting. The valid fields are: COMPUTE_PLATFORM - The compute platform on which the agent is running AGENT_ID - The ID for an agent instance. AWS_REQUEST_ID - The AWS request ID of a Lambda invocation. EXECUTION_ENVIRONMENT - The execution environment a Lambda function is running on. LAMBDA_FUNCTION_ARN - The Amazon Resource Name (ARN) that is used to invoke a Lambda function. LAMBDA_MEMORY_LIMIT_IN_MB - The memory allocated to a Lambda function. LAMBDA_REMAINING_TIME_IN_MILLISECONDS - The time in milliseconds before execution of a Lambda function times out. LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS - The time in milliseconds between two invocations of a Lambda function. LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS - The time in milliseconds for the previous Lambda invocation. + */ + metadata?: Metadata; + /** + * The name of the profiling group for which the configured agent is collecting profiling data. + */ + profilingGroupName: ProfilingGroupName; + } + export interface ConfigureAgentResponse { + /** + * An AgentConfiguration object that specifies if an agent profiles or not and for how long to return profiling data. + */ + configuration: AgentConfiguration; + } + export interface CreateProfilingGroupRequest { + /** + * Specifies whether profiling is enabled or disabled for the created profiling group. + */ + agentOrchestrationConfig?: AgentOrchestrationConfig; + /** + * Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to prevent the accidental creation of duplicate profiling groups if there are failures and retries. + */ + clientToken: ClientToken; + /** + * The compute platform of the profiling group. Use AWSLambda if your application runs on AWS Lambda. Use Default if your application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. If not specified, Default is used. + */ + computePlatform?: ComputePlatform; + /** + * The name of the profiling group to create. + */ + profilingGroupName: ProfilingGroupName; + /** + * A list of tags to add to the created profiling group. + */ + tags?: TagsMap; + } + export interface CreateProfilingGroupResponse { + /** + * The returned ProfilingGroupDescription object that contains information about the created profiling group. + */ + profilingGroup: ProfilingGroupDescription; + } + export interface DeleteProfilingGroupRequest { + /** + * The name of the profiling group to delete. + */ + profilingGroupName: ProfilingGroupName; + } + export interface DeleteProfilingGroupResponse { + } + export interface DescribeProfilingGroupRequest { + /** + * The name of the profiling group to get information about. + */ + profilingGroupName: ProfilingGroupName; + } + export interface DescribeProfilingGroupResponse { + /** + * The returned ProfilingGroupDescription object that contains information about the requested profiling group. + */ + profilingGroup: ProfilingGroupDescription; + } + export type Double = number; + export type EventPublisher = "AnomalyDetection"|string; + export type EventPublishers = EventPublisher[]; + export type FeedbackType = "Positive"|"Negative"|string; + export type FindingsReportId = string; + export type FindingsReportSummaries = FindingsReportSummary[]; + export interface FindingsReportSummary { + /** + * The universally unique identifier (UUID) of the recommendation report. + */ + id?: FindingsReportId; + /** + * The end time of the period during which the metric is flagged as anomalous. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + profileEndTime?: Timestamp; + /** + * The start time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + profileStartTime?: Timestamp; + /** + * The name of the profiling group that is associated with the analysis data. + */ + profilingGroupName?: String; + /** + * The total number of different recommendations that were found by the analysis. + */ + totalNumberOfFindings?: Integer; + } + export type FleetInstanceId = string; + export interface FrameMetric { + /** + * Name of the method common across the multiple occurrences of a frame in an application profile. + */ + frameName: String; + /** + * List of application runtime thread states used to get the counts for a frame a derive a metric value. + */ + threadStates: ThreadStates; + /** + * A type of aggregation that specifies how a metric for a frame is analyzed. The supported value AggregatedRelativeTotalTime is an aggregation of the metric value for one frame that is calculated across the occurrences of all frames in a profile. + */ + type: MetricType; + } + export type FrameMetricData = FrameMetricDatum[]; + export interface FrameMetricDatum { + frameMetric: FrameMetric; + /** + * A list of values that are associated with a frame metric. + */ + values: FrameMetricValues; + } + export type FrameMetricValue = number; + export type FrameMetricValues = FrameMetricValue[]; + export type FrameMetrics = FrameMetric[]; + export interface GetFindingsReportAccountSummaryRequest { + /** + * A Boolean value indicating whether to only return reports from daily profiles. If set to True, only analysis data from daily profiles is returned. If set to False, analysis data is returned from smaller time windows (for example, one hour). + */ + dailyReportsOnly?: Boolean; + /** + * The maximum number of results returned by GetFindingsReportAccountSummary in paginated output. When this parameter is used, GetFindingsReportAccountSummary only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another GetFindingsReportAccountSummary request with the returned nextToken value. + */ + maxResults?: MaxResults; + /** + * The nextToken value returned from a previous paginated GetFindingsReportAccountSummary request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: PaginationToken; + } + export interface GetFindingsReportAccountSummaryResponse { + /** + * The nextToken value to include in a future GetFindingsReportAccountSummary request. When the results of a GetFindingsReportAccountSummary request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: PaginationToken; + /** + * The return list of FindingsReportSummary objects taht contain summaries of analysis results for all profiling groups in your AWS account. + */ + reportSummaries: FindingsReportSummaries; + } + export interface GetNotificationConfigurationRequest { + /** + * The name of the profiling group we want to get the notification configuration for. + */ + profilingGroupName: ProfilingGroupName; + } + export interface GetNotificationConfigurationResponse { + /** + * The current notification configuration for this profiling group. + */ + notificationConfiguration: NotificationConfiguration; + } + export interface GetPolicyRequest { + /** + * The name of the profiling group. + */ + profilingGroupName: ProfilingGroupName; + } + export interface GetPolicyResponse { + /** + * The JSON-formatted resource-based policy attached to the ProfilingGroup. + */ + policy: String; + /** + * A unique identifier for the current revision of the returned policy. + */ + revisionId: RevisionId; + } + export interface GetProfileRequest { + /** + * The format of the returned profiling data. The format maps to the Accept and Content-Type headers of the HTTP request. You can specify one of the following: or the default . <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul> + */ + accept?: String; + /** + * The end time of the requested profile. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. If you specify endTime, then you must also specify period or startTime, but not both. + */ + endTime?: Timestamp; + /** + * The maximum depth of the stacks in the code that is represented in the aggregated profile. For example, if CodeGuru Profiler finds a method A, which calls method B, which calls method C, which calls method D, then the depth is 4. If the maxDepth is set to 2, then the aggregated profile contains representations of methods A and B. + */ + maxDepth?: MaxDepth; + /** + * Used with startTime or endTime to specify the time range for the returned aggregated profile. Specify using the ISO 8601 format. For example, P1DT1H1M1S. <p> To get the latest aggregated profile, specify only <code>period</code>. </p> + */ + period?: Period; + /** + * The name of the profiling group to get. + */ + profilingGroupName: ProfilingGroupName; + /** + * The start time of the profile to get. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. <p> If you specify <code>startTime</code>, then you must also specify <code>period</code> or <code>endTime</code>, but not both. </p> + */ + startTime?: Timestamp; + } + export interface GetProfileResponse { + /** + * The content encoding of the profile. + */ + contentEncoding?: String; + /** + * The content type of the profile in the payload. It is either application/json or the default application/x-amzn-ion. + */ + contentType: String; + /** + * Information about the profile. + */ + profile: AggregatedProfile; + } + export interface GetRecommendationsRequest { + /** + * The start time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + endTime: Timestamp; + /** + * The language used to provide analysis. Specify using a string that is one of the following BCP 47 language codes. de-DE - German, Germany en-GB - English, United Kingdom en-US - English, United States es-ES - Spanish, Spain fr-FR - French, France it-IT - Italian, Italy ja-JP - Japanese, Japan ko-KR - Korean, Republic of Korea pt-BR - Portugese, Brazil zh-CN - Chinese, China zh-TW - Chinese, Taiwan + */ + locale?: Locale; + /** + * The name of the profiling group to get analysis data about. + */ + profilingGroupName: ProfilingGroupName; + /** + * The end time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + startTime: Timestamp; + } + export interface GetRecommendationsResponse { + /** + * The list of anomalies that the analysis has found for this profile. + */ + anomalies: Anomalies; + /** + * The end time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + profileEndTime: Timestamp; + /** + * The start time of the profile the analysis data is about. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + profileStartTime: Timestamp; + /** + * The name of the profiling group the analysis data is about. + */ + profilingGroupName: ProfilingGroupName; + /** + * The list of recommendations that the analysis found for this profile. + */ + recommendations: Recommendations; + } + export type Integer = number; + export interface ListFindingsReportsRequest { + /** + * A Boolean value indicating whether to only return reports from daily profiles. If set to True, only analysis data from daily profiles is returned. If set to False, analysis data is returned from smaller time windows (for example, one hour). + */ + dailyReportsOnly?: Boolean; + /** + * The end time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + endTime: Timestamp; + /** + * The maximum number of report results returned by ListFindingsReports in paginated output. When this parameter is used, ListFindingsReports only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListFindingsReports request with the returned nextToken value. + */ + maxResults?: MaxResults; + /** + * The nextToken value returned from a previous paginated ListFindingsReportsRequest request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: PaginationToken; + /** + * The name of the profiling group from which to search for analysis data. + */ + profilingGroupName: ProfilingGroupName; + /** + * The start time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + startTime: Timestamp; + } + export interface ListFindingsReportsResponse { + /** + * The list of analysis results summaries. + */ + findingsReportSummaries: FindingsReportSummaries; + /** + * The nextToken value to include in a future ListFindingsReports request. When the results of a ListFindingsReports request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: PaginationToken; + } + export type ListOfTimestamps = TimestampStructure[]; + export interface ListProfileTimesRequest { + /** + * The end time of the time range from which to list the profiles. + */ + endTime: Timestamp; + /** + * The maximum number of profile time results returned by ListProfileTimes in paginated output. When this parameter is used, ListProfileTimes only returns maxResults results in a single page with a nextToken response element. The remaining results of the initial request can be seen by sending another ListProfileTimes request with the returned nextToken value. + */ + maxResults?: MaxResults; + /** + * The nextToken value returned from a previous paginated ListProfileTimes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: PaginationToken; + /** + * The order (ascending or descending by start time of the profile) to use when listing profiles. Defaults to TIMESTAMP_DESCENDING. + */ + orderBy?: OrderBy; + /** + * The aggregation period. This specifies the period during which an aggregation profile collects posted agent profiles for a profiling group. There are 3 valid values. P1D — 1 day PT1H — 1 hour PT5M — 5 minutes + */ + period: AggregationPeriod; + /** + * The name of the profiling group. + */ + profilingGroupName: ProfilingGroupName; + /** + * The start time of the time range from which to list the profiles. + */ + startTime: Timestamp; + } + export interface ListProfileTimesResponse { + /** + * The nextToken value to include in a future ListProfileTimes request. When the results of a ListProfileTimes request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: PaginationToken; + /** + * The list of start times of the available profiles for the aggregation period in the specified time range. + */ + profileTimes: ProfileTimes; + } + export interface ListProfilingGroupsRequest { + /** + * A Boolean value indicating whether to include a description. If true, then a list of ProfilingGroupDescription objects that contain detailed information about profiling groups is returned. If false, then a list of profiling group names is returned. + */ + includeDescription?: Boolean; + /** + * The maximum number of profiling groups results returned by ListProfilingGroups in paginated output. When this parameter is used, ListProfilingGroups only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListProfilingGroups request with the returned nextToken value. + */ + maxResults?: MaxResults; + /** + * The nextToken value returned from a previous paginated ListProfilingGroups request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + */ + nextToken?: PaginationToken; + } + export interface ListProfilingGroupsResponse { + /** + * The nextToken value to include in a future ListProfilingGroups request. When the results of a ListProfilingGroups request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + nextToken?: PaginationToken; + /** + * A returned list of profiling group names. A list of the names is returned only if includeDescription is false, otherwise a list of ProfilingGroupDescription objects is returned. + */ + profilingGroupNames: ProfilingGroupNames; + /** + * A returned list ProfilingGroupDescription objects. A list of ProfilingGroupDescription objects is returned only if includeDescription is true, otherwise a list of profiling group names is returned. + */ + profilingGroups?: ProfilingGroupDescriptions; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that contains the tags to return. + */ + resourceArn: ProfilingGroupArn; + } + export interface ListTagsForResourceResponse { + /** + * The list of tags assigned to the specified resource. This is the list of tags returned in the response. + */ + tags?: TagsMap; + } + export type Locale = string; + export interface Match { + /** + * The location in the profiling graph that contains a recommendation found during analysis. + */ + frameAddress?: String; + /** + * The target frame that triggered a match. + */ + targetFramesIndex?: Integer; + /** + * The value in the profile data that exceeded the recommendation threshold. + */ + thresholdBreachValue?: Double; + } + export type Matches = Match[]; + export type MaxDepth = number; + export type MaxResults = number; + export type Metadata = {[key: string]: String}; + export type MetadataField = "ComputePlatform"|"AgentId"|"AwsRequestId"|"ExecutionEnvironment"|"LambdaFunctionArn"|"LambdaMemoryLimitInMB"|"LambdaRemainingTimeInMilliseconds"|"LambdaTimeGapBetweenInvokesInMilliseconds"|"LambdaPreviousExecutionTimeInMilliseconds"|string; + export interface Metric { + /** + * The name of the method that appears as a frame in any stack in a profile. + */ + frameName: String; + /** + * The list of application runtime thread states that is used to calculate the metric value for the frame. + */ + threadStates: Strings; + /** + * A type that specifies how a metric for a frame is analyzed. The supported value AggregatedRelativeTotalTime is an aggregation of the metric value for one frame that is calculated across the occurences of all frames in a profile. + */ + type: MetricType; + } + export type MetricType = "AggregatedRelativeTotalTime"|string; + export interface NotificationConfiguration { + /** + * List of up to two channels to be used for sending notifications for events detected from the application profile. + */ + channels?: Channels; + } + export type OrderBy = "TimestampDescending"|"TimestampAscending"|string; + export type PaginationToken = string; + export interface Pattern { + /** + * A list of the different counters used to determine if there is a match. + */ + countersToAggregate?: Strings; + /** + * The description of the recommendation. This explains a potential inefficiency in a profiled application. + */ + description?: String; + /** + * The universally unique identifier (UUID) of this pattern. + */ + id?: String; + /** + * The name for this pattern. + */ + name?: String; + /** + * A string that contains the steps recommended to address the potential inefficiency. + */ + resolutionSteps?: String; + /** + * A list of frame names that were searched during the analysis that generated a recommendation. + */ + targetFrames?: TargetFrames; + /** + * The percentage of time an application spends in one method that triggers a recommendation. The percentage of time is the same as the percentage of the total gathered sample counts during analysis. + */ + thresholdPercent?: Percentage; + } + export type Percentage = number; + export type Period = string; + export interface PostAgentProfileRequest { + /** + * The submitted profiling data. + */ + agentProfile: AgentProfile; + /** + * The format of the submitted profiling data. The format maps to the Accept and Content-Type headers of the HTTP request. You can specify one of the following: or the default . <ul> <li> <p> <code>application/json</code> — standard JSON format </p> </li> <li> <p> <code>application/x-amzn-ion</code> — the Amazon Ion data format. For more information, see <a href="http://amzn.github.io/ion-docs/">Amazon Ion</a>. </p> </li> </ul> + */ + contentType: String; + /** + * Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to prevent the accidental submission of duplicate profiling data if there are failures and retries. + */ + profileToken?: ClientToken; + /** + * The name of the profiling group with the aggregated profile that receives the submitted profiling data. + */ + profilingGroupName: ProfilingGroupName; + } + export interface PostAgentProfileResponse { + } + export type Principal = string; + export type Principals = Principal[]; + export interface ProfileTime { + /** + * The start time of a profile. It is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + start?: Timestamp; + } + export type ProfileTimes = ProfileTime[]; + export type ProfilingGroupArn = string; + export interface ProfilingGroupDescription { + /** + * An AgentOrchestrationConfig object that indicates if the profiling group is enabled for profiled or not. + */ + agentOrchestrationConfig?: AgentOrchestrationConfig; + /** + * The Amazon Resource Name (ARN) identifying the profiling group resource. + */ + arn?: ProfilingGroupArn; + /** + * The compute platform of the profiling group. If it is set to AWSLambda, then the profiled application runs on AWS Lambda. If it is set to Default, then the profiled application runs on a compute platform that is not AWS Lambda, such an Amazon EC2 instance, an on-premises server, or a different platform. The default is Default. + */ + computePlatform?: ComputePlatform; + /** + * The time when the profiling group was created. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + createdAt?: Timestamp; + /** + * The name of the profiling group. + */ + name?: ProfilingGroupName; + /** + * A ProfilingStatus object that includes information about the last time a profile agent pinged back, the last time a profile was received, and the aggregation period and start time for the most recent aggregated profile. + */ + profilingStatus?: ProfilingStatus; + /** + * A list of the tags that belong to this profiling group. + */ + tags?: TagsMap; + /** + * The date and time when the profiling group was last updated. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + updatedAt?: Timestamp; + } + export type ProfilingGroupDescriptions = ProfilingGroupDescription[]; + export type ProfilingGroupName = string; + export type ProfilingGroupNames = ProfilingGroupName[]; + export interface ProfilingStatus { + /** + * The date and time when the profiling agent most recently pinged back. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + latestAgentOrchestratedAt?: Timestamp; + /** + * The date and time when the most recent profile was received. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + latestAgentProfileReportedAt?: Timestamp; + /** + * An AggregatedProfileTime object that contains the aggregation period and start time for an aggregated profile. + */ + latestAggregatedProfile?: AggregatedProfileTime; + } + export interface PutPermissionRequest { + /** + * Specifies an action group that contains permissions to add to a profiling group resource. One action group is supported, agentPermissions, which grants permission to perform actions required by the profiling agent, ConfigureAgent and PostAgentProfile permissions. + */ + actionGroup: ActionGroup; + /** + * A list ARNs for the roles and users you want to grant access to the profiling group. Wildcards are not are supported in the ARNs. + */ + principals: Principals; + /** + * The name of the profiling group to grant access to. + */ + profilingGroupName: ProfilingGroupName; + /** + * A universally unique identifier (UUID) for the revision of the policy you are adding to the profiling group. Do not specify this when you add permissions to a profiling group for the first time. If a policy already exists on the profiling group, you must specify the revisionId. + */ + revisionId?: RevisionId; + } + export interface PutPermissionResponse { + /** + * The JSON-formatted resource-based policy on the profiling group that includes the added permissions. + */ + policy: String; + /** + * A universally unique identifier (UUID) for the revision of the resource-based policy that includes the added permissions. The JSON-formatted policy is in the policy element of the response. + */ + revisionId: RevisionId; + } + export interface Recommendation { + /** + * How many different places in the profile graph triggered a match. + */ + allMatchesCount: Integer; + /** + * How much of the total sample count is potentially affected. + */ + allMatchesSum: Double; + /** + * End time of the profile that was used by this analysis. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + endTime: Timestamp; + /** + * The pattern that analysis recognized in the profile to make this recommendation. + */ + pattern: Pattern; + /** + * The start time of the profile that was used by this analysis. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + startTime: Timestamp; + /** + * List of the matches with most impact. + */ + topMatches: Matches; + } + export type Recommendations = Recommendation[]; + export interface RemoveNotificationChannelRequest { + /** + * The id of the channel that we want to stop receiving notifications. + */ + channelId: ChannelId; + /** + * The name of the profiling group we want to change notification configuration for. + */ + profilingGroupName: ProfilingGroupName; + } + export interface RemoveNotificationChannelResponse { + /** + * The new notification configuration for this profiling group. + */ + notificationConfiguration?: NotificationConfiguration; + } + export interface RemovePermissionRequest { + /** + * Specifies an action group that contains the permissions to remove from a profiling group's resource-based policy. One action group is supported, agentPermissions, which grants ConfigureAgent and PostAgentProfile permissions. + */ + actionGroup: ActionGroup; + /** + * The name of the profiling group. + */ + profilingGroupName: ProfilingGroupName; + /** + * A universally unique identifier (UUID) for the revision of the resource-based policy from which you want to remove permissions. + */ + revisionId: RevisionId; + } + export interface RemovePermissionResponse { + /** + * The JSON-formatted resource-based policy on the profiling group after the specified permissions were removed. + */ + policy: String; + /** + * A universally unique identifier (UUID) for the revision of the resource-based policy after the specified permissions were removed. The updated JSON-formatted policy is in the policy element of the response. + */ + revisionId: RevisionId; + } + export type RevisionId = string; + export type String = string; + export type Strings = String[]; + export interface SubmitFeedbackRequest { + /** + * The universally unique identifier (UUID) of the AnomalyInstance object that is included in the analysis data. + */ + anomalyInstanceId: AnomalyInstanceId; + /** + * Optional feedback about this anomaly. + */ + comment?: String; + /** + * The name of the profiling group that is associated with the analysis data. + */ + profilingGroupName: ProfilingGroupName; + /** + * The feedback tpye. Thee are two valid values, Positive and Negative. + */ + type: FeedbackType; + } + export interface SubmitFeedbackResponse { + } + export type TagKeys = String[]; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that the tags are added to. + */ + resourceArn: ProfilingGroupArn; + /** + * The list of tags that are added to the specified resource. + */ + tags: TagsMap; + } + export interface TagResourceResponse { + } + export type TagsMap = {[key: string]: String}; + export type TargetFrame = String[]; + export type TargetFrames = TargetFrame[]; + export type ThreadStates = String[]; + export type Timestamp = Date; + export interface TimestampStructure { + /** + * A Timestamp. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. + */ + value: Timestamp; + } + export type UnprocessedEndTimeMap = {[key: string]: ListOfTimestamps}; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the resource that contains the tags to remove. + */ + resourceArn: ProfilingGroupArn; + /** + * A list of tag keys. Existing tags of resources with keys in this list are removed from the specified resource. + */ + tagKeys: TagKeys; + } + export interface UntagResourceResponse { + } + export interface UpdateProfilingGroupRequest { + /** + * Specifies whether profiling is enabled or disabled for a profiling group. + */ + agentOrchestrationConfig: AgentOrchestrationConfig; + /** + * The name of the profiling group to update. + */ + profilingGroupName: ProfilingGroupName; + } + export interface UpdateProfilingGroupResponse { + /** + * A ProfilingGroupDescription that contains information about the returned updated profiling group. + */ + profilingGroup: ProfilingGroupDescription; + } + export interface UserFeedback { + /** + * Optional Positive or Negative feedback submitted by the user about whether the recommendation is useful or not. + */ + type: FeedbackType; + } + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2019-07-18"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CodeGuruProfiler client. + */ + export import Types = CodeGuruProfiler; +} +export = CodeGuruProfiler; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codeguruprofiler.js b/justdanceonline-main/node_modules/aws-sdk/clients/codeguruprofiler.js new file mode 100644 index 0000000000000000000000000000000000000000..efbb536aec57015562b13a14128763122dbf0bf3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codeguruprofiler.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['codeguruprofiler'] = {}; +AWS.CodeGuruProfiler = Service.defineService('codeguruprofiler', ['2019-07-18']); +Object.defineProperty(apiLoader.services['codeguruprofiler'], '2019-07-18', { + get: function get() { + var model = require('../apis/codeguruprofiler-2019-07-18.min.json'); + model.paginators = require('../apis/codeguruprofiler-2019-07-18.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CodeGuruProfiler; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codegurureviewer.d.ts b/justdanceonline-main/node_modules/aws-sdk/clients/codegurureviewer.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d63d69ffac7cbaf193d4ec4d3efe956014f2a316 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codegurureviewer.d.ts @@ -0,0 +1,829 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config-base'; +interface Blob {} +declare class CodeGuruReviewer extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: CodeGuruReviewer.Types.ClientConfiguration) + config: Config & CodeGuruReviewer.Types.ClientConfiguration; + /** + * Use to associate an AWS CodeCommit repository or a repostory managed by AWS CodeStar Connections with Amazon CodeGuru Reviewer. When you associate a repository, CodeGuru Reviewer reviews source code changes in the repository's pull requests and provides automatic recommendations. You can view recommendations using the CodeGuru Reviewer console. For more information, see Recommendations in Amazon CodeGuru Reviewer in the Amazon CodeGuru Reviewer User Guide. If you associate a CodeCommit repository, it must be in the same AWS Region and AWS account where its CodeGuru Reviewer code reviews are configured. Bitbucket and GitHub Enterprise Server repositories are managed by AWS CodeStar Connections to connect to CodeGuru Reviewer. For more information, see Associate a repository in the Amazon CodeGuru Reviewer User Guide. You cannot use the CodeGuru Reviewer SDK or the AWS CLI to associate a GitHub repository with Amazon CodeGuru Reviewer. To associate a GitHub repository, use the console. For more information, see Getting started with CodeGuru Reviewer in the CodeGuru Reviewer User Guide. + */ + associateRepository(params: CodeGuruReviewer.Types.AssociateRepositoryRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.AssociateRepositoryResponse) => void): Request; + /** + * Use to associate an AWS CodeCommit repository or a repostory managed by AWS CodeStar Connections with Amazon CodeGuru Reviewer. When you associate a repository, CodeGuru Reviewer reviews source code changes in the repository's pull requests and provides automatic recommendations. You can view recommendations using the CodeGuru Reviewer console. For more information, see Recommendations in Amazon CodeGuru Reviewer in the Amazon CodeGuru Reviewer User Guide. If you associate a CodeCommit repository, it must be in the same AWS Region and AWS account where its CodeGuru Reviewer code reviews are configured. Bitbucket and GitHub Enterprise Server repositories are managed by AWS CodeStar Connections to connect to CodeGuru Reviewer. For more information, see Associate a repository in the Amazon CodeGuru Reviewer User Guide. You cannot use the CodeGuru Reviewer SDK or the AWS CLI to associate a GitHub repository with Amazon CodeGuru Reviewer. To associate a GitHub repository, use the console. For more information, see Getting started with CodeGuru Reviewer in the CodeGuru Reviewer User Guide. + */ + associateRepository(callback?: (err: AWSError, data: CodeGuruReviewer.Types.AssociateRepositoryResponse) => void): Request; + /** + * Use to create a code review with a CodeReviewType of RepositoryAnalysis. This type of code review analyzes all code under a specified branch in an associated repository. PullRequest code reviews are automatically triggered by a pull request so cannot be created using this method. + */ + createCodeReview(params: CodeGuruReviewer.Types.CreateCodeReviewRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.CreateCodeReviewResponse) => void): Request; + /** + * Use to create a code review with a CodeReviewType of RepositoryAnalysis. This type of code review analyzes all code under a specified branch in an associated repository. PullRequest code reviews are automatically triggered by a pull request so cannot be created using this method. + */ + createCodeReview(callback?: (err: AWSError, data: CodeGuruReviewer.Types.CreateCodeReviewResponse) => void): Request; + /** + * Returns the metadata associated with the code review along with its status. + */ + describeCodeReview(params: CodeGuruReviewer.Types.DescribeCodeReviewRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.DescribeCodeReviewResponse) => void): Request; + /** + * Returns the metadata associated with the code review along with its status. + */ + describeCodeReview(callback?: (err: AWSError, data: CodeGuruReviewer.Types.DescribeCodeReviewResponse) => void): Request; + /** + * Describes the customer feedback for a CodeGuru Reviewer recommendation. + */ + describeRecommendationFeedback(params: CodeGuruReviewer.Types.DescribeRecommendationFeedbackRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.DescribeRecommendationFeedbackResponse) => void): Request; + /** + * Describes the customer feedback for a CodeGuru Reviewer recommendation. + */ + describeRecommendationFeedback(callback?: (err: AWSError, data: CodeGuruReviewer.Types.DescribeRecommendationFeedbackResponse) => void): Request; + /** + * Returns a RepositoryAssociation object that contains information about the requested repository association. + */ + describeRepositoryAssociation(params: CodeGuruReviewer.Types.DescribeRepositoryAssociationRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.DescribeRepositoryAssociationResponse) => void): Request; + /** + * Returns a RepositoryAssociation object that contains information about the requested repository association. + */ + describeRepositoryAssociation(callback?: (err: AWSError, data: CodeGuruReviewer.Types.DescribeRepositoryAssociationResponse) => void): Request; + /** + * Removes the association between Amazon CodeGuru Reviewer and a repository. + */ + disassociateRepository(params: CodeGuruReviewer.Types.DisassociateRepositoryRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.DisassociateRepositoryResponse) => void): Request; + /** + * Removes the association between Amazon CodeGuru Reviewer and a repository. + */ + disassociateRepository(callback?: (err: AWSError, data: CodeGuruReviewer.Types.DisassociateRepositoryResponse) => void): Request; + /** + * Lists all the code reviews that the customer has created in the past 90 days. + */ + listCodeReviews(params: CodeGuruReviewer.Types.ListCodeReviewsRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListCodeReviewsResponse) => void): Request; + /** + * Lists all the code reviews that the customer has created in the past 90 days. + */ + listCodeReviews(callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListCodeReviewsResponse) => void): Request; + /** + * Returns a list of RecommendationFeedbackSummary objects that contain customer recommendation feedback for all CodeGuru Reviewer users. + */ + listRecommendationFeedback(params: CodeGuruReviewer.Types.ListRecommendationFeedbackRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListRecommendationFeedbackResponse) => void): Request; + /** + * Returns a list of RecommendationFeedbackSummary objects that contain customer recommendation feedback for all CodeGuru Reviewer users. + */ + listRecommendationFeedback(callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListRecommendationFeedbackResponse) => void): Request; + /** + * Returns the list of all recommendations for a completed code review. + */ + listRecommendations(params: CodeGuruReviewer.Types.ListRecommendationsRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListRecommendationsResponse) => void): Request; + /** + * Returns the list of all recommendations for a completed code review. + */ + listRecommendations(callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListRecommendationsResponse) => void): Request; + /** + * Returns a list of RepositoryAssociationSummary objects that contain summary information about a repository association. You can filter the returned list by ProviderType , Name , State , and Owner . + */ + listRepositoryAssociations(params: CodeGuruReviewer.Types.ListRepositoryAssociationsRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListRepositoryAssociationsResponse) => void): Request; + /** + * Returns a list of RepositoryAssociationSummary objects that contain summary information about a repository association. You can filter the returned list by ProviderType , Name , State , and Owner . + */ + listRepositoryAssociations(callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListRepositoryAssociationsResponse) => void): Request; + /** + * Returns the list of tags associated with an associated repository resource. + */ + listTagsForResource(params: CodeGuruReviewer.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListTagsForResourceResponse) => void): Request; + /** + * Returns the list of tags associated with an associated repository resource. + */ + listTagsForResource(callback?: (err: AWSError, data: CodeGuruReviewer.Types.ListTagsForResourceResponse) => void): Request; + /** + * Stores customer feedback for a CodeGuru Reviewer recommendation. When this API is called again with different reactions the previous feedback is overwritten. + */ + putRecommendationFeedback(params: CodeGuruReviewer.Types.PutRecommendationFeedbackRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.PutRecommendationFeedbackResponse) => void): Request; + /** + * Stores customer feedback for a CodeGuru Reviewer recommendation. When this API is called again with different reactions the previous feedback is overwritten. + */ + putRecommendationFeedback(callback?: (err: AWSError, data: CodeGuruReviewer.Types.PutRecommendationFeedbackResponse) => void): Request; + /** + * Adds one or more tags to an associated repository. + */ + tagResource(params: CodeGuruReviewer.Types.TagResourceRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.TagResourceResponse) => void): Request; + /** + * Adds one or more tags to an associated repository. + */ + tagResource(callback?: (err: AWSError, data: CodeGuruReviewer.Types.TagResourceResponse) => void): Request; + /** + * Removes a tag from an associated repository. + */ + untagResource(params: CodeGuruReviewer.Types.UntagResourceRequest, callback?: (err: AWSError, data: CodeGuruReviewer.Types.UntagResourceResponse) => void): Request; + /** + * Removes a tag from an associated repository. + */ + untagResource(callback?: (err: AWSError, data: CodeGuruReviewer.Types.UntagResourceResponse) => void): Request; +} +declare namespace CodeGuruReviewer { + export type Arn = string; + export interface AssociateRepositoryRequest { + /** + * The repository to associate. + */ + Repository: Repository; + /** + * Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository associations if there are failures and retries. + */ + ClientRequestToken?: ClientRequestToken; + /** + * An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive. An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. + */ + Tags?: TagMap; + /** + * A KMSKeyDetails object that contains: The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK). The ID of the AWS KMS key that is associated with this respository association. + */ + KMSKeyDetails?: KMSKeyDetails; + } + export interface AssociateRepositoryResponse { + /** + * Information about the repository association. + */ + RepositoryAssociation?: RepositoryAssociation; + /** + * An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive. An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. + */ + Tags?: TagMap; + } + export type AssociationArn = string; + export type AssociationId = string; + export type BranchName = string; + export type ClientRequestToken = string; + export interface CodeCommitRepository { + /** + * The name of the AWS CodeCommit repository. For more information, see repositoryName in the AWS CodeCommit API Reference. + */ + Name: Name; + } + export interface CodeReview { + /** + * The name of the code review. + */ + Name?: Name; + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn?: Arn; + /** + * The name of the repository. + */ + RepositoryName?: Name; + /** + * The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. + */ + Owner?: Owner; + /** + * The type of repository that contains the reviewed code (for example, GitHub or Bitbucket). + */ + ProviderType?: ProviderType; + /** + * The valid code review states are: Completed: The code review is complete. Pending: The code review started and has not completed or failed. Failed: The code review failed. Deleting: The code review is being deleted. + */ + State?: JobState; + /** + * The reason for the state of the code review. + */ + StateReason?: StateReason; + /** + * The time, in milliseconds since the epoch, when the code review was created. + */ + CreatedTimeStamp?: TimeStamp; + /** + * The time, in milliseconds since the epoch, when the code review was last updated. + */ + LastUpdatedTimeStamp?: TimeStamp; + /** + * The type of code review. + */ + Type?: Type; + /** + * The pull request ID for the code review. + */ + PullRequestId?: PullRequestId; + /** + * The type of the source code for the code review. + */ + SourceCodeType?: SourceCodeType; + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation that contains the reviewed source code. You can retrieve associated repository ARNs by calling ListRepositoryAssociations . + */ + AssociationArn?: AssociationArn; + /** + * The statistics from the code review. + */ + Metrics?: Metrics; + } + export type CodeReviewName = string; + export type CodeReviewSummaries = CodeReviewSummary[]; + export interface CodeReviewSummary { + /** + * The name of the code review. + */ + Name?: Name; + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn?: Arn; + /** + * The name of the repository. + */ + RepositoryName?: Name; + /** + * The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. + */ + Owner?: Owner; + /** + * The provider type of the repository association. + */ + ProviderType?: ProviderType; + /** + * The state of the code review. The valid code review states are: Completed: The code review is complete. Pending: The code review started and has not completed or failed. Failed: The code review failed. Deleting: The code review is being deleted. + */ + State?: JobState; + /** + * The time, in milliseconds since the epoch, when the code review was created. + */ + CreatedTimeStamp?: TimeStamp; + /** + * The time, in milliseconds since the epoch, when the code review was last updated. + */ + LastUpdatedTimeStamp?: TimeStamp; + /** + * The type of the code review. + */ + Type?: Type; + /** + * The pull request ID for the code review. + */ + PullRequestId?: PullRequestId; + /** + * The statistics from the code review. + */ + MetricsSummary?: MetricsSummary; + } + export interface CodeReviewType { + /** + * A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in CreateCodeReview . + */ + RepositoryAnalysis: RepositoryAnalysis; + } + export interface CommitDiffSourceCodeType { + /** + * The SHA of the source commit used to generate a commit diff. + */ + SourceCommit?: CommitId; + /** + * The SHA of the destination commit used to generate a commit diff. + */ + DestinationCommit?: CommitId; + } + export type CommitId = string; + export type ConnectionArn = string; + export interface CreateCodeReviewRequest { + /** + * The name of the code review. The name of each code review in your AWS account must be unique. + */ + Name: CodeReviewName; + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations . A code review can only be created on an associated repository. This is the ARN of the associated repository. + */ + RepositoryAssociationArn: AssociationArn; + /** + * The type of code review to create. This is specified using a CodeReviewType object. You can create a code review only of type RepositoryAnalysis. + */ + Type: CodeReviewType; + /** + * Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate code reviews if there are failures and retries. + */ + ClientRequestToken?: ClientRequestToken; + } + export interface CreateCodeReviewResponse { + CodeReview?: CodeReview; + } + export interface DescribeCodeReviewRequest { + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn: Arn; + } + export interface DescribeCodeReviewResponse { + /** + * Information about the code review. + */ + CodeReview?: CodeReview; + } + export interface DescribeRecommendationFeedbackRequest { + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn: Arn; + /** + * The recommendation ID that can be used to track the provided recommendations and then to collect the feedback. + */ + RecommendationId: RecommendationId; + /** + * Optional parameter to describe the feedback for a given user. If this is not supplied, it defaults to the user making the request. The UserId is an IAM principal that can be specified as an AWS account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the AWS Identity and Access Management User Guide. + */ + UserId?: UserId; + } + export interface DescribeRecommendationFeedbackResponse { + /** + * The recommendation feedback given by the user. + */ + RecommendationFeedback?: RecommendationFeedback; + } + export interface DescribeRepositoryAssociationRequest { + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations . + */ + AssociationArn: AssociationArn; + } + export interface DescribeRepositoryAssociationResponse { + /** + * Information about the repository association. + */ + RepositoryAssociation?: RepositoryAssociation; + /** + * An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive. An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. + */ + Tags?: TagMap; + } + export interface DisassociateRepositoryRequest { + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations . + */ + AssociationArn: AssociationArn; + } + export interface DisassociateRepositoryResponse { + /** + * Information about the disassociated repository. + */ + RepositoryAssociation?: RepositoryAssociation; + /** + * An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive. An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. + */ + Tags?: TagMap; + } + export type EncryptionOption = "AWS_OWNED_CMK"|"CUSTOMER_MANAGED_CMK"|string; + export type FilePath = string; + export type FindingsCount = number; + export type JobState = "Completed"|"Pending"|"Failed"|"Deleting"|string; + export type JobStates = JobState[]; + export interface KMSKeyDetails { + /** + * The ID of the AWS KMS key that is associated with a respository association. + */ + KMSKeyId?: KMSKeyId; + /** + * The encryption option for a repository association. It is either owned by AWS Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK). + */ + EncryptionOption?: EncryptionOption; + } + export type KMSKeyId = string; + export type LineNumber = number; + export type ListCodeReviewsMaxResults = number; + export interface ListCodeReviewsRequest { + /** + * List of provider types for filtering that needs to be applied before displaying the result. For example, providerTypes=[GitHub] lists code reviews from GitHub. + */ + ProviderTypes?: ProviderTypes; + /** + * List of states for filtering that needs to be applied before displaying the result. For example, states=[Pending] lists code reviews in the Pending state. The valid code review states are: Completed: The code review is complete. Pending: The code review started and has not completed or failed. Failed: The code review failed. Deleting: The code review is being deleted. + */ + States?: JobStates; + /** + * List of repository names for filtering that needs to be applied before displaying the result. + */ + RepositoryNames?: RepositoryNames; + /** + * The type of code reviews to list in the response. + */ + Type: Type; + /** + * The maximum number of results that are returned per call. The default is 100. + */ + MaxResults?: ListCodeReviewsMaxResults; + /** + * If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. + */ + NextToken?: NextToken; + } + export interface ListCodeReviewsResponse { + /** + * A list of code reviews that meet the criteria of the request. + */ + CodeReviewSummaries?: CodeReviewSummaries; + /** + * Pagination token. + */ + NextToken?: NextToken; + } + export interface ListRecommendationFeedbackRequest { + /** + * If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. + */ + NextToken?: NextToken; + /** + * The maximum number of results that are returned per call. The default is 100. + */ + MaxResults?: MaxResults; + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn: Arn; + /** + * An AWS user's account ID or Amazon Resource Name (ARN). Use this ID to query the recommendation feedback for a code review from that user. The UserId is an IAM principal that can be specified as an AWS account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the AWS Identity and Access Management User Guide. + */ + UserIds?: UserIds; + /** + * Used to query the recommendation feedback for a given recommendation. + */ + RecommendationIds?: RecommendationIds; + } + export interface ListRecommendationFeedbackResponse { + /** + * Recommendation feedback summaries corresponding to the code review ARN. + */ + RecommendationFeedbackSummaries?: RecommendationFeedbackSummaries; + /** + * If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. + */ + NextToken?: NextToken; + } + export interface ListRecommendationsRequest { + /** + * Pagination token. + */ + NextToken?: NextToken; + /** + * The maximum number of results that are returned per call. The default is 100. + */ + MaxResults?: MaxResults; + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn: Arn; + } + export interface ListRecommendationsResponse { + /** + * List of recommendations for the requested code review. + */ + RecommendationSummaries?: RecommendationSummaries; + /** + * Pagination token. + */ + NextToken?: NextToken; + } + export interface ListRepositoryAssociationsRequest { + /** + * List of provider types to use as a filter. + */ + ProviderTypes?: ProviderTypes; + /** + * List of repository association states to use as a filter. The valid repository association states are: Associated: The repository association is complete. Associating: CodeGuru Reviewer is: Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review. If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered. Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository. Failed: The repository failed to associate or disassociate. Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access. Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide. + */ + States?: RepositoryAssociationStates; + /** + * List of repository names to use as a filter. + */ + Names?: Names; + /** + * List of owners to use as a filter. For AWS CodeCommit, it is the name of the CodeCommit account that was used to associate the repository. For other repository source providers, such as Bitbucket and GitHub Enterprise Server, this is name of the account that was used to associate the repository. + */ + Owners?: Owners; + /** + * The maximum number of repository association results returned by ListRepositoryAssociations in paginated output. When this parameter is used, ListRepositoryAssociations only returns maxResults results in a single page with a nextToken response element. The remaining results of the initial request can be seen by sending another ListRepositoryAssociations request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, ListRepositoryAssociations returns up to 100 results and a nextToken value if applicable. + */ + MaxResults?: MaxResults; + /** + * The nextToken value returned from a previous paginated ListRepositoryAssociations request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the nextToken value. Treat this token as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes. + */ + NextToken?: NextToken; + } + export interface ListRepositoryAssociationsResponse { + /** + * A list of repository associations that meet the criteria of the request. + */ + RepositoryAssociationSummaries?: RepositoryAssociationSummaries; + /** + * The nextToken value to include in a future ListRecommendations request. When the results of a ListRecommendations request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return. + */ + NextToken?: NextToken; + } + export interface ListTagsForResourceRequest { + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations . + */ + resourceArn: AssociationArn; + } + export interface ListTagsForResourceResponse { + /** + * An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive. An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. + */ + Tags?: TagMap; + } + export type MaxResults = number; + export type MeteredLinesOfCodeCount = number; + export interface Metrics { + /** + * Lines of code metered in the code review. For the initial code review pull request and all subsequent revisions, this includes all lines of code in the files added to the pull request. In subsequent revisions, for files that already existed in the pull request, this includes only the changed lines of code. In both cases, this does not include non-code lines such as comments and import statements. For example, if you submit a pull request containing 5 files, each with 500 lines of code, and in a subsequent revision you added a new file with 200 lines of code, and also modified a total of 25 lines across the initial 5 files, MeteredLinesOfCodeCount includes the first 5 files (5 * 500 = 2,500 lines), the new file (200 lines) and the 25 changed lines of code for a total of 2,725 lines of code. + */ + MeteredLinesOfCodeCount?: MeteredLinesOfCodeCount; + /** + * Total number of recommendations found in the code review. + */ + FindingsCount?: FindingsCount; + } + export interface MetricsSummary { + /** + * Lines of code metered in the code review. For the initial code review pull request and all subsequent revisions, this includes all lines of code in the files added to the pull request. In subsequent revisions, for files that already existed in the pull request, this includes only the changed lines of code. In both cases, this does not include non-code lines such as comments and import statements. For example, if you submit a pull request containing 5 files, each with 500 lines of code, and in a subsequent revision you added a new file with 200 lines of code, and also modified a total of 25 lines across the initial 5 files, MeteredLinesOfCodeCount includes the first 5 files (5 * 500 = 2,500 lines), the new file (200 lines) and the 25 changed lines of code for a total of 2,725 lines of code. + */ + MeteredLinesOfCodeCount?: MeteredLinesOfCodeCount; + /** + * Total number of recommendations found in the code review. + */ + FindingsCount?: FindingsCount; + } + export type Name = string; + export type Names = Name[]; + export type NextToken = string; + export type Owner = string; + export type Owners = Owner[]; + export type ProviderType = "CodeCommit"|"GitHub"|"Bitbucket"|"GitHubEnterpriseServer"|string; + export type ProviderTypes = ProviderType[]; + export type PullRequestId = string; + export interface PutRecommendationFeedbackRequest { + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn: Arn; + /** + * The recommendation ID that can be used to track the provided recommendations and then to collect the feedback. + */ + RecommendationId: RecommendationId; + /** + * List for storing reactions. Reactions are utf-8 text code for emojis. If you send an empty list it clears all your feedback. + */ + Reactions: Reactions; + } + export interface PutRecommendationFeedbackResponse { + } + export type Reaction = "ThumbsUp"|"ThumbsDown"|string; + export type Reactions = Reaction[]; + export interface RecommendationFeedback { + /** + * The Amazon Resource Name (ARN) of the CodeReview object. + */ + CodeReviewArn?: Arn; + /** + * The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback. + */ + RecommendationId?: RecommendationId; + /** + * List for storing reactions. Reactions are utf-8 text code for emojis. You can send an empty list to clear off all your feedback. + */ + Reactions?: Reactions; + /** + * The ID of the user that made the API call. The UserId is an IAM principal that can be specified as an AWS account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the AWS Identity and Access Management User Guide. + */ + UserId?: UserId; + /** + * The time at which the feedback was created. + */ + CreatedTimeStamp?: TimeStamp; + /** + * The time at which the feedback was last updated. + */ + LastUpdatedTimeStamp?: TimeStamp; + } + export type RecommendationFeedbackSummaries = RecommendationFeedbackSummary[]; + export interface RecommendationFeedbackSummary { + /** + * The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback. + */ + RecommendationId?: RecommendationId; + /** + * List for storing reactions. Reactions are utf-8 text code for emojis. + */ + Reactions?: Reactions; + /** + * The ID of the user that gave the feedback. The UserId is an IAM principal that can be specified as an AWS account ID or an Amazon Resource Name (ARN). For more information, see Specifying a Principal in the AWS Identity and Access Management User Guide. + */ + UserId?: UserId; + } + export type RecommendationId = string; + export type RecommendationIds = RecommendationId[]; + export type RecommendationSummaries = RecommendationSummary[]; + export interface RecommendationSummary { + /** + * Name of the file on which a recommendation is provided. + */ + FilePath?: FilePath; + /** + * The recommendation ID that can be used to track the provided recommendations. Later on it can be used to collect the feedback. + */ + RecommendationId?: RecommendationId; + /** + * Start line from where the recommendation is applicable in the source commit or source branch. + */ + StartLine?: LineNumber; + /** + * Last line where the recommendation is applicable in the source commit or source branch. For a single line comment the start line and end line values are the same. + */ + EndLine?: LineNumber; + /** + * A description of the recommendation generated by CodeGuru Reviewer for the lines of code between the start line and the end line. + */ + Description?: Text; + } + export interface Repository { + /** + * Information about an AWS CodeCommit repository. + */ + CodeCommit?: CodeCommitRepository; + /** + * Information about a Bitbucket repository. + */ + Bitbucket?: ThirdPartySourceRepository; + /** + * Information about a GitHub Enterprise Server repository. + */ + GitHubEnterpriseServer?: ThirdPartySourceRepository; + } + export interface RepositoryAnalysis { + /** + * A SourceCodeType that specifies the tip of a branch in an associated repository. + */ + RepositoryHead: RepositoryHeadSourceCodeType; + } + export interface RepositoryAssociation { + /** + * The ID of the repository association. + */ + AssociationId?: AssociationId; + /** + * The Amazon Resource Name (ARN) identifying the repository association. + */ + AssociationArn?: Arn; + /** + * The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the AWS CodeStar Connections API Reference. + */ + ConnectionArn?: ConnectionArn; + /** + * The name of the repository. + */ + Name?: Name; + /** + * The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. + */ + Owner?: Owner; + /** + * The provider type of the repository association. + */ + ProviderType?: ProviderType; + /** + * The state of the repository association. The valid repository association states are: Associated: The repository association is complete. Associating: CodeGuru Reviewer is: Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review. If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered. Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository. Failed: The repository failed to associate or disassociate. Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access. Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide. + */ + State?: RepositoryAssociationState; + /** + * A description of why the repository association is in the current state. + */ + StateReason?: StateReason; + /** + * The time, in milliseconds since the epoch, when the repository association was last updated. + */ + LastUpdatedTimeStamp?: TimeStamp; + /** + * The time, in milliseconds since the epoch, when the repository association was created. + */ + CreatedTimeStamp?: TimeStamp; + /** + * A KMSKeyDetails object that contains: The encryption option for this repository association. It is either owned by AWS Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK). The ID of the AWS KMS key that is associated with this respository association. + */ + KMSKeyDetails?: KMSKeyDetails; + } + export type RepositoryAssociationState = "Associated"|"Associating"|"Failed"|"Disassociating"|"Disassociated"|string; + export type RepositoryAssociationStates = RepositoryAssociationState[]; + export type RepositoryAssociationSummaries = RepositoryAssociationSummary[]; + export interface RepositoryAssociationSummary { + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations . + */ + AssociationArn?: Arn; + /** + * The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the AWS CodeStar Connections API Reference. + */ + ConnectionArn?: ConnectionArn; + /** + * The time, in milliseconds since the epoch, since the repository association was last updated. + */ + LastUpdatedTimeStamp?: TimeStamp; + /** + * The repository association ID. + */ + AssociationId?: AssociationId; + /** + * The name of the repository association. + */ + Name?: Name; + /** + * The owner of the repository. For an AWS CodeCommit repository, this is the AWS account ID of the account that owns the repository. For a GitHub, GitHub Enterprise Server, or Bitbucket repository, this is the username for the account that owns the repository. + */ + Owner?: Owner; + /** + * The provider type of the repository association. + */ + ProviderType?: ProviderType; + /** + * The state of the repository association. The valid repository association states are: Associated: The repository association is complete. Associating: CodeGuru Reviewer is: Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review. If your repository ProviderType is GitHub, GitHub Enterprise Server, or Bitbucket, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered. Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository. Failed: The repository failed to associate or disassociate. Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access. Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in an associated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide. + */ + State?: RepositoryAssociationState; + } + export interface RepositoryHeadSourceCodeType { + /** + * The name of the branch in an associated repository. The RepositoryHeadSourceCodeType specifies the tip of this branch. + */ + BranchName: BranchName; + } + export type RepositoryNames = Name[]; + export interface SourceCodeType { + /** + * A SourceCodeType that specifies a commit diff created by a pull request on an associated repository. + */ + CommitDiff?: CommitDiffSourceCodeType; + RepositoryHead?: RepositoryHeadSourceCodeType; + } + export type StateReason = string; + export type TagKey = string; + export type TagKeyList = TagKey[]; + export type TagMap = {[key: string]: TagValue}; + export interface TagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations . + */ + resourceArn: AssociationArn; + /** + * An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are case sensitive. An optional field known as a tag value (for example, 111122223333, Production, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive. + */ + Tags: TagMap; + } + export interface TagResourceResponse { + } + export type TagValue = string; + export type Text = string; + export interface ThirdPartySourceRepository { + /** + * The name of the third party source repository. + */ + Name: Name; + /** + * The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more information, see Connection in the AWS CodeStar Connections API Reference. + */ + ConnectionArn: ConnectionArn; + /** + * The owner of the repository. For a GitHub, GitHub Enterprise, or Bitbucket repository, this is the username for the account that owns the repository. + */ + Owner: Owner; + } + export type TimeStamp = Date; + export type Type = "PullRequest"|"RepositoryAnalysis"|string; + export interface UntagResourceRequest { + /** + * The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations . + */ + resourceArn: AssociationArn; + /** + * A list of the keys for each tag you want to remove from an associated repository. + */ + TagKeys: TagKeyList; + } + export interface UntagResourceResponse { + } + export type UserId = string; + export type UserIds = UserId[]; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2019-09-19"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the CodeGuruReviewer client. + */ + export import Types = CodeGuruReviewer; +} +export = CodeGuruReviewer; diff --git a/justdanceonline-main/node_modules/aws-sdk/clients/codegurureviewer.js b/justdanceonline-main/node_modules/aws-sdk/clients/codegurureviewer.js new file mode 100644 index 0000000000000000000000000000000000000000..8482f7e274deedb316bec40e9352674e952a7e23 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/clients/codegurureviewer.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['codegurureviewer'] = {}; +AWS.CodeGuruReviewer = Service.defineService('codegurureviewer', ['2019-09-19']); +Object.defineProperty(apiLoader.services['codegurureviewer'], '2019-09-19', { + get: function get() { + var model = require('../apis/codeguru-reviewer-2019-09-19.min.json'); + model.paginators = require('../apis/codeguru-reviewer-2019-09-19.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.CodeGuruReviewer; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/browser-builder.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/browser-builder.js new file mode 100644 index 0000000000000000000000000000000000000000..902e56bb89a93c346280b7f5e45fc53b1d232c73 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/browser-builder.js @@ -0,0 +1,56 @@ +#!/usr/bin/env node + +var path = require('path'); + +var AWS = require('../index'); + +var license = [ + '// AWS SDK for JavaScript v' + AWS.VERSION, + '// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.', + '// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt' +].join('\n') + '\n'; + +function minify(code) { + var uglify = require('uglify-js'); + var minified = uglify.minify(code, {fromString: true}); + return minified.code; +} + +function build(options, callback) { + if (arguments.length === 1) { + callback = options; + options = {}; + } + + var img = require('insert-module-globals'); + img.vars.process = function() { return '{browser:true}'; }; + + if (options.services) process.env.AWS_SERVICES = options.services; + + var browserify = require('browserify'); + var brOpts = { basedir: path.resolve(__dirname, '..') }; + browserify(brOpts).add('./').ignore('domain').bundle(function(err, data) { + if (err) return callback(err); + + var code = (data || '').toString(); + if (options.minify) code = minify(code); + + code = license + code; + callback(null, code); + }); +} + +// run if we called this tool directly +if (require.main === module) { + var opts = { + services: process.argv[2] || process.env.SERVICES, + minify: process.env.MINIFY ? true : false + }; + build(opts, function(err, code) { + if (err) console.error(err.message); + else console.log(code); + }); +} + +build.license = license; +module.exports = build; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/client-creator.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/client-creator.js new file mode 100644 index 0000000000000000000000000000000000000000..8677545714a92632470fa698194550740e48ef3a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/client-creator.js @@ -0,0 +1,235 @@ +var fs = require('fs'); +var path = require('path'); + +/** + * Generate service clients + * + * Pass optional path to target directory. + * The directory must include the apis/ folder and service customizations at + * `lib/services`. Clients will be generated in `clients/`. + * + * If parameter is not passed the repository root will be used. + */ +function ClientCreator(basePath) { + basePath = basePath || path.join(__dirname, '..'); + this._metadataPath = path.join(basePath, 'apis', 'metadata.json'); + this._apisFolderPath = path.join(basePath, 'apis'); + this._clientFolderPath = path.join(basePath, 'clients'); + this._serviceCustomizationsFolderPath = path.join(basePath, 'lib', 'services'); + this._packageJsonPath = path.join(basePath, 'package.json'); + // Lazy loading values on usage to avoid side-effects in constructor + this._apiFileNames = null; + this._metadata = null; +} + +ClientCreator.prototype.loadMetadata = function loadMetadata() { + if (this._metadata) { + return this._metadata; + } + + var metadataFile = fs.readFileSync(this._metadataPath); + this.metadata = JSON.parse(metadataFile); + return this.metadata; +}; + +ClientCreator.prototype.getAllApiFilenames = function getAllApiFilenames() { + if (this._apiFileNames) { + return this._apiFileNames; + } + var apiFileNames = fs.readdirSync(this._apisFolderPath); + // filter out metadata + this._apiFileNames = apiFileNames.filter(function(name) { + return name !== 'metadata.json'; + }); + return this._apiFileNames; +}; + +ClientCreator.prototype.getAllApiFilenamesForService = function getAllApiFilenamesForService(modelName) { + var serviceRegex = new RegExp('(^' + modelName + '-([\\d]{4}-[\\d]{2}-[\\d]{2})\\.([\\w]+))\\.json$'); + var modelRegex = /(([\d]{4}-[\d]{2}-[\d]{2})\.([\w]+))\.json$/; + + var models = {}; + var versions = {}; + this.getAllApiFilenames().filter(function(name) { + return name.search(serviceRegex) === 0; + }).forEach(function(name) { + var matches = name.match(serviceRegex); + if (!matches) { + return; + } + var model = matches[1]; + var version = matches[2]; + var modelType = matches[3]; + if (!versions.hasOwnProperty(version)) { + versions[version] = {}; + } + var versionInfo = versions[version]; + switch (modelType) { + case 'min': + versionInfo.api = model; + break; + case 'paginators': + versionInfo.paginators = model; + break; + case 'waiters2': + versionInfo.waiters = model; + break; + default: + return; + } + }); + models.versions = versions; + return models; +}; + +ClientCreator.prototype.customizationsExist = function customizationsExist(serviceName) { + var customizationsFolder = this._serviceCustomizationsFolderPath; + return fs.existsSync(path.join(customizationsFolder, serviceName + '.js')); +}; + +ClientCreator.prototype.generateClientFileSource = function generateClientFileSource(serviceMetadata, specifiedVersion) { + var clientFolderPath = this._clientFolderPath; + var className = serviceMetadata.name; + var serviceName = className.toLowerCase(); + var modelName = serviceMetadata.prefix || serviceName; + specifiedVersion = specifiedVersion || '*'; + + // get models for the service + var models = this.getAllApiFilenamesForService(modelName); + + var modelVersions = models && models.versions; + if (!modelVersions) { + throw new Error('Unable to get models for ' + modelName); + } + var obsoleteVersions = serviceMetadata.versions || []; + var versionNumbers = Object.keys(modelVersions); + var tab = ' '; + var code = ''; + code += 'require(\'../lib/node_loader\');\n'; + code += 'var AWS = require(\'../lib/core\');\n'; + code += 'var Service = AWS.Service;\n'; + code += 'var apiLoader = AWS.apiLoader;\n\n'; + code += 'apiLoader.services[\'' + serviceName +'\'] = {};\n'; + code += 'AWS.' + className + ' = Service.defineService(\'' + serviceName + '\', [\'' + [].concat(obsoleteVersions, versionNumbers).sort().join('\', \'') + '\']);\n'; + // pull in service customizations + if (this.customizationsExist(serviceName)) { + code += 'require(\'../lib/services/' + serviceName + '\');\n'; + } + versionNumbers.forEach(function(version) { + // check version + if (specifiedVersion !== '*' && specifiedVersion !== version) { + return; + } + var versionInfo = modelVersions[version]; + if (!versionInfo.hasOwnProperty('api')) { + throw new Error('No API model for ' + serviceName + '-' + version); + } + code += 'Object.defineProperty(apiLoader.services[\'' + serviceName +'\'], \'' + version + '\', {\n'; + code += tab + 'get: function get() {\n'; + code += tab + tab + 'var model = require(\'../apis/' + versionInfo.api + '.json\');\n'; + if (versionInfo.hasOwnProperty('paginators')) { + code += tab + tab + 'model.paginators = require(\'../apis/' + versionInfo.paginators + '.json\').pagination;\n'; + } + if (versionInfo.hasOwnProperty('waiters')) { + code += tab + tab + 'model.waiters = require(\'../apis/' + versionInfo.waiters + '.json\').waiters;\n'; + } + code += tab + tab + 'return model;\n'; + code += tab + '},\n'; + code += tab + 'enumerable: true,\n'; + code += tab + 'configurable: true\n'; + code += '});\n'; + }); + + code += '\n'; + code += 'module.exports = AWS.' + className + ';\n'; + return { + code: code, + path: path.join(clientFolderPath, serviceName + '.js'), + service: serviceName, + }; +}; + +ClientCreator.prototype.tabs = function tabs(count) { + var tab = ''; + for (var i = 0; i < count; i++) { + tab += ' '; + } + return tab; +}; + +ClientCreator.prototype.generateDefinePropertySource = function generateDefinePropertySource(objName, serviceName, className) { + var tabs = this.tabs; + var code = ''; + code += 'var ' + serviceName + ' = null;\n'; + code += 'Object.defineProperty(' + objName + ', \'' + className + '\', {\n'; + code += tabs(1) + 'get: function get() {\n'; + code += tabs(2) + 'return ' + serviceName + ' || require(\'./' + serviceName + '\');\n'; + code += tabs(1) + '},\n'; + code += tabs(1) + 'set: function set(svc) {\n'; + code += tabs(2) + serviceName + ' = svc;\n'; + code += tabs(1) + '},\n'; + code += tabs(1) + 'enumerable: true,\n'; + code += tabs(1) + 'configurable: true\n'; + code += '});\n'; + + return code; +}; + +ClientCreator.prototype.generateAllServicesSource = function generateAllServicesSource(services, fileName) { + var metadata = this.loadMetadata(); + var self = this; + var code = ''; + code += 'require(\'../lib/node_loader\');\n'; + code += 'module.exports = {\n'; + + services.forEach(function(service, idx) { + var className = metadata[service].name; + var tab = ' '; + var isLast = idx === services.length - 1; + code += self.tabs(1) + className + ': require(\'./' + service + '\')' + (isLast ? '' : ',') + '\n'; + }); + code += '};'; + return { + code: code, + path: path.join(this._clientFolderPath, fileName + '.js'), + service: fileName + }; +}; + +ClientCreator.prototype.getDefaultServices = function getDefaultServices() { + var metadata = this.loadMetadata(); + var services = []; + for (var key in metadata) { + if (!metadata.hasOwnProperty(key)) { + continue; + } + var className = metadata[key].name; + var serviceName = className.toLowerCase(); + services.push(serviceName); + } + return services; +}; + +ClientCreator.prototype.writeClientServices = function writeClientServices() { + var metadata = this.loadMetadata(); + var services = []; + var corsServices = []; + for (var key in metadata) { + if (!metadata.hasOwnProperty(key)) { + continue; + } + var clientInfo = this.generateClientFileSource(metadata[key]); + fs.writeFileSync(clientInfo.path, clientInfo.code); + services.push(clientInfo.service); + // check if service supports CORS + if (metadata[key].cors === true) { + corsServices.push(clientInfo.service); + } + } + var allClientInfo = this.generateAllServicesSource(services, 'all'); + fs.writeFileSync(allClientInfo.path, allClientInfo.code); + var browserClientInfo = this.generateAllServicesSource(corsServices, 'browser_default'); + fs.writeFileSync(browserClientInfo.path, browserClientInfo.code); +}; + +module.exports = ClientCreator; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/create-all-services.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/create-all-services.js new file mode 100644 index 0000000000000000000000000000000000000000..a6caaeec6b109e973ec41addb119ac0198a41839 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/create-all-services.js @@ -0,0 +1,19 @@ +#!/usr/bin/env node + +var path = require('path'); + +/* + * Pass optional path to target directory as command line argument. + * + * The directory must include the apis/ folder and service customizations at + * `lib/services`. Clients will be generated in `clients/`. + * + * If parameter is not passed the repository root will be used. + */ + +var ClientCreator = require('./client-creator'); + +var cc = new ClientCreator(process.argv[2] || path.join(__dirname, '..')); + +cc.writeClientServices(); +console.log('Finished updating services.'); diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/service-collector.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/service-collector.js new file mode 100644 index 0000000000000000000000000000000000000000..0b09a4141dfaf2efed836d776e53f64edd35cfcc --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/service-collector.js @@ -0,0 +1,168 @@ +var fs = require('fs'); +var util = require('util'); +var path = require('path'); + +var AWS = require('../'); +var apis = require('../lib/api_loader'); +var metadata = require('../apis/metadata'); +var ClientCreator = require('./client-creator'); + +var clientCreator = new ClientCreator(); +var defaultServices = clientCreator.getDefaultServices().join(','); +var sanitizeRegex = /[^a-zA-Z0-9,-]/; + +var serviceClasses = {}; +Object.keys(AWS).forEach(function(name) { + if (AWS[name].serviceIdentifier) { + serviceClasses[AWS[name].serviceIdentifier] = AWS[name]; + } +}); + +function getServiceHeader(service) { + if (service === 'all') { + return Object.keys(serviceClasses).map(function(name) { + return getServiceHeader(name); + }).join('\n'); + } + + if (!serviceClasses[service]) return null; + var versions = serviceClasses[service].apiVersions.map(function(version) { + return version.indexOf('*') >= 0 ? null : version; + }).filter(function(c) { return c !== null; }); + + var file = util.format( + 'if (!Object.prototype.hasOwnProperty.call(AWS, \'' + metadata[service].name + '\')) {\n' + + ' AWS.apiLoader.services[\'%s\'] = {};\n' + + ' AWS.%s = AWS.Service.defineService(\'%s\', %s);\n', + service, metadata[service].name, service, util.inspect(versions)); + var svcPath = path.join(__dirname, '..', 'lib', 'services', service + '.js'); + if (fs.existsSync(svcPath)) { + file += ' require(\'./services/' + service + '\');\n'; + } + file += '}\n'; + + return file; +} + +function getService(service, version) { + if (service === 'all') { + return Object.keys(serviceClasses).map(function(name) { + var out = serviceClasses[name].apiVersions.map(function(svcVersion) { + if (svcVersion.indexOf('*') >= 0) return null; + return getService(name, svcVersion); + }).filter(function(c) { return c !== null; }).join('\n'); + + return out; + }).join('\n'); + } + + var svc, api; + if (!serviceClasses[service]) { + return null; + } + + try { + var ClassName = serviceClasses[service]; + svc = new ClassName({apiVersion: version, endpoint: 'localhost'}); + api = svc.api; + } catch (e) { + return null; + } + + var serviceFileName = metadata[service].prefix || service; + var lines = []; + var line = util.format( + 'AWS.apiLoader.services[\'%s\'][\'%s\'] = %s;\n', + service, svc.api.apiVersion, 'require(\'../apis/' + serviceFileName + '-' + svc.api.apiVersion + '.min\')'); + lines.push(line); + if (Object.prototype.hasOwnProperty.call(api, 'paginators') && Object.keys(api.paginators).length) { + line = util.format( + 'AWS.apiLoader.services[\'%s\'][\'%s\'].paginators = %s;\n', + service, svc.api.apiVersion, 'require(\'../apis/' + serviceFileName + '-' + svc.api.apiVersion + '.paginators\').pagination'); + lines.push(line); + } + if (Object.prototype.hasOwnProperty.call(api, 'waiters') && Object.keys(api.waiters).length) { + line = util.format( + 'AWS.apiLoader.services[\'%s\'][\'%s\'].waiters = %s;\n', + service, svc.api.apiVersion, 'require(\'../apis/' + serviceFileName + '-' + svc.api.apiVersion + '.waiters2\').waiters'); + lines.push(line); + } + return lines.join(''); +} + +function ServiceCollector(services) { + var builtServices = {}; + + function buildService(name, usingDefaultServices) { + var match = name.match(/^(.+?)(?:-(.+?))?$/); + var service = match[1], version = match[2] || 'latest'; + var contents = []; + var lines, err; + + if (!builtServices[service]) { + builtServices[service] = {}; + + lines = getServiceHeader(service); + if (lines === null) { + if (!usingDefaultServices) { + err = new Error('Invalid module: ' + service); + err.name = 'InvalidModuleError'; + throw err; + } + } else { + contents.push(lines); + } + } + + if (!builtServices[service][version]) { + builtServices[service][version] = true; + + lines = getService(service, version); + if (lines === null) { + if (!usingDefaultServices) { + err = new Error('Invalid module: ' + service + '-' + version); + err.name = 'InvalidModuleError'; + throw err; + } + } else { + contents.push(lines); + } + } + + return contents.join(''); + } + + var serviceCode = ''; + var usingDefaultServicesToggle = false; + if (!services) { + usingDefaultServicesToggle = true; + services = defaultServices; + } + if (services.match(sanitizeRegex)) { + throw new Error('Incorrectly formatted service names'); + } + + var invalidModules = []; + var stsIncluded = false; + services.split(',').sort().forEach(function(name) { + if (name.match(/^sts\b/) || name === 'all') stsIncluded = true; + try { + serviceCode += buildService(name, usingDefaultServicesToggle) + '\n'; + } catch (e) { + if (e.name === 'InvalidModuleError') invalidModules.push(name); + else throw e; + } + }); + + if (!stsIncluded) { + serviceCode += buildService('sts') + '\n'; + } + + if (invalidModules.length > 0) { + throw new Error('Missing modules: ' + invalidModules.join(', ')); + } + + return serviceCode; +} + +module.exports = ServiceCollector; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/transform.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/transform.js new file mode 100644 index 0000000000000000000000000000000000000000..864a80ec07a284ef00cd45c29f201ca89c1963fb --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/transform.js @@ -0,0 +1,43 @@ +var Transform = require('stream').Transform; +var collector = require('./service-collector'); +var license = require('./browser-builder').license; + +module.exports = function(file) { + var stream = new Transform(); + + var didDefineServices = !!process.env.AWS_SERVICES; + + var isEntryPoint = !!file.match(/[\/\\]lib[\/\\]browser\.js$/); + + stream._transform = function(data, encoding, callback) { + callback(null, data); + }; + + if (isEntryPoint) { + if (didDefineServices) { + // We need to strip out the default requires statement + stream._transform = function(data, encoding, callback) { + var code = data.toString(); + code = code.trim(); + var lines = code.split('\n'); + lines = lines.filter(function(line) { + return !line.match(/^require\(.+browser_default['"]\);$/); + }); + + code = lines.join('\n'); + data = Buffer.from(code); + callback(null, data); + }; + + var src = collector(process.env.AWS_SERVICES); + stream._flush = function(callback) { + stream.push(src); + callback(); + }; + } + + stream.push(license); + } + + return stream; +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn-core.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn-core.js new file mode 100644 index 0000000000000000000000000000000000000000..818425758339128b171f441dea514f4c879e0612 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn-core.js @@ -0,0 +1,32 @@ +// import path for resolving file paths +var path = require('path'); +module.exports = { + // Specify the entry point for our app. + entry: [ + path.join(__dirname, '..', 'lib', 'core.js'), + ], + // Specify the output file containing our bundled code + output: { + path: path.join(__dirname, '..', 'dist'), + filename: 'aws-sdk-core-react-native.js', + libraryTarget: 'umd', + library: 'AWS' + }, + resolve: {}, + module: { + /** + * Tell webpack how to load 'json' files. + * By default, webpack only knows how to handle + * JavaScript files. + * When webpack comes across a 'require()' statement + * where a json file is being imported, it will use + * the json-loader. + */ + loaders: [ + { + test: /\.json$/, + loaders: ['json'] + } + ] + } +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn-dep.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn-dep.js new file mode 100644 index 0000000000000000000000000000000000000000..ed6057d9293dce2135a02c893532bc9a93e871b8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn-dep.js @@ -0,0 +1,31 @@ +// import path for resolving file paths +var path = require('path'); +module.exports = { + // Specify the entry point for our app. + entry: [ + 'xml2js' + ], + // Specify the output file containing our bundled code + output: { + path: path.join(__dirname, '..', 'dist'), + filename: 'xml2js.js', + libraryTarget: 'commonjs2', + }, + resolve: {}, + module: { + /** + * Tell webpack how to load 'json' files. + * By default, webpack only knows how to handle + * JavaScript files. + * When webpack comes across a 'require()' statement + * where a json file is being imported, it will use + * the json-loader. + */ + loaders: [ + { + test: /\.json$/, + loaders: ['json'] + } + ] + } +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn.js b/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn.js new file mode 100644 index 0000000000000000000000000000000000000000..605ec8062d9939ad8a3ae3d7ef09f310d8171615 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist-tools/webpack.config.rn.js @@ -0,0 +1,34 @@ +// import path for resolving file paths +var path = require('path'); +module.exports = { + // Specify the entry point for our app. + entry: [ + path.join(__dirname, '..', 'react-native.js') + ], + // Specify the output file containing our bundled code + output: { + path: path.join(__dirname, '..', 'dist'), + filename: 'aws-sdk-react-native.js', + libraryTarget: 'umd', + library: 'AWS' + }, + resolve: { + packageAlias: 'react-native' + }, + module: { + /** + * Tell webpack how to load 'json' files. + * By default, webpack only knows how to handle + * JavaScript files. + * When webpack comes across a 'require()' statement + * where a json file is being imported, it will use + * the json-loader. + */ + loaders: [ + { + test: /\.json$/, + loaders: ['json'] + } + ] + } +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/dist/BUNDLE_LICENSE.txt b/justdanceonline-main/node_modules/aws-sdk/dist/BUNDLE_LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..59783abe8dff79d5031af85743017425289cf857 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist/BUNDLE_LICENSE.txt @@ -0,0 +1,96 @@ +The bundled package of the AWS SDK for JavaScript is available under the +Apache License, Version 2.0: + + Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"). You + may not use this file except in compliance with the License. A copy of + the License is located at + + http://aws.amazon.com/apache2.0/ + + or in the "license" file accompanying this file. This file is + distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + ANY KIND, either express or implied. See the License for the specific + language governing permissions and limitations under the License. + +This product bundles browserify, which is available under a +"3-clause BSD" license: + + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + +This product bundles crypto-browserify, which is available under +the MIT license: + + Copyright (c) 2013 Dominic Tarr + + Permission is hereby granted, free of charge, + to any person obtaining a copy of this software and + associated documentation files (the "Software"), to + deal in the Software without restriction, including + without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom + the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice + shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +This product bundles MD5, SHA-1, and SHA-256 hashing algorithm components, +which are available under a BSD license: + + Copyright (c) 1998 - 2009, Paul Johnston & Contributors + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyrightnotice, + this list of conditions and the following disclaimer. Redistributions + in binary form must reproduce the above copyright notice, this list of + conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + + Neither the name of the author nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + THE POSSIBILITY OF SUCH DAMAGE. diff --git a/justdanceonline-main/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js b/justdanceonline-main/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js new file mode 100644 index 0000000000000000000000000000000000000000..7df49266a4f1ce7ca9767e8523cfbf57d0b49cf5 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js @@ -0,0 +1,12246 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["AWS"] = factory(); + else + root["AWS"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * The main AWS namespace + */ + var AWS = { util: __webpack_require__(2) }; + + /** + * @api private + * @!macro [new] nobrowser + * @note This feature is not supported in the browser environment of the SDK. + */ + var _hidden = {}; _hidden.toString(); // hack to parse macro + + /** + * @api private + */ + module.exports = AWS; + + AWS.util.update(AWS, { + + /** + * @constant + */ + VERSION: '2.932.0', + + /** + * @api private + */ + Signers: {}, + + /** + * @api private + */ + Protocol: { + Json: __webpack_require__(13), + Query: __webpack_require__(17), + Rest: __webpack_require__(21), + RestJson: __webpack_require__(22), + RestXml: __webpack_require__(23) + }, + + /** + * @api private + */ + XML: { + Builder: __webpack_require__(24), + Parser: null // conditionally set based on environment + }, + + /** + * @api private + */ + JSON: { + Builder: __webpack_require__(14), + Parser: __webpack_require__(15) + }, + + /** + * @api private + */ + Model: { + Api: __webpack_require__(29), + Operation: __webpack_require__(30), + Shape: __webpack_require__(19), + Paginator: __webpack_require__(31), + ResourceWaiter: __webpack_require__(32) + }, + + /** + * @api private + */ + apiLoader: __webpack_require__(33), + + /** + * @api private + */ + EndpointCache: __webpack_require__(34).EndpointCache + }); + __webpack_require__(36); + __webpack_require__(37); + __webpack_require__(40); + __webpack_require__(43); + __webpack_require__(44); + __webpack_require__(49); + __webpack_require__(52); + __webpack_require__(53); + __webpack_require__(54); + __webpack_require__(62); + + /** + * @readonly + * @return [AWS.SequentialExecutor] a collection of global event listeners that + * are attached to every sent request. + * @see AWS.Request AWS.Request for a list of events to listen for + * @example Logging the time taken to send a request + * AWS.events.on('send', function startSend(resp) { + * resp.startTime = new Date().getTime(); + * }).on('complete', function calculateTime(resp) { + * var time = (new Date().getTime() - resp.startTime) / 1000; + * console.log('Request took ' + time + ' seconds'); + * }); + * + * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' + */ + AWS.events = new AWS.SequentialExecutor(); + + //create endpoint cache lazily + AWS.util.memoizedProperty(AWS, 'endpointCache', function() { + return new AWS.EndpointCache(AWS.config.endpointCacheSize); + }, true); + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process, setImmediate) {/* eslint guard-for-in:0 */ + var AWS; + + /** + * A set of utility methods for use with the AWS SDK. + * + * @!attribute abort + * Return this value from an iterator function {each} or {arrayEach} + * to break out of the iteration. + * @example Breaking out of an iterator function + * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) { + * if (key == 'b') return AWS.util.abort; + * }); + * @see each + * @see arrayEach + * @api private + */ + var util = { + environment: 'nodejs', + engine: function engine() { + if (util.isBrowser() && typeof navigator !== 'undefined') { + return navigator.userAgent; + } else { + var engine = process.platform + '/' + process.version; + if (process.env.AWS_EXECUTION_ENV) { + engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV; + } + return engine; + } + }, + + userAgent: function userAgent() { + var name = util.environment; + var agent = 'aws-sdk-' + name + '/' + __webpack_require__(1).VERSION; + if (name === 'nodejs') agent += ' ' + util.engine(); + return agent; + }, + + uriEscape: function uriEscape(string) { + var output = encodeURIComponent(string); + output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); + + // AWS percent-encodes some extra non-standard characters in a URI + output = output.replace(/[*]/g, function(ch) { + return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); + }); + + return output; + }, + + uriEscapePath: function uriEscapePath(string) { + var parts = []; + util.arrayEach(string.split('/'), function (part) { + parts.push(util.uriEscape(part)); + }); + return parts.join('/'); + }, + + urlParse: function urlParse(url) { + return util.url.parse(url); + }, + + urlFormat: function urlFormat(url) { + return util.url.format(url); + }, + + queryStringParse: function queryStringParse(qs) { + return util.querystring.parse(qs); + }, + + queryParamsToString: function queryParamsToString(params) { + var items = []; + var escape = util.uriEscape; + var sortedKeys = Object.keys(params).sort(); + + util.arrayEach(sortedKeys, function(name) { + var value = params[name]; + var ename = escape(name); + var result = ename + '='; + if (Array.isArray(value)) { + var vals = []; + util.arrayEach(value, function(item) { vals.push(escape(item)); }); + result = ename + '=' + vals.sort().join('&' + ename + '='); + } else if (value !== undefined && value !== null) { + result = ename + '=' + escape(value); + } + items.push(result); + }); + + return items.join('&'); + }, + + readFileSync: function readFileSync(path) { + if (util.isBrowser()) return null; + return __webpack_require__(6).readFileSync(path, 'utf-8'); + }, + + base64: { + encode: function encode64(string) { + if (typeof string === 'number') { + throw util.error(new Error('Cannot base64 encode number ' + string)); + } + if (string === null || typeof string === 'undefined') { + return string; + } + var buf = util.buffer.toBuffer(string); + return buf.toString('base64'); + }, + + decode: function decode64(string) { + if (typeof string === 'number') { + throw util.error(new Error('Cannot base64 decode number ' + string)); + } + if (string === null || typeof string === 'undefined') { + return string; + } + return util.buffer.toBuffer(string, 'base64'); + } + + }, + + buffer: { + /** + * Buffer constructor for Node buffer and buffer pollyfill + */ + toBuffer: function(data, encoding) { + return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? + util.Buffer.from(data, encoding) : new util.Buffer(data, encoding); + }, + + alloc: function(size, fill, encoding) { + if (typeof size !== 'number') { + throw new Error('size passed to alloc must be a number.'); + } + if (typeof util.Buffer.alloc === 'function') { + return util.Buffer.alloc(size, fill, encoding); + } else { + var buf = new util.Buffer(size); + if (fill !== undefined && typeof buf.fill === 'function') { + buf.fill(fill, undefined, undefined, encoding); + } + return buf; + } + }, + + toStream: function toStream(buffer) { + if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer); + + var readable = new (util.stream.Readable)(); + var pos = 0; + readable._read = function(size) { + if (pos >= buffer.length) return readable.push(null); + + var end = pos + size; + if (end > buffer.length) end = buffer.length; + readable.push(buffer.slice(pos, end)); + pos = end; + }; + + return readable; + }, + + /** + * Concatenates a list of Buffer objects. + */ + concat: function(buffers) { + var length = 0, + offset = 0, + buffer = null, i; + + for (i = 0; i < buffers.length; i++) { + length += buffers[i].length; + } + + buffer = util.buffer.alloc(length); + + for (i = 0; i < buffers.length; i++) { + buffers[i].copy(buffer, offset); + offset += buffers[i].length; + } + + return buffer; + } + }, + + string: { + byteLength: function byteLength(string) { + if (string === null || string === undefined) return 0; + if (typeof string === 'string') string = util.buffer.toBuffer(string); + + if (typeof string.byteLength === 'number') { + return string.byteLength; + } else if (typeof string.length === 'number') { + return string.length; + } else if (typeof string.size === 'number') { + return string.size; + } else if (typeof string.path === 'string') { + return __webpack_require__(6).lstatSync(string.path).size; + } else { + throw util.error(new Error('Cannot determine length of ' + string), + { object: string }); + } + }, + + upperFirst: function upperFirst(string) { + return string[0].toUpperCase() + string.substr(1); + }, + + lowerFirst: function lowerFirst(string) { + return string[0].toLowerCase() + string.substr(1); + } + }, + + ini: { + parse: function string(ini) { + var currentSection, map = {}; + util.arrayEach(ini.split(/\r?\n/), function(line) { + line = line.split(/(^|\s)[;#]/)[0]; // remove comments + var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); + if (section) { + currentSection = section[1]; + if (currentSection === '__proto__' || currentSection.split(/\s/)[1] === '__proto__') { + throw util.error( + new Error('Cannot load profile name \'' + currentSection + '\' from shared ini file.') + ); + } + } else if (currentSection) { + var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); + if (item) { + map[currentSection] = map[currentSection] || {}; + map[currentSection][item[1]] = item[2]; + } + } + }); + + return map; + } + }, + + fn: { + noop: function() {}, + callback: function (err) { if (err) throw err; }, + + /** + * Turn a synchronous function into as "async" function by making it call + * a callback. The underlying function is called with all but the last argument, + * which is treated as the callback. The callback is passed passed a first argument + * of null on success to mimick standard node callbacks. + */ + makeAsync: function makeAsync(fn, expectedArgs) { + if (expectedArgs && expectedArgs <= fn.length) { + return fn; + } + + return function() { + var args = Array.prototype.slice.call(arguments, 0); + var callback = args.pop(); + var result = fn.apply(null, args); + callback(result); + }; + } + }, + + /** + * Date and time utility functions. + */ + date: { + + /** + * @return [Date] the current JavaScript date object. Since all + * AWS services rely on this date object, you can override + * this function to provide a special time value to AWS service + * requests. + */ + getDate: function getDate() { + if (!AWS) AWS = __webpack_require__(1); + if (AWS.config.systemClockOffset) { // use offset when non-zero + return new Date(new Date().getTime() + AWS.config.systemClockOffset); + } else { + return new Date(); + } + }, + + /** + * @return [String] the date in ISO-8601 format + */ + iso8601: function iso8601(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); + }, + + /** + * @return [String] the date in RFC 822 format + */ + rfc822: function rfc822(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toUTCString(); + }, + + /** + * @return [Integer] the UNIX timestamp value for the current time + */ + unixTimestamp: function unixTimestamp(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.getTime() / 1000; + }, + + /** + * @param [String,number,Date] date + * @return [Date] + */ + from: function format(date) { + if (typeof date === 'number') { + return new Date(date * 1000); // unix timestamp + } else { + return new Date(date); + } + }, + + /** + * Given a Date or date-like value, this function formats the + * date into a string of the requested value. + * @param [String,number,Date] date + * @param [String] formatter Valid formats are: + # * 'iso8601' + # * 'rfc822' + # * 'unixTimestamp' + * @return [String] + */ + format: function format(date, formatter) { + if (!formatter) formatter = 'iso8601'; + return util.date[formatter](util.date.from(date)); + }, + + parseTimestamp: function parseTimestamp(value) { + if (typeof value === 'number') { // unix timestamp (number) + return new Date(value * 1000); + } else if (value.match(/^\d+$/)) { // unix timestamp + return new Date(value * 1000); + } else if (value.match(/^\d{4}/)) { // iso8601 + return new Date(value); + } else if (value.match(/^\w{3},/)) { // rfc822 + return new Date(value); + } else { + throw util.error( + new Error('unhandled timestamp format: ' + value), + {code: 'TimestampParserError'}); + } + } + + }, + + crypto: { + crc32Table: [ + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, + 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, + 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, + 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, + 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, + 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, + 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, + 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, + 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, + 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, + 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, + 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, + 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, + 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, + 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, + 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, + 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, + 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, + 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, + 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, + 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, + 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, + 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, + 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, + 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, + 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, + 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, + 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, + 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, + 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, + 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, + 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, + 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, + 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, + 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, + 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, + 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, + 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, + 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, + 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, + 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, + 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, + 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, + 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, + 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, + 0x2D02EF8D], + + crc32: function crc32(data) { + var tbl = util.crypto.crc32Table; + var crc = 0 ^ -1; + + if (typeof data === 'string') { + data = util.buffer.toBuffer(data); + } + + for (var i = 0; i < data.length; i++) { + var code = data.readUInt8(i); + crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF]; + } + return (crc ^ -1) >>> 0; + }, + + hmac: function hmac(key, string, digest, fn) { + if (!digest) digest = 'binary'; + if (digest === 'buffer') { digest = undefined; } + if (!fn) fn = 'sha256'; + if (typeof string === 'string') string = util.buffer.toBuffer(string); + return util.crypto.lib.createHmac(fn, key).update(string).digest(digest); + }, + + md5: function md5(data, digest, callback) { + return util.crypto.hash('md5', data, digest, callback); + }, + + sha256: function sha256(data, digest, callback) { + return util.crypto.hash('sha256', data, digest, callback); + }, + + hash: function(algorithm, data, digest, callback) { + var hash = util.crypto.createHash(algorithm); + if (!digest) { digest = 'binary'; } + if (digest === 'buffer') { digest = undefined; } + if (typeof data === 'string') data = util.buffer.toBuffer(data); + var sliceFn = util.arraySliceFn(data); + var isBuffer = util.Buffer.isBuffer(data); + //Identifying objects with an ArrayBuffer as buffers + if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; + + if (callback && typeof data === 'object' && + typeof data.on === 'function' && !isBuffer) { + data.on('data', function(chunk) { hash.update(chunk); }); + data.on('error', function(err) { callback(err); }); + data.on('end', function() { callback(null, hash.digest(digest)); }); + } else if (callback && sliceFn && !isBuffer && + typeof FileReader !== 'undefined') { + // this might be a File/Blob + var index = 0, size = 1024 * 512; + var reader = new FileReader(); + reader.onerror = function() { + callback(new Error('Failed to read data.')); + }; + reader.onload = function() { + var buf = new util.Buffer(new Uint8Array(reader.result)); + hash.update(buf); + index += buf.length; + reader._continueReading(); + }; + reader._continueReading = function() { + if (index >= data.size) { + callback(null, hash.digest(digest)); + return; + } + + var back = index + size; + if (back > data.size) back = data.size; + reader.readAsArrayBuffer(sliceFn.call(data, index, back)); + }; + + reader._continueReading(); + } else { + if (util.isBrowser() && typeof data === 'object' && !isBuffer) { + data = new util.Buffer(new Uint8Array(data)); + } + var out = hash.update(data).digest(digest); + if (callback) callback(null, out); + return out; + } + }, + + toHex: function toHex(data) { + var out = []; + for (var i = 0; i < data.length; i++) { + out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2)); + } + return out.join(''); + }, + + createHash: function createHash(algorithm) { + return util.crypto.lib.createHash(algorithm); + } + + }, + + /** @!ignore */ + + /* Abort constant */ + abort: {}, + + each: function each(object, iterFunction) { + for (var key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + var ret = iterFunction.call(this, key, object[key]); + if (ret === util.abort) break; + } + } + }, + + arrayEach: function arrayEach(array, iterFunction) { + for (var idx in array) { + if (Object.prototype.hasOwnProperty.call(array, idx)) { + var ret = iterFunction.call(this, array[idx], parseInt(idx, 10)); + if (ret === util.abort) break; + } + } + }, + + update: function update(obj1, obj2) { + util.each(obj2, function iterator(key, item) { + obj1[key] = item; + }); + return obj1; + }, + + merge: function merge(obj1, obj2) { + return util.update(util.copy(obj1), obj2); + }, + + copy: function copy(object) { + if (object === null || object === undefined) return object; + var dupe = {}; + // jshint forin:false + for (var key in object) { + dupe[key] = object[key]; + } + return dupe; + }, + + isEmpty: function isEmpty(obj) { + for (var prop in obj) { + if (Object.prototype.hasOwnProperty.call(obj, prop)) { + return false; + } + } + return true; + }, + + arraySliceFn: function arraySliceFn(obj) { + var fn = obj.slice || obj.webkitSlice || obj.mozSlice; + return typeof fn === 'function' ? fn : null; + }, + + isType: function isType(obj, type) { + // handle cross-"frame" objects + if (typeof type === 'function') type = util.typeName(type); + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + typeName: function typeName(type) { + if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name; + var str = type.toString(); + var match = str.match(/^\s*function (.+)\(/); + return match ? match[1] : str; + }, + + error: function error(err, options) { + var originalError = null; + if (typeof err.message === 'string' && err.message !== '') { + if (typeof options === 'string' || (options && options.message)) { + originalError = util.copy(err); + originalError.message = err.message; + } + } + err.message = err.message || null; + + if (typeof options === 'string') { + err.message = options; + } else if (typeof options === 'object' && options !== null) { + util.update(err, options); + if (options.message) + err.message = options.message; + if (options.code || options.name) + err.code = options.code || options.name; + if (options.stack) + err.stack = options.stack; + } + + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(err, 'name', {writable: true, enumerable: false}); + Object.defineProperty(err, 'message', {enumerable: true}); + } + + err.name = String(options && options.name || err.name || err.code || 'Error'); + err.time = new Date(); + + if (originalError) err.originalError = originalError; + + return err; + }, + + /** + * @api private + */ + inherit: function inherit(klass, features) { + var newObject = null; + if (features === undefined) { + features = klass; + klass = Object; + newObject = {}; + } else { + var ctor = function ConstructorWrapper() {}; + ctor.prototype = klass.prototype; + newObject = new ctor(); + } + + // constructor not supplied, create pass-through ctor + if (features.constructor === Object) { + features.constructor = function() { + if (klass !== Object) { + return klass.apply(this, arguments); + } + }; + } + + features.constructor.prototype = newObject; + util.update(features.constructor.prototype, features); + features.constructor.__super__ = klass; + return features.constructor; + }, + + /** + * @api private + */ + mixin: function mixin() { + var klass = arguments[0]; + for (var i = 1; i < arguments.length; i++) { + // jshint forin:false + for (var prop in arguments[i].prototype) { + var fn = arguments[i].prototype[prop]; + if (prop !== 'constructor') { + klass.prototype[prop] = fn; + } + } + } + return klass; + }, + + /** + * @api private + */ + hideProperties: function hideProperties(obj, props) { + if (typeof Object.defineProperty !== 'function') return; + + util.arrayEach(props, function (key) { + Object.defineProperty(obj, key, { + enumerable: false, writable: true, configurable: true }); + }); + }, + + /** + * @api private + */ + property: function property(obj, name, value, enumerable, isValue) { + var opts = { + configurable: true, + enumerable: enumerable !== undefined ? enumerable : true + }; + if (typeof value === 'function' && !isValue) { + opts.get = value; + } + else { + opts.value = value; opts.writable = true; + } + + Object.defineProperty(obj, name, opts); + }, + + /** + * @api private + */ + memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { + var cachedValue = null; + + // build enumerable attribute for each value with lazy accessor. + util.property(obj, name, function() { + if (cachedValue === null) { + cachedValue = get(); + } + return cachedValue; + }, enumerable); + }, + + /** + * TODO Remove in major version revision + * This backfill populates response data without the + * top-level payload name. + * + * @api private + */ + hoistPayloadMember: function hoistPayloadMember(resp) { + var req = resp.request; + var operationName = req.operation; + var operation = req.service.api.operations[operationName]; + var output = operation.output; + if (output.payload && !operation.hasEventOutput) { + var payloadMember = output.members[output.payload]; + var responsePayload = resp.data[output.payload]; + if (payloadMember.type === 'structure') { + util.each(responsePayload, function(key, value) { + util.property(resp.data, key, value, false); + }); + } + } + }, + + /** + * Compute SHA-256 checksums of streams + * + * @api private + */ + computeSha256: function computeSha256(body, done) { + if (util.isNode()) { + var Stream = util.stream.Stream; + var fs = __webpack_require__(6); + if (typeof Stream === 'function' && body instanceof Stream) { + if (typeof body.path === 'string') { // assume file object + var settings = {}; + if (typeof body.start === 'number') { + settings.start = body.start; + } + if (typeof body.end === 'number') { + settings.end = body.end; + } + body = fs.createReadStream(body.path, settings); + } else { // TODO support other stream types + return done(new Error('Non-file stream objects are ' + + 'not supported with SigV4')); + } + } + } + + util.crypto.sha256(body, 'hex', function(err, sha) { + if (err) done(err); + else done(null, sha); + }); + }, + + /** + * @api private + */ + isClockSkewed: function isClockSkewed(serverTime) { + if (serverTime) { + util.property(AWS.config, 'isClockSkewed', + Math.abs(new Date().getTime() - serverTime) >= 300000, false); + return AWS.config.isClockSkewed; + } + }, + + applyClockOffset: function applyClockOffset(serverTime) { + if (serverTime) + AWS.config.systemClockOffset = serverTime - new Date().getTime(); + }, + + /** + * @api private + */ + extractRequestId: function extractRequestId(resp) { + var requestId = resp.httpResponse.headers['x-amz-request-id'] || + resp.httpResponse.headers['x-amzn-requestid']; + + if (!requestId && resp.data && resp.data.ResponseMetadata) { + requestId = resp.data.ResponseMetadata.RequestId; + } + + if (requestId) { + resp.requestId = requestId; + } + + if (resp.error) { + resp.error.requestId = requestId; + } + }, + + /** + * @api private + */ + addPromises: function addPromises(constructors, PromiseDependency) { + var deletePromises = false; + if (PromiseDependency === undefined && AWS && AWS.config) { + PromiseDependency = AWS.config.getPromisesDependency(); + } + if (PromiseDependency === undefined && typeof Promise !== 'undefined') { + PromiseDependency = Promise; + } + if (typeof PromiseDependency !== 'function') deletePromises = true; + if (!Array.isArray(constructors)) constructors = [constructors]; + + for (var ind = 0; ind < constructors.length; ind++) { + var constructor = constructors[ind]; + if (deletePromises) { + if (constructor.deletePromisesFromClass) { + constructor.deletePromisesFromClass(); + } + } else if (constructor.addPromisesToClass) { + constructor.addPromisesToClass(PromiseDependency); + } + } + }, + + /** + * @api private + * Return a function that will return a promise whose fate is decided by the + * callback behavior of the given method with `methodName`. The method to be + * promisified should conform to node.js convention of accepting a callback as + * last argument and calling that callback with error as the first argument + * and success value on the second argument. + */ + promisifyMethod: function promisifyMethod(methodName, PromiseDependency) { + return function promise() { + var self = this; + var args = Array.prototype.slice.call(arguments); + return new PromiseDependency(function(resolve, reject) { + args.push(function(err, data) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + self[methodName].apply(self, args); + }); + }; + }, + + /** + * @api private + */ + isDualstackAvailable: function isDualstackAvailable(service) { + if (!service) return false; + var metadata = __webpack_require__(7); + if (typeof service !== 'string') service = service.serviceIdentifier; + if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false; + return !!metadata[service].dualstackAvailable; + }, + + /** + * @api private + */ + calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) { + if (!retryDelayOptions) retryDelayOptions = {}; + var customBackoff = retryDelayOptions.customBackoff || null; + if (typeof customBackoff === 'function') { + return customBackoff(retryCount, err); + } + var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100; + var delay = Math.random() * (Math.pow(2, retryCount) * base); + return delay; + }, + + /** + * @api private + */ + handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) { + if (!options) options = {}; + var http = AWS.HttpClient.getInstance(); + var httpOptions = options.httpOptions || {}; + var retryCount = 0; + + var errCallback = function(err) { + var maxRetries = options.maxRetries || 0; + if (err && err.code === 'TimeoutError') err.retryable = true; + + // Call `calculateRetryDelay()` only when relevant, see #3401 + if (err && err.retryable && retryCount < maxRetries) { + var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err); + if (delay >= 0) { + retryCount++; + setTimeout(sendRequest, delay + (err.retryAfter || 0)); + return; + } + } + cb(err); + }; + + var sendRequest = function() { + var data = ''; + http.handleRequest(httpRequest, httpOptions, function(httpResponse) { + httpResponse.on('data', function(chunk) { data += chunk.toString(); }); + httpResponse.on('end', function() { + var statusCode = httpResponse.statusCode; + if (statusCode < 300) { + cb(null, data); + } else { + var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0; + var err = util.error(new Error(), + { + statusCode: statusCode, + retryable: statusCode >= 500 || statusCode === 429 + } + ); + if (retryAfter && err.retryable) err.retryAfter = retryAfter; + errCallback(err); + } + }); + }, errCallback); + }; + + AWS.util.defer(sendRequest); + }, + + /** + * @api private + */ + uuid: { + v4: function uuidV4() { + return __webpack_require__(8).v4(); + } + }, + + /** + * @api private + */ + convertPayloadToString: function convertPayloadToString(resp) { + var req = resp.request; + var operation = req.operation; + var rules = req.service.api.operations[operation].output || {}; + if (rules.payload && resp.data[rules.payload]) { + resp.data[rules.payload] = resp.data[rules.payload].toString(); + } + }, + + /** + * @api private + */ + defer: function defer(callback) { + if (typeof process === 'object' && typeof process.nextTick === 'function') { + process.nextTick(callback); + } else if (typeof setImmediate === 'function') { + setImmediate(callback); + } else { + setTimeout(callback, 0); + } + }, + + /** + * @api private + */ + getRequestPayloadShape: function getRequestPayloadShape(req) { + var operations = req.service.api.operations; + if (!operations) return undefined; + var operation = (operations || {})[req.operation]; + if (!operation || !operation.input || !operation.input.payload) return undefined; + return operation.input.members[operation.input.payload]; + }, + + getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) { + var profiles = {}; + var profilesFromConfig = {}; + if (process.env[util.configOptInEnv]) { + var profilesFromConfig = iniLoader.loadFrom({ + isConfig: true, + filename: process.env[util.sharedConfigFileEnv] + }); + } + var profilesFromCreds= {}; + try { + var profilesFromCreds = iniLoader.loadFrom({ + filename: filename || + (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv]) + }); + } catch (error) { + // if using config, assume it is fully descriptive without a credentials file: + if (!process.env[util.configOptInEnv]) throw error; + } + for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) { + profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]); + } + for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) { + profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]); + } + return profiles; + + /** + * Roughly the semantics of `Object.assign(target, source)` + */ + function objectAssign(target, source) { + for (var i = 0, keys = Object.keys(source); i < keys.length; i++) { + target[keys[i]] = source[keys[i]]; + } + return target; + } + }, + + /** + * @api private + */ + ARN: { + validate: function validateARN(str) { + return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6; + }, + parse: function parseARN(arn) { + var matched = arn.split(':'); + return { + partition: matched[1], + service: matched[2], + region: matched[3], + accountId: matched[4], + resource: matched.slice(5).join(':') + }; + }, + build: function buildARN(arnObject) { + if ( + arnObject.service === undefined || + arnObject.region === undefined || + arnObject.accountId === undefined || + arnObject.resource === undefined + ) throw util.error(new Error('Input ARN object is invalid')); + return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service + + ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource; + } + }, + + /** + * @api private + */ + defaultProfile: 'default', + + /** + * @api private + */ + configOptInEnv: 'AWS_SDK_LOAD_CONFIG', + + /** + * @api private + */ + sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE', + + /** + * @api private + */ + sharedConfigFileEnv: 'AWS_CONFIG_FILE', + + /** + * @api private + */ + imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED' + }; + + /** + * @api private + */ + module.exports = util; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(4).setImmediate)) + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + + // shim for using process in browser + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + (function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; + + process.listeners = function (name) { return [] } + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) || + (typeof self !== "undefined" && self) || + window; + var apply = Function.prototype.apply; + + // DOM APIs, for completeness + + exports.setTimeout = function() { + return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout); + }; + exports.setInterval = function() { + return new Timeout(apply.call(setInterval, scope, arguments), clearInterval); + }; + exports.clearTimeout = + exports.clearInterval = function(timeout) { + if (timeout) { + timeout.close(); + } + }; + + function Timeout(id, clearFn) { + this._id = id; + this._clearFn = clearFn; + } + Timeout.prototype.unref = Timeout.prototype.ref = function() {}; + Timeout.prototype.close = function() { + this._clearFn.call(scope, this._id); + }; + + // Does not start the time, just sets up the members needed. + exports.enroll = function(item, msecs) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = msecs; + }; + + exports.unenroll = function(item) { + clearTimeout(item._idleTimeoutId); + item._idleTimeout = -1; + }; + + exports._unrefActive = exports.active = function(item) { + clearTimeout(item._idleTimeoutId); + + var msecs = item._idleTimeout; + if (msecs >= 0) { + item._idleTimeoutId = setTimeout(function onTimeout() { + if (item._onTimeout) + item._onTimeout(); + }, msecs); + } + }; + + // setimmediate attaches itself to the global object + __webpack_require__(5); + // On some exotic environments, it's not clear which object `setimmediate` was + // able to install onto. Search each possibility in the same order as the + // `setimmediate` library. + exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) || + (typeof global !== "undefined" && global.setImmediate) || + (this && this.setImmediate); + exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) || + (typeof global !== "undefined" && global.clearImmediate) || + (this && this.clearImmediate); + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { + "use strict"; + + if (global.setImmediate) { + return; + } + + var nextHandle = 1; // Spec says greater than zero + var tasksByHandle = {}; + var currentlyRunningATask = false; + var doc = global.document; + var registerImmediate; + + function setImmediate(callback) { + // Callback can either be a function or a string + if (typeof callback !== "function") { + callback = new Function("" + callback); + } + // Copy function arguments + var args = new Array(arguments.length - 1); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i + 1]; + } + // Store and register the task + var task = { callback: callback, args: args }; + tasksByHandle[nextHandle] = task; + registerImmediate(nextHandle); + return nextHandle++; + } + + function clearImmediate(handle) { + delete tasksByHandle[handle]; + } + + function run(task) { + var callback = task.callback; + var args = task.args; + switch (args.length) { + case 0: + callback(); + break; + case 1: + callback(args[0]); + break; + case 2: + callback(args[0], args[1]); + break; + case 3: + callback(args[0], args[1], args[2]); + break; + default: + callback.apply(undefined, args); + break; + } + } + + function runIfPresent(handle) { + // From the spec: "Wait until any invocations of this algorithm started before this one have completed." + // So if we're currently running a task, we'll need to delay this invocation. + if (currentlyRunningATask) { + // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a + // "too much recursion" error. + setTimeout(runIfPresent, 0, handle); + } else { + var task = tasksByHandle[handle]; + if (task) { + currentlyRunningATask = true; + try { + run(task); + } finally { + clearImmediate(handle); + currentlyRunningATask = false; + } + } + } + } + + function installNextTickImplementation() { + registerImmediate = function(handle) { + process.nextTick(function () { runIfPresent(handle); }); + }; + } + + function canUsePostMessage() { + // The test against `importScripts` prevents this implementation from being installed inside a web worker, + // where `global.postMessage` means something completely different and can't be used for this purpose. + if (global.postMessage && !global.importScripts) { + var postMessageIsAsynchronous = true; + var oldOnMessage = global.onmessage; + global.onmessage = function() { + postMessageIsAsynchronous = false; + }; + global.postMessage("", "*"); + global.onmessage = oldOnMessage; + return postMessageIsAsynchronous; + } + } + + function installPostMessageImplementation() { + // Installs an event handler on `global` for the `message` event: see + // * https://developer.mozilla.org/en/DOM/window.postMessage + // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages + + var messagePrefix = "setImmediate$" + Math.random() + "$"; + var onGlobalMessage = function(event) { + if (event.source === global && + typeof event.data === "string" && + event.data.indexOf(messagePrefix) === 0) { + runIfPresent(+event.data.slice(messagePrefix.length)); + } + }; + + if (global.addEventListener) { + global.addEventListener("message", onGlobalMessage, false); + } else { + global.attachEvent("onmessage", onGlobalMessage); + } + + registerImmediate = function(handle) { + global.postMessage(messagePrefix + handle, "*"); + }; + } + + function installMessageChannelImplementation() { + var channel = new MessageChannel(); + channel.port1.onmessage = function(event) { + var handle = event.data; + runIfPresent(handle); + }; + + registerImmediate = function(handle) { + channel.port2.postMessage(handle); + }; + } + + function installReadyStateChangeImplementation() { + var html = doc.documentElement; + registerImmediate = function(handle) { + // Create a + +``` + +For version 3 uuids: + +```html + + +``` + +For version 4 uuids: + +```html + + +``` + +For version 5 uuids: + +```html + + +``` + +## API + +### Version 1 + +```javascript +const uuidv1 = require('uuid/v1'); + +// Incantations +uuidv1(); +uuidv1(options); +uuidv1(options, buffer, offset); +``` + +Generate and return a RFC4122 v1 (timestamp-based) UUID. + +* `options` - (Object) Optional uuid state to apply. Properties may include: + + * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. + * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. + * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used. + * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. + +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Note: The id is generated guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) + +Example: Generate string UUID with fully-specified options + +```javascript +const v1options = { + node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], + clockseq: 0x1234, + msecs: new Date('2011-11-01').getTime(), + nsecs: 5678 +}; +uuidv1(v1options); // ⇨ '710b962e-041c-11e1-9234-0123456789ab' + +``` + +Example: In-place generation of two binary IDs + +```javascript +// Generate two ids in an array +const arr = new Array(); +uuidv1(null, arr, 0); // ⇨ [ 69, 117, 109, 208, 123, 26, 17, 232, 146, 52, 45, 66, 178, 27, 26, 62 ] +uuidv1(null, arr, 16); // ⇨ [ 69, 117, 109, 208, 123, 26, 17, 232, 146, 52, 45, 66, 178, 27, 26, 62, 69, 117, 109, 209, 123, 26, 17, 232, 146, 52, 45, 66, 178, 27, 26, 62 ] + +``` + +### Version 3 + +```javascript +const uuidv3 = require('uuid/v3'); + +// Incantations +uuidv3(name, namespace); +uuidv3(name, namespace, buffer); +uuidv3(name, namespace, buffer, offset); +``` + +Generate and return a RFC4122 v3 UUID. + +* `name` - (String | Array[]) "name" to create UUID with +* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Example: + +```javascript +uuidv3('hello world', MY_NAMESPACE); // ⇨ '042ffd34-d989-321c-ad06-f60826172424' + +``` + +### Version 4 + +```javascript +const uuidv4 = require('uuid/v4') + +// Incantations +uuidv4(); +uuidv4(options); +uuidv4(options, buffer, offset); +``` + +Generate and return a RFC4122 v4 UUID. + +* `options` - (Object) Optional uuid state to apply. Properties may include: + * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values + * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255) +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Example: Generate string UUID with predefined `random` values + +```javascript +const v4options = { + random: [ + 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, + 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 + ] +}; +uuidv4(v4options); // ⇨ '109156be-c4fb-41ea-b1b4-efe1671c5836' + +``` + +Example: Generate two IDs in a single buffer + +```javascript +const buffer = new Array(); +uuidv4(null, buffer, 0); // ⇨ [ 54, 122, 218, 70, 45, 70, 65, 24, 171, 53, 95, 130, 83, 195, 242, 45 ] +uuidv4(null, buffer, 16); // ⇨ [ 54, 122, 218, 70, 45, 70, 65, 24, 171, 53, 95, 130, 83, 195, 242, 45, 108, 204, 255, 103, 171, 86, 76, 94, 178, 225, 188, 236, 150, 20, 151, 87 ] + +``` + +### Version 5 + +```javascript +const uuidv5 = require('uuid/v5'); + +// Incantations +uuidv5(name, namespace); +uuidv5(name, namespace, buffer); +uuidv5(name, namespace, buffer, offset); +``` + +Generate and return a RFC4122 v5 UUID. + +* `name` - (String | Array[]) "name" to create UUID with +* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Example: + +```javascript +uuidv5('hello world', MY_NAMESPACE); // ⇨ '9f282611-e0fd-5650-8953-89c8e342da0b' + +``` + +## Command Line + +UUIDs can be generated from the command line with the `uuid` command. + +```shell +$ uuid +ddeb27fb-d9a0-4624-be4d-4615062daed4 + +$ uuid v1 +02d37060-d446-11e7-a9fa-7bdae751ebe1 +``` + +Type `uuid --help` for usage details + +## Testing + +```shell +npm test +``` + +---- +Markdown generated from [README_js.md](README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd) \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/README_js.md b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/README_js.md new file mode 100644 index 0000000000000000000000000000000000000000..f34453be407b7733d67253581d5a189963a559e6 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/README_js.md @@ -0,0 +1,280 @@ +```javascript --hide +runmd.onRequire = path => path.replace(/^uuid/, './'); +``` + +# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) # + +Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. + +Features: + +* Support for version 1, 3, 4 and 5 UUIDs +* Cross-platform +* Uses cryptographically-strong random number APIs (when available) +* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883)) + +[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be +supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.] + +## Quickstart - CommonJS (Recommended) + +```shell +npm install uuid +``` + +Then generate your uuid version of choice ... + +Version 1 (timestamp): + +```javascript --run v1 +const uuidv1 = require('uuid/v1'); +uuidv1(); // RESULT +``` + +Version 3 (namespace): + +```javascript --run v3 +const uuidv3 = require('uuid/v3'); + +// ... using predefined DNS namespace (for domain names) +uuidv3('hello.example.com', uuidv3.DNS); // RESULT + +// ... using predefined URL namespace (for, well, URLs) +uuidv3('http://example.com/hello', uuidv3.URL); // RESULT + +// ... using a custom namespace +// +// Note: Custom namespaces should be a UUID string specific to your application! +// E.g. the one here was generated using this modules `uuid` CLI. +const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341'; +uuidv3('Hello, World!', MY_NAMESPACE); // RESULT +``` + +Version 4 (random): + +```javascript --run v4 +const uuidv4 = require('uuid/v4'); +uuidv4(); // RESULT +``` + +Version 5 (namespace): + +```javascript --run v5 +const uuidv5 = require('uuid/v5'); + +// ... using predefined DNS namespace (for domain names) +uuidv5('hello.example.com', uuidv5.DNS); // RESULT + +// ... using predefined URL namespace (for, well, URLs) +uuidv5('http://example.com/hello', uuidv5.URL); // RESULT + +// ... using a custom namespace +// +// Note: Custom namespaces should be a UUID string specific to your application! +// E.g. the one here was generated using this modules `uuid` CLI. +const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341'; +uuidv5('Hello, World!', MY_NAMESPACE); // RESULT +``` + +## Quickstart - Browser-ready Versions + +Browser-ready versions of this module are available via [wzrd.in](https://github.com/jfhbrook/wzrd.in). + +For version 1 uuids: + +```html + + +``` + +For version 3 uuids: + +```html + + +``` + +For version 4 uuids: + +```html + + +``` + +For version 5 uuids: + +```html + + +``` + +## API + +### Version 1 + +```javascript +const uuidv1 = require('uuid/v1'); + +// Incantations +uuidv1(); +uuidv1(options); +uuidv1(options, buffer, offset); +``` + +Generate and return a RFC4122 v1 (timestamp-based) UUID. + +* `options` - (Object) Optional uuid state to apply. Properties may include: + + * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. + * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. + * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used. + * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. + +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Note: The id is generated guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) + +Example: Generate string UUID with fully-specified options + +```javascript --run v1 +const v1options = { + node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], + clockseq: 0x1234, + msecs: new Date('2011-11-01').getTime(), + nsecs: 5678 +}; +uuidv1(v1options); // RESULT +``` + +Example: In-place generation of two binary IDs + +```javascript --run v1 +// Generate two ids in an array +const arr = new Array(); +uuidv1(null, arr, 0); // RESULT +uuidv1(null, arr, 16); // RESULT +``` + +### Version 3 + +```javascript +const uuidv3 = require('uuid/v3'); + +// Incantations +uuidv3(name, namespace); +uuidv3(name, namespace, buffer); +uuidv3(name, namespace, buffer, offset); +``` + +Generate and return a RFC4122 v3 UUID. + +* `name` - (String | Array[]) "name" to create UUID with +* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Example: + +```javascript --run v3 +uuidv3('hello world', MY_NAMESPACE); // RESULT +``` + +### Version 4 + +```javascript +const uuidv4 = require('uuid/v4') + +// Incantations +uuidv4(); +uuidv4(options); +uuidv4(options, buffer, offset); +``` + +Generate and return a RFC4122 v4 UUID. + +* `options` - (Object) Optional uuid state to apply. Properties may include: + * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values + * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255) +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Example: Generate string UUID with predefined `random` values + +```javascript --run v4 +const v4options = { + random: [ + 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, + 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 + ] +}; +uuidv4(v4options); // RESULT +``` + +Example: Generate two IDs in a single buffer + +```javascript --run v4 +const buffer = new Array(); +uuidv4(null, buffer, 0); // RESULT +uuidv4(null, buffer, 16); // RESULT +``` + +### Version 5 + +```javascript +const uuidv5 = require('uuid/v5'); + +// Incantations +uuidv5(name, namespace); +uuidv5(name, namespace, buffer); +uuidv5(name, namespace, buffer, offset); +``` + +Generate and return a RFC4122 v5 UUID. + +* `name` - (String | Array[]) "name" to create UUID with +* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values +* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. +* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 + +Returns `buffer`, if specified, otherwise the string form of the UUID + +Example: + +```javascript --run v5 +uuidv5('hello world', MY_NAMESPACE); // RESULT +``` + +## Command Line + +UUIDs can be generated from the command line with the `uuid` command. + +```shell +$ uuid +ddeb27fb-d9a0-4624-be4d-4615062daed4 + +$ uuid v1 +02d37060-d446-11e7-a9fa-7bdae751ebe1 +``` + +Type `uuid --help` for usage details + +## Testing + +```shell +npm test +``` diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/bin/uuid b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/bin/uuid new file mode 100644 index 0000000000000000000000000000000000000000..502626e60f5c93d9ba64a106fecddc3c8469f236 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/bin/uuid @@ -0,0 +1,65 @@ +#!/usr/bin/env node +var assert = require('assert'); + +function usage() { + console.log('Usage:'); + console.log(' uuid'); + console.log(' uuid v1'); + console.log(' uuid v3 '); + console.log(' uuid v4'); + console.log(' uuid v5 '); + console.log(' uuid --help'); + console.log('\nNote: may be "URL" or "DNS" to use the corresponding UUIDs defined by RFC4122'); +} + +var args = process.argv.slice(2); + +if (args.indexOf('--help') >= 0) { + usage(); + process.exit(0); +} +var version = args.shift() || 'v4'; + +switch (version) { + case 'v1': + var uuidV1 = require('../v1'); + console.log(uuidV1()); + break; + + case 'v3': + var uuidV3 = require('../v3'); + + var name = args.shift(); + var namespace = args.shift(); + assert(name != null, 'v3 name not specified'); + assert(namespace != null, 'v3 namespace not specified'); + + if (namespace == 'URL') namespace = uuidV3.URL; + if (namespace == 'DNS') namespace = uuidV3.DNS; + + console.log(uuidV3(name, namespace)); + break; + + case 'v4': + var uuidV4 = require('../v4'); + console.log(uuidV4()); + break; + + case 'v5': + var uuidV5 = require('../v5'); + + var name = args.shift(); + var namespace = args.shift(); + assert(name != null, 'v5 name not specified'); + assert(namespace != null, 'v5 namespace not specified'); + + if (namespace == 'URL') namespace = uuidV5.URL; + if (namespace == 'DNS') namespace = uuidV5.DNS; + + console.log(uuidV5(name, namespace)); + break; + + default: + usage(); + process.exit(1); +} diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/index.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/index.js new file mode 100644 index 0000000000000000000000000000000000000000..e96791ab4ba4012650fe13587cb7f24e694d287b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/index.js @@ -0,0 +1,8 @@ +var v1 = require('./v1'); +var v4 = require('./v4'); + +var uuid = v4; +uuid.v1 = v1; +uuid.v4 = v4; + +module.exports = uuid; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js new file mode 100644 index 0000000000000000000000000000000000000000..847c482843c8201dee90bb5c037a4f86a794356b --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js @@ -0,0 +1,24 @@ +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ +var byteToHex = []; +for (var i = 0; i < 256; ++i) { + byteToHex[i] = (i + 0x100).toString(16).substr(1); +} + +function bytesToUuid(buf, offset) { + var i = offset || 0; + var bth = byteToHex; + // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 + return ([bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]]]).join(''); +} + +module.exports = bytesToUuid; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/md5-browser.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/md5-browser.js new file mode 100644 index 0000000000000000000000000000000000000000..9b3b6c7eff8cd1bd9c8f30d2993fffed2b701b6a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/md5-browser.js @@ -0,0 +1,216 @@ +/* + * Browser-compatible JavaScript MD5 + * + * Modification of JavaScript MD5 + * https://github.com/blueimp/JavaScript-MD5 + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * https://opensource.org/licenses/MIT + * + * Based on + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +'use strict'; + +function md5(bytes) { + if (typeof(bytes) == 'string') { + var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape + bytes = new Array(msg.length); + for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i); + } + + return md5ToHexEncodedArray( + wordsToMd5( + bytesToWords(bytes) + , bytes.length * 8) + ); +} + + +/* +* Convert an array of little-endian words to an array of bytes +*/ +function md5ToHexEncodedArray(input) { + var i; + var x; + var output = []; + var length32 = input.length * 32; + var hexTab = '0123456789abcdef'; + var hex; + + for (i = 0; i < length32; i += 8) { + x = (input[i >> 5] >>> (i % 32)) & 0xFF; + + hex = parseInt(hexTab.charAt((x >>> 4) & 0x0F) + hexTab.charAt(x & 0x0F), 16); + + output.push(hex); + } + return output; +} + +/* +* Calculate the MD5 of an array of little-endian words, and a bit length. +*/ +function wordsToMd5(x, len) { + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var i; + var olda; + var oldb; + var oldc; + var oldd; + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + + var d = 271733878; + + for (i = 0; i < x.length; i += 16) { + olda = a; + oldb = b; + oldc = c; + oldd = d; + + a = md5ff(a, b, c, d, x[i], 7, -680876936); + d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); + c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); + b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); + a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); + d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); + c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); + b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); + a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); + d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); + c = md5ff(c, d, a, b, x[i + 10], 17, -42063); + b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); + a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); + d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); + c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); + b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); + + a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); + d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); + c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); + b = md5gg(b, c, d, a, x[i], 20, -373897302); + a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); + d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); + c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); + b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); + a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); + d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); + c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); + b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); + a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); + d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); + c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); + b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); + + a = md5hh(a, b, c, d, x[i + 5], 4, -378558); + d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); + c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); + b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); + a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); + d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); + c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); + b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); + a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); + d = md5hh(d, a, b, c, x[i], 11, -358537222); + c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); + b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); + a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); + d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); + c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); + b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); + + a = md5ii(a, b, c, d, x[i], 6, -198630844); + d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); + c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); + b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); + a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); + d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); + c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); + b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); + a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); + d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); + c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); + b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); + a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); + d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); + c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); + b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); + + a = safeAdd(a, olda); + b = safeAdd(b, oldb); + c = safeAdd(c, oldc); + d = safeAdd(d, oldd); + } + return [a, b, c, d]; +} + +/* +* Convert an array bytes to an array of little-endian words +* Characters >255 have their high-byte silently ignored. +*/ +function bytesToWords(input) { + var i; + var output = []; + output[(input.length >> 2) - 1] = undefined; + for (i = 0; i < output.length; i += 1) { + output[i] = 0; + } + var length8 = input.length * 8; + for (i = 0; i < length8; i += 8) { + output[i >> 5] |= (input[(i / 8)] & 0xFF) << (i % 32); + } + + return output; +} + +/* +* Add integers, wrapping at 2^32. This uses 16-bit operations internally +* to work around bugs in some JS interpreters. +*/ +function safeAdd(x, y) { + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* +* Bitwise rotate a 32-bit number to the left. +*/ +function bitRotateLeft(num, cnt) { + return (num << cnt) | (num >>> (32 - cnt)); +} + +/* +* These functions implement the four basic operations the algorithm uses. +*/ +function md5cmn(q, a, b, x, s, t) { + return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); +} +function md5ff(a, b, c, d, x, s, t) { + return md5cmn((b & c) | ((~b) & d), a, b, x, s, t); +} +function md5gg(a, b, c, d, x, s, t) { + return md5cmn((b & d) | (c & (~d)), a, b, x, s, t); +} +function md5hh(a, b, c, d, x, s, t) { + return md5cmn(b ^ c ^ d, a, b, x, s, t); +} +function md5ii(a, b, c, d, x, s, t) { + return md5cmn(c ^ (b | (~d)), a, b, x, s, t); +} + +module.exports = md5; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/md5.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/md5.js new file mode 100644 index 0000000000000000000000000000000000000000..7044b872f57e41710d3199f7dde74f7f286ec180 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/md5.js @@ -0,0 +1,25 @@ +'use strict'; + +var crypto = require('crypto'); + +function md5(bytes) { + if (typeof Buffer.from === 'function') { + // Modern Buffer API + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + } else { + // Pre-v4 Buffer API + if (Array.isArray(bytes)) { + bytes = new Buffer(bytes); + } else if (typeof bytes === 'string') { + bytes = new Buffer(bytes, 'utf8'); + } + } + + return crypto.createHash('md5').update(bytes).digest(); +} + +module.exports = md5; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js new file mode 100644 index 0000000000000000000000000000000000000000..6361fb81479632fb9aa7edf305de7543bd20a53e --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js @@ -0,0 +1,34 @@ +// Unique ID creation requires a high quality random # generator. In the +// browser this is a little complicated due to unknown quality of Math.random() +// and inconsistent support for the `crypto` API. We do the best we can via +// feature-detection + +// getRandomValues needs to be invoked in a context where "this" is a Crypto +// implementation. Also, find the complete implementation of crypto on IE11. +var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || + (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); + +if (getRandomValues) { + // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto + var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef + + module.exports = function whatwgRNG() { + getRandomValues(rnds8); + return rnds8; + }; +} else { + // Math.random()-based (RNG) + // + // If all else fails, use Math.random(). It's fast, but is of unspecified + // quality. + var rnds = new Array(16); + + module.exports = function mathRNG() { + for (var i = 0, r; i < 16; i++) { + if ((i & 0x03) === 0) r = Math.random() * 0x100000000; + rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; + } + + return rnds; + }; +} diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/rng.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/rng.js new file mode 100644 index 0000000000000000000000000000000000000000..58f0dc9cfb677c4eb388fd4ed843a0f5194e81a8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/rng.js @@ -0,0 +1,8 @@ +// Unique ID creation requires a high quality random # generator. In node.js +// this is pretty straight-forward - we use the crypto API. + +var crypto = require('crypto'); + +module.exports = function nodeRNG() { + return crypto.randomBytes(16); +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/sha1-browser.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/sha1-browser.js new file mode 100644 index 0000000000000000000000000000000000000000..5758ed75c961eec4d42afa9679d4c7a2a92bf002 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/sha1-browser.js @@ -0,0 +1,89 @@ +// Adapted from Chris Veness' SHA1 code at +// http://www.movable-type.co.uk/scripts/sha1.html +'use strict'; + +function f(s, x, y, z) { + switch (s) { + case 0: return (x & y) ^ (~x & z); + case 1: return x ^ y ^ z; + case 2: return (x & y) ^ (x & z) ^ (y & z); + case 3: return x ^ y ^ z; + } +} + +function ROTL(x, n) { + return (x << n) | (x>>> (32 - n)); +} + +function sha1(bytes) { + var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; + var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; + + if (typeof(bytes) == 'string') { + var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape + bytes = new Array(msg.length); + for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i); + } + + bytes.push(0x80); + + var l = bytes.length/4 + 2; + var N = Math.ceil(l/16); + var M = new Array(N); + + for (var i=0; i>> 0; + e = d; + d = c; + c = ROTL(b, 30) >>> 0; + b = a; + a = T; + } + + H[0] = (H[0] + a) >>> 0; + H[1] = (H[1] + b) >>> 0; + H[2] = (H[2] + c) >>> 0; + H[3] = (H[3] + d) >>> 0; + H[4] = (H[4] + e) >>> 0; + } + + return [ + H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, + H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, + H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, + H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, + H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff + ]; +} + +module.exports = sha1; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/sha1.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/sha1.js new file mode 100644 index 0000000000000000000000000000000000000000..0b54b25072c66ad2b4b44e112ed9d8bb36c9de1d --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/sha1.js @@ -0,0 +1,25 @@ +'use strict'; + +var crypto = require('crypto'); + +function sha1(bytes) { + if (typeof Buffer.from === 'function') { + // Modern Buffer API + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + } else { + // Pre-v4 Buffer API + if (Array.isArray(bytes)) { + bytes = new Buffer(bytes); + } else if (typeof bytes === 'string') { + bytes = new Buffer(bytes, 'utf8'); + } + } + + return crypto.createHash('sha1').update(bytes).digest(); +} + +module.exports = sha1; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/v35.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/v35.js new file mode 100644 index 0000000000000000000000000000000000000000..8b066cc5e3ae6ffe01b16fdbc59714a26d843727 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/lib/v35.js @@ -0,0 +1,57 @@ +var bytesToUuid = require('./bytesToUuid'); + +function uuidToBytes(uuid) { + // Note: We assume we're being passed a valid uuid string + var bytes = []; + uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) { + bytes.push(parseInt(hex, 16)); + }); + + return bytes; +} + +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + var bytes = new Array(str.length); + for (var i = 0; i < str.length; i++) { + bytes[i] = str.charCodeAt(i); + } + return bytes; +} + +module.exports = function(name, version, hashfunc) { + var generateUUID = function(value, namespace, buf, offset) { + var off = buf && offset || 0; + + if (typeof(value) == 'string') value = stringToBytes(value); + if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace); + + if (!Array.isArray(value)) throw TypeError('value must be an array of bytes'); + if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); + + // Per 4.3 + var bytes = hashfunc(namespace.concat(value)); + bytes[6] = (bytes[6] & 0x0f) | version; + bytes[8] = (bytes[8] & 0x3f) | 0x80; + + if (buf) { + for (var idx = 0; idx < 16; ++idx) { + buf[off+idx] = bytes[idx]; + } + } + + return buf || bytesToUuid(bytes); + }; + + // Function#name is not settable on some platforms (#270) + try { + generateUUID.name = name; + } catch (err) { + } + + // Pre-defined namespaces, per Appendix C + generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; + generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; + + return generateUUID; +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/package.json b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/package.json new file mode 100644 index 0000000000000000000000000000000000000000..d753b94ed930403e013d0fe9930eade3a41e45dd --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/package.json @@ -0,0 +1,44 @@ +{ + "name": "uuid", + "version": "3.3.2", + "description": "RFC4122 (v1, v4, and v5) UUIDs", + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "keywords": [ + "uuid", + "guid", + "rfc4122" + ], + "license": "MIT", + "bin": { + "uuid": "./bin/uuid" + }, + "devDependencies": { + "@commitlint/cli": "7.0.0", + "@commitlint/config-conventional": "7.0.1", + "eslint": "4.19.1", + "husky": "0.14.3", + "mocha": "5.2.0", + "runmd": "1.0.1", + "standard-version": "4.4.0" + }, + "scripts": { + "commitmsg": "commitlint -E GIT_PARAMS", + "test": "mocha test/test.js", + "md": "runmd --watch --output=README.md README_js.md", + "release": "standard-version", + "prepare": "runmd --output=README.md README_js.md" + }, + "browser": { + "./lib/rng.js": "./lib/rng-browser.js", + "./lib/sha1.js": "./lib/sha1-browser.js", + "./lib/md5.js": "./lib/md5-browser.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/kelektiv/node-uuid.git" + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v1.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v1.js new file mode 100644 index 0000000000000000000000000000000000000000..d84c0f4523d94518975205aadf028b54ad35d6a3 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v1.js @@ -0,0 +1,109 @@ +var rng = require('./lib/rng'); +var bytesToUuid = require('./lib/bytesToUuid'); + +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html + +var _nodeId; +var _clockseq; + +// Previous uuid creation time +var _lastMSecs = 0; +var _lastNSecs = 0; + +// See https://github.com/broofa/node-uuid for API details +function v1(options, buf, offset) { + var i = buf && offset || 0; + var b = buf || []; + + options = options || {}; + var node = options.node || _nodeId; + var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; + + // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + if (node == null || clockseq == null) { + var seedBytes = rng(); + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] + ]; + } + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } + } + + // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); + + // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; + + // Time since last uuid creation (in msecs) + var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; + + // Per 4.2.1.2, Bump clockseq on clock regression + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } + + // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } + + // Per 4.2.1.2 Throw error if too many uuids are requested + if (nsecs >= 10000) { + throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + + // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000; + + // `time_low` + var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; + + // `time_mid` + var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; + + // `time_high_and_version` + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + b[i++] = tmh >>> 16 & 0xff; + + // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + b[i++] = clockseq >>> 8 | 0x80; + + // `clock_seq_low` + b[i++] = clockseq & 0xff; + + // `node` + for (var n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + + return buf ? buf : bytesToUuid(b); +} + +module.exports = v1; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v3.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v3.js new file mode 100644 index 0000000000000000000000000000000000000000..ee7e14c0f0ef88efb10eddf6e41315c06c10a27c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v3.js @@ -0,0 +1,4 @@ +var v35 = require('./lib/v35.js'); +var md5 = require('./lib/md5'); + +module.exports = v35('v3', 0x30, md5); \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v4.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v4.js new file mode 100644 index 0000000000000000000000000000000000000000..1f07be1c530e7df68abe1f94e953d8b4e0df77c6 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v4.js @@ -0,0 +1,29 @@ +var rng = require('./lib/rng'); +var bytesToUuid = require('./lib/bytesToUuid'); + +function v4(options, buf, offset) { + var i = buf && offset || 0; + + if (typeof(options) == 'string') { + buf = options === 'binary' ? new Array(16) : null; + options = null; + } + options = options || {}; + + var rnds = options.random || (options.rng || rng)(); + + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + + // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ++ii) { + buf[i + ii] = rnds[ii]; + } + } + + return buf || bytesToUuid(rnds); +} + +module.exports = v4; diff --git a/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v5.js b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v5.js new file mode 100644 index 0000000000000000000000000000000000000000..4945baf38545fdd9ff2dab01d31aff51b48c7388 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/node_modules/uuid/v5.js @@ -0,0 +1,3 @@ +var v35 = require('./lib/v35.js'); +var sha1 = require('./lib/sha1'); +module.exports = v35('v5', 0x50, sha1); diff --git a/justdanceonline-main/node_modules/aws-sdk/package.json b/justdanceonline-main/node_modules/aws-sdk/package.json new file mode 100644 index 0000000000000000000000000000000000000000..1cc0e179a098d930bf9a3fae2e912539f3852996 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/package.json @@ -0,0 +1,150 @@ +{ + "name": "aws-sdk", + "description": "AWS SDK for JavaScript", + "version": "2.932.0", + "author": { + "name": "Amazon Web Services", + "email": "", + "url": "https://aws.amazon.com/" + }, + "config": { + "test_args": "test test/json test/model test/protocol test/query test/services test/signers test/xml test/s3 test/cloudfront test/dynamodb test/polly test/rds test/publisher test/event-stream" + }, + "homepage": "https://github.com/aws/aws-sdk-js", + "contributors": [ + "Loren Segal ", + "Trevor Rowe " + ], + "devDependencies": { + "@types/node": "6.0.92", + "browserify": "13.1.0", + "chai": "^3.0", + "codecov": "^3.8.2", + "coffeeify": "*", + "coffeescript": "^1.12.7", + "cucumber": "0.5.x", + "eslint": "^5.8.0", + "hash-test-vectors": "^1.3.2", + "insert-module-globals": "^7.0.0", + "istanbul": "*", + "jasmine": "^2.5.3", + "jasmine-core": "^2.5.2", + "json-loader": "^0.5.4", + "karma": "^4.1.0", + "karma-chrome-launcher": "2.2.0", + "karma-jasmine": "^1.1.0", + "mocha": "^3.0.0", + "repl.history": "*", + "semver": "*", + "typescript": "2.0.8", + "uglify-js": "2.x", + "webpack": "^1.15.0" + }, + "dependencies": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "main": "lib/aws.js", + "browser": { + "lib/aws.js": "./lib/browser.js", + "fs": false, + "./global.js": "./browser.js", + "./lib/node_loader.js": "./lib/browser_loader.js" + }, + "browserify": { + "transform": "./dist-tools/transform.js" + }, + "react-native": { + "fs": "./lib/empty.js", + "./lib/node_loader.js": "./lib/react-native-loader.js", + "./lib/browser_loader.js": "./lib/react-native-loader.js", + "./lib/core.js": "./dist/aws-sdk-core-react-native.js", + "xml2js": "./dist/xml2js.js" + }, + "directories": { + "lib": "lib" + }, + "types": "index.d.ts", + "typings": "index.d.ts", + "engines": { + "node": ">= 0.8.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/aws/aws-sdk-js" + }, + "bugs": { + "url": "https://github.com/aws/aws-sdk-js/issues", + "mail": "" + }, + "license": "Apache-2.0", + "keywords": [ + "api", + "amazon", + "aws", + "ec2", + "simpledb", + "s3", + "sqs", + "ses", + "sns", + "route53", + "rds", + "elasticache", + "cloudfront", + "fps", + "cloudformation", + "cloudwatch", + "dynamodb", + "iam", + "swf", + "autoscaling", + "cloudsearch", + "elb", + "loadbalancing", + "emr", + "mapreduce", + "importexport", + "storagegateway", + "workflow", + "ebs", + "vpc", + "beanstalk", + "glacier", + "kinesis", + "cloudtrail", + "waf" + ], + "scripts": { + "test": "node ./scripts/composite-test.js", + "unit": "mocha -- $npm_package_config_test_args", + "coverage": "istanbul cover ./node_modules/mocha/bin/_mocha --reporter=lcovonly -- $npm_package_config_test_args", + "browsertest": "rake browser:test && karma start", + "buildertest": "mocha --require coffeescript/register -s 1000 -t 10000 dist-tools/test/*.coffee", + "integration": "cucumber.js", + "lint": "eslint lib test dist-tools/*.js", + "console": "./scripts/console", + "testfiles": "istanbul `[ $COVERAGE ] && echo 'cover _mocha' || echo 'test mocha'`", + "tstest": "npm -s run-script build-typings && tsc -p ./ts", + "build-typings": "node ./scripts/typings-generator.js", + "add-change": "node ./scripts/changelog/add-change.js", + "build-react-native-deps": "webpack --config dist-tools/webpack.config.rn-dep.js", + "build-react-native-core": "webpack --config dist-tools/webpack.config.rn-core.js", + "build-react-native-dist": "webpack --config dist-tools/webpack.config.rn.js", + "build-react-native": "npm -s run-script build-react-native-deps && npm -s run-script build-react-native-core && npm -s run-script build-react-native-dist", + "react-native-test": "npm -s run-script build-react-native && rake reactnative:test && karma start", + "region-check": "node ./scripts/region-checker/index.js", + "translate-api-test": "mocha scripts/lib/translate-api.spec.js", + "typings-generator-test": "mocha scripts/lib/prune-shapes.spec.js", + "helper-test": "mocha scripts/lib/test-helper.spec.js", + "csm-functional-test": "mocha test/publisher/functional_test", + "postinstall": "node scripts/check-node-version.js" + } +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/react-native.js b/justdanceonline-main/node_modules/aws-sdk/react-native.js new file mode 100644 index 0000000000000000000000000000000000000000..1a432466a20ba32e27bff79cfe2d7f20a9473b41 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/react-native.js @@ -0,0 +1,4 @@ +var AWS = require('./lib/react-native-loader'); + +require('./clients/all'); +module.exports = AWS; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/README.md b/justdanceonline-main/node_modules/aws-sdk/scripts/README.md new file mode 100644 index 0000000000000000000000000000000000000000..493adc41b0f8ee51a28c448d1bd06e9d06667b97 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/README.md @@ -0,0 +1,8 @@ +Steps to use console: +- Run `npm install` in root +- `cd scripts` +- `./console` + +References: +- [Setting Credentials in Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html) +- [SDK for JavaScript Code Examples](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/sdk-code-samples.html) diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/README.md b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1e476a62d35e354885f94276bc8ddde9dabe1fd2 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/README.md @@ -0,0 +1,97 @@ +# AWS SDK for JavaScript Changelog Scripts + +These scripts create and update the changelog to summarize what has changed in +each version of the AWS SDK for JavaScript. + +Here is a sample of what an entry in the changelog looks like: + +## 2.4.5 +* bugfix: Waiters: Some description of the bugfix ([Issue #9542]()) +* feature: S3: Some descripton of the new feature +* API: RDS: Some description +* API: DynamoDB: Some description + +Here is an overview of the scripts that create and update the changelog: + +### create-changelog + +This script can be used to create or recreate the changelog based on JSON files +in the `.changes/` directory in the root directory of the SDK. This does not +need to be run on a regular basis but is useful if the changelog accidentallly +gets deleted or corrupted. A `.changes/` directory in the root directory will +need to be created before running this script, if it does not already exist. To +run this script, type the following command from the root SDK directory in the +command line: +``` +./scripts/changelog/create-changelog +``` +The JSON files in the `.changes/` directory must be named with a version number +(e.g. `2.4.5.json`) and its contents should be an array of objects. Each object +represents one change in that version of the SDK, and should contain `"type"`, +`"category"`, and `"description"` properties with string values. Incorrectly +formatted filenames will be skipped over, and incorrectly formatted JSON within +files with correctly formatted names will cause an error to be thrown and halt +the execution of this script. The changelog file is not written to until the +end, so if execution is halted, no files will have changed and no cleanup is +required. The JSON files in `.changes/` are created in the `release` script. + +### release + +This script should be run for each release. It creates a new entry in the +changelog based on JSON files in the `next-release/` directory in the +`.changes/` directory in the root of the SDK. In addition, it will create a +JSON file for the new version in the `.changes/` directory so that the entry +can be recreated when the `create-changelog` script is run. The `.changes/` and +`next-release/` directories will need to be created before running this script, +if they do not already exist. To run this script, type the following command +from the root SDK directory in the command line: +``` +./scripts/changelog/release +``` +Optionally, you can provide an argument to specify the version number of the +new release. Accepted values are `major`, `minor`, `patch`, or a version number +that is greater than the latest version (e.g. `2.4.6`). An error will be thrown +if the specified version is not greater than the latest version, and execution +will be halted. The former 3 choices specifies the type of version bump. For +example, running +``` +./scripts/changelog/release minor +``` +will bump up the minor version from the latest version. If the latest version +is `2.4.5`, then this would set the new version to `2.5.0`. If no argument is +provided, then the script defaults to bumping the patch number. + +The JSON files in the `next-release/` directory can either contain a single +object or an array of objects. Each object represents one change in the new +version, and should contain `"type"`, `"category"`, and `"description"` +properties with string values. Incorrectly formatted JSON will cause an error +to be thrown and halt execution of this script. If execution is halted due to +this error, no changes will have been made to any files yet at this point, so +no cleanup will be required. + +The script merges all changes in `next-release/` to a new JSON file with the +version number as its name, and files in `next-release/` are deleted. A new +entry is then created in the changelog. If for any reason execution is halted +after `next-release/` is cleared but before changes are written to the +changelog, you can either just run the `create-changelog` script or you can +move the new version JSON file into `next-release/` and re-run the `release` +script (the name of the file does not matter). + +### add-change cli + +This script creates a changelog entry. The script prompts you to +specify a `type` (e.g. bugfix or feature), a `category` (e.g. a service name +or something like: Paginator), and a short `description` describing the change. + +Type the following command from the root SDK directory in the command line to +run this script, using versions of node.js that support promises (0.12.x and higher): +``` +node ./scripts/changelog/add-change.js +``` + +This script will place a JSON file representing your change in the following location: +``` +$SDK_ROOT/.changes/next-release/ +``` + +Please run this script and include the JSON file when submitting a pull request. diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/add-change.js b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/add-change.js new file mode 100644 index 0000000000000000000000000000000000000000..9aa2ba851c4071ed0ffe5bf83ecc576cc896ead6 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/add-change.js @@ -0,0 +1,239 @@ +var ChangeCreator = require('./change-creator').ChangeCreator; + +/** + * The CLI class to add a changelog entry. + */ +function AddChangeCli() { + this._changeCreator = new ChangeCreator(); + this._maxRetries = 2; + this._retryCount = 0; +} + +AddChangeCli.prototype = { + /** + * Prints a string to stdout. + * @param {string} message - text to print. + */ + print: function print(message) { + process.stdout.write(message); + }, + + /** + * Prints the CLI intro message. + */ + showIntro: function showIntro() { + var intro = '\n'; + intro += 'This utility will walk you through creating a changelog entry.\n\n'; + intro += 'A changelog entry requires:\n'; + intro += '\t- type: Type should be one of: feature, bugfix.\n'; + intro += '\t- category: This can be a service identifier (e.g. "s3"), or something like: Paginator.\n'; + intro += '\t- description: A brief description of the change.\n'; + intro += '\t You can also include a github style reference such as "#111".\n\n' + intro += 'Please run this script before submitting a pull request.\n\n'; + intro += 'Press ^C at any time to quit.\n'; + this.print(intro); + }, + + /** + * Gets a string from stdin and returns a promise resolved with the string. + * Note: stdin is read when the user presses 'Enter'. + * Returns a promise that is resolved with the trimmed user input. + */ + retrieveInputAsync: function retrieveInput() { + return new Promise(function(resolve, reject) { + function getData() { + var chunk = process.stdin.read(); + if (chunk !== null) { + // Remove self from stdin and call callback + process.stdin.removeListener('readable', getData); + resolve(chunk.trim()); + } + } + process.stdin.setEncoding('utf8'); + // start listening for input + process.stdin.on('readable', getData); + }); + }, + + /** + * Prompts the user to enter a type. + * Will also process the user input. + * Returns a promise. + */ + promptType: function promptType() { + var changeCreator = this._changeCreator; + var existingType = changeCreator.getChangeType(); + this.print('\nValid types are "feature" or "bugfix"\n'); + this.print('type: ' + (existingType ? '(' + existingType + ') ' : '')); + return this.retrieveInputAsync() + .then(this.processType.bind(this)); + }, + + /** + * Prompts the user to enter a category. + * Will also process the user input. + * Returns a promise. + */ + promptCategory: function promptCategory() { + var changeCreator = this._changeCreator; + var existingCategory = changeCreator.getChangeCategory(); + this.print('\nCategory can be a service identifier or something like: Paginator\n'); + this.print('category: ' + (existingCategory ? '(' + existingCategory + ') ' : '')); + return this.retrieveInputAsync() + .then(this.processCategory.bind(this)); + }, + + /** + * Prompts the user to enter a description. + * Will also process the user input. + * Returns a promise. + */ + promptDescription: function promptDescription() { + var changeCreator = this._changeCreator; + var existingDescription = changeCreator.getChangeDescription(); + this.print('\nA brief description of your change.\n'); + this.print('description: ' + (existingDescription ? '(' + existingDescription + ') ' : '')); + return this.retrieveInputAsync() + .then(this.processDescription.bind(this)); + }, + + /** + * Handles processing of `type` based on user input. + * If validation of `type` fails, the prompt will be shown again up to 3 times. + * Returns a promise. + */ + processType: function processType(type) { + var changeCreator = this._changeCreator; + var type = type.toLowerCase(); + // validate + try { + if (type) { + changeCreator.setChangeType(type); + } + changeCreator.validateChangeType(type); + } catch (err) { + // Log the error + this.print(err.message + '\n'); + // re-prompt if we still have retries + if (this._retryCount < this._maxRetries) { + this._retryCount++; + return this.promptType(); + } + //otherwise, just exit + return Promise.reject(); + } + // reset retry count + this._retryCount = 0; + return Promise.resolve(); + }, + + /** + * Handles processing of `category` based on user input. + * If validation of `category` fails, the prompt will be shown again up to 3 times. + * Returns a promise. + */ + processCategory: function processCategory(category) { + var changeCreator = this._changeCreator; + // validate + try { + if (category) { + changeCreator.setChangeCategory(category); + } + changeCreator.validateChangeCategory(category); + } catch (err) { + // Log the error + this.print(err.message + '\n'); + // re-prompt if we still have retries + if (this._retryCount < this._maxRetries) { + this._retryCount++; + return this.promptCategory(); + } + //otherwise, just exit + return Promise.reject(); + } + // reset retry count + this._retryCount = 0; + return Promise.resolve(); + }, + + /** + * Handles processing of `description` based on user input. + * If validation of `description` fails, the prompt will be shown again up to 3 times. + * Returns a promise. + */ + processDescription: function processDescription(description) { + var changeCreator = this._changeCreator; + // validate + try { + if (description) { + changeCreator.setChangeDescription(description); + } + changeCreator.validateChangeDescription(description); + } catch (err) { + // Log the error + this.print(err.message + '\n'); + // re-prompt if we still have retries + if (this._retryCount < this._maxRetries) { + this._retryCount++; + return this.promptDescription(); + } + //otherwise, just exit + return Promise.reject(); + } + // reset retry count + this._retryCount = 0; + return Promise.resolve(); + }, + + /** + * Prompts the user for all inputs. + * Returns a promise. + */ + promptInputs: function promptInputs() { + var self = this; + return this.promptType() + .then(this.promptCategory.bind(this)) + .then(this.promptDescription.bind(this)) + .catch(function(err) { + self.print(err.message); + }); + }, + + /** + * Writes the changelog entry to a JSON file. + * Returns a promise that is resolved with the output filename. + */ + writeChangeEntry: function writeChangeEntry() { + var self = this; + return new Promise(function(resolve, reject) { + var changeCreator = self._changeCreator; + changeCreator.writeChanges(function(err, data) { + if (err) { + return reject(err); + } + self.print('\nFile created at ' + data.file + '\n'); + return resolve(data); + }); + }); + } +}; + +// Run the CLI program +var cli = new AddChangeCli(); +cli.showIntro(); +cli.promptInputs() + .then(cli.writeChangeEntry.bind(cli)) + .then(function() { + // CLI done with its work, exit successfully. + setTimeout(function() { + process.exit(0) + }, 0); + }) + .catch(function(err) { + cli.print(err.message); + cli.print('\nExiting...\n'); + setTimeout(function() { + // CLI failed, exit with an error + process.exit(1); + }, 0); + }); \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/change-creator.js b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/change-creator.js new file mode 100644 index 0000000000000000000000000000000000000000..e604096c1d2626bd14b9a1c9940f2bd259803ca7 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/change-creator.js @@ -0,0 +1,222 @@ +var fs = require('fs'); +var path = require('path'); +var crypto = require('crypto'); +/** + * Configuration Options: + * - write file location + * - read file location + */ + +function checkProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +/** + * Generates a 'random' hex value. + * More 'random' than Math.random without depending on a GUID module. + */ +function generateRandomIdentifier() { + return crypto.randomBytes(4).toString('hex'); +} + +/** + * Escapes illegal characters from filename + * Ref: https://github.com/aws/aws-sdk-js/issues/3691 + */ +function sanitizeFileName(filename) { + return filename.replace(/[^a-zA-Z0-9\\.]/g, '-'); +} + +var CHANGES_DIR = path.join(process.cwd(), '.changes'); + +/** + * A map of valid change types. + * Can be referenced outside of this module. + */ +var VALID_TYPES = Object.create(null); +VALID_TYPES['bugfix'] = true; +VALID_TYPES['feature'] = true; + + +/** + * Handles creating a change log entry JSON file. + */ +function ChangeCreator(config) { + this._config = config || {}; + this._type = ''; + this._category = ''; + this._description = ''; +} + +ChangeCreator.prototype = { + getChangeType: function getChangeType() { + return this._type; + }, + + setChangeType: function setChangeType(type) { + this._type = type; + }, + + getChangeCategory: function getChangeCategory() { + return this._category; + }, + + setChangeCategory: function setChangeCategory(category) { + this._category = category; + }, + + getChangeDescription: function getChangeDescription() { + return this._description; + }, + + setChangeDescription: function setChangeDescription(description) { + this._description = description; + }, + + /** + * Validates the entire change entry. + */ + validateChange: function validateChange() { + var type = this.getChangeType(); + var category = this.getChangeCategory(); + var description = this.getChangeDescription(); + + var missingFields = []; + this.validateChangeType(type); + this.validateChangeCategory(category); + this.validateChangeDescription(description); + + return this; + }, + + /** + * Validates a change entry type. + */ + validateChangeType: function validateChangeType(type) { + var type = type || this._type; + + if (!type) { + throw new Error('ValidationError: Missing `type` field.'); + } + + if (VALID_TYPES[type]) { + return this; + } + + var validTypes = Object.keys(VALID_TYPES).join(','); + + throw new Error('ValidationError: `type` set as "' + type + '" but must be one of [' + validTypes + '].'); + }, + + /** + * Validates a change entry category. + */ + validateChangeCategory: function validateChangeCategory(category) { + var category = category || this._category; + + if (!category) { + throw new Error('ValidationError: Missing `category` field.'); + } + + return this; + }, + + /** + * Validates a change entry description. + */ + validateChangeDescription: function validateChangeDescription(description) { + var description = description || this._description; + + if (!description) { + throw new Error('ValidationError: Missing `description` field.'); + } + + return this; + }, + + /** + * Creates the output directory if it doesn't exist. + */ + createOutputDirectory: function createOutputDirectory(outPath) { + var pathObj = path.parse(outPath); + var sep = path.sep; + var directoryStructure = pathObj.dir.split(sep) || []; + for (var i = 0; i < directoryStructure.length; i++) { + var pathToCheck = directoryStructure.slice(0, i + 1).join(sep); + if (!pathToCheck) { + continue; + } + try { + var stats = fs.statSync(pathToCheck); + } catch (err) { + if (err.code === 'ENOENT') { + // Directory doesn't exist, so create it + fs.mkdirSync(pathToCheck); + } else { + throw err; + } + } + } + return this; + }, + + /** + * Returns a path to the future change entry file. + */ + determineWriteLocation: function determineWriteLocation() { + /* Order for determining write location: + 1) Check configuration for `outFile` location. + 2) Check configuration for `inFile` location. + 3) Create a new file using default location. + */ + var config = this._config || {}; + if (checkProperty(config, 'outFile') && config['outFile']) { + return config['outFile']; + } + if (checkProperty(config, 'inFile') && config['inFile']) { + return config['inFile']; + } + // Determine default location + var newFileName = sanitizeFileName(this._type) + '-' + sanitizeFileName(this._category) + + '-' + generateRandomIdentifier() + '.json'; + return path.join(process.cwd(), '.changes', 'next-release', newFileName); + }, + + /** + * Writes a change entry as a JSON file. + */ + writeChanges: function writeChanges(callback) { + var hasCallback = typeof callback === 'function'; + var fileLocation = this.determineWriteLocation(); + + try { + // Will throw an error if the change is not valid + this.validateChange().createOutputDirectory(fileLocation); + var change = { + type: this.getChangeType(), + category: this.getChangeCategory(), + description: this.getChangeDescription() + } + fs.writeFileSync(fileLocation, JSON.stringify(change, null, 2)); + var data = { + file: fileLocation + }; + if (hasCallback) { + return callback(null, data); + } else { + return data; + } + } catch (err) { + if (hasCallback) { + return callback(err, null); + } else { + throw err; + } + } + } +} + +module.exports = { + ChangeCreator: ChangeCreator, + VALID_TYPES: VALID_TYPES +}; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/create-changelog b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/create-changelog new file mode 100644 index 0000000000000000000000000000000000000000..1227d28a54f8d202abcf2ce7cf632c11c7345c6a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/create-changelog @@ -0,0 +1,11 @@ +#!/usr/bin/env node + +var util = require('./util'); + +var versions = util.listVersions(); + +util.startNewChangelog(); + +versions.forEach(util.readVersionJSONAndAddToChangelog); + +util.writeToChangelog(); diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/release b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/release new file mode 100644 index 0000000000000000000000000000000000000000..f5270d94381df340d96ead94deb499d5dc417a64 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/release @@ -0,0 +1,35 @@ +#!/usr/bin/env node + +var util = require('./util'); + +var input = process.argv[2]; +var version; + +switch (input) { + case 'major': + version = util.bumpMajor(); + break; + case 'minor': + version = util.bumpMinor(); + break; + case 'patch': + case undefined: + version = util.bumpPatch(); + break; + default: + version = util.checkAndNormalizeVersion(input); +} + +var nextReleaseFiles = util.listNextReleaseFiles(); + +var versionJSON = nextReleaseFiles.reduce(function(changes, filepath) { + return changes.concat(util.readChangesFromJSON(filepath)); +}, []); + +util.writeToVersionJSON(version, versionJSON); + +util.clearNextReleaseDir(); + +util.addVersionJSONToChangelog(version, versionJSON); + +util.writeToChangelog(); diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/util.js b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/util.js new file mode 100644 index 0000000000000000000000000000000000000000..9707079fbd08515a82b8d8f46802f7d020f7d8fc --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/changelog/util.js @@ -0,0 +1,195 @@ +var fs = require('fs'); +var changelog, latest, nextReleaseFiles; + +var changelogFile = process.cwd() + '/CHANGELOG.md'; +var changesDir = process.cwd() + '/.changes/'; +var nextReleaseDir = changesDir + 'next-release/'; +var insertMarker = ''; +var versionMarker = ['']; +var startContent = '# Changelog for AWS SDK for JavaScript\n' + + versionMarker.join('0.0.0') + '\n' + insertMarker; + +var versionRegStr = '(\\d+)\\.(\\d+)\\.(\\d+)'; +var versionReg = new RegExp('^' + versionRegStr + '$'); +var versionMarkerReg = new RegExp(versionMarker.join(versionRegStr)); +var versionJsonFileReg = new RegExp('^' + versionRegStr + '\\.json$'); + +function fsSyncFromRoot(operation, fileOrDir) { + try { + var result = fs[operation + 'Sync'](fileOrDir); + } catch(err) { + if (err.code === 'ENOENT') { + err.message += '. Make sure to run from sdk root directory' + } + throw err; + } + return result; +} + +function readChangelog() { + changelog = fsSyncFromRoot('readFile', changelogFile).toString(); + return changelog; +} + +function getLatestVersion() { + if (!changelog) readChangelog(); + var match = changelog.match(versionMarkerReg); + latest = { + major: parseInt(match[1],10), + minor: parseInt(match[2],10), + patch: parseInt(match[3],10) + }; + return latest; +} + +function checkAndNormalizeVersion(version) { + if (!latest) getLatestVersion(); + var match = version.match(versionReg); + if (match) { + // convert to num for comparison and for normalizing leading zeros + var major = parseInt(match[1], 10); + var minor = parseInt(match[2], 10); + var patch = parseInt(match[3], 10); + if (major < latest.major || + major == latest.major && minor < latest.minor || + major == latest.major && minor == latest.minor && patch <= latest.patch) { + throw new Error('Version must be greater than latest version'); + } + return major + '.' + minor + '.' + patch; + } else { + throw new Error('Provided input version is in wrong format'); + } +} + +function bumpMajor() { + if (!latest) getLatestVersion(); + return (latest.major + 1) + '.0.0'; +} + +function bumpMinor() { + if (!latest) getLatestVersion(); + return latest.major + '.' + (latest.minor + 1) + '.0'; +} + +function bumpPatch() { + if (!latest) getLatestVersion(); + return latest.major + '.' + latest.minor + '.' + (latest.patch + 1); +} + +function listVersions() { + var changeFiles = fsSyncFromRoot('readdir', changesDir); + return changeFiles + .map(function(file) { return file.match(versionJsonFileReg); }) + .filter(function(version) { return !!version; }) + .sort(function(v1, v2) { + var diff; + for (var i = 1; i <= 3; i++) { + diff = v1[i] - v2[i]; + if (diff !== 0) { + return diff; + } + } + return 0; + }) + .map(function(version) { return version.slice(1).join('.'); }); +} + +function listNextReleaseFiles() { + nextReleaseFiles = fsSyncFromRoot('readdir', nextReleaseDir) + .map(function(file) { return nextReleaseDir + file }); + if (!nextReleaseFiles.length) throw new Error('No changes to be released'); + return nextReleaseFiles; +} + +function startNewChangelog() { + changelog = startContent; + return changelog; +} + +function checkChangeFormat(change) { + if (!change.type || !change.category || !change.description || + typeof change.type !== 'string' || + typeof change.category !== 'string' || + typeof change.description !== 'string') { + var err = new Error('JSON not in correct format'); + err.code = 'InvalidFormat'; + throw err; + } +} + +function readChangesFromJSON(filepath) { + var changes = JSON.parse(fsSyncFromRoot('readFile', filepath)); + if (!Array.isArray(changes)) changes = [changes]; + if (!changes.length) throw new Error(filepath + ' contains no changes'); + try { + changes.forEach(checkChangeFormat); + } catch (err) { + if (err.code === 'InvalidFormat') { + err.message += ' in ' + filepath; + } + throw err; + } + return changes; +} + +// This will not to write to file +// writeToChangelog must be called after +function addVersionJSONToChangelog(version, changes) { + if (!changelog) readChangelog(); + var entry = '\n\n## ' + version; + + changes.forEach(function(change) { + entry += '\n* ' + change.type + ': ' + change.category + ': ' + + change.description; + }); + + var logParts = changelog.split(insertMarker); + logParts[0] = logParts[0] + .replace(versionMarkerReg, versionMarker.join(version)) + insertMarker; + changelog = logParts.join(entry); +} + +// This will not to write to file +// writeToChangelog must be called after +function readVersionJSONAndAddToChangelog(version) { + var changes = readChangesFromJSON(changesDir + version + '.json'); + addVersionJSONToChangelog(version, changes); +} + +function writeToChangelog() { + if (!changelog) throw new Error('Nothing to write'); + fs.writeFileSync(changelogFile, changelog); + console.log('Successfully updated CHANGELOG'); +} + +function writeToVersionJSON(version, json) { + var content = JSON.stringify(json, null, 4); + fs.writeFileSync(changesDir + version + '.json', content); + console.log('Successfully added ' + version + '.json to ' + changesDir); +} + +function clearNextReleaseDir() { + if (!nextReleaseFiles) listNextReleaseFiles(); + nextReleaseFiles.forEach(function(filepath) { + fsSyncFromRoot('unlink', filepath); + }); + console.log(nextReleaseDir + ' has been cleared'); +} + +module.exports = { + readChangelog: readChangelog, + getLatestVersion: getLatestVersion, + checkAndNormalizeVersion: checkAndNormalizeVersion, + bumpMajor: bumpMajor, + bumpMinor: bumpMinor, + bumpPatch: bumpPatch, + listVersions: listVersions, + listNextReleaseFiles: listNextReleaseFiles, + startNewChangelog: startNewChangelog, + readChangesFromJSON: readChangesFromJSON, + addVersionJSONToChangelog: addVersionJSONToChangelog, + readVersionJSONAndAddToChangelog: readVersionJSONAndAddToChangelog, + writeToChangelog: writeToChangelog, + writeToVersionJSON: writeToVersionJSON, + clearNextReleaseDir: clearNextReleaseDir +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/check-node-version.js b/justdanceonline-main/node_modules/aws-sdk/scripts/check-node-version.js new file mode 100644 index 0000000000000000000000000000000000000000..1f53411cc4c23e2ad47ee43d0084f9d136c58aff --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/check-node-version.js @@ -0,0 +1,8 @@ +var version = process.version; + +if (version && parseInt(version.substring(1, version.indexOf('.'))) < 10) { + console.warn('The AWS SDK for JavaScript (v2) will no longer support Node.js ' + version + + '\nas of November 1, 2021. To continue receiving updates to AWS services' + + '\nand bug fixes please upgrade to Node.js 10.x or later.' + + '\n\nMore information can be found at: https://a.co/cf10B3y'); +} diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/composite-test.js b/justdanceonline-main/node_modules/aws-sdk/scripts/composite-test.js new file mode 100644 index 0000000000000000000000000000000000000000..2ca5048c07b863ead0021b7ade32727b7ebff750 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/composite-test.js @@ -0,0 +1,37 @@ +const {execute, executeLongProcess} = require('./lib/test-helper'); + +async function run() { + const EXEC = { + 'execute': execute, + 'executeLongProcess': executeLongProcess, + } + const scripts = [ + { execute: 'executeLongProcess', command: ['npm', 'run', 'helper-test'], retryCount: 1 }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'lint']}, + { execute: 'executeLongProcess', command: ['npm', 'run', 'coverage'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'buildertest'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'tstest'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'region-check'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'translate-api-test'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'typings-generator-test'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'browsertest'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'react-native-test'] }, + { execute: 'executeLongProcess', command: ['npm', 'run', 'csm-functional-test'] } + ]; + for (const { execute, command, execOptions, retryCount } of scripts) { + try { + await EXEC[execute](command, execOptions, retryCount); + } catch (error) { + throw error; + } + } +} + +(async () => { + try { + await run(); + } catch (e) { + console.log(e); + process.exit(1); + } +})(); diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/console b/justdanceonline-main/node_modules/aws-sdk/scripts/console new file mode 100644 index 0000000000000000000000000000000000000000..b9aead810aa364e468372245eb71aca27737e849 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/console @@ -0,0 +1,119 @@ +#!/usr/bin/env node + +var repl = require('repl').start('aws-sdk> '), + replEval = repl.eval, + defaultOptions = { + logger: process.stdout, + region: process.env.AWS_REGION || 'us-east-1' + }; + + +function customEval(cmd, context, filename, callback) { + replEval(cmd, context, filename, function(err, value) { + if (err) { + callback(err, null); + return; + } + + function consoleDataExtraction(resp) { + context.data = resp.data; + context.error = resp.error; + callback(resp.error, resp.data); + } + + if (value && value.constructor === AWS.Request && !value.__hasBeenEval__) { + + try { + value.__hasBeenEval__ = true; + if (value.response) value.response.__hasBeenEval__ = true; + context.request = value; + context.response = value.response || null; + context.data = null; + context.error = null; + if (value._asm.currentState === 'complete' && value.response) { + context.data = value.response.data || null; + context.error = value.response.error || null; + callback(value.response.error, value.response.data); + } else { + value.on('complete', consoleDataExtraction); + if (!value.__hasBeenSent__) { + if (context.autoSend) { + value.send(); + } else { + callback(null, value); + } + } + } + } catch (err2) { + callback(err2, null); + return; + } + + } else if (value && value.constructor === AWS.Response && !value.__hasBeenEval__) { + try { + value.__hasBeenEval__ = true; + context.response = value; + context.request = value.request || null; + context.data = value.data || null; + context.error = value.error || null; + if (value.request) { + value.request.__hasBeenEval__ = true; + if (value.request._asm.currentState === 'complete') { + callback(value.error, value.data); + } else { + value.request.on('complete', consoleDataExtraction); + } + } + } catch (err2) { + callback(err2, null); + return; + } + } else { + callback(null, value); + } + }); +} + +var AWS = repl.context.AWS = require('../lib/aws'); +repl.eval = customEval; + +// context variables +repl.context.data = null; +repl.context.error = null; +repl.context.request = null; +repl.context.response = null; + +// setup REPL history +try { + var replHistory = require('repl.history'); + replHistory(repl, process.env.HOME + '/.node_history'); +} catch (e) { + console.log("Missing repl.history package, history will not be supported."); + console.log(" Type `npm install repl.history` to enable history."); +} + +// modify Request.prototype.send listener to track if the listener has been called +var sendListener = AWS.Request.prototype.send; +AWS.Request.prototype.send = function(callback) { + this.__hasBeenSent__ = true; + return sendListener.call(this, callback); +}; + +// flag to indicate that requests should be sent when callback is not provided +// by default this is on, but can be turned off by setting `autoSend = false` +repl.context.autoSend = true; + +// load services as defined instances +for (var key in AWS) { + var id = AWS[key].serviceIdentifier; + if (id) { + if (id === 'cloudsearchdomain' || id === 'iotdata') continue; // this required an explicit endpoint + + var svcClass = AWS[key]; + var svc = new svcClass(defaultOptions); + svc.with = function(config) { + return new this.constructor.__super__(AWS.util.merge(this.config, config)); + }; + repl.context[svcClass.serviceIdentifier] = svc; + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/extra-2018-08-02.normal.json b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/extra-2018-08-02.normal.json new file mode 100644 index 0000000000000000000000000000000000000000..ac22a8b4cb92e01cab28796ccd1e35bcc3d48e88 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/extra-2018-08-02.normal.json @@ -0,0 +1,179 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-03-30", + "endpointPrefix": "foo", + "protocol": "rest-json", + "serviceId": "Foo", + "uid": "foo-2018-03-30" + }, + "operations": { + "FancyOperation": { + "name" :"FancyOperation", + "http": { + "method": "GET", + "requestUri": "/" + }, + "input": { + "shape": "FancyStructure" + } + }, + "BarOperation": { + "name": "BarOperation", + "http": { + "method": "GET", + "requestUri": "/" + }, + "input": { + "shape": "String" + }, + "output": { + "shape": "String" + } + }, + "EventStreamOnInputOperation": { + "name": "EventStreamOnInputOperation", + "http": { + "method": "GET", + "requestUri": "/" + }, + "input": { + "shape": "String" + } + }, + "EventStreamOnInputPayloadOperation": { + "name": "EventStreamOnInputPayloadOperation", + "http": { + "method": "GET", + "requestUri": "/" + }, + "input": { + "shape": "String" + } + }, + "EventStreamOnOutputOperation": { + "name": "EventStreamOnOutputOperation", + "http": { + "method": "GET", + "requestUri": "/" + }, + "output": { + "shape": "String" + } + }, + "EventStreamOnOutputPayloadOperation": { + "name": "EventStreamOnOutputPayloadOperation", + "http": { + "method": "GET", + "requestUri": "/" + }, + "output": { + "shape": "String" + } + }, + "BazOperation": { + "name": "BazOperation", + "http": { + "method": "GET", + "requestUri": "/" + }, + "input": { + "shape": "String" + } + } + }, + "shapes": { + "FancyStructure": { + "type": "structure", + "required": [], + "members": { + "Map": { + "shape": "MapOfList" + } + } + }, + "ListOfString": { + "type": "list", + "member": { + "shape": "String" + } + }, + "ListOfList": { + "type": "list", + "member": { + "shape": "ListOfString" + } + }, + "MapOfString": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "String" + } + }, + "MapOfList": { + "type": "map", + "key": { + "shape": "String" + }, + "value": { + "shape": "ListOfString" + } + }, + "String": { + "type": "string" + }, + "BarOperationInput": { + "type": "structure", + "members": { + "String": { + "shape": "StringShape" + } + } + }, + "BarOperationOutput": { + "type": "structure", + "members": { + "String": { + "shape": "StringShape" + } + } + }, + "BazOperationInput": { + "type": "structure", + "members": { + "BazString": { + "shape": "BazStringShape", + "timestampFormat": "iso8601" + } + } + }, + "EventStreamPayload": { + "type": "structure", + "members": { + "Payload": { + "shape": "EventStreamStructure" + }, + "payload": "Payload" + } + }, + "EventStreamStructure": { + "type": "structure", + "members": { + "String": { + "shape": "StringShape" + } + }, + "eventstream": true + }, + "BazStringShape": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "StringShape": { + "type": "string" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/foo-2018-03-30.normal.json b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/foo-2018-03-30.normal.json new file mode 100644 index 0000000000000000000000000000000000000000..a1bdc707757923b59c0b637e149c0a4d9459282a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/foo-2018-03-30.normal.json @@ -0,0 +1,127 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-03-30", + "endpointPrefix": "foo", + "protocol": "rest-json", + "serviceId": "Foo", + "uid": "foo-2018-03-30" + }, + "operations": { + "BarOperation": { + "name": "BarOperation", + "http": { + "method": "GET", + "requireUri": "/" + }, + "input": { + "shape": "BarOperationInput" + }, + "output": { + "shape": "BarOperationOutput" + } + }, + "EventStreamOnInputOperation": { + "name": "EventStreamOnInputOperation", + "http": { + "method": "GET", + "requireUri": "/" + }, + "input": { + "shape": "EventStreamStructure" + } + }, + "EventStreamOnInputPayloadOperation": { + "name": "EventStreamOnInputPayloadOperation", + "http": { + "method": "GET", + "requireUri": "/" + }, + "input": { + "shape": "EventStreamPayload" + } + }, + "EventStreamOnOutputOperation": { + "name": "EventStreamOnOutputOperation", + "http": { + "method": "GET", + "requireUri": "/" + }, + "output": { + "shape": "EventStreamStructure" + } + }, + "EventStreamOnOutputPayloadOperation": { + "name": "EventStreamOnOutputPayloadOperation", + "http": { + "method": "GET", + "requireUri": "/" + }, + "output": { + "shape": "EventStreamPayload" + } + }, + "BazOperation": { + "name": "BazOperation", + "http": { + "method": "GET", + "requireUri": "/" + }, + "input": { + "shape": "BazOperationInput" + } + } + }, + "shapes": { + "BarOperationInput": { + "type": "structure", + "members": { + "String": { + "shape": "StringShape" + } + } + }, + "BarOperationOutput": { + "type": "structure", + "members": { + "String": { + "shape": "StringShape" + } + } + }, + "BazOperationInput": { + "type": "structure", + "members": { + "BazString": { + "shape": "BazStringShape", + "timestampFormat": "iso8601" + } + } + }, + "EventStreamPayload": { + "type": "structure", + "members": { + "Payload": { + "shape": "EventStreamStructure" + }, + "payload": "Payload" + } + }, + "EventStreamStructure": { + "type": "structure", + "members": { + "String": { + "shape": "StringShape" + } + }, + "eventstream": true + }, + "BazStringShape": { + "type": "timestamp", + "timestampFormat": "rfc822" + }, + "StringShape": { + "type": "string" + } + } +} diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/get-operation-shape-names.js b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/get-operation-shape-names.js new file mode 100644 index 0000000000000000000000000000000000000000..9f300e053af301c1a0e130d11390f887d65910b5 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/get-operation-shape-names.js @@ -0,0 +1,20 @@ +function getOperationShapeNames(model) { + var operationShapeNames = []; + var operations = model.operations; + + for (var operationName of Object.keys(operations)) { + var operation = operations[operationName]; + if (operation.input && operation.input.shape) { + operationShapeNames.push(operation.input.shape); + } + if (operation.output && operation.output.shape) { + operationShapeNames.push(operation.output.shape); + } + } + + return operationShapeNames; +}; + +module.exports = { + getOperationShapeNames: getOperationShapeNames +}; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/prune-shapes.js b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/prune-shapes.js new file mode 100644 index 0000000000000000000000000000000000000000..8bc093aad12a0de8aea181b2735c324efd554277 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/prune-shapes.js @@ -0,0 +1,27 @@ +var getOperationShapeNames = require('./get-operation-shape-names').getOperationShapeNames; +var visitRelatedShapeNames = require('./visit-related-shape-names').visitRelatedShapeNames; + +function pruneShapes(model) { + + // start by grabbing the input/output shapes on all operations + var operationShapeNames = getOperationShapeNames(model); + var shapeMap = model.shapes; + + for (operationShape of operationShapeNames) { + // traverse the tree and store visited shapes + visitRelatedShapeNames(operationShape, shapeMap); + } + + // iterate over the shapeMap and remove any shape that wasn't visited + var shapeNames = Object.keys(shapeMap); + for (var name of shapeNames) { + if (!shapeMap[name].visited) { + delete shapeMap[name]; + } + } + +}; + +module.exports = { + pruneShapes: pruneShapes +}; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/remove-event-stream-ops.js b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/remove-event-stream-ops.js new file mode 100644 index 0000000000000000000000000000000000000000..43b0393dc480f5015bf36da1cb0b333935f6d4a8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/remove-event-stream-ops.js @@ -0,0 +1,54 @@ +/** + * Removes operations from the model if they require event streams. + * Specifically looks at input and output shapes. + * @param {Object} model - JSON parsed API model (*.normal.json) + */ +function removeEventStreamOperations(model) { + var modifiedModel = false; + // loop over all operations + var operations = model.operations; + var operationNames = Object.keys(operations); + for (var i = 0; i < operationNames.length; i++) { + var operationName = operationNames[i]; + var operation = operations[operationName]; + // check input and output shapes + var inputShapeName = operation.input && operation.input.shape; + var outputShapeName = operation.output && operation.output.shape; + + var requiresEventStream = false; + if (inputShapeName && hasEventStream(model.shapes[inputShapeName], model)) { + requiresEventStream = true; + } + + if (requiresEventStream) { + modifiedModel = true; + // remove the operation from the model + console.log('Removing ' + operationName + ' because it depends on event streams on input.'); + delete model.operations[operationName]; + } + } + return modifiedModel; +} + +function hasEventStream(shape, model) { + if (shape.eventstream) { + return true; + } else { + // check each member shape + var memberNames = Object.keys(shape.members); + for (var i = 0; i < memberNames.length; i++) { + var member = shape.members[memberNames[i]]; + if (member.eventstream) { + return true; + } + var memberShape = model.shapes[member.shape]; + if (memberShape.eventstream) { + return true; + } + } + } +} + +module.exports = { + removeEventStreamOperations: removeEventStreamOperations +}; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/test-helper.js b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/test-helper.js new file mode 100644 index 0000000000000000000000000000000000000000..f863067d1c9bb1b42e753dc9ca895403ff11e7f8 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/test-helper.js @@ -0,0 +1,85 @@ +const { exec, spawn } = require('child_process'); + +/** + * wrap child_process.exec with retry. Will throw immediately when return + * code not 0; Used for trivial commands since error detail won't be printed. + * @param {string} command + * @param {structure} execOptoins + * @param {number} retryCount + */ +async function executeCommand(command, execOptoins = {}, retryCount = 1) { + try { + const execCommand = command.join(' '); + const { stderr, stdout } = await execute(execCommand, execOptoins); + if (stderr) process.stderr.write(stderr.toString()); + if (stdout) process.stderr.write(stdout.toString()); + } catch (error) { + if (retryCount > 0) { + await executeCommand(command, execOptoins, --retryCount); + } else { + throw error; + } + } +} + +function execute(command, options) { + return new Promise((resolve, reject) => { + exec(command, options, (err, stdout, stderr) => { + if (err) { + reject(err); + } else { + resolve({ + stdout: stdout, + stderr: stderr + }); + } + }); + }) +} + +/** + * wrap child_process.spawn with retry + * @param {string} command + * @param {structure} execOptions + * @param {number} retryCount + */ +async function executeLongProcessCommand(command, execOptions = {}, retryCount = 1) { + try { + const firstCommand = command[0]; + const options = command.slice(1); + await promisifiedSpawn(firstCommand, options, execOptions); + } catch (error) { + if (retryCount > 0) { + await executeLongProcessCommand(command, execOptions, --retryCount); + } else { + throw error; + } + } +} + +function promisifiedSpawn(command, options, execOptions) { + return new Promise((resolve, reject) => { + const subProcess = spawn(command, options, execOptions); + subProcess.stdout.on('data', (data) => { + process.stdout.write(data.toString()); + }); + subProcess.stderr.on('data', (data) => { + process.stderr.write(data.toString()); + }); + subProcess.on('error', (err) => { + console.error('spawn error: ', err); + }); + subProcess.on('close', (code) => { + if (code === 0) { + resolve(); + } else { + reject(`"${command} ${options.join(' ')}" exited with code: ${code}`); + } + }); + }); +} + +module.exports = { + execute: executeCommand, + executeLongProcess: executeLongProcessCommand, +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/translator.js b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/translator.js new file mode 100644 index 0000000000000000000000000000000000000000..2c6825cffe7848c9543e5d0fc76c9e48099c7cda --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/translator.js @@ -0,0 +1,160 @@ +/* A couple of utility methods */ + +function each(obj, iter) { + for (var key in obj) { + if (obj.hasOwnProperty(key)) iter(key, obj[key]); + } +} + +function nextString(str) { + return 'S' + (parseInt(str.substr(1), 36) + 1).toString(36); +} + +/* End utility methods */ + +function Translator(api, options) { + var origLength = JSON.stringify(api, null, 2).length; + var debugInfo = {flattened: {}, pruned: {}}; + var shapeName = 'S0'; + var shapeNameMap = {}; + var visitedShapes = {}; + + function logResults() { + console.log('** Generated', api.metadata.endpointPrefix + '-' + + api.metadata.apiVersion +'.min.json' + + (process.env.DEBUG ? ':' : '')); + + if (process.env.DEBUG) { + var pruned = Object.keys(debugInfo.pruned); + var flattened = Object.keys(debugInfo.flattened); + var newLength = JSON.stringify(api, null, 2).length; + console.log('- Pruned Shapes:', pruned.length); + console.log('- Flattened Shapes:', flattened.length); + console.log('- Remaining Shapes:', Object.keys(api.shapes).length); + console.log('- Original Size:', origLength / 1024.0, 'kb'); + console.log('- Minified Size:', newLength / 1024.0, 'kb'); + console.log('- Size Saving:', (origLength - newLength) / 1024.0, 'kb'); + console.log(''); + } + } + + function deleteTraits(obj) { + if (!options.documentation) { + delete obj.documentation; + delete obj.documentationUrl; + delete obj.errors; + delete obj.min; + delete obj.max; + delete obj.pattern; + delete obj['enum']; + delete obj.box; + } + } + + function trackShapeDeclaration(ref) { + if (ref.shape && !shapeNameMap[ref.shape]) { + // found a shape declaration we have not yet visited. + // assign a new generated name in the shapeNameMap & visit it + var oldShapeName = ref.shape; + ref.shape = shapeName = nextString(shapeName); + + visitedShapes[shapeName] = api.shapes[oldShapeName]; + shapeNameMap[oldShapeName] = {name: shapeName, refs: [ref]}; + + traverseShapeRef(api.shapes[oldShapeName]); + } else if (ref.shape && shapeNameMap[ref.shape]) { + // we visited this shape before. keep track of this ref and rename + // the referenced declaration to the generated name + var map = shapeNameMap[ref.shape]; + map.refs.push(ref); + ref.shape = map.name; + } + } + + function pruneShapes() { + // prune shapes visited only once or only have type specifiers + each(shapeNameMap, function(name, map) { + if (Object.keys(visitedShapes[map.name]).join() === 'type' && + ['structure','map','list'].indexOf(visitedShapes[map.name].type) < 0) { + // flatten out the shape (only a scalar type property is on the shape) + for (var i = 0; i < map.refs.length; i++) { + var ref = map.refs[i]; + debugInfo.flattened[name] = true; + delete ref.shape; + ref.type = visitedShapes[map.name].type; + + // string type is default, don't need to specify this + if (ref.type === 'string') delete ref.type; + } + + // we flattened all refs, we can prune the shape too + delete visitedShapes[map.name]; + debugInfo.pruned[name] = true; + } else if (map.refs.length === 1) { // only visited once + // merge shape data onto ref + var shape = visitedShapes[map.name]; + + for (var i = 0; i < map.refs.length; i++) { + delete map.refs[i].shape; + for (var prop in shape) { + if (shape.hasOwnProperty(prop)) { + //Translator prefers timestampFormat trait in members rather than in shape + if (map.refs[i].hasOwnProperty(prop) && ['timestampFormat'].indexOf(prop) >= 0) { + continue; + } + map.refs[i][prop] = shape[prop]; + } + + } + } + + // delete the visited shape + delete visitedShapes[map.name]; + debugInfo.pruned[name] = true; + } + }); + } + + function traverseShapeRef(ref) { + if (!ref) return; + + deleteTraits(ref); + + traverseShapeRef(ref.key); // for maps + traverseShapeRef(ref.value); // for maps + traverseShapeRef(ref.member); // for lists + + // for structures + each(ref.members || {}, function(key, value) { traverseShapeRef(value); }); + + // resolve shape declarations + trackShapeDeclaration(ref); + } + + function traverseOperation(op) { + deleteTraits(op); + + delete op.name; + if (op.http) { + if (op.http.method === 'POST') delete op.http.method; + if (op.http.requestUri === '/') delete op.http.requestUri; + if (Object.keys(op.http).length === 0) delete op.http; + } + + traverseShapeRef(op.input); + traverseShapeRef(op.output); + } + + function traverseApi() { + deleteTraits(api); + each(api.operations, function(name, op) { traverseOperation(op); }); + api.shapes = visitedShapes; + } + + traverseApi(); + pruneShapes(); + logResults(); + return api; +} + +module.exports = Translator; diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/ts-customizations.json b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/ts-customizations.json new file mode 100644 index 0000000000000000000000000000000000000000..27970b312fa0d5c1c7273cd8a73a2f14e5e96ade --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/ts-customizations.json @@ -0,0 +1,75 @@ +{ + "cloudfront": [ + { + "path": "lib/cloudfront/signer", + "imports": [ + { + "name": "Signer", + "alias": "signer" + } + ] + } + ], + "dynamodb": [ + { + "path": "lib/dynamodb/document_client", + "imports": [ + { + "name": "DocumentClient", + "alias": "document_client" + } + ] + }, + { + "path": "lib/dynamodb/converter", + "imports": [ + { + "name": "Converter", + "alias": "converter" + } + ] + } + ], + "polly": [ + { + "path": "lib/polly/presigner", + "imports": [ + { + "name": "Presigner", + "alias": "presigner" + } + ] + } + ], + "rds": [ + { + "path": "lib/rds/signer", + "imports": [ + { + "name": "Signer", + "alias": "signer" + } + ] + } + ], + "s3": [ + { + "path": "lib/s3/managed_upload", + "imports": [ + { + "name": "ManagedUpload", + "alias": "managed_upload" + } + ] + }, + { + "path": "lib/s3/presigned_post", + "imports": [ + { + "name": "PresignedPost", + "alias": "presigned_post" + } + ] + } + ] +} diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/ts-generator.js b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/ts-generator.js new file mode 100644 index 0000000000000000000000000000000000000000..e953b7923ff9dbd1a40949adf0a6c8dc70810b88 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/ts-generator.js @@ -0,0 +1,674 @@ +var fs = require('fs'); +var path = require('path'); +var pruneShapes = require('./prune-shapes').pruneShapes; + +var CUSTOM_CONFIG_ENUMS = { + DUALSTACK: { + FILE_NAME: 'config_use_dualstack', + INTERFACE: 'UseDualstackConfigOptions' + } +}; + +function TSGenerator(options) { + this._sdkRootDir = options.SdkRootDirectory || process.cwd(); + this._apiRootDir = path.join(this._sdkRootDir, 'apis'); + this._metadataPath = path.join(this._apiRootDir, 'metadata.json'); + this._clientsDir = path.join(this._sdkRootDir, 'clients'); + // Lazy loading values on usage to avoid side-effects in constructor + this.metadata = null; + this.typings = {}; + this.streamTypes = {}; +} + +/** + * Loads the AWS SDK metadata.json file. + */ +TSGenerator.prototype.loadMetadata = function loadMetadata() { + var metadataFile = fs.readFileSync(this._metadataPath); + this.metadata = JSON.parse(metadataFile); + return this.metadata; +}; + +/** + * Modifies metadata to include api model filenames. + */ +TSGenerator.prototype.fillApiModelFileNames = function fillApiModelFileNames() { + var modelPaths = fs.readdirSync(this._apiRootDir); + if (!this.metadata) { + this.loadMetadata(); + } + var metadata = this.metadata; + + // sort paths so latest versions appear first + modelPaths = modelPaths.sort(function sort(a, b) { + if (a < b) { + return 1; + } else if (a > b) { + return -1; + } else { + return 0; + } + }); + + // Only get latest version of models + var foundModels = Object.create(null); + modelPaths.forEach(function(modelFileName) { + var match = modelFileName.match(/^(.+)(-[\d]{4}-[\d]{2}-[\d]{2})\.normal\.json$/i); + if (match) { + var model = match[1]; + // add version + var version = match[2].substring(1); + if (!foundModels[model]) { + foundModels[model] = { + latestFileName: modelFileName, + versions: [version] + }; + } else { + foundModels[model].versions.push(version); + } + } + }); + + // now update the metadata + var keys = Object.keys(metadata); + keys.forEach(function(key) { + var modelName = metadata[key].prefix || key; + var modelInfo = foundModels[modelName]; + metadata[key].api_path = modelInfo.latestFileName; + // find waiters file + var baseName = modelInfo.latestFileName.split('.')[0]; + if (modelPaths.indexOf(baseName + '.waiters2.json') >= 0) { + metadata[key].waiters_path = baseName + '.waiters2.json'; + } + // add versions + if (!metadata[key].versions) { + metadata[key].versions = []; + } + metadata[key].versions = [].concat(metadata[key].versions, modelInfo.versions); + }); +}; + +TSGenerator.prototype.updateDynamoDBDocumentClient = function updateDynamoDBDocumentClient() { + // read in document client customization + var docClientCustomCode = fs.readFileSync(path.join(this._sdkRootDir, 'lib', 'dynamodb', 'document_client.d.ts')).toString(); + var lines = docClientCustomCode.split('\n'); + var namespaceIndexStart = -1; + var namespaceIndexEnd = -1; + for (var i = 0, iLen = lines.length; i < iLen; i++) { + var line = lines[i]; + // find exported namespace + if (line.indexOf('//') >= 0) { + namespaceIndexStart = i; + } + if (line.indexOf('//') >= 0) { + namespaceIndexEnd = i; + break; + } + } + if (namespaceIndexStart >= 0 && namespaceIndexEnd >= 0) { + // insert doc client interfaces + lines.splice(namespaceIndexStart + 1, (namespaceIndexEnd - namespaceIndexStart - 1), this.generateDocumentClientInterfaces(1)); + var code = lines.join('\n'); + this.writeTypingsFile('document_client', path.join(this._sdkRootDir, 'lib', 'dynamodb'), code); + } +}; + +/** + * Generates the file containing DocumentClient interfaces. + */ +TSGenerator.prototype.generateDocumentClientInterfaces = function generateDocumentClientInterfaces(tabCount) { + tabCount = tabCount || 0; + var self = this; + // get the dynamodb model + var dynamodbModel = this.loadServiceApi('dynamodb'); + var code = ''; + // stub Blob interface + code += this.tabs(tabCount) + 'interface Blob {}\n'; + // generate shapes + var modelShapes = dynamodbModel.shapes; + // iterate over each shape + var shapeKeys = Object.keys(modelShapes); + shapeKeys.forEach(function (shapeKey) { + var modelShape = modelShapes[shapeKey]; + // ignore exceptions + if (modelShape.exception) { + return; + } + // overwrite AttributeValue + if (shapeKey === 'AttributeValue') { + code += self.generateDocString('A JavaScript object or native type.', tabCount); + code += self.tabs(tabCount) + 'export type ' + shapeKey + ' = any;\n'; + return; + } + code += self.generateTypingsFromShape(dynamodbModel, shapeKey, modelShape, tabCount, []); + }); + return code; +}; + +/** + * Returns a service model based on the serviceIdentifier. + */ +TSGenerator.prototype.loadServiceApi = function loadServiceApi(serviceIdentifier) { + // first, find the correct identifier + var metadata = this.metadata; + var serviceFilePath = path.join(this._apiRootDir, metadata[serviceIdentifier].api_path); + var serviceModelFile = fs.readFileSync(serviceFilePath); + var serviceModel = JSON.parse(serviceModelFile); + // load waiters file if it exists + var waiterFilePath; + if (metadata[serviceIdentifier].waiters_path) { + waiterFilePath = path.join(this._apiRootDir, metadata[serviceIdentifier].waiters_path); + var waiterModelFile = fs.readFileSync(waiterFilePath); + var waiterModel = JSON.parse(waiterModelFile); + serviceModel.waiters = waiterModel.waiters; + } + + return serviceModel; +}; + +/** + * Determines if a member is required by checking for it in a list. + */ +TSGenerator.prototype.checkRequired = function checkRequired(list, member) { + if (list.indexOf(member) >= 0) { + return true; + } + return false; +}; + +/** + * Generates whitespace based on the count. + */ +TSGenerator.prototype.tabs = function tabs(count) { + var code = ''; + for (var i = 0; i < count; i++) { + code += ' '; + } + return code; +}; + +/** + * Transforms documentation string to a more readable format. + */ +TSGenerator.prototype.transformDocumentation = function transformDocumentation(documentation) { + if (!documentation) { + return ''; + } + documentation = documentation.replace(/<(?:.|\n)*?>/gm, ''); + documentation = documentation.replace(/\*\//g, '*'); + return documentation; +}; + +/** + * Returns a doc string based on the supplied documentation. + * Also tabs the doc string if a count is provided. + */ +TSGenerator.prototype.generateDocString = function generateDocString(documentation, tabCount) { + tabCount = tabCount || 0; + var code = ''; + code += this.tabs(tabCount) + '/**\n'; + code += this.tabs(tabCount) + ' * ' + this.transformDocumentation(documentation) + '\n'; + code += this.tabs(tabCount) + ' */\n'; + return code; +}; + +/** + * Returns an array of custom configuration options based on a service identiffier. + * Custom configuration options are determined by checking the metadata.json file. + */ +TSGenerator.prototype.generateCustomConfigFromMetadata = function generateCustomConfigFromMetadata(serviceIdentifier) { + // some services have additional configuration options that are defined in the metadata.json file + // i.e. dualstackAvailable = useDualstack + // create reference to custom options + var customConfigurations = []; + var serviceMetadata = this.metadata[serviceIdentifier]; + // loop through metadata members + for (var memberName in serviceMetadata) { + if (!serviceMetadata.hasOwnProperty(memberName)) { + continue; + } + // check configs + switch (memberName) { + case 'dualstackAvailable': + customConfigurations.push(CUSTOM_CONFIG_ENUMS.DUALSTACK); + break; + } + } + + return customConfigurations; +}; + +TSGenerator.prototype.generateSafeShapeName = function generateSafeShapeName(name, blacklist) { + blacklist = blacklist || []; + if (blacklist.indexOf(name) >= 0) { + return '_' + name; + } + return name; +}; + +TSGenerator.prototype.extractTypesDependOnStream = function extractTypesDependOnStream(shapeKey, modelShape) { + var streamTypeList = []; + if (typeof modelShape !== "object" || Object.keys(modelShape).length === 0) { + return []; + } + if (modelShape.streaming) { + streamTypeList.push(shapeKey); + return streamTypeList; + } + for (var subModelKey in modelShape) { + var subModel = modelShape[subModelKey]; + var subStreamTypeList = this.extractTypesDependOnStream(subModelKey, subModel); + if (Object.keys(subStreamTypeList).length !== 0) { + for (var streamType of subStreamTypeList) { + streamTypeList.push(streamType); + } + } + } + return streamTypeList; +} + +TSGenerator.prototype.addReadableType = function addReadableType(shapeKey) { + var code = ''; + if (this.streamTypes[shapeKey]) { + code += '|Readable'; + } else if (shapeKey[0] === '_' && this.streamTypes[shapeKey.slice(1)]) { + code += '|Readable'; + } + return code; +} + +/** + * Generates a type or interface based on the shape. + */ +TSGenerator.prototype.generateTypingsFromShape = function generateTypingsFromShape(model, shapeKey, shape, tabCount, customClassNames) { + // some shapes shouldn't be generated if they are javascript primitives + var jsPrimitives = ['string', 'boolean', 'number']; + if (jsPrimitives.indexOf(shapeKey) >= 0) { + return ''; + } + + if (['Date', 'Blob'].indexOf(shapeKey) >= 0) { + shapeKey = '_' + shapeKey; + } + // In at least one (cloudfront.Signer) case, a class on a service namespace clashes with a shape + shapeKey = this.generateSafeShapeName(shapeKey, customClassNames); + + var self = this; + var code = ''; + tabCount = tabCount || 0; + var tabs = this.tabs; + var type = shape.type; + if (shape.eventstream) { + // eventstreams MUST be structures + var members = Object.keys(shape.members); + var events = members.map(function(member) { + // each member is an individual event type, so each must be optional + return member + '?:' + shape.members[member].shape; + }); + return code += tabs(tabCount) + 'export type ' + shapeKey + ' = EventStream<{' + events.join(',') + '}>;\n'; + } + if (type === 'structure') { + code += tabs(tabCount) + 'export interface ' + shapeKey + ' {\n'; + var members = shape.members; + // cycle through members + var memberKeys = Object.keys(members); + memberKeys.forEach(function(memberKey) { + // docs + var member = members[memberKey]; + if (member.documentation) { + code += self.generateDocString(member.documentation, tabCount + 1); + } + var required = self.checkRequired(shape.required || [], memberKey) ? '' : '?'; + var memberType = member.shape; + if (member.eventpayload) { + // eventpayloads are always either structures, or buffers + if (['blob', 'binary'].indexOf(model.shapes[memberType].type) >= 0) { + memberType = 'Buffer'; + } + } + memberType = self.generateSafeShapeName(memberType, [].concat(customClassNames, ['Date', 'Blob'])); + code += tabs(tabCount + 1) + memberKey + required + ': ' + memberType + ';\n'; + }); + code += tabs(tabCount) + '}\n'; + } else if (type === 'list') { + code += tabs(tabCount) + 'export type ' + shapeKey + ' = ' + this.generateSafeShapeName(shape.member.shape, customClassNames) + '[];\n'; + } else if (type === 'map') { + code += tabs(tabCount) + 'export type ' + shapeKey + ' = {[key: string]: ' + this.generateSafeShapeName(shape.value.shape, customClassNames) + '};\n'; + } else if (type === 'string' || type === 'character') { + var stringType = 'string'; + if (Array.isArray(shape.enum)) { + stringType = shape.enum.map(function(s) { + return '"' + s + '"'; + }).join('|') + '|' + stringType; + } + code += tabs(tabCount) + 'export type ' + shapeKey + ' = ' + stringType + ';\n'; + } else if (['double', 'long', 'short', 'biginteger', 'bigdecimal', 'integer', 'float'].indexOf(type) >= 0) { + code += tabs(tabCount) + 'export type ' + shapeKey + ' = number;\n'; + } else if (type === 'timestamp') { + code += tabs(tabCount) + 'export type ' + shapeKey + ' = Date;\n'; + } else if (type === 'boolean') { + code += tabs(tabCount) + 'export type ' + shapeKey + ' = boolean;\n'; + } else if (type === 'blob' || type === 'binary') { + code += tabs(tabCount) + 'export type ' + shapeKey + ' = Buffer|Uint8Array|Blob|string' + + self.addReadableType(shapeKey) + +';\n'; + } + return code; +}; + +/** + * Generates a class method type for an operation. + */ +TSGenerator.prototype.generateTypingsFromOperations = function generateTypingsFromOperations(className, operation, operationName, tabCount) { + var code = ''; + tabCount = tabCount || 0; + var tabs = this.tabs; + + var input = operation.input; + var output = operation.output; + operationName = operationName.charAt(0).toLowerCase() + operationName.substring(1); + + var inputShape = input ? className + '.Types.' + input.shape : '{}'; + var outputShape = output ? className + '.Types.' + output.shape : '{}'; + + if (input) { + code += this.generateDocString(operation.documentation, tabCount); + code += tabs(tabCount) + operationName + '(params: ' + inputShape + ', callback?: (err: AWSError, data: ' + outputShape + ') => void): Request<' + outputShape + ', AWSError>;\n'; + } + code += this.generateDocString(operation.documentation, tabCount); + code += tabs(tabCount) + operationName + '(callback?: (err: AWSError, data: ' + outputShape + ') => void): Request<' + outputShape + ', AWSError>;\n'; + + return code; +}; + +TSGenerator.prototype.generateConfigurationServicePlaceholders = function generateConfigurationServicePlaceholders() { + /** + * Should create a config service placeholder + */ + var self = this; + var metadata = this.metadata; + // Iterate over every service + var serviceIdentifiers = Object.keys(metadata); + var code = ''; + var configCode = ''; + var versionsCode = ''; + code += 'import * as AWS from \'../clients/all\';\n'; + configCode += 'export abstract class ConfigurationServicePlaceholders {\n'; + versionsCode += 'export interface ConfigurationServiceApiVersions {\n'; + serviceIdentifiers.forEach(function(serviceIdentifier) { + var className = self.metadata[serviceIdentifier].name; + configCode += self.tabs(1) + serviceIdentifier + '?: AWS.' + className + '.Types.ClientConfiguration;\n'; + versionsCode += self.tabs(1) + serviceIdentifier + '?: AWS.' + className + '.Types.apiVersion;\n'; + }); + configCode += '}\n'; + versionsCode += '}\n'; + + code += configCode + versionsCode; + this.writeTypingsFile('config_service_placeholders', path.join(this._sdkRootDir, 'lib'), code); +}; + +TSGenerator.prototype.getServiceApiVersions = function generateServiceApiVersions(serviceIdentifier) { + var metadata = this.metadata; + var versions = metadata[serviceIdentifier].versions || []; + // transform results (to get rid of '*' and sort + versions = versions.map(function(version) { + return version.replace('*', ''); + }).sort(); + return versions; +}; + +/** + * Generates class method types for a waiter. + */ +TSGenerator.prototype.generateTypingsFromWaiters = function generateTypingsFromWaiters(className, waiterState, waiter, underlyingOperation, tabCount) { + var code = ''; + tabCount = tabCount || 0; + var operationName = waiter.operation.charAt(0).toLowerCase() + waiter.operation.substring(1); + waiterState = waiterState.charAt(0).toLowerCase() + waiterState.substring(1); + var docString = 'Waits for the ' + waiterState + ' state by periodically calling the underlying ' + className + '.' + operationName + 'operation every ' + waiter.delay + ' seconds (at most ' + waiter.maxAttempts + ' times).'; + if (waiter.description) { + docString += ' ' + waiter.description; + } + + // get input and output + var inputShape = '{}'; + var outputShape = '{}'; + if (underlyingOperation.input) { + inputShape = className + '.Types.' + underlyingOperation.input.shape; + } + if (underlyingOperation.output) { + outputShape = className + '.Types.' + underlyingOperation.output.shape; + } + + code += this.generateDocString(docString, tabCount); + code += this.tabs(tabCount) + 'waitFor(state: "' + waiterState + '", params: ' + inputShape + ' & {$waiter?: WaiterConfiguration}, callback?: (err: AWSError, data: ' + outputShape + ') => void): Request<' + outputShape + ', AWSError>;\n'; + code += this.generateDocString(docString, tabCount); + code += this.tabs(tabCount) + 'waitFor(state: "' + waiterState + '", callback?: (err: AWSError, data: ' + outputShape + ') => void): Request<' + outputShape + ', AWSError>;\n'; + + return code; +}; + +/** + * Returns whether a service has customizations to include. + */ +TSGenerator.prototype.includeCustomService = function includeCustomService(serviceIdentifier) { + // check services directory + var servicesDir = path.join(this._sdkRootDir, 'lib', 'services'); + var fileNames = fs.readdirSync(servicesDir); + fileNames = fileNames.filter(function(fileName) { + return fileName === serviceIdentifier + '.d.ts'; + }); + return !!fileNames.length; +}; + +/** + * Generates typings for classes that live on a service client namespace. + */ +TSGenerator.prototype.generateCustomNamespaceTypes = function generateCustomNamespaceTypes(serviceIdentifier, className) { + var self = this; + var tsCustomizationsJson = require('./ts-customizations'); + var customClasses = []; + var code = ''; + + var serviceInfo = tsCustomizationsJson[serviceIdentifier] || null; + // exit early if no customizations found + if (!serviceInfo) { + return null; + } + code += 'declare namespace ' + className + ' {\n'; + //generate import code + var importCode = ''; + serviceInfo.forEach(function(data) { + var aliases = []; + var imports = data.imports || []; + imports.forEach(function(pair) { + aliases.push(pair.name + ' as ' + pair.alias); + code += self.tabs(1) + 'export import ' + pair.name + ' = ' + pair.alias + ';\n'; + customClasses.push(pair.name); + }); + if (aliases.length) { + importCode += 'import {' + aliases.join(', ') + '} from \'../' + data.path + '\';\n'; + } + }); + code += '}\n'; + return { + importCode: importCode, + namespaceCode: code, + customClassNames: customClasses + }; +}; + +TSGenerator.prototype.containsEventStreams = function containsEventStreams(model) { + var shapeNames = Object.keys(model.shapes); + for (var name of shapeNames) { + if (model.shapes[name].eventstream) { + return true; + } + } + return false; +}; + +/** + * Generates the typings for a service based on the serviceIdentifier. + */ +TSGenerator.prototype.processServiceModel = function processServiceModel(serviceIdentifier) { + var model = this.loadServiceApi(serviceIdentifier); + pruneShapes(model); + + var self = this; + var code = ''; + var className = this.metadata[serviceIdentifier].name; + var customNamespaces = this.generateCustomNamespaceTypes(serviceIdentifier, className); + var customClassNames = customNamespaces ? customNamespaces.customClassNames : []; + var waiters = model.waiters || Object.create(null); + var waiterKeys = Object.keys(waiters); + // generate imports + code += 'import {Request} from \'../lib/request\';\n'; + code += 'import {Response} from \'../lib/response\';\n'; + code += 'import {AWSError} from \'../lib/error\';\n'; + var hasCustomizations = this.includeCustomService(serviceIdentifier); + var parentClass = hasCustomizations ? className + 'Customizations' : 'Service'; + if (hasCustomizations) { + code += 'import {' + parentClass + '} from \'../lib/services/' + serviceIdentifier + '\';\n'; + } else { + code += 'import {' + parentClass + '} from \'../lib/service\';\n'; + } + if (waiterKeys.length) { + code += 'import {WaiterConfiguration} from \'../lib/service\';\n'; + } + code += 'import {ServiceConfigurationOptions} from \'../lib/service\';\n'; + // get any custom config options + var customConfig = this.generateCustomConfigFromMetadata(serviceIdentifier); + var hasCustomConfig = !!customConfig.length; + var customConfigTypes = ['ServiceConfigurationOptions']; + code += 'import {ConfigBase as Config} from \'../lib/config-base\';\n'; + if (hasCustomConfig) { + // generate import statements and custom config type + customConfig.forEach(function(config) { + code += 'import {' + config.INTERFACE + '} from \'../lib/' + config.FILE_NAME + '\';\n'; + customConfigTypes.push(config.INTERFACE); + }); + } + if (this.containsEventStreams(model)) { + code += 'import {EventStream} from \'../lib/event-stream/event-stream\';\n'; + } + // import custom namespaces + if (customNamespaces) { + code += customNamespaces.importCode; + } + code += 'interface Blob {}\n'; + // generate methods + var modelOperations = model.operations; + var operationKeys = Object.keys(modelOperations); + code += 'declare class ' + className + ' extends ' + parentClass + ' {\n'; + // create constructor + code += this.generateDocString('Constructs a service object. This object has one method for each API operation.', 1); + code += this.tabs(1) + 'constructor(options?: ' + className + '.Types.ClientConfiguration' + ')\n'; + code += this.tabs(1) + 'config: Config & ' + className + '.Types.ClientConfiguration' + ';\n'; + + operationKeys.forEach(function (operationKey) { + code += self.generateTypingsFromOperations(className, modelOperations[operationKey], operationKey, 1); + }); + + // generate waitFor methods + waiterKeys.forEach(function (waitersKey) { + var waiter = waiters[waitersKey]; + var operation = modelOperations[waiter.operation]; + code += self.generateTypingsFromWaiters(className, waitersKey, waiter, operation, 1); + }); + + code += '}\n'; + // check for static classes on namespace + if (customNamespaces) { + code += customNamespaces.namespaceCode; + } + + // shapes should map to interfaces + var modelShapes = model.shapes; + // iterate over each shape + var shapeKeys = Object.keys(modelShapes); + code += 'declare namespace ' + className + ' {\n'; + // preprocess shapes to fetch out needed dependency. e.g. "streaming": true + shapeKeys.forEach(function (shapeKey) { + var modelShape = modelShapes[shapeKey]; + var streamTypeList = self.extractTypesDependOnStream(shapeKey, modelShape); + for (var streamType of streamTypeList) { + self.streamTypes[streamType] = true; + } + }); + shapeKeys.forEach(function (shapeKey) { + var modelShape = modelShapes[shapeKey]; + // ignore exceptions + if (modelShape.exception) { + return; + } + code += self.generateTypingsFromShape(model, shapeKey, modelShape, 1, customClassNames); + }); + //add extra dependencies like 'streaming' + if (Object.keys(self.streamTypes).length !== 0) { + var insertPos = code.indexOf('interface Blob {}'); + code = code.slice(0, insertPos) + 'import {Readable} from \'stream\';\n' + code.slice(insertPos); + } + + this.streamTypes = {}; + + code += this.generateDocString('A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify \'latest\' to use the latest possible version.', 1); + code += this.tabs(1) + 'export type apiVersion = "' + this.getServiceApiVersions(serviceIdentifier).join('"|"') + '"|"latest"|string;\n'; + code += this.tabs(1) + 'export interface ClientApiVersions {\n'; + code += this.generateDocString('A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify \'latest\' to use the latest possible version.', 2); + code += this.tabs(2) + 'apiVersion?: apiVersion;\n'; + code += this.tabs(1) + '}\n'; + code += this.tabs(1) + 'export type ClientConfiguration = ' + customConfigTypes.join(' & ') + ' & ClientApiVersions;\n'; + // export interfaces under Types namespace for backwards-compatibility + code += this.generateDocString('Contains interfaces for use with the ' + className + ' client.', 1); + code += this.tabs(1) + 'export import Types = ' + className + ';\n'; + code += '}\n'; + + code += 'export = ' + className + ';\n'; + return code; +}; + +/** + * Write Typings file to the specified directory. + */ +TSGenerator.prototype.writeTypingsFile = function writeTypingsFile(name, directory, code) { + fs.writeFileSync(path.join(directory, name + '.d.ts'), code); +}; + +/** + * Create the typescript definition files for every service. + */ +TSGenerator.prototype.generateAllClientTypings = function generateAllClientTypings() { + this.fillApiModelFileNames(); + var self = this; + var metadata = this.metadata; + // Iterate over every service + var serviceIdentifiers = Object.keys(metadata); + serviceIdentifiers.forEach(function(serviceIdentifier) { + var code = self.processServiceModel(serviceIdentifier); + self.writeTypingsFile(serviceIdentifier, self._clientsDir, code); + }); +}; + +/** + * Create the typescript definition files for the all and browser_default exports. + */ +TSGenerator.prototype.generateGroupedClients = function generateGroupedClients() { + var metadata = this.metadata; + var allCode = ''; + var browserCode = ''; + // Iterate over every service + var serviceIdentifiers = Object.keys(metadata); + serviceIdentifiers.forEach(function(serviceIdentifier) { + var className = metadata[serviceIdentifier].name; + var code = 'export import ' + className + ' = require(\'./' + serviceIdentifier + '\');\n'; + allCode += code; + if (metadata[serviceIdentifier].cors) { + browserCode += code; + } + }); + this.writeTypingsFile('all', this._clientsDir, allCode); + this.writeTypingsFile('browser_default', this._clientsDir, browserCode); +}; + +module.exports = TSGenerator; diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/lib/visit-related-shape-names.js b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/visit-related-shape-names.js new file mode 100644 index 0000000000000000000000000000000000000000..c5176f509942c1c1aa1b1666e065dfaa11d08777 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/lib/visit-related-shape-names.js @@ -0,0 +1,40 @@ + +/** + * + * @param {string} startingShape + * @param {{[key: string]: any}} shapeMap + */ +function visitRelatedShapeNames(startingShape, shapeMap) { + var shape = shapeMap[startingShape]; + if (shape.visited) { + // exit early if the shape has been visited + return; + } + + shape.visited = true; + + if (['structure', 'map', 'list'].indexOf(shape.type) < 0) { + // not a complex shape, so it's a terminal shape + return; + } + + if (shape.type === 'structure') { + var members = shape.members; + for (var memberName of Object.keys(members)) { + var memberShapeName = members[memberName].shape; + visitRelatedShapeNames(memberShapeName, shapeMap); + } + } else if (shape.type === 'map') { + var keyShape = shape.key.shape; + var valueShape = shape.value.shape; + visitRelatedShapeNames(keyShape, shapeMap); + visitRelatedShapeNames(valueShape, shapeMap); + } else if (shape.type === 'list') { + var memberShape = shape.member.shape; + visitRelatedShapeNames(memberShape, shapeMap); + } +} + +module.exports = { + visitRelatedShapeNames: visitRelatedShapeNames +}; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/region-checker/allowlist.js b/justdanceonline-main/node_modules/aws-sdk/scripts/region-checker/allowlist.js new file mode 100644 index 0000000000000000000000000000000000000000..f5453a3a07629bcde01838e3667f67d1716a618a --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/region-checker/allowlist.js @@ -0,0 +1,52 @@ +var allowlist = { + '/config.js': [ + 24, + 25, + 85, + 86, + 201, + 255, + 256 + ], + '/credentials/cognito_identity_credentials.js': [ + 78, + 79, + 109 + ], + '/credentials/shared_ini_file_credentials.js': [ + 4, + ], + '/http.js': [ + 5 + ], + '/rds/signer.js': [ + 43, + 44, + 97, + 99, + 110, + 112 + ], + '/request.js': [ + 319 + ], + '/services/s3.js': [ + 87, + 88, + 252, + 254, + 267, + 273, + 644, + 646, + 765, + 776, + 777, + 778, + 783 + ] +}; + +module.exports = { + allowlist: allowlist +}; diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/region-checker/index.js b/justdanceonline-main/node_modules/aws-sdk/scripts/region-checker/index.js new file mode 100644 index 0000000000000000000000000000000000000000..454291b64d8a71a8ecaeff2938f30b6889afef8c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/region-checker/index.js @@ -0,0 +1,75 @@ +var fs = require('fs'); +var path = require('path'); +var allowlist = require('./allowlist').allowlist; + +function checkFile(location) { + var file = fs.readFileSync(location); + var code = file.toString(); + var lines = code.split('\n'); + var regionMatches = []; + + lines.forEach(function(line, idx) { + var matches = line.match(/(us|eu|ap|sa|ca)-\w+-\d+/g); + if (matches) { + regionMatches.push({ + file: location, + line: idx, + code: line + }); + } + }); + + return regionMatches; +} + +function recursiveGetFilesIn(directory, extensions) { + var filenames = []; + + var keys = fs.readdirSync(directory); + + for (var i = 0, iLen = keys.length; i < iLen; i++) { + // check if it is a file + var keyPath = path.join(directory, keys[i]); + var stats = fs.statSync(keyPath); + if (stats.isDirectory()) { + filenames = filenames.concat( + recursiveGetFilesIn(keyPath, extensions) + ); + continue; + } + if (extensions.indexOf(path.extname(keyPath)) >= 0) { + filenames.push(path.join(keyPath)); + } + } + + return filenames; +} + +function checkForRegions() { + var libPath = path.join(__dirname, '..', '..', 'lib'); + var filePaths = recursiveGetFilesIn(libPath, ['.js']); + var regionMatches = []; + var warnings = []; + + filePaths.forEach(function(filePath) { + regionMatches = regionMatches.concat(checkFile(filePath)); + }); + + regionMatches.forEach(function(match) { + var normalizedPath = match.file.substring(libPath.length); + if (allowlist[normalizedPath] && allowlist[normalizedPath].indexOf(match.line) >= 0) { + return; + } + warnings.push('File: ' + normalizedPath + '\tLine ' + match.line + ':\t' + match.code.trim()); + }); + + if (warnings.length) { + console.error('Hard-coded regions detected. This should only be done if absolutely certain!'); + warnings.forEach(function(warning) { + console.error(warning); + }); + process.exit(1); + } +} + +checkForRegions(); \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/services-table-generator.js b/justdanceonline-main/node_modules/aws-sdk/scripts/services-table-generator.js new file mode 100644 index 0000000000000000000000000000000000000000..a14c5503d6ddf40262abb79025d2fef17535c875 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/services-table-generator.js @@ -0,0 +1,14 @@ +"use strict"; +var fs_1 = require("fs"); +var path_1 = require("path"); +var clients = require('../clients/all'); +var metadata = require('../apis/metadata'); +var api_loader = require('../lib/api_loader'); +fs_1.writeFileSync(path_1.resolve(__dirname, '..', 'SERVICES.md'), Object.keys(clients).reduce(function (serviceTable, clientId) { + var cid = clientId.toLowerCase(); + return serviceTable + Object.keys(api_loader.services[cid]).reverse() + .map(function (version) { + var model = api_loader(cid, version); + return model.metadata.serviceFullName + " | AWS." + clientId + " | " + version + " | " + (metadata[cid].cors === true ? ':tada:' : '') + " |"; + }).join("\n") + "\n"; +}, "The SDK currently supports the following services:\n\n

Note:\nAlthough all services are supported in the browser version of the SDK,\nnot all of the services are available in the default hosted build (using the\nscript tag provided above). Instructions on how to build a\ncustom version of the SDK with individual services are provided\nin the \"Building the SDK for Browsers\" section of the SDK Developer Guide.\n

\n\nService Name | Class Name | API Version | Allows CORS |\n------------ | ---------- | ----------- | ----------- |\n")); diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/services-table-generator.ts b/justdanceonline-main/node_modules/aws-sdk/scripts/services-table-generator.ts new file mode 100644 index 0000000000000000000000000000000000000000..3a4109c7173d05ec5d7791149c9945af5c6a8c25 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/services-table-generator.ts @@ -0,0 +1,29 @@ +import {writeFileSync} from 'fs'; +import {resolve} from 'path'; + +const clients = require('../clients/all'); +const metadata = require('../apis/metadata'); +const api_loader = require('../lib/api_loader'); + +writeFileSync( + resolve(__dirname, '..', 'SERVICES.md'), + Object.keys(clients).reduce((serviceTable, clientId): string => { + const cid = clientId.toLowerCase(); + return serviceTable + Object.keys(api_loader.services[cid]).reverse() + .map((version: string): string => { + const model = api_loader(cid, version); + return `${model.metadata.serviceFullName} | AWS.${clientId} | ${version} | ${metadata[cid].cors === true ? ':tada:' : ''} |`; + }).join("\n") + "\n"; + }, `The SDK currently supports the following services: + +

Note: +Although all services are supported in the browser version of the SDK, +not all of the services are available in the default hosted build (using the +script tag provided above). Instructions on how to build a +custom version of the SDK with individual services are provided +in the "Building the SDK for Browsers" section of the SDK Developer Guide. +

+ +Service Name | Class Name | API Version | Allows CORS | +------------ | ---------- | ----------- | ----------- | +`)); diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/translate-api b/justdanceonline-main/node_modules/aws-sdk/scripts/translate-api new file mode 100644 index 0000000000000000000000000000000000000000..f18a6178646f3ca7f6c24d973d0c5ca57fba13cd --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/translate-api @@ -0,0 +1,69 @@ +#!/usr/bin/env node + +var fs = require('fs'); +var Translator = require('./lib/translator'); +var removeEventStreamOperations = require('./lib/remove-event-stream-ops').removeEventStreamOperations; +var util = require('util'); +var path = require('path'); + +/* + * Minimizes all .normal.json files by flattening shapes, removing + * documentation and removing unused shapes. The result will be written to + * `.min.json` file. + * + * The passed parameter is base path. The directory must include the apis/ + * folder. + */ +function ApiTranslator(basePath) { + this._apisPath = path.join(basePath, 'apis'); +} + +/* + * minimize passed .normal.json filepath into .min.json + */ +ApiTranslator.prototype.minimizeFile = function minimizeFile(filepath) { + var opath = filepath.replace(/\.normal\.json$/, '.min.json'); + var data = JSON.parse(fs.readFileSync(path.join(this._apisPath, filepath)).toString()); + var didModify = removeEventStreamOperations(data); + if (didModify) { + // original model modified, replace existing normal.json so docs/ts definitions are accurate + fs.writeFileSync(path.join(this._apisPath, filepath), JSON.stringify(data, null, ' ')); + } + var translated = new Translator(data, {documentation: false}); + var json = JSON.stringify(translated, null, ' '); + fs.writeFileSync(path.join(this._apisPath, opath), json); +}; + +/* + * minimize files in api path. If optional modelName is passed only that model + * is minimized otherwise all .normal.json files found. + */ +ApiTranslator.prototype.translateAll = function translateAll(modelName) { + var paths = fs.readdirSync(this._apisPath); + var self = this; + paths.forEach(function(filepath) { + if (filepath.endsWith('.normal.json')) { + if (!modelName || filepath.startsWith(modelName)) { + self.minimizeFile(filepath); + } + } + }); +}; + +/* + * if executed as script initialize the ApiTranslator and minimize API files + * + * Optional first parameter specifies which model to minimize. If omitted all + * files are selected. + * + * Optional second parameter specifies base path. The directory must include + * the apis/ folder with .normal.json files. Output is written into the same + * path. If parameter is not passed the repository root will be used. + */ +if (require.main === module) { + var modelName = process.argv[2] || ''; + var basePath = process.argv[3] || path.join(__dirname, '..'); + new ApiTranslator(basePath).translateAll(modelName); +} + +module.exports = ApiTranslator; diff --git a/justdanceonline-main/node_modules/aws-sdk/scripts/typings-generator.js b/justdanceonline-main/node_modules/aws-sdk/scripts/typings-generator.js new file mode 100644 index 0000000000000000000000000000000000000000..eeaacd507c58dc940ca6866ae67fa067c3510839 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/scripts/typings-generator.js @@ -0,0 +1,25 @@ +#!/usr/bin/env node + +/* + * Pass optional path to target directory as command line argument. + * + * The directory must include the apis/ folder and service customizations at + * `lib/services`. Clients will be generated in `clients/`. + * + * If parameter is not passed the repository root will be used. + */ + +var path = require('path'); +var TSGenerator = require('./lib/ts-generator'); + +var basePath = process.argv[2] || path.join(__dirname, '..'); + +var tsGenerator = new TSGenerator({ + SdkRootDirectory: basePath +}); + +tsGenerator.generateAllClientTypings(); +tsGenerator.generateGroupedClients(); +tsGenerator.updateDynamoDBDocumentClient(); +tsGenerator.generateConfigurationServicePlaceholders(); +console.log('TypeScript Definitions created.'); diff --git a/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/index.d.ts b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..d324395a6a373c3b40534156729c5fc21022a5aa --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/index.d.ts @@ -0,0 +1,27 @@ +/** + * Output shape for endpoint discovery operations + */ +export type DiscoveredEndpoints = Array<{Address?: string, CachePeriodInMinutes?: number}> +declare type EndpointRecords = Array<{ + Address: string; + Expire: number; +}>; +export interface EndpointIdentifier { + [key: string]: string | undefined; + serviceId?: string; + region?: string; + accessKeyId?: string; + operation?: string; +} +export declare class EndpointCache { + readonly maxSize: number; + private cache; + constructor(maxSize?: number); + readonly size: number; + put(key: EndpointIdentifier | string, value: DiscoveredEndpoints): void; + get(key: EndpointIdentifier | string): EndpointRecords | undefined; + static getKeyString(key: EndpointIdentifier): string; + private populateValue; + empty(): void; + remove(key: EndpointIdentifier | string): void; +} diff --git a/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/index.js b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/index.js new file mode 100644 index 0000000000000000000000000000000000000000..740f6d998f613441bbce08efc4d4f9d163f1f35c --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/index.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var LRU_1 = require("./utils/LRU"); +var CACHE_SIZE = 1000; +/** + * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache] + */ +var EndpointCache = /** @class */ (function () { + function EndpointCache(maxSize) { + if (maxSize === void 0) { maxSize = CACHE_SIZE; } + this.maxSize = maxSize; + this.cache = new LRU_1.LRUCache(maxSize); + } + ; + Object.defineProperty(EndpointCache.prototype, "size", { + get: function () { + return this.cache.length; + }, + enumerable: true, + configurable: true + }); + EndpointCache.prototype.put = function (key, value) { + var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; + var endpointRecord = this.populateValue(value); + this.cache.put(keyString, endpointRecord); + }; + EndpointCache.prototype.get = function (key) { + var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; + var now = Date.now(); + var records = this.cache.get(keyString); + if (records) { + for (var i = records.length-1; i >= 0; i--) { + var record = records[i]; + if (record.Expire < now) { + records.splice(i, 1); + } + } + if (records.length === 0) { + this.cache.remove(keyString); + return undefined; + } + } + return records; + }; + EndpointCache.getKeyString = function (key) { + var identifiers = []; + var identifierNames = Object.keys(key).sort(); + for (var i = 0; i < identifierNames.length; i++) { + var identifierName = identifierNames[i]; + if (key[identifierName] === undefined) + continue; + identifiers.push(key[identifierName]); + } + return identifiers.join(' '); + }; + EndpointCache.prototype.populateValue = function (endpoints) { + var now = Date.now(); + return endpoints.map(function (endpoint) { return ({ + Address: endpoint.Address || '', + Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000 + }); }); + }; + EndpointCache.prototype.empty = function () { + this.cache.empty(); + }; + EndpointCache.prototype.remove = function (key) { + var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key; + this.cache.remove(keyString); + }; + return EndpointCache; +}()); +exports.EndpointCache = EndpointCache; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.d.ts b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..5a1fc8e4dc7bb72ab79dfa828900cd927e5a7725 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.d.ts @@ -0,0 +1,16 @@ +export declare class LRUCache { + private headerNode; + private tailNode; + private nodeMap; + private size; + private readonly sizeLimit; + constructor(size: number); + readonly length: number; + private prependToList; + private removeFromTail; + private detachFromList; + get(key: string): T | undefined; + remove(key: string): void; + put(key: string, value: T): void; + empty(): void; +} diff --git a/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js new file mode 100644 index 0000000000000000000000000000000000000000..5b39d2647f5d1dd17e2c69a8db510e6455179941 --- /dev/null +++ b/justdanceonline-main/node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js @@ -0,0 +1,107 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var LinkedListNode = /** @class */ (function () { + function LinkedListNode(key, value) { + this.key = key; + this.value = value; + } + return LinkedListNode; +}()); +var LRUCache = /** @class */ (function () { + function LRUCache(size) { + this.nodeMap = {}; + this.size = 0; + if (typeof size !== 'number' || size < 1) { + throw new Error('Cache size can only be positive number'); + } + this.sizeLimit = size; + } + Object.defineProperty(LRUCache.prototype, "length", { + get: function () { + return this.size; + }, + enumerable: true, + configurable: true + }); + LRUCache.prototype.prependToList = function (node) { + if (!this.headerNode) { + this.tailNode = node; + } + else { + this.headerNode.prev = node; + node.next = this.headerNode; + } + this.headerNode = node; + this.size++; + }; + LRUCache.prototype.removeFromTail = function () { + if (!this.tailNode) { + return undefined; + } + var node = this.tailNode; + var prevNode = node.prev; + if (prevNode) { + prevNode.next = undefined; + } + node.prev = undefined; + this.tailNode = prevNode; + this.size--; + return node; + }; + LRUCache.prototype.detachFromList = function (node) { + if (this.headerNode === node) { + this.headerNode = node.next; + } + if (this.tailNode === node) { + this.tailNode = node.prev; + } + if (node.prev) { + node.prev.next = node.next; + } + if (node.next) { + node.next.prev = node.prev; + } + node.next = undefined; + node.prev = undefined; + this.size--; + }; + LRUCache.prototype.get = function (key) { + if (this.nodeMap[key]) { + var node = this.nodeMap[key]; + this.detachFromList(node); + this.prependToList(node); + return node.value; + } + }; + LRUCache.prototype.remove = function (key) { + if (this.nodeMap[key]) { + var node = this.nodeMap[key]; + this.detachFromList(node); + delete this.nodeMap[key]; + } + }; + LRUCache.prototype.put = function (key, value) { + if (this.nodeMap[key]) { + this.remove(key); + } + else if (this.size === this.sizeLimit) { + var tailNode = this.removeFromTail(); + var key_1 = tailNode.key; + delete this.nodeMap[key_1]; + } + var newNode = new LinkedListNode(key, value); + this.nodeMap[key] = newNode; + this.prependToList(newNode); + }; + LRUCache.prototype.empty = function () { + var keys = Object.keys(this.nodeMap); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var node = this.nodeMap[key]; + this.detachFromList(node); + delete this.nodeMap[key]; + } + }; + return LRUCache; +}()); +exports.LRUCache = LRUCache; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/axios/CHANGELOG.md b/justdanceonline-main/node_modules/axios/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..6f11ac1e4c70a6a25716ac2679b9a639166e1792 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/CHANGELOG.md @@ -0,0 +1,685 @@ +# Changelog + +### 0.21.1 (December 21, 2020) + +Fixes and Functionality: + +- Hotfix: Prevent SSRF (#3410) +- Protocol not parsed when setting proxy config from env vars (#3070) +- Updating axios in types to be lower case (#2797) +- Adding a type guard for `AxiosError` (#2949) + +Internal and Tests: + +- Remove the skipping of the `socket` http test (#3364) +- Use different socket for Win32 test (#3375) + +Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub: + +- Daniel Lopretto +- Jason Kwok +- Jay +- Jonathan Foster +- Remco Haszing +- Xianming Zhong + +### 0.21.0 (October 23, 2020) + +Fixes and Functionality: + +- Fixing requestHeaders.Authorization ([#3287](https://github.com/axios/axios/pull/3287)) +- Fixing node types ([#3237](https://github.com/axios/axios/pull/3237)) +- Fixing axios.delete ignores config.data ([#3282](https://github.com/axios/axios/pull/3282)) +- Revert "Fixing overwrite Blob/File type as Content-Type in browser. (#1773)" ([#3289](https://github.com/axios/axios/pull/3289)) +- Fixing an issue that type 'null' and 'undefined' is not assignable to validateStatus when typescript strict option is enabled ([#3200](https://github.com/axios/axios/pull/3200)) + +Internal and Tests: + +- Lock travis to not use node v15 ([#3361](https://github.com/axios/axios/pull/3361)) + +Documentation: + +- Fixing simple typo, existant -> existent ([#3252](https://github.com/axios/axios/pull/3252)) +- Fixing typos ([#3309](https://github.com/axios/axios/pull/3309)) + +Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub: + +- Allan Cruz <57270969+Allanbcruz@users.noreply.github.com> +- George Cheng +- Jay +- Kevin Kirsche +- Remco Haszing +- Taemin Shin +- Tim Gates +- Xianming Zhong + +### 0.20.0 (August 20, 2020) + +Release of 0.20.0-pre as a full release with no other changes. + +### 0.20.0-pre (July 15, 2020) + +Fixes and Functionality: + +- Fixing response with utf-8 BOM can not parse to json ([#2419](https://github.com/axios/axios/pull/2419)) + - fix: remove byte order marker (UTF-8 BOM) when transform response + - fix: remove BOM only utf-8 + - test: utf-8 BOM + - fix: incorrect param name +- Refactor mergeConfig without utils.deepMerge ([#2844](https://github.com/axios/axios/pull/2844)) + - Adding failing test + - Fixing #2587 default custom config persisting + - Adding Concat keys and filter duplicates + - Fixed value from CPE + - update for review feedbacks + - no deepMerge + - only merge between plain objects + - fix rename + - always merge config by mergeConfig + - extract function mergeDeepProperties + - refactor mergeConfig with all keys, and add special logic for validateStatus + - add test for resetting headers + - add lots of tests and fix a bug + - should not inherit `data` + - use simple toString +- Fixing overwrite Blob/File type as Content-Type in browser. ([#1773](https://github.com/axios/axios/pull/1773)) +- Fixing an issue that type 'null' is not assignable to validateStatus ([#2773](https://github.com/axios/axios/pull/2773)) +- Fixing special char encoding ([#1671](https://github.com/axios/axios/pull/1671)) + - removing @ character from replacement list since it is a reserved character + - Updating buildURL test to not include the @ character + - Removing console logs +- Fixing password encoding with special characters in basic authentication ([#1492](https://github.com/axios/axios/pull/1492)) + - Fixing password encoding with special characters in basic authentication + - Adding test to check if password with non-Latin1 characters pass +- Fixing 'Network Error' in react native android ([#1487](https://github.com/axios/axios/pull/1487)) + There is a bug in react native Android platform when using get method. It will trigger a 'Network Error' when passing the requestData which is an empty string to request.send function. So if the requestData is an empty string we can set it to null as well to fix the bug. +- Fixing Cookie Helper with Asyc Components ([#1105](https://github.com/axios/axios/pull/1105)) ([#1107](https://github.com/axios/axios/pull/1107)) +- Fixing 'progressEvent' type ([#2851](https://github.com/axios/axios/pull/2851)) + - Fix 'progressEvent' type + - Update axios.ts +- Fixing getting local files (file://) failed ([#2470](https://github.com/axios/axios/pull/2470)) + - fix issue #2416, #2396 + - fix Eslint warn + - Modify judgment conditions + - add unit test + - update unit test + - update unit test +- Allow PURGE method in typings ([#2191](https://github.com/axios/axios/pull/2191)) +- Adding option to disable automatic decompression ([#2661](https://github.com/axios/axios/pull/2661)) + - Adding ability to disable auto decompression + - Updating decompress documentation in README + - Fixing test\unit\adapters\http.js lint errors + - Adding test for disabling auto decompression + - Removing changes that fixed lint errors in tests + - Removing formatting change to unit test +- Add independent `maxBodyLength` option ([#2781](https://github.com/axios/axios/pull/2781)) + - Add independent option to set the maximum size of the request body + - Remove maxBodyLength check + - Update README + - Assert for error code and message +- Adding responseEncoding to mergeConfig ([#1745](https://github.com/axios/axios/pull/1745)) +- Compatible with follow-redirect aborts the request ([#2689](https://github.com/axios/axios/pull/2689)) + - Compatible with follow-redirect aborts the request + - Use the error code +- Fix merging of params ([#2656](https://github.com/axios/axios/pull/2656)) + - Name function to avoid ESLint func-names warning + - Switch params config to merge list and update tests + - Restore testing of both false and null + - Restore test cases for keys without defaults + - Include test for non-object values that aren't false-y. +- Revert `finally` as `then` ([#2683](https://github.com/axios/axios/pull/2683)) + +Internal and Tests: + +- Fix stale bot config ([#3049](https://github.com/axios/axios/pull/3049)) + - fix stale bot config + - fix multiple lines +- Add days and change name to work ([#3035](https://github.com/axios/axios/pull/3035)) +- Update close-issues.yml ([#3031](https://github.com/axios/axios/pull/3031)) + - Update close-issues.yml + Update close message to read better 😄 + - Fix use of quotations + Use single quotes as per other .yml files + - Remove user name form message +- Add GitHub actions to close stale issues/prs ([#3029](https://github.com/axios/axios/pull/3029)) + - prepare stale actions + - update messages + - Add exempt labels and lighten up comments +- Add GitHub actions to close invalid issues ([#3022](https://github.com/axios/axios/pull/3022)) + - add close actions + - fix with checkout + - update issue templates + - add reminder + - update close message +- Add test with Node.js 12 ([#2860](https://github.com/axios/axios/pull/2860)) + - test with Node.js 12 + - test with latest +- Adding console log on sandbox server startup ([#2210](https://github.com/axios/axios/pull/2210)) + - Adding console log on sandbox server startup + - Update server.js + Add server error handling + - Update server.js + Better error message, remove retry. +- Adding tests for method `options` type definitions ([#1996](https://github.com/axios/axios/pull/1996)) + Update tests. +- Add test for redirecting with too large response ([#2695](https://github.com/axios/axios/pull/2695)) +- Fixing unit test failure in Windows OS ([#2601](https://github.com/axios/axios/pull/2601)) +- Fixing issue for HEAD method and gzipped response ([#2666](https://github.com/axios/axios/pull/2666)) +- Fix tests in browsers ([#2748](https://github.com/axios/axios/pull/2748)) +- chore: add `jsdelivr` and `unpkg` support ([#2443](https://github.com/axios/axios/pull/2443)) + +Documentation: + +- Adding support for URLSearchParams in node ([#1900](https://github.com/axios/axios/pull/1900)) + - Adding support for URLSearchParams in node + - Remove un-needed code + - Update utils.js + - Make changes as suggested +- Adding table of content (preview) ([#3050](https://github.com/axios/axios/pull/3050)) + - add toc (preview) + - remove toc in toc + Signed-off-by: Moni + - fix sublinks + - fix indentation + - remove redundant table links + - update caps and indent + - remove axios +- Replace 'blacklist' with 'blocklist' ([#3006](https://github.com/axios/axios/pull/3006)) +- docs(): Detailed config options environment. ([#2088](https://github.com/axios/axios/pull/2088)) + - docs(): Detailed config options environment. + - Update README.md +- Include axios-data-unpacker in ECOSYSTEM.md ([#2080](https://github.com/axios/axios/pull/2080)) +- Allow opening examples in Gitpod ([#1958](https://github.com/axios/axios/pull/1958)) +- Remove axios.all() and axios.spread() from Readme.md ([#2727](https://github.com/axios/axios/pull/2727)) + - remove axios.all(), axios.spread() + - replace example + - axios.all() -> Promise.all() + - axios.spread(function (acct, perms)) -> function (acct, perms) + - add deprecated mark +- Update README.md ([#2887](https://github.com/axios/axios/pull/2887)) + Small change to the data attribute doc of the config. A request body can also be set for DELETE methods but this wasn't mentioned in the documentation (it only mentioned POST, PUT and PATCH). Took my some 10-20 minutes until I realized that I don't need to manipulate the request body with transformRequest in the case of DELETE. +- Include swagger-taxos-codegen in ECOSYSTEM.md ([#2162](https://github.com/axios/axios/pull/2162)) +- Add CDNJS version badge in README.md ([#878](https://github.com/axios/axios/pull/878)) + This badge will show the version on CDNJS! +- Documentation update to clear up ambiguity in code examples ([#2928](https://github.com/axios/axios/pull/2928)) + - Made an adjustment to the documentation to clear up any ambiguity around the use of "fs". This should help clear up that the code examples with "fs" cannot be used on the client side. +- Update README.md about validateStatus ([#2912](https://github.com/axios/axios/pull/2912)) + Rewrote the comment from "Reject only if the status code is greater than or equal to 500" to "Resolve only if the status code is less than 500" +- Updating documentation for usage form-data ([#2805](https://github.com/axios/axios/pull/2805)) + Closes #2049 +- Fixing CHANGELOG.md issue link ([#2784](https://github.com/axios/axios/pull/2784)) +- Include axios-hooks in ECOSYSTEM.md ([#2003](https://github.com/axios/axios/pull/2003)) +- Added Response header access instructions ([#1901](https://github.com/axios/axios/pull/1901)) + - Added Response header access instructions + - Added note about using bracket notation +- Add `onUploadProgress` and `onDownloadProgress` are browser only ([#2763](https://github.com/axios/axios/pull/2763)) + Saw in #928 and #1966 that `onUploadProgress` and `onDownloadProgress` only work in the browser and was missing that from the README. +- Update ' sign to ` in proxy spec ([#2778](https://github.com/axios/axios/pull/2778)) +- Adding jsDelivr link in README ([#1110](https://github.com/axios/axios/pull/1110)) + - Adding jsDelivr link + - Add SRI + - Remove SRI + +Huge thanks to everyone who contributed to this release via code (authors listed +below) or via reviews and triaging on GitHub: + +- Alan Wang +- Alexandru Ungureanu +- Anubhav Srivastava +- Benny Neugebauer +- Cr <631807682@qq.com> +- David +- David Ko +- David Tanner +- Emily Morehouse +- Felipe Martins +- Fonger <5862369+Fonger@users.noreply.github.com> +- Frostack +- George Cheng +- grumblerchester +- Gustavo López +- hexaez <45806662+hexaez@users.noreply.github.com> +- huangzuizui +- Ian Wijma +- Jay +- jeffjing +- jennynju <46782518+jennynju@users.noreply.github.com> +- Jimmy Liao <52391190+jimmy-liao-gogoro@users.noreply.github.com> +- Jonathan Sharpe +- JounQin +- Justin Beckwith +- Kamil Posiadała <3dcreator.pl@gmail.com> +- Lukas Drgon +- marcinx +- Martti Laine +- Michał Zarach +- Moni +- Motonori Iwata <121048+iwata@users.noreply.github.com> +- Nikita Galkin +- Petr Mares +- Philippe Recto +- Remco Haszing +- rockcs1992 +- Ryan Bown +- Samina Fu +- Simone Busoli +- Spencer von der Ohe +- Sven Efftinge +- Taegyeoung Oh +- Taemin Shin +- Thibault Ehrhart <1208424+ehrhart@users.noreply.github.com> +- Xianming Zhong +- Yasu Flores +- Zac Delventhal + +### 0.19.2 (Jan 20, 2020) + +- Remove unnecessary XSS check ([#2679](https://github.com/axios/axios/pull/2679)) (see ([#2646](https://github.com/axios/axios/issues/2646)) for discussion) + +### 0.19.1 (Jan 7, 2020) + +Fixes and Functionality: + +- Fixing invalid agent issue ([#1904](https://github.com/axios/axios/pull/1904)) +- Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582)) +- Delete useless default to hash ([#2458](https://github.com/axios/axios/pull/2458)) +- Fix HTTP/HTTPs agents passing to follow-redirect ([#1904](https://github.com/axios/axios/pull/1904)) +- Fix ignore set withCredentials false ([#2582](https://github.com/axios/axios/pull/2582)) +- Fix CI build failure ([#2570](https://github.com/axios/axios/pull/2570)) +- Remove dependency on is-buffer from package.json ([#1816](https://github.com/axios/axios/pull/1816)) +- Adding options typings ([#2341](https://github.com/axios/axios/pull/2341)) +- Adding Typescript HTTP method definition for LINK and UNLINK. ([#2444](https://github.com/axios/axios/pull/2444)) +- Update dist with newest changes, fixes Custom Attributes issue +- Change syntax to see if build passes ([#2488](https://github.com/axios/axios/pull/2488)) +- Update Webpack + deps, remove now unnecessary polyfills ([#2410](https://github.com/axios/axios/pull/2410)) +- Fix to prevent XSS, throw an error when the URL contains a JS script ([#2464](https://github.com/axios/axios/pull/2464)) +- Add custom timeout error copy in config ([#2275](https://github.com/axios/axios/pull/2275)) +- Add error toJSON example ([#2466](https://github.com/axios/axios/pull/2466)) +- Fixing Vulnerability A Fortify Scan finds a critical Cross-Site Scrip… ([#2451](https://github.com/axios/axios/pull/2451)) +- Fixing subdomain handling on no_proxy ([#2442](https://github.com/axios/axios/pull/2442)) +- Make redirection from HTTP to HTTPS work ([#2426](https://github.com/axios/axios/pull/2426)) and ([#2547](https://github.com/axios/axios/pull/2547)) +- Add toJSON property to AxiosError type ([#2427](https://github.com/axios/axios/pull/2427)) +- Fixing socket hang up error on node side for slow response. ([#1752](https://github.com/axios/axios/pull/1752)) +- Alternative syntax to send data into the body ([#2317](https://github.com/axios/axios/pull/2317)) +- Fixing custom config options ([#2207](https://github.com/axios/axios/pull/2207)) +- Fixing set `config.method` after mergeConfig for Axios.prototype.request ([#2383](https://github.com/axios/axios/pull/2383)) +- Axios create url bug ([#2290](https://github.com/axios/axios/pull/2290)) +- Do not modify config.url when using a relative baseURL (resolves [#1628](https://github.com/axios/axios/issues/1098)) ([#2391](https://github.com/axios/axios/pull/2391)) +- Add typescript HTTP method definition for LINK and UNLINK ([#2444](https://github.com/axios/axios/pull/2444)) + +Internal: + +- Revert "Update Webpack + deps, remove now unnecessary polyfills" ([#2479](https://github.com/axios/axios/pull/2479)) +- Order of if/else blocks is causing unit tests mocking XHR. ([#2201](https://github.com/axios/axios/pull/2201)) +- Add license badge ([#2446](https://github.com/axios/axios/pull/2446)) +- Fix travis CI build [#2386](https://github.com/axios/axios/pull/2386) +- Fix cancellation error on build master. #2290 #2207 ([#2407](https://github.com/axios/axios/pull/2407)) + +Documentation: + +- Fixing typo in CHANGELOG.md: s/Functionallity/Functionality ([#2639](https://github.com/axios/axios/pull/2639)) +- Fix badge, use master branch ([#2538](https://github.com/axios/axios/pull/2538)) +- Fix typo in changelog [#2193](https://github.com/axios/axios/pull/2193) +- Document fix ([#2514](https://github.com/axios/axios/pull/2514)) +- Update docs with no_proxy change, issue #2484 ([#2513](https://github.com/axios/axios/pull/2513)) +- Fixing missing words in docs template ([#2259](https://github.com/axios/axios/pull/2259)) +- 🐛Fix request finally documentation in README ([#2189](https://github.com/axios/axios/pull/2189)) +- updating spelling and adding link to docs ([#2212](https://github.com/axios/axios/pull/2212)) +- docs: minor tweak ([#2404](https://github.com/axios/axios/pull/2404)) +- Update response interceptor docs ([#2399](https://github.com/axios/axios/pull/2399)) +- Update README.md ([#2504](https://github.com/axios/axios/pull/2504)) +- Fix word 'sintaxe' to 'syntax' in README.md ([#2432](https://github.com/axios/axios/pull/2432)) +- updating README: notes on CommonJS autocomplete ([#2256](https://github.com/axios/axios/pull/2256)) +- Fix grammar in README.md ([#2271](https://github.com/axios/axios/pull/2271)) +- Doc fixes, minor examples cleanup ([#2198](https://github.com/axios/axios/pull/2198)) + +### 0.19.0 (May 30, 2019) + +Fixes and Functionality: + +- Added support for no_proxy env variable ([#1693](https://github.com/axios/axios/pull/1693/files)) - Chance Dickson +- Unzip response body only for statuses != 204 ([#1129](https://github.com/axios/axios/pull/1129)) - drawski +- Destroy stream on exceeding maxContentLength (fixes [#1098](https://github.com/axios/axios/issues/1098)) ([#1485](https://github.com/axios/axios/pull/1485)) - Gadzhi Gadzhiev +- Makes Axios error generic to use AxiosResponse ([#1738](https://github.com/axios/axios/pull/1738)) - Suman Lama +- Fixing Mocha tests by locking follow-redirects version to 1.5.10 ([#1993](https://github.com/axios/axios/pull/1993)) - grumblerchester +- Allow uppercase methods in typings. ([#1781](https://github.com/axios/axios/pull/1781)) - Ken Powers +- Fixing building url with hash mark ([#1771](https://github.com/axios/axios/pull/1771)) - Anatoly Ryabov +- This commit fix building url with hash map (fragment identifier) when parameters are present: they must not be added after `#`, because client cut everything after `#` +- Preserve HTTP method when following redirect ([#1758](https://github.com/axios/axios/pull/1758)) - Rikki Gibson +- Add `getUri` signature to TypeScript definition. ([#1736](https://github.com/axios/axios/pull/1736)) - Alexander Trauzzi +- Adding isAxiosError flag to errors thrown by axios ([#1419](https://github.com/axios/axios/pull/1419)) - Ayush Gupta + +Internal: + +- Fixing .eslintrc without extension ([#1789](https://github.com/axios/axios/pull/1789)) - Manoel +- Fix failing SauceLabs tests by updating configuration - Emily Morehouse +- Add issue templates - Emily Morehouse + +Documentation: + +- Consistent coding style in README ([#1787](https://github.com/axios/axios/pull/1787)) - Ali Servet Donmez +- Add information about auth parameter to README ([#2166](https://github.com/axios/axios/pull/2166)) - xlaguna +- Add DELETE to list of methods that allow data as a config option ([#2169](https://github.com/axios/axios/pull/2169)) - Daniela Borges Matos de Carvalho +- Update ECOSYSTEM.md - Add Axios Endpoints ([#2176](https://github.com/axios/axios/pull/2176)) - Renan +- Add r2curl in ECOSYSTEM ([#2141](https://github.com/axios/axios/pull/2141)) - 유용우 / CX +- Update README.md - Add instructions for installing with yarn ([#2036](https://github.com/axios/axios/pull/2036)) - Victor Hermes +- Fixing spacing for README.md ([#2066](https://github.com/axios/axios/pull/2066)) - Josh McCarty +- Update README.md. - Change `.then` to `.finally` in example code ([#2090](https://github.com/axios/axios/pull/2090)) - Omar Cai +- Clarify what values responseType can have in Node ([#2121](https://github.com/axios/axios/pull/2121)) - Tyler Breisacher +- docs(ECOSYSTEM): add axios-api-versioning ([#2020](https://github.com/axios/axios/pull/2020)) - Weffe +- It seems that `responseType: 'blob'` doesn't actually work in Node (when I tried using it, response.data was a string, not a Blob, since Node doesn't have Blobs), so this clarifies that this option should only be used in the browser +- Update README.md. - Add Querystring library note ([#1896](https://github.com/axios/axios/pull/1896)) - Dmitriy Eroshenko +- Add react-hooks-axios to Libraries section of ECOSYSTEM.md ([#1925](https://github.com/axios/axios/pull/1925)) - Cody Chan +- Clarify in README that default timeout is 0 (no timeout) ([#1750](https://github.com/axios/axios/pull/1750)) - Ben Standefer + +### 0.19.0-beta.1 (Aug 9, 2018) + +**NOTE:** This is a beta version of this release. There may be functionality that is broken in +certain browsers, though we suspect that builds are hanging and not erroring. See +https://saucelabs.com/u/axios for the most up-to-date information. + +New Functionality: + +- Add getUri method ([#1712](https://github.com/axios/axios/issues/1712)) +- Add support for no_proxy env variable ([#1693](https://github.com/axios/axios/issues/1693)) +- Add toJSON to decorated Axios errors to facilitate serialization ([#1625](https://github.com/axios/axios/issues/1625)) +- Add second then on axios call ([#1623](https://github.com/axios/axios/issues/1623)) +- Typings: allow custom return types +- Add option to specify character set in responses (with http adapter) + +Fixes: + +- Fix Keep defaults local to instance ([#385](https://github.com/axios/axios/issues/385)) +- Correctly catch exception in http test ([#1475](https://github.com/axios/axios/issues/1475)) +- Fix accept header normalization ([#1698](https://github.com/axios/axios/issues/1698)) +- Fix http adapter to allow HTTPS connections via HTTP ([#959](https://github.com/axios/axios/issues/959)) +- Fix Removes usage of deprecated Buffer constructor. ([#1555](https://github.com/axios/axios/issues/1555), [#1622](https://github.com/axios/axios/issues/1622)) +- Fix defaults to use httpAdapter if available ([#1285](https://github.com/axios/axios/issues/1285)) + - Fixing defaults to use httpAdapter if available + - Use a safer, cross-platform method to detect the Node environment +- Fix Reject promise if request is cancelled by the browser ([#537](https://github.com/axios/axios/issues/537)) +- [Typescript] Fix missing type parameters on delete/head methods +- [NS]: Send `false` flag isStandardBrowserEnv for Nativescript +- Fix missing type parameters on delete/head +- Fix Default method for an instance always overwritten by get +- Fix type error when socketPath option in AxiosRequestConfig +- Capture errors on request data streams +- Decorate resolve and reject to clear timeout in all cases + +Huge thanks to everyone who contributed to this release via code (authors listed +below) or via reviews and triaging on GitHub: + +- Andrew Scott +- Anthony Gauthier +- arpit +- ascott18 +- Benedikt Rötsch +- Chance Dickson +- Dave Stewart +- Deric Cain +- Guillaume Briday +- Jacob Wejendorp +- Jim Lynch +- johntron +- Justin Beckwith +- Justin Beckwith +- Khaled Garbaya +- Lim Jing Rong +- Mark van den Broek +- Martti Laine +- mattridley +- mattridley +- Nicolas Del Valle +- Nilegfx +- pbarbiero +- Rikki Gibson +- Sako Hartounian +- Shane Fitzpatrick +- Stephan Schneider +- Steven +- Tim Garthwaite +- Tim Johns +- Yutaro Miyazaki + +### 0.18.0 (Feb 19, 2018) + +- Adding support for UNIX Sockets when running with Node.js ([#1070](https://github.com/axios/axios/pull/1070)) +- Fixing typings ([#1177](https://github.com/axios/axios/pull/1177)): + - AxiosRequestConfig.proxy: allows type false + - AxiosProxyConfig: added auth field +- Adding function signature in AxiosInstance interface so AxiosInstance can be invoked ([#1192](https://github.com/axios/axios/pull/1192), [#1254](https://github.com/axios/axios/pull/1254)) +- Allowing maxContentLength to pass through to redirected calls as maxBodyLength in follow-redirects config ([#1287](https://github.com/axios/axios/pull/1287)) +- Fixing configuration when using an instance - method can now be set ([#1342](https://github.com/axios/axios/pull/1342)) + +### 0.17.1 (Nov 11, 2017) + +- Fixing issue with web workers ([#1160](https://github.com/axios/axios/pull/1160)) +- Allowing overriding transport ([#1080](https://github.com/axios/axios/pull/1080)) +- Updating TypeScript typings ([#1165](https://github.com/axios/axios/pull/1165), [#1125](https://github.com/axios/axios/pull/1125), [#1131](https://github.com/axios/axios/pull/1131)) + +### 0.17.0 (Oct 21, 2017) + +- **BREAKING** Fixing issue with `baseURL` and interceptors ([#950](https://github.com/axios/axios/pull/950)) +- **BREAKING** Improving handing of duplicate headers ([#874](https://github.com/axios/axios/pull/874)) +- Adding support for disabling proxies ([#691](https://github.com/axios/axios/pull/691)) +- Updating TypeScript typings with generic type parameters ([#1061](https://github.com/axios/axios/pull/1061)) + +### 0.16.2 (Jun 3, 2017) + +- Fixing issue with including `buffer` in bundle ([#887](https://github.com/axios/axios/pull/887)) +- Including underlying request in errors ([#830](https://github.com/axios/axios/pull/830)) +- Convert `method` to lowercase ([#930](https://github.com/axios/axios/pull/930)) + +### 0.16.1 (Apr 8, 2017) + +- Improving HTTP adapter to return last request in case of redirects ([#828](https://github.com/axios/axios/pull/828)) +- Updating `follow-redirects` dependency ([#829](https://github.com/axios/axios/pull/829)) +- Adding support for passing `Buffer` in node ([#773](https://github.com/axios/axios/pull/773)) + +### 0.16.0 (Mar 31, 2017) + +- **BREAKING** Removing `Promise` from axios typings in favor of built-in type declarations ([#480](https://github.com/axios/axios/issues/480)) +- Adding `options` shortcut method ([#461](https://github.com/axios/axios/pull/461)) +- Fixing issue with using `responseType: 'json'` in browsers incompatible with XHR Level 2 ([#654](https://github.com/axios/axios/pull/654)) +- Improving React Native detection ([#731](https://github.com/axios/axios/pull/731)) +- Fixing `combineURLs` to support empty `relativeURL` ([#581](https://github.com/axios/axios/pull/581)) +- Removing `PROTECTION_PREFIX` support ([#561](https://github.com/axios/axios/pull/561)) + +### 0.15.3 (Nov 27, 2016) + +- Fixing issue with custom instances and global defaults ([#443](https://github.com/axios/axios/issues/443)) +- Renaming `axios.d.ts` to `index.d.ts` ([#519](https://github.com/axios/axios/issues/519)) +- Adding `get`, `head`, and `delete` to `defaults.headers` ([#509](https://github.com/axios/axios/issues/509)) +- Fixing issue with `btoa` and IE ([#507](https://github.com/axios/axios/issues/507)) +- Adding support for proxy authentication ([#483](https://github.com/axios/axios/pull/483)) +- Improving HTTP adapter to use `http` protocol by default ([#493](https://github.com/axios/axios/pull/493)) +- Fixing proxy issues ([#491](https://github.com/axios/axios/pull/491)) + +### 0.15.2 (Oct 17, 2016) + +- Fixing issue with calling `cancel` after response has been received ([#482](https://github.com/axios/axios/issues/482)) + +### 0.15.1 (Oct 14, 2016) + +- Fixing issue with UMD ([#485](https://github.com/axios/axios/issues/485)) + +### 0.15.0 (Oct 10, 2016) + +- Adding cancellation support ([#452](https://github.com/axios/axios/pull/452)) +- Moving default adapter to global defaults ([#437](https://github.com/axios/axios/pull/437)) +- Fixing issue with `file` URI scheme ([#440](https://github.com/axios/axios/pull/440)) +- Fixing issue with `params` objects that have no prototype ([#445](https://github.com/axios/axios/pull/445)) + +### 0.14.0 (Aug 27, 2016) + +- **BREAKING** Updating TypeScript definitions ([#419](https://github.com/axios/axios/pull/419)) +- **BREAKING** Replacing `agent` option with `httpAgent` and `httpsAgent` ([#387](https://github.com/axios/axios/pull/387)) +- **BREAKING** Splitting `progress` event handlers into `onUploadProgress` and `onDownloadProgress` ([#423](https://github.com/axios/axios/pull/423)) +- Adding support for `http_proxy` and `https_proxy` environment variables ([#366](https://github.com/axios/axios/pull/366)) +- Fixing issue with `auth` config option and `Authorization` header ([#397](https://github.com/axios/axios/pull/397)) +- Don't set XSRF header if `xsrfCookieName` is `null` ([#406](https://github.com/axios/axios/pull/406)) + +### 0.13.1 (Jul 16, 2016) + +- Fixing issue with response data not being transformed on error ([#378](https://github.com/axios/axios/issues/378)) + +### 0.13.0 (Jul 13, 2016) + +- **BREAKING** Improved error handling ([#345](https://github.com/axios/axios/pull/345)) +- **BREAKING** Response transformer now invoked in dispatcher not adapter ([10eb238](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e)) +- **BREAKING** Request adapters now return a `Promise` ([157efd5](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a)) +- Fixing issue with `withCredentials` not being overwritten ([#343](https://github.com/axios/axios/issues/343)) +- Fixing regression with request transformer being called before request interceptor ([#352](https://github.com/axios/axios/issues/352)) +- Fixing custom instance defaults ([#341](https://github.com/axios/axios/issues/341)) +- Fixing instances created from `axios.create` to have same API as default axios ([#217](https://github.com/axios/axios/issues/217)) + +### 0.12.0 (May 31, 2016) + +- Adding support for `URLSearchParams` ([#317](https://github.com/axios/axios/pull/317)) +- Adding `maxRedirects` option ([#307](https://github.com/axios/axios/pull/307)) + +### 0.11.1 (May 17, 2016) + +- Fixing IE CORS support ([#313](https://github.com/axios/axios/pull/313)) +- Fixing detection of `FormData` ([#325](https://github.com/axios/axios/pull/325)) +- Adding `Axios` class to exports ([#321](https://github.com/axios/axios/pull/321)) + +### 0.11.0 (Apr 26, 2016) + +- Adding support for Stream with HTTP adapter ([#296](https://github.com/axios/axios/pull/296)) +- Adding support for custom HTTP status code error ranges ([#308](https://github.com/axios/axios/pull/308)) +- Fixing issue with ArrayBuffer ([#299](https://github.com/axios/axios/pull/299)) + +### 0.10.0 (Apr 20, 2016) + +- Fixing issue with some requests sending `undefined` instead of `null` ([#250](https://github.com/axios/axios/pull/250)) +- Fixing basic auth for HTTP adapter ([#252](https://github.com/axios/axios/pull/252)) +- Fixing request timeout for XHR adapter ([#227](https://github.com/axios/axios/pull/227)) +- Fixing IE8 support by using `onreadystatechange` instead of `onload` ([#249](https://github.com/axios/axios/pull/249)) +- Fixing IE9 cross domain requests ([#251](https://github.com/axios/axios/pull/251)) +- Adding `maxContentLength` option ([#275](https://github.com/axios/axios/pull/275)) +- Fixing XHR support for WebWorker environment ([#279](https://github.com/axios/axios/pull/279)) +- Adding request instance to response ([#200](https://github.com/axios/axios/pull/200)) + +### 0.9.1 (Jan 24, 2016) + +- Improving handling of request timeout in node ([#124](https://github.com/axios/axios/issues/124)) +- Fixing network errors not rejecting ([#205](https://github.com/axios/axios/pull/205)) +- Fixing issue with IE rejecting on HTTP 204 ([#201](https://github.com/axios/axios/issues/201)) +- Fixing host/port when following redirects ([#198](https://github.com/axios/axios/pull/198)) + +### 0.9.0 (Jan 18, 2016) + +- Adding support for custom adapters +- Fixing Content-Type header being removed when data is false ([#195](https://github.com/axios/axios/pull/195)) +- Improving XDomainRequest implementation ([#185](https://github.com/axios/axios/pull/185)) +- Improving config merging and order of precedence ([#183](https://github.com/axios/axios/pull/183)) +- Fixing XDomainRequest support for only <= IE9 ([#182](https://github.com/axios/axios/pull/182)) + +### 0.8.1 (Dec 14, 2015) + +- Adding support for passing XSRF token for cross domain requests when using `withCredentials` ([#168](https://github.com/axios/axios/pull/168)) +- Fixing error with format of basic auth header ([#178](https://github.com/axios/axios/pull/173)) +- Fixing error with JSON payloads throwing `InvalidStateError` in some cases ([#174](https://github.com/axios/axios/pull/174)) + +### 0.8.0 (Dec 11, 2015) + +- Adding support for creating instances of axios ([#123](https://github.com/axios/axios/pull/123)) +- Fixing http adapter to use `Buffer` instead of `String` in case of `responseType === 'arraybuffer'` ([#128](https://github.com/axios/axios/pull/128)) +- Adding support for using custom parameter serializer with `paramsSerializer` option ([#121](https://github.com/axios/axios/pull/121)) +- Fixing issue in IE8 caused by `forEach` on `arguments` ([#127](https://github.com/axios/axios/pull/127)) +- Adding support for following redirects in node ([#146](https://github.com/axios/axios/pull/146)) +- Adding support for transparent decompression if `content-encoding` is set ([#149](https://github.com/axios/axios/pull/149)) +- Adding support for transparent XDomainRequest to handle cross domain requests in IE9 ([#140](https://github.com/axios/axios/pull/140)) +- Adding support for HTTP basic auth via Authorization header ([#167](https://github.com/axios/axios/pull/167)) +- Adding support for baseURL option ([#160](https://github.com/axios/axios/pull/160)) + +### 0.7.0 (Sep 29, 2015) + +- Fixing issue with minified bundle in IE8 ([#87](https://github.com/axios/axios/pull/87)) +- Adding support for passing agent in node ([#102](https://github.com/axios/axios/pull/102)) +- Adding support for returning result from `axios.spread` for chaining ([#106](https://github.com/axios/axios/pull/106)) +- Fixing typescript definition ([#105](https://github.com/axios/axios/pull/105)) +- Fixing default timeout config for node ([#112](https://github.com/axios/axios/pull/112)) +- Adding support for use in web workers, and react-native ([#70](https://github.com/axios/axios/issue/70)), ([#98](https://github.com/axios/axios/pull/98)) +- Adding support for fetch like API `axios(url[, config])` ([#116](https://github.com/axios/axios/issues/116)) + +### 0.6.0 (Sep 21, 2015) + +- Removing deprecated success/error aliases +- Fixing issue with array params not being properly encoded ([#49](https://github.com/axios/axios/pull/49)) +- Fixing issue with User-Agent getting overridden ([#69](https://github.com/axios/axios/issues/69)) +- Adding support for timeout config ([#56](https://github.com/axios/axios/issues/56)) +- Removing es6-promise dependency +- Fixing issue preventing `length` to be used as a parameter ([#91](https://github.com/axios/axios/pull/91)) +- Fixing issue with IE8 ([#85](https://github.com/axios/axios/pull/85)) +- Converting build to UMD + +### 0.5.4 (Apr 08, 2015) + +- Fixing issue with FormData not being sent ([#53](https://github.com/axios/axios/issues/53)) + +### 0.5.3 (Apr 07, 2015) + +- Using JSON.parse unconditionally when transforming response string ([#55](https://github.com/axios/axios/issues/55)) + +### 0.5.2 (Mar 13, 2015) + +- Adding support for `statusText` in response ([#46](https://github.com/axios/axios/issues/46)) + +### 0.5.1 (Mar 10, 2015) + +- Fixing issue using strict mode ([#45](https://github.com/axios/axios/issues/45)) +- Fixing issue with standalone build ([#47](https://github.com/axios/axios/issues/47)) + +### 0.5.0 (Jan 23, 2015) + +- Adding support for intercepetors ([#14](https://github.com/axios/axios/issues/14)) +- Updating es6-promise dependency + +### 0.4.2 (Dec 10, 2014) + +- Fixing issue with `Content-Type` when using `FormData` ([#22](https://github.com/axios/axios/issues/22)) +- Adding support for TypeScript ([#25](https://github.com/axios/axios/issues/25)) +- Fixing issue with standalone build ([#29](https://github.com/axios/axios/issues/29)) +- Fixing issue with verbs needing to be capitalized in some browsers ([#30](https://github.com/axios/axios/issues/30)) + +### 0.4.1 (Oct 15, 2014) + +- Adding error handling to request for node.js ([#18](https://github.com/axios/axios/issues/18)) + +### 0.4.0 (Oct 03, 2014) + +- Adding support for `ArrayBuffer` and `ArrayBufferView` ([#10](https://github.com/axios/axios/issues/10)) +- Adding support for utf-8 for node.js ([#13](https://github.com/axios/axios/issues/13)) +- Adding support for SSL for node.js ([#12](https://github.com/axios/axios/issues/12)) +- Fixing incorrect `Content-Type` header ([#9](https://github.com/axios/axios/issues/9)) +- Adding standalone build without bundled es6-promise ([#11](https://github.com/axios/axios/issues/11)) +- Deprecating `success`/`error` in favor of `then`/`catch` + +### 0.3.1 (Sep 16, 2014) + +- Fixing missing post body when using node.js ([#3](https://github.com/axios/axios/issues/3)) + +### 0.3.0 (Sep 16, 2014) + +- Fixing `success` and `error` to properly receive response data as individual arguments ([#8](https://github.com/axios/axios/issues/8)) +- Updating `then` and `catch` to receive response data as a single object ([#6](https://github.com/axios/axios/issues/6)) +- Fixing issue with `all` not working ([#7](https://github.com/axios/axios/issues/7)) + +### 0.2.2 (Sep 14, 2014) + +- Fixing bundling with browserify ([#4](https://github.com/axios/axios/issues/4)) + +### 0.2.1 (Sep 12, 2014) + +- Fixing build problem causing ridiculous file sizes + +### 0.2.0 (Sep 12, 2014) + +- Adding support for `all` and `spread` +- Adding support for node.js ([#1](https://github.com/axios/axios/issues/1)) + +### 0.1.0 (Aug 29, 2014) + +- Initial release diff --git a/justdanceonline-main/node_modules/axios/LICENSE b/justdanceonline-main/node_modules/axios/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..d36c80ef27bf3e7bcb57ce60167ec4b5646a223a --- /dev/null +++ b/justdanceonline-main/node_modules/axios/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014-present Matt Zabriskie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/axios/README.md b/justdanceonline-main/node_modules/axios/README.md new file mode 100644 index 0000000000000000000000000000000000000000..44264f6c13a9d7a208e731145dff9a386fe34212 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/README.md @@ -0,0 +1,800 @@ +# axios + +[![npm version](https://img.shields.io/npm/v/axios.svg?style=flat-square)](https://www.npmjs.org/package/axios) +[![CDNJS](https://img.shields.io/cdnjs/v/axios.svg?style=flat-square)](https://cdnjs.com/libraries/axios) +[![build status](https://img.shields.io/travis/axios/axios/master.svg?style=flat-square)](https://travis-ci.org/axios/axios) +[![code coverage](https://img.shields.io/coveralls/mzabriskie/axios.svg?style=flat-square)](https://coveralls.io/r/mzabriskie/axios) +[![install size](https://packagephobia.now.sh/badge?p=axios)](https://packagephobia.now.sh/result?p=axios) +[![npm downloads](https://img.shields.io/npm/dm/axios.svg?style=flat-square)](http://npm-stat.com/charts.html?package=axios) +[![gitter chat](https://img.shields.io/gitter/room/mzabriskie/axios.svg?style=flat-square)](https://gitter.im/mzabriskie/axios) +[![code helpers](https://www.codetriage.com/axios/axios/badges/users.svg)](https://www.codetriage.com/axios/axios) + +Promise based HTTP client for the browser and node.js +## Table of Contents + + - [Features](#features) + - [Browser Support](#browser-support) + - [Installing](#installing) + - [Example](#example) + - [Axios API](#axios-api) + - [Request method aliases](#request-method-aliases) + - [Concurrency (Deprecated)](#concurrency-deprecated) + - [Creating an instance](#creating-an-instance) + - [Instance methods](#instance-methods) + - [Request Config](#request-config) + - [Response Schema](#response-schema) + - [Config Defaults](#config-defaults) + - [Global axios defaults](#global-axios-defaults) + - [Custom instance defaults](#custom-instance-defaults) + - [Config order of precedence](#config-order-of-precedence) + - [Interceptors](#interceptors) + - [Handling Errors](#handling-errors) + - [Cancellation](#cancellation) + - [Using application/x-www-form-urlencoded format](#using-applicationx-www-form-urlencoded-format) + - [Browser](#browser) + - [Node.js](#nodejs) + - [Query string](#query-string) + - [Form data](#form-data) + - [Semver](#semver) + - [Promises](#promises) + - [TypeScript](#typescript) + - [Resources](#resources) + - [Credits](#credits) + - [License](#license) + +## Features + +- Make [XMLHttpRequests](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) from the browser +- Make [http](http://nodejs.org/api/http.html) requests from node.js +- Supports the [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) API +- Intercept request and response +- Transform request and response data +- Cancel requests +- Automatic transforms for JSON data +- Client side support for protecting against [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) + +## Browser Support + +![Chrome](https://raw.github.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.github.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![Safari](https://raw.github.com/alrra/browser-logos/master/src/safari/safari_48x48.png) | ![Opera](https://raw.github.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Edge](https://raw.github.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![IE](https://raw.github.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png) | +--- | --- | --- | --- | --- | --- | +Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | 11 ✔ | + +[![Browser Matrix](https://saucelabs.com/open_sauce/build_matrix/axios.svg)](https://saucelabs.com/u/axios) + +## Installing + +Using npm: + +```bash +$ npm install axios +``` + +Using bower: + +```bash +$ bower install axios +``` + +Using yarn: + +```bash +$ yarn add axios +``` + +Using jsDelivr CDN: + +```html + +``` + +Using unpkg CDN: + +```html + +``` + +## Example + +### note: CommonJS usage +In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with `require()` use the following approach: + +```js +const axios = require('axios').default; + +// axios. will now provide autocomplete and parameter typings +``` + +Performing a `GET` request + +```js +const axios = require('axios'); + +// Make a request for a user with a given ID +axios.get('/user?ID=12345') + .then(function (response) { + // handle success + console.log(response); + }) + .catch(function (error) { + // handle error + console.log(error); + }) + .then(function () { + // always executed + }); + +// Optionally the request above could also be done as +axios.get('/user', { + params: { + ID: 12345 + } + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }) + .then(function () { + // always executed + }); + +// Want to use async/await? Add the `async` keyword to your outer function/method. +async function getUser() { + try { + const response = await axios.get('/user?ID=12345'); + console.log(response); + } catch (error) { + console.error(error); + } +} +``` + +> **NOTE:** `async/await` is part of ECMAScript 2017 and is not supported in Internet +> Explorer and older browsers, so use with caution. + +Performing a `POST` request + +```js +axios.post('/user', { + firstName: 'Fred', + lastName: 'Flintstone' + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }); +``` + +Performing multiple concurrent requests + +```js +function getUserAccount() { + return axios.get('/user/12345'); +} + +function getUserPermissions() { + return axios.get('/user/12345/permissions'); +} + +Promise.all([getUserAccount(), getUserPermissions()]) + .then(function (results) { + const acct = results[0]; + const perm = results[1]; + }); +``` + +## axios API + +Requests can be made by passing the relevant config to `axios`. + +##### axios(config) + +```js +// Send a POST request +axios({ + method: 'post', + url: '/user/12345', + data: { + firstName: 'Fred', + lastName: 'Flintstone' + } +}); +``` + +```js +// GET request for remote image in node.js +axios({ + method: 'get', + url: 'http://bit.ly/2mTM3nY', + responseType: 'stream' +}) + .then(function (response) { + response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')) + }); +``` + +##### axios(url[, config]) + +```js +// Send a GET request (default method) +axios('/user/12345'); +``` + +### Request method aliases + +For convenience aliases have been provided for all supported request methods. + +##### axios.request(config) +##### axios.get(url[, config]) +##### axios.delete(url[, config]) +##### axios.head(url[, config]) +##### axios.options(url[, config]) +##### axios.post(url[, data[, config]]) +##### axios.put(url[, data[, config]]) +##### axios.patch(url[, data[, config]]) + +###### NOTE +When using the alias methods `url`, `method`, and `data` properties don't need to be specified in config. + +### Concurrency (Deprecated) +Please use `Promise.all` to replace the below functions. + +Helper functions for dealing with concurrent requests. + +axios.all(iterable) +axios.spread(callback) + +### Creating an instance + +You can create a new instance of axios with a custom config. + +##### axios.create([config]) + +```js +const instance = axios.create({ + baseURL: 'https://some-domain.com/api/', + timeout: 1000, + headers: {'X-Custom-Header': 'foobar'} +}); +``` + +### Instance methods + +The available instance methods are listed below. The specified config will be merged with the instance config. + +##### axios#request(config) +##### axios#get(url[, config]) +##### axios#delete(url[, config]) +##### axios#head(url[, config]) +##### axios#options(url[, config]) +##### axios#post(url[, data[, config]]) +##### axios#put(url[, data[, config]]) +##### axios#patch(url[, data[, config]]) +##### axios#getUri([config]) + +## Request Config + +These are the available config options for making requests. Only the `url` is required. Requests will default to `GET` if `method` is not specified. + +```js +{ + // `url` is the server URL that will be used for the request + url: '/user', + + // `method` is the request method to be used when making the request + method: 'get', // default + + // `baseURL` will be prepended to `url` unless `url` is absolute. + // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs + // to methods of that instance. + baseURL: 'https://some-domain.com/api/', + + // `transformRequest` allows changes to the request data before it is sent to the server + // This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE' + // The last function in the array must return a string or an instance of Buffer, ArrayBuffer, + // FormData or Stream + // You may modify the headers object. + transformRequest: [function (data, headers) { + // Do whatever you want to transform the data + + return data; + }], + + // `transformResponse` allows changes to the response data to be made before + // it is passed to then/catch + transformResponse: [function (data) { + // Do whatever you want to transform the data + + return data; + }], + + // `headers` are custom headers to be sent + headers: {'X-Requested-With': 'XMLHttpRequest'}, + + // `params` are the URL parameters to be sent with the request + // Must be a plain object or a URLSearchParams object + params: { + ID: 12345 + }, + + // `paramsSerializer` is an optional function in charge of serializing `params` + // (e.g. https://www.npmjs.com/package/qs, http://api.jquery.com/jquery.param/) + paramsSerializer: function (params) { + return Qs.stringify(params, {arrayFormat: 'brackets'}) + }, + + // `data` is the data to be sent as the request body + // Only applicable for request methods 'PUT', 'POST', 'DELETE , and 'PATCH' + // When no `transformRequest` is set, must be of one of the following types: + // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams + // - Browser only: FormData, File, Blob + // - Node only: Stream, Buffer + data: { + firstName: 'Fred' + }, + + // syntax alternative to send data into the body + // method post + // only the value is sent, not the key + data: 'Country=Brasil&City=Belo Horizonte', + + // `timeout` specifies the number of milliseconds before the request times out. + // If the request takes longer than `timeout`, the request will be aborted. + timeout: 1000, // default is `0` (no timeout) + + // `withCredentials` indicates whether or not cross-site Access-Control requests + // should be made using credentials + withCredentials: false, // default + + // `adapter` allows custom handling of requests which makes testing easier. + // Return a promise and supply a valid response (see lib/adapters/README.md). + adapter: function (config) { + /* ... */ + }, + + // `auth` indicates that HTTP Basic auth should be used, and supplies credentials. + // This will set an `Authorization` header, overwriting any existing + // `Authorization` custom headers you have set using `headers`. + // Please note that only HTTP Basic auth is configurable through this parameter. + // For Bearer tokens and such, use `Authorization` custom headers instead. + auth: { + username: 'janedoe', + password: 's00pers3cret' + }, + + // `responseType` indicates the type of data that the server will respond with + // options are: 'arraybuffer', 'document', 'json', 'text', 'stream' + // browser only: 'blob' + responseType: 'json', // default + + // `responseEncoding` indicates encoding to use for decoding responses (Node.js only) + // Note: Ignored for `responseType` of 'stream' or client-side requests + responseEncoding: 'utf8', // default + + // `xsrfCookieName` is the name of the cookie to use as a value for xsrf token + xsrfCookieName: 'XSRF-TOKEN', // default + + // `xsrfHeaderName` is the name of the http header that carries the xsrf token value + xsrfHeaderName: 'X-XSRF-TOKEN', // default + + // `onUploadProgress` allows handling of progress events for uploads + // browser only + onUploadProgress: function (progressEvent) { + // Do whatever you want with the native progress event + }, + + // `onDownloadProgress` allows handling of progress events for downloads + // browser only + onDownloadProgress: function (progressEvent) { + // Do whatever you want with the native progress event + }, + + // `maxContentLength` defines the max size of the http response content in bytes allowed in node.js + maxContentLength: 2000, + + // `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed + maxBodyLength: 2000, + + // `validateStatus` defines whether to resolve or reject the promise for a given + // HTTP response status code. If `validateStatus` returns `true` (or is set to `null` + // or `undefined`), the promise will be resolved; otherwise, the promise will be + // rejected. + validateStatus: function (status) { + return status >= 200 && status < 300; // default + }, + + // `maxRedirects` defines the maximum number of redirects to follow in node.js. + // If set to 0, no redirects will be followed. + maxRedirects: 5, // default + + // `socketPath` defines a UNIX Socket to be used in node.js. + // e.g. '/var/run/docker.sock' to send requests to the docker daemon. + // Only either `socketPath` or `proxy` can be specified. + // If both are specified, `socketPath` is used. + socketPath: null, // default + + // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http + // and https requests, respectively, in node.js. This allows options to be added like + // `keepAlive` that are not enabled by default. + httpAgent: new http.Agent({ keepAlive: true }), + httpsAgent: new https.Agent({ keepAlive: true }), + + // `proxy` defines the hostname, port, and protocol of the proxy server. + // You can also define your proxy using the conventional `http_proxy` and + // `https_proxy` environment variables. If you are using environment variables + // for your proxy configuration, you can also define a `no_proxy` environment + // variable as a comma-separated list of domains that should not be proxied. + // Use `false` to disable proxies, ignoring environment variables. + // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and + // supplies credentials. + // This will set an `Proxy-Authorization` header, overwriting any existing + // `Proxy-Authorization` custom headers you have set using `headers`. + // If the proxy server uses HTTPS, then you must set the protocol to `https`. + proxy: { + protocol: 'https', + host: '127.0.0.1', + port: 9000, + auth: { + username: 'mikeymike', + password: 'rapunz3l' + } + }, + + // `cancelToken` specifies a cancel token that can be used to cancel the request + // (see Cancellation section below for details) + cancelToken: new CancelToken(function (cancel) { + }), + + // `decompress` indicates whether or not the response body should be decompressed + // automatically. If set to `true` will also remove the 'content-encoding' header + // from the responses objects of all decompressed responses + // - Node only (XHR cannot turn off decompression) + decompress: true // default + +} +``` + +## Response Schema + +The response for a request contains the following information. + +```js +{ + // `data` is the response that was provided by the server + data: {}, + + // `status` is the HTTP status code from the server response + status: 200, + + // `statusText` is the HTTP status message from the server response + statusText: 'OK', + + // `headers` the HTTP headers that the server responded with + // All header names are lower cased and can be accessed using the bracket notation. + // Example: `response.headers['content-type']` + headers: {}, + + // `config` is the config that was provided to `axios` for the request + config: {}, + + // `request` is the request that generated this response + // It is the last ClientRequest instance in node.js (in redirects) + // and an XMLHttpRequest instance in the browser + request: {} +} +``` + +When using `then`, you will receive the response as follows: + +```js +axios.get('/user/12345') + .then(function (response) { + console.log(response.data); + console.log(response.status); + console.log(response.statusText); + console.log(response.headers); + console.log(response.config); + }); +``` + +When using `catch`, or passing a [rejection callback](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) as second parameter of `then`, the response will be available through the `error` object as explained in the [Handling Errors](#handling-errors) section. + +## Config Defaults + +You can specify config defaults that will be applied to every request. + +### Global axios defaults + +```js +axios.defaults.baseURL = 'https://api.example.com'; +axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; +axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; +``` + +### Custom instance defaults + +```js +// Set config defaults when creating the instance +const instance = axios.create({ + baseURL: 'https://api.example.com' +}); + +// Alter defaults after instance has been created +instance.defaults.headers.common['Authorization'] = AUTH_TOKEN; +``` + +### Config order of precedence + +Config will be merged with an order of precedence. The order is library defaults found in [lib/defaults.js](https://github.com/axios/axios/blob/master/lib/defaults.js#L28), then `defaults` property of the instance, and finally `config` argument for the request. The latter will take precedence over the former. Here's an example. + +```js +// Create an instance using the config defaults provided by the library +// At this point the timeout config value is `0` as is the default for the library +const instance = axios.create(); + +// Override timeout default for the library +// Now all requests using this instance will wait 2.5 seconds before timing out +instance.defaults.timeout = 2500; + +// Override timeout for this request as it's known to take a long time +instance.get('/longRequest', { + timeout: 5000 +}); +``` + +## Interceptors + +You can intercept requests or responses before they are handled by `then` or `catch`. + +```js +// Add a request interceptor +axios.interceptors.request.use(function (config) { + // Do something before request is sent + return config; + }, function (error) { + // Do something with request error + return Promise.reject(error); + }); + +// Add a response interceptor +axios.interceptors.response.use(function (response) { + // Any status code that lie within the range of 2xx cause this function to trigger + // Do something with response data + return response; + }, function (error) { + // Any status codes that falls outside the range of 2xx cause this function to trigger + // Do something with response error + return Promise.reject(error); + }); +``` + +If you need to remove an interceptor later you can. + +```js +const myInterceptor = axios.interceptors.request.use(function () {/*...*/}); +axios.interceptors.request.eject(myInterceptor); +``` + +You can add interceptors to a custom instance of axios. + +```js +const instance = axios.create(); +instance.interceptors.request.use(function () {/*...*/}); +``` + +## Handling Errors + +```js +axios.get('/user/12345') + .catch(function (error) { + if (error.response) { + // The request was made and the server responded with a status code + // that falls out of the range of 2xx + console.log(error.response.data); + console.log(error.response.status); + console.log(error.response.headers); + } else if (error.request) { + // The request was made but no response was received + // `error.request` is an instance of XMLHttpRequest in the browser and an instance of + // http.ClientRequest in node.js + console.log(error.request); + } else { + // Something happened in setting up the request that triggered an Error + console.log('Error', error.message); + } + console.log(error.config); + }); +``` + +Using the `validateStatus` config option, you can define HTTP code(s) that should throw an error. + +```js +axios.get('/user/12345', { + validateStatus: function (status) { + return status < 500; // Resolve only if the status code is less than 500 + } +}) +``` + +Using `toJSON` you get an object with more information about the HTTP error. + +```js +axios.get('/user/12345') + .catch(function (error) { + console.log(error.toJSON()); + }); +``` + +## Cancellation + +You can cancel a request using a *cancel token*. + +> The axios cancel token API is based on the withdrawn [cancelable promises proposal](https://github.com/tc39/proposal-cancelable-promises). + +You can create a cancel token using the `CancelToken.source` factory as shown below: + +```js +const CancelToken = axios.CancelToken; +const source = CancelToken.source(); + +axios.get('/user/12345', { + cancelToken: source.token +}).catch(function (thrown) { + if (axios.isCancel(thrown)) { + console.log('Request canceled', thrown.message); + } else { + // handle error + } +}); + +axios.post('/user/12345', { + name: 'new name' +}, { + cancelToken: source.token +}) + +// cancel the request (the message parameter is optional) +source.cancel('Operation canceled by the user.'); +``` + +You can also create a cancel token by passing an executor function to the `CancelToken` constructor: + +```js +const CancelToken = axios.CancelToken; +let cancel; + +axios.get('/user/12345', { + cancelToken: new CancelToken(function executor(c) { + // An executor function receives a cancel function as a parameter + cancel = c; + }) +}); + +// cancel the request +cancel(); +``` + +> Note: you can cancel several requests with the same cancel token. + +## Using application/x-www-form-urlencoded format + +By default, axios serializes JavaScript objects to `JSON`. To send data in the `application/x-www-form-urlencoded` format instead, you can use one of the following options. + +### Browser + +In a browser, you can use the [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) API as follows: + +```js +const params = new URLSearchParams(); +params.append('param1', 'value1'); +params.append('param2', 'value2'); +axios.post('/foo', params); +``` + +> Note that `URLSearchParams` is not supported by all browsers (see [caniuse.com](http://www.caniuse.com/#feat=urlsearchparams)), but there is a [polyfill](https://github.com/WebReflection/url-search-params) available (make sure to polyfill the global environment). + +Alternatively, you can encode data using the [`qs`](https://github.com/ljharb/qs) library: + +```js +const qs = require('qs'); +axios.post('/foo', qs.stringify({ 'bar': 123 })); +``` + +Or in another way (ES6), + +```js +import qs from 'qs'; +const data = { 'bar': 123 }; +const options = { + method: 'POST', + headers: { 'content-type': 'application/x-www-form-urlencoded' }, + data: qs.stringify(data), + url, +}; +axios(options); +``` + +### Node.js + +#### Query string + +In node.js, you can use the [`querystring`](https://nodejs.org/api/querystring.html) module as follows: + +```js +const querystring = require('querystring'); +axios.post('http://something.com/', querystring.stringify({ foo: 'bar' })); +``` + +or ['URLSearchParams'](https://nodejs.org/api/url.html#url_class_urlsearchparams) from ['url module'](https://nodejs.org/api/url.html) as follows: + +```js +const url = require('url'); +const params = new url.URLSearchParams({ foo: 'bar' }); +axios.post('http://something.com/', params.toString()); +``` + +You can also use the [`qs`](https://github.com/ljharb/qs) library. + +###### NOTE +The `qs` library is preferable if you need to stringify nested objects, as the `querystring` method has known issues with that use case (https://github.com/nodejs/node-v0.x-archive/issues/1665). + +#### Form data + +In node.js, you can use the [`form-data`](https://github.com/form-data/form-data) library as follows: + +```js +const FormData = require('form-data'); + +const form = new FormData(); +form.append('my_field', 'my value'); +form.append('my_buffer', new Buffer(10)); +form.append('my_file', fs.createReadStream('/foo/bar.jpg')); + +axios.post('https://example.com', form, { headers: form.getHeaders() }) +``` + +Alternatively, use an interceptor: + +```js +axios.interceptors.request.use(config => { + if (config.data instanceof FormData) { + Object.assign(config.headers, config.data.getHeaders()); + } + return config; +}); +``` + +## Semver + +Until axios reaches a `1.0` release, breaking changes will be released with a new minor version. For example `0.5.1`, and `0.5.4` will have the same API, but `0.6.0` will have breaking changes. + +## Promises + +axios depends on a native ES6 Promise implementation to be [supported](http://caniuse.com/promises). +If your environment doesn't support ES6 Promises, you can [polyfill](https://github.com/jakearchibald/es6-promise). + +## TypeScript +axios includes [TypeScript](http://typescriptlang.org) definitions. +```typescript +import axios from 'axios'; +axios.get('/user?ID=12345'); +``` + +## Resources + +* [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md) +* [Upgrade Guide](https://github.com/axios/axios/blob/master/UPGRADE_GUIDE.md) +* [Ecosystem](https://github.com/axios/axios/blob/master/ECOSYSTEM.md) +* [Contributing Guide](https://github.com/axios/axios/blob/master/CONTRIBUTING.md) +* [Code of Conduct](https://github.com/axios/axios/blob/master/CODE_OF_CONDUCT.md) + +## Credits + +axios is heavily inspired by the [$http service](https://docs.angularjs.org/api/ng/service/$http) provided in [Angular](https://angularjs.org/). Ultimately axios is an effort to provide a standalone `$http`-like service for use outside of Angular. + +## License + +[MIT](LICENSE) diff --git a/justdanceonline-main/node_modules/axios/UPGRADE_GUIDE.md b/justdanceonline-main/node_modules/axios/UPGRADE_GUIDE.md new file mode 100644 index 0000000000000000000000000000000000000000..745e804927d4c3c373377999aeed055ed4b0f0da --- /dev/null +++ b/justdanceonline-main/node_modules/axios/UPGRADE_GUIDE.md @@ -0,0 +1,162 @@ +# Upgrade Guide + +### 0.15.x -> 0.16.0 + +#### `Promise` Type Declarations + +The `Promise` type declarations have been removed from the axios typings in favor of the built-in type declarations. If you use axios in a TypeScript project that targets `ES5`, please make sure to include the `es2015.promise` lib. Please see [this post](https://blog.mariusschulz.com/2016/11/25/typescript-2-0-built-in-type-declarations) for details. + +### 0.13.x -> 0.14.0 + +#### TypeScript Definitions + +The axios TypeScript definitions have been updated to match the axios API and use the ES2015 module syntax. + +Please use the following `import` statement to import axios in TypeScript: + +```typescript +import axios from 'axios'; + +axios.get('/foo') + .then(response => console.log(response)) + .catch(error => console.log(error)); +``` + +#### `agent` Config Option + +The `agent` config option has been replaced with two new options: `httpAgent` and `httpsAgent`. Please use them instead. + +```js +{ + // Define a custom agent for HTTP + httpAgent: new http.Agent({ keepAlive: true }), + // Define a custom agent for HTTPS + httpsAgent: new https.Agent({ keepAlive: true }) +} +``` + +#### `progress` Config Option + +The `progress` config option has been replaced with the `onUploadProgress` and `onDownloadProgress` options. + +```js +{ + // Define a handler for upload progress events + onUploadProgress: function (progressEvent) { + // ... + }, + + // Define a handler for download progress events + onDownloadProgress: function (progressEvent) { + // ... + } +} +``` + +### 0.12.x -> 0.13.0 + +The `0.13.0` release contains several changes to custom adapters and error handling. + +#### Error Handling + +Previous to this release an error could either be a server response with bad status code or an actual `Error`. With this release Promise will always reject with an `Error`. In the case that a response was received, the `Error` will also include the response. + +```js +axios.get('/user/12345') + .catch((error) => { + console.log(error.message); + console.log(error.code); // Not always specified + console.log(error.config); // The config that was used to make the request + console.log(error.response); // Only available if response was received from the server + }); +``` + +#### Request Adapters + +This release changes a few things about how request adapters work. Please take note if you are using your own custom adapter. + +1. Response transformer is now called outside of adapter. +2. Request adapter returns a `Promise`. + +This means that you no longer need to invoke `transformData` on response data. You will also no longer receive `resolve` and `reject` as arguments in your adapter. + +Previous code: + +```js +function myAdapter(resolve, reject, config) { + var response = { + data: transformData( + responseData, + responseHeaders, + config.transformResponse + ), + status: request.status, + statusText: request.statusText, + headers: responseHeaders + }; + settle(resolve, reject, response); +} +``` + +New code: + +```js +function myAdapter(config) { + return new Promise(function (resolve, reject) { + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders + }; + settle(resolve, reject, response); + }); +} +``` + +See the related commits for more details: +- [Response transformers](https://github.com/axios/axios/commit/10eb23865101f9347570552c04e9d6211376e25e) +- [Request adapter Promise](https://github.com/axios/axios/commit/157efd5615890301824e3121cc6c9d2f9b21f94a) + +### 0.5.x -> 0.6.0 + +The `0.6.0` release contains mostly bug fixes, but there are a couple things to be aware of when upgrading. + +#### ES6 Promise Polyfill + +Up until the `0.6.0` release ES6 `Promise` was being polyfilled using [es6-promise](https://github.com/jakearchibald/es6-promise). With this release, the polyfill has been removed, and you will need to supply it yourself if your environment needs it. + +```js +require('es6-promise').polyfill(); +var axios = require('axios'); +``` + +This will polyfill the global environment, and only needs to be done once. + +#### `axios.success`/`axios.error` + +The `success`, and `error` aliases were deprecated in [0.4.0](https://github.com/axios/axios/blob/master/CHANGELOG.md#040-oct-03-2014). As of this release they have been removed entirely. Instead please use `axios.then`, and `axios.catch` respectively. + +```js +axios.get('some/url') + .then(function (res) { + /* ... */ + }) + .catch(function (err) { + /* ... */ + }); +``` + +#### UMD + +Previous versions of axios shipped with an AMD, CommonJS, and Global build. This has all been rolled into a single UMD build. + +```js +// AMD +require(['bower_components/axios/dist/axios'], function (axios) { + /* ... */ +}); + +// CommonJS +var axios = require('axios/dist/axios'); +``` diff --git a/justdanceonline-main/node_modules/axios/dist/axios.js b/justdanceonline-main/node_modules/axios/dist/axios.js new file mode 100644 index 0000000000000000000000000000000000000000..6dd94bdcf3cbd4b017858f2299fe930dd10c1186 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/dist/axios.js @@ -0,0 +1,1756 @@ +/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["axios"] = factory(); + else + root["axios"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var bind = __webpack_require__(3); + var Axios = __webpack_require__(4); + var mergeConfig = __webpack_require__(22); + var defaults = __webpack_require__(10); + + /** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; + } + + // Create the default instance to be exported + var axios = createInstance(defaults); + + // Expose Axios class to allow class inheritance + axios.Axios = Axios; + + // Factory for creating new instances + axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); + }; + + // Expose Cancel & CancelToken + axios.Cancel = __webpack_require__(23); + axios.CancelToken = __webpack_require__(24); + axios.isCancel = __webpack_require__(9); + + // Expose all/spread + axios.all = function all(promises) { + return Promise.all(promises); + }; + axios.spread = __webpack_require__(25); + + // Expose isAxiosError + axios.isAxiosError = __webpack_require__(26); + + module.exports = axios; + + // Allow use of default import syntax in TypeScript + module.exports.default = axios; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var bind = __webpack_require__(3); + + /*global toString:true*/ + + // utils is a library of generic helper functions non-specific to axios + + var toString = Object.prototype.toString; + + /** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ + function isArray(val) { + return toString.call(val) === '[object Array]'; + } + + /** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ + function isUndefined(val) { + return typeof val === 'undefined'; + } + + /** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ + function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); + } + + /** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ + function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; + } + + /** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ + function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); + } + + /** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ + function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; + } + + /** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ + function isString(val) { + return typeof val === 'string'; + } + + /** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ + function isNumber(val) { + return typeof val === 'number'; + } + + /** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ + function isObject(val) { + return val !== null && typeof val === 'object'; + } + + /** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ + function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false; + } + + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; + } + + /** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ + function isDate(val) { + return toString.call(val) === '[object Date]'; + } + + /** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ + function isFile(val) { + return toString.call(val) === '[object File]'; + } + + /** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ + function isBlob(val) { + return toString.call(val) === '[object Blob]'; + } + + /** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ + function isFunction(val) { + return toString.call(val) === '[object Function]'; + } + + /** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ + function isStream(val) { + return isObject(val) && isFunction(val.pipe); + } + + /** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ + function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; + } + + /** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ + function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); + } + + /** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ + function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); + } + + /** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ + function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } + } + + /** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ + function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + + /** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ + function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; + } + + /** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ + function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; + } + + module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM + }; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; + }; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var buildURL = __webpack_require__(5); + var InterceptorManager = __webpack_require__(6); + var dispatchRequest = __webpack_require__(7); + var mergeConfig = __webpack_require__(22); + + /** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ + function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + + /** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ + Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; + }; + + Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); + }; + + // Provide aliases for supported request methods + utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: (config || {}).data + })); + }; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: data + })); + }; + }); + + module.exports = Axios; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); + } + + /** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ + module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; + }; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + function InterceptorManager() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; + }; + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ + InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + }; + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ + InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + }; + + module.exports = InterceptorManager; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var transformData = __webpack_require__(8); + var isCancel = __webpack_require__(9); + var defaults = __webpack_require__(10); + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + } + + /** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ + module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); + }; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ + module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; + }; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + 'use strict'; + + module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); + }; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var normalizeHeaderName = __webpack_require__(11); + + var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' + }; + + function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } + } + + function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(12); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = __webpack_require__(12); + } + return adapter; + } + + var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } + }; + + defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } + }; + + utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; + }); + + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); + }); + + module.exports = defaults; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); + }; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + var settle = __webpack_require__(13); + var cookies = __webpack_require__(16); + var buildURL = __webpack_require__(5); + var buildFullPath = __webpack_require__(17); + var parseHeaders = __webpack_require__(20); + var isURLSameOrigin = __webpack_require__(21); + var createError = __webpack_require__(14); + + module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (!requestData) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var createError = __webpack_require__(14); + + /** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ + module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } + }; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var enhanceError = __webpack_require__(15); + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ + module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); + }; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ + module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; + }; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() + ); + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var isAbsoluteURL = __webpack_require__(18); + var combineURLs = __webpack_require__(19); + + /** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ + module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + }; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ + module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); + }; + + +/***/ }), +/* 19 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ + module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; + }; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + // Headers whose duplicates are ignored by node + // c.f. https://nodejs.org/api/http.html#http_message_headers + var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' + ]; + + /** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ + module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; + }; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() + ); + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var utils = __webpack_require__(2); + + /** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ + module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; + var defaultToConfig2Keys = [ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', + 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' + ]; + var directMergeKeys = ['validateStatus']; + + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + } + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } + }); + + utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + utils.forEach(directMergeKeys, function merge(prop) { + if (prop in config2) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys) + .concat(directMergeKeys); + + var otherKeys = Object + .keys(config1) + .concat(Object.keys(config2)) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, mergeDeepProperties); + + return config; + }; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ + function Cancel(message) { + this.message = message; + } + + Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); + }; + + Cancel.prototype.__CANCEL__ = true; + + module.exports = Cancel; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var Cancel = __webpack_require__(23); + + /** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ + function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `Cancel` if cancellation has been requested. + */ + CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } + }; + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; + }; + + module.exports = CancelToken; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ + module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + }; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ + module.exports = function isAxiosError(payload) { + return (typeof payload === 'object') && (payload.isAxiosError === true); + }; + + +/***/ }) +/******/ ]) +}); +; +//# sourceMappingURL=axios.map \ No newline at end of file diff --git a/justdanceonline-main/node_modules/axios/dist/axios.map b/justdanceonline-main/node_modules/axios/dist/axios.map new file mode 100644 index 0000000000000000000000000000000000000000..6d61f7e6af286a1f4f76d010c59b693292692870 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/dist/axios.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 0ad9e9f79033ec4fb28f","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js","webpack:///./lib/helpers/isAxiosError.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,yC;;;;;;ACAA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACvDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,6BAA4B;AAC5B,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9VA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA,0BAAyB;AACzB,MAAK;AACL;AACA,EAAC;;AAED;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;;;;;;;AC9FA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACrEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B,wCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;;;;;;AC9EA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,MAAM;AACjB,YAAW,eAAe;AAC1B,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;;;;;;;ACJA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAwE;AACxE;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO,YAAY;AACnB;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;;;;;;ACjGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C;AAC5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;;;;;;AClLA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA0C;AAC1C,UAAS;;AAET;AACA,6DAA4D,wBAAwB;AACpF;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mCAAkC;AAClC,gCAA+B,aAAa,EAAE;AAC9C;AACA;AACA,MAAK;AACL;;;;;;;ACpDA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;;;;;;ACnEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL,4BAA2B;AAC3B,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;;;;;;;ACtFA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;AClBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,YAAW,SAAS;AACpB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA","file":"axios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0ad9e9f79033ec4fb28f","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 18\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAxiosError.js\n// module id = 26\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/axios/dist/axios.min.js b/justdanceonline-main/node_modules/axios/dist/axios.min.js new file mode 100644 index 0000000000000000000000000000000000000000..fc6c8b6187d36612a5bc7ea2f2d81b34ca2dfd62 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/dist/axios.min.js @@ -0,0 +1,3 @@ +/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new i(e),n=s(i.prototype.request,t);return o.extend(n,i.prototype,t),o.extend(n,t),n}var o=n(2),s=n(3),i=n(4),a=n(22),u=n(10),c=r(u);c.Axios=i,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),c.isAxiosError=n(26),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===R.call(e)}function o(e){return"undefined"==typeof e}function s(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"[object ArrayBuffer]"===R.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){if("[object Object]"!==R.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Date]"===R.call(e)}function h(e){return"[object File]"===R.call(e)}function m(e){return"[object Blob]"===R.call(e)}function y(e){return"[object Function]"===R.call(e)}function g(e){return p(e)&&y(e.pipe)}function v(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function x(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function b(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},s.forEach(["delete","get","head"],function(e){u.headers[e]={}}),s.forEach(["post","put","patch"],function(e){u.headers[e]=s.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),s=n(16),i=n(5),a=n(17),u=n(20),c=n(21),f=n(14);e.exports=function(e){return new Promise(function(t,n){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+m)}var y=a(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in l?u(l.getAllResponseHeaders()):null,s=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:s,status:l.status,statusText:l.statusText,headers:r,config:e,request:l};o(t,n,i),l=null}},l.onabort=function(){l&&(n(f("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){n(f("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(f(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||c(y))&&e.xsrfCookieName?s.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),n(e),l=null)}),p||(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,s){var i=new Error(e);return r(i,t,n,o,s)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,s,i){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(s)&&a.push("domain="+s),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(18),o=n(19);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,s,i={};return e?(r.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),t=r.trim(e.substr(0,s)).toLowerCase(),n=r.trim(e.substr(s+1)),t){if(i[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?i[t]=(i[t]?i[t]:[]).concat([n]):i[t]=i[t]?i[t]+", "+n:n}}),i):i}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){function n(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function o(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(e[o],t[o])}t=t||{};var s={},i=["url","method","data"],a=["headers","auth","proxy","params"],u=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],c=["validateStatus"];r.forEach(i,function(e){r.isUndefined(t[e])||(s[e]=n(void 0,t[e]))}),r.forEach(a,o),r.forEach(u,function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(void 0,t[o])}),r.forEach(c,function(r){r in t?s[r]=n(e[r],t[r]):r in e&&(s[r]=n(void 0,e[r]))});var f=i.concat(a).concat(u).concat(c),p=Object.keys(e).concat(Object.keys(t)).filter(function(e){return f.indexOf(e)===-1});return r.forEach(p,o),s}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t){"use strict";e.exports=function(e){return"object"==typeof e&&e.isAxiosError===!0}}])}); +//# sourceMappingURL=axios.min.map \ No newline at end of file diff --git a/justdanceonline-main/node_modules/axios/dist/axios.min.map b/justdanceonline-main/node_modules/axios/dist/axios.min.map new file mode 100644 index 0000000000000000000000000000000000000000..a897631d141396bb65a94b34b0e2d0885692e5ca --- /dev/null +++ b/justdanceonline-main/node_modules/axios/dist/axios.min.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///axios.min.js","webpack:///webpack/bootstrap 081842adca0968bb3270","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js","webpack:///./lib/helpers/isAxiosError.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createInstance","defaultConfig","context","Axios","instance","bind","prototype","request","utils","extend","mergeConfig","defaults","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","Promise","spread","isAxiosError","default","isArray","val","toString","isUndefined","isBuffer","constructor","isArrayBuffer","isFormData","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isPlainObject","Object","getPrototypeOf","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","replace","isStandardBrowserEnv","navigator","product","window","document","forEach","obj","fn","i","l","length","key","hasOwnProperty","merge","assignValue","slice","arguments","a","b","thisArg","stripBOM","content","charCodeAt","args","Array","apply","interceptors","InterceptorManager","response","buildURL","dispatchRequest","config","url","method","toLowerCase","chain","undefined","promise","resolve","interceptor","unshift","fulfilled","rejected","push","then","shift","getUri","params","paramsSerializer","data","encode","encodeURIComponent","serializedParams","parts","v","toISOString","JSON","stringify","join","hashmarkIndex","indexOf","handlers","use","eject","h","throwIfCancellationRequested","cancelToken","throwIfRequested","transformData","headers","transformRequest","common","adapter","transformResponse","reason","reject","fns","value","__CANCEL__","setContentTypeIfUnset","getDefaultAdapter","XMLHttpRequest","process","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","Accept","normalizedName","name","toUpperCase","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","send","enhanceError","message","code","error","Error","toJSON","description","number","fileName","lineNumber","columnNumber","stack","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","concat","resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","originURL","userAgent","createElement","location","requestURL","config1","config2","getMergedValue","target","source","mergeDeepProperties","prop","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","axiosKeys","otherKeys","keys","filter","executor","TypeError","resolvePromise","token","callback","arr","payload"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,MAAAD,IAEAD,EAAA,MAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAAUL,EAAQD,EAASM,GEtDjCL,EAAAD,QAAAM,EAAA,IF4DM,SAAUL,EAAQD,EAASM,GG5DjC,YAcA,SAAAS,GAAAC,GACA,GAAAC,GAAA,GAAAC,GAAAF,GACAG,EAAAC,EAAAF,EAAAG,UAAAC,QAAAL,EAQA,OALAM,GAAAC,OAAAL,EAAAD,EAAAG,UAAAJ,GAGAM,EAAAC,OAAAL,EAAAF,GAEAE,EAtBA,GAAAI,GAAAjB,EAAA,GACAc,EAAAd,EAAA,GACAY,EAAAZ,EAAA,GACAmB,EAAAnB,EAAA,IACAoB,EAAApB,EAAA,IAsBAqB,EAAAZ,EAAAW,EAGAC,GAAAT,QAGAS,EAAAC,OAAA,SAAAC,GACA,MAAAd,GAAAU,EAAAE,EAAAD,SAAAG,KAIAF,EAAAG,OAAAxB,EAAA,IACAqB,EAAAI,YAAAzB,EAAA,IACAqB,EAAAK,SAAA1B,EAAA,GAGAqB,EAAAM,IAAA,SAAAC,GACA,MAAAC,SAAAF,IAAAC,IAEAP,EAAAS,OAAA9B,EAAA,IAGAqB,EAAAU,aAAA/B,EAAA,IAEAL,EAAAD,QAAA2B,EAGA1B,EAAAD,QAAAsC,QAAAX,GHmEM,SAAU1B,EAAQD,EAASM,GI1HjC,YAgBA,SAAAiC,GAAAC,GACA,yBAAAC,EAAA9B,KAAA6B,GASA,QAAAE,GAAAF,GACA,yBAAAA,GASA,QAAAG,GAAAH,GACA,cAAAA,IAAAE,EAAAF,IAAA,OAAAA,EAAAI,cAAAF,EAAAF,EAAAI,cACA,kBAAAJ,GAAAI,YAAAD,UAAAH,EAAAI,YAAAD,SAAAH,GASA,QAAAK,GAAAL,GACA,+BAAAC,EAAA9B,KAAA6B,GASA,QAAAM,GAAAN,GACA,yBAAAO,WAAAP,YAAAO,UASA,QAAAC,GAAAR,GACA,GAAAS,EAMA,OAJAA,GADA,mBAAAC,0BAAA,OACAA,YAAAC,OAAAX,GAEA,GAAAA,EAAA,QAAAA,EAAAY,iBAAAF,aAWA,QAAAG,GAAAb,GACA,sBAAAA,GASA,QAAAc,GAAAd,GACA,sBAAAA,GASA,QAAAe,GAAAf,GACA,cAAAA,GAAA,gBAAAA,GASA,QAAAgB,GAAAhB,GACA,uBAAAC,EAAA9B,KAAA6B,GACA,QAGA,IAAAnB,GAAAoC,OAAAC,eAAAlB,EACA,eAAAnB,OAAAoC,OAAApC,UASA,QAAAsC,GAAAnB,GACA,wBAAAC,EAAA9B,KAAA6B,GASA,QAAAoB,GAAApB,GACA,wBAAAC,EAAA9B,KAAA6B,GASA,QAAAqB,GAAArB,GACA,wBAAAC,EAAA9B,KAAA6B,GASA,QAAAsB,GAAAtB,GACA,4BAAAC,EAAA9B,KAAA6B,GASA,QAAAuB,GAAAvB,GACA,MAAAe,GAAAf,IAAAsB,EAAAtB,EAAAwB,MASA,QAAAC,GAAAzB,GACA,yBAAA0B,kBAAA1B,YAAA0B,iBASA,QAAAC,GAAAC,GACA,MAAAA,GAAAC,QAAA,WAAAA,QAAA,WAkBA,QAAAC,KACA,0BAAAC,YAAA,gBAAAA,UAAAC,SACA,iBAAAD,UAAAC,SACA,OAAAD,UAAAC,WAIA,mBAAAC,SACA,mBAAAC,WAgBA,QAAAC,GAAAC,EAAAC,GAEA,UAAAD,GAAA,mBAAAA,GAUA,GALA,gBAAAA,KAEAA,OAGArC,EAAAqC,GAEA,OAAAE,GAAA,EAAAC,EAAAH,EAAAI,OAAmCF,EAAAC,EAAOD,IAC1CD,EAAAlE,KAAA,KAAAiE,EAAAE,KAAAF,OAIA,QAAAK,KAAAL,GACAnB,OAAApC,UAAA6D,eAAAvE,KAAAiE,EAAAK,IACAJ,EAAAlE,KAAA,KAAAiE,EAAAK,KAAAL,GAuBA,QAAAO,KAEA,QAAAC,GAAA5C,EAAAyC,GACAzB,EAAAP,EAAAgC,KAAAzB,EAAAhB,GACAS,EAAAgC,GAAAE,EAAAlC,EAAAgC,GAAAzC,GACKgB,EAAAhB,GACLS,EAAAgC,GAAAE,KAA4B3C,GACvBD,EAAAC,GACLS,EAAAgC,GAAAzC,EAAA6C,QAEApC,EAAAgC,GAAAzC,EAIA,OAbAS,MAaA6B,EAAA,EAAAC,EAAAO,UAAAN,OAAuCF,EAAAC,EAAOD,IAC9CH,EAAAW,UAAAR,GAAAM,EAEA,OAAAnC,GAWA,QAAAzB,GAAA+D,EAAAC,EAAAC,GAQA,MAPAd,GAAAa,EAAA,SAAAhD,EAAAyC,GACAQ,GAAA,kBAAAjD,GACA+C,EAAAN,GAAA7D,EAAAoB,EAAAiD,GAEAF,EAAAN,GAAAzC,IAGA+C,EASA,QAAAG,GAAAC,GAIA,MAHA,SAAAA,EAAAC,WAAA,KACAD,IAAAN,MAAA,IAEAM,EAlUA,GAAAvE,GAAAd,EAAA,GAMAmC,EAAAgB,OAAApC,UAAAoB,QA+TAxC,GAAAD,SACAuC,UACAM,gBACAF,WACAG,aACAE,oBACAK,WACAC,WACAC,WACAC,gBACAd,cACAiB,SACAC,SACAC,SACAC,aACAC,WACAE,oBACAK,uBACAK,UACAQ,QACA3D,SACA2C,OACAuB,aJkIM,SAAUzF,EAAQD,GK/dxB,YAEAC,GAAAD,QAAA,SAAA6E,EAAAY,GACA,kBAEA,OADAI,GAAA,GAAAC,OAAAR,UAAAN,QACAF,EAAA,EAAmBA,EAAAe,EAAAb,OAAiBF,IACpCe,EAAAf,GAAAQ,UAAAR,EAEA,OAAAD,GAAAkB,MAAAN,EAAAI,MLweM,SAAU5F,EAAQD,EAASM,GMhfjC,YAaA,SAAAY,GAAAW,GACAzB,KAAAsB,SAAAG,EACAzB,KAAA4F,cACA1E,QAAA,GAAA2E,GACAC,SAAA,GAAAD,IAfA,GAAA1E,GAAAjB,EAAA,GACA6F,EAAA7F,EAAA,GACA2F,EAAA3F,EAAA,GACA8F,EAAA9F,EAAA,GACAmB,EAAAnB,EAAA,GAoBAY,GAAAG,UAAAC,QAAA,SAAA+E,GAGA,gBAAAA,IACAA,EAAAf,UAAA,OACAe,EAAAC,IAAAhB,UAAA,IAEAe,QAGAA,EAAA5E,EAAArB,KAAAsB,SAAA2E,GAGAA,EAAAE,OACAF,EAAAE,OAAAF,EAAAE,OAAAC,cACGpG,KAAAsB,SAAA6E,OACHF,EAAAE,OAAAnG,KAAAsB,SAAA6E,OAAAC,cAEAH,EAAAE,OAAA,KAIA,IAAAE,IAAAL,EAAAM,QACAC,EAAAxE,QAAAyE,QAAAP,EAUA,KARAjG,KAAA4F,aAAA1E,QAAAqD,QAAA,SAAAkC,GACAJ,EAAAK,QAAAD,EAAAE,UAAAF,EAAAG,YAGA5G,KAAA4F,aAAAE,SAAAvB,QAAA,SAAAkC,GACAJ,EAAAQ,KAAAJ,EAAAE,UAAAF,EAAAG,YAGAP,EAAAzB,QACA2B,IAAAO,KAAAT,EAAAU,QAAAV,EAAAU,QAGA,OAAAR,IAGAzF,EAAAG,UAAA+F,OAAA,SAAAf,GAEA,MADAA,GAAA5E,EAAArB,KAAAsB,SAAA2E,GACAF,EAAAE,EAAAC,IAAAD,EAAAgB,OAAAhB,EAAAiB,kBAAAjD,QAAA,WAIA9C,EAAAoD,SAAA,0CAAA4B,GAEArF,EAAAG,UAAAkF,GAAA,SAAAD,EAAAD,GACA,MAAAjG,MAAAkB,QAAAG,EAAA4E,OACAE,SACAD,MACAiB,MAAAlB,OAAyBkB,WAKzBhG,EAAAoD,SAAA,+BAAA4B,GAEArF,EAAAG,UAAAkF,GAAA,SAAAD,EAAAiB,EAAAlB,GACA,MAAAjG,MAAAkB,QAAAG,EAAA4E,OACAE,SACAD,MACAiB,aAKAtH,EAAAD,QAAAkB,GNufM,SAAUjB,EAAQD,EAASM,GOrlBjC,YAIA,SAAAkH,GAAAhF,GACA,MAAAiF,oBAAAjF,GACA6B,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,aATA,GAAA9C,GAAAjB,EAAA,EAmBAL,GAAAD,QAAA,SAAAsG,EAAAe,EAAAC,GAEA,IAAAD,EACA,MAAAf,EAGA,IAAAoB,EACA,IAAAJ,EACAI,EAAAJ,EAAAD,OACG,IAAA9F,EAAA0C,kBAAAoD,GACHK,EAAAL,EAAA5E,eACG,CACH,GAAAkF,KAEApG,GAAAoD,QAAA0C,EAAA,SAAA7E,EAAAyC,GACA,OAAAzC,GAAA,mBAAAA,KAIAjB,EAAAgB,QAAAC,GACAyC,GAAA,KAEAzC,MAGAjB,EAAAoD,QAAAnC,EAAA,SAAAoF,GACArG,EAAAoC,OAAAiE,GACAA,IAAAC,cACStG,EAAAgC,SAAAqE,KACTA,EAAAE,KAAAC,UAAAH,IAEAD,EAAAV,KAAAO,EAAAvC,GAAA,IAAAuC,EAAAI,SAIAF,EAAAC,EAAAK,KAAA,KAGA,GAAAN,EAAA,CACA,GAAAO,GAAA3B,EAAA4B,QAAA,IACAD,MAAA,IACA3B,IAAAjB,MAAA,EAAA4C,IAGA3B,MAAA4B,QAAA,mBAAAR,EAGA,MAAApB,KP6lBM,SAAUrG,EAAQD,EAASM,GQjqBjC,YAIA,SAAA2F,KACA7F,KAAA+H,YAHA,GAAA5G,GAAAjB,EAAA,EAcA2F,GAAA5E,UAAA+G,IAAA,SAAArB,EAAAC,GAKA,MAJA5G,MAAA+H,SAAAlB,MACAF,YACAC,aAEA5G,KAAA+H,SAAAnD,OAAA,GAQAiB,EAAA5E,UAAAgH,MAAA,SAAA5H,GACAL,KAAA+H,SAAA1H,KACAL,KAAA+H,SAAA1H,GAAA,OAYAwF,EAAA5E,UAAAsD,QAAA,SAAAE,GACAtD,EAAAoD,QAAAvE,KAAA+H,SAAA,SAAAG,GACA,OAAAA,GACAzD,EAAAyD,MAKArI,EAAAD,QAAAiG,GRwqBM,SAAUhG,EAAQD,EAASM,GS3tBjC,YAUA,SAAAiI,GAAAlC,GACAA,EAAAmC,aACAnC,EAAAmC,YAAAC,mBAVA,GAAAlH,GAAAjB,EAAA,GACAoI,EAAApI,EAAA,GACA0B,EAAA1B,EAAA,GACAoB,EAAApB,EAAA,GAiBAL,GAAAD,QAAA,SAAAqG,GACAkC,EAAAlC,GAGAA,EAAAsC,QAAAtC,EAAAsC,YAGAtC,EAAAkB,KAAAmB,EACArC,EAAAkB,KACAlB,EAAAsC,QACAtC,EAAAuC,kBAIAvC,EAAAsC,QAAApH,EAAA4D,MACAkB,EAAAsC,QAAAE,WACAxC,EAAAsC,QAAAtC,EAAAE,YACAF,EAAAsC,SAGApH,EAAAoD,SACA,qDACA,SAAA4B,SACAF,GAAAsC,QAAApC,IAIA,IAAAuC,GAAAzC,EAAAyC,SAAApH,EAAAoH,OAEA,OAAAA,GAAAzC,GAAAa,KAAA,SAAAhB,GAUA,MATAqC,GAAAlC,GAGAH,EAAAqB,KAAAmB,EACAxC,EAAAqB,KACArB,EAAAyC,QACAtC,EAAA0C,mBAGA7C,GACG,SAAA8C,GAcH,MAbAhH,GAAAgH,KACAT,EAAAlC,GAGA2C,KAAA9C,WACA8C,EAAA9C,SAAAqB,KAAAmB,EACAM,EAAA9C,SAAAqB,KACAyB,EAAA9C,SAAAyC,QACAtC,EAAA0C,qBAKA5G,QAAA8G,OAAAD,OTouBM,SAAU/I,EAAQD,EAASM,GUhzBjC,YAEA,IAAAiB,GAAAjB,EAAA,EAUAL,GAAAD,QAAA,SAAAuH,EAAAoB,EAAAO,GAMA,MAJA3H,GAAAoD,QAAAuE,EAAA,SAAArE,GACA0C,EAAA1C,EAAA0C,EAAAoB,KAGApB,IVwzBM,SAAUtH,EAAQD,GW10BxB,YAEAC,GAAAD,QAAA,SAAAmJ,GACA,SAAAA,MAAAC,cXk1BM,SAAUnJ,EAAQD,EAASM,GYr1BjC,YASA,SAAA+I,GAAAV,EAAAQ,IACA5H,EAAAmB,YAAAiG,IAAApH,EAAAmB,YAAAiG,EAAA,mBACAA,EAAA,gBAAAQ,GAIA,QAAAG,KACA,GAAAR,EAQA,OAPA,mBAAAS,gBAEAT,EAAAxI,EAAA,IACG,mBAAAkJ,UAAA,qBAAA/F,OAAApC,UAAAoB,SAAA9B,KAAA6I,WAEHV,EAAAxI,EAAA,KAEAwI,EAtBA,GAAAvH,GAAAjB,EAAA,GACAmJ,EAAAnJ,EAAA,IAEAoJ,GACAC,eAAA,qCAqBAjI,GACAoH,QAAAQ,IAEAV,kBAAA,SAAArB,EAAAoB,GAGA,MAFAc,GAAAd,EAAA,UACAc,EAAAd,EAAA,gBACApH,EAAAuB,WAAAyE,IACAhG,EAAAsB,cAAA0E,IACAhG,EAAAoB,SAAA4E,IACAhG,EAAAwC,SAAAwD,IACAhG,EAAAqC,OAAA2D,IACAhG,EAAAsC,OAAA0D,GAEAA,EAEAhG,EAAAyB,kBAAAuE,GACAA,EAAAnE,OAEA7B,EAAA0C,kBAAAsD,IACA8B,EAAAV,EAAA,mDACApB,EAAA9E,YAEAlB,EAAAgC,SAAAgE,IACA8B,EAAAV,EAAA,kCACAb,KAAAC,UAAAR,IAEAA,IAGAwB,mBAAA,SAAAxB,GAEA,mBAAAA,GACA,IACAA,EAAAO,KAAA8B,MAAArC,GACO,MAAAsC,IAEP,MAAAtC,KAOAuC,QAAA,EAEAC,eAAA,aACAC,eAAA,eAEAC,kBAAA,EACAC,eAAA,EAEAC,eAAA,SAAAC,GACA,MAAAA,IAAA,KAAAA,EAAA,KAIA1I,GAAAiH,SACAE,QACAwB,OAAA,sCAIA9I,EAAAoD,SAAA,gCAAA4B,GACA7E,EAAAiH,QAAApC,QAGAhF,EAAAoD,SAAA,+BAAA4B,GACA7E,EAAAiH,QAAApC,GAAAhF,EAAA4D,MAAAuE,KAGAzJ,EAAAD,QAAA0B,GZ41BM,SAAUzB,EAAQD,EAASM,Ga77BjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QAAA,SAAA2I,EAAA2B,GACA/I,EAAAoD,QAAAgE,EAAA,SAAAQ,EAAAoB,GACAA,IAAAD,GAAAC,EAAAC,gBAAAF,EAAAE,gBACA7B,EAAA2B,GAAAnB,QACAR,GAAA4B,Qbu8BM,SAAUtK,EAAQD,EAASM,Gc/8BjC,YAEA,IAAAiB,GAAAjB,EAAA,GACAmK,EAAAnK,EAAA,IACAoK,EAAApK,EAAA,IACA6F,EAAA7F,EAAA,GACAqK,EAAArK,EAAA,IACAsK,EAAAtK,EAAA,IACAuK,EAAAvK,EAAA,IACAwK,EAAAxK,EAAA,GAEAL,GAAAD,QAAA,SAAAqG,GACA,UAAAlE,SAAA,SAAAyE,EAAAqC,GACA,GAAA8B,GAAA1E,EAAAkB,KACAyD,EAAA3E,EAAAsC,OAEApH,GAAAuB,WAAAiI,UACAC,GAAA,eAGA,IAAA1J,GAAA,GAAAiI,eAGA,IAAAlD,EAAA4E,KAAA,CACA,GAAAC,GAAA7E,EAAA4E,KAAAC,UAAA,GACAC,EAAA9E,EAAA4E,KAAAE,SAAAC,SAAA3D,mBAAApB,EAAA4E,KAAAE,WAAA,EACAH,GAAAK,cAAA,SAAAC,KAAAJ,EAAA,IAAAC,GAGA,GAAAI,GAAAZ,EAAAtE,EAAAmF,QAAAnF,EAAAC,IA4EA,IA3EAhF,EAAAmK,KAAApF,EAAAE,OAAAiE,cAAArE,EAAAoF,EAAAlF,EAAAgB,OAAAhB,EAAAiB,mBAAA,GAGAhG,EAAAwI,QAAAzD,EAAAyD,QAGAxI,EAAAoK,mBAAA,WACA,GAAApK,GAAA,IAAAA,EAAAqK,aAQA,IAAArK,EAAA8I,QAAA9I,EAAAsK,aAAA,IAAAtK,EAAAsK,YAAA1D,QAAA,WAKA,GAAA2D,GAAA,yBAAAvK,GAAAsJ,EAAAtJ,EAAAwK,yBAAA,KACAC,EAAA1F,EAAA2F,cAAA,SAAA3F,EAAA2F,aAAA1K,EAAA4E,SAAA5E,EAAA2K,aACA/F,GACAqB,KAAAwE,EACA3B,OAAA9I,EAAA8I,OACA8B,WAAA5K,EAAA4K,WACAvD,QAAAkD,EACAxF,SACA/E,UAGAmJ,GAAA7D,EAAAqC,EAAA/C,GAGA5E,EAAA,OAIAA,EAAA6K,QAAA,WACA7K,IAIA2H,EAAA6B,EAAA,kBAAAzE,EAAA,eAAA/E,IAGAA,EAAA,OAIAA,EAAA8K,QAAA,WAGAnD,EAAA6B,EAAA,gBAAAzE,EAAA,KAAA/E,IAGAA,EAAA,MAIAA,EAAA+K,UAAA,WACA,GAAAC,GAAA,cAAAjG,EAAAyD,QAAA,aACAzD,GAAAiG,sBACAA,EAAAjG,EAAAiG,qBAEArD,EAAA6B,EAAAwB,EAAAjG,EAAA,eACA/E,IAGAA,EAAA,MAMAC,EAAA+C,uBAAA,CAEA,GAAAiI,IAAAlG,EAAAmG,iBAAA3B,EAAAU,KAAAlF,EAAA0D,eACAW,EAAA+B,KAAApG,EAAA0D,gBACArD,MAEA6F,KACAvB,EAAA3E,EAAA2D,gBAAAuC,GAuBA,GAlBA,oBAAAjL,IACAC,EAAAoD,QAAAqG,EAAA,SAAAxI,EAAAyC,GACA,mBAAA8F,IAAA,iBAAA9F,EAAAuB,oBAEAwE,GAAA/F,GAGA3D,EAAAoL,iBAAAzH,EAAAzC,KAMAjB,EAAAmB,YAAA2D,EAAAmG,mBACAlL,EAAAkL,kBAAAnG,EAAAmG,iBAIAnG,EAAA2F,aACA,IACA1K,EAAA0K,aAAA3F,EAAA2F,aACO,MAAAnC,GAGP,YAAAxD,EAAA2F,aACA,KAAAnC,GAMA,kBAAAxD,GAAAsG,oBACArL,EAAAsL,iBAAA,WAAAvG,EAAAsG,oBAIA,kBAAAtG,GAAAwG,kBAAAvL,EAAAwL,QACAxL,EAAAwL,OAAAF,iBAAA,WAAAvG,EAAAwG,kBAGAxG,EAAAmC,aAEAnC,EAAAmC,YAAA7B,QAAAO,KAAA,SAAA6F,GACAzL,IAIAA,EAAA0L,QACA/D,EAAA8D,GAEAzL,EAAA,QAIAyJ,IACAA,EAAA,MAIAzJ,EAAA2L,KAAAlC,Odw9BM,SAAU9K,EAAQD,EAASM,GexoCjC,YAEA,IAAAwK,GAAAxK,EAAA,GASAL,GAAAD,QAAA,SAAA4G,EAAAqC,EAAA/C,GACA,GAAAiE,GAAAjE,EAAAG,OAAA8D,cACAjE,GAAAkE,QAAAD,MAAAjE,EAAAkE,QAGAnB,EAAA6B,EACA,mCAAA5E,EAAAkE,OACAlE,EAAAG,OACA,KACAH,EAAA5E,QACA4E,IAPAU,EAAAV,KfypCM,SAAUjG,EAAQD,EAASM,GgBvqCjC,YAEA,IAAA4M,GAAA5M,EAAA,GAYAL,GAAAD,QAAA,SAAAmN,EAAA9G,EAAA+G,EAAA9L,EAAA4E,GACA,GAAAmH,GAAA,GAAAC,OAAAH,EACA,OAAAD,GAAAG,EAAAhH,EAAA+G,EAAA9L,EAAA4E,KhB+qCM,SAAUjG,EAAQD,GiB/rCxB,YAYAC,GAAAD,QAAA,SAAAqN,EAAAhH,EAAA+G,EAAA9L,EAAA4E,GA4BA,MA3BAmH,GAAAhH,SACA+G,IACAC,EAAAD,QAGAC,EAAA/L,UACA+L,EAAAnH,WACAmH,EAAAhL,cAAA,EAEAgL,EAAAE,OAAA,WACA,OAEAJ,QAAA/M,KAAA+M,QACA5C,KAAAnK,KAAAmK,KAEAiD,YAAApN,KAAAoN,YACAC,OAAArN,KAAAqN,OAEAC,SAAAtN,KAAAsN,SACAC,WAAAvN,KAAAuN,WACAC,aAAAxN,KAAAwN,aACAC,MAAAzN,KAAAyN,MAEAxH,OAAAjG,KAAAiG,OACA+G,KAAAhN,KAAAgN,OAGAC,IjBusCM,SAAUpN,EAAQD,EAASM,GkB/uCjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QACAuB,EAAA+C,uBAGA,WACA,OACAwJ,MAAA,SAAAvD,EAAApB,EAAA4E,EAAAC,EAAAC,EAAAC,GACA,GAAAC,KACAA,GAAAlH,KAAAsD,EAAA,IAAA9C,mBAAA0B,IAEA5H,EAAA+B,SAAAyK,IACAI,EAAAlH,KAAA,cAAAmH,MAAAL,GAAAM,eAGA9M,EAAA8B,SAAA2K,IACAG,EAAAlH,KAAA,QAAA+G,GAGAzM,EAAA8B,SAAA4K,IACAE,EAAAlH,KAAA,UAAAgH,GAGAC,KAAA,GACAC,EAAAlH,KAAA,UAGAvC,SAAAyJ,SAAAnG,KAAA,OAGAyE,KAAA,SAAAlC,GACA,GAAA+D,GAAA5J,SAAAyJ,OAAAG,MAAA,GAAAC,QAAA,aAA4DhE,EAAA,aAC5D,OAAA+D,GAAAE,mBAAAF,EAAA,UAGAG,OAAA,SAAAlE,GACAnK,KAAA0N,MAAAvD,EAAA,GAAA6D,KAAAM,MAAA,YAMA,WACA,OACAZ,MAAA,aACArB,KAAA,WAA+B,aAC/BgC,OAAA,kBlByvCM,SAAUxO,EAAQD,EAASM,GmB1yCjC,YAEA,IAAAqO,GAAArO,EAAA,IACAsO,EAAAtO,EAAA,GAWAL,GAAAD,QAAA,SAAAwL,EAAAqD,GACA,MAAArD,KAAAmD,EAAAE,GACAD,EAAApD,EAAAqD,GAEAA,InBkzCM,SAAU5O,EAAQD,GoBp0CxB,YAQAC,GAAAD,QAAA,SAAAsG,GAIA,sCAAAwI,KAAAxI,KpB40CM,SAAUrG,EAAQD,GqBx1CxB,YASAC,GAAAD,QAAA,SAAAwL,EAAAuD,GACA,MAAAA,GACAvD,EAAAnH,QAAA,eAAA0K,EAAA1K,QAAA,WACAmH,IrBg2CM,SAAUvL,EAAQD,EAASM,GsB52CjC,YAEA,IAAAiB,GAAAjB,EAAA,GAIA0O,GACA,6DACA,kEACA,gEACA,qCAgBA/O,GAAAD,QAAA,SAAA2I,GACA,GACA1D,GACAzC,EACAsC,EAHAmK,IAKA,OAAAtG,IAEApH,EAAAoD,QAAAgE,EAAAuG,MAAA,eAAAC,GAKA,GAJArK,EAAAqK,EAAAjH,QAAA,KACAjD,EAAA1D,EAAA4C,KAAAgL,EAAAC,OAAA,EAAAtK,IAAA0B,cACAhE,EAAAjB,EAAA4C,KAAAgL,EAAAC,OAAAtK,EAAA,IAEAG,EAAA,CACA,GAAAgK,EAAAhK,IAAA+J,EAAA9G,QAAAjD,IAAA,EACA,MAEA,gBAAAA,EACAgK,EAAAhK,IAAAgK,EAAAhK,GAAAgK,EAAAhK,OAAAoK,QAAA7M,IAEAyM,EAAAhK,GAAAgK,EAAAhK,GAAAgK,EAAAhK,GAAA,KAAAzC,OAKAyM,GAnBiBA,ItBu4CX,SAAUhP,EAAQD,EAASM,GuBv6CjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QACAuB,EAAA+C,uBAIA,WAWA,QAAAgL,GAAAhJ,GACA,GAAAiJ,GAAAjJ,CAWA,OATAkJ,KAEAC,EAAAC,aAAA,OAAAH,GACAA,EAAAE,EAAAF,MAGAE,EAAAC,aAAA,OAAAH,IAIAA,KAAAE,EAAAF,KACAI,SAAAF,EAAAE,SAAAF,EAAAE,SAAAtL,QAAA,YACAuL,KAAAH,EAAAG,KACAC,OAAAJ,EAAAI,OAAAJ,EAAAI,OAAAxL,QAAA,aACAyL,KAAAL,EAAAK,KAAAL,EAAAK,KAAAzL,QAAA,YACA0L,SAAAN,EAAAM,SACAC,KAAAP,EAAAO,KACAC,SAAA,MAAAR,EAAAQ,SAAAC,OAAA,GACAT,EAAAQ,SACA,IAAAR,EAAAQ,UAhCA,GAEAE,GAFAX,EAAA,kBAAAV,KAAAvK,UAAA6L,WACAX,EAAA/K,SAAA2L,cAAA,IA2CA,OARAF,GAAAb,EAAA7K,OAAA6L,SAAAf,MAQA,SAAAgB,GACA,GAAAtB,GAAA1N,EAAA8B,SAAAkN,GAAAjB,EAAAiB,IACA,OAAAtB,GAAAU,WAAAQ,EAAAR,UACAV,EAAAW,OAAAO,EAAAP,SAKA,WACA,kBACA,cvBi7CM,SAAU3P,EAAQD,EAASM,GwBj/CjC,YAEA,IAAAiB,GAAAjB,EAAA,EAUAL,GAAAD,QAAA,SAAAwQ,EAAAC,GAgBA,QAAAC,GAAAC,EAAAC,GACA,MAAArP,GAAAiC,cAAAmN,IAAApP,EAAAiC,cAAAoN,GACArP,EAAA4D,MAAAwL,EAAAC,GACKrP,EAAAiC,cAAAoN,GACLrP,EAAA4D,SAA2ByL,GACtBrP,EAAAgB,QAAAqO,GACLA,EAAAvL,QAEAuL,EAGA,QAAAC,GAAAC,GACAvP,EAAAmB,YAAA+N,EAAAK,IAEKvP,EAAAmB,YAAA8N,EAAAM,MACLzK,EAAAyK,GAAAJ,EAAAhK,OAAA8J,EAAAM,KAFAzK,EAAAyK,GAAAJ,EAAAF,EAAAM,GAAAL,EAAAK,IA3BAL,OACA,IAAApK,MAEA0K,GAAA,uBACAC,GAAA,mCACAC,GACA,oEACA,uFACA,sEACA,0EACA,4DAEAC,GAAA,iBAqBA3P,GAAAoD,QAAAoM,EAAA,SAAAD,GACAvP,EAAAmB,YAAA+N,EAAAK,MACAzK,EAAAyK,GAAAJ,EAAAhK,OAAA+J,EAAAK,OAIAvP,EAAAoD,QAAAqM,EAAAH,GAEAtP,EAAAoD,QAAAsM,EAAA,SAAAH,GACAvP,EAAAmB,YAAA+N,EAAAK,IAEKvP,EAAAmB,YAAA8N,EAAAM,MACLzK,EAAAyK,GAAAJ,EAAAhK,OAAA8J,EAAAM,KAFAzK,EAAAyK,GAAAJ,EAAAhK,OAAA+J,EAAAK,MAMAvP,EAAAoD,QAAAuM,EAAA,SAAAJ,GACAA,IAAAL,GACApK,EAAAyK,GAAAJ,EAAAF,EAAAM,GAAAL,EAAAK,IACKA,IAAAN,KACLnK,EAAAyK,GAAAJ,EAAAhK,OAAA8J,EAAAM,MAIA,IAAAK,GAAAJ,EACA1B,OAAA2B,GACA3B,OAAA4B,GACA5B,OAAA6B,GAEAE,EAAA3N,OACA4N,KAAAb,GACAnB,OAAA5L,OAAA4N,KAAAZ,IACAa,OAAA,SAAArM,GACA,MAAAkM,GAAAjJ,QAAAjD,MAAA,GAKA,OAFA1D,GAAAoD,QAAAyM,EAAAP,GAEAxK,IxBy/CM,SAAUpG,EAAQD,GyB9kDxB,YAQA,SAAA8B,GAAAqL,GACA/M,KAAA+M,UAGArL,EAAAT,UAAAoB,SAAA,WACA,gBAAArC,KAAA+M,QAAA,KAAA/M,KAAA+M,QAAA,KAGArL,EAAAT,UAAA+H,YAAA,EAEAnJ,EAAAD,QAAA8B,GzBqlDM,SAAU7B,EAAQD,EAASM,G0BvmDjC,YAUA,SAAAyB,GAAAwP,GACA,qBAAAA,GACA,SAAAC,WAAA,+BAGA,IAAAC,EACArR,MAAAuG,QAAA,GAAAxE,SAAA,SAAAyE,GACA6K,EAAA7K,GAGA,IAAA8K,GAAAtR,IACAmR,GAAA,SAAApE,GACAuE,EAAA1I,SAKA0I,EAAA1I,OAAA,GAAAlH,GAAAqL,GACAsE,EAAAC,EAAA1I,WA1BA,GAAAlH,GAAAxB,EAAA,GAiCAyB,GAAAV,UAAAoH,iBAAA,WACA,GAAArI,KAAA4I,OACA,KAAA5I,MAAA4I,QAQAjH,EAAA6O,OAAA,WACA,GAAA7D,GACA2E,EAAA,GAAA3P,GAAA,SAAAlB,GACAkM,EAAAlM,GAEA,QACA6Q,QACA3E,WAIA9M,EAAAD,QAAA+B,G1B8mDM,SAAU9B,EAAQD,G2BtqDxB,YAsBAC,GAAAD,QAAA,SAAA2R,GACA,gBAAAC,GACA,MAAAD,GAAA5L,MAAA,KAAA6L,M3B+qDM,SAAU3R,EAAQD,G4BvsDxB,YAQAC,GAAAD,QAAA,SAAA6R,GACA,sBAAAA,MAAAxP,gBAAA","file":"axios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar bind = __webpack_require__(3);\n\tvar Axios = __webpack_require__(4);\n\tvar mergeConfig = __webpack_require__(22);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Create an instance of Axios\n\t *\n\t * @param {Object} defaultConfig The default config for the instance\n\t * @return {Axios} A new instance of Axios\n\t */\n\tfunction createInstance(defaultConfig) {\n\t var context = new Axios(defaultConfig);\n\t var instance = bind(Axios.prototype.request, context);\n\t\n\t // Copy axios.prototype to instance\n\t utils.extend(instance, Axios.prototype, context);\n\t\n\t // Copy context to instance\n\t utils.extend(instance, context);\n\t\n\t return instance;\n\t}\n\t\n\t// Create the default instance to be exported\n\tvar axios = createInstance(defaults);\n\t\n\t// Expose Axios class to allow class inheritance\n\taxios.Axios = Axios;\n\t\n\t// Factory for creating new instances\n\taxios.create = function create(instanceConfig) {\n\t return createInstance(mergeConfig(axios.defaults, instanceConfig));\n\t};\n\t\n\t// Expose Cancel & CancelToken\n\taxios.Cancel = __webpack_require__(23);\n\taxios.CancelToken = __webpack_require__(24);\n\taxios.isCancel = __webpack_require__(9);\n\t\n\t// Expose all/spread\n\taxios.all = function all(promises) {\n\t return Promise.all(promises);\n\t};\n\taxios.spread = __webpack_require__(25);\n\t\n\t// Expose isAxiosError\n\taxios.isAxiosError = __webpack_require__(26);\n\t\n\tmodule.exports = axios;\n\t\n\t// Allow use of default import syntax in TypeScript\n\tmodule.exports.default = axios;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar bind = __webpack_require__(3);\n\t\n\t/*global toString:true*/\n\t\n\t// utils is a library of generic helper functions non-specific to axios\n\t\n\tvar toString = Object.prototype.toString;\n\t\n\t/**\n\t * Determine if a value is an Array\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Array, otherwise false\n\t */\n\tfunction isArray(val) {\n\t return toString.call(val) === '[object Array]';\n\t}\n\t\n\t/**\n\t * Determine if a value is undefined\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if the value is undefined, otherwise false\n\t */\n\tfunction isUndefined(val) {\n\t return typeof val === 'undefined';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Buffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Buffer, otherwise false\n\t */\n\tfunction isBuffer(val) {\n\t return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n\t && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n\t}\n\t\n\t/**\n\t * Determine if a value is an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBuffer(val) {\n\t return toString.call(val) === '[object ArrayBuffer]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a FormData\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an FormData, otherwise false\n\t */\n\tfunction isFormData(val) {\n\t return (typeof FormData !== 'undefined') && (val instanceof FormData);\n\t}\n\t\n\t/**\n\t * Determine if a value is a view on an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBufferView(val) {\n\t var result;\n\t if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n\t result = ArrayBuffer.isView(val);\n\t } else {\n\t result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Determine if a value is a String\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a String, otherwise false\n\t */\n\tfunction isString(val) {\n\t return typeof val === 'string';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Number\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Number, otherwise false\n\t */\n\tfunction isNumber(val) {\n\t return typeof val === 'number';\n\t}\n\t\n\t/**\n\t * Determine if a value is an Object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Object, otherwise false\n\t */\n\tfunction isObject(val) {\n\t return val !== null && typeof val === 'object';\n\t}\n\t\n\t/**\n\t * Determine if a value is a plain Object\n\t *\n\t * @param {Object} val The value to test\n\t * @return {boolean} True if value is a plain Object, otherwise false\n\t */\n\tfunction isPlainObject(val) {\n\t if (toString.call(val) !== '[object Object]') {\n\t return false;\n\t }\n\t\n\t var prototype = Object.getPrototypeOf(val);\n\t return prototype === null || prototype === Object.prototype;\n\t}\n\t\n\t/**\n\t * Determine if a value is a Date\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Date, otherwise false\n\t */\n\tfunction isDate(val) {\n\t return toString.call(val) === '[object Date]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a File\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a File, otherwise false\n\t */\n\tfunction isFile(val) {\n\t return toString.call(val) === '[object File]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Blob\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Blob, otherwise false\n\t */\n\tfunction isBlob(val) {\n\t return toString.call(val) === '[object Blob]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Function\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Function, otherwise false\n\t */\n\tfunction isFunction(val) {\n\t return toString.call(val) === '[object Function]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Stream\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Stream, otherwise false\n\t */\n\tfunction isStream(val) {\n\t return isObject(val) && isFunction(val.pipe);\n\t}\n\t\n\t/**\n\t * Determine if a value is a URLSearchParams object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n\t */\n\tfunction isURLSearchParams(val) {\n\t return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n\t}\n\t\n\t/**\n\t * Trim excess whitespace off the beginning and end of a string\n\t *\n\t * @param {String} str The String to trim\n\t * @returns {String} The String freed of excess whitespace\n\t */\n\tfunction trim(str) {\n\t return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n\t}\n\t\n\t/**\n\t * Determine if we're running in a standard browser environment\n\t *\n\t * This allows axios to run in a web worker, and react-native.\n\t * Both environments support XMLHttpRequest, but not fully standard globals.\n\t *\n\t * web workers:\n\t * typeof window -> undefined\n\t * typeof document -> undefined\n\t *\n\t * react-native:\n\t * navigator.product -> 'ReactNative'\n\t * nativescript\n\t * navigator.product -> 'NativeScript' or 'NS'\n\t */\n\tfunction isStandardBrowserEnv() {\n\t if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n\t navigator.product === 'NativeScript' ||\n\t navigator.product === 'NS')) {\n\t return false;\n\t }\n\t return (\n\t typeof window !== 'undefined' &&\n\t typeof document !== 'undefined'\n\t );\n\t}\n\t\n\t/**\n\t * Iterate over an Array or an Object invoking a function for each item.\n\t *\n\t * If `obj` is an Array callback will be called passing\n\t * the value, index, and complete array for each item.\n\t *\n\t * If 'obj' is an Object callback will be called passing\n\t * the value, key, and complete object for each property.\n\t *\n\t * @param {Object|Array} obj The object to iterate\n\t * @param {Function} fn The callback to invoke for each item\n\t */\n\tfunction forEach(obj, fn) {\n\t // Don't bother if no value provided\n\t if (obj === null || typeof obj === 'undefined') {\n\t return;\n\t }\n\t\n\t // Force an array if not already something iterable\n\t if (typeof obj !== 'object') {\n\t /*eslint no-param-reassign:0*/\n\t obj = [obj];\n\t }\n\t\n\t if (isArray(obj)) {\n\t // Iterate over array values\n\t for (var i = 0, l = obj.length; i < l; i++) {\n\t fn.call(null, obj[i], i, obj);\n\t }\n\t } else {\n\t // Iterate over object keys\n\t for (var key in obj) {\n\t if (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t fn.call(null, obj[key], key, obj);\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Accepts varargs expecting each argument to be an object, then\n\t * immutably merges the properties of each object and returns result.\n\t *\n\t * When multiple objects contain the same key the later object in\n\t * the arguments list will take precedence.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * var result = merge({foo: 123}, {foo: 456});\n\t * console.log(result.foo); // outputs 456\n\t * ```\n\t *\n\t * @param {Object} obj1 Object to merge\n\t * @returns {Object} Result of all merge properties\n\t */\n\tfunction merge(/* obj1, obj2, obj3, ... */) {\n\t var result = {};\n\t function assignValue(val, key) {\n\t if (isPlainObject(result[key]) && isPlainObject(val)) {\n\t result[key] = merge(result[key], val);\n\t } else if (isPlainObject(val)) {\n\t result[key] = merge({}, val);\n\t } else if (isArray(val)) {\n\t result[key] = val.slice();\n\t } else {\n\t result[key] = val;\n\t }\n\t }\n\t\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t forEach(arguments[i], assignValue);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Extends object a by mutably adding to it the properties of object b.\n\t *\n\t * @param {Object} a The object to be extended\n\t * @param {Object} b The object to copy properties from\n\t * @param {Object} thisArg The object to bind function to\n\t * @return {Object} The resulting value of object a\n\t */\n\tfunction extend(a, b, thisArg) {\n\t forEach(b, function assignValue(val, key) {\n\t if (thisArg && typeof val === 'function') {\n\t a[key] = bind(val, thisArg);\n\t } else {\n\t a[key] = val;\n\t }\n\t });\n\t return a;\n\t}\n\t\n\t/**\n\t * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n\t *\n\t * @param {string} content with BOM\n\t * @return {string} content value without BOM\n\t */\n\tfunction stripBOM(content) {\n\t if (content.charCodeAt(0) === 0xFEFF) {\n\t content = content.slice(1);\n\t }\n\t return content;\n\t}\n\t\n\tmodule.exports = {\n\t isArray: isArray,\n\t isArrayBuffer: isArrayBuffer,\n\t isBuffer: isBuffer,\n\t isFormData: isFormData,\n\t isArrayBufferView: isArrayBufferView,\n\t isString: isString,\n\t isNumber: isNumber,\n\t isObject: isObject,\n\t isPlainObject: isPlainObject,\n\t isUndefined: isUndefined,\n\t isDate: isDate,\n\t isFile: isFile,\n\t isBlob: isBlob,\n\t isFunction: isFunction,\n\t isStream: isStream,\n\t isURLSearchParams: isURLSearchParams,\n\t isStandardBrowserEnv: isStandardBrowserEnv,\n\t forEach: forEach,\n\t merge: merge,\n\t extend: extend,\n\t trim: trim,\n\t stripBOM: stripBOM\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function bind(fn, thisArg) {\n\t return function wrap() {\n\t var args = new Array(arguments.length);\n\t for (var i = 0; i < args.length; i++) {\n\t args[i] = arguments[i];\n\t }\n\t return fn.apply(thisArg, args);\n\t };\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar buildURL = __webpack_require__(5);\n\tvar InterceptorManager = __webpack_require__(6);\n\tvar dispatchRequest = __webpack_require__(7);\n\tvar mergeConfig = __webpack_require__(22);\n\t\n\t/**\n\t * Create a new instance of Axios\n\t *\n\t * @param {Object} instanceConfig The default config for the instance\n\t */\n\tfunction Axios(instanceConfig) {\n\t this.defaults = instanceConfig;\n\t this.interceptors = {\n\t request: new InterceptorManager(),\n\t response: new InterceptorManager()\n\t };\n\t}\n\t\n\t/**\n\t * Dispatch a request\n\t *\n\t * @param {Object} config The config specific for this request (merged with this.defaults)\n\t */\n\tAxios.prototype.request = function request(config) {\n\t /*eslint no-param-reassign:0*/\n\t // Allow for axios('example/url'[, config]) a la fetch API\n\t if (typeof config === 'string') {\n\t config = arguments[1] || {};\n\t config.url = arguments[0];\n\t } else {\n\t config = config || {};\n\t }\n\t\n\t config = mergeConfig(this.defaults, config);\n\t\n\t // Set config.method\n\t if (config.method) {\n\t config.method = config.method.toLowerCase();\n\t } else if (this.defaults.method) {\n\t config.method = this.defaults.method.toLowerCase();\n\t } else {\n\t config.method = 'get';\n\t }\n\t\n\t // Hook up interceptors middleware\n\t var chain = [dispatchRequest, undefined];\n\t var promise = Promise.resolve(config);\n\t\n\t this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n\t chain.unshift(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n\t chain.push(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t while (chain.length) {\n\t promise = promise.then(chain.shift(), chain.shift());\n\t }\n\t\n\t return promise;\n\t};\n\t\n\tAxios.prototype.getUri = function getUri(config) {\n\t config = mergeConfig(this.defaults, config);\n\t return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n\t};\n\t\n\t// Provide aliases for supported request methods\n\tutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, config) {\n\t return this.request(mergeConfig(config || {}, {\n\t method: method,\n\t url: url,\n\t data: (config || {}).data\n\t }));\n\t };\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, data, config) {\n\t return this.request(mergeConfig(config || {}, {\n\t method: method,\n\t url: url,\n\t data: data\n\t }));\n\t };\n\t});\n\t\n\tmodule.exports = Axios;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction encode(val) {\n\t return encodeURIComponent(val).\n\t replace(/%3A/gi, ':').\n\t replace(/%24/g, '$').\n\t replace(/%2C/gi, ',').\n\t replace(/%20/g, '+').\n\t replace(/%5B/gi, '[').\n\t replace(/%5D/gi, ']');\n\t}\n\t\n\t/**\n\t * Build a URL by appending params to the end\n\t *\n\t * @param {string} url The base of the url (e.g., http://www.google.com)\n\t * @param {object} [params] The params to be appended\n\t * @returns {string} The formatted url\n\t */\n\tmodule.exports = function buildURL(url, params, paramsSerializer) {\n\t /*eslint no-param-reassign:0*/\n\t if (!params) {\n\t return url;\n\t }\n\t\n\t var serializedParams;\n\t if (paramsSerializer) {\n\t serializedParams = paramsSerializer(params);\n\t } else if (utils.isURLSearchParams(params)) {\n\t serializedParams = params.toString();\n\t } else {\n\t var parts = [];\n\t\n\t utils.forEach(params, function serialize(val, key) {\n\t if (val === null || typeof val === 'undefined') {\n\t return;\n\t }\n\t\n\t if (utils.isArray(val)) {\n\t key = key + '[]';\n\t } else {\n\t val = [val];\n\t }\n\t\n\t utils.forEach(val, function parseValue(v) {\n\t if (utils.isDate(v)) {\n\t v = v.toISOString();\n\t } else if (utils.isObject(v)) {\n\t v = JSON.stringify(v);\n\t }\n\t parts.push(encode(key) + '=' + encode(v));\n\t });\n\t });\n\t\n\t serializedParams = parts.join('&');\n\t }\n\t\n\t if (serializedParams) {\n\t var hashmarkIndex = url.indexOf('#');\n\t if (hashmarkIndex !== -1) {\n\t url = url.slice(0, hashmarkIndex);\n\t }\n\t\n\t url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n\t }\n\t\n\t return url;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction InterceptorManager() {\n\t this.handlers = [];\n\t}\n\t\n\t/**\n\t * Add a new interceptor to the stack\n\t *\n\t * @param {Function} fulfilled The function to handle `then` for a `Promise`\n\t * @param {Function} rejected The function to handle `reject` for a `Promise`\n\t *\n\t * @return {Number} An ID used to remove interceptor later\n\t */\n\tInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n\t this.handlers.push({\n\t fulfilled: fulfilled,\n\t rejected: rejected\n\t });\n\t return this.handlers.length - 1;\n\t};\n\t\n\t/**\n\t * Remove an interceptor from the stack\n\t *\n\t * @param {Number} id The ID that was returned by `use`\n\t */\n\tInterceptorManager.prototype.eject = function eject(id) {\n\t if (this.handlers[id]) {\n\t this.handlers[id] = null;\n\t }\n\t};\n\t\n\t/**\n\t * Iterate over all the registered interceptors\n\t *\n\t * This method is particularly useful for skipping over any\n\t * interceptors that may have become `null` calling `eject`.\n\t *\n\t * @param {Function} fn The function to call for each interceptor\n\t */\n\tInterceptorManager.prototype.forEach = function forEach(fn) {\n\t utils.forEach(this.handlers, function forEachHandler(h) {\n\t if (h !== null) {\n\t fn(h);\n\t }\n\t });\n\t};\n\t\n\tmodule.exports = InterceptorManager;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar transformData = __webpack_require__(8);\n\tvar isCancel = __webpack_require__(9);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tfunction throwIfCancellationRequested(config) {\n\t if (config.cancelToken) {\n\t config.cancelToken.throwIfRequested();\n\t }\n\t}\n\t\n\t/**\n\t * Dispatch a request to the server using the configured adapter.\n\t *\n\t * @param {object} config The config that is to be used for the request\n\t * @returns {Promise} The Promise to be fulfilled\n\t */\n\tmodule.exports = function dispatchRequest(config) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Ensure headers exist\n\t config.headers = config.headers || {};\n\t\n\t // Transform request data\n\t config.data = transformData(\n\t config.data,\n\t config.headers,\n\t config.transformRequest\n\t );\n\t\n\t // Flatten headers\n\t config.headers = utils.merge(\n\t config.headers.common || {},\n\t config.headers[config.method] || {},\n\t config.headers\n\t );\n\t\n\t utils.forEach(\n\t ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n\t function cleanHeaderConfig(method) {\n\t delete config.headers[method];\n\t }\n\t );\n\t\n\t var adapter = config.adapter || defaults.adapter;\n\t\n\t return adapter(config).then(function onAdapterResolution(response) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t response.data = transformData(\n\t response.data,\n\t response.headers,\n\t config.transformResponse\n\t );\n\t\n\t return response;\n\t }, function onAdapterRejection(reason) {\n\t if (!isCancel(reason)) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t if (reason && reason.response) {\n\t reason.response.data = transformData(\n\t reason.response.data,\n\t reason.response.headers,\n\t config.transformResponse\n\t );\n\t }\n\t }\n\t\n\t return Promise.reject(reason);\n\t });\n\t};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Transform the data for a request or a response\n\t *\n\t * @param {Object|String} data The data to be transformed\n\t * @param {Array} headers The headers for the request or response\n\t * @param {Array|Function} fns A single function or Array of functions\n\t * @returns {*} The resulting transformed data\n\t */\n\tmodule.exports = function transformData(data, headers, fns) {\n\t /*eslint no-param-reassign:0*/\n\t utils.forEach(fns, function transform(fn) {\n\t data = fn(data, headers);\n\t });\n\t\n\t return data;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function isCancel(value) {\n\t return !!(value && value.__CANCEL__);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar normalizeHeaderName = __webpack_require__(11);\n\t\n\tvar DEFAULT_CONTENT_TYPE = {\n\t 'Content-Type': 'application/x-www-form-urlencoded'\n\t};\n\t\n\tfunction setContentTypeIfUnset(headers, value) {\n\t if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n\t headers['Content-Type'] = value;\n\t }\n\t}\n\t\n\tfunction getDefaultAdapter() {\n\t var adapter;\n\t if (typeof XMLHttpRequest !== 'undefined') {\n\t // For browsers use XHR adapter\n\t adapter = __webpack_require__(12);\n\t } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n\t // For node use HTTP adapter\n\t adapter = __webpack_require__(12);\n\t }\n\t return adapter;\n\t}\n\t\n\tvar defaults = {\n\t adapter: getDefaultAdapter(),\n\t\n\t transformRequest: [function transformRequest(data, headers) {\n\t normalizeHeaderName(headers, 'Accept');\n\t normalizeHeaderName(headers, 'Content-Type');\n\t if (utils.isFormData(data) ||\n\t utils.isArrayBuffer(data) ||\n\t utils.isBuffer(data) ||\n\t utils.isStream(data) ||\n\t utils.isFile(data) ||\n\t utils.isBlob(data)\n\t ) {\n\t return data;\n\t }\n\t if (utils.isArrayBufferView(data)) {\n\t return data.buffer;\n\t }\n\t if (utils.isURLSearchParams(data)) {\n\t setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n\t return data.toString();\n\t }\n\t if (utils.isObject(data)) {\n\t setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n\t return JSON.stringify(data);\n\t }\n\t return data;\n\t }],\n\t\n\t transformResponse: [function transformResponse(data) {\n\t /*eslint no-param-reassign:0*/\n\t if (typeof data === 'string') {\n\t try {\n\t data = JSON.parse(data);\n\t } catch (e) { /* Ignore */ }\n\t }\n\t return data;\n\t }],\n\t\n\t /**\n\t * A timeout in milliseconds to abort a request. If set to 0 (default) a\n\t * timeout is not created.\n\t */\n\t timeout: 0,\n\t\n\t xsrfCookieName: 'XSRF-TOKEN',\n\t xsrfHeaderName: 'X-XSRF-TOKEN',\n\t\n\t maxContentLength: -1,\n\t maxBodyLength: -1,\n\t\n\t validateStatus: function validateStatus(status) {\n\t return status >= 200 && status < 300;\n\t }\n\t};\n\t\n\tdefaults.headers = {\n\t common: {\n\t 'Accept': 'application/json, text/plain, */*'\n\t }\n\t};\n\t\n\tutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n\t defaults.headers[method] = {};\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n\t});\n\t\n\tmodule.exports = defaults;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n\t utils.forEach(headers, function processHeader(value, name) {\n\t if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n\t headers[normalizedName] = value;\n\t delete headers[name];\n\t }\n\t });\n\t};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar settle = __webpack_require__(13);\n\tvar cookies = __webpack_require__(16);\n\tvar buildURL = __webpack_require__(5);\n\tvar buildFullPath = __webpack_require__(17);\n\tvar parseHeaders = __webpack_require__(20);\n\tvar isURLSameOrigin = __webpack_require__(21);\n\tvar createError = __webpack_require__(14);\n\t\n\tmodule.exports = function xhrAdapter(config) {\n\t return new Promise(function dispatchXhrRequest(resolve, reject) {\n\t var requestData = config.data;\n\t var requestHeaders = config.headers;\n\t\n\t if (utils.isFormData(requestData)) {\n\t delete requestHeaders['Content-Type']; // Let the browser set it\n\t }\n\t\n\t var request = new XMLHttpRequest();\n\t\n\t // HTTP basic authentication\n\t if (config.auth) {\n\t var username = config.auth.username || '';\n\t var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n\t requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n\t }\n\t\n\t var fullPath = buildFullPath(config.baseURL, config.url);\n\t request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\t\n\t // Set the request timeout in MS\n\t request.timeout = config.timeout;\n\t\n\t // Listen for ready state\n\t request.onreadystatechange = function handleLoad() {\n\t if (!request || request.readyState !== 4) {\n\t return;\n\t }\n\t\n\t // The request errored out and we didn't get a response, this will be\n\t // handled by onerror instead\n\t // With one exception: request that using file: protocol, most browsers\n\t // will return status as 0 even though it's a successful request\n\t if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n\t return;\n\t }\n\t\n\t // Prepare the response\n\t var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n\t var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n\t var response = {\n\t data: responseData,\n\t status: request.status,\n\t statusText: request.statusText,\n\t headers: responseHeaders,\n\t config: config,\n\t request: request\n\t };\n\t\n\t settle(resolve, reject, response);\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle browser request cancellation (as opposed to a manual cancellation)\n\t request.onabort = function handleAbort() {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle low level network errors\n\t request.onerror = function handleError() {\n\t // Real errors are hidden from us by the browser\n\t // onerror should only fire if it's a network error\n\t reject(createError('Network Error', config, null, request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle timeout\n\t request.ontimeout = function handleTimeout() {\n\t var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\t if (config.timeoutErrorMessage) {\n\t timeoutErrorMessage = config.timeoutErrorMessage;\n\t }\n\t reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n\t request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Add xsrf header\n\t // This is only done if running in a standard browser environment.\n\t // Specifically not if we're in a web worker, or react-native.\n\t if (utils.isStandardBrowserEnv()) {\n\t // Add xsrf header\n\t var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n\t cookies.read(config.xsrfCookieName) :\n\t undefined;\n\t\n\t if (xsrfValue) {\n\t requestHeaders[config.xsrfHeaderName] = xsrfValue;\n\t }\n\t }\n\t\n\t // Add headers to the request\n\t if ('setRequestHeader' in request) {\n\t utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n\t if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n\t // Remove Content-Type if data is undefined\n\t delete requestHeaders[key];\n\t } else {\n\t // Otherwise add header to the request\n\t request.setRequestHeader(key, val);\n\t }\n\t });\n\t }\n\t\n\t // Add withCredentials to request if needed\n\t if (!utils.isUndefined(config.withCredentials)) {\n\t request.withCredentials = !!config.withCredentials;\n\t }\n\t\n\t // Add responseType to request if needed\n\t if (config.responseType) {\n\t try {\n\t request.responseType = config.responseType;\n\t } catch (e) {\n\t // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n\t // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n\t if (config.responseType !== 'json') {\n\t throw e;\n\t }\n\t }\n\t }\n\t\n\t // Handle progress if needed\n\t if (typeof config.onDownloadProgress === 'function') {\n\t request.addEventListener('progress', config.onDownloadProgress);\n\t }\n\t\n\t // Not all browsers support upload events\n\t if (typeof config.onUploadProgress === 'function' && request.upload) {\n\t request.upload.addEventListener('progress', config.onUploadProgress);\n\t }\n\t\n\t if (config.cancelToken) {\n\t // Handle cancellation\n\t config.cancelToken.promise.then(function onCanceled(cancel) {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t request.abort();\n\t reject(cancel);\n\t // Clean up request\n\t request = null;\n\t });\n\t }\n\t\n\t if (!requestData) {\n\t requestData = null;\n\t }\n\t\n\t // Send the request\n\t request.send(requestData);\n\t });\n\t};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar createError = __webpack_require__(14);\n\t\n\t/**\n\t * Resolve or reject a Promise based on response status.\n\t *\n\t * @param {Function} resolve A function that resolves the promise.\n\t * @param {Function} reject A function that rejects the promise.\n\t * @param {object} response The response.\n\t */\n\tmodule.exports = function settle(resolve, reject, response) {\n\t var validateStatus = response.config.validateStatus;\n\t if (!response.status || !validateStatus || validateStatus(response.status)) {\n\t resolve(response);\n\t } else {\n\t reject(createError(\n\t 'Request failed with status code ' + response.status,\n\t response.config,\n\t null,\n\t response.request,\n\t response\n\t ));\n\t }\n\t};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar enhanceError = __webpack_require__(15);\n\t\n\t/**\n\t * Create an Error with the specified message, config, error code, request and response.\n\t *\n\t * @param {string} message The error message.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The created error.\n\t */\n\tmodule.exports = function createError(message, config, code, request, response) {\n\t var error = new Error(message);\n\t return enhanceError(error, config, code, request, response);\n\t};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Update an Error with the specified config, error code, and response.\n\t *\n\t * @param {Error} error The error to update.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The error.\n\t */\n\tmodule.exports = function enhanceError(error, config, code, request, response) {\n\t error.config = config;\n\t if (code) {\n\t error.code = code;\n\t }\n\t\n\t error.request = request;\n\t error.response = response;\n\t error.isAxiosError = true;\n\t\n\t error.toJSON = function toJSON() {\n\t return {\n\t // Standard\n\t message: this.message,\n\t name: this.name,\n\t // Microsoft\n\t description: this.description,\n\t number: this.number,\n\t // Mozilla\n\t fileName: this.fileName,\n\t lineNumber: this.lineNumber,\n\t columnNumber: this.columnNumber,\n\t stack: this.stack,\n\t // Axios\n\t config: this.config,\n\t code: this.code\n\t };\n\t };\n\t return error;\n\t};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs support document.cookie\n\t (function standardBrowserEnv() {\n\t return {\n\t write: function write(name, value, expires, path, domain, secure) {\n\t var cookie = [];\n\t cookie.push(name + '=' + encodeURIComponent(value));\n\t\n\t if (utils.isNumber(expires)) {\n\t cookie.push('expires=' + new Date(expires).toGMTString());\n\t }\n\t\n\t if (utils.isString(path)) {\n\t cookie.push('path=' + path);\n\t }\n\t\n\t if (utils.isString(domain)) {\n\t cookie.push('domain=' + domain);\n\t }\n\t\n\t if (secure === true) {\n\t cookie.push('secure');\n\t }\n\t\n\t document.cookie = cookie.join('; ');\n\t },\n\t\n\t read: function read(name) {\n\t var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n\t return (match ? decodeURIComponent(match[3]) : null);\n\t },\n\t\n\t remove: function remove(name) {\n\t this.write(name, '', Date.now() - 86400000);\n\t }\n\t };\n\t })() :\n\t\n\t // Non standard browser env (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return {\n\t write: function write() {},\n\t read: function read() { return null; },\n\t remove: function remove() {}\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar isAbsoluteURL = __webpack_require__(18);\n\tvar combineURLs = __webpack_require__(19);\n\t\n\t/**\n\t * Creates a new URL by combining the baseURL with the requestedURL,\n\t * only when the requestedURL is not already an absolute URL.\n\t * If the requestURL is absolute, this function returns the requestedURL untouched.\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} requestedURL Absolute or relative URL to combine\n\t * @returns {string} The combined full path\n\t */\n\tmodule.exports = function buildFullPath(baseURL, requestedURL) {\n\t if (baseURL && !isAbsoluteURL(requestedURL)) {\n\t return combineURLs(baseURL, requestedURL);\n\t }\n\t return requestedURL;\n\t};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Determines whether the specified URL is absolute\n\t *\n\t * @param {string} url The URL to test\n\t * @returns {boolean} True if the specified URL is absolute, otherwise false\n\t */\n\tmodule.exports = function isAbsoluteURL(url) {\n\t // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n\t // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n\t // by any combination of letters, digits, plus, period, or hyphen.\n\t return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n\t};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Creates a new URL by combining the specified URLs\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} relativeURL The relative URL\n\t * @returns {string} The combined URL\n\t */\n\tmodule.exports = function combineURLs(baseURL, relativeURL) {\n\t return relativeURL\n\t ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n\t : baseURL;\n\t};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t// Headers whose duplicates are ignored by node\n\t// c.f. https://nodejs.org/api/http.html#http_message_headers\n\tvar ignoreDuplicateOf = [\n\t 'age', 'authorization', 'content-length', 'content-type', 'etag',\n\t 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n\t 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n\t 'referer', 'retry-after', 'user-agent'\n\t];\n\t\n\t/**\n\t * Parse headers into an object\n\t *\n\t * ```\n\t * Date: Wed, 27 Aug 2014 08:58:49 GMT\n\t * Content-Type: application/json\n\t * Connection: keep-alive\n\t * Transfer-Encoding: chunked\n\t * ```\n\t *\n\t * @param {String} headers Headers needing to be parsed\n\t * @returns {Object} Headers parsed into an object\n\t */\n\tmodule.exports = function parseHeaders(headers) {\n\t var parsed = {};\n\t var key;\n\t var val;\n\t var i;\n\t\n\t if (!headers) { return parsed; }\n\t\n\t utils.forEach(headers.split('\\n'), function parser(line) {\n\t i = line.indexOf(':');\n\t key = utils.trim(line.substr(0, i)).toLowerCase();\n\t val = utils.trim(line.substr(i + 1));\n\t\n\t if (key) {\n\t if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n\t return;\n\t }\n\t if (key === 'set-cookie') {\n\t parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n\t } else {\n\t parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n\t }\n\t }\n\t });\n\t\n\t return parsed;\n\t};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs have full support of the APIs needed to test\n\t // whether the request URL is of the same origin as current location.\n\t (function standardBrowserEnv() {\n\t var msie = /(msie|trident)/i.test(navigator.userAgent);\n\t var urlParsingNode = document.createElement('a');\n\t var originURL;\n\t\n\t /**\n\t * Parse a URL to discover it's components\n\t *\n\t * @param {String} url The URL to be parsed\n\t * @returns {Object}\n\t */\n\t function resolveURL(url) {\n\t var href = url;\n\t\n\t if (msie) {\n\t // IE needs attribute set twice to normalize properties\n\t urlParsingNode.setAttribute('href', href);\n\t href = urlParsingNode.href;\n\t }\n\t\n\t urlParsingNode.setAttribute('href', href);\n\t\n\t // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\t return {\n\t href: urlParsingNode.href,\n\t protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n\t host: urlParsingNode.host,\n\t search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n\t hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n\t hostname: urlParsingNode.hostname,\n\t port: urlParsingNode.port,\n\t pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n\t urlParsingNode.pathname :\n\t '/' + urlParsingNode.pathname\n\t };\n\t }\n\t\n\t originURL = resolveURL(window.location.href);\n\t\n\t /**\n\t * Determine if a URL shares the same origin as the current location\n\t *\n\t * @param {String} requestURL The URL to test\n\t * @returns {boolean} True if URL shares the same origin, otherwise false\n\t */\n\t return function isURLSameOrigin(requestURL) {\n\t var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n\t return (parsed.protocol === originURL.protocol &&\n\t parsed.host === originURL.host);\n\t };\n\t })() :\n\t\n\t // Non standard browser envs (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return function isURLSameOrigin() {\n\t return true;\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Config-specific merge-function which creates a new config-object\n\t * by merging two configuration objects together.\n\t *\n\t * @param {Object} config1\n\t * @param {Object} config2\n\t * @returns {Object} New object resulting from merging config2 to config1\n\t */\n\tmodule.exports = function mergeConfig(config1, config2) {\n\t // eslint-disable-next-line no-param-reassign\n\t config2 = config2 || {};\n\t var config = {};\n\t\n\t var valueFromConfig2Keys = ['url', 'method', 'data'];\n\t var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n\t var defaultToConfig2Keys = [\n\t 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n\t 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n\t 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n\t 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n\t 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n\t ];\n\t var directMergeKeys = ['validateStatus'];\n\t\n\t function getMergedValue(target, source) {\n\t if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n\t return utils.merge(target, source);\n\t } else if (utils.isPlainObject(source)) {\n\t return utils.merge({}, source);\n\t } else if (utils.isArray(source)) {\n\t return source.slice();\n\t }\n\t return source;\n\t }\n\t\n\t function mergeDeepProperties(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(config1[prop], config2[prop]);\n\t } else if (!utils.isUndefined(config1[prop])) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t }\n\t\n\t utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(undefined, config2[prop]);\n\t }\n\t });\n\t\n\t utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\t\n\t utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(undefined, config2[prop]);\n\t } else if (!utils.isUndefined(config1[prop])) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t });\n\t\n\t utils.forEach(directMergeKeys, function merge(prop) {\n\t if (prop in config2) {\n\t config[prop] = getMergedValue(config1[prop], config2[prop]);\n\t } else if (prop in config1) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t });\n\t\n\t var axiosKeys = valueFromConfig2Keys\n\t .concat(mergeDeepPropertiesKeys)\n\t .concat(defaultToConfig2Keys)\n\t .concat(directMergeKeys);\n\t\n\t var otherKeys = Object\n\t .keys(config1)\n\t .concat(Object.keys(config2))\n\t .filter(function filterAxiosKeys(key) {\n\t return axiosKeys.indexOf(key) === -1;\n\t });\n\t\n\t utils.forEach(otherKeys, mergeDeepProperties);\n\t\n\t return config;\n\t};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * A `Cancel` is an object that is thrown when an operation is canceled.\n\t *\n\t * @class\n\t * @param {string=} message The message.\n\t */\n\tfunction Cancel(message) {\n\t this.message = message;\n\t}\n\t\n\tCancel.prototype.toString = function toString() {\n\t return 'Cancel' + (this.message ? ': ' + this.message : '');\n\t};\n\t\n\tCancel.prototype.__CANCEL__ = true;\n\t\n\tmodule.exports = Cancel;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Cancel = __webpack_require__(23);\n\t\n\t/**\n\t * A `CancelToken` is an object that can be used to request cancellation of an operation.\n\t *\n\t * @class\n\t * @param {Function} executor The executor function.\n\t */\n\tfunction CancelToken(executor) {\n\t if (typeof executor !== 'function') {\n\t throw new TypeError('executor must be a function.');\n\t }\n\t\n\t var resolvePromise;\n\t this.promise = new Promise(function promiseExecutor(resolve) {\n\t resolvePromise = resolve;\n\t });\n\t\n\t var token = this;\n\t executor(function cancel(message) {\n\t if (token.reason) {\n\t // Cancellation has already been requested\n\t return;\n\t }\n\t\n\t token.reason = new Cancel(message);\n\t resolvePromise(token.reason);\n\t });\n\t}\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n\t if (this.reason) {\n\t throw this.reason;\n\t }\n\t};\n\t\n\t/**\n\t * Returns an object that contains a new `CancelToken` and a function that, when called,\n\t * cancels the `CancelToken`.\n\t */\n\tCancelToken.source = function source() {\n\t var cancel;\n\t var token = new CancelToken(function executor(c) {\n\t cancel = c;\n\t });\n\t return {\n\t token: token,\n\t cancel: cancel\n\t };\n\t};\n\t\n\tmodule.exports = CancelToken;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Syntactic sugar for invoking a function and expanding an array for arguments.\n\t *\n\t * Common use case would be to use `Function.prototype.apply`.\n\t *\n\t * ```js\n\t * function f(x, y, z) {}\n\t * var args = [1, 2, 3];\n\t * f.apply(null, args);\n\t * ```\n\t *\n\t * With `spread` this example can be re-written.\n\t *\n\t * ```js\n\t * spread(function(x, y, z) {})([1, 2, 3]);\n\t * ```\n\t *\n\t * @param {Function} callback\n\t * @returns {Function}\n\t */\n\tmodule.exports = function spread(callback) {\n\t return function wrap(arr) {\n\t return callback.apply(null, arr);\n\t };\n\t};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Determines whether the payload is an error thrown by Axios\n\t *\n\t * @param {*} payload The value to test\n\t * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n\t */\n\tmodule.exports = function isAxiosError(payload) {\n\t return (typeof payload === 'object') && (payload.isAxiosError === true);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// axios.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 081842adca0968bb3270","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 18\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAxiosError.js\n// module id = 26\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/axios/index.d.ts b/justdanceonline-main/node_modules/axios/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..c74e93ca928d6a57766e4d266762738fc1527814 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/index.d.ts @@ -0,0 +1,161 @@ +export interface AxiosTransformer { + (data: any, headers?: any): any; +} + +export interface AxiosAdapter { + (config: AxiosRequestConfig): AxiosPromise; +} + +export interface AxiosBasicCredentials { + username: string; + password: string; +} + +export interface AxiosProxyConfig { + host: string; + port: number; + auth?: { + username: string; + password:string; + }; + protocol?: string; +} + +export type Method = + | 'get' | 'GET' + | 'delete' | 'DELETE' + | 'head' | 'HEAD' + | 'options' | 'OPTIONS' + | 'post' | 'POST' + | 'put' | 'PUT' + | 'patch' | 'PATCH' + | 'purge' | 'PURGE' + | 'link' | 'LINK' + | 'unlink' | 'UNLINK' + +export type ResponseType = + | 'arraybuffer' + | 'blob' + | 'document' + | 'json' + | 'text' + | 'stream' + +export interface AxiosRequestConfig { + url?: string; + method?: Method; + baseURL?: string; + transformRequest?: AxiosTransformer | AxiosTransformer[]; + transformResponse?: AxiosTransformer | AxiosTransformer[]; + headers?: any; + params?: any; + paramsSerializer?: (params: any) => string; + data?: any; + timeout?: number; + timeoutErrorMessage?: string; + withCredentials?: boolean; + adapter?: AxiosAdapter; + auth?: AxiosBasicCredentials; + responseType?: ResponseType; + xsrfCookieName?: string; + xsrfHeaderName?: string; + onUploadProgress?: (progressEvent: any) => void; + onDownloadProgress?: (progressEvent: any) => void; + maxContentLength?: number; + validateStatus?: ((status: number) => boolean) | null; + maxBodyLength?: number; + maxRedirects?: number; + socketPath?: string | null; + httpAgent?: any; + httpsAgent?: any; + proxy?: AxiosProxyConfig | false; + cancelToken?: CancelToken; + decompress?: boolean; +} + +export interface AxiosResponse { + data: T; + status: number; + statusText: string; + headers: any; + config: AxiosRequestConfig; + request?: any; +} + +export interface AxiosError extends Error { + config: AxiosRequestConfig; + code?: string; + request?: any; + response?: AxiosResponse; + isAxiosError: boolean; + toJSON: () => object; +} + +export interface AxiosPromise extends Promise> { +} + +export interface CancelStatic { + new (message?: string): Cancel; +} + +export interface Cancel { + message: string; +} + +export interface Canceler { + (message?: string): void; +} + +export interface CancelTokenStatic { + new (executor: (cancel: Canceler) => void): CancelToken; + source(): CancelTokenSource; +} + +export interface CancelToken { + promise: Promise; + reason?: Cancel; + throwIfRequested(): void; +} + +export interface CancelTokenSource { + token: CancelToken; + cancel: Canceler; +} + +export interface AxiosInterceptorManager { + use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: any) => any): number; + eject(id: number): void; +} + +export interface AxiosInstance { + (config: AxiosRequestConfig): AxiosPromise; + (url: string, config?: AxiosRequestConfig): AxiosPromise; + defaults: AxiosRequestConfig; + interceptors: { + request: AxiosInterceptorManager; + response: AxiosInterceptorManager; + }; + getUri(config?: AxiosRequestConfig): string; + request> (config: AxiosRequestConfig): Promise; + get>(url: string, config?: AxiosRequestConfig): Promise; + delete>(url: string, config?: AxiosRequestConfig): Promise; + head>(url: string, config?: AxiosRequestConfig): Promise; + options>(url: string, config?: AxiosRequestConfig): Promise; + post>(url: string, data?: any, config?: AxiosRequestConfig): Promise; + put>(url: string, data?: any, config?: AxiosRequestConfig): Promise; + patch>(url: string, data?: any, config?: AxiosRequestConfig): Promise; +} + +export interface AxiosStatic extends AxiosInstance { + create(config?: AxiosRequestConfig): AxiosInstance; + Cancel: CancelStatic; + CancelToken: CancelTokenStatic; + isCancel(value: any): boolean; + all(values: (T | Promise)[]): Promise; + spread(callback: (...args: T[]) => R): (array: T[]) => R; + isAxiosError(payload: any): payload is AxiosError; +} + +declare const axios: AxiosStatic; + +export default axios; diff --git a/justdanceonline-main/node_modules/axios/index.js b/justdanceonline-main/node_modules/axios/index.js new file mode 100644 index 0000000000000000000000000000000000000000..79dfd09dd5711f63442c6b0e8a534da5de68b442 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/index.js @@ -0,0 +1 @@ +module.exports = require('./lib/axios'); \ No newline at end of file diff --git a/justdanceonline-main/node_modules/axios/lib/adapters/README.md b/justdanceonline-main/node_modules/axios/lib/adapters/README.md new file mode 100644 index 0000000000000000000000000000000000000000..68f1118959527677cafe8c28547ec68d1ffd1605 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/adapters/README.md @@ -0,0 +1,37 @@ +# axios // adapters + +The modules under `adapters/` are modules that handle dispatching a request and settling a returned `Promise` once a response is received. + +## Example + +```js +var settle = require('./../core/settle'); + +module.exports = function myAdapter(config) { + // At this point: + // - config has been merged with defaults + // - request transformers have already run + // - request interceptors have already run + + // Make the request using config provided + // Upon response settle the Promise + + return new Promise(function(resolve, reject) { + + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // From here: + // - response transformers will run + // - response interceptors will run + }); +} +``` diff --git a/justdanceonline-main/node_modules/axios/lib/adapters/http.js b/justdanceonline-main/node_modules/axios/lib/adapters/http.js new file mode 100644 index 0000000000000000000000000000000000000000..f32241f77efaec56ad68854398ef59b00cccc980 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/adapters/http.js @@ -0,0 +1,303 @@ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var buildFullPath = require('../core/buildFullPath'); +var buildURL = require('./../helpers/buildURL'); +var http = require('http'); +var https = require('https'); +var httpFollow = require('follow-redirects').http; +var httpsFollow = require('follow-redirects').https; +var url = require('url'); +var zlib = require('zlib'); +var pkg = require('./../../package.json'); +var createError = require('../core/createError'); +var enhanceError = require('../core/enhanceError'); + +var isHttps = /https:?/; + +/** + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} proxy + * @param {string} location + */ +function setProxy(options, proxy, location) { + options.hostname = proxy.host; + options.host = proxy.host; + options.port = proxy.port; + options.path = location; + + // Basic proxy authorization + if (proxy.auth) { + var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + // If a proxy is used, any redirects must also pass through the proxy + options.beforeRedirect = function beforeRedirect(redirection) { + redirection.headers.host = redirection.host; + setProxy(redirection, proxy, redirection.href); + }; +} + +/*eslint consistent-return:0*/ +module.exports = function httpAdapter(config) { + return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) { + var resolve = function resolve(value) { + resolvePromise(value); + }; + var reject = function reject(value) { + rejectPromise(value); + }; + var data = config.data; + var headers = config.headers; + + // Set User-Agent (required by some servers) + // Only set header if it hasn't been set in config + // See https://github.com/axios/axios/issues/69 + if (!headers['User-Agent'] && !headers['user-agent']) { + headers['User-Agent'] = 'axios/' + pkg.version; + } + + if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) { + // Nothing to do... + } else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(createError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + config + )); + } + + // Add Content-Length header if data exists + headers['Content-Length'] = data.length; + } + + // HTTP basic authentication + var auth = undefined; + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password || ''; + auth = username + ':' + password; + } + + // Parse url + var fullPath = buildFullPath(config.baseURL, config.url); + var parsed = url.parse(fullPath); + var protocol = parsed.protocol || 'http:'; + + if (!auth && parsed.auth) { + var urlAuth = parsed.auth.split(':'); + var urlUsername = urlAuth[0] || ''; + var urlPassword = urlAuth[1] || ''; + auth = urlUsername + ':' + urlPassword; + } + + if (auth) { + delete headers.Authorization; + } + + var isHttpsRequest = isHttps.test(protocol); + var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + + var options = { + path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ''), + method: config.method.toUpperCase(), + headers: headers, + agent: agent, + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth: auth + }; + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + } + + var proxy = config.proxy; + if (!proxy && proxy !== false) { + var proxyEnv = protocol.slice(0, -1) + '_proxy'; + var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()]; + if (proxyUrl) { + var parsedProxyUrl = url.parse(proxyUrl); + var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY; + var shouldProxy = true; + + if (noProxyEnv) { + var noProxy = noProxyEnv.split(',').map(function trim(s) { + return s.trim(); + }); + + shouldProxy = !noProxy.some(function proxyMatch(proxyElement) { + if (!proxyElement) { + return false; + } + if (proxyElement === '*') { + return true; + } + if (proxyElement[0] === '.' && + parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) { + return true; + } + + return parsed.hostname === proxyElement; + }); + } + + if (shouldProxy) { + proxy = { + host: parsedProxyUrl.hostname, + port: parsedProxyUrl.port, + protocol: parsedProxyUrl.protocol + }; + + if (parsedProxyUrl.auth) { + var proxyUrlAuth = parsedProxyUrl.auth.split(':'); + proxy.auth = { + username: proxyUrlAuth[0], + password: proxyUrlAuth[1] + }; + } + } + } + } + + if (proxy) { + options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : ''); + setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + + var transport; + var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true); + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsProxy ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + transport = isHttpsProxy ? httpsFollow : httpFollow; + } + + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } + + // Create the request + var req = transport.request(options, function handleResponse(res) { + if (req.aborted) return; + + // uncompress the response body transparently if required + var stream = res; + + // return the last request in case of redirects + var lastRequest = res.req || req; + + + // if no content, is HEAD request or decompress disabled we should not decompress + if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) { + switch (res.headers['content-encoding']) { + /*eslint default-case:0*/ + case 'gzip': + case 'compress': + case 'deflate': + // add the unzipper to the body stream processing pipeline + stream = stream.pipe(zlib.createUnzip()); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + } + } + + var response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: res.headers, + config: config, + request: lastRequest + }; + + if (config.responseType === 'stream') { + response.data = stream; + settle(resolve, reject, response); + } else { + var responseBuffer = []; + stream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && Buffer.concat(responseBuffer).length > config.maxContentLength) { + stream.destroy(); + reject(createError('maxContentLength size of ' + config.maxContentLength + ' exceeded', + config, null, lastRequest)); + } + }); + + stream.on('error', function handleStreamError(err) { + if (req.aborted) return; + reject(enhanceError(err, config, null, lastRequest)); + }); + + stream.on('end', function handleStreamEnd() { + var responseData = Buffer.concat(responseBuffer); + if (config.responseType !== 'arraybuffer') { + responseData = responseData.toString(config.responseEncoding); + if (!config.responseEncoding || config.responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } + } + + response.data = responseData; + settle(resolve, reject, response); + }); + } + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return; + reject(enhanceError(err, config, null, req)); + }); + + // Handle request timeout + if (config.timeout) { + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devoring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(config.timeout, function handleRequestTimeout() { + req.abort(); + reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', req)); + }); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (req.aborted) return; + + req.abort(); + reject(cancel); + }); + } + + // Send the request + if (utils.isStream(data)) { + data.on('error', function handleStreamError(err) { + reject(enhanceError(err, config, null, req)); + }).pipe(req); + } else { + req.end(data); + } + }); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/adapters/xhr.js b/justdanceonline-main/node_modules/axios/lib/adapters/xhr.js new file mode 100644 index 0000000000000000000000000000000000000000..3027752e1a299c147b2f437ea7b20fb1a762ed79 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/adapters/xhr.js @@ -0,0 +1,179 @@ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var cookies = require('./../helpers/cookies'); +var buildURL = require('./../helpers/buildURL'); +var buildFullPath = require('../core/buildFullPath'); +var parseHeaders = require('./../helpers/parseHeaders'); +var isURLSameOrigin = require('./../helpers/isURLSameOrigin'); +var createError = require('../core/createError'); + +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (!requestData) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/axios.js b/justdanceonline-main/node_modules/axios/lib/axios.js new file mode 100644 index 0000000000000000000000000000000000000000..c6357b0055dd03406a5fa612892a7f42c1558685 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/axios.js @@ -0,0 +1,56 @@ +'use strict'; + +var utils = require('./utils'); +var bind = require('./helpers/bind'); +var Axios = require('./core/Axios'); +var mergeConfig = require('./core/mergeConfig'); +var defaults = require('./defaults'); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; +} + +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Factory for creating new instances +axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); +}; + +// Expose Cancel & CancelToken +axios.Cancel = require('./cancel/Cancel'); +axios.CancelToken = require('./cancel/CancelToken'); +axios.isCancel = require('./cancel/isCancel'); + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = require('./helpers/spread'); + +// Expose isAxiosError +axios.isAxiosError = require('./helpers/isAxiosError'); + +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; diff --git a/justdanceonline-main/node_modules/axios/lib/cancel/Cancel.js b/justdanceonline-main/node_modules/axios/lib/cancel/Cancel.js new file mode 100644 index 0000000000000000000000000000000000000000..e0de4003f9112daf150889e07507f2b962c4351a --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/cancel/Cancel.js @@ -0,0 +1,19 @@ +'use strict'; + +/** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ +function Cancel(message) { + this.message = message; +} + +Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); +}; + +Cancel.prototype.__CANCEL__ = true; + +module.exports = Cancel; diff --git a/justdanceonline-main/node_modules/axios/lib/cancel/CancelToken.js b/justdanceonline-main/node_modules/axios/lib/cancel/CancelToken.js new file mode 100644 index 0000000000000000000000000000000000000000..6b46e66625783e06dc64de49fa531e3f5a0878c5 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/cancel/CancelToken.js @@ -0,0 +1,57 @@ +'use strict'; + +var Cancel = require('./Cancel'); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); +} + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } +}; + +/** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; + +module.exports = CancelToken; diff --git a/justdanceonline-main/node_modules/axios/lib/cancel/isCancel.js b/justdanceonline-main/node_modules/axios/lib/cancel/isCancel.js new file mode 100644 index 0000000000000000000000000000000000000000..051f3ae4c5a52f545445ec89a294df05be0281a5 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/cancel/isCancel.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/core/Axios.js b/justdanceonline-main/node_modules/axios/lib/core/Axios.js new file mode 100644 index 0000000000000000000000000000000000000000..c28c413ad389cc5479033ccc8f2dc4b09cfe5f17 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/Axios.js @@ -0,0 +1,95 @@ +'use strict'; + +var utils = require('./../utils'); +var buildURL = require('../helpers/buildURL'); +var InterceptorManager = require('./InterceptorManager'); +var dispatchRequest = require('./dispatchRequest'); +var mergeConfig = require('./mergeConfig'); + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; +} + +/** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ +Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; +}; + +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: (config || {}).data + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: data + })); + }; +}); + +module.exports = Axios; diff --git a/justdanceonline-main/node_modules/axios/lib/core/InterceptorManager.js b/justdanceonline-main/node_modules/axios/lib/core/InterceptorManager.js new file mode 100644 index 0000000000000000000000000000000000000000..50d667bb44d8915c93b0b33a1425c5400f14a770 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/InterceptorManager.js @@ -0,0 +1,52 @@ +'use strict'; + +var utils = require('./../utils'); + +function InterceptorManager() { + this.handlers = []; +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; +}; + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; + +module.exports = InterceptorManager; diff --git a/justdanceonline-main/node_modules/axios/lib/core/README.md b/justdanceonline-main/node_modules/axios/lib/core/README.md new file mode 100644 index 0000000000000000000000000000000000000000..253bc4861130c87687c8fca4045b86c585ce36b7 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/README.md @@ -0,0 +1,7 @@ +# axios // core + +The modules found in `core/` should be modules that are specific to the domain logic of axios. These modules would most likely not make sense to be consumed outside of the axios module, as their logic is too specific. Some examples of core modules are: + +- Dispatching requests +- Managing interceptors +- Handling config diff --git a/justdanceonline-main/node_modules/axios/lib/core/buildFullPath.js b/justdanceonline-main/node_modules/axios/lib/core/buildFullPath.js new file mode 100644 index 0000000000000000000000000000000000000000..00b2b050a109be125f0837acf643f495981b0680 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/buildFullPath.js @@ -0,0 +1,20 @@ +'use strict'; + +var isAbsoluteURL = require('../helpers/isAbsoluteURL'); +var combineURLs = require('../helpers/combineURLs'); + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/core/createError.js b/justdanceonline-main/node_modules/axios/lib/core/createError.js new file mode 100644 index 0000000000000000000000000000000000000000..933680f694c7f5e5b0143ec439080866e1ee429d --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/createError.js @@ -0,0 +1,18 @@ +'use strict'; + +var enhanceError = require('./enhanceError'); + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ +module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/core/dispatchRequest.js b/justdanceonline-main/node_modules/axios/lib/core/dispatchRequest.js new file mode 100644 index 0000000000000000000000000000000000000000..c8267adb2a14a8e865fd907d16c8c9ae599a4b2d --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/dispatchRequest.js @@ -0,0 +1,79 @@ +'use strict'; + +var utils = require('./../utils'); +var transformData = require('./transformData'); +var isCancel = require('../cancel/isCancel'); +var defaults = require('../defaults'); + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/core/enhanceError.js b/justdanceonline-main/node_modules/axios/lib/core/enhanceError.js new file mode 100644 index 0000000000000000000000000000000000000000..b6bc4444e1b68fac75af16c6b05fe5886ec7d87e --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/enhanceError.js @@ -0,0 +1,42 @@ +'use strict'; + +/** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ +module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/core/mergeConfig.js b/justdanceonline-main/node_modules/axios/lib/core/mergeConfig.js new file mode 100644 index 0000000000000000000000000000000000000000..5a2c10cb013e6e41a627193461d6367b650537ab --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/mergeConfig.js @@ -0,0 +1,87 @@ +'use strict'; + +var utils = require('../utils'); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; + var defaultToConfig2Keys = [ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', + 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' + ]; + var directMergeKeys = ['validateStatus']; + + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + } + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } + }); + + utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + utils.forEach(directMergeKeys, function merge(prop) { + if (prop in config2) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys) + .concat(directMergeKeys); + + var otherKeys = Object + .keys(config1) + .concat(Object.keys(config2)) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, mergeDeepProperties); + + return config; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/core/settle.js b/justdanceonline-main/node_modules/axios/lib/core/settle.js new file mode 100644 index 0000000000000000000000000000000000000000..886adb0c1f99dee48cff0f63eadcb31eda38d28e --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/settle.js @@ -0,0 +1,25 @@ +'use strict'; + +var createError = require('./createError'); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } +}; diff --git a/justdanceonline-main/node_modules/axios/lib/core/transformData.js b/justdanceonline-main/node_modules/axios/lib/core/transformData.js new file mode 100644 index 0000000000000000000000000000000000000000..e0653620e66c3a28b7c7d075999b269c53863dca --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/core/transformData.js @@ -0,0 +1,20 @@ +'use strict'; + +var utils = require('./../utils'); + +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/defaults.js b/justdanceonline-main/node_modules/axios/lib/defaults.js new file mode 100644 index 0000000000000000000000000000000000000000..2b2a1a7d55e176c7fe207640c6ef96d5ab190b8e --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/defaults.js @@ -0,0 +1,98 @@ +'use strict'; + +var utils = require('./utils'); +var normalizeHeaderName = require('./helpers/normalizeHeaderName'); + +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; + +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} + +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = require('./adapters/xhr'); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = require('./adapters/http'); + } + return adapter; +} + +var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } +}; + +defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +module.exports = defaults; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/README.md b/justdanceonline-main/node_modules/axios/lib/helpers/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4ae34193a1edf855caaf3fc3a3700230934379af --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/README.md @@ -0,0 +1,7 @@ +# axios // helpers + +The modules found in `helpers/` should be generic modules that are _not_ specific to the domain logic of axios. These modules could theoretically be published to npm on their own and consumed by other modules or apps. Some examples of generic modules are things like: + +- Browser polyfills +- Managing cookies +- Parsing HTTP headers diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/bind.js b/justdanceonline-main/node_modules/axios/lib/helpers/bind.js new file mode 100644 index 0000000000000000000000000000000000000000..6147c608e1a333d03080b65212a97e07124a10f9 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/bind.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/buildURL.js b/justdanceonline-main/node_modules/axios/lib/helpers/buildURL.js new file mode 100644 index 0000000000000000000000000000000000000000..31595c33a861f70ed9fc954c1693d6b625958057 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/buildURL.js @@ -0,0 +1,70 @@ +'use strict'; + +var utils = require('./../utils'); + +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/combineURLs.js b/justdanceonline-main/node_modules/axios/lib/helpers/combineURLs.js new file mode 100644 index 0000000000000000000000000000000000000000..f1b58a586439c8412886ad98f0c7da007b792f44 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/combineURLs.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/cookies.js b/justdanceonline-main/node_modules/axios/lib/helpers/cookies.js new file mode 100644 index 0000000000000000000000000000000000000000..5a8a66661c08c8db7b3f8448fc99afe718708e02 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/cookies.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() +); diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/deprecatedMethod.js b/justdanceonline-main/node_modules/axios/lib/helpers/deprecatedMethod.js new file mode 100644 index 0000000000000000000000000000000000000000..ed40965bab6ad547ff2798e44a0721b187b02b5f --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/deprecatedMethod.js @@ -0,0 +1,24 @@ +'use strict'; + +/*eslint no-console:0*/ + +/** + * Supply a warning to the developer that a method they are using + * has been deprecated. + * + * @param {string} method The name of the deprecated method + * @param {string} [instead] The alternate method to use if applicable + * @param {string} [docs] The documentation URL to get further details + */ +module.exports = function deprecatedMethod(method, instead, docs) { + try { + console.warn( + 'DEPRECATED method `' + method + '`.' + + (instead ? ' Use `' + instead + '` instead.' : '') + + ' This method will be removed in a future release.'); + + if (docs) { + console.warn('For more information about usage see ' + docs); + } + } catch (e) { /* Ignore */ } +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/isAbsoluteURL.js b/justdanceonline-main/node_modules/axios/lib/helpers/isAbsoluteURL.js new file mode 100644 index 0000000000000000000000000000000000000000..d33e99275cb9c7f5c08eef15842d62d67f7997e5 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/isAbsoluteURL.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/isAxiosError.js b/justdanceonline-main/node_modules/axios/lib/helpers/isAxiosError.js new file mode 100644 index 0000000000000000000000000000000000000000..29ff41af8b5e10f64bb9b7d28e25feaa2d1d077a --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/isAxiosError.js @@ -0,0 +1,11 @@ +'use strict'; + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +module.exports = function isAxiosError(payload) { + return (typeof payload === 'object') && (payload.isAxiosError === true); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/isURLSameOrigin.js b/justdanceonline-main/node_modules/axios/lib/helpers/isURLSameOrigin.js new file mode 100644 index 0000000000000000000000000000000000000000..f1d89ad19d045096247aa7d74ce9a37bf2d8ca2a --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/isURLSameOrigin.js @@ -0,0 +1,68 @@ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() +); diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/normalizeHeaderName.js b/justdanceonline-main/node_modules/axios/lib/helpers/normalizeHeaderName.js new file mode 100644 index 0000000000000000000000000000000000000000..738c9fe40a28b3af6f8bbb16a1f450940ac66a8a --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/normalizeHeaderName.js @@ -0,0 +1,12 @@ +'use strict'; + +var utils = require('../utils'); + +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/parseHeaders.js b/justdanceonline-main/node_modules/axios/lib/helpers/parseHeaders.js new file mode 100644 index 0000000000000000000000000000000000000000..8af2cc7f1b6259ab31bf612e25ed1cfc299cffc8 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/parseHeaders.js @@ -0,0 +1,53 @@ +'use strict'; + +var utils = require('./../utils'); + +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]; + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/helpers/spread.js b/justdanceonline-main/node_modules/axios/lib/helpers/spread.js new file mode 100644 index 0000000000000000000000000000000000000000..25e3cdd394d16563da668e41913f7f38ca156fd0 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/helpers/spread.js @@ -0,0 +1,27 @@ +'use strict'; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; diff --git a/justdanceonline-main/node_modules/axios/lib/utils.js b/justdanceonline-main/node_modules/axios/lib/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..83eb1c628273021e47932d3dc9fdc2b7b576ab98 --- /dev/null +++ b/justdanceonline-main/node_modules/axios/lib/utils.js @@ -0,0 +1,351 @@ +'use strict'; + +var bind = require('./helpers/bind'); + +/*global toString:true*/ + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return toString.call(val) === '[object Array]'; +} + +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; +} + +/** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); +} + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} + +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; +} + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && typeof val === 'object'; +} + +/** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ +function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false; + } + + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; +} + +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +function isDate(val) { + return toString.call(val) === '[object Date]'; +} + +/** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +function isFile(val) { + return toString.call(val) === '[object File]'; +} + +/** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +function isBlob(val) { + return toString.call(val) === '[object Blob]'; +} + +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} + +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; +} + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); +} + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); +} + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } +} + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; +} + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM +}; diff --git a/justdanceonline-main/node_modules/axios/package.json b/justdanceonline-main/node_modules/axios/package.json new file mode 100644 index 0000000000000000000000000000000000000000..659ef029c7c8f0842a66a34a94a2bba74069e23a --- /dev/null +++ b/justdanceonline-main/node_modules/axios/package.json @@ -0,0 +1,86 @@ +{ + "name": "axios", + "version": "0.21.1", + "description": "Promise based HTTP client for the browser and node.js", + "main": "index.js", + "scripts": { + "test": "grunt test && bundlesize", + "start": "node ./sandbox/server.js", + "build": "NODE_ENV=production grunt build", + "preversion": "npm test", + "version": "npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json", + "postversion": "git push && git push --tags", + "examples": "node ./examples/server.js", + "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "fix": "eslint --fix lib/**/*.js" + }, + "repository": { + "type": "git", + "url": "https://github.com/axios/axios.git" + }, + "keywords": [ + "xhr", + "http", + "ajax", + "promise", + "node" + ], + "author": "Matt Zabriskie", + "license": "MIT", + "bugs": { + "url": "https://github.com/axios/axios/issues" + }, + "homepage": "https://github.com/axios/axios", + "devDependencies": { + "bundlesize": "^0.17.0", + "coveralls": "^3.0.0", + "es6-promise": "^4.2.4", + "grunt": "^1.0.2", + "grunt-banner": "^0.6.0", + "grunt-cli": "^1.2.0", + "grunt-contrib-clean": "^1.1.0", + "grunt-contrib-watch": "^1.0.0", + "grunt-eslint": "^20.1.0", + "grunt-karma": "^2.0.0", + "grunt-mocha-test": "^0.13.3", + "grunt-ts": "^6.0.0-beta.19", + "grunt-webpack": "^1.0.18", + "istanbul-instrumenter-loader": "^1.0.0", + "jasmine-core": "^2.4.1", + "karma": "^1.3.0", + "karma-chrome-launcher": "^2.2.0", + "karma-coverage": "^1.1.1", + "karma-firefox-launcher": "^1.1.0", + "karma-jasmine": "^1.1.1", + "karma-jasmine-ajax": "^0.1.13", + "karma-opera-launcher": "^1.0.0", + "karma-safari-launcher": "^1.0.0", + "karma-sauce-launcher": "^1.2.0", + "karma-sinon": "^1.0.5", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^1.7.0", + "load-grunt-tasks": "^3.5.2", + "minimist": "^1.2.0", + "mocha": "^5.2.0", + "sinon": "^4.5.0", + "typescript": "^2.8.1", + "url-search-params": "^0.10.0", + "webpack": "^1.13.1", + "webpack-dev-server": "^1.14.1" + }, + "browser": { + "./lib/adapters/http.js": "./lib/adapters/xhr.js" + }, + "jsdelivr": "dist/axios.min.js", + "unpkg": "dist/axios.min.js", + "typings": "./index.d.ts", + "dependencies": { + "follow-redirects": "^1.10.0" + }, + "bundlesize": [ + { + "path": "./dist/axios.min.js", + "threshold": "5kB" + } + ] +} diff --git a/justdanceonline-main/node_modules/balanced-match/.github/FUNDING.yml b/justdanceonline-main/node_modules/balanced-match/.github/FUNDING.yml new file mode 100644 index 0000000000000000000000000000000000000000..cea8b16e9edc40b78b839e97f7d4b174ada0b41f --- /dev/null +++ b/justdanceonline-main/node_modules/balanced-match/.github/FUNDING.yml @@ -0,0 +1,2 @@ +tidelift: "npm/balanced-match" +patreon: juliangruber diff --git a/justdanceonline-main/node_modules/balanced-match/LICENSE.md b/justdanceonline-main/node_modules/balanced-match/LICENSE.md new file mode 100644 index 0000000000000000000000000000000000000000..2cdc8e4148cc0aa1f788b25dbec4b22878644cdf --- /dev/null +++ b/justdanceonline-main/node_modules/balanced-match/LICENSE.md @@ -0,0 +1,21 @@ +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/justdanceonline-main/node_modules/balanced-match/README.md b/justdanceonline-main/node_modules/balanced-match/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d2a48b6b49f2cf17358262f911b997121d1c2a31 --- /dev/null +++ b/justdanceonline-main/node_modules/balanced-match/README.md @@ -0,0 +1,97 @@ +# balanced-match + +Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! + +[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) +[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) + +[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) + +## Example + +Get the first matching pair of braces: + +```js +var balanced = require('balanced-match'); + +console.log(balanced('{', '}', 'pre{in{nested}}post')); +console.log(balanced('{', '}', 'pre{first}between{second}post')); +console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); +``` + +The matches are: + +```bash +$ node example.js +{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } +{ start: 3, + end: 9, + pre: 'pre', + body: 'first', + post: 'between{second}post' } +{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } +``` + +## API + +### var m = balanced(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +object with those keys: + +* **start** the index of the first match of `a` +* **end** the index of the matching `b` +* **pre** the preamble, `a` and `b` not included +* **body** the match, `a` and `b` not included +* **post** the postscript, `a` and `b` not included + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. + +### var r = balanced.range(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +array with indexes: `[ , ]`. + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install balanced-match +``` + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/justdanceonline-main/node_modules/balanced-match/index.js b/justdanceonline-main/node_modules/balanced-match/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c67a64608df7f4d8e126c0a8eff2cc4a3d837e71 --- /dev/null +++ b/justdanceonline-main/node_modules/balanced-match/index.js @@ -0,0 +1,62 @@ +'use strict'; +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + if(a===b) { + return [ai, bi]; + } + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} diff --git a/justdanceonline-main/node_modules/balanced-match/package.json b/justdanceonline-main/node_modules/balanced-match/package.json new file mode 100644 index 0000000000000000000000000000000000000000..ce6073e0403b5a9aeef19a91624ad0256f5e61b8 --- /dev/null +++ b/justdanceonline-main/node_modules/balanced-match/package.json @@ -0,0 +1,48 @@ +{ + "name": "balanced-match", + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "version": "1.0.2", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "homepage": "https://github.com/juliangruber/balanced-match", + "main": "index.js", + "scripts": { + "test": "tape test/test.js", + "bench": "matcha test/bench.js" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [ + "match", + "regexp", + "test", + "balanced", + "parse" + ], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/justdanceonline-main/node_modules/base64-js/LICENSE b/justdanceonline-main/node_modules/base64-js/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..6d52b8acfbe771e96a1b862c620f00efd7d48d1e --- /dev/null +++ b/justdanceonline-main/node_modules/base64-js/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Jameson Little + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/base64-js/README.md b/justdanceonline-main/node_modules/base64-js/README.md new file mode 100644 index 0000000000000000000000000000000000000000..b42a48f41641495df5fc3bda0f2857d698aa8144 --- /dev/null +++ b/justdanceonline-main/node_modules/base64-js/README.md @@ -0,0 +1,34 @@ +base64-js +========= + +`base64-js` does basic base64 encoding/decoding in pure JS. + +[![build status](https://secure.travis-ci.org/beatgammit/base64-js.png)](http://travis-ci.org/beatgammit/base64-js) + +Many browsers already have base64 encoding/decoding functionality, but it is for text data, not all-purpose binary data. + +Sometimes encoding/decoding binary data in the browser is useful, and that is what this module does. + +## install + +With [npm](https://npmjs.org) do: + +`npm install base64-js` and `var base64js = require('base64-js')` + +For use in web browsers do: + +`` + +[Get supported base64-js with the Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-base64-js?utm_source=npm-base64-js&utm_medium=referral&utm_campaign=readme) + +## methods + +`base64js` has three exposed functions, `byteLength`, `toByteArray` and `fromByteArray`, which both take a single argument. + +* `byteLength` - Takes a base64 string and returns length of byte array +* `toByteArray` - Takes a base64 string and returns a byte array +* `fromByteArray` - Takes a byte array and returns a base64 string + +## license + +MIT diff --git a/justdanceonline-main/node_modules/base64-js/base64js.min.js b/justdanceonline-main/node_modules/base64-js/base64js.min.js new file mode 100644 index 0000000000000000000000000000000000000000..908ac83fd12400f777f5dd4c034e3535e1bbd5ae --- /dev/null +++ b/justdanceonline-main/node_modules/base64-js/base64js.min.js @@ -0,0 +1 @@ +(function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"==typeof window?"undefined"==typeof global?"undefined"==typeof self?this:self:global:window,b.base64js=a()}})(function(){return function(){function b(d,e,g){function a(j,i){if(!e[j]){if(!d[j]){var f="function"==typeof require&&require;if(!i&&f)return f(j,!0);if(h)return h(j,!0);var c=new Error("Cannot find module '"+j+"'");throw c.code="MODULE_NOT_FOUND",c}var k=e[j]={exports:{}};d[j][0].call(k.exports,function(b){var c=d[j][1][b];return a(c||b)},k,k.exports,b,d,e,g)}return e[j].exports}for(var h="function"==typeof require&&require,c=0;c>16,j[k++]=255&b>>8,j[k++]=255&b;return 2===h&&(b=l[a.charCodeAt(c)]<<2|l[a.charCodeAt(c+1)]>>4,j[k++]=255&b),1===h&&(b=l[a.charCodeAt(c)]<<10|l[a.charCodeAt(c+1)]<<4|l[a.charCodeAt(c+2)]>>2,j[k++]=255&b>>8,j[k++]=255&b),j}function g(a){return k[63&a>>18]+k[63&a>>12]+k[63&a>>6]+k[63&a]}function h(a,b,c){for(var d,e=[],f=b;fj?j:g+f));return 1===d?(b=a[c-1],e.push(k[b>>2]+k[63&b<<4]+"==")):2===d&&(b=(a[c-2]<<8)+a[c-1],e.push(k[b>>10]+k[63&b>>4]+k[63&b<<2]+"=")),e.join("")}c.byteLength=function(a){var b=d(a),c=b[0],e=b[1];return 3*(c+e)/4-e},c.toByteArray=f,c.fromByteArray=j;for(var k=[],l=[],m="undefined"==typeof Uint8Array?Array:Uint8Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,p=n.length;o 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len + + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4) + + return [validLen, placeHoldersLen] +} + +// base64 is 4/3 + up to two characters of the original data +function byteLength (b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} + +function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} + +function toByteArray (b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) + + var curByte = 0 + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen + + var i + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 0xFF + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength))) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ) + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ) + } + + return parts.join('') +} diff --git a/justdanceonline-main/node_modules/base64-js/package.json b/justdanceonline-main/node_modules/base64-js/package.json new file mode 100644 index 0000000000000000000000000000000000000000..c3972e39f2be5d735a25578c1f9adcc3b26e8068 --- /dev/null +++ b/justdanceonline-main/node_modules/base64-js/package.json @@ -0,0 +1,47 @@ +{ + "name": "base64-js", + "description": "Base64 encoding/decoding in pure JS", + "version": "1.5.1", + "author": "T. Jameson Little ", + "typings": "index.d.ts", + "bugs": { + "url": "https://github.com/beatgammit/base64-js/issues" + }, + "devDependencies": { + "babel-minify": "^0.5.1", + "benchmark": "^2.1.4", + "browserify": "^16.3.0", + "standard": "*", + "tape": "4.x" + }, + "homepage": "https://github.com/beatgammit/base64-js", + "keywords": [ + "base64" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/beatgammit/base64-js.git" + }, + "scripts": { + "build": "browserify -s base64js -r ./ | minify > base64js.min.js", + "lint": "standard", + "test": "npm run lint && npm run unit", + "unit": "tape test/*.js" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] +} diff --git a/justdanceonline-main/node_modules/bl/.jshintrc b/justdanceonline-main/node_modules/bl/.jshintrc new file mode 100644 index 0000000000000000000000000000000000000000..be119b292bf04ac49975469e24df5fdafb85cc47 --- /dev/null +++ b/justdanceonline-main/node_modules/bl/.jshintrc @@ -0,0 +1,60 @@ +{ + "predef": [ ] + , "bitwise": false + , "camelcase": false + , "curly": false + , "eqeqeq": false + , "forin": false + , "immed": false + , "latedef": false + , "noarg": true + , "noempty": true + , "nonew": true + , "plusplus": false + , "quotmark": true + , "regexp": false + , "undef": true + , "unused": true + , "strict": false + , "trailing": true + , "maxlen": 120 + , "asi": true + , "boss": true + , "debug": true + , "eqnull": true + , "esnext": false + , "evil": true + , "expr": true + , "funcscope": false + , "globalstrict": false + , "iterator": false + , "lastsemic": true + , "laxbreak": true + , "laxcomma": true + , "loopfunc": true + , "multistr": false + , "onecase": false + , "proto": false + , "regexdash": false + , "scripturl": true + , "smarttabs": false + , "shadow": false + , "sub": true + , "supernew": false + , "validthis": true + , "browser": true + , "couch": false + , "devel": false + , "dojo": false + , "mootools": false + , "node": true + , "nonstandard": true + , "prototypejs": false + , "rhino": false + , "worker": true + , "wsh": false + , "nomen": false + , "onevar": false + , "passfail": false + , "esversion": 3 +} \ No newline at end of file diff --git a/justdanceonline-main/node_modules/bl/.travis.yml b/justdanceonline-main/node_modules/bl/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..1044a0925bb0a72941e034eaad09bd5053d2f956 --- /dev/null +++ b/justdanceonline-main/node_modules/bl/.travis.yml @@ -0,0 +1,15 @@ +sudo: false +language: node_js +node_js: + - '4' + - '6' + - '8' + - '9' + - '10' +branches: + only: + - master +notifications: + email: + - rod@vagg.org + - matteo.collina@gmail.com diff --git a/justdanceonline-main/node_modules/bl/LICENSE.md b/justdanceonline-main/node_modules/bl/LICENSE.md new file mode 100644 index 0000000000000000000000000000000000000000..dea757d4547858e8991998dc2e0ff6186bbdd15a --- /dev/null +++ b/justdanceonline-main/node_modules/bl/LICENSE.md @@ -0,0 +1,13 @@ +The MIT License (MIT) +===================== + +Copyright (c) 2013-2018 bl contributors +---------------------------------- + +*bl contributors listed at * + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/bl/README.md b/justdanceonline-main/node_modules/bl/README.md new file mode 100644 index 0000000000000000000000000000000000000000..79dca35373d77a92b458090499743b19c40217a2 --- /dev/null +++ b/justdanceonline-main/node_modules/bl/README.md @@ -0,0 +1,218 @@ +# bl *(BufferList)* + +[![Build Status](https://travis-ci.org/rvagg/bl.svg?branch=master)](https://travis-ci.org/rvagg/bl) + +**A Node.js Buffer list collector, reader and streamer thingy.** + +[![NPM](https://nodei.co/npm/bl.png?downloads=true&downloadRank=true)](https://nodei.co/npm/bl/) +[![NPM](https://nodei.co/npm-dl/bl.png?months=6&height=3)](https://nodei.co/npm/bl/) + +**bl** is a storage object for collections of Node Buffers, exposing them with the main Buffer readable API. Also works as a duplex stream so you can collect buffers from a stream that emits them and emit buffers to a stream that consumes them! + +The original buffers are kept intact and copies are only done as necessary. Any reads that require the use of a single original buffer will return a slice of that buffer only (which references the same memory as the original buffer). Reads that span buffers perform concatenation as required and return the results transparently. + +```js +const BufferList = require('bl') + +var bl = new BufferList() +bl.append(Buffer.from('abcd')) +bl.append(Buffer.from('efg')) +bl.append('hi') // bl will also accept & convert Strings +bl.append(Buffer.from('j')) +bl.append(Buffer.from([ 0x3, 0x4 ])) + +console.log(bl.length) // 12 + +console.log(bl.slice(0, 10).toString('ascii')) // 'abcdefghij' +console.log(bl.slice(3, 10).toString('ascii')) // 'defghij' +console.log(bl.slice(3, 6).toString('ascii')) // 'def' +console.log(bl.slice(3, 8).toString('ascii')) // 'defgh' +console.log(bl.slice(5, 10).toString('ascii')) // 'fghij' + +console.log(bl.indexOf('def')) // 3 +console.log(bl.indexOf('asdf')) // -1 + +// or just use toString! +console.log(bl.toString()) // 'abcdefghij\u0003\u0004' +console.log(bl.toString('ascii', 3, 8)) // 'defgh' +console.log(bl.toString('ascii', 5, 10)) // 'fghij' + +// other standard Buffer readables +console.log(bl.readUInt16BE(10)) // 0x0304 +console.log(bl.readUInt16LE(10)) // 0x0403 +``` + +Give it a callback in the constructor and use it just like **[concat-stream](https://github.com/maxogden/node-concat-stream)**: + +```js +const bl = require('bl') + , fs = require('fs') + +fs.createReadStream('README.md') + .pipe(bl(function (err, data) { // note 'new' isn't strictly required + // `data` is a complete Buffer object containing the full data + console.log(data.toString()) + })) +``` + +Note that when you use the *callback* method like this, the resulting `data` parameter is a concatenation of all `Buffer` objects in the list. If you want to avoid the overhead of this concatenation (in cases of extreme performance consciousness), then avoid the *callback* method and just listen to `'end'` instead, like a standard Stream. + +Or to fetch a URL using [hyperquest](https://github.com/substack/hyperquest) (should work with [request](http://github.com/mikeal/request) and even plain Node http too!): +```js +const hyperquest = require('hyperquest') + , bl = require('bl') + , url = 'https://raw.github.com/rvagg/bl/master/README.md' + +hyperquest(url).pipe(bl(function (err, data) { + console.log(data.toString()) +})) +``` + +Or, use it as a readable stream to recompose a list of Buffers to an output source: + +```js +const BufferList = require('bl') + , fs = require('fs') + +var bl = new BufferList() +bl.append(Buffer.from('abcd')) +bl.append(Buffer.from('efg')) +bl.append(Buffer.from('hi')) +bl.append(Buffer.from('j')) + +bl.pipe(fs.createWriteStream('gibberish.txt')) +``` + +## API + + * new BufferList([ callback ]) + * bl.length + * bl.append(buffer) + * bl.get(index) + * bl.indexOf(value[, byteOffset][, encoding]) + * bl.slice([ start[, end ] ]) + * bl.shallowSlice([ start[, end ] ]) + * bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) + * bl.duplicate() + * bl.consume(bytes) + * bl.toString([encoding, [ start, [ end ]]]) + * bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() + * Streams + +-------------------------------------------------------- + +### new BufferList([ callback | Buffer | Buffer array | BufferList | BufferList array | String ]) +The constructor takes an optional callback, if supplied, the callback will be called with an error argument followed by a reference to the **bl** instance, when `bl.end()` is called (i.e. from a piped stream). This is a convenient method of collecting the entire contents of a stream, particularly when the stream is *chunky*, such as a network stream. + +Normally, no arguments are required for the constructor, but you can initialise the list by passing in a single `Buffer` object or an array of `Buffer` object. + +`new` is not strictly required, if you don't instantiate a new object, it will be done automatically for you so you can create a new instance simply with: + +```js +var bl = require('bl') +var myinstance = bl() + +// equivalent to: + +var BufferList = require('bl') +var myinstance = new BufferList() +``` + +-------------------------------------------------------- + +### bl.length +Get the length of the list in bytes. This is the sum of the lengths of all of the buffers contained in the list, minus any initial offset for a semi-consumed buffer at the beginning. Should accurately represent the total number of bytes that can be read from the list. + +-------------------------------------------------------- + +### bl.append(Buffer | Buffer array | BufferList | BufferList array | String) +`append(buffer)` adds an additional buffer or BufferList to the internal list. `this` is returned so it can be chained. + +-------------------------------------------------------- + +### bl.get(index) +`get()` will return the byte at the specified index. + +-------------------------------------------------------- + +### bl.indexOf(value[, byteOffset][, encoding]) +`get()` will return the byte at the specified index. +`indexOf()` method returns the first index at which a given element can be found in the BufferList, or -1 if it is not present. + +-------------------------------------------------------- + +### bl.slice([ start, [ end ] ]) +`slice()` returns a new `Buffer` object containing the bytes within the range specified. Both `start` and `end` are optional and will default to the beginning and end of the list respectively. + +If the requested range spans a single internal buffer then a slice of that buffer will be returned which shares the original memory range of that Buffer. If the range spans multiple buffers then copy operations will likely occur to give you a uniform Buffer. + +-------------------------------------------------------- + +### bl.shallowSlice([ start, [ end ] ]) +`shallowSlice()` returns a new `BufferList` object containing the bytes within the range specified. Both `start` and `end` are optional and will default to the beginning and end of the list respectively. + +No copies will be performed. All buffers in the result share memory with the original list. + +-------------------------------------------------------- + +### bl.copy(dest, [ destStart, [ srcStart [, srcEnd ] ] ]) +`copy()` copies the content of the list in the `dest` buffer, starting from `destStart` and containing the bytes within the range specified with `srcStart` to `srcEnd`. `destStart`, `start` and `end` are optional and will default to the beginning of the `dest` buffer, and the beginning and end of the list respectively. + +-------------------------------------------------------- + +### bl.duplicate() +`duplicate()` performs a **shallow-copy** of the list. The internal Buffers remains the same, so if you change the underlying Buffers, the change will be reflected in both the original and the duplicate. This method is needed if you want to call `consume()` or `pipe()` and still keep the original list.Example: + +```js +var bl = new BufferList() + +bl.append('hello') +bl.append(' world') +bl.append('\n') + +bl.duplicate().pipe(process.stdout, { end: false }) + +console.log(bl.toString()) +``` + +-------------------------------------------------------- + +### bl.consume(bytes) +`consume()` will shift bytes *off the start of the list*. The number of bytes consumed don't need to line up with the sizes of the internal Buffers—initial offsets will be calculated accordingly in order to give you a consistent view of the data. + +-------------------------------------------------------- + +### bl.toString([encoding, [ start, [ end ]]]) +`toString()` will return a string representation of the buffer. The optional `start` and `end` arguments are passed on to `slice()`, while the `encoding` is passed on to `toString()` of the resulting Buffer. See the [Buffer#toString()](http://nodejs.org/docs/latest/api/buffer.html#buffer_buf_tostring_encoding_start_end) documentation for more information. + +-------------------------------------------------------- + +### bl.readDoubleBE(), bl.readDoubleLE(), bl.readFloatBE(), bl.readFloatLE(), bl.readInt32BE(), bl.readInt32LE(), bl.readUInt32BE(), bl.readUInt32LE(), bl.readInt16BE(), bl.readInt16LE(), bl.readUInt16BE(), bl.readUInt16LE(), bl.readInt8(), bl.readUInt8() + +All of the standard byte-reading methods of the `Buffer` interface are implemented and will operate across internal Buffer boundaries transparently. + +See the [Buffer](http://nodejs.org/docs/latest/api/buffer.html) documentation for how these work. + +-------------------------------------------------------- + +### Streams +**bl** is a Node **[Duplex Stream](http://nodejs.org/docs/latest/api/stream.html#stream_class_stream_duplex)**, so it can be read from and written to like a standard Node stream. You can also `pipe()` to and from a **bl** instance. + +-------------------------------------------------------- + +## Contributors + +**bl** is brought to you by the following hackers: + + * [Rod Vagg](https://github.com/rvagg) + * [Matteo Collina](https://github.com/mcollina) + * [Jarett Cruger](https://github.com/jcrugzz) + +======= + + +## License & copyright + +Copyright (c) 2013-2018 bl contributors (listed above). + +bl is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details. diff --git a/justdanceonline-main/node_modules/bl/bl.js b/justdanceonline-main/node_modules/bl/bl.js new file mode 100644 index 0000000000000000000000000000000000000000..52c374050dec4b1edf689d79fed6308f7bdbf59f --- /dev/null +++ b/justdanceonline-main/node_modules/bl/bl.js @@ -0,0 +1,392 @@ +'use strict' +var DuplexStream = require('readable-stream').Duplex + , util = require('util') + , Buffer = require('safe-buffer').Buffer + +function BufferList (callback) { + if (!(this instanceof BufferList)) + return new BufferList(callback) + + this._bufs = [] + this.length = 0 + + if (typeof callback == 'function') { + this._callback = callback + + var piper = function piper (err) { + if (this._callback) { + this._callback(err) + this._callback = null + } + }.bind(this) + + this.on('pipe', function onPipe (src) { + src.on('error', piper) + }) + this.on('unpipe', function onUnpipe (src) { + src.removeListener('error', piper) + }) + } else { + this.append(callback) + } + + DuplexStream.call(this) +} + + +util.inherits(BufferList, DuplexStream) + + +BufferList.prototype._offset = function _offset (offset) { + var tot = 0, i = 0, _t + if (offset === 0) return [ 0, 0 ] + for (; i < this._bufs.length; i++) { + _t = tot + this._bufs[i].length + if (offset < _t || i == this._bufs.length - 1) { + return [ i, offset - tot ] + } + tot = _t + } +} + +BufferList.prototype._reverseOffset = function (blOffset) { + var bufferId = blOffset[0] + var offset = blOffset[1] + for (var i = 0; i < bufferId; i++) { + offset += this._bufs[i].length + } + return offset +} + +BufferList.prototype.append = function append (buf) { + var i = 0 + + if (Buffer.isBuffer(buf)) { + this._appendBuffer(buf) + } else if (Array.isArray(buf)) { + for (; i < buf.length; i++) + this.append(buf[i]) + } else if (buf instanceof BufferList) { + // unwrap argument into individual BufferLists + for (; i < buf._bufs.length; i++) + this.append(buf._bufs[i]) + } else if (buf != null) { + // coerce number arguments to strings, since Buffer(number) does + // uninitialized memory allocation + if (typeof buf == 'number') + buf = buf.toString() + + this._appendBuffer(Buffer.from(buf)) + } + + return this +} + + +BufferList.prototype._appendBuffer = function appendBuffer (buf) { + this._bufs.push(buf) + this.length += buf.length +} + + +BufferList.prototype._write = function _write (buf, encoding, callback) { + this._appendBuffer(buf) + + if (typeof callback == 'function') + callback() +} + + +BufferList.prototype._read = function _read (size) { + if (!this.length) + return this.push(null) + + size = Math.min(size, this.length) + this.push(this.slice(0, size)) + this.consume(size) +} + + +BufferList.prototype.end = function end (chunk) { + DuplexStream.prototype.end.call(this, chunk) + + if (this._callback) { + this._callback(null, this.slice()) + this._callback = null + } +} + + +BufferList.prototype.get = function get (index) { + if (index > this.length || index < 0) { + return undefined + } + var offset = this._offset(index) + return this._bufs[offset[0]][offset[1]] +} + + +BufferList.prototype.slice = function slice (start, end) { + if (typeof start == 'number' && start < 0) + start += this.length + if (typeof end == 'number' && end < 0) + end += this.length + return this.copy(null, 0, start, end) +} + + +BufferList.prototype.copy = function copy (dst, dstStart, srcStart, srcEnd) { + if (typeof srcStart != 'number' || srcStart < 0) + srcStart = 0 + if (typeof srcEnd != 'number' || srcEnd > this.length) + srcEnd = this.length + if (srcStart >= this.length) + return dst || Buffer.alloc(0) + if (srcEnd <= 0) + return dst || Buffer.alloc(0) + + var copy = !!dst + , off = this._offset(srcStart) + , len = srcEnd - srcStart + , bytes = len + , bufoff = (copy && dstStart) || 0 + , start = off[1] + , l + , i + + // copy/slice everything + if (srcStart === 0 && srcEnd == this.length) { + if (!copy) { // slice, but full concat if multiple buffers + return this._bufs.length === 1 + ? this._bufs[0] + : Buffer.concat(this._bufs, this.length) + } + + // copy, need to copy individual buffers + for (i = 0; i < this._bufs.length; i++) { + this._bufs[i].copy(dst, bufoff) + bufoff += this._bufs[i].length + } + + return dst + } + + // easy, cheap case where it's a subset of one of the buffers + if (bytes <= this._bufs[off[0]].length - start) { + return copy + ? this._bufs[off[0]].copy(dst, dstStart, start, start + bytes) + : this._bufs[off[0]].slice(start, start + bytes) + } + + if (!copy) // a slice, we need something to copy in to + dst = Buffer.allocUnsafe(len) + + for (i = off[0]; i < this._bufs.length; i++) { + l = this._bufs[i].length - start + + if (bytes > l) { + this._bufs[i].copy(dst, bufoff, start) + bufoff += l + } else { + this._bufs[i].copy(dst, bufoff, start, start + bytes) + bufoff += l + break + } + + bytes -= l + + if (start) + start = 0 + } + + // safeguard so that we don't return uninitialized memory + if (dst.length > bufoff) return dst.slice(0, bufoff) + + return dst +} + +BufferList.prototype.shallowSlice = function shallowSlice (start, end) { + start = start || 0 + end = typeof end !== 'number' ? this.length : end + + if (start < 0) + start += this.length + if (end < 0) + end += this.length + + if (start === end) { + return new BufferList() + } + var startOffset = this._offset(start) + , endOffset = this._offset(end) + , buffers = this._bufs.slice(startOffset[0], endOffset[0] + 1) + + if (endOffset[1] == 0) + buffers.pop() + else + buffers[buffers.length-1] = buffers[buffers.length-1].slice(0, endOffset[1]) + + if (startOffset[1] != 0) + buffers[0] = buffers[0].slice(startOffset[1]) + + return new BufferList(buffers) +} + +BufferList.prototype.toString = function toString (encoding, start, end) { + return this.slice(start, end).toString(encoding) +} + +BufferList.prototype.consume = function consume (bytes) { + // first, normalize the argument, in accordance with how Buffer does it + bytes = Math.trunc(bytes) + // do nothing if not a positive number + if (Number.isNaN(bytes) || bytes <= 0) return this + + while (this._bufs.length) { + if (bytes >= this._bufs[0].length) { + bytes -= this._bufs[0].length + this.length -= this._bufs[0].length + this._bufs.shift() + } else { + this._bufs[0] = this._bufs[0].slice(bytes) + this.length -= bytes + break + } + } + return this +} + + +BufferList.prototype.duplicate = function duplicate () { + var i = 0 + , copy = new BufferList() + + for (; i < this._bufs.length; i++) + copy.append(this._bufs[i]) + + return copy +} + + +BufferList.prototype.destroy = function destroy () { + this._bufs.length = 0 + this.length = 0 + this.push(null) +} + + +BufferList.prototype.indexOf = function (search, offset, encoding) { + if (encoding === undefined && typeof offset === 'string') { + encoding = offset + offset = undefined + } + if (typeof search === 'function' || Array.isArray(search)) { + throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.') + } else if (typeof search === 'number') { + search = Buffer.from([search]) + } else if (typeof search === 'string') { + search = Buffer.from(search, encoding) + } else if (search instanceof BufferList) { + search = search.slice() + } else if (!Buffer.isBuffer(search)) { + search = Buffer.from(search) + } + + offset = Number(offset || 0) + if (isNaN(offset)) { + offset = 0 + } + + if (offset < 0) { + offset = this.length + offset + } + + if (offset < 0) { + offset = 0 + } + + if (search.length === 0) { + return offset > this.length ? this.length : offset + } + + var blOffset = this._offset(offset) + var blIndex = blOffset[0] // index of which internal buffer we're working on + var buffOffset = blOffset[1] // offset of the internal buffer we're working on + + // scan over each buffer + for (blIndex; blIndex < this._bufs.length; blIndex++) { + var buff = this._bufs[blIndex] + while(buffOffset < buff.length) { + var availableWindow = buff.length - buffOffset + if (availableWindow >= search.length) { + var nativeSearchResult = buff.indexOf(search, buffOffset) + if (nativeSearchResult !== -1) { + return this._reverseOffset([blIndex, nativeSearchResult]) + } + buffOffset = buff.length - search.length + 1 // end of native search window + } else { + var revOffset = this._reverseOffset([blIndex, buffOffset]) + if (this._match(revOffset, search)) { + return revOffset + } + buffOffset++ + } + } + buffOffset = 0 + } + return -1 +} + +BufferList.prototype._match = function(offset, search) { + if (this.length - offset < search.length) { + return false + } + for (var searchOffset = 0; searchOffset < search.length ; searchOffset++) { + if(this.get(offset + searchOffset) !== search[searchOffset]){ + return false + } + } + return true +} + + +;(function () { + var methods = { + 'readDoubleBE' : 8 + , 'readDoubleLE' : 8 + , 'readFloatBE' : 4 + , 'readFloatLE' : 4 + , 'readInt32BE' : 4 + , 'readInt32LE' : 4 + , 'readUInt32BE' : 4 + , 'readUInt32LE' : 4 + , 'readInt16BE' : 2 + , 'readInt16LE' : 2 + , 'readUInt16BE' : 2 + , 'readUInt16LE' : 2 + , 'readInt8' : 1 + , 'readUInt8' : 1 + , 'readIntBE' : null + , 'readIntLE' : null + , 'readUIntBE' : null + , 'readUIntLE' : null + } + + for (var m in methods) { + (function (m) { + if (methods[m] === null) { + BufferList.prototype[m] = function (offset, byteLength) { + return this.slice(offset, offset + byteLength)[m](0, byteLength) + } + } + else { + BufferList.prototype[m] = function (offset) { + return this.slice(offset, offset + methods[m])[m](0) + } + } + }(m)) + } +}()) + + +module.exports = BufferList diff --git a/justdanceonline-main/node_modules/bl/package.json b/justdanceonline-main/node_modules/bl/package.json new file mode 100644 index 0000000000000000000000000000000000000000..496a72992abf3e788051cf4f268e28bdf8914ca3 --- /dev/null +++ b/justdanceonline-main/node_modules/bl/package.json @@ -0,0 +1,35 @@ +{ + "name": "bl", + "version": "2.2.1", + "description": "Buffer List: collect buffers and access with a standard readable Buffer interface, streamable too!", + "main": "bl.js", + "scripts": { + "test": "node test/test.js | faucet" + }, + "repository": { + "type": "git", + "url": "https://github.com/rvagg/bl.git" + }, + "homepage": "https://github.com/rvagg/bl", + "authors": [ + "Rod Vagg (https://github.com/rvagg)", + "Matteo Collina (https://github.com/mcollina)", + "Jarett Cruger (https://github.com/jcrugzz)" + ], + "keywords": [ + "buffer", + "buffers", + "stream", + "awesomesauce" + ], + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + }, + "devDependencies": { + "faucet": "0.0.1", + "hash_file": "~0.1.1", + "tape": "~4.9.0" + } +} diff --git a/justdanceonline-main/node_modules/bl/test/indexOf.js b/justdanceonline-main/node_modules/bl/test/indexOf.js new file mode 100644 index 0000000000000000000000000000000000000000..68435e1ae415b10d281b33e4abca71e93155d053 --- /dev/null +++ b/justdanceonline-main/node_modules/bl/test/indexOf.js @@ -0,0 +1,463 @@ +'use strict' + +var tape = require('tape') + , BufferList = require('../') + , Buffer = require('safe-buffer').Buffer + +tape('indexOf single byte needle', t => { + const bl = new BufferList(['abcdefg', 'abcdefg', '12345']) + t.equal(bl.indexOf('e'), 4) + t.equal(bl.indexOf('e', 5), 11) + t.equal(bl.indexOf('e', 12), -1) + t.equal(bl.indexOf('5'), 18) + t.end() +}) + +tape('indexOf multiple byte needle', t => { + const bl = new BufferList(['abcdefg', 'abcdefg']) + t.equal(bl.indexOf('ef'), 4) + t.equal(bl.indexOf('ef', 5), 11) + t.end() +}) + +tape('indexOf multiple byte needles across buffer boundaries', t => { + const bl = new BufferList(['abcdefg', 'abcdefg']) + t.equal(bl.indexOf('fgabc'), 5) + t.end() +}) + +tape('indexOf takes a buffer list search', t => { + const bl = new BufferList(['abcdefg', 'abcdefg']) + const search = new BufferList('fgabc') + t.equal(bl.indexOf(search), 5) + t.end() +}) + +tape('indexOf a zero byte needle', t => { + const b = new BufferList('abcdef') + const buf_empty = Buffer.from('') + t.equal(b.indexOf(''), 0) + t.equal(b.indexOf('', 1), 1) + t.equal(b.indexOf('', b.length + 1), b.length) + t.equal(b.indexOf('', Infinity), b.length) + t.equal(b.indexOf(buf_empty), 0) + t.equal(b.indexOf(buf_empty, 1), 1) + t.equal(b.indexOf(buf_empty, b.length + 1), b.length) + t.equal(b.indexOf(buf_empty, Infinity), b.length) + t.end() +}) + +tape('indexOf buffers smaller and larger than the needle', t => { + const bl = new BufferList(['abcdefg', 'a', 'bcdefg', 'a', 'bcfgab']) + t.equal(bl.indexOf('fgabc'), 5) + t.equal(bl.indexOf('fgabc', 6), 12) + t.equal(bl.indexOf('fgabc', 13), -1) + t.end() +}) + +// only present in node 6+ +;(process.version.substr(1).split('.')[0] >= 6) && tape('indexOf latin1 and binary encoding', t => { + const b = new BufferList('abcdef') + + // test latin1 encoding + t.equal( + new BufferList(Buffer.from(b.toString('latin1'), 'latin1')) + .indexOf('d', 0, 'latin1'), + 3 + ) + t.equal( + new BufferList(Buffer.from(b.toString('latin1'), 'latin1')) + .indexOf(Buffer.from('d', 'latin1'), 0, 'latin1'), + 3 + ) + t.equal( + new BufferList(Buffer.from('aa\u00e8aa', 'latin1')) + .indexOf('\u00e8', 'latin1'), + 2 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'latin1')) + .indexOf('\u00e8', 'latin1'), + 0 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'latin1')) + .indexOf(Buffer.from('\u00e8', 'latin1'), 'latin1'), + 0 + ) + + // test binary encoding + t.equal( + new BufferList(Buffer.from(b.toString('binary'), 'binary')) + .indexOf('d', 0, 'binary'), + 3 + ) + t.equal( + new BufferList(Buffer.from(b.toString('binary'), 'binary')) + .indexOf(Buffer.from('d', 'binary'), 0, 'binary'), + 3 + ) + t.equal( + new BufferList(Buffer.from('aa\u00e8aa', 'binary')) + .indexOf('\u00e8', 'binary'), + 2 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'binary')) + .indexOf('\u00e8', 'binary'), + 0 + ) + t.equal( + new BufferList(Buffer.from('\u00e8', 'binary')) + .indexOf(Buffer.from('\u00e8', 'binary'), 'binary'), + 0 + ) + t.end() +}) + +tape('indexOf the entire nodejs10 buffer test suite', t => { + const b = new BufferList('abcdef') + const buf_a = Buffer.from('a') + const buf_bc = Buffer.from('bc') + const buf_f = Buffer.from('f') + const buf_z = Buffer.from('z') + + const stringComparison = 'abcdef' + + t.equal(b.indexOf('a'), 0) + t.equal(b.indexOf('a', 1), -1) + t.equal(b.indexOf('a', -1), -1) + t.equal(b.indexOf('a', -4), -1) + t.equal(b.indexOf('a', -b.length), 0) + t.equal(b.indexOf('a', NaN), 0) + t.equal(b.indexOf('a', -Infinity), 0) + t.equal(b.indexOf('a', Infinity), -1) + t.equal(b.indexOf('bc'), 1) + t.equal(b.indexOf('bc', 2), -1) + t.equal(b.indexOf('bc', -1), -1) + t.equal(b.indexOf('bc', -3), -1) + t.equal(b.indexOf('bc', -5), 1) + t.equal(b.indexOf('bc', NaN), 1) + t.equal(b.indexOf('bc', -Infinity), 1) + t.equal(b.indexOf('bc', Infinity), -1) + t.equal(b.indexOf('f'), b.length - 1) + t.equal(b.indexOf('z'), -1) + // empty search tests + t.equal(b.indexOf(buf_a), 0) + t.equal(b.indexOf(buf_a, 1), -1) + t.equal(b.indexOf(buf_a, -1), -1) + t.equal(b.indexOf(buf_a, -4), -1) + t.equal(b.indexOf(buf_a, -b.length), 0) + t.equal(b.indexOf(buf_a, NaN), 0) + t.equal(b.indexOf(buf_a, -Infinity), 0) + t.equal(b.indexOf(buf_a, Infinity), -1) + t.equal(b.indexOf(buf_bc), 1) + t.equal(b.indexOf(buf_bc, 2), -1) + t.equal(b.indexOf(buf_bc, -1), -1) + t.equal(b.indexOf(buf_bc, -3), -1) + t.equal(b.indexOf(buf_bc, -5), 1) + t.equal(b.indexOf(buf_bc, NaN), 1) + t.equal(b.indexOf(buf_bc, -Infinity), 1) + t.equal(b.indexOf(buf_bc, Infinity), -1) + t.equal(b.indexOf(buf_f), b.length - 1) + t.equal(b.indexOf(buf_z), -1) + t.equal(b.indexOf(0x61), 0) + t.equal(b.indexOf(0x61, 1), -1) + t.equal(b.indexOf(0x61, -1), -1) + t.equal(b.indexOf(0x61, -4), -1) + t.equal(b.indexOf(0x61, -b.length), 0) + t.equal(b.indexOf(0x61, NaN), 0) + t.equal(b.indexOf(0x61, -Infinity), 0) + t.equal(b.indexOf(0x61, Infinity), -1) + t.equal(b.indexOf(0x0), -1) + + // test offsets + t.equal(b.indexOf('d', 2), 3) + t.equal(b.indexOf('f', 5), 5) + t.equal(b.indexOf('f', -1), 5) + t.equal(b.indexOf('f', 6), -1) + + t.equal(b.indexOf(Buffer.from('d'), 2), 3) + t.equal(b.indexOf(Buffer.from('f'), 5), 5) + t.equal(b.indexOf(Buffer.from('f'), -1), 5) + t.equal(b.indexOf(Buffer.from('f'), 6), -1) + + t.equal(Buffer.from('ff').indexOf(Buffer.from('f'), 1, 'ucs2'), -1) + + // test invalid and uppercase encoding + t.equal(b.indexOf('b', 'utf8'), 1) + t.equal(b.indexOf('b', 'UTF8'), 1) + t.equal(b.indexOf('62', 'HEX'), 1) + t.throws(() => b.indexOf('bad', 'enc'), TypeError) + + // test hex encoding + t.equal( + Buffer.from(b.toString('hex'), 'hex') + .indexOf('64', 0, 'hex'), + 3 + ) + t.equal( + Buffer.from(b.toString('hex'), 'hex') + .indexOf(Buffer.from('64', 'hex'), 0, 'hex'), + 3 + ) + + // test base64 encoding + t.equal( + Buffer.from(b.toString('base64'), 'base64') + .indexOf('ZA==', 0, 'base64'), + 3 + ) + t.equal( + Buffer.from(b.toString('base64'), 'base64') + .indexOf(Buffer.from('ZA==', 'base64'), 0, 'base64'), + 3 + ) + + // test ascii encoding + t.equal( + Buffer.from(b.toString('ascii'), 'ascii') + .indexOf('d', 0, 'ascii'), + 3 + ) + t.equal( + Buffer.from(b.toString('ascii'), 'ascii') + .indexOf(Buffer.from('d', 'ascii'), 0, 'ascii'), + 3 + ) + + // test optional offset with passed encoding + t.equal(Buffer.from('aaaa0').indexOf('30', 'hex'), 4) + t.equal(Buffer.from('aaaa00a').indexOf('3030', 'hex'), 4) + + { + // test usc2 encoding + const twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2') + + t.equal(8, twoByteString.indexOf('\u0395', 4, 'ucs2')) + t.equal(6, twoByteString.indexOf('\u03a3', -4, 'ucs2')) + t.equal(4, twoByteString.indexOf('\u03a3', -6, 'ucs2')) + t.equal(4, twoByteString.indexOf( + Buffer.from('\u03a3', 'ucs2'), -6, 'ucs2')) + t.equal(-1, twoByteString.indexOf('\u03a3', -2, 'ucs2')) + } + + const mixedByteStringUcs2 = + Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395', 'ucs2') + t.equal(6, mixedByteStringUcs2.indexOf('bc', 0, 'ucs2')) + t.equal(10, mixedByteStringUcs2.indexOf('\u03a3', 0, 'ucs2')) + t.equal(-1, mixedByteStringUcs2.indexOf('\u0396', 0, 'ucs2')) + + t.equal( + 6, mixedByteStringUcs2.indexOf(Buffer.from('bc', 'ucs2'), 0, 'ucs2')) + t.equal( + 10, mixedByteStringUcs2.indexOf(Buffer.from('\u03a3', 'ucs2'), 0, 'ucs2')) + t.equal( + -1, mixedByteStringUcs2.indexOf(Buffer.from('\u0396', 'ucs2'), 0, 'ucs2')) + + { + const twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2') + + // Test single char pattern + t.equal(0, twoByteString.indexOf('\u039a', 0, 'ucs2')) + let index = twoByteString.indexOf('\u0391', 0, 'ucs2') + t.equal(2, index, `Alpha - at index ${index}`) + index = twoByteString.indexOf('\u03a3', 0, 'ucs2') + t.equal(4, index, `First Sigma - at index ${index}`) + index = twoByteString.indexOf('\u03a3', 6, 'ucs2') + t.equal(6, index, `Second Sigma - at index ${index}`) + index = twoByteString.indexOf('\u0395', 0, 'ucs2') + t.equal(8, index, `Epsilon - at index ${index}`) + index = twoByteString.indexOf('\u0392', 0, 'ucs2') + t.equal(-1, index, `Not beta - at index ${index}`) + + // Test multi-char pattern + index = twoByteString.indexOf('\u039a\u0391', 0, 'ucs2') + t.equal(0, index, `Lambda Alpha - at index ${index}`) + index = twoByteString.indexOf('\u0391\u03a3', 0, 'ucs2') + t.equal(2, index, `Alpha Sigma - at index ${index}`) + index = twoByteString.indexOf('\u03a3\u03a3', 0, 'ucs2') + t.equal(4, index, `Sigma Sigma - at index ${index}`) + index = twoByteString.indexOf('\u03a3\u0395', 0, 'ucs2') + t.equal(6, index, `Sigma Epsilon - at index ${index}`) + } + + const mixedByteStringUtf8 = Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395') + t.equal(5, mixedByteStringUtf8.indexOf('bc')) + t.equal(5, mixedByteStringUtf8.indexOf('bc', 5)) + t.equal(5, mixedByteStringUtf8.indexOf('bc', -8)) + t.equal(7, mixedByteStringUtf8.indexOf('\u03a3')) + t.equal(-1, mixedByteStringUtf8.indexOf('\u0396')) + + + // Test complex string indexOf algorithms. Only trigger for long strings. + // Long string that isn't a simple repeat of a shorter string. + let longString = 'A' + for (let i = 66; i < 76; i++) { // from 'B' to 'K' + longString = longString + String.fromCharCode(i) + longString + } + + const longBufferString = Buffer.from(longString) + + // pattern of 15 chars, repeated every 16 chars in long + let pattern = 'ABACABADABACABA' + for (let i = 0; i < longBufferString.length - pattern.length; i += 7) { + const index = longBufferString.indexOf(pattern, i) + t.equal((i + 15) & ~0xf, index, + `Long ABACABA...-string at index ${i}`) + } + + let index = longBufferString.indexOf('AJABACA') + t.equal(510, index, `Long AJABACA, First J - at index ${index}`) + index = longBufferString.indexOf('AJABACA', 511) + t.equal(1534, index, `Long AJABACA, Second J - at index ${index}`) + + pattern = 'JABACABADABACABA' + index = longBufferString.indexOf(pattern) + t.equal(511, index, `Long JABACABA..., First J - at index ${index}`) + index = longBufferString.indexOf(pattern, 512) + t.equal( + 1535, index, `Long JABACABA..., Second J - at index ${index}`) + + // Search for a non-ASCII string in a pure ASCII string. + const asciiString = Buffer.from( + 'arglebargleglopglyfarglebargleglopglyfarglebargleglopglyf') + t.equal(-1, asciiString.indexOf('\x2061')) + t.equal(3, asciiString.indexOf('leb', 0)) + + // Search in string containing many non-ASCII chars. + const allCodePoints = [] + for (let i = 0; i < 65536; i++) allCodePoints[i] = i + const allCharsString = String.fromCharCode.apply(String, allCodePoints) + const allCharsBufferUtf8 = Buffer.from(allCharsString) + const allCharsBufferUcs2 = Buffer.from(allCharsString, 'ucs2') + + // Search for string long enough to trigger complex search with ASCII pattern + // and UC16 subject. + t.equal(-1, allCharsBufferUtf8.indexOf('notfound')) + t.equal(-1, allCharsBufferUcs2.indexOf('notfound')) + + // Needle is longer than haystack, but only because it's encoded as UTF-16 + t.equal(Buffer.from('aaaa').indexOf('a'.repeat(4), 'ucs2'), -1) + + t.equal(Buffer.from('aaaa').indexOf('a'.repeat(4), 'utf8'), 0) + t.equal(Buffer.from('aaaa').indexOf('你好', 'ucs2'), -1) + + // Haystack has odd length, but the needle is UCS2. + t.equal(Buffer.from('aaaaa').indexOf('b', 'ucs2'), -1) + + { + // Find substrings in Utf8. + const lengths = [1, 3, 15]; // Single char, simple and complex. + const indices = [0x5, 0x60, 0x400, 0x680, 0x7ee, 0xFF02, 0x16610, 0x2f77b] + for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (let i = 0; i < indices.length; i++) { + const index = indices[i] + let length = lengths[lengthIndex] + + if (index + length > 0x7F) { + length = 2 * length + } + + if (index + length > 0x7FF) { + length = 3 * length + } + + if (index + length > 0xFFFF) { + length = 4 * length + } + + const patternBufferUtf8 = allCharsBufferUtf8.slice(index, index + length) + t.equal(index, allCharsBufferUtf8.indexOf(patternBufferUtf8)) + + const patternStringUtf8 = patternBufferUtf8.toString() + t.equal(index, allCharsBufferUtf8.indexOf(patternStringUtf8)) + } + } + } + + { + // Find substrings in Usc2. + const lengths = [2, 4, 16]; // Single char, simple and complex. + const indices = [0x5, 0x65, 0x105, 0x205, 0x285, 0x2005, 0x2085, 0xfff0] + for (let lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (let i = 0; i < indices.length; i++) { + const index = indices[i] * 2 + const length = lengths[lengthIndex] + + const patternBufferUcs2 = + allCharsBufferUcs2.slice(index, index + length) + t.equal( + index, allCharsBufferUcs2.indexOf(patternBufferUcs2, 0, 'ucs2')) + + const patternStringUcs2 = patternBufferUcs2.toString('ucs2') + t.equal( + index, allCharsBufferUcs2.indexOf(patternStringUcs2, 0, 'ucs2')) + } + } + } + + [ + () => {}, + {}, + [] + ].forEach(val => { + debugger + t.throws(() => b.indexOf(val), TypeError, `"${JSON.stringify(val)}" should throw`) + }) + + // Test weird offset arguments. + // The following offsets coerce to NaN or 0, searching the whole Buffer + t.equal(b.indexOf('b', undefined), 1) + t.equal(b.indexOf('b', {}), 1) + t.equal(b.indexOf('b', 0), 1) + t.equal(b.indexOf('b', null), 1) + t.equal(b.indexOf('b', []), 1) + + // The following offset coerces to 2, in other words +[2] === 2 + t.equal(b.indexOf('b', [2]), -1) + + // Behavior should match String.indexOf() + t.equal( + b.indexOf('b', undefined), + stringComparison.indexOf('b', undefined)) + t.equal( + b.indexOf('b', {}), + stringComparison.indexOf('b', {})) + t.equal( + b.indexOf('b', 0), + stringComparison.indexOf('b', 0)) + t.equal( + b.indexOf('b', null), + stringComparison.indexOf('b', null)) + t.equal( + b.indexOf('b', []), + stringComparison.indexOf('b', [])) + t.equal( + b.indexOf('b', [2]), + stringComparison.indexOf('b', [2])) + + // test truncation of Number arguments to uint8 + { + const buf = Buffer.from('this is a test') + t.equal(buf.indexOf(0x6973), 3) + t.equal(buf.indexOf(0x697320), 4) + t.equal(buf.indexOf(0x69732069), 2) + t.equal(buf.indexOf(0x697374657374), 0) + t.equal(buf.indexOf(0x69737374), 0) + t.equal(buf.indexOf(0x69737465), 11) + t.equal(buf.indexOf(0x69737465), 11) + t.equal(buf.indexOf(-140), 0) + t.equal(buf.indexOf(-152), 1) + t.equal(buf.indexOf(0xff), -1) + t.equal(buf.indexOf(0xffff), -1) + } + + // Test that Uint8Array arguments are okay. + { + const needle = new Uint8Array([ 0x66, 0x6f, 0x6f ]) + const haystack = new BufferList(Buffer.from('a foo b foo')) + t.equal(haystack.indexOf(needle), 2) + } + t.end() +}) diff --git a/justdanceonline-main/node_modules/bl/test/test.js b/justdanceonline-main/node_modules/bl/test/test.js new file mode 100644 index 0000000000000000000000000000000000000000..42fcad419fa317aa471329a437d58657a6f2400b --- /dev/null +++ b/justdanceonline-main/node_modules/bl/test/test.js @@ -0,0 +1,782 @@ +'use strict' + +var tape = require('tape') + , crypto = require('crypto') + , fs = require('fs') + , hash = require('hash_file') + , BufferList = require('../') + , Buffer = require('safe-buffer').Buffer + + , encodings = + ('hex utf8 utf-8 ascii binary base64' + + (process.browser ? '' : ' ucs2 ucs-2 utf16le utf-16le')).split(' ') + +// run the indexOf tests +require('./indexOf') + +tape('single bytes from single buffer', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abcd')) + + t.equal(bl.length, 4) + t.equal(bl.get(-1), undefined) + t.equal(bl.get(0), 97) + t.equal(bl.get(1), 98) + t.equal(bl.get(2), 99) + t.equal(bl.get(3), 100) + t.equal(bl.get(4), undefined) + + t.end() +}) + +tape('single bytes from multiple buffers', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.length, 10) + + t.equal(bl.get(0), 97) + t.equal(bl.get(1), 98) + t.equal(bl.get(2), 99) + t.equal(bl.get(3), 100) + t.equal(bl.get(4), 101) + t.equal(bl.get(5), 102) + t.equal(bl.get(6), 103) + t.equal(bl.get(7), 104) + t.equal(bl.get(8), 105) + t.equal(bl.get(9), 106) + t.end() +}) + +tape('multi bytes from single buffer', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abcd')) + + t.equal(bl.length, 4) + + t.equal(bl.slice(0, 4).toString('ascii'), 'abcd') + t.equal(bl.slice(0, 3).toString('ascii'), 'abc') + t.equal(bl.slice(1, 4).toString('ascii'), 'bcd') + t.equal(bl.slice(-4, -1).toString('ascii'), 'abc') + + t.end() +}) + +tape('multi bytes from single buffer (negative indexes)', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('buffer')) + + t.equal(bl.length, 6) + + t.equal(bl.slice(-6, -1).toString('ascii'), 'buffe') + t.equal(bl.slice(-6, -2).toString('ascii'), 'buff') + t.equal(bl.slice(-5, -2).toString('ascii'), 'uff') + + t.end() +}) + +tape('multiple bytes from multiple buffers', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') + t.equal(bl.slice(3, 6).toString('ascii'), 'def') + t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') + t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') + t.equal(bl.slice(-7, -4).toString('ascii'), 'def') + + t.end() +}) + +tape('multiple bytes from multiple buffer lists', function (t) { + var bl = new BufferList() + + bl.append(new BufferList([ Buffer.from('abcd'), Buffer.from('efg') ])) + bl.append(new BufferList([ Buffer.from('hi'), Buffer.from('j') ])) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + + t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') + t.equal(bl.slice(3, 6).toString('ascii'), 'def') + t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') + t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') + + t.end() +}) + +// same data as previous test, just using nested constructors +tape('multiple bytes from crazy nested buffer lists', function (t) { + var bl = new BufferList() + + bl.append(new BufferList([ + new BufferList([ + new BufferList(Buffer.from('abc')) + , Buffer.from('d') + , new BufferList(Buffer.from('efg')) + ]) + , new BufferList([ Buffer.from('hi') ]) + , new BufferList(Buffer.from('j')) + ])) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + + t.equal(bl.slice(3, 10).toString('ascii'), 'defghij') + t.equal(bl.slice(3, 6).toString('ascii'), 'def') + t.equal(bl.slice(3, 8).toString('ascii'), 'defgh') + t.equal(bl.slice(5, 10).toString('ascii'), 'fghij') + + t.end() +}) + +tape('append accepts arrays of Buffers', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abc')) + bl.append([ Buffer.from('def') ]) + bl.append([ Buffer.from('ghi'), Buffer.from('jkl') ]) + bl.append([ Buffer.from('mnop'), Buffer.from('qrstu'), Buffer.from('vwxyz') ]) + t.equal(bl.length, 26) + t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') + t.end() +}) + +tape('append accepts arrays of BufferLists', function (t) { + var bl = new BufferList() + bl.append(Buffer.from('abc')) + bl.append([ new BufferList('def') ]) + bl.append(new BufferList([ Buffer.from('ghi'), new BufferList('jkl') ])) + bl.append([ Buffer.from('mnop'), new BufferList([ Buffer.from('qrstu'), Buffer.from('vwxyz') ]) ]) + t.equal(bl.length, 26) + t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') + t.end() +}) + +tape('append chainable', function (t) { + var bl = new BufferList() + t.ok(bl.append(Buffer.from('abcd')) === bl) + t.ok(bl.append([ Buffer.from('abcd') ]) === bl) + t.ok(bl.append(new BufferList(Buffer.from('abcd'))) === bl) + t.ok(bl.append([ new BufferList(Buffer.from('abcd')) ]) === bl) + t.end() +}) + +tape('append chainable (test results)', function (t) { + var bl = new BufferList('abc') + .append([ new BufferList('def') ]) + .append(new BufferList([ Buffer.from('ghi'), new BufferList('jkl') ])) + .append([ Buffer.from('mnop'), new BufferList([ Buffer.from('qrstu'), Buffer.from('vwxyz') ]) ]) + + t.equal(bl.length, 26) + t.equal(bl.slice().toString('ascii'), 'abcdefghijklmnopqrstuvwxyz') + t.end() +}) + +tape('consuming from multiple buffers', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.length, 10) + + t.equal(bl.slice(0, 10).toString('ascii'), 'abcdefghij') + + bl.consume(3) + t.equal(bl.length, 7) + t.equal(bl.slice(0, 7).toString('ascii'), 'defghij') + + bl.consume(2) + t.equal(bl.length, 5) + t.equal(bl.slice(0, 5).toString('ascii'), 'fghij') + + bl.consume(1) + t.equal(bl.length, 4) + t.equal(bl.slice(0, 4).toString('ascii'), 'ghij') + + bl.consume(1) + t.equal(bl.length, 3) + t.equal(bl.slice(0, 3).toString('ascii'), 'hij') + + bl.consume(2) + t.equal(bl.length, 1) + t.equal(bl.slice(0, 1).toString('ascii'), 'j') + + t.end() +}) + +tape('complete consumption', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('a')) + bl.append(Buffer.from('b')) + + bl.consume(2) + + t.equal(bl.length, 0) + t.equal(bl._bufs.length, 0) + + t.end() +}) + +tape('test readUInt8 / readInt8', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUInt8(2), 0x3) + t.equal(bl.readInt8(2), 0x3) + t.equal(bl.readUInt8(3), 0x4) + t.equal(bl.readInt8(3), 0x4) + t.equal(bl.readUInt8(4), 0x23) + t.equal(bl.readInt8(4), 0x23) + t.equal(bl.readUInt8(5), 0x42) + t.equal(bl.readInt8(5), 0x42) + t.end() +}) + +tape('test readUInt16LE / readUInt16BE / readInt16LE / readInt16BE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUInt16BE(2), 0x0304) + t.equal(bl.readUInt16LE(2), 0x0403) + t.equal(bl.readInt16BE(2), 0x0304) + t.equal(bl.readInt16LE(2), 0x0403) + t.equal(bl.readUInt16BE(3), 0x0423) + t.equal(bl.readUInt16LE(3), 0x2304) + t.equal(bl.readInt16BE(3), 0x0423) + t.equal(bl.readInt16LE(3), 0x2304) + t.equal(bl.readUInt16BE(4), 0x2342) + t.equal(bl.readUInt16LE(4), 0x4223) + t.equal(bl.readInt16BE(4), 0x2342) + t.equal(bl.readInt16LE(4), 0x4223) + t.end() +}) + +tape('test readUInt32LE / readUInt32BE / readInt32LE / readInt32BE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUInt32BE(2), 0x03042342) + t.equal(bl.readUInt32LE(2), 0x42230403) + t.equal(bl.readInt32BE(2), 0x03042342) + t.equal(bl.readInt32LE(2), 0x42230403) + t.end() +}) + +tape('test readUIntLE / readUIntBE / readIntLE / readIntBE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[0] = 0x2 + buf2[1] = 0x3 + buf2[2] = 0x4 + buf3[0] = 0x23 + buf3[1] = 0x42 + buf3[2] = 0x61 + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readUIntBE(1, 1), 0x02) + t.equal(bl.readUIntBE(1, 2), 0x0203) + t.equal(bl.readUIntBE(1, 3), 0x020304) + t.equal(bl.readUIntBE(1, 4), 0x02030423) + t.equal(bl.readUIntBE(1, 5), 0x0203042342) + t.equal(bl.readUIntBE(1, 6), 0x020304234261) + t.equal(bl.readUIntLE(1, 1), 0x02) + t.equal(bl.readUIntLE(1, 2), 0x0302) + t.equal(bl.readUIntLE(1, 3), 0x040302) + t.equal(bl.readUIntLE(1, 4), 0x23040302) + t.equal(bl.readUIntLE(1, 5), 0x4223040302) + t.equal(bl.readUIntLE(1, 6), 0x614223040302) + t.equal(bl.readIntBE(1, 1), 0x02) + t.equal(bl.readIntBE(1, 2), 0x0203) + t.equal(bl.readIntBE(1, 3), 0x020304) + t.equal(bl.readIntBE(1, 4), 0x02030423) + t.equal(bl.readIntBE(1, 5), 0x0203042342) + t.equal(bl.readIntBE(1, 6), 0x020304234261) + t.equal(bl.readIntLE(1, 1), 0x02) + t.equal(bl.readIntLE(1, 2), 0x0302) + t.equal(bl.readIntLE(1, 3), 0x040302) + t.equal(bl.readIntLE(1, 4), 0x23040302) + t.equal(bl.readIntLE(1, 5), 0x4223040302) + t.equal(bl.readIntLE(1, 6), 0x614223040302) + t.end() +}) + +tape('test readFloatLE / readFloatBE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(3) + , bl = new BufferList() + + buf2[1] = 0x00 + buf2[2] = 0x00 + buf3[0] = 0x80 + buf3[1] = 0x3f + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readFloatLE(2), 0x01) + t.end() +}) + +tape('test readDoubleLE / readDoubleBE', function (t) { + var buf1 = Buffer.alloc(1) + , buf2 = Buffer.alloc(3) + , buf3 = Buffer.alloc(10) + , bl = new BufferList() + + buf2[1] = 0x55 + buf2[2] = 0x55 + buf3[0] = 0x55 + buf3[1] = 0x55 + buf3[2] = 0x55 + buf3[3] = 0x55 + buf3[4] = 0xd5 + buf3[5] = 0x3f + + bl.append(buf1) + bl.append(buf2) + bl.append(buf3) + + t.equal(bl.readDoubleLE(2), 0.3333333333333333) + t.end() +}) + +tape('test toString', function (t) { + var bl = new BufferList() + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + + t.equal(bl.toString('ascii', 0, 10), 'abcdefghij') + t.equal(bl.toString('ascii', 3, 10), 'defghij') + t.equal(bl.toString('ascii', 3, 6), 'def') + t.equal(bl.toString('ascii', 3, 8), 'defgh') + t.equal(bl.toString('ascii', 5, 10), 'fghij') + + t.end() +}) + +tape('test toString encoding', function (t) { + var bl = new BufferList() + , b = Buffer.from('abcdefghij\xff\x00') + + bl.append(Buffer.from('abcd')) + bl.append(Buffer.from('efg')) + bl.append(Buffer.from('hi')) + bl.append(Buffer.from('j')) + bl.append(Buffer.from('\xff\x00')) + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc), enc) + }) + + t.end() +}) + +tape('uninitialized memory', function (t) { + const secret = crypto.randomBytes(256) + for (let i = 0; i < 1e6; i++) { + const clone = Buffer.from(secret) + const bl = new BufferList() + bl.append(Buffer.from('a')) + bl.consume(-1024) + const buf = bl.slice(1) + if (buf.indexOf(clone) !== -1) { + t.fail(`Match (at ${i})`) + break + } + } + t.end() +}) + +!process.browser && tape('test stream', function (t) { + var random = crypto.randomBytes(65534) + , rndhash = hash(random, 'md5') + , md5sum = crypto.createHash('md5') + , bl = new BufferList(function (err, buf) { + t.ok(Buffer.isBuffer(buf)) + t.ok(err === null) + t.equal(rndhash, hash(bl.slice(), 'md5')) + t.equal(rndhash, hash(buf, 'md5')) + + bl.pipe(fs.createWriteStream('/tmp/bl_test_rnd_out.dat')) + .on('close', function () { + var s = fs.createReadStream('/tmp/bl_test_rnd_out.dat') + s.on('data', md5sum.update.bind(md5sum)) + s.on('end', function() { + t.equal(rndhash, md5sum.digest('hex'), 'woohoo! correct hash!') + t.end() + }) + }) + + }) + + fs.writeFileSync('/tmp/bl_test_rnd.dat', random) + fs.createReadStream('/tmp/bl_test_rnd.dat').pipe(bl) +}) + +tape('instantiation with Buffer', function (t) { + var buf = crypto.randomBytes(1024) + , buf2 = crypto.randomBytes(1024) + , b = BufferList(buf) + + t.equal(buf.toString('hex'), b.slice().toString('hex'), 'same buffer') + b = BufferList([ buf, buf2 ]) + t.equal(b.slice().toString('hex'), Buffer.concat([ buf, buf2 ]).toString('hex'), 'same buffer') + t.end() +}) + +tape('test String appendage', function (t) { + var bl = new BufferList() + , b = Buffer.from('abcdefghij\xff\x00') + + bl.append('abcd') + bl.append('efg') + bl.append('hi') + bl.append('j') + bl.append('\xff\x00') + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc)) + }) + + t.end() +}) + +tape('test Number appendage', function (t) { + var bl = new BufferList() + , b = Buffer.from('1234567890') + + bl.append(1234) + bl.append(567) + bl.append(89) + bl.append(0) + + encodings.forEach(function (enc) { + t.equal(bl.toString(enc), b.toString(enc)) + }) + + t.end() +}) + +tape('write nothing, should get empty buffer', function (t) { + t.plan(3) + BufferList(function (err, data) { + t.notOk(err, 'no error') + t.ok(Buffer.isBuffer(data), 'got a buffer') + t.equal(0, data.length, 'got a zero-length buffer') + t.end() + }).end() +}) + +tape('unicode string', function (t) { + t.plan(2) + var inp1 = '\u2600' + , inp2 = '\u2603' + , exp = inp1 + ' and ' + inp2 + , bl = BufferList() + bl.write(inp1) + bl.write(' and ') + bl.write(inp2) + t.equal(exp, bl.toString()) + t.equal(Buffer.from(exp).toString('hex'), bl.toString('hex')) +}) + +tape('should emit finish', function (t) { + var source = BufferList() + , dest = BufferList() + + source.write('hello') + source.pipe(dest) + + dest.on('finish', function () { + t.equal(dest.toString('utf8'), 'hello') + t.end() + }) +}) + +tape('basic copy', function (t) { + var buf = crypto.randomBytes(1024) + , buf2 = Buffer.alloc(1024) + , b = BufferList(buf) + + b.copy(buf2) + t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy after many appends', function (t) { + var buf = crypto.randomBytes(512) + , buf2 = Buffer.alloc(1024) + , b = BufferList(buf) + + b.append(buf) + b.copy(buf2) + t.equal(b.slice().toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy at a precise position', function (t) { + var buf = crypto.randomBytes(1004) + , buf2 = Buffer.alloc(1024) + , b = BufferList(buf) + + b.copy(buf2, 20) + t.equal(b.slice().toString('hex'), buf2.slice(20).toString('hex'), 'same buffer') + t.end() +}) + +tape('copy starting from a precise location', function (t) { + var buf = crypto.randomBytes(10) + , buf2 = Buffer.alloc(5) + , b = BufferList(buf) + + b.copy(buf2, 0, 5) + t.equal(b.slice(5).toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy in an interval', function (t) { + var rnd = crypto.randomBytes(10) + , b = BufferList(rnd) // put the random bytes there + , actual = Buffer.alloc(3) + , expected = Buffer.alloc(3) + + rnd.copy(expected, 0, 5, 8) + b.copy(actual, 0, 5, 8) + + t.equal(actual.toString('hex'), expected.toString('hex'), 'same buffer') + t.end() +}) + +tape('copy an interval between two buffers', function (t) { + var buf = crypto.randomBytes(10) + , buf2 = Buffer.alloc(10) + , b = BufferList(buf) + + b.append(buf) + b.copy(buf2, 0, 5, 15) + + t.equal(b.slice(5, 15).toString('hex'), buf2.toString('hex'), 'same buffer') + t.end() +}) + +tape('shallow slice across buffer boundaries', function (t) { + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice(3, 13).toString(), 'stSecondTh') + t.end() +}) + +tape('shallow slice within single buffer', function (t) { + t.plan(2) + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice(5, 10).toString(), 'Secon') + t.equal(bl.shallowSlice(7, 10).toString(), 'con') + t.end() +}) + +tape('shallow slice single buffer', function (t) { + t.plan(3) + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice(0, 5).toString(), 'First') + t.equal(bl.shallowSlice(5, 11).toString(), 'Second') + t.equal(bl.shallowSlice(11, 16).toString(), 'Third') +}) + +tape('shallow slice with negative or omitted indices', function (t) { + t.plan(4) + var bl = new BufferList(['First', 'Second', 'Third']) + + t.equal(bl.shallowSlice().toString(), 'FirstSecondThird') + t.equal(bl.shallowSlice(5).toString(), 'SecondThird') + t.equal(bl.shallowSlice(5, -3).toString(), 'SecondTh') + t.equal(bl.shallowSlice(-8).toString(), 'ondThird') +}) + +tape('shallow slice does not make a copy', function (t) { + t.plan(1) + var buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')] + var bl = (new BufferList(buffers)).shallowSlice(5, -3) + + buffers[1].fill('h') + buffers[2].fill('h') + + t.equal(bl.toString(), 'hhhhhhhh') +}) + +tape('shallow slice with 0 length', function (t) { + t.plan(1) + var buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')] + var bl = (new BufferList(buffers)).shallowSlice(0, 0) + t.equal(bl.length, 0) +}) + +tape('shallow slice with 0 length from middle', function (t) { + t.plan(1) + var buffers = [Buffer.from('First'), Buffer.from('Second'), Buffer.from('Third')] + var bl = (new BufferList(buffers)).shallowSlice(10, 10) + t.equal(bl.length, 0) +}) + +tape('duplicate', function (t) { + t.plan(2) + + var bl = new BufferList('abcdefghij\xff\x00') + , dup = bl.duplicate() + + t.equal(bl.prototype, dup.prototype) + t.equal(bl.toString('hex'), dup.toString('hex')) +}) + +tape('destroy no pipe', function (t) { + t.plan(2) + + var bl = new BufferList('alsdkfja;lsdkfja;lsdk') + bl.destroy() + + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) +}) + +!process.browser && tape('destroy with pipe before read end', function (t) { + t.plan(2) + + var bl = new BufferList() + fs.createReadStream(__dirname + '/test.js') + .pipe(bl) + + bl.destroy() + + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) + +}) + +!process.browser && tape('destroy with pipe before read end with race', function (t) { + t.plan(2) + + var bl = new BufferList() + fs.createReadStream(__dirname + '/test.js') + .pipe(bl) + + setTimeout(function () { + bl.destroy() + setTimeout(function () { + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) + }, 500) + }, 500) +}) + +!process.browser && tape('destroy with pipe after read end', function (t) { + t.plan(2) + + var bl = new BufferList() + fs.createReadStream(__dirname + '/test.js') + .on('end', onEnd) + .pipe(bl) + + function onEnd () { + bl.destroy() + + t.equal(bl._bufs.length, 0) + t.equal(bl.length, 0) + } +}) + +!process.browser && tape('destroy with pipe while writing to a destination', function (t) { + t.plan(4) + + var bl = new BufferList() + , ds = new BufferList() + + fs.createReadStream(__dirname + '/test.js') + .on('end', onEnd) + .pipe(bl) + + function onEnd () { + bl.pipe(ds) + + setTimeout(function () { + bl.destroy() + + t.equals(bl._bufs.length, 0) + t.equals(bl.length, 0) + + ds.destroy() + + t.equals(bl._bufs.length, 0) + t.equals(bl.length, 0) + + }, 100) + } +}) + +!process.browser && tape('handle error', function (t) { + t.plan(2) + fs.createReadStream('/does/not/exist').pipe(BufferList(function (err, data) { + t.ok(err instanceof Error, 'has error') + t.notOk(data, 'no data') + })) +}) diff --git a/justdanceonline-main/node_modules/bluebird/LICENSE b/justdanceonline-main/node_modules/bluebird/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..ae732d5299f49d1eb388247146651845c317579e --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-2017 Petka Antonov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/bluebird/README.md b/justdanceonline-main/node_modules/bluebird/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ba82f73e275e1cbef6d6322a724c4dabe3b8e266 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/README.md @@ -0,0 +1,52 @@ + + Promises/A+ logo + + +[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird) +[![coverage-98%](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html) + +**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises) + +# Introduction + +Bluebird is a fully featured promise library with focus on innovative features and performance + +See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html) for further documentation, references and instructions. See the [**API reference**](http://bluebirdjs.com/docs/api-reference.html) here. + +For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x). + +# Questions and issues + +The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`. + + + +## Thanks + +Thanks to BrowserStack for providing us with a free account which lets us support old browsers like IE8. + +# License + +The MIT License (MIT) + +Copyright (c) 2013-2017 Petka Antonov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/justdanceonline-main/node_modules/bluebird/changelog.md b/justdanceonline-main/node_modules/bluebird/changelog.md new file mode 100644 index 0000000000000000000000000000000000000000..73b2eb6c79dd457df0eb958e09333adffc579f25 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/changelog.md @@ -0,0 +1 @@ +[http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html) diff --git a/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.core.js b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.core.js new file mode 100644 index 0000000000000000000000000000000000000000..85b779137dd10f9ae1f703918d2a746dc92677f7 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.core.js @@ -0,0 +1,3781 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core + * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + continue; + } + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +}; + +Async.prototype._drainQueues = function () { + this._drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + this._drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; + +},{"./queue":17,"./schedule":18,"./util":21}],2:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; + +},{}],3:[function(_dereq_,module,exports){ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = _dereq_("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; + +},{"./promise":15}],4:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; + +},{"./util":21}],5:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = _dereq_("./util"); +var getKeys = _dereq_("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; + +},{"./es5":10,"./util":21}],6:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; + +},{}],7:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, Context) { +var getDomain = Promise._getDomain; +var async = Promise._async; +var Warning = _dereq_("./errors").Warning; +var util = _dereq_("./util"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (true || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + var self = this; + setTimeout(function() { + self._notifyUnhandledRejection(); + }, 1); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var domain = getDomain(); + possiblyUnhandledRejection = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var domain = getDomain(); + unhandledRejectionHandled = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Context.deactivateLongStackTraces(); + async.enableTrampoline(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Context.activateLongStackTraces(); + async.disableTrampolineIfNecessary(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + +var fireDomEvent = (function() { + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new CustomEvent(name.toLowerCase(), { + detail: event, + cancelable: true + }); + return !util.global.dispatchEvent(domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new Event(name.toLowerCase(), { + cancelable: true + }); + domEvent.detail = event; + return !util.global.dispatchEvent(domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name.toLowerCase(), false, true, + event); + return !util.global.dispatchEvent(domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = firstLineError.stack.split("\n"); + var lastStackLines = lastLineError.stack.split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; + +},{"./errors":9,"./util":21}],8:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; + +},{}],9:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var Objectfreeze = es5.freeze; +var util = _dereq_("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; + +},{"./es5":10,"./util":21}],10:[function(_dereq_,module,exports){ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} + +},{}],11:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = _dereq_("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; + +},{"./catch_filter":5,"./util":21}],12:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, + getDomain) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!true) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!true) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var domain = getDomain(); + if (domain !== null) { + holder.fn = util.domainBind(domain, holder.fn); + } + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var args = [].slice.call(arguments);; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; + +},{"./util":21}],13:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; + +},{"./util":21}],14:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = _dereq_("./errors"); +var OperationalError = errors.OperationalError; +var es5 = _dereq_("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var args = [].slice.call(arguments, 1);; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; + +},{"./errors":9,"./es5":10,"./util":21}],15:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = _dereq_("./util"); + +var getDomain; +if (util.isNode) { + getDomain = function() { + var ret = process.domain; + if (ret === undefined) ret = null; + return ret; + }; +} else { + getDomain = function() { + return null; + }; +} +util.notEnumerableProp(Promise, "_getDomain", getDomain); + +var es5 = _dereq_("./es5"); +var Async = _dereq_("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = _dereq_("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); +var PromiseArray = + _dereq_("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = _dereq_("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; +var debug = _dereq_("./debuggability")(Promise, Context); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = _dereq_("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var domain = getDomain(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: domain === null ? handler + : (typeof handler === "function" && + util.domainBind(domain, handler)), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + this._bitField = this._bitField | 134217728; +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + domain +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = + domain === null ? reject : util.domainBind(domain, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + domain === null ? reject : util.domainBind(domain, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(promise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); +_dereq_("./direct_resolve")(Promise); +_dereq_("./synchronous_inspection")(Promise); +_dereq_("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); +Promise.Promise = Promise; +Promise.version = "3.5.1"; + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; + +},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = _dereq_("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; + +},{"./util":21}],17:[function(_dereq_,module,exports){ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; + +},{}],18:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova))) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; + +},{"./util":21}],19:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; + +},{}],20:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; + +},{"./util":21}],21:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var l = 8; + while (l--) new FakeConstructor(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if ({}.toString.call(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +function domainBind(self, cb) { + return self.bind(cb); +} + +var ret = { + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + hasDevTools: typeof chrome !== "undefined" && chrome && + typeof chrome.loadTimes === "function", + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + domainBind: domainBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version = process.versions.node.split(".").map(Number); + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; + +},{"./es5":10}]},{},[3])(3) +}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.core.min.js b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.core.min.js new file mode 100644 index 0000000000000000000000000000000000000000..6aca6aa3fd37e88c6e2263f967c2c3dc0b23928d --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.core.min.js @@ -0,0 +1,31 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core + * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+I.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?I.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new x(this._peekContext())}function _(t,e){if(H(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);I.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),I.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&X){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=C(s),l=c.length-1;l>=0;--l){var u=c[l];if(!V.test(u)){var p=u.match(Q);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=E(o);o.stack=a.message+"\n"+a.stack.join("\n")}tt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?w(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(I.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof N?N(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function j(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){B.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||k(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():I.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+T(e)+">, no stack trace)"}function T(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(nt=function(t){if(D.test(t))return!0;var e=R(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function x(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,x),e>32&&this.uncycle()}var O,A,N,L=e._getDomain,B=e._async,U=t("./errors").Warning,I=t("./util"),H=I.canAttachTrace,D=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,V=/\((?:timers\.js):\d+:\d+\)/,Q=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,G=null,M=!1,W=!(0==I.env("BLUEBIRD_DEBUG")||!I.env("BLUEBIRD_DEBUG")&&"development"!==I.env("NODE_ENV")),$=!(0==I.env("BLUEBIRD_WARNINGS")||!W&&!I.env("BLUEBIRD_WARNINGS")),z=!(0==I.env("BLUEBIRD_LONG_STACK_TRACES")||!W&&!I.env("BLUEBIRD_LONG_STACK_TRACES")),X=0!=I.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!I.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){j("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),j("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=L();A="function"==typeof t?null===e?t:I.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=L();O="function"==typeof t?null===e?t:I.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),B.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),B.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&P()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!I.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!I.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),I.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!I.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return I.isNode?function(){return process.emit.apply(process,arguments)}:I.global?function(t){var e="on"+t.toLowerCase(),n=I.global[e];return n?(n.apply(I.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){B.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){B.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,X=ot.warnings,I.isObject(n)&&"wForgottenReturn"in n&&(X=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(B.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;I.inherits(x,Error),n.CapturedTrace=x,x.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},x.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;b(r),m(r),I.notEnumerableProp(t,"stack",g(n,r)),I.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,G=e;var n=Error.captureStackTrace;return nt=function(t){return D.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,G=e,M=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(N=function(t){console.warn(t)},I.isNode&&process.stderr.isTTY?N=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:I.isNode||"string"!=typeof(new Error).stack||(N=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return z&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return f},checkForgottenReturns:d,setBounds:S,warn:y,deprecated:v,CapturedTrace:x,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":9,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var h=n(u,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(s,c,void 0,this,void 0)}}}return i.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));i[o++]=a}i.length=o;var s=arguments[r];return this._passThrough(h(i,s,this),1,void 0,l)},i}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("Catch statement predicate: expecting an object but got "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0); +},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise()},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.5.1",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return N.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.js b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.js new file mode 100644 index 0000000000000000000000000000000000000000..2bc524b5fc390741d5e3ac05365358b9a0121767 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.js @@ -0,0 +1,5623 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + continue; + } + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +}; + +Async.prototype._drainQueues = function () { + this._drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + this._drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; + +},{"./queue":26,"./schedule":29,"./util":36}],3:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; + +},{}],4:[function(_dereq_,module,exports){ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = _dereq_("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; + +},{"./promise":22}],5:[function(_dereq_,module,exports){ +"use strict"; +var cr = Object.create; +if (cr) { + var callerCache = cr(null); + var getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; +} + +module.exports = function(Promise) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var isIdentifier = util.isIdentifier; + +var getMethodCaller; +var getGetter; +if (!true) { +var makeMethodCaller = function (methodName) { + return new Function("ensureMethod", " \n\ + return function(obj) { \n\ + 'use strict' \n\ + var len = this.length; \n\ + ensureMethod(obj, 'methodName'); \n\ + switch(len) { \n\ + case 1: return obj.methodName(this[0]); \n\ + case 2: return obj.methodName(this[0], this[1]); \n\ + case 3: return obj.methodName(this[0], this[1], this[2]); \n\ + case 0: return obj.methodName(); \n\ + default: \n\ + return obj.methodName.apply(obj, this); \n\ + } \n\ + }; \n\ + ".replace(/methodName/g, methodName))(ensureMethod); +}; + +var makeGetter = function (propertyName) { + return new Function("obj", " \n\ + 'use strict'; \n\ + return obj.propertyName; \n\ + ".replace("propertyName", propertyName)); +}; + +var getCompiled = function(name, compiler, cache) { + var ret = cache[name]; + if (typeof ret !== "function") { + if (!isIdentifier(name)) { + return null; + } + ret = compiler(name); + cache[name] = ret; + cache[" size"]++; + if (cache[" size"] > 512) { + var keys = Object.keys(cache); + for (var i = 0; i < 256; ++i) delete cache[keys[i]]; + cache[" size"] = keys.length - 256; + } + } + return ret; +}; + +getMethodCaller = function(name) { + return getCompiled(name, makeMethodCaller, callerCache); +}; + +getGetter = function(name) { + return getCompiled(name, makeGetter, getterCache); +}; +} + +function ensureMethod(obj, methodName) { + var fn; + if (obj != null) fn = obj[methodName]; + if (typeof fn !== "function") { + var message = "Object " + util.classString(obj) + " has no method '" + + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; +} + +function caller(obj) { + var methodName = this.pop(); + var fn = ensureMethod(obj, methodName); + return fn.apply(obj, this); +} +Promise.prototype.call = function (methodName) { + var args = [].slice.call(arguments, 1);; + if (!true) { + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (maybeCaller !== null) { + return this._then( + maybeCaller, undefined, undefined, args, undefined); + } + } + } + args.push(methodName); + return this._then(caller, undefined, undefined, args, undefined); +}; + +function namedGetter(obj) { + return obj[this]; +} +function indexedGetter(obj) { + var index = +this; + if (index < 0) index = Math.max(0, index + obj.length); + return obj[index]; +} +Promise.prototype.get = function (propertyName) { + var isIndex = (typeof propertyName === "number"); + var getter; + if (!isIndex) { + if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = maybeGetter !== null ? maybeGetter : namedGetter; + } else { + getter = namedGetter; + } + } else { + getter = indexedGetter; + } + return this._then(getter, undefined, undefined, propertyName, undefined); +}; +}; + +},{"./util":36}],6:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; + +},{"./util":36}],7:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = _dereq_("./util"); +var getKeys = _dereq_("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; + +},{"./es5":13,"./util":36}],8:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; + +},{}],9:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, Context) { +var getDomain = Promise._getDomain; +var async = Promise._async; +var Warning = _dereq_("./errors").Warning; +var util = _dereq_("./util"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (true || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + var self = this; + setTimeout(function() { + self._notifyUnhandledRejection(); + }, 1); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var domain = getDomain(); + possiblyUnhandledRejection = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var domain = getDomain(); + unhandledRejectionHandled = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Context.deactivateLongStackTraces(); + async.enableTrampoline(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Context.activateLongStackTraces(); + async.disableTrampolineIfNecessary(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + +var fireDomEvent = (function() { + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new CustomEvent(name.toLowerCase(), { + detail: event, + cancelable: true + }); + return !util.global.dispatchEvent(domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new Event(name.toLowerCase(), { + cancelable: true + }); + domEvent.detail = event; + return !util.global.dispatchEvent(domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name.toLowerCase(), false, true, + event); + return !util.global.dispatchEvent(domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = firstLineError.stack.split("\n"); + var lastStackLines = lastLineError.stack.split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; + +},{"./errors":12,"./util":36}],10:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; + +},{}],11:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseReduce = Promise.reduce; +var PromiseAll = Promise.all; + +function promiseAllThis() { + return PromiseAll(this); +} + +function PromiseMapSeries(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); +} + +Promise.prototype.each = function (fn) { + return PromiseReduce(this, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, this, undefined); +}; + +Promise.prototype.mapSeries = function (fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); +}; + +Promise.each = function (promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, promises, undefined); +}; + +Promise.mapSeries = PromiseMapSeries; +}; + + +},{}],12:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var Objectfreeze = es5.freeze; +var util = _dereq_("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; + +},{"./es5":13,"./util":36}],13:[function(_dereq_,module,exports){ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} + +},{}],14:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseMap = Promise.map; + +Promise.prototype.filter = function (fn, options) { + return PromiseMap(this, fn, options, INTERNAL); +}; + +Promise.filter = function (promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); +}; +}; + +},{}],15:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = _dereq_("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; + +},{"./catch_filter":7,"./util":36}],16:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + apiRejection, + INTERNAL, + tryConvertToPromise, + Proxyable, + debug) { +var errors = _dereq_("./errors"); +var TypeError = errors.TypeError; +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +var yieldHandlers = []; + +function promiseFromYieldHandler(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + traceParent._popContext(); + if (result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + traceParent._popContext(); + return ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; +} + +function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + if (debug.cancellation()) { + var internal = new Promise(INTERNAL); + var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); + this._promise = internal.lastly(function() { + return _finallyPromise; + }); + internal._captureStackTrace(); + internal._setOnCancel(this); + } else { + var promise = this._promise = new Promise(INTERNAL); + promise._captureStackTrace(); + } + this._stack = stack; + this._generatorFunction = generatorFunction; + this._receiver = receiver; + this._generator = undefined; + this._yieldHandlers = typeof yieldHandler === "function" + ? [yieldHandler].concat(yieldHandlers) + : yieldHandlers; + this._yieldedPromise = null; + this._cancellationPhase = false; +} +util.inherits(PromiseSpawn, Proxyable); + +PromiseSpawn.prototype._isResolved = function() { + return this._promise === null; +}; + +PromiseSpawn.prototype._cleanup = function() { + this._promise = this._generator = null; + if (debug.cancellation() && this._finallyPromise !== null) { + this._finallyPromise._fulfill(); + this._finallyPromise = null; + } +}; + +PromiseSpawn.prototype._promiseCancelled = function() { + if (this._isResolved()) return; + var implementsReturn = typeof this._generator["return"] !== "undefined"; + + var result; + if (!implementsReturn) { + var reason = new Promise.CancellationError( + "generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + result = tryCatch(this._generator["throw"]).call(this._generator, + reason); + this._promise._popContext(); + } else { + this._promise._pushContext(); + result = tryCatch(this._generator["return"]).call(this._generator, + undefined); + this._promise._popContext(); + } + this._cancellationPhase = true; + this._yieldedPromise = null; + this._continue(result); +}; + +PromiseSpawn.prototype._promiseFulfilled = function(value) { + this._yieldedPromise = null; + this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._promiseRejected = function(reason) { + this._yieldedPromise = null; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + var result = tryCatch(this._generator["throw"]) + .call(this._generator, reason); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._resultCancelled = function() { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null; + promise.cancel(); + } +}; + +PromiseSpawn.prototype.promise = function () { + return this._promise; +}; + +PromiseSpawn.prototype._run = function () { + this._generator = this._generatorFunction.call(this._receiver); + this._receiver = + this._generatorFunction = undefined; + this._promiseFulfilled(undefined); +}; + +PromiseSpawn.prototype._continue = function (result) { + var promise = this._promise; + if (result === errorObj) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._rejectCallback(result.e, false); + } + } + + var value = result.value; + if (result.done === true) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._resolveCallback(value); + } + } else { + var maybePromise = tryConvertToPromise(value, this._promise); + if (!(maybePromise instanceof Promise)) { + maybePromise = + promiseFromYieldHandler(maybePromise, + this._yieldHandlers, + this._promise); + if (maybePromise === null) { + this._promiseRejected( + new TypeError( + "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + + "From coroutine:\u000a" + + this._stack.split("\n").slice(1, -7).join("\n") + ) + ); + return; + } + } + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + this._yieldedPromise = maybePromise; + maybePromise._proxy(this, null); + } else if (((bitField & 33554432) !== 0)) { + Promise._async.invoke( + this._promiseFulfilled, this, maybePromise._value() + ); + } else if (((bitField & 16777216) !== 0)) { + Promise._async.invoke( + this._promiseRejected, this, maybePromise._reason() + ); + } else { + this._promiseCancelled(); + } + } +}; + +Promise.coroutine = function (generatorFunction, options) { + if (typeof generatorFunction !== "function") { + throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var yieldHandler = Object(options).yieldHandler; + var PromiseSpawn$ = PromiseSpawn; + var stack = new Error().stack; + return function () { + var generator = generatorFunction.apply(this, arguments); + var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, + stack); + var ret = spawn.promise(); + spawn._generator = generator; + spawn._promiseFulfilled(undefined); + return ret; + }; +}; + +Promise.coroutine.addYieldHandler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + yieldHandlers.push(fn); +}; + +Promise.spawn = function (generatorFunction) { + debug.deprecated("Promise.spawn()", "Promise.coroutine()"); + if (typeof generatorFunction !== "function") { + return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var spawn = new PromiseSpawn(generatorFunction, this); + var ret = spawn.promise(); + spawn._run(Promise.spawn); + return ret; +}; +}; + +},{"./errors":12,"./util":36}],17:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, + getDomain) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!true) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!true) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var domain = getDomain(); + if (domain !== null) { + holder.fn = util.domainBind(domain, holder.fn); + } + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var args = [].slice.call(arguments);; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; + +},{"./util":36}],18:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises); + this._promise._captureStackTrace(); + var domain = getDomain(); + this._callback = domain === null ? fn : util.domainBind(domain, fn); + this._preservedValues = _filter === INTERNAL + ? new Array(this.length()) + : null; + this._limit = limit; + this._inFlight = 0; + this._queue = []; + async.invoke(this._asyncInit, this, undefined); +} +util.inherits(MappingPromiseArray, PromiseArray); + +MappingPromiseArray.prototype._asyncInit = function() { + this._init$(undefined, -2); +}; + +MappingPromiseArray.prototype._init = function () {}; + +MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { + var values = this._values; + var length = this.length(); + var preservedValues = this._preservedValues; + var limit = this._limit; + + if (index < 0) { + index = (index * -1) - 1; + values[index] = value; + if (limit >= 1) { + this._inFlight--; + this._drainQueue(); + if (this._isResolved()) return true; + } + } else { + if (limit >= 1 && this._inFlight >= limit) { + values[index] = value; + this._queue.push(index); + return false; + } + if (preservedValues !== null) preservedValues[index] = value; + + var promise = this._promise; + var callback = this._callback; + var receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + preservedValues !== null ? "Promise.filter" : "Promise.map", + promise + ); + if (ret === errorObj) { + this._reject(ret.e); + return true; + } + + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + if (limit >= 1) this._inFlight++; + values[index] = maybePromise; + maybePromise._proxy(this, (index + 1) * -1); + return false; + } else if (((bitField & 33554432) !== 0)) { + ret = maybePromise._value(); + } else if (((bitField & 16777216) !== 0)) { + this._reject(maybePromise._reason()); + return true; + } else { + this._cancel(); + return true; + } + } + values[index] = ret; + } + var totalResolved = ++this._totalResolved; + if (totalResolved >= length) { + if (preservedValues !== null) { + this._filter(values, preservedValues); + } else { + this._resolve(values); + } + return true; + } + return false; +}; + +MappingPromiseArray.prototype._drainQueue = function () { + var queue = this._queue; + var limit = this._limit; + var values = this._values; + while (queue.length > 0 && this._inFlight < limit) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } +}; + +MappingPromiseArray.prototype._filter = function (booleans, values) { + var len = values.length; + var ret = new Array(len); + var j = 0; + for (var i = 0; i < len; ++i) { + if (booleans[i]) ret[j++] = values[i]; + } + ret.length = j; + this._resolve(ret); +}; + +MappingPromiseArray.prototype.preservedValues = function () { + return this._preservedValues; +}; + +function map(promises, fn, options, _filter) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + + var limit = 0; + if (options !== undefined) { + if (typeof options === "object" && options !== null) { + if (typeof options.concurrency !== "number") { + return Promise.reject( + new TypeError("'concurrency' must be a number but it is " + + util.classString(options.concurrency))); + } + limit = options.concurrency; + } else { + return Promise.reject(new TypeError( + "options argument must be an object but it is " + + util.classString(options))); + } + } + limit = typeof limit === "number" && + isFinite(limit) && limit >= 1 ? limit : 0; + return new MappingPromiseArray(promises, fn, limit, _filter).promise(); +} + +Promise.prototype.map = function (fn, options) { + return map(this, fn, options, null); +}; + +Promise.map = function (promises, fn, options, _filter) { + return map(promises, fn, options, _filter); +}; + + +}; + +},{"./util":36}],19:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; + +},{"./util":36}],20:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = _dereq_("./errors"); +var OperationalError = errors.OperationalError; +var es5 = _dereq_("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var args = [].slice.call(arguments, 1);; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; + +},{"./errors":12,"./es5":13,"./util":36}],21:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var util = _dereq_("./util"); +var async = Promise._async; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function spreadAdapter(val, nodeback) { + var promise = this; + if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); + var ret = + tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +function successAdapter(val, nodeback) { + var promise = this; + var receiver = promise._boundValue(); + var ret = val === undefined + ? tryCatch(nodeback).call(receiver, null) + : tryCatch(nodeback).call(receiver, null, val); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} +function errorAdapter(reason, nodeback) { + var promise = this; + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason; + reason = newReason; + } + var ret = tryCatch(nodeback).call(promise._boundValue(), reason); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, + options) { + if (typeof nodeback == "function") { + var adapter = successAdapter; + if (options !== undefined && Object(options).spread) { + adapter = spreadAdapter; + } + this._then( + adapter, + errorAdapter, + undefined, + this, + nodeback + ); + } + return this; +}; +}; + +},{"./util":36}],22:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = _dereq_("./util"); + +var getDomain; +if (util.isNode) { + getDomain = function() { + var ret = process.domain; + if (ret === undefined) ret = null; + return ret; + }; +} else { + getDomain = function() { + return null; + }; +} +util.notEnumerableProp(Promise, "_getDomain", getDomain); + +var es5 = _dereq_("./es5"); +var Async = _dereq_("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = _dereq_("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); +var PromiseArray = + _dereq_("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = _dereq_("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; +var debug = _dereq_("./debuggability")(Promise, Context); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = _dereq_("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var domain = getDomain(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: domain === null ? handler + : (typeof handler === "function" && + util.domainBind(domain, handler)), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + this._bitField = this._bitField | 134217728; +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + domain +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = + domain === null ? reject : util.domainBind(domain, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + domain === null ? reject : util.domainBind(domain, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(promise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); +_dereq_("./direct_resolve")(Promise); +_dereq_("./synchronous_inspection")(Promise); +_dereq_("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); +Promise.Promise = Promise; +Promise.version = "3.5.1"; +_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +_dereq_('./call_get.js')(Promise); +_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); +_dereq_('./timers.js')(Promise, INTERNAL, debug); +_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); +_dereq_('./nodeify.js')(Promise); +_dereq_('./promisify.js')(Promise, INTERNAL); +_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); +_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); +_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +_dereq_('./settle.js')(Promise, PromiseArray, debug); +_dereq_('./some.js')(Promise, PromiseArray, apiRejection); +_dereq_('./filter.js')(Promise, INTERNAL); +_dereq_('./each.js')(Promise, INTERNAL); +_dereq_('./any.js')(Promise); + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; + +},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = _dereq_("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; + +},{"./util":36}],24:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var THIS = {}; +var util = _dereq_("./util"); +var nodebackForPromise = _dereq_("./nodeback"); +var withAppended = util.withAppended; +var maybeWrapAsError = util.maybeWrapAsError; +var canEvaluate = util.canEvaluate; +var TypeError = _dereq_("./errors").TypeError; +var defaultSuffix = "Async"; +var defaultPromisified = {__isPromisified__: true}; +var noCopyProps = [ + "arity", "length", + "name", + "arguments", + "caller", + "callee", + "prototype", + "__isPromisified__" +]; +var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); + +var defaultFilter = function(name) { + return util.isIdentifier(name) && + name.charAt(0) !== "_" && + name !== "constructor"; +}; + +function propsFilter(key) { + return !noCopyPropsPattern.test(key); +} + +function isPromisified(fn) { + try { + return fn.__isPromisified__ === true; + } + catch (e) { + return false; + } +} + +function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, + defaultPromisified); + return val ? isPromisified(val) : false; +} +function checkValid(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) { + var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); + for (var j = 0; j < ret.length; j += 2) { + if (ret[j] === keyWithoutAsyncSuffix) { + throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" + .replace("%s", suffix)); + } + } + } + } +} + +function promisifiableMethods(obj, suffix, suffixRegexp, filter) { + var keys = util.inheritedDataKeys(obj); + var ret = []; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var value = obj[key]; + var passesDefaultFilter = filter === defaultFilter + ? true : defaultFilter(key, value, obj); + if (typeof value === "function" && + !isPromisified(value) && + !hasPromisified(obj, key, suffix) && + filter(key, value, obj, passesDefaultFilter)) { + ret.push(key, value); + } + } + checkValid(ret, suffix, suffixRegexp); + return ret; +} + +var escapeIdentRegex = function(str) { + return str.replace(/([$])/, "\\$"); +}; + +var makeNodePromisifiedEval; +if (!true) { +var switchCaseArgumentOrder = function(likelyArgumentCount) { + var ret = [likelyArgumentCount]; + var min = Math.max(0, likelyArgumentCount - 1 - 3); + for(var i = likelyArgumentCount - 1; i >= min; --i) { + ret.push(i); + } + for(var i = likelyArgumentCount + 1; i <= 3; ++i) { + ret.push(i); + } + return ret; +}; + +var argumentSequence = function(argumentCount) { + return util.filledRange(argumentCount, "_arg", ""); +}; + +var parameterDeclaration = function(parameterCount) { + return util.filledRange( + Math.max(parameterCount, 3), "_arg", ""); +}; + +var parameterCount = function(fn) { + if (typeof fn.length === "number") { + return Math.max(Math.min(fn.length, 1023 + 1), 0); + } + return 0; +}; + +makeNodePromisifiedEval = +function(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, parameterCount(fn) - 1); + var argumentOrder = switchCaseArgumentOrder(newParameterCount); + var shouldProxyThis = typeof callback === "string" || receiver === THIS; + + function generateCallForArgumentCount(count) { + var args = argumentSequence(count).join(", "); + var comma = count > 0 ? ", " : ""; + var ret; + if (shouldProxyThis) { + ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; + } else { + ret = receiver === undefined + ? "ret = callback({{args}}, nodeback); break;\n" + : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; + } + return ret.replace("{{args}}", args).replace(", ", comma); + } + + function generateArgumentSwitchCase() { + var ret = ""; + for (var i = 0; i < argumentOrder.length; ++i) { + ret += "case " + argumentOrder[i] +":" + + generateCallForArgumentCount(argumentOrder[i]); + } + + ret += " \n\ + default: \n\ + var args = new Array(len + 1); \n\ + var i = 0; \n\ + for (var i = 0; i < len; ++i) { \n\ + args[i] = arguments[i]; \n\ + } \n\ + args[i] = nodeback; \n\ + [CodeForCall] \n\ + break; \n\ + ".replace("[CodeForCall]", (shouldProxyThis + ? "ret = callback.apply(this, args);\n" + : "ret = callback.apply(receiver, args);\n")); + return ret; + } + + var getFunctionCode = typeof callback === "string" + ? ("this != null ? this['"+callback+"'] : fn") + : "fn"; + var body = "'use strict'; \n\ + var ret = function (Parameters) { \n\ + 'use strict'; \n\ + var len = arguments.length; \n\ + var promise = new Promise(INTERNAL); \n\ + promise._captureStackTrace(); \n\ + var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ + var ret; \n\ + var callback = tryCatch([GetFunctionCode]); \n\ + switch(len) { \n\ + [CodeForSwitchCase] \n\ + } \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ + } \n\ + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ + return promise; \n\ + }; \n\ + notEnumerableProp(ret, '__isPromisified__', true); \n\ + return ret; \n\ + ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) + .replace("[GetFunctionCode]", getFunctionCode); + body = body.replace("Parameters", parameterDeclaration(newParameterCount)); + return new Function("Promise", + "fn", + "receiver", + "withAppended", + "maybeWrapAsError", + "nodebackForPromise", + "tryCatch", + "errorObj", + "notEnumerableProp", + "INTERNAL", + body)( + Promise, + fn, + receiver, + withAppended, + maybeWrapAsError, + nodebackForPromise, + util.tryCatch, + util.errorObj, + util.notEnumerableProp, + INTERNAL); +}; +} + +function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = (function() {return this;})(); + var method = callback; + if (typeof method === "string") { + callback = fn; + } + function promisified() { + var _receiver = receiver; + if (receiver === THIS) _receiver = this; + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = typeof method === "string" && this !== defaultThis + ? this[method] : callback; + var fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch(e) { + promise._rejectCallback(maybeWrapAsError(e), true, true); + } + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); + return promise; + } + util.notEnumerableProp(promisified, "__isPromisified__", true); + return promisified; +} + +var makeNodePromisified = canEvaluate + ? makeNodePromisifiedEval + : makeNodePromisifiedClosure; + +function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); + var methods = + promisifiableMethods(obj, suffix, suffixRegexp, filter); + + for (var i = 0, len = methods.length; i < len; i+= 2) { + var key = methods[i]; + var fn = methods[i+1]; + var promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) { + obj[promisifiedKey] = + makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + } else { + var promisified = promisifier(fn, function() { + return makeNodePromisified(key, THIS, key, + fn, suffix, multiArgs); + }); + util.notEnumerableProp(promisified, "__isPromisified__", true); + obj[promisifiedKey] = promisified; + } + } + util.toFastProperties(obj); + return obj; +} + +function promisify(callback, receiver, multiArgs) { + return makeNodePromisified(callback, receiver, undefined, + callback, null, multiArgs); +} + +Promise.promisify = function (fn, options) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + if (isPromisified(fn)) { + return fn; + } + options = Object(options); + var receiver = options.context === undefined ? THIS : options.context; + var multiArgs = !!options.multiArgs; + var ret = promisify(fn, receiver, multiArgs); + util.copyDescriptors(fn, ret, propsFilter); + return ret; +}; + +Promise.promisifyAll = function (target, options) { + if (typeof target !== "function" && typeof target !== "object") { + throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + options = Object(options); + var multiArgs = !!options.multiArgs; + var suffix = options.suffix; + if (typeof suffix !== "string") suffix = defaultSuffix; + var filter = options.filter; + if (typeof filter !== "function") filter = defaultFilter; + var promisifier = options.promisifier; + if (typeof promisifier !== "function") promisifier = makeNodePromisified; + + if (!util.isIdentifier(suffix)) { + throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + + var keys = util.inheritedDataKeys(target); + for (var i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + if (keys[i] !== "constructor" && + util.isClass(value)) { + promisifyAll(value.prototype, suffix, filter, promisifier, + multiArgs); + promisifyAll(value, suffix, filter, promisifier, multiArgs); + } + } + + return promisifyAll(target, suffix, filter, promisifier, multiArgs); +}; +}; + + +},{"./errors":12,"./nodeback":20,"./util":36}],25:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function( + Promise, PromiseArray, tryConvertToPromise, apiRejection) { +var util = _dereq_("./util"); +var isObject = util.isObject; +var es5 = _dereq_("./es5"); +var Es6Map; +if (typeof Map === "function") Es6Map = Map; + +var mapToEntries = (function() { + var index = 0; + var size = 0; + + function extractEntry(value, key) { + this[index] = value; + this[index + size] = key; + index++; + } + + return function mapToEntries(map) { + size = map.size; + index = 0; + var ret = new Array(map.size * 2); + map.forEach(extractEntry, ret); + return ret; + }; +})(); + +var entriesToMap = function(entries) { + var ret = new Es6Map(); + var length = entries.length / 2 | 0; + for (var i = 0; i < length; ++i) { + var key = entries[length + i]; + var value = entries[i]; + ret.set(key, value); + } + return ret; +}; + +function PropertiesPromiseArray(obj) { + var isMap = false; + var entries; + if (Es6Map !== undefined && obj instanceof Es6Map) { + entries = mapToEntries(obj); + isMap = true; + } else { + var keys = es5.keys(obj); + var len = keys.length; + entries = new Array(len * 2); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key]; + entries[i + len] = key; + } + } + this.constructor$(entries); + this._isMap = isMap; + this._init$(undefined, isMap ? -6 : -3); +} +util.inherits(PropertiesPromiseArray, PromiseArray); + +PropertiesPromiseArray.prototype._init = function () {}; + +PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + var val; + if (this._isMap) { + val = entriesToMap(this._values); + } else { + val = {}; + var keyOffset = this.length(); + for (var i = 0, len = this.length(); i < len; ++i) { + val[this._values[i + keyOffset]] = this._values[i]; + } + } + this._resolve(val); + return true; + } + return false; +}; + +PropertiesPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +PropertiesPromiseArray.prototype.getActualLength = function (len) { + return len >> 1; +}; + +function props(promises) { + var ret; + var castValue = tryConvertToPromise(promises); + + if (!isObject(castValue)) { + return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } else if (castValue instanceof Promise) { + ret = castValue._then( + Promise.props, undefined, undefined, undefined, undefined); + } else { + ret = new PropertiesPromiseArray(castValue).promise(); + } + + if (castValue instanceof Promise) { + ret._propagateFrom(castValue, 2); + } + return ret; +} + +Promise.prototype.props = function () { + return props(this); +}; + +Promise.props = function (promises) { + return props(promises); +}; +}; + +},{"./es5":13,"./util":36}],26:[function(_dereq_,module,exports){ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; + +},{}],27:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function( + Promise, INTERNAL, tryConvertToPromise, apiRejection) { +var util = _dereq_("./util"); + +var raceLater = function (promise) { + return promise.then(function(array) { + return race(array, promise); + }); +}; + +function race(promises, parent) { + var maybePromise = tryConvertToPromise(promises); + + if (maybePromise instanceof Promise) { + return raceLater(maybePromise); + } else { + promises = util.asArray(promises); + if (promises === null) + return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + } + + var ret = new Promise(INTERNAL); + if (parent !== undefined) { + ret._propagateFrom(parent, 3); + } + var fulfill = ret._fulfill; + var reject = ret._reject; + for (var i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; + + if (val === undefined && !(i in promises)) { + continue; + } + + Promise.cast(val)._then(fulfill, reject, undefined, ret, null); + } + return ret; +} + +Promise.race = function (promises) { + return race(promises, undefined); +}; + +Promise.prototype.race = function () { + return race(this, undefined); +}; + +}; + +},{"./util":36}],28:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var domain = getDomain(); + this._fn = domain === null ? fn : util.domainBind(domain, fn); + if (initialValue !== undefined) { + initialValue = Promise.resolve(initialValue); + initialValue._attachCancellationCallback(this); + } + this._initialValue = initialValue; + this._currentCancellable = null; + if(_each === INTERNAL) { + this._eachValues = Array(this._length); + } else if (_each === 0) { + this._eachValues = null; + } else { + this._eachValues = undefined; + } + this._promise._captureStackTrace(); + this._init$(undefined, -5); +} +util.inherits(ReductionPromiseArray, PromiseArray); + +ReductionPromiseArray.prototype._gotAccum = function(accum) { + if (this._eachValues !== undefined && + this._eachValues !== null && + accum !== INTERNAL) { + this._eachValues.push(accum); + } +}; + +ReductionPromiseArray.prototype._eachComplete = function(value) { + if (this._eachValues !== null) { + this._eachValues.push(value); + } + return this._eachValues; +}; + +ReductionPromiseArray.prototype._init = function() {}; + +ReductionPromiseArray.prototype._resolveEmptyArray = function() { + this._resolve(this._eachValues !== undefined ? this._eachValues + : this._initialValue); +}; + +ReductionPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +ReductionPromiseArray.prototype._resolve = function(value) { + this._promise._resolveCallback(value); + this._values = null; +}; + +ReductionPromiseArray.prototype._resultCancelled = function(sender) { + if (sender === this._initialValue) return this._cancel(); + if (this._isResolved()) return; + this._resultCancelled$(); + if (this._currentCancellable instanceof Promise) { + this._currentCancellable.cancel(); + } + if (this._initialValue instanceof Promise) { + this._initialValue.cancel(); + } +}; + +ReductionPromiseArray.prototype._iterate = function (values) { + this._values = values; + var value; + var i; + var length = values.length; + if (this._initialValue !== undefined) { + value = this._initialValue; + i = 0; + } else { + value = Promise.resolve(values[0]); + i = 1; + } + + this._currentCancellable = value; + + if (!value.isRejected()) { + for (; i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + value = value._then(gotAccum, undefined, undefined, ctx, undefined); + } + } + + if (this._eachValues !== undefined) { + value = value + ._then(this._eachComplete, undefined, undefined, this, undefined); + } + value._then(completed, completed, undefined, value, this); +}; + +Promise.prototype.reduce = function (fn, initialValue) { + return reduce(this, fn, initialValue, null); +}; + +Promise.reduce = function (promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); +}; + +function completed(valueOrReason, array) { + if (this.isFulfilled()) { + array._resolve(valueOrReason); + } else { + array._reject(valueOrReason); + } +} + +function reduce(promises, fn, initialValue, _each) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var array = new ReductionPromiseArray(promises, fn, initialValue, _each); + return array.promise(); +} + +function gotAccum(accum) { + this.accum = accum; + this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + if (value instanceof Promise) { + this.array._currentCancellable = value; + return value._then(gotValue, undefined, undefined, this, undefined); + } else { + return gotValue.call(this, value); + } +} + +function gotValue(value) { + var array = this.array; + var promise = array._promise; + var fn = tryCatch(array._fn); + promise._pushContext(); + var ret; + if (array._eachValues !== undefined) { + ret = fn.call(promise._boundValue(), value, this.index, this.length); + } else { + ret = fn.call(promise._boundValue(), + this.accum, value, this.index, this.length); + } + if (ret instanceof Promise) { + array._currentCancellable = ret; + } + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", + promise + ); + return ret; +} +}; + +},{"./util":36}],29:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova))) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; + +},{"./util":36}],30:[function(_dereq_,module,exports){ +"use strict"; +module.exports = + function(Promise, PromiseArray, debug) { +var PromiseInspection = Promise.PromiseInspection; +var util = _dereq_("./util"); + +function SettledPromiseArray(values) { + this.constructor$(values); +} +util.inherits(SettledPromiseArray, PromiseArray); + +SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { + this._values[index] = inspection; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { + var ret = new PromiseInspection(); + ret._bitField = 33554432; + ret._settledValueField = value; + return this._promiseResolved(index, ret); +}; +SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection(); + ret._bitField = 16777216; + ret._settledValueField = reason; + return this._promiseResolved(index, ret); +}; + +Promise.settle = function (promises) { + debug.deprecated(".settle()", ".reflect()"); + return new SettledPromiseArray(promises).promise(); +}; + +Promise.prototype.settle = function () { + return Promise.settle(this); +}; +}; + +},{"./util":36}],31:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, apiRejection) { +var util = _dereq_("./util"); +var RangeError = _dereq_("./errors").RangeError; +var AggregateError = _dereq_("./errors").AggregateError; +var isArray = util.isArray; +var CANCELLATION = {}; + + +function SomePromiseArray(values) { + this.constructor$(values); + this._howMany = 0; + this._unwrap = false; + this._initialized = false; +} +util.inherits(SomePromiseArray, PromiseArray); + +SomePromiseArray.prototype._init = function () { + if (!this._initialized) { + return; + } + if (this._howMany === 0) { + this._resolve([]); + return; + } + this._init$(undefined, -5); + var isArrayResolved = isArray(this._values); + if (!this._isResolved() && + isArrayResolved && + this._howMany > this._canPossiblyFulfill()) { + this._reject(this._getRangeError(this.length())); + } +}; + +SomePromiseArray.prototype.init = function () { + this._initialized = true; + this._init(); +}; + +SomePromiseArray.prototype.setUnwrap = function () { + this._unwrap = true; +}; + +SomePromiseArray.prototype.howMany = function () { + return this._howMany; +}; + +SomePromiseArray.prototype.setHowMany = function (count) { + this._howMany = count; +}; + +SomePromiseArray.prototype._promiseFulfilled = function (value) { + this._addFulfilled(value); + if (this._fulfilled() === this.howMany()) { + this._values.length = this.howMany(); + if (this.howMany() === 1 && this._unwrap) { + this._resolve(this._values[0]); + } else { + this._resolve(this._values); + } + return true; + } + return false; + +}; +SomePromiseArray.prototype._promiseRejected = function (reason) { + this._addRejected(reason); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._promiseCancelled = function () { + if (this._values instanceof Promise || this._values == null) { + return this._cancel(); + } + this._addRejected(CANCELLATION); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._checkOutcome = function() { + if (this.howMany() > this._canPossiblyFulfill()) { + var e = new AggregateError(); + for (var i = this.length(); i < this._values.length; ++i) { + if (this._values[i] !== CANCELLATION) { + e.push(this._values[i]); + } + } + if (e.length > 0) { + this._reject(e); + } else { + this._cancel(); + } + return true; + } + return false; +}; + +SomePromiseArray.prototype._fulfilled = function () { + return this._totalResolved; +}; + +SomePromiseArray.prototype._rejected = function () { + return this._values.length - this.length(); +}; + +SomePromiseArray.prototype._addRejected = function (reason) { + this._values.push(reason); +}; + +SomePromiseArray.prototype._addFulfilled = function (value) { + this._values[this._totalResolved++] = value; +}; + +SomePromiseArray.prototype._canPossiblyFulfill = function () { + return this.length() - this._rejected(); +}; + +SomePromiseArray.prototype._getRangeError = function (count) { + var message = "Input array must contain at least " + + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); +}; + +SomePromiseArray.prototype._resolveEmptyArray = function () { + this._reject(this._getRangeError(0)); +}; + +function some(promises, howMany) { + if ((howMany | 0) !== howMany || howMany < 0) { + return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(howMany); + ret.init(); + return promise; +} + +Promise.some = function (promises, howMany) { + return some(promises, howMany); +}; + +Promise.prototype.some = function (howMany) { + return some(this, howMany); +}; + +Promise._SomePromiseArray = SomePromiseArray; +}; + +},{"./errors":12,"./util":36}],32:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; + +},{}],33:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; + +},{"./util":36}],34:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, debug) { +var util = _dereq_("./util"); +var TimeoutError = Promise.TimeoutError; + +function HandleWrapper(handle) { + this.handle = handle; +} + +HandleWrapper.prototype._resultCancelled = function() { + clearTimeout(this.handle); +}; + +var afterValue = function(value) { return delay(+this).thenReturn(value); }; +var delay = Promise.delay = function (ms, value) { + var ret; + var handle; + if (value !== undefined) { + ret = Promise.resolve(value) + ._then(afterValue, null, null, ms, undefined); + if (debug.cancellation() && value instanceof Promise) { + ret._setOnCancel(value); + } + } else { + ret = new Promise(INTERNAL); + handle = setTimeout(function() { ret._fulfill(); }, +ms); + if (debug.cancellation()) { + ret._setOnCancel(new HandleWrapper(handle)); + } + ret._captureStackTrace(); + } + ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.prototype.delay = function (ms) { + return delay(ms, this); +}; + +var afterTimeout = function (promise, message, parent) { + var err; + if (typeof message !== "string") { + if (message instanceof Error) { + err = message; + } else { + err = new TimeoutError("operation timed out"); + } + } else { + err = new TimeoutError(message); + } + util.markAsOriginatingFromRejection(err); + promise._attachExtraTrace(err); + promise._reject(err); + + if (parent != null) { + parent.cancel(); + } +}; + +function successClear(value) { + clearTimeout(this.handle); + return value; +} + +function failureClear(reason) { + clearTimeout(this.handle); + throw reason; +} + +Promise.prototype.timeout = function (ms, message) { + ms = +ms; + var ret, parent; + + var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { + if (ret.isPending()) { + afterTimeout(ret, message, parent); + } + }, ms)); + + if (debug.cancellation()) { + parent = this.then(); + ret = parent._then(successClear, failureClear, + undefined, handleWrapper, undefined); + ret._setOnCancel(handleWrapper); + } else { + ret = this._then(successClear, failureClear, + undefined, handleWrapper, undefined); + } + + return ret; +}; + +}; + +},{"./util":36}],35:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function (Promise, apiRejection, tryConvertToPromise, + createContext, INTERNAL, debug) { + var util = _dereq_("./util"); + var TypeError = _dereq_("./errors").TypeError; + var inherits = _dereq_("./util").inherits; + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + var NULL = {}; + + function thrower(e) { + setTimeout(function(){throw e;}, 0); + } + + function castPreservingDisposable(thenable) { + var maybePromise = tryConvertToPromise(thenable); + if (maybePromise !== thenable && + typeof thenable._isDisposable === "function" && + typeof thenable._getDisposer === "function" && + thenable._isDisposable()) { + maybePromise._setDisposable(thenable._getDisposer()); + } + return maybePromise; + } + function dispose(resources, inspection) { + var i = 0; + var len = resources.length; + var ret = new Promise(INTERNAL); + function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = castPreservingDisposable(resources[i++]); + if (maybePromise instanceof Promise && + maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise( + maybePromise._getDisposer().tryDispose(inspection), + resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) { + return maybePromise._then(iterator, thrower, + null, null, null); + } + } + iterator(); + } + iterator(); + return ret; + } + + function Disposer(data, promise, context) { + this._data = data; + this._promise = promise; + this._context = context; + } + + Disposer.prototype.data = function () { + return this._data; + }; + + Disposer.prototype.promise = function () { + return this._promise; + }; + + Disposer.prototype.resource = function () { + if (this.promise().isFulfilled()) { + return this.promise().value(); + } + return NULL; + }; + + Disposer.prototype.tryDispose = function(inspection) { + var resource = this.resource(); + var context = this._context; + if (context !== undefined) context._pushContext(); + var ret = resource !== NULL + ? this.doDispose(resource, inspection) : null; + if (context !== undefined) context._popContext(); + this._promise._unsetDisposable(); + this._data = null; + return ret; + }; + + Disposer.isDisposer = function (d) { + return (d != null && + typeof d.resource === "function" && + typeof d.tryDispose === "function"); + }; + + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + inherits(FunctionDisposer, Disposer); + + FunctionDisposer.prototype.doDispose = function (resource, inspection) { + var fn = this.data(); + return fn.call(resource, resource, inspection); + }; + + function maybeUnwrapDisposer(value) { + if (Disposer.isDisposer(value)) { + this.resources[this.index]._setDisposable(value); + return value.promise(); + } + return value; + } + + function ResourceList(length) { + this.length = length; + this.promise = null; + this[length-1] = null; + } + + ResourceList.prototype._resultCancelled = function() { + var len = this.length; + for (var i = 0; i < len; ++i) { + var item = this[i]; + if (item instanceof Promise) { + item.cancel(); + } + } + }; + + Promise.using = function () { + var len = arguments.length; + if (len < 2) return apiRejection( + "you must pass at least 2 arguments to Promise.using"); + var fn = arguments[len - 1]; + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var input; + var spreadArgs = true; + if (len === 2 && Array.isArray(arguments[0])) { + input = arguments[0]; + len = input.length; + spreadArgs = false; + } else { + input = arguments; + len--; + } + var resources = new ResourceList(len); + for (var i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + resource = resource.promise(); + resource._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + if (maybePromise instanceof Promise) { + resource = + maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, undefined); + } + } + resources[i] = resource; + } + + var reflectedResources = new Array(resources.length); + for (var i = 0; i < reflectedResources.length; ++i) { + reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + } + + var resultPromise = Promise.all(reflectedResources) + .then(function(inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) { + errorObj.e = inspection.error(); + return errorObj; + } else if (!inspection.isFulfilled()) { + resultPromise.cancel(); + return; + } + inspections[i] = inspection.value(); + } + promise._pushContext(); + + fn = tryCatch(fn); + var ret = spreadArgs + ? fn.apply(undefined, inspections) : fn(inspections); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, promiseCreated, "Promise.using", promise); + return ret; + }); + + var promise = resultPromise.lastly(function() { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + }); + resources.promise = promise; + promise._setOnCancel(resources); + return promise; + }; + + Promise.prototype._setDisposable = function (disposer) { + this._bitField = this._bitField | 131072; + this._disposer = disposer; + }; + + Promise.prototype._isDisposable = function () { + return (this._bitField & 131072) > 0; + }; + + Promise.prototype._getDisposer = function () { + return this._disposer; + }; + + Promise.prototype._unsetDisposable = function () { + this._bitField = this._bitField & (~131072); + this._disposer = undefined; + }; + + Promise.prototype.disposer = function (fn) { + if (typeof fn === "function") { + return new FunctionDisposer(fn, this, createContext()); + } + throw new TypeError(); + }; + +}; + +},{"./errors":12,"./util":36}],36:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var l = 8; + while (l--) new FakeConstructor(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if ({}.toString.call(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +function domainBind(self, cb) { + return self.bind(cb); +} + +var ret = { + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + hasDevTools: typeof chrome !== "undefined" && chrome && + typeof chrome.loadTimes === "function", + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + domainBind: domainBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version = process.versions.node.split(".").map(Number); + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; + +},{"./es5":13}]},{},[4])(4) +}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.min.js b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.min.js new file mode 100644 index 0000000000000000000000000000000000000000..e02a9cddc505e788224c3c57556c11a16be35804 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/browser/bluebird.min.js @@ -0,0 +1,31 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2017 Petka Antonov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ +/** + * bluebird build version 3.5.1 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=a},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new S(this._peekContext())}function _(t,e){if(N(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=j(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&W){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=w(a),l=c.length-1;l>=0;--l){var u=c[l];if(!U.test(u)){var p=u.match(M);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=j(o);o.stack=s.message+"\n"+s.stack.join("\n")}tt("warning",o)||E(o,"",!0)}}function m(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function j(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?C(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function E(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+Q(i,t)}else r=e+String(t);"function"==typeof D?D(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function k(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||E(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(nt=function(t){if(B.test(t))return!0;var e=P(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,S),e>32&&this.uncycle()}var O,A,D,V=e._getDomain,I=e._async,L=t("./errors").Warning,H=t("./util"),N=H.canAttachTrace,B=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,U=/\((?:timers\.js):\d+:\d+\)/,M=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,Q=null,$=!1,G=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),z=!(0==H.env("BLUEBIRD_WARNINGS")||!G&&!H.env("BLUEBIRD_WARNINGS")),X=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!G&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),W=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(z||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var t=this;setTimeout(function(){t._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){k("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),k("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=V();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=V();O="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&T()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&T()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!H.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,W=ot.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(W=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=j(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;b(r),g(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,Q=e;var n=Error.captureStackTrace;return nt=function(t){return B.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,Q=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(Q=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,Q=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(D=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?D=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:H.isNode||"string"!=typeof(new Error).stack||(D=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:z,longStackTraces:!1,cancellation:!1,monitoring:!1};return X&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return h},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":12,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return l.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(h.e=t,h)}function l(t){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),t);if(u===r)return u;if(void 0!==u){i._setReturnedNonUndefined();var f=n(u,i);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),h.e=_,h}f.isPending()&&f._attachCancellationCallback(new o(this))}return f._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),h.e=t,h):(s(this),t)}var u=t("./util"),p=e.CancellationError,h=u.errorObj,f=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!u.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(f(i,a,this),1,void 0,l)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(x.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&x.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==b){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(x.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){x.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,x),t("./bind")(i,b,j,x),t("./cancel")(i,E,p,x),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.5.1",t("./map.js")(i,E,p,j,b,x),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,x),t("./timers.js")(i,b,x),t("./generators.js")(i,p,b,j,n,x),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,x),t("./settle.js")(i,E,x),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),x.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t), +this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/justdanceonline-main/node_modules/bluebird/js/release/any.js b/justdanceonline-main/node_modules/bluebird/js/release/any.js new file mode 100644 index 0000000000000000000000000000000000000000..05a6228ef9c9016f6ee42ec9cb1322e120c1961b --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/any.js @@ -0,0 +1,21 @@ +"use strict"; +module.exports = function(Promise) { +var SomePromiseArray = Promise._SomePromiseArray; +function any(promises) { + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(1); + ret.setUnwrap(); + ret.init(); + return promise; +} + +Promise.any = function (promises) { + return any(promises); +}; + +Promise.prototype.any = function () { + return any(this); +}; + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/assert.js b/justdanceonline-main/node_modules/bluebird/js/release/assert.js new file mode 100644 index 0000000000000000000000000000000000000000..4518231a1b496f306f5406358f82a2a236657462 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/assert.js @@ -0,0 +1,55 @@ +"use strict"; +module.exports = (function(){ +var AssertionError = (function() { + function AssertionError(a) { + this.constructor$(a); + this.message = a; + this.name = "AssertionError"; + } + AssertionError.prototype = new Error(); + AssertionError.prototype.constructor = AssertionError; + AssertionError.prototype.constructor$ = Error; + return AssertionError; +})(); + +function getParams(args) { + var params = []; + for (var i = 0; i < args.length; ++i) params.push("arg" + i); + return params; +} + +function nativeAssert(callName, args, expect) { + try { + var params = getParams(args); + var constructorArgs = params; + constructorArgs.push("return " + + callName + "("+ params.join(",") + ");"); + var fn = Function.apply(null, constructorArgs); + return fn.apply(null, args); + } catch (e) { + if (!(e instanceof SyntaxError)) { + throw e; + } else { + return expect; + } + } +} + +return function assert(boolExpr, message) { + if (boolExpr === true) return; + + if (typeof boolExpr === "string" && + boolExpr.charAt(0) === "%") { + var nativeCallName = boolExpr; + var $_len = arguments.length;var args = new Array(Math.max($_len - 2, 0)); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];}; + if (nativeAssert(nativeCallName, args, message) === message) return; + message = (nativeCallName + " !== " + message); + } + + var ret = new AssertionError(message); + if (Error.captureStackTrace) { + Error.captureStackTrace(ret, assert); + } + throw ret; +}; +})(); diff --git a/justdanceonline-main/node_modules/bluebird/js/release/async.js b/justdanceonline-main/node_modules/bluebird/js/release/async.js new file mode 100644 index 0000000000000000000000000000000000000000..41f665564750a6fc51c07067d759e6940a061f9f --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/async.js @@ -0,0 +1,161 @@ +"use strict"; +var firstLineError; +try {throw new Error(); } catch (e) {firstLineError = e;} +var schedule = require("./schedule"); +var Queue = require("./queue"); +var util = require("./util"); + +function Async() { + this._customScheduler = false; + this._isTickUsed = false; + this._lateQueue = new Queue(16); + this._normalQueue = new Queue(16); + this._haveDrainedQueues = false; + this._trampolineEnabled = true; + var self = this; + this.drainQueues = function () { + self._drainQueues(); + }; + this._schedule = schedule; +} + +Async.prototype.setScheduler = function(fn) { + var prev = this._schedule; + this._schedule = fn; + this._customScheduler = true; + return prev; +}; + +Async.prototype.hasCustomScheduler = function() { + return this._customScheduler; +}; + +Async.prototype.enableTrampoline = function() { + this._trampolineEnabled = true; +}; + +Async.prototype.disableTrampolineIfNecessary = function() { + if (util.hasDevTools) { + this._trampolineEnabled = false; + } +}; + +Async.prototype.haveItemsQueued = function () { + return this._isTickUsed || this._haveDrainedQueues; +}; + + +Async.prototype.fatalError = function(e, isNode) { + if (isNode) { + process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + + "\n"); + process.exit(2); + } else { + this.throwLater(e); + } +}; + +Async.prototype.throwLater = function(fn, arg) { + if (arguments.length === 1) { + arg = fn; + fn = function () { throw arg; }; + } + if (typeof setTimeout !== "undefined") { + setTimeout(function() { + fn(arg); + }, 0); + } else try { + this._schedule(function() { + fn(arg); + }); + } catch (e) { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } +}; + +function AsyncInvokeLater(fn, receiver, arg) { + this._lateQueue.push(fn, receiver, arg); + this._queueTick(); +} + +function AsyncInvoke(fn, receiver, arg) { + this._normalQueue.push(fn, receiver, arg); + this._queueTick(); +} + +function AsyncSettlePromises(promise) { + this._normalQueue._pushOne(promise); + this._queueTick(); +} + +if (!util.hasDevTools) { + Async.prototype.invokeLater = AsyncInvokeLater; + Async.prototype.invoke = AsyncInvoke; + Async.prototype.settlePromises = AsyncSettlePromises; +} else { + Async.prototype.invokeLater = function (fn, receiver, arg) { + if (this._trampolineEnabled) { + AsyncInvokeLater.call(this, fn, receiver, arg); + } else { + this._schedule(function() { + setTimeout(function() { + fn.call(receiver, arg); + }, 100); + }); + } + }; + + Async.prototype.invoke = function (fn, receiver, arg) { + if (this._trampolineEnabled) { + AsyncInvoke.call(this, fn, receiver, arg); + } else { + this._schedule(function() { + fn.call(receiver, arg); + }); + } + }; + + Async.prototype.settlePromises = function(promise) { + if (this._trampolineEnabled) { + AsyncSettlePromises.call(this, promise); + } else { + this._schedule(function() { + promise._settlePromises(); + }); + } + }; +} + +Async.prototype._drainQueue = function(queue) { + while (queue.length() > 0) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + continue; + } + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +}; + +Async.prototype._drainQueues = function () { + this._drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + this._drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/bind.js b/justdanceonline-main/node_modules/bluebird/js/release/bind.js new file mode 100644 index 0000000000000000000000000000000000000000..fc3379db28c259ba329de6617f355225c86e926c --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/bind.js @@ -0,0 +1,67 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/bluebird.js b/justdanceonline-main/node_modules/bluebird/js/release/bluebird.js new file mode 100644 index 0000000000000000000000000000000000000000..1c36cf36446be3d393dd705a97f34c992312da07 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/bluebird.js @@ -0,0 +1,11 @@ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = require("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/call_get.js b/justdanceonline-main/node_modules/bluebird/js/release/call_get.js new file mode 100644 index 0000000000000000000000000000000000000000..0ed7714ac11e0d84a6debb289a6df06b17cac6e1 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/call_get.js @@ -0,0 +1,123 @@ +"use strict"; +var cr = Object.create; +if (cr) { + var callerCache = cr(null); + var getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; +} + +module.exports = function(Promise) { +var util = require("./util"); +var canEvaluate = util.canEvaluate; +var isIdentifier = util.isIdentifier; + +var getMethodCaller; +var getGetter; +if (!false) { +var makeMethodCaller = function (methodName) { + return new Function("ensureMethod", " \n\ + return function(obj) { \n\ + 'use strict' \n\ + var len = this.length; \n\ + ensureMethod(obj, 'methodName'); \n\ + switch(len) { \n\ + case 1: return obj.methodName(this[0]); \n\ + case 2: return obj.methodName(this[0], this[1]); \n\ + case 3: return obj.methodName(this[0], this[1], this[2]); \n\ + case 0: return obj.methodName(); \n\ + default: \n\ + return obj.methodName.apply(obj, this); \n\ + } \n\ + }; \n\ + ".replace(/methodName/g, methodName))(ensureMethod); +}; + +var makeGetter = function (propertyName) { + return new Function("obj", " \n\ + 'use strict'; \n\ + return obj.propertyName; \n\ + ".replace("propertyName", propertyName)); +}; + +var getCompiled = function(name, compiler, cache) { + var ret = cache[name]; + if (typeof ret !== "function") { + if (!isIdentifier(name)) { + return null; + } + ret = compiler(name); + cache[name] = ret; + cache[" size"]++; + if (cache[" size"] > 512) { + var keys = Object.keys(cache); + for (var i = 0; i < 256; ++i) delete cache[keys[i]]; + cache[" size"] = keys.length - 256; + } + } + return ret; +}; + +getMethodCaller = function(name) { + return getCompiled(name, makeMethodCaller, callerCache); +}; + +getGetter = function(name) { + return getCompiled(name, makeGetter, getterCache); +}; +} + +function ensureMethod(obj, methodName) { + var fn; + if (obj != null) fn = obj[methodName]; + if (typeof fn !== "function") { + var message = "Object " + util.classString(obj) + " has no method '" + + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; +} + +function caller(obj) { + var methodName = this.pop(); + var fn = ensureMethod(obj, methodName); + return fn.apply(obj, this); +} +Promise.prototype.call = function (methodName) { + var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; + if (!false) { + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (maybeCaller !== null) { + return this._then( + maybeCaller, undefined, undefined, args, undefined); + } + } + } + args.push(methodName); + return this._then(caller, undefined, undefined, args, undefined); +}; + +function namedGetter(obj) { + return obj[this]; +} +function indexedGetter(obj) { + var index = +this; + if (index < 0) index = Math.max(0, index + obj.length); + return obj[index]; +} +Promise.prototype.get = function (propertyName) { + var isIndex = (typeof propertyName === "number"); + var getter; + if (!isIndex) { + if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = maybeGetter !== null ? maybeGetter : namedGetter; + } else { + getter = namedGetter; + } + } else { + getter = indexedGetter; + } + return this._then(getter, undefined, undefined, propertyName, undefined); +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/cancel.js b/justdanceonline-main/node_modules/bluebird/js/release/cancel.js new file mode 100644 index 0000000000000000000000000000000000000000..7a12415ee5852ce66e78598d429903addb99cc02 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/cancel.js @@ -0,0 +1,129 @@ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/catch_filter.js b/justdanceonline-main/node_modules/bluebird/js/release/catch_filter.js new file mode 100644 index 0000000000000000000000000000000000000000..0f24ce23eca23ff193a3040d8fdfb394fdb76ccf --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/catch_filter.js @@ -0,0 +1,42 @@ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = require("./util"); +var getKeys = require("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/context.js b/justdanceonline-main/node_modules/bluebird/js/release/context.js new file mode 100644 index 0000000000000000000000000000000000000000..c307414fc627c9a75b95ee2fdad408f9e47d2fa3 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/context.js @@ -0,0 +1,69 @@ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/debuggability.js b/justdanceonline-main/node_modules/bluebird/js/release/debuggability.js new file mode 100644 index 0000000000000000000000000000000000000000..6956804131112fe030ae6b265c68b9215d3049d9 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/debuggability.js @@ -0,0 +1,919 @@ +"use strict"; +module.exports = function(Promise, Context) { +var getDomain = Promise._getDomain; +var async = Promise._async; +var Warning = require("./errors").Warning; +var util = require("./util"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (false || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + var self = this; + setTimeout(function() { + self._notifyUnhandledRejection(); + }, 1); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var domain = getDomain(); + possiblyUnhandledRejection = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var domain = getDomain(); + unhandledRejectionHandled = + typeof fn === "function" ? (domain === null ? + fn : util.domainBind(domain, fn)) + : undefined; +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Context.deactivateLongStackTraces(); + async.enableTrampoline(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Context.activateLongStackTraces(); + async.disableTrampolineIfNecessary(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + +var fireDomEvent = (function() { + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new CustomEvent(name.toLowerCase(), { + detail: event, + cancelable: true + }); + return !util.global.dispatchEvent(domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = new Event(name.toLowerCase(), { + cancelable: true + }); + domEvent.detail = event; + return !util.global.dispatchEvent(domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name.toLowerCase(), false, true, + event); + return !util.global.dispatchEvent(domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = firstLineError.stack.split("\n"); + var lastStackLines = lastLineError.stack.split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/direct_resolve.js b/justdanceonline-main/node_modules/bluebird/js/release/direct_resolve.js new file mode 100644 index 0000000000000000000000000000000000000000..a89029826142e8fe632f6dc1192788b737b4781a --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/direct_resolve.js @@ -0,0 +1,46 @@ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/each.js b/justdanceonline-main/node_modules/bluebird/js/release/each.js new file mode 100644 index 0000000000000000000000000000000000000000..e4f3d05ba3477be74d89cbf092523cb2d6dd900f --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/each.js @@ -0,0 +1,30 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseReduce = Promise.reduce; +var PromiseAll = Promise.all; + +function promiseAllThis() { + return PromiseAll(this); +} + +function PromiseMapSeries(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); +} + +Promise.prototype.each = function (fn) { + return PromiseReduce(this, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, this, undefined); +}; + +Promise.prototype.mapSeries = function (fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); +}; + +Promise.each = function (promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, promises, undefined); +}; + +Promise.mapSeries = PromiseMapSeries; +}; + diff --git a/justdanceonline-main/node_modules/bluebird/js/release/errors.js b/justdanceonline-main/node_modules/bluebird/js/release/errors.js new file mode 100644 index 0000000000000000000000000000000000000000..f62f323eb8ffd6c036c4dfd2ba039ed471bd25fd --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/errors.js @@ -0,0 +1,116 @@ +"use strict"; +var es5 = require("./es5"); +var Objectfreeze = es5.freeze; +var util = require("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/es5.js b/justdanceonline-main/node_modules/bluebird/js/release/es5.js new file mode 100644 index 0000000000000000000000000000000000000000..ea41d5a566921d91aa77ea549d569a96782a4bfc --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/es5.js @@ -0,0 +1,80 @@ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} diff --git a/justdanceonline-main/node_modules/bluebird/js/release/filter.js b/justdanceonline-main/node_modules/bluebird/js/release/filter.js new file mode 100644 index 0000000000000000000000000000000000000000..ed57bf0159212ea42c9c8b76f07a2f3dac9f36cb --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/filter.js @@ -0,0 +1,12 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseMap = Promise.map; + +Promise.prototype.filter = function (fn, options) { + return PromiseMap(this, fn, options, INTERNAL); +}; + +Promise.filter = function (promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/finally.js b/justdanceonline-main/node_modules/bluebird/js/release/finally.js new file mode 100644 index 0000000000000000000000000000000000000000..d57444bed4fa8e8703ba5f234882f9a3adc94406 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/finally.js @@ -0,0 +1,146 @@ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = require("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = require("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/generators.js b/justdanceonline-main/node_modules/bluebird/js/release/generators.js new file mode 100644 index 0000000000000000000000000000000000000000..500c280c0b075932e6a6dadf003ed5728a51b3a4 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/generators.js @@ -0,0 +1,223 @@ +"use strict"; +module.exports = function(Promise, + apiRejection, + INTERNAL, + tryConvertToPromise, + Proxyable, + debug) { +var errors = require("./errors"); +var TypeError = errors.TypeError; +var util = require("./util"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +var yieldHandlers = []; + +function promiseFromYieldHandler(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + traceParent._popContext(); + if (result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + traceParent._popContext(); + return ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; +} + +function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + if (debug.cancellation()) { + var internal = new Promise(INTERNAL); + var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); + this._promise = internal.lastly(function() { + return _finallyPromise; + }); + internal._captureStackTrace(); + internal._setOnCancel(this); + } else { + var promise = this._promise = new Promise(INTERNAL); + promise._captureStackTrace(); + } + this._stack = stack; + this._generatorFunction = generatorFunction; + this._receiver = receiver; + this._generator = undefined; + this._yieldHandlers = typeof yieldHandler === "function" + ? [yieldHandler].concat(yieldHandlers) + : yieldHandlers; + this._yieldedPromise = null; + this._cancellationPhase = false; +} +util.inherits(PromiseSpawn, Proxyable); + +PromiseSpawn.prototype._isResolved = function() { + return this._promise === null; +}; + +PromiseSpawn.prototype._cleanup = function() { + this._promise = this._generator = null; + if (debug.cancellation() && this._finallyPromise !== null) { + this._finallyPromise._fulfill(); + this._finallyPromise = null; + } +}; + +PromiseSpawn.prototype._promiseCancelled = function() { + if (this._isResolved()) return; + var implementsReturn = typeof this._generator["return"] !== "undefined"; + + var result; + if (!implementsReturn) { + var reason = new Promise.CancellationError( + "generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + result = tryCatch(this._generator["throw"]).call(this._generator, + reason); + this._promise._popContext(); + } else { + this._promise._pushContext(); + result = tryCatch(this._generator["return"]).call(this._generator, + undefined); + this._promise._popContext(); + } + this._cancellationPhase = true; + this._yieldedPromise = null; + this._continue(result); +}; + +PromiseSpawn.prototype._promiseFulfilled = function(value) { + this._yieldedPromise = null; + this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._promiseRejected = function(reason) { + this._yieldedPromise = null; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + var result = tryCatch(this._generator["throw"]) + .call(this._generator, reason); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._resultCancelled = function() { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null; + promise.cancel(); + } +}; + +PromiseSpawn.prototype.promise = function () { + return this._promise; +}; + +PromiseSpawn.prototype._run = function () { + this._generator = this._generatorFunction.call(this._receiver); + this._receiver = + this._generatorFunction = undefined; + this._promiseFulfilled(undefined); +}; + +PromiseSpawn.prototype._continue = function (result) { + var promise = this._promise; + if (result === errorObj) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._rejectCallback(result.e, false); + } + } + + var value = result.value; + if (result.done === true) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._resolveCallback(value); + } + } else { + var maybePromise = tryConvertToPromise(value, this._promise); + if (!(maybePromise instanceof Promise)) { + maybePromise = + promiseFromYieldHandler(maybePromise, + this._yieldHandlers, + this._promise); + if (maybePromise === null) { + this._promiseRejected( + new TypeError( + "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + + "From coroutine:\u000a" + + this._stack.split("\n").slice(1, -7).join("\n") + ) + ); + return; + } + } + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + this._yieldedPromise = maybePromise; + maybePromise._proxy(this, null); + } else if (((bitField & 33554432) !== 0)) { + Promise._async.invoke( + this._promiseFulfilled, this, maybePromise._value() + ); + } else if (((bitField & 16777216) !== 0)) { + Promise._async.invoke( + this._promiseRejected, this, maybePromise._reason() + ); + } else { + this._promiseCancelled(); + } + } +}; + +Promise.coroutine = function (generatorFunction, options) { + if (typeof generatorFunction !== "function") { + throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var yieldHandler = Object(options).yieldHandler; + var PromiseSpawn$ = PromiseSpawn; + var stack = new Error().stack; + return function () { + var generator = generatorFunction.apply(this, arguments); + var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, + stack); + var ret = spawn.promise(); + spawn._generator = generator; + spawn._promiseFulfilled(undefined); + return ret; + }; +}; + +Promise.coroutine.addYieldHandler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + yieldHandlers.push(fn); +}; + +Promise.spawn = function (generatorFunction) { + debug.deprecated("Promise.spawn()", "Promise.coroutine()"); + if (typeof generatorFunction !== "function") { + return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var spawn = new PromiseSpawn(generatorFunction, this); + var ret = spawn.promise(); + spawn._run(Promise.spawn); + return ret; +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/join.js b/justdanceonline-main/node_modules/bluebird/js/release/join.js new file mode 100644 index 0000000000000000000000000000000000000000..4945e3f782268623a39b720d0da32ea6d31456b5 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/join.js @@ -0,0 +1,168 @@ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, + getDomain) { +var util = require("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!false) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!false) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var domain = getDomain(); + if (domain !== null) { + holder.fn = util.domainBind(domain, holder.fn); + } + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];}; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/map.js b/justdanceonline-main/node_modules/bluebird/js/release/map.js new file mode 100644 index 0000000000000000000000000000000000000000..976f15ef2930bd14e7fceadab4fc33adb0a6118c --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/map.js @@ -0,0 +1,168 @@ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = require("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises); + this._promise._captureStackTrace(); + var domain = getDomain(); + this._callback = domain === null ? fn : util.domainBind(domain, fn); + this._preservedValues = _filter === INTERNAL + ? new Array(this.length()) + : null; + this._limit = limit; + this._inFlight = 0; + this._queue = []; + async.invoke(this._asyncInit, this, undefined); +} +util.inherits(MappingPromiseArray, PromiseArray); + +MappingPromiseArray.prototype._asyncInit = function() { + this._init$(undefined, -2); +}; + +MappingPromiseArray.prototype._init = function () {}; + +MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { + var values = this._values; + var length = this.length(); + var preservedValues = this._preservedValues; + var limit = this._limit; + + if (index < 0) { + index = (index * -1) - 1; + values[index] = value; + if (limit >= 1) { + this._inFlight--; + this._drainQueue(); + if (this._isResolved()) return true; + } + } else { + if (limit >= 1 && this._inFlight >= limit) { + values[index] = value; + this._queue.push(index); + return false; + } + if (preservedValues !== null) preservedValues[index] = value; + + var promise = this._promise; + var callback = this._callback; + var receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + preservedValues !== null ? "Promise.filter" : "Promise.map", + promise + ); + if (ret === errorObj) { + this._reject(ret.e); + return true; + } + + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + if (limit >= 1) this._inFlight++; + values[index] = maybePromise; + maybePromise._proxy(this, (index + 1) * -1); + return false; + } else if (((bitField & 33554432) !== 0)) { + ret = maybePromise._value(); + } else if (((bitField & 16777216) !== 0)) { + this._reject(maybePromise._reason()); + return true; + } else { + this._cancel(); + return true; + } + } + values[index] = ret; + } + var totalResolved = ++this._totalResolved; + if (totalResolved >= length) { + if (preservedValues !== null) { + this._filter(values, preservedValues); + } else { + this._resolve(values); + } + return true; + } + return false; +}; + +MappingPromiseArray.prototype._drainQueue = function () { + var queue = this._queue; + var limit = this._limit; + var values = this._values; + while (queue.length > 0 && this._inFlight < limit) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } +}; + +MappingPromiseArray.prototype._filter = function (booleans, values) { + var len = values.length; + var ret = new Array(len); + var j = 0; + for (var i = 0; i < len; ++i) { + if (booleans[i]) ret[j++] = values[i]; + } + ret.length = j; + this._resolve(ret); +}; + +MappingPromiseArray.prototype.preservedValues = function () { + return this._preservedValues; +}; + +function map(promises, fn, options, _filter) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + + var limit = 0; + if (options !== undefined) { + if (typeof options === "object" && options !== null) { + if (typeof options.concurrency !== "number") { + return Promise.reject( + new TypeError("'concurrency' must be a number but it is " + + util.classString(options.concurrency))); + } + limit = options.concurrency; + } else { + return Promise.reject(new TypeError( + "options argument must be an object but it is " + + util.classString(options))); + } + } + limit = typeof limit === "number" && + isFinite(limit) && limit >= 1 ? limit : 0; + return new MappingPromiseArray(promises, fn, limit, _filter).promise(); +} + +Promise.prototype.map = function (fn, options) { + return map(this, fn, options, null); +}; + +Promise.map = function (promises, fn, options, _filter) { + return map(promises, fn, options, _filter); +}; + + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/method.js b/justdanceonline-main/node_modules/bluebird/js/release/method.js new file mode 100644 index 0000000000000000000000000000000000000000..ce9e4db7edf42aa9e2ac12c89a854e89052b978c --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/method.js @@ -0,0 +1,55 @@ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/nodeback.js b/justdanceonline-main/node_modules/bluebird/js/release/nodeback.js new file mode 100644 index 0000000000000000000000000000000000000000..71e69ebdbec9478c85e865dbce01b385de38f4de --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/nodeback.js @@ -0,0 +1,51 @@ +"use strict"; +var util = require("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = require("./errors"); +var OperationalError = errors.OperationalError; +var es5 = require("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/nodeify.js b/justdanceonline-main/node_modules/bluebird/js/release/nodeify.js new file mode 100644 index 0000000000000000000000000000000000000000..ce2b19004e5bae49f986e9041cd47dab58775d30 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/nodeify.js @@ -0,0 +1,58 @@ +"use strict"; +module.exports = function(Promise) { +var util = require("./util"); +var async = Promise._async; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function spreadAdapter(val, nodeback) { + var promise = this; + if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); + var ret = + tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +function successAdapter(val, nodeback) { + var promise = this; + var receiver = promise._boundValue(); + var ret = val === undefined + ? tryCatch(nodeback).call(receiver, null) + : tryCatch(nodeback).call(receiver, null, val); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} +function errorAdapter(reason, nodeback) { + var promise = this; + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason; + reason = newReason; + } + var ret = tryCatch(nodeback).call(promise._boundValue(), reason); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, + options) { + if (typeof nodeback == "function") { + var adapter = successAdapter; + if (options !== undefined && Object(options).spread) { + adapter = spreadAdapter; + } + this._then( + adapter, + errorAdapter, + undefined, + this, + nodeback + ); + } + return this; +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/promise.js b/justdanceonline-main/node_modules/bluebird/js/release/promise.js new file mode 100644 index 0000000000000000000000000000000000000000..f4a641c3360c24119a356a8a4c8da6e259440b41 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/promise.js @@ -0,0 +1,775 @@ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = require("./util"); + +var getDomain; +if (util.isNode) { + getDomain = function() { + var ret = process.domain; + if (ret === undefined) ret = null; + return ret; + }; +} else { + getDomain = function() { + return null; + }; +} +util.notEnumerableProp(Promise, "_getDomain", getDomain); + +var es5 = require("./es5"); +var Async = require("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = require("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = require("./thenables")(Promise, INTERNAL); +var PromiseArray = + require("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = require("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; +var debug = require("./debuggability")(Promise, Context); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + require("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = require("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = require("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var domain = getDomain(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: domain === null ? handler + : (typeof handler === "function" && + util.domainBind(domain, handler)), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, receiver, domain); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + this._bitField = this._bitField | 134217728; +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + domain +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = + domain === null ? reject : util.domainBind(domain, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + domain === null ? fulfill : util.domainBind(domain, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + domain === null ? reject : util.domainBind(domain, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(promise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +require("./cancel")(Promise, PromiseArray, apiRejection, debug); +require("./direct_resolve")(Promise); +require("./synchronous_inspection")(Promise); +require("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain); +Promise.Promise = Promise; +Promise.version = "3.5.1"; +require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +require('./call_get.js')(Promise); +require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); +require('./timers.js')(Promise, INTERNAL, debug); +require('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); +require('./nodeify.js')(Promise); +require('./promisify.js')(Promise, INTERNAL); +require('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); +require('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); +require('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +require('./settle.js')(Promise, PromiseArray, debug); +require('./some.js')(Promise, PromiseArray, apiRejection); +require('./filter.js')(Promise, INTERNAL); +require('./each.js')(Promise, INTERNAL); +require('./any.js')(Promise); + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/promise_array.js b/justdanceonline-main/node_modules/bluebird/js/release/promise_array.js new file mode 100644 index 0000000000000000000000000000000000000000..0fb303eb0d3dc147baf11edc756616c955ed2a36 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/promise_array.js @@ -0,0 +1,185 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = require("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/promisify.js b/justdanceonline-main/node_modules/bluebird/js/release/promisify.js new file mode 100644 index 0000000000000000000000000000000000000000..aa98e5bde1ca973ff24ecfe6bc7ad305246d7415 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/promisify.js @@ -0,0 +1,314 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var THIS = {}; +var util = require("./util"); +var nodebackForPromise = require("./nodeback"); +var withAppended = util.withAppended; +var maybeWrapAsError = util.maybeWrapAsError; +var canEvaluate = util.canEvaluate; +var TypeError = require("./errors").TypeError; +var defaultSuffix = "Async"; +var defaultPromisified = {__isPromisified__: true}; +var noCopyProps = [ + "arity", "length", + "name", + "arguments", + "caller", + "callee", + "prototype", + "__isPromisified__" +]; +var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); + +var defaultFilter = function(name) { + return util.isIdentifier(name) && + name.charAt(0) !== "_" && + name !== "constructor"; +}; + +function propsFilter(key) { + return !noCopyPropsPattern.test(key); +} + +function isPromisified(fn) { + try { + return fn.__isPromisified__ === true; + } + catch (e) { + return false; + } +} + +function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, + defaultPromisified); + return val ? isPromisified(val) : false; +} +function checkValid(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) { + var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); + for (var j = 0; j < ret.length; j += 2) { + if (ret[j] === keyWithoutAsyncSuffix) { + throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" + .replace("%s", suffix)); + } + } + } + } +} + +function promisifiableMethods(obj, suffix, suffixRegexp, filter) { + var keys = util.inheritedDataKeys(obj); + var ret = []; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var value = obj[key]; + var passesDefaultFilter = filter === defaultFilter + ? true : defaultFilter(key, value, obj); + if (typeof value === "function" && + !isPromisified(value) && + !hasPromisified(obj, key, suffix) && + filter(key, value, obj, passesDefaultFilter)) { + ret.push(key, value); + } + } + checkValid(ret, suffix, suffixRegexp); + return ret; +} + +var escapeIdentRegex = function(str) { + return str.replace(/([$])/, "\\$"); +}; + +var makeNodePromisifiedEval; +if (!false) { +var switchCaseArgumentOrder = function(likelyArgumentCount) { + var ret = [likelyArgumentCount]; + var min = Math.max(0, likelyArgumentCount - 1 - 3); + for(var i = likelyArgumentCount - 1; i >= min; --i) { + ret.push(i); + } + for(var i = likelyArgumentCount + 1; i <= 3; ++i) { + ret.push(i); + } + return ret; +}; + +var argumentSequence = function(argumentCount) { + return util.filledRange(argumentCount, "_arg", ""); +}; + +var parameterDeclaration = function(parameterCount) { + return util.filledRange( + Math.max(parameterCount, 3), "_arg", ""); +}; + +var parameterCount = function(fn) { + if (typeof fn.length === "number") { + return Math.max(Math.min(fn.length, 1023 + 1), 0); + } + return 0; +}; + +makeNodePromisifiedEval = +function(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, parameterCount(fn) - 1); + var argumentOrder = switchCaseArgumentOrder(newParameterCount); + var shouldProxyThis = typeof callback === "string" || receiver === THIS; + + function generateCallForArgumentCount(count) { + var args = argumentSequence(count).join(", "); + var comma = count > 0 ? ", " : ""; + var ret; + if (shouldProxyThis) { + ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; + } else { + ret = receiver === undefined + ? "ret = callback({{args}}, nodeback); break;\n" + : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; + } + return ret.replace("{{args}}", args).replace(", ", comma); + } + + function generateArgumentSwitchCase() { + var ret = ""; + for (var i = 0; i < argumentOrder.length; ++i) { + ret += "case " + argumentOrder[i] +":" + + generateCallForArgumentCount(argumentOrder[i]); + } + + ret += " \n\ + default: \n\ + var args = new Array(len + 1); \n\ + var i = 0; \n\ + for (var i = 0; i < len; ++i) { \n\ + args[i] = arguments[i]; \n\ + } \n\ + args[i] = nodeback; \n\ + [CodeForCall] \n\ + break; \n\ + ".replace("[CodeForCall]", (shouldProxyThis + ? "ret = callback.apply(this, args);\n" + : "ret = callback.apply(receiver, args);\n")); + return ret; + } + + var getFunctionCode = typeof callback === "string" + ? ("this != null ? this['"+callback+"'] : fn") + : "fn"; + var body = "'use strict'; \n\ + var ret = function (Parameters) { \n\ + 'use strict'; \n\ + var len = arguments.length; \n\ + var promise = new Promise(INTERNAL); \n\ + promise._captureStackTrace(); \n\ + var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ + var ret; \n\ + var callback = tryCatch([GetFunctionCode]); \n\ + switch(len) { \n\ + [CodeForSwitchCase] \n\ + } \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ + } \n\ + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ + return promise; \n\ + }; \n\ + notEnumerableProp(ret, '__isPromisified__', true); \n\ + return ret; \n\ + ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) + .replace("[GetFunctionCode]", getFunctionCode); + body = body.replace("Parameters", parameterDeclaration(newParameterCount)); + return new Function("Promise", + "fn", + "receiver", + "withAppended", + "maybeWrapAsError", + "nodebackForPromise", + "tryCatch", + "errorObj", + "notEnumerableProp", + "INTERNAL", + body)( + Promise, + fn, + receiver, + withAppended, + maybeWrapAsError, + nodebackForPromise, + util.tryCatch, + util.errorObj, + util.notEnumerableProp, + INTERNAL); +}; +} + +function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = (function() {return this;})(); + var method = callback; + if (typeof method === "string") { + callback = fn; + } + function promisified() { + var _receiver = receiver; + if (receiver === THIS) _receiver = this; + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = typeof method === "string" && this !== defaultThis + ? this[method] : callback; + var fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch(e) { + promise._rejectCallback(maybeWrapAsError(e), true, true); + } + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); + return promise; + } + util.notEnumerableProp(promisified, "__isPromisified__", true); + return promisified; +} + +var makeNodePromisified = canEvaluate + ? makeNodePromisifiedEval + : makeNodePromisifiedClosure; + +function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); + var methods = + promisifiableMethods(obj, suffix, suffixRegexp, filter); + + for (var i = 0, len = methods.length; i < len; i+= 2) { + var key = methods[i]; + var fn = methods[i+1]; + var promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) { + obj[promisifiedKey] = + makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + } else { + var promisified = promisifier(fn, function() { + return makeNodePromisified(key, THIS, key, + fn, suffix, multiArgs); + }); + util.notEnumerableProp(promisified, "__isPromisified__", true); + obj[promisifiedKey] = promisified; + } + } + util.toFastProperties(obj); + return obj; +} + +function promisify(callback, receiver, multiArgs) { + return makeNodePromisified(callback, receiver, undefined, + callback, null, multiArgs); +} + +Promise.promisify = function (fn, options) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + if (isPromisified(fn)) { + return fn; + } + options = Object(options); + var receiver = options.context === undefined ? THIS : options.context; + var multiArgs = !!options.multiArgs; + var ret = promisify(fn, receiver, multiArgs); + util.copyDescriptors(fn, ret, propsFilter); + return ret; +}; + +Promise.promisifyAll = function (target, options) { + if (typeof target !== "function" && typeof target !== "object") { + throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + options = Object(options); + var multiArgs = !!options.multiArgs; + var suffix = options.suffix; + if (typeof suffix !== "string") suffix = defaultSuffix; + var filter = options.filter; + if (typeof filter !== "function") filter = defaultFilter; + var promisifier = options.promisifier; + if (typeof promisifier !== "function") promisifier = makeNodePromisified; + + if (!util.isIdentifier(suffix)) { + throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + + var keys = util.inheritedDataKeys(target); + for (var i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + if (keys[i] !== "constructor" && + util.isClass(value)) { + promisifyAll(value.prototype, suffix, filter, promisifier, + multiArgs); + promisifyAll(value, suffix, filter, promisifier, multiArgs); + } + } + + return promisifyAll(target, suffix, filter, promisifier, multiArgs); +}; +}; + diff --git a/justdanceonline-main/node_modules/bluebird/js/release/props.js b/justdanceonline-main/node_modules/bluebird/js/release/props.js new file mode 100644 index 0000000000000000000000000000000000000000..6a34aaf55648b933bfc2fd9363814cc7f765998d --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/props.js @@ -0,0 +1,118 @@ +"use strict"; +module.exports = function( + Promise, PromiseArray, tryConvertToPromise, apiRejection) { +var util = require("./util"); +var isObject = util.isObject; +var es5 = require("./es5"); +var Es6Map; +if (typeof Map === "function") Es6Map = Map; + +var mapToEntries = (function() { + var index = 0; + var size = 0; + + function extractEntry(value, key) { + this[index] = value; + this[index + size] = key; + index++; + } + + return function mapToEntries(map) { + size = map.size; + index = 0; + var ret = new Array(map.size * 2); + map.forEach(extractEntry, ret); + return ret; + }; +})(); + +var entriesToMap = function(entries) { + var ret = new Es6Map(); + var length = entries.length / 2 | 0; + for (var i = 0; i < length; ++i) { + var key = entries[length + i]; + var value = entries[i]; + ret.set(key, value); + } + return ret; +}; + +function PropertiesPromiseArray(obj) { + var isMap = false; + var entries; + if (Es6Map !== undefined && obj instanceof Es6Map) { + entries = mapToEntries(obj); + isMap = true; + } else { + var keys = es5.keys(obj); + var len = keys.length; + entries = new Array(len * 2); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key]; + entries[i + len] = key; + } + } + this.constructor$(entries); + this._isMap = isMap; + this._init$(undefined, isMap ? -6 : -3); +} +util.inherits(PropertiesPromiseArray, PromiseArray); + +PropertiesPromiseArray.prototype._init = function () {}; + +PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + var val; + if (this._isMap) { + val = entriesToMap(this._values); + } else { + val = {}; + var keyOffset = this.length(); + for (var i = 0, len = this.length(); i < len; ++i) { + val[this._values[i + keyOffset]] = this._values[i]; + } + } + this._resolve(val); + return true; + } + return false; +}; + +PropertiesPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +PropertiesPromiseArray.prototype.getActualLength = function (len) { + return len >> 1; +}; + +function props(promises) { + var ret; + var castValue = tryConvertToPromise(promises); + + if (!isObject(castValue)) { + return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } else if (castValue instanceof Promise) { + ret = castValue._then( + Promise.props, undefined, undefined, undefined, undefined); + } else { + ret = new PropertiesPromiseArray(castValue).promise(); + } + + if (castValue instanceof Promise) { + ret._propagateFrom(castValue, 2); + } + return ret; +} + +Promise.prototype.props = function () { + return props(this); +}; + +Promise.props = function (promises) { + return props(promises); +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/queue.js b/justdanceonline-main/node_modules/bluebird/js/release/queue.js new file mode 100644 index 0000000000000000000000000000000000000000..ffd36fda1fb51f855c24ae218b52dd430bef0380 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/queue.js @@ -0,0 +1,73 @@ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/race.js b/justdanceonline-main/node_modules/bluebird/js/release/race.js new file mode 100644 index 0000000000000000000000000000000000000000..b862f46d64ea047159d7df0370998dfc14b091d5 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/race.js @@ -0,0 +1,49 @@ +"use strict"; +module.exports = function( + Promise, INTERNAL, tryConvertToPromise, apiRejection) { +var util = require("./util"); + +var raceLater = function (promise) { + return promise.then(function(array) { + return race(array, promise); + }); +}; + +function race(promises, parent) { + var maybePromise = tryConvertToPromise(promises); + + if (maybePromise instanceof Promise) { + return raceLater(maybePromise); + } else { + promises = util.asArray(promises); + if (promises === null) + return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + } + + var ret = new Promise(INTERNAL); + if (parent !== undefined) { + ret._propagateFrom(parent, 3); + } + var fulfill = ret._fulfill; + var reject = ret._reject; + for (var i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; + + if (val === undefined && !(i in promises)) { + continue; + } + + Promise.cast(val)._then(fulfill, reject, undefined, ret, null); + } + return ret; +} + +Promise.race = function (promises) { + return race(promises, undefined); +}; + +Promise.prototype.race = function () { + return race(this, undefined); +}; + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/reduce.js b/justdanceonline-main/node_modules/bluebird/js/release/reduce.js new file mode 100644 index 0000000000000000000000000000000000000000..26e2b1a970618468e9faedeb38cb543cc4e4db23 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/reduce.js @@ -0,0 +1,172 @@ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var getDomain = Promise._getDomain; +var util = require("./util"); +var tryCatch = util.tryCatch; + +function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var domain = getDomain(); + this._fn = domain === null ? fn : util.domainBind(domain, fn); + if (initialValue !== undefined) { + initialValue = Promise.resolve(initialValue); + initialValue._attachCancellationCallback(this); + } + this._initialValue = initialValue; + this._currentCancellable = null; + if(_each === INTERNAL) { + this._eachValues = Array(this._length); + } else if (_each === 0) { + this._eachValues = null; + } else { + this._eachValues = undefined; + } + this._promise._captureStackTrace(); + this._init$(undefined, -5); +} +util.inherits(ReductionPromiseArray, PromiseArray); + +ReductionPromiseArray.prototype._gotAccum = function(accum) { + if (this._eachValues !== undefined && + this._eachValues !== null && + accum !== INTERNAL) { + this._eachValues.push(accum); + } +}; + +ReductionPromiseArray.prototype._eachComplete = function(value) { + if (this._eachValues !== null) { + this._eachValues.push(value); + } + return this._eachValues; +}; + +ReductionPromiseArray.prototype._init = function() {}; + +ReductionPromiseArray.prototype._resolveEmptyArray = function() { + this._resolve(this._eachValues !== undefined ? this._eachValues + : this._initialValue); +}; + +ReductionPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +ReductionPromiseArray.prototype._resolve = function(value) { + this._promise._resolveCallback(value); + this._values = null; +}; + +ReductionPromiseArray.prototype._resultCancelled = function(sender) { + if (sender === this._initialValue) return this._cancel(); + if (this._isResolved()) return; + this._resultCancelled$(); + if (this._currentCancellable instanceof Promise) { + this._currentCancellable.cancel(); + } + if (this._initialValue instanceof Promise) { + this._initialValue.cancel(); + } +}; + +ReductionPromiseArray.prototype._iterate = function (values) { + this._values = values; + var value; + var i; + var length = values.length; + if (this._initialValue !== undefined) { + value = this._initialValue; + i = 0; + } else { + value = Promise.resolve(values[0]); + i = 1; + } + + this._currentCancellable = value; + + if (!value.isRejected()) { + for (; i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + value = value._then(gotAccum, undefined, undefined, ctx, undefined); + } + } + + if (this._eachValues !== undefined) { + value = value + ._then(this._eachComplete, undefined, undefined, this, undefined); + } + value._then(completed, completed, undefined, value, this); +}; + +Promise.prototype.reduce = function (fn, initialValue) { + return reduce(this, fn, initialValue, null); +}; + +Promise.reduce = function (promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); +}; + +function completed(valueOrReason, array) { + if (this.isFulfilled()) { + array._resolve(valueOrReason); + } else { + array._reject(valueOrReason); + } +} + +function reduce(promises, fn, initialValue, _each) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var array = new ReductionPromiseArray(promises, fn, initialValue, _each); + return array.promise(); +} + +function gotAccum(accum) { + this.accum = accum; + this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + if (value instanceof Promise) { + this.array._currentCancellable = value; + return value._then(gotValue, undefined, undefined, this, undefined); + } else { + return gotValue.call(this, value); + } +} + +function gotValue(value) { + var array = this.array; + var promise = array._promise; + var fn = tryCatch(array._fn); + promise._pushContext(); + var ret; + if (array._eachValues !== undefined) { + ret = fn.call(promise._boundValue(), value, this.index, this.length); + } else { + ret = fn.call(promise._boundValue(), + this.accum, value, this.index, this.length); + } + if (ret instanceof Promise) { + array._currentCancellable = ret; + } + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", + promise + ); + return ret; +} +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/schedule.js b/justdanceonline-main/node_modules/bluebird/js/release/schedule.js new file mode 100644 index 0000000000000000000000000000000000000000..f70df9fc123b83c86cbb87ca37c3d091a5b3adb8 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/schedule.js @@ -0,0 +1,61 @@ +"use strict"; +var util = require("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova))) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/settle.js b/justdanceonline-main/node_modules/bluebird/js/release/settle.js new file mode 100644 index 0000000000000000000000000000000000000000..fade3a174f2a4ac51e002412449d0c18a09418ea --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/settle.js @@ -0,0 +1,43 @@ +"use strict"; +module.exports = + function(Promise, PromiseArray, debug) { +var PromiseInspection = Promise.PromiseInspection; +var util = require("./util"); + +function SettledPromiseArray(values) { + this.constructor$(values); +} +util.inherits(SettledPromiseArray, PromiseArray); + +SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { + this._values[index] = inspection; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { + var ret = new PromiseInspection(); + ret._bitField = 33554432; + ret._settledValueField = value; + return this._promiseResolved(index, ret); +}; +SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection(); + ret._bitField = 16777216; + ret._settledValueField = reason; + return this._promiseResolved(index, ret); +}; + +Promise.settle = function (promises) { + debug.deprecated(".settle()", ".reflect()"); + return new SettledPromiseArray(promises).promise(); +}; + +Promise.prototype.settle = function () { + return Promise.settle(this); +}; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/some.js b/justdanceonline-main/node_modules/bluebird/js/release/some.js new file mode 100644 index 0000000000000000000000000000000000000000..400d85207d6d7de2b996509bd567efe5cd893b0e --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/some.js @@ -0,0 +1,148 @@ +"use strict"; +module.exports = +function(Promise, PromiseArray, apiRejection) { +var util = require("./util"); +var RangeError = require("./errors").RangeError; +var AggregateError = require("./errors").AggregateError; +var isArray = util.isArray; +var CANCELLATION = {}; + + +function SomePromiseArray(values) { + this.constructor$(values); + this._howMany = 0; + this._unwrap = false; + this._initialized = false; +} +util.inherits(SomePromiseArray, PromiseArray); + +SomePromiseArray.prototype._init = function () { + if (!this._initialized) { + return; + } + if (this._howMany === 0) { + this._resolve([]); + return; + } + this._init$(undefined, -5); + var isArrayResolved = isArray(this._values); + if (!this._isResolved() && + isArrayResolved && + this._howMany > this._canPossiblyFulfill()) { + this._reject(this._getRangeError(this.length())); + } +}; + +SomePromiseArray.prototype.init = function () { + this._initialized = true; + this._init(); +}; + +SomePromiseArray.prototype.setUnwrap = function () { + this._unwrap = true; +}; + +SomePromiseArray.prototype.howMany = function () { + return this._howMany; +}; + +SomePromiseArray.prototype.setHowMany = function (count) { + this._howMany = count; +}; + +SomePromiseArray.prototype._promiseFulfilled = function (value) { + this._addFulfilled(value); + if (this._fulfilled() === this.howMany()) { + this._values.length = this.howMany(); + if (this.howMany() === 1 && this._unwrap) { + this._resolve(this._values[0]); + } else { + this._resolve(this._values); + } + return true; + } + return false; + +}; +SomePromiseArray.prototype._promiseRejected = function (reason) { + this._addRejected(reason); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._promiseCancelled = function () { + if (this._values instanceof Promise || this._values == null) { + return this._cancel(); + } + this._addRejected(CANCELLATION); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._checkOutcome = function() { + if (this.howMany() > this._canPossiblyFulfill()) { + var e = new AggregateError(); + for (var i = this.length(); i < this._values.length; ++i) { + if (this._values[i] !== CANCELLATION) { + e.push(this._values[i]); + } + } + if (e.length > 0) { + this._reject(e); + } else { + this._cancel(); + } + return true; + } + return false; +}; + +SomePromiseArray.prototype._fulfilled = function () { + return this._totalResolved; +}; + +SomePromiseArray.prototype._rejected = function () { + return this._values.length - this.length(); +}; + +SomePromiseArray.prototype._addRejected = function (reason) { + this._values.push(reason); +}; + +SomePromiseArray.prototype._addFulfilled = function (value) { + this._values[this._totalResolved++] = value; +}; + +SomePromiseArray.prototype._canPossiblyFulfill = function () { + return this.length() - this._rejected(); +}; + +SomePromiseArray.prototype._getRangeError = function (count) { + var message = "Input array must contain at least " + + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); +}; + +SomePromiseArray.prototype._resolveEmptyArray = function () { + this._reject(this._getRangeError(0)); +}; + +function some(promises, howMany) { + if ((howMany | 0) !== howMany || howMany < 0) { + return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(howMany); + ret.init(); + return promise; +} + +Promise.some = function (promises, howMany) { + return some(promises, howMany); +}; + +Promise.prototype.some = function (howMany) { + return some(this, howMany); +}; + +Promise._SomePromiseArray = SomePromiseArray; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/synchronous_inspection.js b/justdanceonline-main/node_modules/bluebird/js/release/synchronous_inspection.js new file mode 100644 index 0000000000000000000000000000000000000000..9c49d2e6003923d6093535246bc8ef64cae0422f --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/synchronous_inspection.js @@ -0,0 +1,103 @@ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/thenables.js b/justdanceonline-main/node_modules/bluebird/js/release/thenables.js new file mode 100644 index 0000000000000000000000000000000000000000..d6ab9aa275d5b09dc39bc0978affe66333910dee --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/thenables.js @@ -0,0 +1,86 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = require("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/timers.js b/justdanceonline-main/node_modules/bluebird/js/release/timers.js new file mode 100644 index 0000000000000000000000000000000000000000..cb8f1f421a8cb44cf7457aa2d247a65e5ad2e7b2 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/timers.js @@ -0,0 +1,93 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, debug) { +var util = require("./util"); +var TimeoutError = Promise.TimeoutError; + +function HandleWrapper(handle) { + this.handle = handle; +} + +HandleWrapper.prototype._resultCancelled = function() { + clearTimeout(this.handle); +}; + +var afterValue = function(value) { return delay(+this).thenReturn(value); }; +var delay = Promise.delay = function (ms, value) { + var ret; + var handle; + if (value !== undefined) { + ret = Promise.resolve(value) + ._then(afterValue, null, null, ms, undefined); + if (debug.cancellation() && value instanceof Promise) { + ret._setOnCancel(value); + } + } else { + ret = new Promise(INTERNAL); + handle = setTimeout(function() { ret._fulfill(); }, +ms); + if (debug.cancellation()) { + ret._setOnCancel(new HandleWrapper(handle)); + } + ret._captureStackTrace(); + } + ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.prototype.delay = function (ms) { + return delay(ms, this); +}; + +var afterTimeout = function (promise, message, parent) { + var err; + if (typeof message !== "string") { + if (message instanceof Error) { + err = message; + } else { + err = new TimeoutError("operation timed out"); + } + } else { + err = new TimeoutError(message); + } + util.markAsOriginatingFromRejection(err); + promise._attachExtraTrace(err); + promise._reject(err); + + if (parent != null) { + parent.cancel(); + } +}; + +function successClear(value) { + clearTimeout(this.handle); + return value; +} + +function failureClear(reason) { + clearTimeout(this.handle); + throw reason; +} + +Promise.prototype.timeout = function (ms, message) { + ms = +ms; + var ret, parent; + + var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { + if (ret.isPending()) { + afterTimeout(ret, message, parent); + } + }, ms)); + + if (debug.cancellation()) { + parent = this.then(); + ret = parent._then(successClear, failureClear, + undefined, handleWrapper, undefined); + ret._setOnCancel(handleWrapper); + } else { + ret = this._then(successClear, failureClear, + undefined, handleWrapper, undefined); + } + + return ret; +}; + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/using.js b/justdanceonline-main/node_modules/bluebird/js/release/using.js new file mode 100644 index 0000000000000000000000000000000000000000..65de531c11da24b485b59740807e6c3ea72e4a9e --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/using.js @@ -0,0 +1,226 @@ +"use strict"; +module.exports = function (Promise, apiRejection, tryConvertToPromise, + createContext, INTERNAL, debug) { + var util = require("./util"); + var TypeError = require("./errors").TypeError; + var inherits = require("./util").inherits; + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + var NULL = {}; + + function thrower(e) { + setTimeout(function(){throw e;}, 0); + } + + function castPreservingDisposable(thenable) { + var maybePromise = tryConvertToPromise(thenable); + if (maybePromise !== thenable && + typeof thenable._isDisposable === "function" && + typeof thenable._getDisposer === "function" && + thenable._isDisposable()) { + maybePromise._setDisposable(thenable._getDisposer()); + } + return maybePromise; + } + function dispose(resources, inspection) { + var i = 0; + var len = resources.length; + var ret = new Promise(INTERNAL); + function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = castPreservingDisposable(resources[i++]); + if (maybePromise instanceof Promise && + maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise( + maybePromise._getDisposer().tryDispose(inspection), + resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) { + return maybePromise._then(iterator, thrower, + null, null, null); + } + } + iterator(); + } + iterator(); + return ret; + } + + function Disposer(data, promise, context) { + this._data = data; + this._promise = promise; + this._context = context; + } + + Disposer.prototype.data = function () { + return this._data; + }; + + Disposer.prototype.promise = function () { + return this._promise; + }; + + Disposer.prototype.resource = function () { + if (this.promise().isFulfilled()) { + return this.promise().value(); + } + return NULL; + }; + + Disposer.prototype.tryDispose = function(inspection) { + var resource = this.resource(); + var context = this._context; + if (context !== undefined) context._pushContext(); + var ret = resource !== NULL + ? this.doDispose(resource, inspection) : null; + if (context !== undefined) context._popContext(); + this._promise._unsetDisposable(); + this._data = null; + return ret; + }; + + Disposer.isDisposer = function (d) { + return (d != null && + typeof d.resource === "function" && + typeof d.tryDispose === "function"); + }; + + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + inherits(FunctionDisposer, Disposer); + + FunctionDisposer.prototype.doDispose = function (resource, inspection) { + var fn = this.data(); + return fn.call(resource, resource, inspection); + }; + + function maybeUnwrapDisposer(value) { + if (Disposer.isDisposer(value)) { + this.resources[this.index]._setDisposable(value); + return value.promise(); + } + return value; + } + + function ResourceList(length) { + this.length = length; + this.promise = null; + this[length-1] = null; + } + + ResourceList.prototype._resultCancelled = function() { + var len = this.length; + for (var i = 0; i < len; ++i) { + var item = this[i]; + if (item instanceof Promise) { + item.cancel(); + } + } + }; + + Promise.using = function () { + var len = arguments.length; + if (len < 2) return apiRejection( + "you must pass at least 2 arguments to Promise.using"); + var fn = arguments[len - 1]; + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var input; + var spreadArgs = true; + if (len === 2 && Array.isArray(arguments[0])) { + input = arguments[0]; + len = input.length; + spreadArgs = false; + } else { + input = arguments; + len--; + } + var resources = new ResourceList(len); + for (var i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + resource = resource.promise(); + resource._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + if (maybePromise instanceof Promise) { + resource = + maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, undefined); + } + } + resources[i] = resource; + } + + var reflectedResources = new Array(resources.length); + for (var i = 0; i < reflectedResources.length; ++i) { + reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + } + + var resultPromise = Promise.all(reflectedResources) + .then(function(inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) { + errorObj.e = inspection.error(); + return errorObj; + } else if (!inspection.isFulfilled()) { + resultPromise.cancel(); + return; + } + inspections[i] = inspection.value(); + } + promise._pushContext(); + + fn = tryCatch(fn); + var ret = spreadArgs + ? fn.apply(undefined, inspections) : fn(inspections); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, promiseCreated, "Promise.using", promise); + return ret; + }); + + var promise = resultPromise.lastly(function() { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + }); + resources.promise = promise; + promise._setOnCancel(resources); + return promise; + }; + + Promise.prototype._setDisposable = function (disposer) { + this._bitField = this._bitField | 131072; + this._disposer = disposer; + }; + + Promise.prototype._isDisposable = function () { + return (this._bitField & 131072) > 0; + }; + + Promise.prototype._getDisposer = function () { + return this._disposer; + }; + + Promise.prototype._unsetDisposable = function () { + this._bitField = this._bitField & (~131072); + this._disposer = undefined; + }; + + Promise.prototype.disposer = function (fn) { + if (typeof fn === "function") { + return new FunctionDisposer(fn, this, createContext()); + } + throw new TypeError(); + }; + +}; diff --git a/justdanceonline-main/node_modules/bluebird/js/release/util.js b/justdanceonline-main/node_modules/bluebird/js/release/util.js new file mode 100644 index 0000000000000000000000000000000000000000..7ac0e2fa1986c2d77345bb5785a630335e2f0653 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/js/release/util.js @@ -0,0 +1,380 @@ +"use strict"; +var es5 = require("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var l = 8; + while (l--) new FakeConstructor(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if ({}.toString.call(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +function domainBind(self, cb) { + return self.bind(cb); +} + +var ret = { + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + hasDevTools: typeof chrome !== "undefined" && chrome && + typeof chrome.loadTimes === "function", + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + domainBind: domainBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version = process.versions.node.split(".").map(Number); + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; diff --git a/justdanceonline-main/node_modules/bluebird/package.json b/justdanceonline-main/node_modules/bluebird/package.json new file mode 100644 index 0000000000000000000000000000000000000000..8e4d073f9f81dc52eb11b361422e6933b6fd0679 --- /dev/null +++ b/justdanceonline-main/node_modules/bluebird/package.json @@ -0,0 +1,77 @@ +{ + "name": "bluebird", + "description": "Full featured Promises/A+ implementation with exceptionally good performance", + "version": "3.5.1", + "keywords": [ + "promise", + "performance", + "promises", + "promises-a", + "promises-aplus", + "async", + "await", + "deferred", + "deferreds", + "future", + "flow control", + "dsl", + "fluent interface" + ], + "scripts": { + "lint": "node scripts/jshint.js", + "test": "node tools/test.js", + "istanbul": "istanbul", + "prepublish": "npm run generate-browser-core && npm run generate-browser-full", + "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify", + "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js" + }, + "homepage": "https://github.com/petkaantonov/bluebird", + "repository": { + "type": "git", + "url": "git://github.com/petkaantonov/bluebird.git" + }, + "bugs": { + "url": "http://github.com/petkaantonov/bluebird/issues" + }, + "license": "MIT", + "author": { + "name": "Petka Antonov", + "email": "petka_antonov@hotmail.com", + "url": "http://github.com/petkaantonov/" + }, + "devDependencies": { + "acorn": "~0.6.0", + "baconjs": "^0.7.43", + "bluebird": "^2.9.2", + "body-parser": "^1.10.2", + "browserify": "^8.1.1", + "cli-table": "~0.3.1", + "co": "^4.2.0", + "cross-spawn": "^0.2.3", + "glob": "^4.3.2", + "grunt-saucelabs": "~8.4.1", + "highland": "^2.3.0", + "istanbul": "^0.3.5", + "jshint": "^2.6.0", + "jshint-stylish": "~0.2.0", + "mkdirp": "~0.5.0", + "mocha": "~2.1", + "open": "~0.0.5", + "optimist": "~0.6.1", + "rimraf": "~2.2.6", + "rx": "^2.3.25", + "serve-static": "^1.7.1", + "sinon": "~1.7.3", + "uglify-js": "~2.4.16", + "kefir": "^2.4.1" + }, + "readmeFilename": "README.md", + "main": "./js/release/bluebird.js", + "webpack": "./js/release/bluebird.js", + "browser": "./js/browser/bluebird.js", + "files": [ + "js/browser", + "js/release", + "LICENSE" + ] +} diff --git a/justdanceonline-main/node_modules/body-parser/HISTORY.md b/justdanceonline-main/node_modules/body-parser/HISTORY.md new file mode 100644 index 0000000000000000000000000000000000000000..a1d3fbfbb93aa6c651c2feefd6abdee31b22028b --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/HISTORY.md @@ -0,0 +1,609 @@ +1.19.0 / 2019-04-25 +=================== + + * deps: bytes@3.1.0 + - Add petabyte (`pb`) support + * deps: http-errors@1.7.2 + - Set constructor name when possible + - deps: setprototypeof@1.1.1 + - deps: statuses@'>= 1.5.0 < 2' + * deps: iconv-lite@0.4.24 + - Added encoding MIK + * deps: qs@6.7.0 + - Fix parsing array brackets after index + * deps: raw-body@2.4.0 + - deps: bytes@3.1.0 + - deps: http-errors@1.7.2 + - deps: iconv-lite@0.4.24 + * deps: type-is@~1.6.17 + - deps: mime-types@~2.1.24 + - perf: prevent internal `throw` on invalid type + +1.18.3 / 2018-05-14 +=================== + + * Fix stack trace for strict json parse error + * deps: depd@~1.1.2 + - perf: remove argument reassignment + * deps: http-errors@~1.6.3 + - deps: depd@~1.1.2 + - deps: setprototypeof@1.1.0 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.23 + - Fix loading encoding with year appended + - Fix deprecation warnings on Node.js 10+ + * deps: qs@6.5.2 + * deps: raw-body@2.3.3 + - deps: http-errors@1.6.3 + - deps: iconv-lite@0.4.23 + * deps: type-is@~1.6.16 + - deps: mime-types@~2.1.18 + +1.18.2 / 2017-09-22 +=================== + + * deps: debug@2.6.9 + * perf: remove argument reassignment + +1.18.1 / 2017-09-12 +=================== + + * deps: content-type@~1.0.4 + - perf: remove argument reassignment + - perf: skip parameter parsing when no parameters + * deps: iconv-lite@0.4.19 + - Fix ISO-8859-1 regression + - Update Windows-1255 + * deps: qs@6.5.1 + - Fix parsing & compacting very deep objects + * deps: raw-body@2.3.2 + - deps: iconv-lite@0.4.19 + +1.18.0 / 2017-09-08 +=================== + + * Fix JSON strict violation error to match native parse error + * Include the `body` property on verify errors + * Include the `type` property on all generated errors + * Use `http-errors` to set status code on errors + * deps: bytes@3.0.0 + * deps: debug@2.6.8 + * deps: depd@~1.1.1 + - Remove unnecessary `Buffer` loading + * deps: http-errors@~1.6.2 + - deps: depd@1.1.1 + * deps: iconv-lite@0.4.18 + - Add support for React Native + - Add a warning if not loaded as utf-8 + - Fix CESU-8 decoding in Node.js 8 + - Improve speed of ISO-8859-1 encoding + * deps: qs@6.5.0 + * deps: raw-body@2.3.1 + - Use `http-errors` for standard emitted errors + - deps: bytes@3.0.0 + - deps: iconv-lite@0.4.18 + - perf: skip buffer decoding on overage chunk + * perf: prevent internal `throw` when missing charset + +1.17.2 / 2017-05-17 +=================== + + * deps: debug@2.6.7 + - Fix `DEBUG_MAX_ARRAY_LENGTH` + - deps: ms@2.0.0 + * deps: type-is@~1.6.15 + - deps: mime-types@~2.1.15 + +1.17.1 / 2017-03-06 +=================== + + * deps: qs@6.4.0 + - Fix regression parsing keys starting with `[` + +1.17.0 / 2017-03-01 +=================== + + * deps: http-errors@~1.6.1 + - Make `message` property enumerable for `HttpError`s + - deps: setprototypeof@1.0.3 + * deps: qs@6.3.1 + - Fix compacting nested arrays + +1.16.1 / 2017-02-10 +=================== + + * deps: debug@2.6.1 + - Fix deprecation messages in WebStorm and other editors + - Undeprecate `DEBUG_FD` set to `1` or `2` + +1.16.0 / 2017-01-17 +=================== + + * deps: debug@2.6.0 + - Allow colors in workers + - Deprecated `DEBUG_FD` environment variable + - Fix error when running under React Native + - Use same color for same namespace + - deps: ms@0.7.2 + * deps: http-errors@~1.5.1 + - deps: inherits@2.0.3 + - deps: setprototypeof@1.0.2 + - deps: statuses@'>= 1.3.1 < 2' + * deps: iconv-lite@0.4.15 + - Added encoding MS-31J + - Added encoding MS-932 + - Added encoding MS-936 + - Added encoding MS-949 + - Added encoding MS-950 + - Fix GBK/GB18030 handling of Euro character + * deps: qs@6.2.1 + - Fix array parsing from skipping empty values + * deps: raw-body@~2.2.0 + - deps: iconv-lite@0.4.15 + * deps: type-is@~1.6.14 + - deps: mime-types@~2.1.13 + +1.15.2 / 2016-06-19 +=================== + + * deps: bytes@2.4.0 + * deps: content-type@~1.0.2 + - perf: enable strict mode + * deps: http-errors@~1.5.0 + - Use `setprototypeof` module to replace `__proto__` setting + - deps: statuses@'>= 1.3.0 < 2' + - perf: enable strict mode + * deps: qs@6.2.0 + * deps: raw-body@~2.1.7 + - deps: bytes@2.4.0 + - perf: remove double-cleanup on happy path + * deps: type-is@~1.6.13 + - deps: mime-types@~2.1.11 + +1.15.1 / 2016-05-05 +=================== + + * deps: bytes@2.3.0 + - Drop partial bytes on all parsed units + - Fix parsing byte string that looks like hex + * deps: raw-body@~2.1.6 + - deps: bytes@2.3.0 + * deps: type-is@~1.6.12 + - deps: mime-types@~2.1.10 + +1.15.0 / 2016-02-10 +=================== + + * deps: http-errors@~1.4.0 + - Add `HttpError` export, for `err instanceof createError.HttpError` + - deps: inherits@2.0.1 + - deps: statuses@'>= 1.2.1 < 2' + * deps: qs@6.1.0 + * deps: type-is@~1.6.11 + - deps: mime-types@~2.1.9 + +1.14.2 / 2015-12-16 +=================== + + * deps: bytes@2.2.0 + * deps: iconv-lite@0.4.13 + * deps: qs@5.2.0 + * deps: raw-body@~2.1.5 + - deps: bytes@2.2.0 + - deps: iconv-lite@0.4.13 + * deps: type-is@~1.6.10 + - deps: mime-types@~2.1.8 + +1.14.1 / 2015-09-27 +=================== + + * Fix issue where invalid charset results in 400 when `verify` used + * deps: iconv-lite@0.4.12 + - Fix CESU-8 decoding in Node.js 4.x + * deps: raw-body@~2.1.4 + - Fix masking critical errors from `iconv-lite` + - deps: iconv-lite@0.4.12 + * deps: type-is@~1.6.9 + - deps: mime-types@~2.1.7 + +1.14.0 / 2015-09-16 +=================== + + * Fix JSON strict parse error to match syntax errors + * Provide static `require` analysis in `urlencoded` parser + * deps: depd@~1.1.0 + - Support web browser loading + * deps: qs@5.1.0 + * deps: raw-body@~2.1.3 + - Fix sync callback when attaching data listener causes sync read + * deps: type-is@~1.6.8 + - Fix type error when given invalid type to match against + - deps: mime-types@~2.1.6 + +1.13.3 / 2015-07-31 +=================== + + * deps: type-is@~1.6.6 + - deps: mime-types@~2.1.4 + +1.13.2 / 2015-07-05 +=================== + + * deps: iconv-lite@0.4.11 + * deps: qs@4.0.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix user-visible incompatibilities from 3.1.0 + - Fix various parsing edge cases + * deps: raw-body@~2.1.2 + - Fix error stack traces to skip `makeError` + - deps: iconv-lite@0.4.11 + * deps: type-is@~1.6.4 + - deps: mime-types@~2.1.2 + - perf: enable strict mode + - perf: remove argument reassignment + +1.13.1 / 2015-06-16 +=================== + + * deps: qs@2.4.2 + - Downgraded from 3.1.0 because of user-visible incompatibilities + +1.13.0 / 2015-06-14 +=================== + + * Add `statusCode` property on `Error`s, in addition to `status` + * Change `type` default to `application/json` for JSON parser + * Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser + * Provide static `require` analysis + * Use the `http-errors` module to generate errors + * deps: bytes@2.1.0 + - Slight optimizations + * deps: iconv-lite@0.4.10 + - The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails + - Leading BOM is now removed when decoding + * deps: on-finished@~2.3.0 + - Add defined behavior for HTTP `CONNECT` requests + - Add defined behavior for HTTP `Upgrade` requests + - deps: ee-first@1.1.1 + * deps: qs@3.1.0 + - Fix dropping parameters like `hasOwnProperty` + - Fix various parsing edge cases + - Parsed object now has `null` prototype + * deps: raw-body@~2.1.1 + - Use `unpipe` module for unpiping requests + - deps: iconv-lite@0.4.10 + * deps: type-is@~1.6.3 + - deps: mime-types@~2.1.1 + - perf: reduce try block size + - perf: remove bitwise operations + * perf: enable strict mode + * perf: remove argument reassignment + * perf: remove delete call + +1.12.4 / 2015-05-10 +=================== + + * deps: debug@~2.2.0 + * deps: qs@2.4.2 + - Fix allowing parameters like `constructor` + * deps: on-finished@~2.2.1 + * deps: raw-body@~2.0.1 + - Fix a false-positive when unpiping in Node.js 0.8 + - deps: bytes@2.0.1 + * deps: type-is@~1.6.2 + - deps: mime-types@~2.0.11 + +1.12.3 / 2015-04-15 +=================== + + * Slight efficiency improvement when not debugging + * deps: depd@~1.0.1 + * deps: iconv-lite@0.4.8 + - Add encoding alias UNICODE-1-1-UTF-7 + * deps: raw-body@1.3.4 + - Fix hanging callback if request aborts during read + - deps: iconv-lite@0.4.8 + +1.12.2 / 2015-03-16 +=================== + + * deps: qs@2.4.1 + - Fix error when parameter `hasOwnProperty` is present + +1.12.1 / 2015-03-15 +=================== + + * deps: debug@~2.1.3 + - Fix high intensity foreground color for bold + - deps: ms@0.7.0 + * deps: type-is@~1.6.1 + - deps: mime-types@~2.0.10 + +1.12.0 / 2015-02-13 +=================== + + * add `debug` messages + * accept a function for the `type` option + * use `content-type` to parse `Content-Type` headers + * deps: iconv-lite@0.4.7 + - Gracefully support enumerables on `Object.prototype` + * deps: raw-body@1.3.3 + - deps: iconv-lite@0.4.7 + * deps: type-is@~1.6.0 + - fix argument reassignment + - fix false-positives in `hasBody` `Transfer-Encoding` check + - support wildcard for both type and subtype (`*/*`) + - deps: mime-types@~2.0.9 + +1.11.0 / 2015-01-30 +=================== + + * make internal `extended: true` depth limit infinity + * deps: type-is@~1.5.6 + - deps: mime-types@~2.0.8 + +1.10.2 / 2015-01-20 +=================== + + * deps: iconv-lite@0.4.6 + - Fix rare aliases of single-byte encodings + * deps: raw-body@1.3.2 + - deps: iconv-lite@0.4.6 + +1.10.1 / 2015-01-01 +=================== + + * deps: on-finished@~2.2.0 + * deps: type-is@~1.5.5 + - deps: mime-types@~2.0.7 + +1.10.0 / 2014-12-02 +=================== + + * make internal `extended: true` array limit dynamic + +1.9.3 / 2014-11-21 +================== + + * deps: iconv-lite@0.4.5 + - Fix Windows-31J and X-SJIS encoding support + * deps: qs@2.3.3 + - Fix `arrayLimit` behavior + * deps: raw-body@1.3.1 + - deps: iconv-lite@0.4.5 + * deps: type-is@~1.5.3 + - deps: mime-types@~2.0.3 + +1.9.2 / 2014-10-27 +================== + + * deps: qs@2.3.2 + - Fix parsing of mixed objects and values + +1.9.1 / 2014-10-22 +================== + + * deps: on-finished@~2.1.1 + - Fix handling of pipelined requests + * deps: qs@2.3.0 + - Fix parsing of mixed implicit and explicit arrays + * deps: type-is@~1.5.2 + - deps: mime-types@~2.0.2 + +1.9.0 / 2014-09-24 +================== + + * include the charset in "unsupported charset" error message + * include the encoding in "unsupported content encoding" error message + * deps: depd@~1.0.0 + +1.8.4 / 2014-09-23 +================== + + * fix content encoding to be case-insensitive + +1.8.3 / 2014-09-19 +================== + + * deps: qs@2.2.4 + - Fix issue with object keys starting with numbers truncated + +1.8.2 / 2014-09-15 +================== + + * deps: depd@0.4.5 + +1.8.1 / 2014-09-07 +================== + + * deps: media-typer@0.3.0 + * deps: type-is@~1.5.1 + +1.8.0 / 2014-09-05 +================== + + * make empty-body-handling consistent between chunked requests + - empty `json` produces `{}` + - empty `raw` produces `new Buffer(0)` + - empty `text` produces `''` + - empty `urlencoded` produces `{}` + * deps: qs@2.2.3 + - Fix issue where first empty value in array is discarded + * deps: type-is@~1.5.0 + - fix `hasbody` to be true for `content-length: 0` + +1.7.0 / 2014-09-01 +================== + + * add `parameterLimit` option to `urlencoded` parser + * change `urlencoded` extended array limit to 100 + * respond with 413 when over `parameterLimit` in `urlencoded` + +1.6.7 / 2014-08-29 +================== + + * deps: qs@2.2.2 + - Remove unnecessary cloning + +1.6.6 / 2014-08-27 +================== + + * deps: qs@2.2.0 + - Array parsing fix + - Performance improvements + +1.6.5 / 2014-08-16 +================== + + * deps: on-finished@2.1.0 + +1.6.4 / 2014-08-14 +================== + + * deps: qs@1.2.2 + +1.6.3 / 2014-08-10 +================== + + * deps: qs@1.2.1 + +1.6.2 / 2014-08-07 +================== + + * deps: qs@1.2.0 + - Fix parsing array of objects + +1.6.1 / 2014-08-06 +================== + + * deps: qs@1.1.0 + - Accept urlencoded square brackets + - Accept empty values in implicit array notation + +1.6.0 / 2014-08-05 +================== + + * deps: qs@1.0.2 + - Complete rewrite + - Limits array length to 20 + - Limits object depth to 5 + - Limits parameters to 1,000 + +1.5.2 / 2014-07-27 +================== + + * deps: depd@0.4.4 + - Work-around v8 generating empty stack traces + +1.5.1 / 2014-07-26 +================== + + * deps: depd@0.4.3 + - Fix exception when global `Error.stackTraceLimit` is too low + +1.5.0 / 2014-07-20 +================== + + * deps: depd@0.4.2 + - Add `TRACE_DEPRECATION` environment variable + - Remove non-standard grey color from color output + - Support `--no-deprecation` argument + - Support `--trace-deprecation` argument + * deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + * deps: raw-body@1.3.0 + - deps: iconv-lite@0.4.4 + - Added encoding UTF-7 + - Fix `Cannot switch to old mode now` error on Node.js 0.10+ + * deps: type-is@~1.3.2 + +1.4.3 / 2014-06-19 +================== + + * deps: type-is@1.3.1 + - fix global variable leak + +1.4.2 / 2014-06-19 +================== + + * deps: type-is@1.3.0 + - improve type parsing + +1.4.1 / 2014-06-19 +================== + + * fix urlencoded extended deprecation message + +1.4.0 / 2014-06-19 +================== + + * add `text` parser + * add `raw` parser + * check accepted charset in content-type (accepts utf-8) + * check accepted encoding in content-encoding (accepts identity) + * deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed + * deprecate `urlencoded()` without provided `extended` option + * lazy-load urlencoded parsers + * parsers split into files for reduced mem usage + * support gzip and deflate bodies + - set `inflate: false` to turn off + * deps: raw-body@1.2.2 + - Support all encodings from `iconv-lite` + +1.3.1 / 2014-06-11 +================== + + * deps: type-is@1.2.1 + - Switch dependency from mime to mime-types@1.0.0 + +1.3.0 / 2014-05-31 +================== + + * add `extended` option to urlencoded parser + +1.2.2 / 2014-05-27 +================== + + * deps: raw-body@1.1.6 + - assert stream encoding on node.js 0.8 + - assert stream encoding on node.js < 0.10.6 + - deps: bytes@1 + +1.2.1 / 2014-05-26 +================== + + * invoke `next(err)` after request fully read + - prevents hung responses and socket hang ups + +1.2.0 / 2014-05-11 +================== + + * add `verify` option + * deps: type-is@1.2.0 + - support suffix matching + +1.1.2 / 2014-05-11 +================== + + * improve json parser speed + +1.1.1 / 2014-05-11 +================== + + * fix repeated limit parsing with every request + +1.1.0 / 2014-05-10 +================== + + * add `type` option + * deps: pin for safety and consistency + +1.0.2 / 2014-04-14 +================== + + * use `type-is` module + +1.0.1 / 2014-03-20 +================== + + * lower default limits to 100kb diff --git a/justdanceonline-main/node_modules/body-parser/LICENSE b/justdanceonline-main/node_modules/body-parser/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..386b7b6946e47bc46f8138791049b4e6a7cef889 --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/body-parser/README.md b/justdanceonline-main/node_modules/body-parser/README.md new file mode 100644 index 0000000000000000000000000000000000000000..aba6297a84b6d9b6d3b7bc572552898d67e8543b --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/README.md @@ -0,0 +1,443 @@ +# body-parser + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Node.js body parsing middleware. + +Parse incoming request bodies in a middleware before your handlers, available +under the `req.body` property. + +**Note** As `req.body`'s shape is based on user-controlled input, all +properties and values in this object are untrusted and should be validated +before trusting. For example, `req.body.foo.toString()` may fail in multiple +ways, for example the `foo` property may not be there or may not be a string, +and `toString` may not be a function and instead a string or other user input. + +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). + +_This does not handle multipart bodies_, due to their complex and typically +large nature. For multipart bodies, you may be interested in the following +modules: + + * [busboy](https://www.npmjs.org/package/busboy#readme) and + [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.org/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.org/package/formidable#readme) + * [multer](https://www.npmjs.org/package/multer#readme) + +This module provides the following parsers: + + * [JSON body parser](#bodyparserjsonoptions) + * [Raw body parser](#bodyparserrawoptions) + * [Text body parser](#bodyparsertextoptions) + * [URL-encoded form body parser](#bodyparserurlencodedoptions) + +Other body parsers you might be interested in: + +- [body](https://www.npmjs.org/package/body#readme) +- [co-body](https://www.npmjs.org/package/co-body#readme) + +## Installation + +```sh +$ npm install body-parser +``` + +## API + + + +```js +var bodyParser = require('body-parser') +``` + +The `bodyParser` object exposes various factories to create middlewares. All +middlewares will populate the `req.body` property with the parsed body when +the `Content-Type` request header matches the `type` option, or an empty +object (`{}`) if there was no body to parse, the `Content-Type` was not matched, +or an error occurred. + +The various errors returned by this module are described in the +[errors section](#errors). + +### bodyParser.json([options]) + +Returns middleware that only parses `json` and only looks at requests where +the `Content-Type` header matches the `type` option. This parser accepts any +Unicode encoding of the body and supports automatic inflation of `gzip` and +`deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). + +#### Options + +The `json` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### reviver + +The `reviver` option is passed directly to `JSON.parse` as the second +argument. You can find more information on this argument +[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). + +##### strict + +When set to `true`, will only accept arrays and objects; when `false` will +accept anything `JSON.parse` accepts. Defaults to `true`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not a +function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `json`), a mime type (like `application/json`), or +a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a truthy +value. Defaults to `application/json`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.raw([options]) + +Returns middleware that parses all bodies as a `Buffer` and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a `Buffer` object +of the body. + +#### Options + +The `raw` function takes an optional `options` object that may contain any of +the following keys: + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. +If not a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this +can be an extension name (like `bin`), a mime type (like +`application/octet-stream`), or a mime type with a wildcard (like `*/*` or +`application/*`). If a function, the `type` option is called as `fn(req)` +and the request is parsed if it returns a truthy value. Defaults to +`application/octet-stream`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.text([options]) + +Returns middleware that parses all bodies as a string and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser supports automatic inflation of `gzip` and `deflate` encodings. + +A new `body` string containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This will be a string of the +body. + +#### Options + +The `text` function takes an optional `options` object that may contain any of +the following keys: + +##### defaultCharset + +Specify the default character set for the text content if the charset is not +specified in the `Content-Type` header of the request. Defaults to `utf-8`. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `txt`), a mime type (like `text/plain`), or a mime +type with a wildcard (like `*/*` or `text/*`). If a function, the `type` +option is called as `fn(req)` and the request is parsed if it returns a +truthy value. Defaults to `text/plain`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +### bodyParser.urlencoded([options]) + +Returns middleware that only parses `urlencoded` bodies and only looks at +requests where the `Content-Type` header matches the `type` option. This +parser accepts only UTF-8 encoding of the body and supports automatic +inflation of `gzip` and `deflate` encodings. + +A new `body` object containing the parsed data is populated on the `request` +object after the middleware (i.e. `req.body`). This object will contain +key-value pairs, where the value can be a string or array (when `extended` is +`false`), or any type (when `extended` is `true`). + +#### Options + +The `urlencoded` function takes an optional `options` object that may contain +any of the following keys: + +##### extended + +The `extended` option allows to choose between parsing the URL-encoded data +with the `querystring` library (when `false`) or the `qs` library (when +`true`). The "extended" syntax allows for rich objects and arrays to be +encoded into the URL-encoded format, allowing for a JSON-like experience +with URL-encoded. For more information, please +[see the qs library](https://www.npmjs.org/package/qs#readme). + +Defaults to `true`, but using the default has been deprecated. Please +research into the difference between `qs` and `querystring` and choose the +appropriate setting. + +##### inflate + +When set to `true`, then deflated (compressed) bodies will be inflated; when +`false`, deflated bodies are rejected. Defaults to `true`. + +##### limit + +Controls the maximum request body size. If this is a number, then the value +specifies the number of bytes; if it is a string, the value is passed to the +[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults +to `'100kb'`. + +##### parameterLimit + +The `parameterLimit` option controls the maximum number of parameters that +are allowed in the URL-encoded data. If a request contains more parameters +than this value, a 413 will be returned to the client. Defaults to `1000`. + +##### type + +The `type` option is used to determine what media type the middleware will +parse. This option can be a string, array of strings, or a function. If not +a function, `type` option is passed directly to the +[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +be an extension name (like `urlencoded`), a mime type (like +`application/x-www-form-urlencoded`), or a mime type with a wildcard (like +`*/x-www-form-urlencoded`). If a function, the `type` option is called as +`fn(req)` and the request is parsed if it returns a truthy value. Defaults +to `application/x-www-form-urlencoded`. + +##### verify + +The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, +where `buf` is a `Buffer` of the raw request body and `encoding` is the +encoding of the request. The parsing can be aborted by throwing an error. + +## Errors + +The middlewares provided by this module create errors depending on the error +condition during parsing. The errors will typically have a `status`/`statusCode` +property that contains the suggested HTTP response code, an `expose` property +to determine if the `message` property should be displayed to the client, a +`type` property to determine the type of error without matching against the +`message`, and a `body` property containing the read body, if available. + +The following are the common errors emitted, though any error can come through +for various reasons. + +### content encoding unsupported + +This error will occur when the request had a `Content-Encoding` header that +contained an encoding but the "inflation" option was set to `false`. The +`status` property is set to `415`, the `type` property is set to +`'encoding.unsupported'`, and the `charset` property will be set to the +encoding that is unsupported. + +### request aborted + +This error will occur when the request is aborted by the client before reading +the body has finished. The `received` property will be set to the number of +bytes received before the request was aborted and the `expected` property is +set to the number of expected bytes. The `status` property is set to `400` +and `type` property is set to `'request.aborted'`. + +### request entity too large + +This error will occur when the request body's size is larger than the "limit" +option. The `limit` property will be set to the byte limit and the `length` +property will be set to the request body's length. The `status` property is +set to `413` and the `type` property is set to `'entity.too.large'`. + +### request size did not match content length + +This error will occur when the request's length did not match the length from +the `Content-Length` header. This typically occurs when the request is malformed, +typically when the `Content-Length` header was calculated based on characters +instead of bytes. The `status` property is set to `400` and the `type` property +is set to `'request.size.invalid'`. + +### stream encoding should not be set + +This error will occur when something called the `req.setEncoding` method prior +to this middleware. This module operates directly on bytes only and you cannot +call `req.setEncoding` when using this module. The `status` property is set to +`500` and the `type` property is set to `'stream.encoding.set'`. + +### too many parameters + +This error will occur when the content of the request exceeds the configured +`parameterLimit` for the `urlencoded` parser. The `status` property is set to +`413` and the `type` property is set to `'parameters.too.many'`. + +### unsupported charset "BOGUS" + +This error will occur when the request had a charset parameter in the +`Content-Type` header, but the `iconv-lite` module does not support it OR the +parser does not support it. The charset is contained in the message as well +as in the `charset` property. The `status` property is set to `415`, the +`type` property is set to `'charset.unsupported'`, and the `charset` property +is set to the charset that is unsupported. + +### unsupported content encoding "bogus" + +This error will occur when the request had a `Content-Encoding` header that +contained an unsupported encoding. The encoding is contained in the message +as well as in the `encoding` property. The `status` property is set to `415`, +the `type` property is set to `'encoding.unsupported'`, and the `encoding` +property is set to the encoding that is unsupported. + +## Examples + +### Express/Connect top-level generic + +This example demonstrates adding a generic JSON and URL-encoded parser as a +top-level middleware, which will parse the bodies of all incoming requests. +This is the simplest setup. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse application/x-www-form-urlencoded +app.use(bodyParser.urlencoded({ extended: false })) + +// parse application/json +app.use(bodyParser.json()) + +app.use(function (req, res) { + res.setHeader('Content-Type', 'text/plain') + res.write('you posted:\n') + res.end(JSON.stringify(req.body, null, 2)) +}) +``` + +### Express route-specific + +This example demonstrates adding body parsers specifically to the routes that +need them. In general, this is the most recommended way to use body-parser with +Express. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// create application/json parser +var jsonParser = bodyParser.json() + +// create application/x-www-form-urlencoded parser +var urlencodedParser = bodyParser.urlencoded({ extended: false }) + +// POST /login gets urlencoded bodies +app.post('/login', urlencodedParser, function (req, res) { + res.send('welcome, ' + req.body.username) +}) + +// POST /api/users gets JSON bodies +app.post('/api/users', jsonParser, function (req, res) { + // create user in req.body +}) +``` + +### Change accepted type for parsers + +All the parsers accept a `type` option which allows you to change the +`Content-Type` that the middleware will parse. + +```js +var express = require('express') +var bodyParser = require('body-parser') + +var app = express() + +// parse various different custom JSON types as JSON +app.use(bodyParser.json({ type: 'application/*+json' })) + +// parse some custom thing into a Buffer +app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) + +// parse an HTML body into a string +app.use(bodyParser.text({ type: 'text/html' })) +``` + +## License + +[MIT](LICENSE) + +[npm-image]: https://img.shields.io/npm/v/body-parser.svg +[npm-url]: https://npmjs.org/package/body-parser +[travis-image]: https://img.shields.io/travis/expressjs/body-parser/master.svg +[travis-url]: https://travis-ci.org/expressjs/body-parser +[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg +[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master +[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg +[downloads-url]: https://npmjs.org/package/body-parser diff --git a/justdanceonline-main/node_modules/body-parser/index.js b/justdanceonline-main/node_modules/body-parser/index.js new file mode 100644 index 0000000000000000000000000000000000000000..93c3a1fffa7fe990582eb24e8f02d24d3bdc97ed --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/index.js @@ -0,0 +1,157 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var deprecate = require('depd')('body-parser') + +/** + * Cache of loaded parsers. + * @private + */ + +var parsers = Object.create(null) + +/** + * @typedef Parsers + * @type {function} + * @property {function} json + * @property {function} raw + * @property {function} text + * @property {function} urlencoded + */ + +/** + * Module exports. + * @type {Parsers} + */ + +exports = module.exports = deprecate.function(bodyParser, + 'bodyParser: use individual json/urlencoded middlewares') + +/** + * JSON parser. + * @public + */ + +Object.defineProperty(exports, 'json', { + configurable: true, + enumerable: true, + get: createParserGetter('json') +}) + +/** + * Raw parser. + * @public + */ + +Object.defineProperty(exports, 'raw', { + configurable: true, + enumerable: true, + get: createParserGetter('raw') +}) + +/** + * Text parser. + * @public + */ + +Object.defineProperty(exports, 'text', { + configurable: true, + enumerable: true, + get: createParserGetter('text') +}) + +/** + * URL-encoded parser. + * @public + */ + +Object.defineProperty(exports, 'urlencoded', { + configurable: true, + enumerable: true, + get: createParserGetter('urlencoded') +}) + +/** + * Create a middleware to parse json and urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @deprecated + * @public + */ + +function bodyParser (options) { + var opts = {} + + // exclude type option + if (options) { + for (var prop in options) { + if (prop !== 'type') { + opts[prop] = options[prop] + } + } + } + + var _urlencoded = exports.urlencoded(opts) + var _json = exports.json(opts) + + return function bodyParser (req, res, next) { + _json(req, res, function (err) { + if (err) return next(err) + _urlencoded(req, res, next) + }) + } +} + +/** + * Create a getter for loading a parser. + * @private + */ + +function createParserGetter (name) { + return function get () { + return loadParser(name) + } +} + +/** + * Load a parser module. + * @private + */ + +function loadParser (parserName) { + var parser = parsers[parserName] + + if (parser !== undefined) { + return parser + } + + // this uses a switch for static require analysis + switch (parserName) { + case 'json': + parser = require('./lib/types/json') + break + case 'raw': + parser = require('./lib/types/raw') + break + case 'text': + parser = require('./lib/types/text') + break + case 'urlencoded': + parser = require('./lib/types/urlencoded') + break + } + + // store to prevent invoking require() + return (parsers[parserName] = parser) +} diff --git a/justdanceonline-main/node_modules/body-parser/lib/read.js b/justdanceonline-main/node_modules/body-parser/lib/read.js new file mode 100644 index 0000000000000000000000000000000000000000..c10260958f4c0ce6a713682312005e064f9bf1c0 --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/lib/read.js @@ -0,0 +1,181 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var createError = require('http-errors') +var getBody = require('raw-body') +var iconv = require('iconv-lite') +var onFinished = require('on-finished') +var zlib = require('zlib') + +/** + * Module exports. + */ + +module.exports = read + +/** + * Read a request into a buffer and parse. + * + * @param {object} req + * @param {object} res + * @param {function} next + * @param {function} parse + * @param {function} debug + * @param {object} options + * @private + */ + +function read (req, res, next, parse, debug, options) { + var length + var opts = options + var stream + + // flag as parsed + req._body = true + + // read options + var encoding = opts.encoding !== null + ? opts.encoding + : null + var verify = opts.verify + + try { + // get the content stream + stream = contentstream(req, debug, opts.inflate) + length = stream.length + stream.length = undefined + } catch (err) { + return next(err) + } + + // set raw-body options + opts.length = length + opts.encoding = verify + ? null + : encoding + + // assert charset is supported + if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { + return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + })) + } + + // read body + debug('read body') + getBody(stream, opts, function (error, body) { + if (error) { + var _error + + if (error.type === 'encoding.unsupported') { + // echo back charset + _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { + charset: encoding.toLowerCase(), + type: 'charset.unsupported' + }) + } else { + // set status code on error + _error = createError(400, error) + } + + // read off entire request + stream.resume() + onFinished(req, function onfinished () { + next(createError(400, _error)) + }) + return + } + + // verify + if (verify) { + try { + debug('verify body') + verify(req, res, body, encoding) + } catch (err) { + next(createError(403, err, { + body: body, + type: err.type || 'entity.verify.failed' + })) + return + } + } + + // parse + var str = body + try { + debug('parse body') + str = typeof body !== 'string' && encoding !== null + ? iconv.decode(body, encoding) + : body + req.body = parse(str) + } catch (err) { + next(createError(400, err, { + body: str, + type: err.type || 'entity.parse.failed' + })) + return + } + + next() + }) +} + +/** + * Get the content stream of the request. + * + * @param {object} req + * @param {function} debug + * @param {boolean} [inflate=true] + * @return {object} + * @api private + */ + +function contentstream (req, debug, inflate) { + var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() + var length = req.headers['content-length'] + var stream + + debug('content-encoding "%s"', encoding) + + if (inflate === false && encoding !== 'identity') { + throw createError(415, 'content encoding unsupported', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + switch (encoding) { + case 'deflate': + stream = zlib.createInflate() + debug('inflate body') + req.pipe(stream) + break + case 'gzip': + stream = zlib.createGunzip() + debug('gunzip body') + req.pipe(stream) + break + case 'identity': + stream = req + stream.length = length + break + default: + throw createError(415, 'unsupported content encoding "' + encoding + '"', { + encoding: encoding, + type: 'encoding.unsupported' + }) + } + + return stream +} diff --git a/justdanceonline-main/node_modules/body-parser/lib/types/json.js b/justdanceonline-main/node_modules/body-parser/lib/types/json.js new file mode 100644 index 0000000000000000000000000000000000000000..2971dc14d9951e4837a491bb008e2071b6c4118f --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/lib/types/json.js @@ -0,0 +1,230 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:json') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = json + +/** + * RegExp to match the first non-space in a string. + * + * Allowed whitespace is defined in RFC 7159: + * + * ws = *( + * %x20 / ; Space + * %x09 / ; Horizontal tab + * %x0A / ; Line feed or New line + * %x0D ) ; Carriage return + */ + +var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex + +/** + * Create a middleware to parse JSON bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function json (options) { + var opts = options || {} + + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var inflate = opts.inflate !== false + var reviver = opts.reviver + var strict = opts.strict !== false + var type = opts.type || 'application/json' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + if (body.length === 0) { + // special-case empty json body, as it's a common client-side mistake + // TODO: maybe make this configurable or part of "strict" option + return {} + } + + if (strict) { + var first = firstchar(body) + + if (first !== '{' && first !== '[') { + debug('strict violation') + throw createStrictSyntaxError(body, first) + } + } + + try { + debug('parse json') + return JSON.parse(body, reviver) + } catch (e) { + throw normalizeJsonSyntaxError(e, { + message: e.message, + stack: e.stack + }) + } + } + + return function jsonParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset per RFC 7159 sec 8.1 + var charset = getCharset(req) || 'utf-8' + if (charset.substr(0, 4) !== 'utf-') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Create strict violation syntax error matching native error. + * + * @param {string} str + * @param {string} char + * @return {Error} + * @private + */ + +function createStrictSyntaxError (str, char) { + var index = str.indexOf(char) + var partial = str.substring(0, index) + '#' + + try { + JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') + } catch (e) { + return normalizeJsonSyntaxError(e, { + message: e.message.replace('#', char), + stack: e.stack + }) + } +} + +/** + * Get the first non-whitespace character in a string. + * + * @param {string} str + * @return {function} + * @private + */ + +function firstchar (str) { + return FIRST_CHAR_REGEXP.exec(str)[1] +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Normalize a SyntaxError for JSON.parse. + * + * @param {SyntaxError} error + * @param {object} obj + * @return {SyntaxError} + */ + +function normalizeJsonSyntaxError (error, obj) { + var keys = Object.getOwnPropertyNames(error) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i] + if (key !== 'stack' && key !== 'message') { + delete error[key] + } + } + + // replace stack before message for Node.js 0.10 and below + error.stack = obj.stack.replace(error.message, obj.message) + error.message = obj.message + + return error +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/justdanceonline-main/node_modules/body-parser/lib/types/raw.js b/justdanceonline-main/node_modules/body-parser/lib/types/raw.js new file mode 100644 index 0000000000000000000000000000000000000000..f5d1b67475405284e3dac312f92ade101571329f --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/lib/types/raw.js @@ -0,0 +1,101 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var debug = require('debug')('body-parser:raw') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = raw + +/** + * Create a middleware to parse raw bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function raw (options) { + var opts = options || {} + + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/octet-stream' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function rawParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // read + read(req, res, next, parse, debug, { + encoding: null, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/justdanceonline-main/node_modules/body-parser/lib/types/text.js b/justdanceonline-main/node_modules/body-parser/lib/types/text.js new file mode 100644 index 0000000000000000000000000000000000000000..083a00908a6299a8ef72f477983359f5675f82ef --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/lib/types/text.js @@ -0,0 +1,121 @@ +/*! + * body-parser + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var debug = require('debug')('body-parser:text') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = text + +/** + * Create a middleware to parse text bodies. + * + * @param {object} [options] + * @return {function} + * @api public + */ + +function text (options) { + var opts = options || {} + + var defaultCharset = opts.defaultCharset || 'utf-8' + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'text/plain' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (buf) { + return buf + } + + return function textParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // get charset + var charset = getCharset(req) || defaultCharset + + // read + read(req, res, next, parse, debug, { + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/justdanceonline-main/node_modules/body-parser/lib/types/urlencoded.js b/justdanceonline-main/node_modules/body-parser/lib/types/urlencoded.js new file mode 100644 index 0000000000000000000000000000000000000000..b2ca8f16d0c105424acd16282e629346698e140b --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/lib/types/urlencoded.js @@ -0,0 +1,284 @@ +/*! + * body-parser + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */ + +'use strict' + +/** + * Module dependencies. + * @private + */ + +var bytes = require('bytes') +var contentType = require('content-type') +var createError = require('http-errors') +var debug = require('debug')('body-parser:urlencoded') +var deprecate = require('depd')('body-parser') +var read = require('../read') +var typeis = require('type-is') + +/** + * Module exports. + */ + +module.exports = urlencoded + +/** + * Cache of parser modules. + */ + +var parsers = Object.create(null) + +/** + * Create a middleware to parse urlencoded bodies. + * + * @param {object} [options] + * @return {function} + * @public + */ + +function urlencoded (options) { + var opts = options || {} + + // notice because option default will flip in next major + if (opts.extended === undefined) { + deprecate('undefined extended: provide extended option') + } + + var extended = opts.extended !== false + var inflate = opts.inflate !== false + var limit = typeof opts.limit !== 'number' + ? bytes.parse(opts.limit || '100kb') + : opts.limit + var type = opts.type || 'application/x-www-form-urlencoded' + var verify = opts.verify || false + + if (verify !== false && typeof verify !== 'function') { + throw new TypeError('option verify must be function') + } + + // create the appropriate query parser + var queryparse = extended + ? extendedparser(opts) + : simpleparser(opts) + + // create the appropriate type checking function + var shouldParse = typeof type !== 'function' + ? typeChecker(type) + : type + + function parse (body) { + return body.length + ? queryparse(body) + : {} + } + + return function urlencodedParser (req, res, next) { + if (req._body) { + debug('body already parsed') + next() + return + } + + req.body = req.body || {} + + // skip requests without bodies + if (!typeis.hasBody(req)) { + debug('skip empty body') + next() + return + } + + debug('content-type %j', req.headers['content-type']) + + // determine if request should be parsed + if (!shouldParse(req)) { + debug('skip parsing') + next() + return + } + + // assert charset + var charset = getCharset(req) || 'utf-8' + if (charset !== 'utf-8') { + debug('invalid charset') + next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { + charset: charset, + type: 'charset.unsupported' + })) + return + } + + // read + read(req, res, next, parse, debug, { + debug: debug, + encoding: charset, + inflate: inflate, + limit: limit, + verify: verify + }) + } +} + +/** + * Get the extended query parser. + * + * @param {object} options + */ + +function extendedparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('qs') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + var arrayLimit = Math.max(100, paramCount) + + debug('parse extended urlencoding') + return parse(body, { + allowPrototypes: true, + arrayLimit: arrayLimit, + depth: Infinity, + parameterLimit: parameterLimit + }) + } +} + +/** + * Get the charset of a request. + * + * @param {object} req + * @api private + */ + +function getCharset (req) { + try { + return (contentType.parse(req).parameters.charset || '').toLowerCase() + } catch (e) { + return undefined + } +} + +/** + * Count the number of parameters, stopping once limit reached + * + * @param {string} body + * @param {number} limit + * @api private + */ + +function parameterCount (body, limit) { + var count = 0 + var index = 0 + + while ((index = body.indexOf('&', index)) !== -1) { + count++ + index++ + + if (count === limit) { + return undefined + } + } + + return count +} + +/** + * Get parser for module name dynamically. + * + * @param {string} name + * @return {function} + * @api private + */ + +function parser (name) { + var mod = parsers[name] + + if (mod !== undefined) { + return mod.parse + } + + // this uses a switch for static require analysis + switch (name) { + case 'qs': + mod = require('qs') + break + case 'querystring': + mod = require('querystring') + break + } + + // store to prevent invoking require() + parsers[name] = mod + + return mod.parse +} + +/** + * Get the simple query parser. + * + * @param {object} options + */ + +function simpleparser (options) { + var parameterLimit = options.parameterLimit !== undefined + ? options.parameterLimit + : 1000 + var parse = parser('querystring') + + if (isNaN(parameterLimit) || parameterLimit < 1) { + throw new TypeError('option parameterLimit must be a positive number') + } + + if (isFinite(parameterLimit)) { + parameterLimit = parameterLimit | 0 + } + + return function queryparse (body) { + var paramCount = parameterCount(body, parameterLimit) + + if (paramCount === undefined) { + debug('too many parameters') + throw createError(413, 'too many parameters', { + type: 'parameters.too.many' + }) + } + + debug('parse urlencoding') + return parse(body, undefined, undefined, { maxKeys: parameterLimit }) + } +} + +/** + * Get the simple type checker. + * + * @param {string} type + * @return {function} + */ + +function typeChecker (type) { + return function checkType (req) { + return Boolean(typeis(req, type)) + } +} diff --git a/justdanceonline-main/node_modules/body-parser/package.json b/justdanceonline-main/node_modules/body-parser/package.json new file mode 100644 index 0000000000000000000000000000000000000000..269ebf28573a9132d7207d558643030f0effe832 --- /dev/null +++ b/justdanceonline-main/node_modules/body-parser/package.json @@ -0,0 +1,52 @@ +{ + "name": "body-parser", + "description": "Node.js body parsing middleware", + "version": "1.19.0", + "contributors": [ + "Douglas Christopher Wilson ", + "Jonathan Ong (http://jongleberry.com)" + ], + "license": "MIT", + "repository": "expressjs/body-parser", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "devDependencies": { + "eslint": "5.16.0", + "eslint-config-standard": "12.0.0", + "eslint-plugin-import": "2.17.2", + "eslint-plugin-markdown": "1.0.0", + "eslint-plugin-node": "8.0.1", + "eslint-plugin-promise": "4.1.1", + "eslint-plugin-standard": "4.0.0", + "istanbul": "0.4.5", + "methods": "1.1.2", + "mocha": "6.1.4", + "safe-buffer": "5.1.2", + "supertest": "4.0.2" + }, + "files": [ + "lib/", + "LICENSE", + "HISTORY.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint --plugin markdown --ext js,md .", + "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/" + } +} diff --git a/justdanceonline-main/node_modules/brace-expansion/LICENSE b/justdanceonline-main/node_modules/brace-expansion/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..de3226673c3874b1c6506db022393c753495655c --- /dev/null +++ b/justdanceonline-main/node_modules/brace-expansion/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/justdanceonline-main/node_modules/brace-expansion/README.md b/justdanceonline-main/node_modules/brace-expansion/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6b4e0e16409152451eb2b55e083a88e3396c23b1 --- /dev/null +++ b/justdanceonline-main/node_modules/brace-expansion/README.md @@ -0,0 +1,129 @@ +# brace-expansion + +[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), +as known from sh/bash, in JavaScript. + +[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) +[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) +[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) + +[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) + +## Example + +```js +var expand = require('brace-expansion'); + +expand('file-{a,b,c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('-v{,,}') +// => ['-v', '-v', '-v'] + +expand('file{0..2}.jpg') +// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] + +expand('file-{a..c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('file{2..0}.jpg') +// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] + +expand('file{0..4..2}.jpg') +// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] + +expand('file-{a..e..2}.jpg') +// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] + +expand('file{00..10..5}.jpg') +// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] + +expand('{{A..C},{a..c}}') +// => ['A', 'B', 'C', 'a', 'b', 'c'] + +expand('ppp{,config,oe{,conf}}') +// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] +``` + +## API + +```js +var expand = require('brace-expansion'); +``` + +### var expanded = expand(str) + +Return an array of all possible and valid expansions of `str`. If none are +found, `[str]` is returned. + +Valid expansions are: + +```js +/^(.*,)+(.+)?$/ +// {a,b,...} +``` + +A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +A numeric sequence from `x` to `y` inclusive, with optional increment. +If `x` or `y` start with a leading `0`, all the numbers will be padded +to have equal length. Negative numbers and backwards iteration work too. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +An alphabetic sequence from `x` to `y` inclusive, with optional increment. +`x` and `y` must be exactly one character, and if given, `incr` must be a +number. + +For compatibility reasons, the string `${` is not eligible for brace expansion. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install brace-expansion +``` + +## Contributors + +- [Julian Gruber](https://github.com/juliangruber) +- [Isaac Z. Schlueter](https://github.com/isaacs) + +## Sponsors + +This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! + +Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/justdanceonline-main/node_modules/brace-expansion/index.js b/justdanceonline-main/node_modules/brace-expansion/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0478be81eabc2b140c2405999e46ba98214461eb --- /dev/null +++ b/justdanceonline-main/node_modules/brace-expansion/index.js @@ -0,0 +1,201 @@ +var concatMap = require('concat-map'); +var balanced = require('balanced-match'); + +module.exports = expandTop; + +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; + +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} + + +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; + + var parts = []; + var m = balanced('{', '}', str); + + if (!m) + return str.split(','); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; +} + +function expandTop(str) { + if (!str) + return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } + + return expand(escapeBraces(str), true).map(unescapeBraces); +} + +function identity(e) { + return e; +} + +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} + +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} + +function expand(str, isTop) { + var expansions = []; + + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; + + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, false) + : ['']; + + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length) + var incr = n.length == 3 + ? Math.abs(numeric(n[2])) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { return expand(el, false) }); + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + + return expansions; +} + diff --git a/justdanceonline-main/node_modules/brace-expansion/package.json b/justdanceonline-main/node_modules/brace-expansion/package.json new file mode 100644 index 0000000000000000000000000000000000000000..a18faa8fd67b8265a4c01909f8f16d55a46bec32 --- /dev/null +++ b/justdanceonline-main/node_modules/brace-expansion/package.json @@ -0,0 +1,47 @@ +{ + "name": "brace-expansion", + "description": "Brace expansion as known from sh/bash", + "version": "1.1.11", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" + }, + "homepage": "https://github.com/juliangruber/brace-expansion", + "main": "index.js", + "scripts": { + "test": "tape test/*.js", + "gentest": "bash test/generate.sh", + "bench": "matcha test/perf/bench.js" + }, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/justdanceonline-main/node_modules/bson/HISTORY.md b/justdanceonline-main/node_modules/bson/HISTORY.md new file mode 100644 index 0000000000000000000000000000000000000000..d8d5d207e747e0917506326c97730be03f6c13da --- /dev/null +++ b/justdanceonline-main/node_modules/bson/HISTORY.md @@ -0,0 +1,301 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [1.1.6](https://github.com/mongodb/js-bson/compare/v1.1.5...v1.1.6) (2021-03-16) + + +### Bug Fixes + +* Throw error on bigint usage and add helpers to Long ([#426](https://github.com/mongodb/js-bson/issues/426)) ([375f368](https://github.com/mongodb/js-bson/commit/375f368738807f2d41c7751e618fd09c8a1b94c9)) + +### [1.1.5](https://github.com/mongodb/js-bson/compare/v1.1.4...v1.1.5) (2020-08-10) + + +### Bug Fixes + +* **object-id:** harden the duck-typing ([b526145](https://github.com/mongodb/js-bson/commit/b5261450c3bc4abb2e2fb19b5b1a7aba27982d44)) + + +## [1.1.3](https://github.com/mongodb/js-bson/compare/v1.1.2...v1.1.3) (2019-11-09) + +Reverts 1.1.2 + + +## [1.1.2](https://github.com/mongodb/js-bson/compare/v1.1.1...v1.1.2) (2019-11-08) + + +### Bug Fixes + +* **_bsontype:** only check bsontype if it is a prototype member. ([dd8a349](https://github.com/mongodb/js-bson/commit/dd8a349)) + + + + +## [1.1.1](https://github.com/mongodb/js-bson/compare/v1.1.0...v1.1.1) (2019-03-08) + + +### Bug Fixes + +* **object-id:** support 4.x->1.x interop for MinKey and ObjectId ([53419a5](https://github.com/mongodb/js-bson/commit/53419a5)) + + +### Features + +* replace new Buffer with modern versions ([24aefba](https://github.com/mongodb/js-bson/commit/24aefba)) + + + + +# [1.1.0](https://github.com/mongodb/js-bson/compare/v1.0.9...v1.1.0) (2018-08-13) + + +### Bug Fixes + +* **serializer:** do not use checkKeys for $clusterTime ([573e141](https://github.com/mongodb/js-bson/commit/573e141)) + + + + +## [1.0.9](https://github.com/mongodb/js-bson/compare/v1.0.8...v1.0.9) (2018-06-07) + + +### Bug Fixes + +* **serializer:** remove use of `const` ([5feb12f](https://github.com/mongodb/js-bson/commit/5feb12f)) + + + + +## [1.0.7](https://github.com/mongodb/js-bson/compare/v1.0.6...v1.0.7) (2018-06-06) + + +### Bug Fixes + +* **binary:** add type checking for buffer ([26b05b5](https://github.com/mongodb/js-bson/commit/26b05b5)) +* **bson:** fix custom inspect property ([080323b](https://github.com/mongodb/js-bson/commit/080323b)) +* **readme:** clarify documentation about deserialize methods ([20f764c](https://github.com/mongodb/js-bson/commit/20f764c)) +* **serialization:** normalize function stringification ([1320c10](https://github.com/mongodb/js-bson/commit/1320c10)) + + + + +## [1.0.6](https://github.com/mongodb/js-bson/compare/v1.0.5...v1.0.6) (2018-03-12) + + +### Features + +* **serialization:** support arbitrary sizes for the internal serialization buffer ([abe97bc](https://github.com/mongodb/js-bson/commit/abe97bc)) + + + + +## 1.0.5 (2018-02-26) + + +### Bug Fixes + +* **decimal128:** add basic guard against REDOS attacks ([bd61c45](https://github.com/mongodb/js-bson/commit/bd61c45)) +* **objectid:** if pid is 1, use random value ([e188ae6](https://github.com/mongodb/js-bson/commit/e188ae6)) + + + +1.0.4 2016-01-11 +---------------- +- #204 remove Buffer.from as it's partially broken in early 4.x.x. series of node releases. + +1.0.3 2016-01-03 +---------------- +- Fixed toString for ObjectId so it will work with inspect. + +1.0.2 2016-01-02 +---------------- +- Minor optimizations for ObjectID to use Buffer.from where available. + +1.0.1 2016-12-06 +---------------- +- Reverse behavior for undefined to be serialized as NULL. MongoDB 3.4 does not allow for undefined comparisons. + +1.0.0 2016-12-06 +---------------- +- Introduced new BSON API and documentation. + +0.5.7 2016-11-18 +----------------- +- NODE-848 BSON Regex flags must be alphabetically ordered. + +0.5.6 2016-10-19 +----------------- +- NODE-833, Detects cyclic dependencies in documents and throws error if one is found. +- Fix(deserializer): corrected the check for (size + index) comparison… (Issue #195, https://github.com/JoelParke). + +0.5.5 2016-09-15 +----------------- +- Added DBPointer up conversion to DBRef + +0.5.4 2016-08-23 +----------------- +- Added promoteValues flag (default to true) allowing user to specify if deserialization should be into wrapper classes only. + +0.5.3 2016-07-11 +----------------- +- Throw error if ObjectId is not a string or a buffer. + +0.5.2 2016-07-11 +----------------- +- All values encoded big-endian style for ObjectId. + +0.5.1 2016-07-11 +----------------- +- Fixed encoding/decoding issue in ObjectId timestamp generation. +- Removed BinaryParser dependency from the serializer/deserializer. + +0.5.0 2016-07-05 +----------------- +- Added Decimal128 type and extended test suite to include entire bson corpus. + +0.4.23 2016-04-08 +----------------- +- Allow for proper detection of ObjectId or objects that look like ObjectId, improving compatibility across third party libraries. +- Remove one package from dependency due to having been pulled from NPM. + +0.4.22 2016-03-04 +----------------- +- Fix "TypeError: data.copy is not a function" in Electron (Issue #170, https://github.com/kangas). +- Fixed issue with undefined type on deserializing. + +0.4.21 2016-01-12 +----------------- +- Minor optimizations to avoid non needed object creation. + +0.4.20 2015-10-15 +----------------- +- Added bower file to repository. +- Fixed browser pid sometimes set greater than 0xFFFF on browsers (Issue #155, https://github.com/rahatarmanahmed) + +0.4.19 2015-10-15 +----------------- +- Remove all support for bson-ext. + +0.4.18 2015-10-15 +----------------- +- ObjectID equality check should return boolean instead of throwing exception for invalid oid string #139 +- add option for deserializing binary into Buffer object #116 + +0.4.17 2015-10-15 +----------------- +- Validate regexp string for null bytes and throw if there is one. + +0.4.16 2015-10-07 +----------------- +- Fixed issue with return statement in Map.js. + +0.4.15 2015-10-06 +----------------- +- Exposed Map correctly via index.js file. + +0.4.14 2015-10-06 +----------------- +- Exposed Map correctly via bson.js file. + +0.4.13 2015-10-06 +----------------- +- Added ES6 Map type serialization as well as a polyfill for ES5. + +0.4.12 2015-09-18 +----------------- +- Made ignore undefined an optional parameter. + +0.4.11 2015-08-06 +----------------- +- Minor fix for invalid key checking. + +0.4.10 2015-08-06 +----------------- +- NODE-38 Added new BSONRegExp type to allow direct serialization to MongoDB type. +- Some performance improvements by in lining code. + +0.4.9 2015-08-06 +---------------- +- Undefined fields are omitted from serialization in objects. + +0.4.8 2015-07-14 +---------------- +- Fixed size validation to ensure we can deserialize from dumped files. + +0.4.7 2015-06-26 +---------------- +- Added ability to instruct deserializer to return raw BSON buffers for named array fields. +- Minor deserialization optimization by moving inlined function out. + +0.4.6 2015-06-17 +---------------- +- Fixed serializeWithBufferAndIndex bug. + +0.4.5 2015-06-17 +---------------- +- Removed any references to the shared buffer to avoid non GC collectible bson instances. + +0.4.4 2015-06-17 +---------------- +- Fixed rethrowing of error when not RangeError. + +0.4.3 2015-06-17 +---------------- +- Start buffer at 64K and double as needed, meaning we keep a low memory profile until needed. + +0.4.2 2015-06-16 +---------------- +- More fixes for corrupt Bson + +0.4.1 2015-06-16 +---------------- +- More fixes for corrupt Bson + +0.4.0 2015-06-16 +---------------- +- New JS serializer serializing into a single buffer then copying out the new buffer. Performance is similar to current C++ parser. +- Removed bson-ext extension dependency for now. + +0.3.2 2015-03-27 +---------------- +- Removed node-gyp from install script in package.json. + +0.3.1 2015-03-27 +---------------- +- Return pure js version on native() call if failed to initialize. + +0.3.0 2015-03-26 +---------------- +- Pulled out all C++ code into bson-ext and made it an optional dependency. + +0.2.21 2015-03-21 +----------------- +- Updated Nan to 1.7.0 to support io.js and node 0.12.0 + +0.2.19 2015-02-16 +----------------- +- Updated Nan to 1.6.2 to support io.js and node 0.12.0 + +0.2.18 2015-01-20 +----------------- +- Updated Nan to 1.5.1 to support io.js + +0.2.16 2014-12-17 +----------------- +- Made pid cycle on 0xffff to avoid weird overflows on creation of ObjectID's + +0.2.12 2014-08-24 +----------------- +- Fixes for fortify review of c++ extension +- toBSON correctly allows returns of non objects + +0.2.3 2013-10-01 +---------------- +- Drying of ObjectId code for generation of id (Issue #54, https://github.com/moredip) +- Fixed issue where corrupt CString's could cause endless loop +- Support for Node 0.11.X > (Issue #49, https://github.com/kkoopa) + +0.1.4 2012-09-25 +---------------- +- Added precompiled c++ native extensions for win32 ia32 and x64 diff --git a/justdanceonline-main/node_modules/bson/LICENSE.md b/justdanceonline-main/node_modules/bson/LICENSE.md new file mode 100644 index 0000000000000000000000000000000000000000..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/LICENSE.md @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/justdanceonline-main/node_modules/bson/README.md b/justdanceonline-main/node_modules/bson/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0688341000f10b0c88cebeabc4b1c95ad3627820 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/README.md @@ -0,0 +1,170 @@ +# BSON parser + +BSON is short for Bin­ary JSON and is the bin­ary-en­coded seri­al­iz­a­tion of JSON-like doc­u­ments. You can learn more about it in [the specification](http://bsonspec.org). + +This browser version of the BSON parser is compiled using [webpack](https://webpack.js.org/) and the current version is pre-compiled in the `browser_build` directory. + +This is the default BSON parser, however, there is a C++ Node.js addon version as well that does not support the browser. It can be found at [mongod-js/bson-ext](https://github.com/mongodb-js/bson-ext). + +## Usage + +To build a new version perform the following operations: + +``` +npm install +npm run build +``` + +A simple example of how to use BSON in the browser: + +```html + + + +``` + +A simple example of how to use BSON in `Node.js`: + +```js +// Get BSON parser class +var BSON = require('bson') +// Get the Long type +var Long = BSON.Long; +// Create a bson parser instance +var bson = new BSON(); + +// Serialize document +var doc = { long: Long.fromNumber(100) } + +// Serialize a document +var data = bson.serialize(doc) +console.log('data:', data) + +// Deserialize the resulting Buffer +var doc_2 = bson.deserialize(data) +console.log('doc_2:', doc_2) +``` + +## Installation + +`npm install bson` + +## API + +### BSON types + +For all BSON types documentation, please refer to the following sources: + * [MongoDB BSON Type Reference](https://docs.mongodb.com/manual/reference/bson-types/) + * [BSON Spec](https://bsonspec.org/) + +### BSON serialization and deserialiation + +**`new BSON()`** - Creates a new BSON serializer/deserializer you can use to serialize and deserialize BSON. + +#### BSON.serialize + +The BSON `serialize` method takes a JavaScript object and an optional options object and returns a Node.js Buffer. + + * `BSON.serialize(object, options)` + * @param {Object} object the JavaScript object to serialize. + * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. + * @param {Boolean} [options.ignoreUndefined=true] + * @return {Buffer} returns a Buffer instance. + +#### BSON.serializeWithBufferAndIndex + +The BSON `serializeWithBufferAndIndex` method takes an object, a target buffer instance and an optional options object and returns the end serialization index in the final buffer. + + * `BSON.serializeWithBufferAndIndex(object, buffer, options)` + * @param {Object} object the JavaScript object to serialize. + * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. + * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields. + * @param {Number} [options.index=0] the index in the buffer where we wish to start serializing into. + * @return {Number} returns the index pointing to the last written byte in the buffer. + +#### BSON.calculateObjectSize + +The BSON `calculateObjectSize` method takes a JavaScript object and an optional options object and returns the size of the BSON object. + + * `BSON.calculateObjectSize(object, options)` + * @param {Object} object the JavaScript object to serialize. + * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. + * @param {Boolean} [options.ignoreUndefined=true] + * @return {Buffer} returns a Buffer instance. + +#### BSON.deserialize + +The BSON `deserialize` method takes a Node.js Buffer and an optional options object and returns a deserialized JavaScript object. + + * `BSON.deserialize(buffer, options)` + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Object} returns the deserialized Javascript Object. + +#### BSON.deserializeStream + +The BSON `deserializeStream` method takes a Node.js Buffer, `startIndex` and allow more control over deserialization of a Buffer containing concatenated BSON documents. + + * `BSON.deserializeStream(buffer, startIndex, numberOfDocuments, documents, docStartIndex, options)` + * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. + * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. + * @param {Number} numberOfDocuments number of documents to deserialize. + * @param {Array} documents an array where to store the deserialized documents. + * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. + +## FAQ + +#### Why does `undefined` get converted to `null`? + +The `undefined` BSON type has been [deprecated for many years](http://bsonspec.org/spec.html), so this library has dropped support for it. Use the `ignoreUndefined` option (for example, from the [driver](http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect) ) to instead remove `undefined` keys. + +#### How do I add custom serialization logic? + +This library looks for `toBSON()` functions on every path, and calls the `toBSON()` function to get the value to serialize. + +```javascript +var bson = new BSON(); + +class CustomSerialize { + toBSON() { + return 42; + } +} + +const obj = { answer: new CustomSerialize() }; +// "{ answer: 42 }" +console.log(bson.deserialize(bson.serialize(obj))); +``` diff --git a/justdanceonline-main/node_modules/bson/bower.json b/justdanceonline-main/node_modules/bson/bower.json new file mode 100644 index 0000000000000000000000000000000000000000..eded1f82a5ce0e7a9cea0068942e126cd83c2850 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/bower.json @@ -0,0 +1,26 @@ +{ + "name": "bson", + "description": "A bson parser for node.js and the browser", + "keywords": [ + "mongodb", + "bson", + "parser" + ], + "author": "Christian Amor Kvalheim ", + "main": "./browser_build/bson.js", + "license": "Apache-2.0", + "moduleType": [ + "globals", + "node" + ], + "ignore": [ + "**/.*", + "alternate_parsers", + "benchmarks", + "bower_components", + "node_modules", + "test", + "tools" + ], + "version": "1.1.6" +} diff --git a/justdanceonline-main/node_modules/bson/browser_build/bson.js b/justdanceonline-main/node_modules/bson/browser_build/bson.js new file mode 100644 index 0000000000000000000000000000000000000000..9540a86f2df7e6aece13ecf4e08b52d7d2a8bc48 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/browser_build/bson.js @@ -0,0 +1,18218 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/"; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(1); + module.exports = __webpack_require__(332); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {"use strict"; + + __webpack_require__(2); + + __webpack_require__(328); + + __webpack_require__(329); + + if (global._babelPolyfill) { + throw new Error("only one instance of babel-polyfill is allowed"); + } + global._babelPolyfill = true; + + var DEFINE_PROPERTY = "defineProperty"; + function define(O, key, value) { + O[key] || Object[DEFINE_PROPERTY](O, key, { + writable: true, + configurable: true, + value: value + }); + } + + define(String.prototype, "padLeft", "".padStart); + define(String.prototype, "padRight", "".padEnd); + + "pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) { + [][key] && define(Array, key, Function.call.bind([][key])); + }); + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(3); + __webpack_require__(53); + __webpack_require__(54); + __webpack_require__(55); + __webpack_require__(56); + __webpack_require__(58); + __webpack_require__(60); + __webpack_require__(61); + __webpack_require__(62); + __webpack_require__(63); + __webpack_require__(64); + __webpack_require__(65); + __webpack_require__(66); + __webpack_require__(67); + __webpack_require__(68); + __webpack_require__(70); + __webpack_require__(72); + __webpack_require__(74); + __webpack_require__(76); + __webpack_require__(79); + __webpack_require__(80); + __webpack_require__(81); + __webpack_require__(85); + __webpack_require__(87); + __webpack_require__(89); + __webpack_require__(92); + __webpack_require__(93); + __webpack_require__(94); + __webpack_require__(95); + __webpack_require__(97); + __webpack_require__(98); + __webpack_require__(99); + __webpack_require__(100); + __webpack_require__(101); + __webpack_require__(102); + __webpack_require__(103); + __webpack_require__(105); + __webpack_require__(106); + __webpack_require__(107); + __webpack_require__(109); + __webpack_require__(110); + __webpack_require__(111); + __webpack_require__(113); + __webpack_require__(115); + __webpack_require__(116); + __webpack_require__(117); + __webpack_require__(118); + __webpack_require__(119); + __webpack_require__(120); + __webpack_require__(121); + __webpack_require__(122); + __webpack_require__(123); + __webpack_require__(124); + __webpack_require__(125); + __webpack_require__(126); + __webpack_require__(127); + __webpack_require__(132); + __webpack_require__(133); + __webpack_require__(137); + __webpack_require__(138); + __webpack_require__(139); + __webpack_require__(140); + __webpack_require__(142); + __webpack_require__(143); + __webpack_require__(144); + __webpack_require__(145); + __webpack_require__(146); + __webpack_require__(147); + __webpack_require__(148); + __webpack_require__(149); + __webpack_require__(150); + __webpack_require__(151); + __webpack_require__(152); + __webpack_require__(153); + __webpack_require__(154); + __webpack_require__(155); + __webpack_require__(156); + __webpack_require__(158); + __webpack_require__(159); + __webpack_require__(161); + __webpack_require__(162); + __webpack_require__(168); + __webpack_require__(169); + __webpack_require__(171); + __webpack_require__(172); + __webpack_require__(173); + __webpack_require__(177); + __webpack_require__(178); + __webpack_require__(179); + __webpack_require__(180); + __webpack_require__(181); + __webpack_require__(183); + __webpack_require__(184); + __webpack_require__(185); + __webpack_require__(186); + __webpack_require__(189); + __webpack_require__(191); + __webpack_require__(192); + __webpack_require__(193); + __webpack_require__(195); + __webpack_require__(197); + __webpack_require__(199); + __webpack_require__(201); + __webpack_require__(202); + __webpack_require__(203); + __webpack_require__(207); + __webpack_require__(208); + __webpack_require__(209); + __webpack_require__(211); + __webpack_require__(221); + __webpack_require__(225); + __webpack_require__(226); + __webpack_require__(228); + __webpack_require__(229); + __webpack_require__(233); + __webpack_require__(234); + __webpack_require__(236); + __webpack_require__(237); + __webpack_require__(238); + __webpack_require__(239); + __webpack_require__(240); + __webpack_require__(241); + __webpack_require__(242); + __webpack_require__(243); + __webpack_require__(244); + __webpack_require__(245); + __webpack_require__(246); + __webpack_require__(247); + __webpack_require__(248); + __webpack_require__(249); + __webpack_require__(250); + __webpack_require__(251); + __webpack_require__(252); + __webpack_require__(253); + __webpack_require__(254); + __webpack_require__(256); + __webpack_require__(257); + __webpack_require__(258); + __webpack_require__(259); + __webpack_require__(260); + __webpack_require__(262); + __webpack_require__(263); + __webpack_require__(264); + __webpack_require__(266); + __webpack_require__(267); + __webpack_require__(268); + __webpack_require__(269); + __webpack_require__(270); + __webpack_require__(271); + __webpack_require__(272); + __webpack_require__(273); + __webpack_require__(275); + __webpack_require__(276); + __webpack_require__(278); + __webpack_require__(279); + __webpack_require__(280); + __webpack_require__(281); + __webpack_require__(284); + __webpack_require__(285); + __webpack_require__(287); + __webpack_require__(288); + __webpack_require__(289); + __webpack_require__(290); + __webpack_require__(292); + __webpack_require__(293); + __webpack_require__(294); + __webpack_require__(295); + __webpack_require__(296); + __webpack_require__(297); + __webpack_require__(298); + __webpack_require__(299); + __webpack_require__(300); + __webpack_require__(301); + __webpack_require__(303); + __webpack_require__(304); + __webpack_require__(305); + __webpack_require__(306); + __webpack_require__(307); + __webpack_require__(308); + __webpack_require__(309); + __webpack_require__(310); + __webpack_require__(311); + __webpack_require__(312); + __webpack_require__(313); + __webpack_require__(315); + __webpack_require__(316); + __webpack_require__(317); + __webpack_require__(318); + __webpack_require__(319); + __webpack_require__(320); + __webpack_require__(321); + __webpack_require__(322); + __webpack_require__(323); + __webpack_require__(324); + __webpack_require__(325); + __webpack_require__(326); + __webpack_require__(327); + module.exports = __webpack_require__(9); + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // ECMAScript 6 symbols shim + var global = __webpack_require__(4); + var has = __webpack_require__(5); + var DESCRIPTORS = __webpack_require__(6); + var $export = __webpack_require__(8); + var redefine = __webpack_require__(18); + var META = __webpack_require__(25).KEY; + var $fails = __webpack_require__(7); + var shared = __webpack_require__(21); + var setToStringTag = __webpack_require__(26); + var uid = __webpack_require__(19); + var wks = __webpack_require__(27); + var wksExt = __webpack_require__(28); + var wksDefine = __webpack_require__(29); + var enumKeys = __webpack_require__(30); + var isArray = __webpack_require__(45); + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var toObject = __webpack_require__(46); + var toIObject = __webpack_require__(33); + var toPrimitive = __webpack_require__(16); + var createDesc = __webpack_require__(17); + var _create = __webpack_require__(47); + var gOPNExt = __webpack_require__(50); + var $GOPD = __webpack_require__(52); + var $GOPS = __webpack_require__(43); + var $DP = __webpack_require__(11); + var $keys = __webpack_require__(31); + var gOPD = $GOPD.f; + var dP = $DP.f; + var gOPN = gOPNExt.f; + var $Symbol = global.Symbol; + var $JSON = global.JSON; + var _stringify = $JSON && $JSON.stringify; + var PROTOTYPE = 'prototype'; + var HIDDEN = wks('_hidden'); + var TO_PRIMITIVE = wks('toPrimitive'); + var isEnum = {}.propertyIsEnumerable; + var SymbolRegistry = shared('symbol-registry'); + var AllSymbols = shared('symbols'); + var OPSymbols = shared('op-symbols'); + var ObjectProto = Object[PROTOTYPE]; + var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; + var QObject = global.QObject; + // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 + var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + + // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 + var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function () { return dP(this, 'a', { value: 7 }).a; } + })).a != 7; + }) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); + } : dP; + + var wrap = function (tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + sym._k = tag; + return sym; + }; + + var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + return it instanceof $Symbol; + }; + + var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { enumerable: createDesc(0, false) }); + } return setSymbolDesc(it, key, D); + } return dP(it, key, D); + }; + var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + while (l > i) $defineProperty(it, key = keys[i++], P[key]); + return it; + }; + var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); + }; + var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; + }; + var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; + }; + var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } return result; + }; + var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } return result; + }; + + // 19.4.1.1 Symbol([description]) + if (!USE_NATIVE) { + $Symbol = function Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + var $set = function (value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); + return wrap(tag); + }; + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__(51).f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__(44).f = $propertyIsEnumerable; + $GOPS.f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__webpack_require__(22)) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; + } + + $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); + + for (var es6Symbols = ( + // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' + ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); + + for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); + + $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function (key) { + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; + }, + useSetter: function () { setter = true; }, + useSimple: function () { setter = false; } + }); + + $export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols + }); + + // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives + // https://bugs.chromium.org/p/v8/issues/detail?id=3443 + var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); }); + + $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + return $GOPS.f(toObject(it)); + } + }); + + // 24.3.2 JSON.stringify(value [, replacer [, space]]) + $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; + })), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + while (arguments.length > i) args.push(arguments[i++]); + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } + }); + + // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) + $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); + // 19.4.3.5 Symbol.prototype[@@toStringTag] + setToStringTag($Symbol, 'Symbol'); + // 20.2.1.9 Math[@@toStringTag] + setToStringTag(Math, 'Math', true); + // 24.3.3 JSON[@@toStringTag] + setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self + // eslint-disable-next-line no-new-func + : Function('return this')(); + if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + + var hasOwnProperty = {}.hasOwnProperty; + module.exports = function (it, key) { + return hasOwnProperty.call(it, key); + }; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + // Thank's IE8 for his funny defineProperty + module.exports = !__webpack_require__(7)(function () { + return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; + }); + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + + module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } + }; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var core = __webpack_require__(9); + var hide = __webpack_require__(10); + var redefine = __webpack_require__(18); + var ctx = __webpack_require__(23); + var PROTOTYPE = 'prototype'; + + var $export = function (type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); + var key, own, out, exp; + if (IS_GLOBAL) source = name; + for (key in source) { + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + // export native or passed + out = (own ? target : source)[key]; + // bind timers to global for call from export context + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // extend global + if (target) redefine(target, key, out, type & $export.U); + // export + if (exports[key] != out) hide(exports, key, exp); + if (IS_PROTO && expProto[key] != out) expProto[key] = out; + } + }; + global.core = core; + // type bitmap + $export.F = 1; // forced + $export.G = 2; // global + $export.S = 4; // static + $export.P = 8; // proto + $export.B = 16; // bind + $export.W = 32; // wrap + $export.U = 64; // safe + $export.R = 128; // real proto method for `library` + module.exports = $export; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + var core = module.exports = { version: '2.6.10' }; + if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(11); + var createDesc = __webpack_require__(17); + module.exports = __webpack_require__(6) ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(12); + var IE8_DOM_DEFINE = __webpack_require__(14); + var toPrimitive = __webpack_require__(16); + var dP = Object.defineProperty; + + exports.f = __webpack_require__(6) ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + + module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; + }; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = !__webpack_require__(6) && !__webpack_require__(7)(function () { + return Object.defineProperty(__webpack_require__(15)('div'), 'a', { get: function () { return 7; } }).a != 7; + }); + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + var document = __webpack_require__(4).document; + // typeof document.createElement is 'object' in old IE + var is = isObject(document) && isObject(document.createElement); + module.exports = function (it) { + return is ? document.createElement(it) : {}; + }; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.1 ToPrimitive(input [, PreferredType]) + var isObject = __webpack_require__(13); + // instead of the ES6 spec version, we didn't implement @@toPrimitive case + // and the second argument - flag - preferred type is a string + module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); + }; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + + module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var hide = __webpack_require__(10); + var has = __webpack_require__(5); + var SRC = __webpack_require__(19)('src'); + var $toString = __webpack_require__(20); + var TO_STRING = 'toString'; + var TPL = ('' + $toString).split(TO_STRING); + + __webpack_require__(9).inspectSource = function (it) { + return $toString.call(it); + }; + + (module.exports = function (O, key, val, safe) { + var isFunction = typeof val == 'function'; + if (isFunction) has(val, 'name') || hide(val, 'name', key); + if (O[key] === val) return; + if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + if (O === global) { + O[key] = val; + } else if (!safe) { + delete O[key]; + hide(O, key, val); + } else if (O[key]) { + O[key] = val; + } else { + hide(O, key, val); + } + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + })(Function.prototype, TO_STRING, function toString() { + return typeof this == 'function' && this[SRC] || $toString.call(this); + }); + + +/***/ }), +/* 19 */ +/***/ (function(module, exports) { + + var id = 0; + var px = Math.random(); + module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); + }; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(21)('native-function-to-string', Function.toString); + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + var core = __webpack_require__(9); + var global = __webpack_require__(4); + var SHARED = '__core-js_shared__'; + var store = global[SHARED] || (global[SHARED] = {}); + + (module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: core.version, + mode: __webpack_require__(22) ? 'pure' : 'global', + copyright: '© 2019 Denis Pushkarev (zloirock.ru)' + }); + + +/***/ }), +/* 22 */ +/***/ (function(module, exports) { + + module.exports = false; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + + // optional / simple context binding + var aFunction = __webpack_require__(24); + module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports) { + + module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; + }; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + + var META = __webpack_require__(19)('meta'); + var isObject = __webpack_require__(13); + var has = __webpack_require__(5); + var setDesc = __webpack_require__(11).f; + var id = 0; + var isExtensible = Object.isExtensible || function () { + return true; + }; + var FREEZE = !__webpack_require__(7)(function () { + return isExtensible(Object.preventExtensions({})); + }); + var setMeta = function (it) { + setDesc(it, META, { value: { + i: 'O' + ++id, // object ID + w: {} // weak collections IDs + } }); + }; + var fastKey = function (it, create) { + // return primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMeta(it); + // return object ID + } return it[META].i; + }; + var getWeak = function (it, create) { + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMeta(it); + // return hash weak collections IDs + } return it[META].w; + }; + // add metadata on freeze-family methods calling + var onFreeze = function (it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; + }; + var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze + }; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + + var def = __webpack_require__(11).f; + var has = __webpack_require__(5); + var TAG = __webpack_require__(27)('toStringTag'); + + module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); + }; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + + var store = __webpack_require__(21)('wks'); + var uid = __webpack_require__(19); + var Symbol = __webpack_require__(4).Symbol; + var USE_SYMBOL = typeof Symbol == 'function'; + + var $exports = module.exports = function (name) { + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); + }; + + $exports.store = store; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + + exports.f = __webpack_require__(27); + + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var core = __webpack_require__(9); + var LIBRARY = __webpack_require__(22); + var wksExt = __webpack_require__(28); + var defineProperty = __webpack_require__(11).f; + module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); + }; + + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + + // all enumerable object keys, includes symbols + var getKeys = __webpack_require__(31); + var gOPS = __webpack_require__(43); + var pIE = __webpack_require__(44); + module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); + } return result; + }; + + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 / 15.2.3.14 Object.keys(O) + var $keys = __webpack_require__(32); + var enumBugKeys = __webpack_require__(42); + + module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); + }; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + + var has = __webpack_require__(5); + var toIObject = __webpack_require__(33); + var arrayIndexOf = __webpack_require__(37)(false); + var IE_PROTO = __webpack_require__(41)('IE_PROTO'); + + module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + return result; + }; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + + // to indexed object, toObject with fallback for non-array-like ES3 strings + var IObject = __webpack_require__(34); + var defined = __webpack_require__(36); + module.exports = function (it) { + return IObject(defined(it)); + }; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var cof = __webpack_require__(35); + // eslint-disable-next-line no-prototype-builtins + module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); + }; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports) { + + var toString = {}.toString; + + module.exports = function (it) { + return toString.call(it).slice(8, -1); + }; + + +/***/ }), +/* 36 */ +/***/ (function(module, exports) { + + // 7.2.1 RequireObjectCoercible(argument) + module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; + }; + + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + + // false -> Array#indexOf + // true -> Array#includes + var toIObject = __webpack_require__(33); + var toLength = __webpack_require__(38); + var toAbsoluteIndex = __webpack_require__(40); + module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.15 ToLength + var toInteger = __webpack_require__(39); + var min = Math.min; + module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 + }; + + +/***/ }), +/* 39 */ +/***/ (function(module, exports) { + + // 7.1.4 ToInteger + var ceil = Math.ceil; + var floor = Math.floor; + module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); + }; + + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(39); + var max = Math.max; + var min = Math.min; + module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); + }; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + + var shared = __webpack_require__(21)('keys'); + var uid = __webpack_require__(19); + module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); + }; + + +/***/ }), +/* 42 */ +/***/ (function(module, exports) { + + // IE 8- don't enum bug keys + module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' + ).split(','); + + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + + exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports) { + + exports.f = {}.propertyIsEnumerable; + + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.2.2 IsArray(argument) + var cof = __webpack_require__(35); + module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; + }; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.13 ToObject(argument) + var defined = __webpack_require__(36); + module.exports = function (it) { + return Object(defined(it)); + }; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + var anObject = __webpack_require__(12); + var dPs = __webpack_require__(48); + var enumBugKeys = __webpack_require__(42); + var IE_PROTO = __webpack_require__(41)('IE_PROTO'); + var Empty = function () { /* empty */ }; + var PROTOTYPE = 'prototype'; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var createDict = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__(15)('iframe'); + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + __webpack_require__(49).appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; + return createDict(); + }; + + module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : dPs(result, Properties); + }; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(11); + var anObject = __webpack_require__(12); + var getKeys = __webpack_require__(31); + + module.exports = __webpack_require__(6) ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + while (length > i) dP.f(O, P = keys[i++], Properties[P]); + return O; + }; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + + var document = __webpack_require__(4).document; + module.exports = document && document.documentElement; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + var toIObject = __webpack_require__(33); + var gOPN = __webpack_require__(51).f; + var toString = {}.toString; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function (it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } + }; + + module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); + }; + + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) + var $keys = __webpack_require__(32); + var hiddenKeys = __webpack_require__(42).concat('length', 'prototype'); + + exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); + }; + + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + + var pIE = __webpack_require__(44); + var createDesc = __webpack_require__(17); + var toIObject = __webpack_require__(33); + var toPrimitive = __webpack_require__(16); + var has = __webpack_require__(5); + var IE8_DOM_DEFINE = __webpack_require__(14); + var gOPD = Object.getOwnPropertyDescriptor; + + exports.f = __webpack_require__(6) ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) { /* empty */ } + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); + }; + + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + $export($export.S, 'Object', { create: __webpack_require__(47) }); + + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) + $export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperty: __webpack_require__(11).f }); + + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) + $export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperties: __webpack_require__(48) }); + + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + var toIObject = __webpack_require__(33); + var $getOwnPropertyDescriptor = __webpack_require__(52).f; + + __webpack_require__(57)('getOwnPropertyDescriptor', function () { + return function getOwnPropertyDescriptor(it, key) { + return $getOwnPropertyDescriptor(toIObject(it), key); + }; + }); + + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + + // most Object methods by ES6 should accept primitives + var $export = __webpack_require__(8); + var core = __webpack_require__(9); + var fails = __webpack_require__(7); + module.exports = function (KEY, exec) { + var fn = (core.Object || {})[KEY] || Object[KEY]; + var exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); + }; + + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.9 Object.getPrototypeOf(O) + var toObject = __webpack_require__(46); + var $getPrototypeOf = __webpack_require__(59); + + __webpack_require__(57)('getPrototypeOf', function () { + return function getPrototypeOf(it) { + return $getPrototypeOf(toObject(it)); + }; + }); + + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) + var has = __webpack_require__(5); + var toObject = __webpack_require__(46); + var IE_PROTO = __webpack_require__(41)('IE_PROTO'); + var ObjectProto = Object.prototype; + + module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; + }; + + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 Object.keys(O) + var toObject = __webpack_require__(46); + var $keys = __webpack_require__(31); + + __webpack_require__(57)('keys', function () { + return function keys(it) { + return $keys(toObject(it)); + }; + }); + + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.7 Object.getOwnPropertyNames(O) + __webpack_require__(57)('getOwnPropertyNames', function () { + return __webpack_require__(50).f; + }); + + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.5 Object.freeze(O) + var isObject = __webpack_require__(13); + var meta = __webpack_require__(25).onFreeze; + + __webpack_require__(57)('freeze', function ($freeze) { + return function freeze(it) { + return $freeze && isObject(it) ? $freeze(meta(it)) : it; + }; + }); + + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.17 Object.seal(O) + var isObject = __webpack_require__(13); + var meta = __webpack_require__(25).onFreeze; + + __webpack_require__(57)('seal', function ($seal) { + return function seal(it) { + return $seal && isObject(it) ? $seal(meta(it)) : it; + }; + }); + + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.15 Object.preventExtensions(O) + var isObject = __webpack_require__(13); + var meta = __webpack_require__(25).onFreeze; + + __webpack_require__(57)('preventExtensions', function ($preventExtensions) { + return function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; + }; + }); + + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.12 Object.isFrozen(O) + var isObject = __webpack_require__(13); + + __webpack_require__(57)('isFrozen', function ($isFrozen) { + return function isFrozen(it) { + return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; + }; + }); + + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.13 Object.isSealed(O) + var isObject = __webpack_require__(13); + + __webpack_require__(57)('isSealed', function ($isSealed) { + return function isSealed(it) { + return isObject(it) ? $isSealed ? $isSealed(it) : false : true; + }; + }); + + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.11 Object.isExtensible(O) + var isObject = __webpack_require__(13); + + __webpack_require__(57)('isExtensible', function ($isExtensible) { + return function isExtensible(it) { + return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; + }; + }); + + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.1 Object.assign(target, source) + var $export = __webpack_require__(8); + + $export($export.S + $export.F, 'Object', { assign: __webpack_require__(69) }); + + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 19.1.2.1 Object.assign(target, source, ...) + var DESCRIPTORS = __webpack_require__(6); + var getKeys = __webpack_require__(31); + var gOPS = __webpack_require__(43); + var pIE = __webpack_require__(44); + var toObject = __webpack_require__(46); + var IObject = __webpack_require__(34); + var $assign = Object.assign; + + // should work with symbols and should have deterministic property order (V8 bug) + module.exports = !$assign || __webpack_require__(7)(function () { + var A = {}; + var B = {}; + // eslint-disable-next-line no-undef + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.10 Object.is(value1, value2) + var $export = __webpack_require__(8); + $export($export.S, 'Object', { is: __webpack_require__(71) }); + + +/***/ }), +/* 71 */ +/***/ (function(module, exports) { + + // 7.2.9 SameValue(x, y) + module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; + }; + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.19 Object.setPrototypeOf(O, proto) + var $export = __webpack_require__(8); + $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(73).set }); + + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + + // Works with __proto__ only. Old v8 can't work with null proto objects. + /* eslint-disable no-proto */ + var isObject = __webpack_require__(13); + var anObject = __webpack_require__(12); + var check = function (O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); + }; + module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function (test, buggy, set) { + try { + set = __webpack_require__(23)(Function.call, __webpack_require__(52).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { buggy = true; } + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check + }; + + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 19.1.3.6 Object.prototype.toString() + var classof = __webpack_require__(75); + var test = {}; + test[__webpack_require__(27)('toStringTag')] = 'z'; + if (test + '' != '[object z]') { + __webpack_require__(18)(Object.prototype, 'toString', function toString() { + return '[object ' + classof(this) + ']'; + }, true); + } + + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + + // getting tag from 19.1.3.6 Object.prototype.toString() + var cof = __webpack_require__(35); + var TAG = __webpack_require__(27)('toStringTag'); + // ES3 wrong here + var ARG = cof(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (e) { /* empty */ } + }; + + module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; + }; + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) + var $export = __webpack_require__(8); + + $export($export.P, 'Function', { bind: __webpack_require__(77) }); + + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var aFunction = __webpack_require__(24); + var isObject = __webpack_require__(13); + var invoke = __webpack_require__(78); + var arraySlice = [].slice; + var factories = {}; + + var construct = function (F, len, args) { + if (!(len in factories)) { + for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; + // eslint-disable-next-line no-new-func + factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); + } return factories[len](F, args); + }; + + module.exports = Function.bind || function bind(that /* , ...args */) { + var fn = aFunction(this); + var partArgs = arraySlice.call(arguments, 1); + var bound = function (/* args... */) { + var args = partArgs.concat(arraySlice.call(arguments)); + return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); + }; + if (isObject(fn.prototype)) bound.prototype = fn.prototype; + return bound; + }; + + +/***/ }), +/* 78 */ +/***/ (function(module, exports) { + + // fast apply, http://jsperf.lnkit.com/fast-apply/5 + module.exports = function (fn, args, that) { + var un = that === undefined; + switch (args.length) { + case 0: return un ? fn() + : fn.call(that); + case 1: return un ? fn(args[0]) + : fn.call(that, args[0]); + case 2: return un ? fn(args[0], args[1]) + : fn.call(that, args[0], args[1]); + case 3: return un ? fn(args[0], args[1], args[2]) + : fn.call(that, args[0], args[1], args[2]); + case 4: return un ? fn(args[0], args[1], args[2], args[3]) + : fn.call(that, args[0], args[1], args[2], args[3]); + } return fn.apply(that, args); + }; + + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(11).f; + var FProto = Function.prototype; + var nameRE = /^\s*function ([^ (]*)/; + var NAME = 'name'; + + // 19.2.4.2 name + NAME in FProto || __webpack_require__(6) && dP(FProto, NAME, { + configurable: true, + get: function () { + try { + return ('' + this).match(nameRE)[1]; + } catch (e) { + return ''; + } + } + }); + + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var isObject = __webpack_require__(13); + var getPrototypeOf = __webpack_require__(59); + var HAS_INSTANCE = __webpack_require__(27)('hasInstance'); + var FunctionProto = Function.prototype; + // 19.2.3.6 Function.prototype[@@hasInstance](V) + if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(11).f(FunctionProto, HAS_INSTANCE, { value: function (O) { + if (typeof this != 'function' || !isObject(O)) return false; + if (!isObject(this.prototype)) return O instanceof this; + // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: + while (O = getPrototypeOf(O)) if (this.prototype === O) return true; + return false; + } }); + + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseInt = __webpack_require__(82); + // 18.2.5 parseInt(string, radix) + $export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); + + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + + var $parseInt = __webpack_require__(4).parseInt; + var $trim = __webpack_require__(83).trim; + var ws = __webpack_require__(84); + var hex = /^[-+]?0[xX]/; + + module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { + var string = $trim(String(str), 3); + return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); + } : $parseInt; + + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var defined = __webpack_require__(36); + var fails = __webpack_require__(7); + var spaces = __webpack_require__(84); + var space = '[' + spaces + ']'; + var non = '\u200b\u0085'; + var ltrim = RegExp('^' + space + space + '*'); + var rtrim = RegExp(space + space + '*$'); + + var exporter = function (KEY, exec, ALIAS) { + var exp = {}; + var FORCE = fails(function () { + return !!spaces[KEY]() || non[KEY]() != non; + }); + var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; + if (ALIAS) exp[ALIAS] = fn; + $export($export.P + $export.F * FORCE, 'String', exp); + }; + + // 1 -> String#trimLeft + // 2 -> String#trimRight + // 3 -> String#trim + var trim = exporter.trim = function (string, TYPE) { + string = String(defined(string)); + if (TYPE & 1) string = string.replace(ltrim, ''); + if (TYPE & 2) string = string.replace(rtrim, ''); + return string; + }; + + module.exports = exporter; + + +/***/ }), +/* 84 */ +/***/ (function(module, exports) { + + module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseFloat = __webpack_require__(86); + // 18.2.4 parseFloat(string) + $export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); + + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + + var $parseFloat = __webpack_require__(4).parseFloat; + var $trim = __webpack_require__(83).trim; + + module.exports = 1 / $parseFloat(__webpack_require__(84) + '-0') !== -Infinity ? function parseFloat(str) { + var string = $trim(String(str), 3); + var result = $parseFloat(string); + return result === 0 && string.charAt(0) == '-' ? -0 : result; + } : $parseFloat; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var has = __webpack_require__(5); + var cof = __webpack_require__(35); + var inheritIfRequired = __webpack_require__(88); + var toPrimitive = __webpack_require__(16); + var fails = __webpack_require__(7); + var gOPN = __webpack_require__(51).f; + var gOPD = __webpack_require__(52).f; + var dP = __webpack_require__(11).f; + var $trim = __webpack_require__(83).trim; + var NUMBER = 'Number'; + var $Number = global[NUMBER]; + var Base = $Number; + var proto = $Number.prototype; + // Opera ~12 has broken Object#toString + var BROKEN_COF = cof(__webpack_require__(47)(proto)) == NUMBER; + var TRIM = 'trim' in String.prototype; + + // 7.1.3 ToNumber(argument) + var toNumber = function (argument) { + var it = toPrimitive(argument, false); + if (typeof it == 'string' && it.length > 2) { + it = TRIM ? it.trim() : $trim(it, 3); + var first = it.charCodeAt(0); + var third, radix, maxCode; + if (first === 43 || first === 45) { + third = it.charCodeAt(2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (it.charCodeAt(1)) { + case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i + case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i + default: return +it; + } + for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { + code = digits.charCodeAt(i); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; + }; + + if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { + $Number = function Number(value) { + var it = arguments.length < 1 ? 0 : value; + var that = this; + return that instanceof $Number + // check on 1..constructor(foo) case + && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) + ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); + }; + for (var keys = __webpack_require__(6) ? gOPN(Base) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES6 (in case, if modules with ES6 Number statics required before): + 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' + ).split(','), j = 0, key; keys.length > j; j++) { + if (has(Base, key = keys[j]) && !has($Number, key)) { + dP($Number, key, gOPD(Base, key)); + } + } + $Number.prototype = proto; + proto.constructor = $Number; + __webpack_require__(18)(global, NUMBER, $Number); + } + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + var setPrototypeOf = __webpack_require__(73).set; + module.exports = function (that, target, C) { + var S = target.constructor; + var P; + if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { + setPrototypeOf(that, P); + } return that; + }; + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toInteger = __webpack_require__(39); + var aNumberValue = __webpack_require__(90); + var repeat = __webpack_require__(91); + var $toFixed = 1.0.toFixed; + var floor = Math.floor; + var data = [0, 0, 0, 0, 0, 0]; + var ERROR = 'Number.toFixed: incorrect invocation!'; + var ZERO = '0'; + + var multiply = function (n, c) { + var i = -1; + var c2 = c; + while (++i < 6) { + c2 += n * data[i]; + data[i] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } + }; + var divide = function (n) { + var i = 6; + var c = 0; + while (--i >= 0) { + c += data[i]; + data[i] = floor(c / n); + c = (c % n) * 1e7; + } + }; + var numToString = function () { + var i = 6; + var s = ''; + while (--i >= 0) { + if (s !== '' || i === 0 || data[i] !== 0) { + var t = String(data[i]); + s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; + } + } return s; + }; + var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); + }; + var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; + }; + + $export($export.P + $export.F * (!!$toFixed && ( + 0.00008.toFixed(3) !== '0.000' || + 0.9.toFixed(0) !== '1' || + 1.255.toFixed(2) !== '1.25' || + 1000000000000000128.0.toFixed(0) !== '1000000000000000128' + ) || !__webpack_require__(7)(function () { + // V8 ~ Android 4.3- + $toFixed.call({}); + })), 'Number', { + toFixed: function toFixed(fractionDigits) { + var x = aNumberValue(this, ERROR); + var f = toInteger(fractionDigits); + var s = ''; + var m = ZERO; + var e, z, j, k; + if (f < 0 || f > 20) throw RangeError(ERROR); + // eslint-disable-next-line no-self-compare + if (x != x) return 'NaN'; + if (x <= -1e21 || x >= 1e21) return String(x); + if (x < 0) { + s = '-'; + x = -x; + } + if (x > 1e-21) { + e = log(x * pow(2, 69, 1)) - 69; + z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(0, z); + j = f; + while (j >= 7) { + multiply(1e7, 0); + j -= 7; + } + multiply(pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(1 << 23); + j -= 23; + } + divide(1 << j); + multiply(1, 1); + divide(2); + m = numToString(); + } else { + multiply(0, z); + multiply(1 << -e, 0); + m = numToString() + repeat.call(ZERO, f); + } + } + if (f > 0) { + k = m.length; + m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); + } else { + m = s + m; + } return m; + } + }); + + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + + var cof = __webpack_require__(35); + module.exports = function (it, msg) { + if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); + return +it; + }; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var toInteger = __webpack_require__(39); + var defined = __webpack_require__(36); + + module.exports = function repeat(count) { + var str = String(defined(this)); + var res = ''; + var n = toInteger(count); + if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; + return res; + }; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $fails = __webpack_require__(7); + var aNumberValue = __webpack_require__(90); + var $toPrecision = 1.0.toPrecision; + + $export($export.P + $export.F * ($fails(function () { + // IE7- + return $toPrecision.call(1, undefined) !== '1'; + }) || !$fails(function () { + // V8 ~ Android 4.3- + $toPrecision.call({}); + })), 'Number', { + toPrecision: function toPrecision(precision) { + var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); + return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); + } + }); + + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.1 Number.EPSILON + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.2 Number.isFinite(number) + var $export = __webpack_require__(8); + var _isFinite = __webpack_require__(4).isFinite; + + $export($export.S, 'Number', { + isFinite: function isFinite(it) { + return typeof it == 'number' && _isFinite(it); + } + }); + + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.3 Number.isInteger(number) + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { isInteger: __webpack_require__(96) }); + + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.3 Number.isInteger(number) + var isObject = __webpack_require__(13); + var floor = Math.floor; + module.exports = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; + }; + + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.4 Number.isNaN(number) + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare + return number != number; + } + }); + + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.5 Number.isSafeInteger(number) + var $export = __webpack_require__(8); + var isInteger = __webpack_require__(96); + var abs = Math.abs; + + $export($export.S, 'Number', { + isSafeInteger: function isSafeInteger(number) { + return isInteger(number) && abs(number) <= 0x1fffffffffffff; + } + }); + + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.6 Number.MAX_SAFE_INTEGER + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); + + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.10 Number.MIN_SAFE_INTEGER + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseFloat = __webpack_require__(86); + // 20.1.2.12 Number.parseFloat(string) + $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); + + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseInt = __webpack_require__(82); + // 20.1.2.13 Number.parseInt(string, radix) + $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); + + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.3 Math.acosh(x) + var $export = __webpack_require__(8); + var log1p = __webpack_require__(104); + var sqrt = Math.sqrt; + var $acosh = Math.acosh; + + $export($export.S + $export.F * !($acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + && Math.floor($acosh(Number.MAX_VALUE)) == 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + && $acosh(Infinity) == Infinity + ), 'Math', { + acosh: function acosh(x) { + return (x = +x) < 1 ? NaN : x > 94906265.62425156 + ? Math.log(x) + Math.LN2 + : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); + } + }); + + +/***/ }), +/* 104 */ +/***/ (function(module, exports) { + + // 20.2.2.20 Math.log1p(x) + module.exports = Math.log1p || function log1p(x) { + return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); + }; + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.5 Math.asinh(x) + var $export = __webpack_require__(8); + var $asinh = Math.asinh; + + function asinh(x) { + return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); + } + + // Tor Browser bug: Math.asinh(0) -> -0 + $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.7 Math.atanh(x) + var $export = __webpack_require__(8); + var $atanh = Math.atanh; + + // Tor Browser bug: Math.atanh(-0) -> 0 + $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { + atanh: function atanh(x) { + return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; + } + }); + + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.9 Math.cbrt(x) + var $export = __webpack_require__(8); + var sign = __webpack_require__(108); + + $export($export.S, 'Math', { + cbrt: function cbrt(x) { + return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); + } + }); + + +/***/ }), +/* 108 */ +/***/ (function(module, exports) { + + // 20.2.2.28 Math.sign(x) + module.exports = Math.sign || function sign(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; + }; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.11 Math.clz32(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + clz32: function clz32(x) { + return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; + } + }); + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.12 Math.cosh(x) + var $export = __webpack_require__(8); + var exp = Math.exp; + + $export($export.S, 'Math', { + cosh: function cosh(x) { + return (exp(x = +x) + exp(-x)) / 2; + } + }); + + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.14 Math.expm1(x) + var $export = __webpack_require__(8); + var $expm1 = __webpack_require__(112); + + $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); + + +/***/ }), +/* 112 */ +/***/ (function(module, exports) { + + // 20.2.2.14 Math.expm1(x) + var $expm1 = Math.expm1; + module.exports = (!$expm1 + // Old FF bug + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) != -2e-17 + ) ? function expm1(x) { + return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; + } : $expm1; + + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.16 Math.fround(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { fround: __webpack_require__(114) }); + + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.16 Math.fround(x) + var sign = __webpack_require__(108); + var pow = Math.pow; + var EPSILON = pow(2, -52); + var EPSILON32 = pow(2, -23); + var MAX32 = pow(2, 127) * (2 - EPSILON32); + var MIN32 = pow(2, -126); + + var roundTiesToEven = function (n) { + return n + 1 / EPSILON - 1 / EPSILON; + }; + + module.exports = Math.fround || function fround(x) { + var $abs = Math.abs(x); + var $sign = sign(x); + var a, result; + if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; + a = (1 + EPSILON32 / EPSILON) * $abs; + result = a - (a - $abs); + // eslint-disable-next-line no-self-compare + if (result > MAX32 || result != result) return $sign * Infinity; + return $sign * result; + }; + + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) + var $export = __webpack_require__(8); + var abs = Math.abs; + + $export($export.S, 'Math', { + hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * Math.sqrt(sum); + } + }); + + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.18 Math.imul(x, y) + var $export = __webpack_require__(8); + var $imul = Math.imul; + + // some WebKit versions fails with big numbers, some has wrong arity + $export($export.S + $export.F * __webpack_require__(7)(function () { + return $imul(0xffffffff, 5) != -5 || $imul.length != 2; + }), 'Math', { + imul: function imul(x, y) { + var UINT16 = 0xffff; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } + }); + + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.21 Math.log10(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + log10: function log10(x) { + return Math.log(x) * Math.LOG10E; + } + }); + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.20 Math.log1p(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { log1p: __webpack_require__(104) }); + + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.22 Math.log2(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + log2: function log2(x) { + return Math.log(x) / Math.LN2; + } + }); + + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.28 Math.sign(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { sign: __webpack_require__(108) }); + + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.30 Math.sinh(x) + var $export = __webpack_require__(8); + var expm1 = __webpack_require__(112); + var exp = Math.exp; + + // V8 near Chromium 38 has a problem with very small numbers + $export($export.S + $export.F * __webpack_require__(7)(function () { + return !Math.sinh(-2e-17) != -2e-17; + }), 'Math', { + sinh: function sinh(x) { + return Math.abs(x = +x) < 1 + ? (expm1(x) - expm1(-x)) / 2 + : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); + } + }); + + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.33 Math.tanh(x) + var $export = __webpack_require__(8); + var expm1 = __webpack_require__(112); + var exp = Math.exp; + + $export($export.S, 'Math', { + tanh: function tanh(x) { + var a = expm1(x = +x); + var b = expm1(-x); + return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); + } + }); + + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.34 Math.trunc(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + trunc: function trunc(it) { + return (it > 0 ? Math.floor : Math.ceil)(it); + } + }); + + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var toAbsoluteIndex = __webpack_require__(40); + var fromCharCode = String.fromCharCode; + var $fromCodePoint = String.fromCodePoint; + + // length should be 1, old FF problem + $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { + // 21.1.2.2 String.fromCodePoint(...codePoints) + fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars + var res = []; + var aLen = arguments.length; + var i = 0; + var code; + while (aLen > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); + res.push(code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) + ); + } return res.join(''); + } + }); + + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var toIObject = __webpack_require__(33); + var toLength = __webpack_require__(38); + + $export($export.S, 'String', { + // 21.1.2.4 String.raw(callSite, ...substitutions) + raw: function raw(callSite) { + var tpl = toIObject(callSite.raw); + var len = toLength(tpl.length); + var aLen = arguments.length; + var res = []; + var i = 0; + while (len > i) { + res.push(String(tpl[i++])); + if (i < aLen) res.push(String(arguments[i])); + } return res.join(''); + } + }); + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 21.1.3.25 String.prototype.trim() + __webpack_require__(83)('trim', function ($trim) { + return function trim() { + return $trim(this, 3); + }; + }); + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $at = __webpack_require__(128)(true); + + // 21.1.3.27 String.prototype[@@iterator]() + __webpack_require__(129)(String, 'String', function (iterated) { + this._t = String(iterated); // target + this._i = 0; // next index + // 21.1.5.2.1 %StringIteratorPrototype%.next() + }, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { value: undefined, done: true }; + point = $at(O, index); + this._i += point.length; + return { value: point, done: false }; + }); + + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(39); + var defined = __webpack_require__(36); + // true -> String#at + // false -> String#codePointAt + module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; + }; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var LIBRARY = __webpack_require__(22); + var $export = __webpack_require__(8); + var redefine = __webpack_require__(18); + var hide = __webpack_require__(10); + var Iterators = __webpack_require__(130); + var $iterCreate = __webpack_require__(131); + var setToStringTag = __webpack_require__(26); + var getPrototypeOf = __webpack_require__(59); + var ITERATOR = __webpack_require__(27)('iterator'); + var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` + var FF_ITERATOR = '@@iterator'; + var KEYS = 'keys'; + var VALUES = 'values'; + + var returnThis = function () { return this; }; + + module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + var getMethod = function (kind) { + if (!BUGGY && kind in proto) return proto[kind]; + switch (kind) { + case KEYS: return function keys() { return new Constructor(this, kind); }; + case VALUES: return function values() { return new Constructor(this, kind); }; + } return function entries() { return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; + // Fix native + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + $default = function values() { return $native.call(this); }; + } + // Define iterator + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; + }; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports) { + + module.exports = {}; + + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var create = __webpack_require__(47); + var descriptor = __webpack_require__(17); + var setToStringTag = __webpack_require__(26); + var IteratorPrototype = {}; + + // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() + __webpack_require__(10)(IteratorPrototype, __webpack_require__(27)('iterator'), function () { return this; }); + + module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); + setToStringTag(Constructor, NAME + ' Iterator'); + }; + + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $at = __webpack_require__(128)(false); + $export($export.P, 'String', { + // 21.1.3.3 String.prototype.codePointAt(pos) + codePointAt: function codePointAt(pos) { + return $at(this, pos); + } + }); + + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) + 'use strict'; + var $export = __webpack_require__(8); + var toLength = __webpack_require__(38); + var context = __webpack_require__(134); + var ENDS_WITH = 'endsWith'; + var $endsWith = ''[ENDS_WITH]; + + $export($export.P + $export.F * __webpack_require__(136)(ENDS_WITH), 'String', { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = context(this, searchString, ENDS_WITH); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); + var search = String(searchString); + return $endsWith + ? $endsWith.call(that, search, end) + : that.slice(end - search.length, end) === search; + } + }); + + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __webpack_require__) { + + // helper for String#{startsWith, endsWith, includes} + var isRegExp = __webpack_require__(135); + var defined = __webpack_require__(36); + + module.exports = function (that, searchString, NAME) { + if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); + }; + + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.2.8 IsRegExp(argument) + var isObject = __webpack_require__(13); + var cof = __webpack_require__(35); + var MATCH = __webpack_require__(27)('match'); + module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); + }; + + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + + var MATCH = __webpack_require__(27)('match'); + module.exports = function (KEY) { + var re = /./; + try { + '/./'[KEY](re); + } catch (e) { + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch (f) { /* empty */ } + } return true; + }; + + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.1.3.7 String.prototype.includes(searchString, position = 0) + 'use strict'; + var $export = __webpack_require__(8); + var context = __webpack_require__(134); + var INCLUDES = 'includes'; + + $export($export.P + $export.F * __webpack_require__(136)(INCLUDES), 'String', { + includes: function includes(searchString /* , position = 0 */) { + return !!~context(this, searchString, INCLUDES) + .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + + $export($export.P, 'String', { + // 21.1.3.13 String.prototype.repeat(count) + repeat: __webpack_require__(91) + }); + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.1.3.18 String.prototype.startsWith(searchString [, position ]) + 'use strict'; + var $export = __webpack_require__(8); + var toLength = __webpack_require__(38); + var context = __webpack_require__(134); + var STARTS_WITH = 'startsWith'; + var $startsWith = ''[STARTS_WITH]; + + $export($export.P + $export.F * __webpack_require__(136)(STARTS_WITH), 'String', { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = context(this, searchString, STARTS_WITH); + var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return $startsWith + ? $startsWith.call(that, search, index) + : that.slice(index, index + search.length) === search; + } + }); + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.2 String.prototype.anchor(name) + __webpack_require__(141)('anchor', function (createHTML) { + return function anchor(name) { + return createHTML(this, 'a', 'name', name); + }; + }); + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var fails = __webpack_require__(7); + var defined = __webpack_require__(36); + var quot = /"/g; + // B.2.3.2.1 CreateHTML(string, tag, attribute, value) + var createHTML = function (string, tag, attribute, value) { + var S = String(defined(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; + return p1 + '>' + S + ''; + }; + module.exports = function (NAME, exec) { + var O = {}; + O[NAME] = exec(createHTML); + $export($export.P + $export.F * fails(function () { + var test = ''[NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }), 'String', O); + }; + + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.3 String.prototype.big() + __webpack_require__(141)('big', function (createHTML) { + return function big() { + return createHTML(this, 'big', '', ''); + }; + }); + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.4 String.prototype.blink() + __webpack_require__(141)('blink', function (createHTML) { + return function blink() { + return createHTML(this, 'blink', '', ''); + }; + }); + + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.5 String.prototype.bold() + __webpack_require__(141)('bold', function (createHTML) { + return function bold() { + return createHTML(this, 'b', '', ''); + }; + }); + + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.6 String.prototype.fixed() + __webpack_require__(141)('fixed', function (createHTML) { + return function fixed() { + return createHTML(this, 'tt', '', ''); + }; + }); + + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.7 String.prototype.fontcolor(color) + __webpack_require__(141)('fontcolor', function (createHTML) { + return function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + }; + }); + + +/***/ }), +/* 147 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.8 String.prototype.fontsize(size) + __webpack_require__(141)('fontsize', function (createHTML) { + return function fontsize(size) { + return createHTML(this, 'font', 'size', size); + }; + }); + + +/***/ }), +/* 148 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.9 String.prototype.italics() + __webpack_require__(141)('italics', function (createHTML) { + return function italics() { + return createHTML(this, 'i', '', ''); + }; + }); + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.10 String.prototype.link(url) + __webpack_require__(141)('link', function (createHTML) { + return function link(url) { + return createHTML(this, 'a', 'href', url); + }; + }); + + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.11 String.prototype.small() + __webpack_require__(141)('small', function (createHTML) { + return function small() { + return createHTML(this, 'small', '', ''); + }; + }); + + +/***/ }), +/* 151 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.12 String.prototype.strike() + __webpack_require__(141)('strike', function (createHTML) { + return function strike() { + return createHTML(this, 'strike', '', ''); + }; + }); + + +/***/ }), +/* 152 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.13 String.prototype.sub() + __webpack_require__(141)('sub', function (createHTML) { + return function sub() { + return createHTML(this, 'sub', '', ''); + }; + }); + + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.14 String.prototype.sup() + __webpack_require__(141)('sup', function (createHTML) { + return function sup() { + return createHTML(this, 'sup', '', ''); + }; + }); + + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.3.3.1 / 15.9.4.4 Date.now() + var $export = __webpack_require__(8); + + $export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); + + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(46); + var toPrimitive = __webpack_require__(16); + + $export($export.P + $export.F * __webpack_require__(7)(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; + }), 'Date', { + // eslint-disable-next-line no-unused-vars + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } + }); + + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() + var $export = __webpack_require__(8); + var toISOString = __webpack_require__(157); + + // PhantomJS / old WebKit has a broken implementations + $export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { + toISOString: toISOString + }); + + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() + var fails = __webpack_require__(7); + var getTime = Date.prototype.getTime; + var $toISOString = Date.prototype.toISOString; + + var lz = function (num) { + return num > 9 ? num : '0' + num; + }; + + // PhantomJS / old WebKit has a broken implementations + module.exports = (fails(function () { + return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; + }) || !fails(function () { + $toISOString.call(new Date(NaN)); + })) ? function toISOString() { + if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); + var d = this; + var y = d.getUTCFullYear(); + var m = d.getUTCMilliseconds(); + var s = y < 0 ? '-' : y > 9999 ? '+' : ''; + return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; + } : $toISOString; + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + + var DateProto = Date.prototype; + var INVALID_DATE = 'Invalid Date'; + var TO_STRING = 'toString'; + var $toString = DateProto[TO_STRING]; + var getTime = DateProto.getTime; + if (new Date(NaN) + '' != INVALID_DATE) { + __webpack_require__(18)(DateProto, TO_STRING, function toString() { + var value = getTime.call(this); + // eslint-disable-next-line no-self-compare + return value === value ? $toString.call(this) : INVALID_DATE; + }); + } + + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __webpack_require__) { + + var TO_PRIMITIVE = __webpack_require__(27)('toPrimitive'); + var proto = Date.prototype; + + if (!(TO_PRIMITIVE in proto)) __webpack_require__(10)(proto, TO_PRIMITIVE, __webpack_require__(160)); + + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var anObject = __webpack_require__(12); + var toPrimitive = __webpack_require__(16); + var NUMBER = 'number'; + + module.exports = function (hint) { + if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); + return toPrimitive(anObject(this), hint != NUMBER); + }; + + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.2.2 / 15.4.3.2 Array.isArray(arg) + var $export = __webpack_require__(8); + + $export($export.S, 'Array', { isArray: __webpack_require__(45) }); + + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var ctx = __webpack_require__(23); + var $export = __webpack_require__(8); + var toObject = __webpack_require__(46); + var call = __webpack_require__(163); + var isArrayIter = __webpack_require__(164); + var toLength = __webpack_require__(38); + var createProperty = __webpack_require__(165); + var getIterFn = __webpack_require__(166); + + $export($export.S + $export.F * !__webpack_require__(167)(function (iter) { Array.from(iter); }), 'Array', { + // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) + from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); + // if object isn't iterable or it's array with default iterator - use simple case + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + result.length = index; + return result; + } + }); + + +/***/ }), +/* 163 */ +/***/ (function(module, exports, __webpack_require__) { + + // call something on iterator step with safe closing on error + var anObject = __webpack_require__(12); + module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } + }; + + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __webpack_require__) { + + // check on default Array iterator + var Iterators = __webpack_require__(130); + var ITERATOR = __webpack_require__(27)('iterator'); + var ArrayProto = Array.prototype; + + module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); + }; + + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $defineProperty = __webpack_require__(11); + var createDesc = __webpack_require__(17); + + module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value)); + else object[index] = value; + }; + + +/***/ }), +/* 166 */ +/***/ (function(module, exports, __webpack_require__) { + + var classof = __webpack_require__(75); + var ITERATOR = __webpack_require__(27)('iterator'); + var Iterators = __webpack_require__(130); + module.exports = __webpack_require__(9).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; + }; + + +/***/ }), +/* 167 */ +/***/ (function(module, exports, __webpack_require__) { + + var ITERATOR = __webpack_require__(27)('iterator'); + var SAFE_CLOSING = false; + + try { + var riter = [7][ITERATOR](); + riter['return'] = function () { SAFE_CLOSING = true; }; + // eslint-disable-next-line no-throw-literal + Array.from(riter, function () { throw 2; }); + } catch (e) { /* empty */ } + + module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + try { + var arr = [7]; + var iter = arr[ITERATOR](); + iter.next = function () { return { done: safe = true }; }; + arr[ITERATOR] = function () { return iter; }; + exec(arr); + } catch (e) { /* empty */ } + return safe; + }; + + +/***/ }), +/* 168 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var createProperty = __webpack_require__(165); + + // WebKit Array.of isn't generic + $export($export.S + $export.F * __webpack_require__(7)(function () { + function F() { /* empty */ } + return !(Array.of.call(F) instanceof F); + }), 'Array', { + // 22.1.2.3 Array.of( ...items) + of: function of(/* ...args */) { + var index = 0; + var aLen = arguments.length; + var result = new (typeof this == 'function' ? this : Array)(aLen); + while (aLen > index) createProperty(result, index, arguments[index++]); + result.length = aLen; + return result; + } + }); + + +/***/ }), +/* 169 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 22.1.3.13 Array.prototype.join(separator) + var $export = __webpack_require__(8); + var toIObject = __webpack_require__(33); + var arrayJoin = [].join; + + // fallback for not array-like strings + $export($export.P + $export.F * (__webpack_require__(34) != Object || !__webpack_require__(170)(arrayJoin)), 'Array', { + join: function join(separator) { + return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); + } + }); + + +/***/ }), +/* 170 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var fails = __webpack_require__(7); + + module.exports = function (method, arg) { + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call + arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); + }); + }; + + +/***/ }), +/* 171 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var html = __webpack_require__(49); + var cof = __webpack_require__(35); + var toAbsoluteIndex = __webpack_require__(40); + var toLength = __webpack_require__(38); + var arraySlice = [].slice; + + // fallback for not array-like ES3 strings and DOM objects + $export($export.P + $export.F * __webpack_require__(7)(function () { + if (html) arraySlice.call(html); + }), 'Array', { + slice: function slice(begin, end) { + var len = toLength(this.length); + var klass = cof(this); + end = end === undefined ? len : end; + if (klass == 'Array') return arraySlice.call(this, begin, end); + var start = toAbsoluteIndex(begin, len); + var upTo = toAbsoluteIndex(end, len); + var size = toLength(upTo - start); + var cloned = new Array(size); + var i = 0; + for (; i < size; i++) cloned[i] = klass == 'String' + ? this.charAt(start + i) + : this[start + i]; + return cloned; + } + }); + + +/***/ }), +/* 172 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var aFunction = __webpack_require__(24); + var toObject = __webpack_require__(46); + var fails = __webpack_require__(7); + var $sort = [].sort; + var test = [1, 2, 3]; + + $export($export.P + $export.F * (fails(function () { + // IE8- + test.sort(undefined); + }) || !fails(function () { + // V8 bug + test.sort(null); + // Old WebKit + }) || !__webpack_require__(170)($sort)), 'Array', { + // 22.1.3.25 Array.prototype.sort(comparefn) + sort: function sort(comparefn) { + return comparefn === undefined + ? $sort.call(toObject(this)) + : $sort.call(toObject(this), aFunction(comparefn)); + } + }); + + +/***/ }), +/* 173 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $forEach = __webpack_require__(174)(0); + var STRICT = __webpack_require__(170)([].forEach, true); + + $export($export.P + $export.F * !STRICT, 'Array', { + // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) + forEach: function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 174 */ +/***/ (function(module, exports, __webpack_require__) { + + // 0 -> Array#forEach + // 1 -> Array#map + // 2 -> Array#filter + // 3 -> Array#some + // 4 -> Array#every + // 5 -> Array#find + // 6 -> Array#findIndex + var ctx = __webpack_require__(23); + var IObject = __webpack_require__(34); + var toObject = __webpack_require__(46); + var toLength = __webpack_require__(38); + var asc = __webpack_require__(175); + module.exports = function (TYPE, $create) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var create = $create || asc; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IObject(O); + var f = ctx(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var val, res; + for (;length > index; index++) if (NO_HOLES || index in self) { + val = self[index]; + res = f(val, index, O); + if (TYPE) { + if (IS_MAP) result[index] = res; // map + else if (res) switch (TYPE) { + case 3: return true; // some + case 5: return val; // find + case 6: return index; // findIndex + case 2: result.push(val); // filter + } else if (IS_EVERY) return false; // every + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; + }; + + +/***/ }), +/* 175 */ +/***/ (function(module, exports, __webpack_require__) { + + // 9.4.2.3 ArraySpeciesCreate(originalArray, length) + var speciesConstructor = __webpack_require__(176); + + module.exports = function (original, length) { + return new (speciesConstructor(original))(length); + }; + + +/***/ }), +/* 176 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + var isArray = __webpack_require__(45); + var SPECIES = __webpack_require__(27)('species'); + + module.exports = function (original) { + var C; + if (isArray(original)) { + C = original.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? Array : C; + }; + + +/***/ }), +/* 177 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $map = __webpack_require__(174)(1); + + $export($export.P + $export.F * !__webpack_require__(170)([].map, true), 'Array', { + // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 178 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $filter = __webpack_require__(174)(2); + + $export($export.P + $export.F * !__webpack_require__(170)([].filter, true), 'Array', { + // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 179 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $some = __webpack_require__(174)(3); + + $export($export.P + $export.F * !__webpack_require__(170)([].some, true), 'Array', { + // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 180 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $every = __webpack_require__(174)(4); + + $export($export.P + $export.F * !__webpack_require__(170)([].every, true), 'Array', { + // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 181 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $reduce = __webpack_require__(182); + + $export($export.P + $export.F * !__webpack_require__(170)([].reduce, true), 'Array', { + // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) + reduce: function reduce(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments[1], false); + } + }); + + +/***/ }), +/* 182 */ +/***/ (function(module, exports, __webpack_require__) { + + var aFunction = __webpack_require__(24); + var toObject = __webpack_require__(46); + var IObject = __webpack_require__(34); + var toLength = __webpack_require__(38); + + module.exports = function (that, callbackfn, aLen, memo, isRight) { + aFunction(callbackfn); + var O = toObject(that); + var self = IObject(O); + var length = toLength(O.length); + var index = isRight ? length - 1 : 0; + var i = isRight ? -1 : 1; + if (aLen < 2) for (;;) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (isRight ? index < 0 : length <= index) { + throw TypeError('Reduce of empty array with no initial value'); + } + } + for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; + + +/***/ }), +/* 183 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $reduce = __webpack_require__(182); + + $export($export.P + $export.F * !__webpack_require__(170)([].reduceRight, true), 'Array', { + // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments[1], true); + } + }); + + +/***/ }), +/* 184 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $indexOf = __webpack_require__(37)(false); + var $native = [].indexOf; + var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; + + $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(170)($native)), 'Array', { + // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + return NEGATIVE_ZERO + // convert -0 to +0 + ? $native.apply(this, arguments) || 0 + : $indexOf(this, searchElement, arguments[1]); + } + }); + + +/***/ }), +/* 185 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toIObject = __webpack_require__(33); + var toInteger = __webpack_require__(39); + var toLength = __webpack_require__(38); + var $native = [].lastIndexOf; + var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; + + $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(170)($native)), 'Array', { + // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) + lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; + var O = toIObject(this); + var length = toLength(O.length); + var index = length - 1; + if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; + return -1; + } + }); + + +/***/ }), +/* 186 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) + var $export = __webpack_require__(8); + + $export($export.P, 'Array', { copyWithin: __webpack_require__(187) }); + + __webpack_require__(188)('copyWithin'); + + +/***/ }), +/* 187 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) + 'use strict'; + var toObject = __webpack_require__(46); + var toAbsoluteIndex = __webpack_require__(40); + var toLength = __webpack_require__(38); + + module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = toLength(O.length); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else delete O[to]; + to += inc; + from += inc; + } return O; + }; + + +/***/ }), +/* 188 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.31 Array.prototype[@@unscopables] + var UNSCOPABLES = __webpack_require__(27)('unscopables'); + var ArrayProto = Array.prototype; + if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(10)(ArrayProto, UNSCOPABLES, {}); + module.exports = function (key) { + ArrayProto[UNSCOPABLES][key] = true; + }; + + +/***/ }), +/* 189 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) + var $export = __webpack_require__(8); + + $export($export.P, 'Array', { fill: __webpack_require__(190) }); + + __webpack_require__(188)('fill'); + + +/***/ }), +/* 190 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) + 'use strict'; + var toObject = __webpack_require__(46); + var toAbsoluteIndex = __webpack_require__(40); + var toLength = __webpack_require__(38); + module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = toLength(O.length); + var aLen = arguments.length; + var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); + var end = aLen > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; + }; + + +/***/ }), +/* 191 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) + var $export = __webpack_require__(8); + var $find = __webpack_require__(174)(5); + var KEY = 'find'; + var forced = true; + // Shouldn't skip holes + if (KEY in []) Array(1)[KEY](function () { forced = false; }); + $export($export.P + $export.F * forced, 'Array', { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + __webpack_require__(188)(KEY); + + +/***/ }), +/* 192 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) + var $export = __webpack_require__(8); + var $find = __webpack_require__(174)(6); + var KEY = 'findIndex'; + var forced = true; + // Shouldn't skip holes + if (KEY in []) Array(1)[KEY](function () { forced = false; }); + $export($export.P + $export.F * forced, 'Array', { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + __webpack_require__(188)(KEY); + + +/***/ }), +/* 193 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(194)('Array'); + + +/***/ }), +/* 194 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var dP = __webpack_require__(11); + var DESCRIPTORS = __webpack_require__(6); + var SPECIES = __webpack_require__(27)('species'); + + module.exports = function (KEY) { + var C = global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function () { return this; } + }); + }; + + +/***/ }), +/* 195 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var addToUnscopables = __webpack_require__(188); + var step = __webpack_require__(196); + var Iterators = __webpack_require__(130); + var toIObject = __webpack_require__(33); + + // 22.1.3.4 Array.prototype.entries() + // 22.1.3.13 Array.prototype.keys() + // 22.1.3.29 Array.prototype.values() + // 22.1.3.30 Array.prototype[@@iterator]() + module.exports = __webpack_require__(129)(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind + // 22.1.5.2.1 %ArrayIteratorPrototype%.next() + }, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) + Iterators.Arguments = Iterators.Array; + + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + + +/***/ }), +/* 196 */ +/***/ (function(module, exports) { + + module.exports = function (done, value) { + return { value: value, done: !!done }; + }; + + +/***/ }), +/* 197 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var inheritIfRequired = __webpack_require__(88); + var dP = __webpack_require__(11).f; + var gOPN = __webpack_require__(51).f; + var isRegExp = __webpack_require__(135); + var $flags = __webpack_require__(198); + var $RegExp = global.RegExp; + var Base = $RegExp; + var proto = $RegExp.prototype; + var re1 = /a/g; + var re2 = /a/g; + // "new" creates a new object, old webkit buggy here + var CORRECT_NEW = new $RegExp(re1) !== re1; + + if (__webpack_require__(6) && (!CORRECT_NEW || __webpack_require__(7)(function () { + re2[__webpack_require__(27)('match')] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; + }))) { + $RegExp = function RegExp(p, f) { + var tiRE = this instanceof $RegExp; + var piRE = isRegExp(p); + var fiU = f === undefined; + return !tiRE && piRE && p.constructor === $RegExp && fiU ? p + : inheritIfRequired(CORRECT_NEW + ? new Base(piRE && !fiU ? p.source : p, f) + : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) + , tiRE ? this : proto, $RegExp); + }; + var proxy = function (key) { + key in $RegExp || dP($RegExp, key, { + configurable: true, + get: function () { return Base[key]; }, + set: function (it) { Base[key] = it; } + }); + }; + for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); + proto.constructor = $RegExp; + $RegExp.prototype = proto; + __webpack_require__(18)(global, 'RegExp', $RegExp); + } + + __webpack_require__(194)('RegExp'); + + +/***/ }), +/* 198 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 21.2.5.3 get RegExp.prototype.flags + var anObject = __webpack_require__(12); + module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.unicode) result += 'u'; + if (that.sticky) result += 'y'; + return result; + }; + + +/***/ }), +/* 199 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var regexpExec = __webpack_require__(200); + __webpack_require__(8)({ + target: 'RegExp', + proto: true, + forced: regexpExec !== /./.exec + }, { + exec: regexpExec + }); + + +/***/ }), +/* 200 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var regexpFlags = __webpack_require__(198); + + var nativeExec = RegExp.prototype.exec; + // This always refers to the native implementation, because the + // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, + // which loads this file before patching the method. + var nativeReplace = String.prototype.replace; + + var patchedExec = nativeExec; + + var LAST_INDEX = 'lastIndex'; + + var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/, + re2 = /b*/g; + nativeExec.call(re1, 'a'); + nativeExec.call(re2, 'a'); + return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; + })(); + + // nonparticipating capturing group, copied from es5-shim's String#split patch. + var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; + + if (PATCH) { + patchedExec = function exec(str) { + var re = this; + var lastIndex, reCopy, match, i; + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; + + match = nativeExec.call(re, str); + + if (UPDATES_LAST_INDEX_WRONG && match) { + re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ + // eslint-disable-next-line no-loop-func + nativeReplace.call(match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + return match; + }; + } + + module.exports = patchedExec; + + +/***/ }), +/* 201 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + __webpack_require__(202); + var anObject = __webpack_require__(12); + var $flags = __webpack_require__(198); + var DESCRIPTORS = __webpack_require__(6); + var TO_STRING = 'toString'; + var $toString = /./[TO_STRING]; + + var define = function (fn) { + __webpack_require__(18)(RegExp.prototype, TO_STRING, fn, true); + }; + + // 21.2.5.14 RegExp.prototype.toString() + if (__webpack_require__(7)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { + define(function toString() { + var R = anObject(this); + return '/'.concat(R.source, '/', + 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); + }); + // FF44- RegExp#toString has a wrong name + } else if ($toString.name != TO_STRING) { + define(function toString() { + return $toString.call(this); + }); + } + + +/***/ }), +/* 202 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.2.5.3 get RegExp.prototype.flags() + if (__webpack_require__(6) && /./g.flags != 'g') __webpack_require__(11).f(RegExp.prototype, 'flags', { + configurable: true, + get: __webpack_require__(198) + }); + + +/***/ }), +/* 203 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var anObject = __webpack_require__(12); + var toLength = __webpack_require__(38); + var advanceStringIndex = __webpack_require__(204); + var regExpExec = __webpack_require__(205); + + // @@match logic + __webpack_require__(206)('match', 1, function (defined, MATCH, $match, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.github.io/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[MATCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match + function (regexp) { + var res = maybeCallNative($match, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + if (!rx.global) return regExpExec(rx, S); + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = String(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; + }); + + +/***/ }), +/* 204 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var at = __webpack_require__(128)(true); + + // `AdvanceStringIndex` abstract operation + // https://tc39.github.io/ecma262/#sec-advancestringindex + module.exports = function (S, index, unicode) { + return index + (unicode ? at(S, index).length : 1); + }; + + +/***/ }), +/* 205 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var classof = __webpack_require__(75); + var builtinExec = RegExp.prototype.exec; + + // `RegExpExec` abstract operation + // https://tc39.github.io/ecma262/#sec-regexpexec + module.exports = function (R, S) { + var exec = R.exec; + if (typeof exec === 'function') { + var result = exec.call(R, S); + if (typeof result !== 'object') { + throw new TypeError('RegExp exec method returned something other than an Object or null'); + } + return result; + } + if (classof(R) !== 'RegExp') { + throw new TypeError('RegExp#exec called on incompatible receiver'); + } + return builtinExec.call(R, S); + }; + + +/***/ }), +/* 206 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + __webpack_require__(199); + var redefine = __webpack_require__(18); + var hide = __webpack_require__(10); + var fails = __webpack_require__(7); + var defined = __webpack_require__(36); + var wks = __webpack_require__(27); + var regexpExec = __webpack_require__(200); + + var SPECIES = wks('species'); + + var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + // #replace needs built-in support for named groups. + // #match works fine because it just return the exec results, even if it has + // a "grops" property. + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + return ''.replace(re, '$') !== '7'; + }); + + var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () { + // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length === 2 && result[0] === 'a' && result[1] === 'b'; + })(); + + module.exports = function (KEY, length, exec) { + var SYMBOL = wks(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegEp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) != 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + re.exec = function () { execCalled = true; return null; }; + if (KEY === 'split') { + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + } + re[SYMBOL](''); + return !execCalled; + }) : undefined; + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) || + (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var fns = exec( + defined, + SYMBOL, + ''[KEY], + function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { + if (regexp.exec === regexpExec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; + } + return { done: true, value: nativeMethod.call(str, regexp, arg2) }; + } + return { done: false }; + } + ); + var strfn = fns[0]; + var rxfn = fns[1]; + + redefine(String.prototype, KEY, strfn); + hide(RegExp.prototype, SYMBOL, length == 2 + // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) + // 21.2.5.11 RegExp.prototype[@@split](string, limit) + ? function (string, arg) { return rxfn.call(string, this, arg); } + // 21.2.5.6 RegExp.prototype[@@match](string) + // 21.2.5.9 RegExp.prototype[@@search](string) + : function (string) { return rxfn.call(string, this); } + ); + } + }; + + +/***/ }), +/* 207 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var anObject = __webpack_require__(12); + var toObject = __webpack_require__(46); + var toLength = __webpack_require__(38); + var toInteger = __webpack_require__(39); + var advanceStringIndex = __webpack_require__(204); + var regExpExec = __webpack_require__(205); + var max = Math.max; + var min = Math.min; + var floor = Math.floor; + var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g; + var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g; + + var maybeToString = function (it) { + return it === undefined ? it : String(it); + }; + + // @@replace logic + __webpack_require__(206)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) { + return [ + // `String.prototype.replace` method + // https://tc39.github.io/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = defined(this); + var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; + return fn !== undefined + ? fn.call(searchValue, O, replaceValue) + : $replace.call(String(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace + function (regexp, replaceValue) { + var res = maybeCallNative($replace, regexp, this, replaceValue); + if (res.done) return res.value; + + var rx = anObject(regexp); + var S = String(this); + var functionalReplace = typeof replaceValue === 'function'; + if (!functionalReplace) replaceValue = String(replaceValue); + var global = rx.global; + if (global) { + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + var results = []; + while (true) { + var result = regExpExec(rx, S); + if (result === null) break; + results.push(result); + if (!global) break; + var matchStr = String(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + var matched = String(result[0]); + var position = max(min(toInteger(result.index), S.length), 0); + var captures = []; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = [matched].concat(captures, position, S); + if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); + var replacement = String(replaceValue.apply(undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += S.slice(nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + return accumulatedResult + S.slice(nextSourcePosition); + } + ]; + + // https://tc39.github.io/ecma262/#sec-getsubstitution + function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return $replace.call(replacement, symbols, function (match, ch) { + var capture; + switch (ch.charAt(0)) { + case '$': return '$'; + case '&': return matched; + case '`': return str.slice(0, position); + case "'": return str.slice(tailPos); + case '<': + capture = namedCaptures[ch.slice(1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); + } + }); + + +/***/ }), +/* 208 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var anObject = __webpack_require__(12); + var sameValue = __webpack_require__(71); + var regExpExec = __webpack_require__(205); + + // @@search logic + __webpack_require__(206)('search', 1, function (defined, SEARCH, $search, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.github.io/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[SEARCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search + function (regexp) { + var res = maybeCallNative($search, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; + }); + + +/***/ }), +/* 209 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var isRegExp = __webpack_require__(135); + var anObject = __webpack_require__(12); + var speciesConstructor = __webpack_require__(210); + var advanceStringIndex = __webpack_require__(204); + var toLength = __webpack_require__(38); + var callRegExpExec = __webpack_require__(205); + var regexpExec = __webpack_require__(200); + var fails = __webpack_require__(7); + var $min = Math.min; + var $push = [].push; + var $SPLIT = 'split'; + var LENGTH = 'length'; + var LAST_INDEX = 'lastIndex'; + var MAX_UINT32 = 0xffffffff; + + // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError + var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); }); + + // @@split logic + __webpack_require__(206)('split', 2, function (defined, SPLIT, $split, maybeCallNative) { + var internalSplit; + if ( + 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || + 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || + 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || + '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || + '.'[$SPLIT](/()()/)[LENGTH] > 1 || + ''[$SPLIT](/.?/)[LENGTH] + ) { + // based on es5-shim implementation, need to rework it + internalSplit = function (separator, limit) { + var string = String(this); + if (separator === undefined && limit === 0) return []; + // If `separator` is not a regex, use native split + if (!isRegExp(separator)) return $split.call(string, separator, limit); + var output = []; + var flags = (separator.ignoreCase ? 'i' : '') + + (separator.multiline ? 'm' : '') + + (separator.unicode ? 'u' : '') + + (separator.sticky ? 'y' : ''); + var lastLastIndex = 0; + var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0; + // Make `global` and avoid `lastIndex` issues by working with a copy + var separatorCopy = new RegExp(separator.source, flags + 'g'); + var match, lastIndex, lastLength; + while (match = regexpExec.call(separatorCopy, string)) { + lastIndex = separatorCopy[LAST_INDEX]; + if (lastIndex > lastLastIndex) { + output.push(string.slice(lastLastIndex, match.index)); + if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); + lastLength = match[0][LENGTH]; + lastLastIndex = lastIndex; + if (output[LENGTH] >= splitLimit) break; + } + if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop + } + if (lastLastIndex === string[LENGTH]) { + if (lastLength || !separatorCopy.test('')) output.push(''); + } else output.push(string.slice(lastLastIndex)); + return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; + }; + // Chakra, V8 + } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { + internalSplit = function (separator, limit) { + return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit); + }; + } else { + internalSplit = $split; + } + + return [ + // `String.prototype.split` method + // https://tc39.github.io/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = defined(this); + var splitter = separator == undefined ? undefined : separator[SPLIT]; + return splitter !== undefined + ? splitter.call(separator, O, limit) + : internalSplit.call(String(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (regexp, limit) { + var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split); + if (res.done) return res.value; + + var rx = anObject(regexp); + var S = String(this); + var C = speciesConstructor(rx, RegExp); + + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (SUPPORTS_Y ? 'y' : 'g'); + + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = SUPPORTS_Y ? q : 0; + var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); + var e; + if ( + z === null || + (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + A.push(S.slice(p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + A.push(z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + A.push(S.slice(p)); + return A; + } + ]; + }); + + +/***/ }), +/* 210 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.3.20 SpeciesConstructor(O, defaultConstructor) + var anObject = __webpack_require__(12); + var aFunction = __webpack_require__(24); + var SPECIES = __webpack_require__(27)('species'); + module.exports = function (O, D) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); + }; + + +/***/ }), +/* 211 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var LIBRARY = __webpack_require__(22); + var global = __webpack_require__(4); + var ctx = __webpack_require__(23); + var classof = __webpack_require__(75); + var $export = __webpack_require__(8); + var isObject = __webpack_require__(13); + var aFunction = __webpack_require__(24); + var anInstance = __webpack_require__(212); + var forOf = __webpack_require__(213); + var speciesConstructor = __webpack_require__(210); + var task = __webpack_require__(214).set; + var microtask = __webpack_require__(215)(); + var newPromiseCapabilityModule = __webpack_require__(216); + var perform = __webpack_require__(217); + var userAgent = __webpack_require__(218); + var promiseResolve = __webpack_require__(219); + var PROMISE = 'Promise'; + var TypeError = global.TypeError; + var process = global.process; + var versions = process && process.versions; + var v8 = versions && versions.v8 || ''; + var $Promise = global[PROMISE]; + var isNode = classof(process) == 'process'; + var empty = function () { /* empty */ }; + var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; + var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; + + var USE_NATIVE = !!function () { + try { + // correct subclassing with @@species support + var promise = $Promise.resolve(1); + var FakePromise = (promise.constructor = {})[__webpack_require__(27)('species')] = function (exec) { + exec(empty, empty); + }; + // unhandled rejections tracking support, NodeJS Promise without it fails @@species test + return (isNode || typeof PromiseRejectionEvent == 'function') + && promise.then(empty) instanceof FakePromise + // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // we can't detect it synchronously, so just check versions + && v8.indexOf('6.6') !== 0 + && userAgent.indexOf('Chrome/66') === -1; + } catch (e) { /* empty */ } + }(); + + // helpers + var isThenable = function (it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; + }; + var notify = function (promise, isReject) { + if (promise._n) return; + promise._n = true; + var chain = promise._c; + microtask(function () { + var value = promise._v; + var ok = promise._s == 1; + var i = 0; + var run = function (reaction) { + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (promise._h == 2) onHandleUnhandled(promise); + promise._h = 1; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // may throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (e) { + if (domain && !exited) domain.exit(); + reject(e); + } + }; + while (chain.length > i) run(chain[i++]); // variable length - can't use forEach + promise._c = []; + promise._n = false; + if (isReject && !promise._h) onUnhandled(promise); + }); + }; + var onUnhandled = function (promise) { + task.call(global, function () { + var value = promise._v; + var unhandled = isUnhandled(promise); + var result, handler, console; + if (unhandled) { + result = perform(function () { + if (isNode) { + process.emit('unhandledRejection', value, promise); + } else if (handler = global.onunhandledrejection) { + handler({ promise: promise, reason: value }); + } else if ((console = global.console) && console.error) { + console.error('Unhandled promise rejection', value); + } + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + promise._h = isNode || isUnhandled(promise) ? 2 : 1; + } promise._a = undefined; + if (unhandled && result.e) throw result.v; + }); + }; + var isUnhandled = function (promise) { + return promise._h !== 1 && (promise._a || promise._c).length === 0; + }; + var onHandleUnhandled = function (promise) { + task.call(global, function () { + var handler; + if (isNode) { + process.emit('rejectionHandled', promise); + } else if (handler = global.onrejectionhandled) { + handler({ promise: promise, reason: promise._v }); + } + }); + }; + var $reject = function (value) { + var promise = this; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + promise._v = value; + promise._s = 2; + if (!promise._a) promise._a = promise._c.slice(); + notify(promise, true); + }; + var $resolve = function (value) { + var promise = this; + var then; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + try { + if (promise === value) throw TypeError("Promise can't be resolved itself"); + if (then = isThenable(value)) { + microtask(function () { + var wrapper = { _w: promise, _d: false }; // wrap + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch (e) { + $reject.call(wrapper, e); + } + }); + } else { + promise._v = value; + promise._s = 1; + notify(promise, false); + } + } catch (e) { + $reject.call({ _w: promise, _d: false }, e); // wrap + } + }; + + // constructor polyfill + if (!USE_NATIVE) { + // 25.4.3.1 Promise(executor) + $Promise = function Promise(executor) { + anInstance(this, $Promise, PROMISE, '_h'); + aFunction(executor); + Internal.call(this); + try { + executor(ctx($resolve, this, 1), ctx($reject, this, 1)); + } catch (err) { + $reject.call(this, err); + } + }; + // eslint-disable-next-line no-unused-vars + Internal = function Promise(executor) { + this._c = []; // <- awaiting reactions + this._a = undefined; // <- checked in isUnhandled reactions + this._s = 0; // <- state + this._d = false; // <- done + this._v = undefined; // <- value + this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled + this._n = false; // <- notify + }; + Internal.prototype = __webpack_require__(220)($Promise.prototype, { + // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) + then: function then(onFulfilled, onRejected) { + var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = isNode ? process.domain : undefined; + this._c.push(reaction); + if (this._a) this._a.push(reaction); + if (this._s) notify(this, false); + return reaction.promise; + }, + // 25.4.5.1 Promise.prototype.catch(onRejected) + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + OwnPromiseCapability = function () { + var promise = new Internal(); + this.promise = promise; + this.resolve = ctx($resolve, promise, 1); + this.reject = ctx($reject, promise, 1); + }; + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === $Promise || C === Wrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + } + + $export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); + __webpack_require__(26)($Promise, PROMISE); + __webpack_require__(194)(PROMISE); + Wrapper = __webpack_require__(9)[PROMISE]; + + // statics + $export($export.S + $export.F * !USE_NATIVE, PROMISE, { + // 25.4.4.5 Promise.reject(r) + reject: function reject(r) { + var capability = newPromiseCapability(this); + var $$reject = capability.reject; + $$reject(r); + return capability.promise; + } + }); + $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { + // 25.4.4.6 Promise.resolve(x) + resolve: function resolve(x) { + return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + } + }); + $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(167)(function (iter) { + $Promise.all(iter)['catch'](empty); + })), PROMISE, { + // 25.4.4.1 Promise.all(iterable) + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var values = []; + var index = 0; + var remaining = 1; + forOf(iterable, false, function (promise) { + var $index = index++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + C.resolve(promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[$index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.e) reject(result.v); + return capability.promise; + }, + // 25.4.4.4 Promise.race(iterable) + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + forOf(iterable, false, function (promise) { + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if (result.e) reject(result.v); + return capability.promise; + } + }); + + +/***/ }), +/* 212 */ +/***/ (function(module, exports) { + + module.exports = function (it, Constructor, name, forbiddenField) { + if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { + throw TypeError(name + ': incorrect invocation!'); + } return it; + }; + + +/***/ }), +/* 213 */ +/***/ (function(module, exports, __webpack_require__) { + + var ctx = __webpack_require__(23); + var call = __webpack_require__(163); + var isArrayIter = __webpack_require__(164); + var anObject = __webpack_require__(12); + var toLength = __webpack_require__(38); + var getIterFn = __webpack_require__(166); + var BREAK = {}; + var RETURN = {}; + var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { + var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); + var f = ctx(fn, that, entries ? 2 : 1); + var index = 0; + var length, step, iterator, result; + if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); + // fast case for arrays with default iterator + if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { + result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + if (result === BREAK || result === RETURN) return result; + } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { + result = call(iterator, f, step.value, entries); + if (result === BREAK || result === RETURN) return result; + } + }; + exports.BREAK = BREAK; + exports.RETURN = RETURN; + + +/***/ }), +/* 214 */ +/***/ (function(module, exports, __webpack_require__) { + + var ctx = __webpack_require__(23); + var invoke = __webpack_require__(78); + var html = __webpack_require__(49); + var cel = __webpack_require__(15); + var global = __webpack_require__(4); + var process = global.process; + var setTask = global.setImmediate; + var clearTask = global.clearImmediate; + var MessageChannel = global.MessageChannel; + var Dispatch = global.Dispatch; + var counter = 0; + var queue = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var defer, channel, port; + var run = function () { + var id = +this; + // eslint-disable-next-line no-prototype-builtins + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } + }; + var listener = function (event) { + run.call(event.data); + }; + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!setTask || !clearTask) { + setTask = function setImmediate(fn) { + var args = []; + var i = 1; + while (arguments.length > i) args.push(arguments[i++]); + queue[++counter] = function () { + // eslint-disable-next-line no-new-func + invoke(typeof fn == 'function' ? fn : Function(fn), args); + }; + defer(counter); + return counter; + }; + clearTask = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (__webpack_require__(35)(process) == 'process') { + defer = function (id) { + process.nextTick(ctx(run, id, 1)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(ctx(run, id, 1)); + }; + // Browsers with MessageChannel, includes WebWorkers + } else if (MessageChannel) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = ctx(port.postMessage, port, 1); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { + defer = function (id) { + global.postMessage(id + '', '*'); + }; + global.addEventListener('message', listener, false); + // IE8- + } else if (ONREADYSTATECHANGE in cel('script')) { + defer = function (id) { + html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run.call(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(ctx(run, id, 1), 0); + }; + } + } + module.exports = { + set: setTask, + clear: clearTask + }; + + +/***/ }), +/* 215 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var macrotask = __webpack_require__(214).set; + var Observer = global.MutationObserver || global.WebKitMutationObserver; + var process = global.process; + var Promise = global.Promise; + var isNode = __webpack_require__(35)(process) == 'process'; + + module.exports = function () { + var head, last, notify; + + var flush = function () { + var parent, fn; + if (isNode && (parent = process.domain)) parent.exit(); + while (head) { + fn = head.fn; + head = head.next; + try { + fn(); + } catch (e) { + if (head) notify(); + else last = undefined; + throw e; + } + } last = undefined; + if (parent) parent.enter(); + }; + + // Node.js + if (isNode) { + notify = function () { + process.nextTick(flush); + }; + // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 + } else if (Observer && !(global.navigator && global.navigator.standalone)) { + var toggle = true; + var node = document.createTextNode(''); + new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + var promise = Promise.resolve(undefined); + notify = function () { + promise.then(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessag + // - onreadystatechange + // - setTimeout + } else { + notify = function () { + // strange IE + webpack dev server bug - use .call(global) + macrotask.call(global, flush); + }; + } + + return function (fn) { + var task = { fn: fn, next: undefined }; + if (last) last.next = task; + if (!head) { + head = task; + notify(); + } last = task; + }; + }; + + +/***/ }), +/* 216 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 25.4.1.5 NewPromiseCapability(C) + var aFunction = __webpack_require__(24); + + function PromiseCapability(C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction(resolve); + this.reject = aFunction(reject); + } + + module.exports.f = function (C) { + return new PromiseCapability(C); + }; + + +/***/ }), +/* 217 */ +/***/ (function(module, exports) { + + module.exports = function (exec) { + try { + return { e: false, v: exec() }; + } catch (e) { + return { e: true, v: e }; + } + }; + + +/***/ }), +/* 218 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var navigator = global.navigator; + + module.exports = navigator && navigator.userAgent || ''; + + +/***/ }), +/* 219 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var newPromiseCapability = __webpack_require__(216); + + module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + +/***/ }), +/* 220 */ +/***/ (function(module, exports, __webpack_require__) { + + var redefine = __webpack_require__(18); + module.exports = function (target, src, safe) { + for (var key in src) redefine(target, key, src[key], safe); + return target; + }; + + +/***/ }), +/* 221 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var strong = __webpack_require__(222); + var validate = __webpack_require__(223); + var MAP = 'Map'; + + // 23.1 Map Objects + module.exports = __webpack_require__(224)(MAP, function (get) { + return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; + }, { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key) { + var entry = strong.getEntry(validate(this, MAP), key); + return entry && entry.v; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value) { + return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); + } + }, strong, true); + + +/***/ }), +/* 222 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var dP = __webpack_require__(11).f; + var create = __webpack_require__(47); + var redefineAll = __webpack_require__(220); + var ctx = __webpack_require__(23); + var anInstance = __webpack_require__(212); + var forOf = __webpack_require__(213); + var $iterDefine = __webpack_require__(129); + var step = __webpack_require__(196); + var setSpecies = __webpack_require__(194); + var DESCRIPTORS = __webpack_require__(6); + var fastKey = __webpack_require__(25).fastKey; + var validate = __webpack_require__(223); + var SIZE = DESCRIPTORS ? '_s' : 'size'; + + var getEntry = function (that, key) { + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return that._i[index]; + // frozen object case + for (entry = that._f; entry; entry = entry.n) { + if (entry.k == key) return entry; + } + }; + + module.exports = { + getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + that._i = create(null); // index + that._f = undefined; // first entry + that._l = undefined; // last entry + that[SIZE] = 0; // size + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear() { + for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { + entry.r = true; + if (entry.p) entry.p = entry.p.n = undefined; + delete data[entry.i]; + } + that._f = that._l = undefined; + that[SIZE] = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function (key) { + var that = validate(this, NAME); + var entry = getEntry(that, key); + if (entry) { + var next = entry.n; + var prev = entry.p; + delete that._i[entry.i]; + entry.r = true; + if (prev) prev.n = next; + if (next) next.p = prev; + if (that._f == entry) that._f = next; + if (that._l == entry) that._l = prev; + that[SIZE]--; + } return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn /* , that = undefined */) { + validate(this, NAME); + var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var entry; + while (entry = entry ? entry.n : this._f) { + f(entry.v, entry.k, this); + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key) { + return !!getEntry(validate(this, NAME), key); + } + }); + if (DESCRIPTORS) dP(C.prototype, 'size', { + get: function () { + return validate(this, NAME)[SIZE]; + } + }); + return C; + }, + def: function (that, key, value) { + var entry = getEntry(that, key); + var prev, index; + // change existing entry + if (entry) { + entry.v = value; + // create new entry + } else { + that._l = entry = { + i: index = fastKey(key, true), // <- index + k: key, // <- key + v: value, // <- value + p: prev = that._l, // <- previous entry + n: undefined, // <- next entry + r: false // <- removed + }; + if (!that._f) that._f = entry; + if (prev) prev.n = entry; + that[SIZE]++; + // add to index + if (index !== 'F') that._i[index] = entry; + } return that; + }, + getEntry: getEntry, + setStrong: function (C, NAME, IS_MAP) { + // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + $iterDefine(C, NAME, function (iterated, kind) { + this._t = validate(iterated, NAME); // target + this._k = kind; // kind + this._l = undefined; // previous + }, function () { + var that = this; + var kind = that._k; + var entry = that._l; + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + // get next entry + if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { + // or finish the iteration + that._t = undefined; + return step(1); + } + // return step by kind + if (kind == 'keys') return step(0, entry.k); + if (kind == 'values') return step(0, entry.v); + return step(0, [entry.k, entry.v]); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // add [@@species], 23.1.2.2, 23.2.2.2 + setSpecies(NAME); + } + }; + + +/***/ }), +/* 223 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + module.exports = function (it, TYPE) { + if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); + return it; + }; + + +/***/ }), +/* 224 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var $export = __webpack_require__(8); + var redefine = __webpack_require__(18); + var redefineAll = __webpack_require__(220); + var meta = __webpack_require__(25); + var forOf = __webpack_require__(213); + var anInstance = __webpack_require__(212); + var isObject = __webpack_require__(13); + var fails = __webpack_require__(7); + var $iterDetect = __webpack_require__(167); + var setToStringTag = __webpack_require__(26); + var inheritIfRequired = __webpack_require__(88); + + module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + var fixMethod = function (KEY) { + var fn = proto[KEY]; + redefine(proto, KEY, + KEY == 'delete' ? function (a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a) { + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } + : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } + ); + }; + if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + // create collection constructor + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + var instance = new C(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new C(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + if (!ACCEPT_ITERABLES) { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME); + var that = inheritIfRequired(new Base(), target, C); + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + // weak collections should not contains .clear method + if (IS_WEAK && proto.clear) delete proto.clear; + } + + setToStringTag(C, NAME); + + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + + return C; + }; + + +/***/ }), +/* 225 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var strong = __webpack_require__(222); + var validate = __webpack_require__(223); + var SET = 'Set'; + + // 23.2 Set Objects + module.exports = __webpack_require__(224)(SET, function (get) { + return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; + }, { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value) { + return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); + } + }, strong); + + +/***/ }), +/* 226 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var each = __webpack_require__(174)(0); + var redefine = __webpack_require__(18); + var meta = __webpack_require__(25); + var assign = __webpack_require__(69); + var weak = __webpack_require__(227); + var isObject = __webpack_require__(13); + var validate = __webpack_require__(223); + var NATIVE_WEAK_MAP = __webpack_require__(223); + var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; + var WEAK_MAP = 'WeakMap'; + var getWeak = meta.getWeak; + var isExtensible = Object.isExtensible; + var uncaughtFrozenStore = weak.ufstore; + var InternalMap; + + var wrapper = function (get) { + return function WeakMap() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; + }; + + var methods = { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key) { + if (isObject(key)) { + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); + return data ? data[this._i] : undefined; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value) { + return weak.def(validate(this, WEAK_MAP), key, value); + } + }; + + // 23.3 WeakMap Objects + var $WeakMap = module.exports = __webpack_require__(224)(WEAK_MAP, wrapper, methods, weak, true, true); + + // IE11 WeakMap frozen keys fix + if (NATIVE_WEAK_MAP && IS_IE11) { + InternalMap = weak.getConstructor(wrapper, WEAK_MAP); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function (key) { + var proto = $WeakMap.prototype; + var method = proto[key]; + redefine(proto, key, function (a, b) { + // store frozen objects on internal weakmap shim + if (isObject(a) && !isExtensible(a)) { + if (!this._f) this._f = new InternalMap(); + var result = this._f[key](a, b); + return key == 'set' ? this : result; + // store all the rest on native weakmap + } return method.call(this, a, b); + }); + }); + } + + +/***/ }), +/* 227 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var redefineAll = __webpack_require__(220); + var getWeak = __webpack_require__(25).getWeak; + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var anInstance = __webpack_require__(212); + var forOf = __webpack_require__(213); + var createArrayMethod = __webpack_require__(174); + var $has = __webpack_require__(5); + var validate = __webpack_require__(223); + var arrayFind = createArrayMethod(5); + var arrayFindIndex = createArrayMethod(6); + var id = 0; + + // fallback for uncaught frozen keys + var uncaughtFrozenStore = function (that) { + return that._l || (that._l = new UncaughtFrozenStore()); + }; + var UncaughtFrozenStore = function () { + this.a = []; + }; + var findUncaughtFrozen = function (store, key) { + return arrayFind(store.a, function (it) { + return it[0] === key; + }); + }; + UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.a.push([key, value]); + }, + 'delete': function (key) { + var index = arrayFindIndex(this.a, function (it) { + return it[0] === key; + }); + if (~index) this.a.splice(index, 1); + return !!~index; + } + }; + + module.exports = { + getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + that._i = id++; // collection id + that._l = undefined; // leak store for uncaught frozen objects + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function (key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function (that, key, value) { + var data = getWeak(anObject(key), true); + if (data === true) uncaughtFrozenStore(that).set(key, value); + else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore + }; + + +/***/ }), +/* 228 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var weak = __webpack_require__(227); + var validate = __webpack_require__(223); + var WEAK_SET = 'WeakSet'; + + // 23.4 WeakSet Objects + __webpack_require__(224)(WEAK_SET, function (get) { + return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; + }, { + // 23.4.3.1 WeakSet.prototype.add(value) + add: function add(value) { + return weak.def(validate(this, WEAK_SET), value, true); + } + }, weak, false, true); + + +/***/ }), +/* 229 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $typed = __webpack_require__(230); + var buffer = __webpack_require__(231); + var anObject = __webpack_require__(12); + var toAbsoluteIndex = __webpack_require__(40); + var toLength = __webpack_require__(38); + var isObject = __webpack_require__(13); + var ArrayBuffer = __webpack_require__(4).ArrayBuffer; + var speciesConstructor = __webpack_require__(210); + var $ArrayBuffer = buffer.ArrayBuffer; + var $DataView = buffer.DataView; + var $isView = $typed.ABV && ArrayBuffer.isView; + var $slice = $ArrayBuffer.prototype.slice; + var VIEW = $typed.VIEW; + var ARRAY_BUFFER = 'ArrayBuffer'; + + $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); + + $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { + // 24.1.3.1 ArrayBuffer.isView(arg) + isView: function isView(it) { + return $isView && $isView(it) || isObject(it) && VIEW in it; + } + }); + + $export($export.P + $export.U + $export.F * __webpack_require__(7)(function () { + return !new $ArrayBuffer(2).slice(1, undefined).byteLength; + }), ARRAY_BUFFER, { + // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) + slice: function slice(start, end) { + if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix + var len = anObject(this).byteLength; + var first = toAbsoluteIndex(start, len); + var fin = toAbsoluteIndex(end === undefined ? len : end, len); + var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); + var viewS = new $DataView(this); + var viewT = new $DataView(result); + var index = 0; + while (first < fin) { + viewT.setUint8(index++, viewS.getUint8(first++)); + } return result; + } + }); + + __webpack_require__(194)(ARRAY_BUFFER); + + +/***/ }), +/* 230 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var hide = __webpack_require__(10); + var uid = __webpack_require__(19); + var TYPED = uid('typed_array'); + var VIEW = uid('view'); + var ABV = !!(global.ArrayBuffer && global.DataView); + var CONSTR = ABV; + var i = 0; + var l = 9; + var Typed; + + var TypedArrayConstructors = ( + 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' + ).split(','); + + while (i < l) { + if (Typed = global[TypedArrayConstructors[i++]]) { + hide(Typed.prototype, TYPED, true); + hide(Typed.prototype, VIEW, true); + } else CONSTR = false; + } + + module.exports = { + ABV: ABV, + CONSTR: CONSTR, + TYPED: TYPED, + VIEW: VIEW + }; + + +/***/ }), +/* 231 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var DESCRIPTORS = __webpack_require__(6); + var LIBRARY = __webpack_require__(22); + var $typed = __webpack_require__(230); + var hide = __webpack_require__(10); + var redefineAll = __webpack_require__(220); + var fails = __webpack_require__(7); + var anInstance = __webpack_require__(212); + var toInteger = __webpack_require__(39); + var toLength = __webpack_require__(38); + var toIndex = __webpack_require__(232); + var gOPN = __webpack_require__(51).f; + var dP = __webpack_require__(11).f; + var arrayFill = __webpack_require__(190); + var setToStringTag = __webpack_require__(26); + var ARRAY_BUFFER = 'ArrayBuffer'; + var DATA_VIEW = 'DataView'; + var PROTOTYPE = 'prototype'; + var WRONG_LENGTH = 'Wrong length!'; + var WRONG_INDEX = 'Wrong index!'; + var $ArrayBuffer = global[ARRAY_BUFFER]; + var $DataView = global[DATA_VIEW]; + var Math = global.Math; + var RangeError = global.RangeError; + // eslint-disable-next-line no-shadow-restricted-names + var Infinity = global.Infinity; + var BaseBuffer = $ArrayBuffer; + var abs = Math.abs; + var pow = Math.pow; + var floor = Math.floor; + var log = Math.log; + var LN2 = Math.LN2; + var BUFFER = 'buffer'; + var BYTE_LENGTH = 'byteLength'; + var BYTE_OFFSET = 'byteOffset'; + var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; + var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; + var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; + + // IEEE754 conversions based on https://github.com/feross/ieee754 + function packIEEE754(value, mLen, nBytes) { + var buffer = new Array(nBytes); + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; + var i = 0; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + var e, m, c; + value = abs(value); + // eslint-disable-next-line no-self-compare + if (value != value || value === Infinity) { + // eslint-disable-next-line no-self-compare + m = value != value ? 1 : 0; + e = eMax; + } else { + e = floor(log(value) / LN2); + if (value * (c = pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * pow(2, mLen); + e = e + eBias; + } else { + m = value * pow(2, eBias - 1) * pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8); + buffer[--i] |= s * 128; + return buffer; + } + function unpackIEEE754(buffer, mLen, nBytes) { + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = eLen - 7; + var i = nBytes - 1; + var s = buffer[i--]; + var e = s & 127; + var m; + s >>= 7; + for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : s ? -Infinity : Infinity; + } else { + m = m + pow(2, mLen); + e = e - eBias; + } return (s ? -1 : 1) * m * pow(2, e - mLen); + } + + function unpackI32(bytes) { + return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; + } + function packI8(it) { + return [it & 0xff]; + } + function packI16(it) { + return [it & 0xff, it >> 8 & 0xff]; + } + function packI32(it) { + return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; + } + function packF64(it) { + return packIEEE754(it, 52, 8); + } + function packF32(it) { + return packIEEE754(it, 23, 4); + } + + function addGetter(C, key, internal) { + dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); + } + + function get(view, bytes, index, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = store.slice(start, start + bytes); + return isLittleEndian ? pack : pack.reverse(); + } + function set(view, bytes, index, conversion, value, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = conversion(+value); + for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; + } + + if (!$typed.ABV) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer, ARRAY_BUFFER); + var byteLength = toIndex(length); + this._b = arrayFill.call(new Array(byteLength), 0); + this[$LENGTH] = byteLength; + }; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, $DataView, DATA_VIEW); + anInstance(buffer, $ArrayBuffer, DATA_VIEW); + var bufferLength = buffer[$LENGTH]; + var offset = toInteger(byteOffset); + if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); + this[$BUFFER] = buffer; + this[$OFFSET] = offset; + this[$LENGTH] = byteLength; + }; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); + addGetter($DataView, BUFFER, '_b'); + addGetter($DataView, BYTE_LENGTH, '_l'); + addGetter($DataView, BYTE_OFFSET, '_o'); + } + + redefineAll($DataView[PROTOTYPE], { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackI32(get(this, 4, byteOffset, arguments[1])); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packF32, value, arguments[2]); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packF64, value, arguments[2]); + } + }); + } else { + if (!fails(function () { + $ArrayBuffer(1); + }) || !fails(function () { + new $ArrayBuffer(-1); // eslint-disable-line no-new + }) || fails(function () { + new $ArrayBuffer(); // eslint-disable-line no-new + new $ArrayBuffer(1.5); // eslint-disable-line no-new + new $ArrayBuffer(NaN); // eslint-disable-line no-new + return $ArrayBuffer.name != ARRAY_BUFFER; + })) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer); + return new BaseBuffer(toIndex(length)); + }; + var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; + for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { + if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); + } + if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; + } + // iOS Safari 7.x bug + var view = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = $DataView[PROTOTYPE].setInt8; + view.setInt8(0, 2147483648); + view.setInt8(1, 2147483649); + if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { + setInt8: function setInt8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + } + }, true); + } + setToStringTag($ArrayBuffer, ARRAY_BUFFER); + setToStringTag($DataView, DATA_VIEW); + hide($DataView[PROTOTYPE], $typed.VIEW, true); + exports[ARRAY_BUFFER] = $ArrayBuffer; + exports[DATA_VIEW] = $DataView; + + +/***/ }), +/* 232 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/ecma262/#sec-toindex + var toInteger = __webpack_require__(39); + var toLength = __webpack_require__(38); + module.exports = function (it) { + if (it === undefined) return 0; + var number = toInteger(it); + var length = toLength(number); + if (number !== length) throw RangeError('Wrong length!'); + return length; + }; + + +/***/ }), +/* 233 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + $export($export.G + $export.W + $export.F * !__webpack_require__(230).ABV, { + DataView: __webpack_require__(231).DataView + }); + + +/***/ }), +/* 234 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Int8', 1, function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 235 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + if (__webpack_require__(6)) { + var LIBRARY = __webpack_require__(22); + var global = __webpack_require__(4); + var fails = __webpack_require__(7); + var $export = __webpack_require__(8); + var $typed = __webpack_require__(230); + var $buffer = __webpack_require__(231); + var ctx = __webpack_require__(23); + var anInstance = __webpack_require__(212); + var propertyDesc = __webpack_require__(17); + var hide = __webpack_require__(10); + var redefineAll = __webpack_require__(220); + var toInteger = __webpack_require__(39); + var toLength = __webpack_require__(38); + var toIndex = __webpack_require__(232); + var toAbsoluteIndex = __webpack_require__(40); + var toPrimitive = __webpack_require__(16); + var has = __webpack_require__(5); + var classof = __webpack_require__(75); + var isObject = __webpack_require__(13); + var toObject = __webpack_require__(46); + var isArrayIter = __webpack_require__(164); + var create = __webpack_require__(47); + var getPrototypeOf = __webpack_require__(59); + var gOPN = __webpack_require__(51).f; + var getIterFn = __webpack_require__(166); + var uid = __webpack_require__(19); + var wks = __webpack_require__(27); + var createArrayMethod = __webpack_require__(174); + var createArrayIncludes = __webpack_require__(37); + var speciesConstructor = __webpack_require__(210); + var ArrayIterators = __webpack_require__(195); + var Iterators = __webpack_require__(130); + var $iterDetect = __webpack_require__(167); + var setSpecies = __webpack_require__(194); + var arrayFill = __webpack_require__(190); + var arrayCopyWithin = __webpack_require__(187); + var $DP = __webpack_require__(11); + var $GOPD = __webpack_require__(52); + var dP = $DP.f; + var gOPD = $GOPD.f; + var RangeError = global.RangeError; + var TypeError = global.TypeError; + var Uint8Array = global.Uint8Array; + var ARRAY_BUFFER = 'ArrayBuffer'; + var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; + var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; + var PROTOTYPE = 'prototype'; + var ArrayProto = Array[PROTOTYPE]; + var $ArrayBuffer = $buffer.ArrayBuffer; + var $DataView = $buffer.DataView; + var arrayForEach = createArrayMethod(0); + var arrayFilter = createArrayMethod(2); + var arraySome = createArrayMethod(3); + var arrayEvery = createArrayMethod(4); + var arrayFind = createArrayMethod(5); + var arrayFindIndex = createArrayMethod(6); + var arrayIncludes = createArrayIncludes(true); + var arrayIndexOf = createArrayIncludes(false); + var arrayValues = ArrayIterators.values; + var arrayKeys = ArrayIterators.keys; + var arrayEntries = ArrayIterators.entries; + var arrayLastIndexOf = ArrayProto.lastIndexOf; + var arrayReduce = ArrayProto.reduce; + var arrayReduceRight = ArrayProto.reduceRight; + var arrayJoin = ArrayProto.join; + var arraySort = ArrayProto.sort; + var arraySlice = ArrayProto.slice; + var arrayToString = ArrayProto.toString; + var arrayToLocaleString = ArrayProto.toLocaleString; + var ITERATOR = wks('iterator'); + var TAG = wks('toStringTag'); + var TYPED_CONSTRUCTOR = uid('typed_constructor'); + var DEF_CONSTRUCTOR = uid('def_constructor'); + var ALL_CONSTRUCTORS = $typed.CONSTR; + var TYPED_ARRAY = $typed.TYPED; + var VIEW = $typed.VIEW; + var WRONG_LENGTH = 'Wrong length!'; + + var $map = createArrayMethod(1, function (O, length) { + return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); + }); + + var LITTLE_ENDIAN = fails(function () { + // eslint-disable-next-line no-undef + return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; + }); + + var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { + new Uint8Array(1).set({}); + }); + + var toOffset = function (it, BYTES) { + var offset = toInteger(it); + if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); + return offset; + }; + + var validate = function (it) { + if (isObject(it) && TYPED_ARRAY in it) return it; + throw TypeError(it + ' is not a typed array!'); + }; + + var allocate = function (C, length) { + if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { + throw TypeError('It is not a typed array constructor!'); + } return new C(length); + }; + + var speciesFromList = function (O, list) { + return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); + }; + + var fromList = function (C, list) { + var index = 0; + var length = list.length; + var result = allocate(C, length); + while (length > index) result[index] = list[index++]; + return result; + }; + + var addGetter = function (it, key, internal) { + dP(it, key, { get: function () { return this._d[internal]; } }); + }; + + var $from = function from(source /* , mapfn, thisArg */) { + var O = toObject(source); + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iterFn = getIterFn(O); + var i, length, values, result, step, iterator; + if (iterFn != undefined && !isArrayIter(iterFn)) { + for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { + values.push(step.value); + } O = values; + } + if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); + for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { + result[i] = mapping ? mapfn(O[i], i) : O[i]; + } + return result; + }; + + var $of = function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = allocate(this, length); + while (length > index) result[index] = arguments[index++]; + return result; + }; + + // iOS Safari 6.x fails here + var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); + + var $toLocaleString = function toLocaleString() { + return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); + }; + + var proto = { + copyWithin: function copyWithin(target, start /* , end */) { + return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); + }, + every: function every(callbackfn /* , thisArg */) { + return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars + return arrayFill.apply(validate(this), arguments); + }, + filter: function filter(callbackfn /* , thisArg */) { + return speciesFromList(this, arrayFilter(validate(this), callbackfn, + arguments.length > 1 ? arguments[1] : undefined)); + }, + find: function find(predicate /* , thisArg */) { + return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + findIndex: function findIndex(predicate /* , thisArg */) { + return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + forEach: function forEach(callbackfn /* , thisArg */) { + arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + indexOf: function indexOf(searchElement /* , fromIndex */) { + return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + includes: function includes(searchElement /* , fromIndex */) { + return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + join: function join(separator) { // eslint-disable-line no-unused-vars + return arrayJoin.apply(validate(this), arguments); + }, + lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars + return arrayLastIndexOf.apply(validate(this), arguments); + }, + map: function map(mapfn /* , thisArg */) { + return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); + }, + reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars + return arrayReduce.apply(validate(this), arguments); + }, + reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars + return arrayReduceRight.apply(validate(this), arguments); + }, + reverse: function reverse() { + var that = this; + var length = validate(that).length; + var middle = Math.floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; + }, + some: function some(callbackfn /* , thisArg */) { + return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + sort: function sort(comparefn) { + return arraySort.call(validate(this), comparefn); + }, + subarray: function subarray(begin, end) { + var O = validate(this); + var length = O.length; + var $begin = toAbsoluteIndex(begin, length); + return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( + O.buffer, + O.byteOffset + $begin * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) + ); + } + }; + + var $slice = function slice(start, end) { + return speciesFromList(this, arraySlice.call(validate(this), start, end)); + }; + + var $set = function set(arrayLike /* , offset */) { + validate(this); + var offset = toOffset(arguments[1], 1); + var length = this.length; + var src = toObject(arrayLike); + var len = toLength(src.length); + var index = 0; + if (len + offset > length) throw RangeError(WRONG_LENGTH); + while (index < len) this[offset + index] = src[index++]; + }; + + var $iterators = { + entries: function entries() { + return arrayEntries.call(validate(this)); + }, + keys: function keys() { + return arrayKeys.call(validate(this)); + }, + values: function values() { + return arrayValues.call(validate(this)); + } + }; + + var isTAIndex = function (target, key) { + return isObject(target) + && target[TYPED_ARRAY] + && typeof key != 'symbol' + && key in target + && String(+key) == String(key); + }; + var $getDesc = function getOwnPropertyDescriptor(target, key) { + return isTAIndex(target, key = toPrimitive(key, true)) + ? propertyDesc(2, target[key]) + : gOPD(target, key); + }; + var $setDesc = function defineProperty(target, key, desc) { + if (isTAIndex(target, key = toPrimitive(key, true)) + && isObject(desc) + && has(desc, 'value') + && !has(desc, 'get') + && !has(desc, 'set') + // TODO: add validation descriptor w/o calling accessors + && !desc.configurable + && (!has(desc, 'writable') || desc.writable) + && (!has(desc, 'enumerable') || desc.enumerable) + ) { + target[key] = desc.value; + return target; + } return dP(target, key, desc); + }; + + if (!ALL_CONSTRUCTORS) { + $GOPD.f = $getDesc; + $DP.f = $setDesc; + } + + $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { + getOwnPropertyDescriptor: $getDesc, + defineProperty: $setDesc + }); + + if (fails(function () { arrayToString.call({}); })) { + arrayToString = arrayToLocaleString = function toString() { + return arrayJoin.call(this); + }; + } + + var $TypedArrayPrototype$ = redefineAll({}, proto); + redefineAll($TypedArrayPrototype$, $iterators); + hide($TypedArrayPrototype$, ITERATOR, $iterators.values); + redefineAll($TypedArrayPrototype$, { + slice: $slice, + set: $set, + constructor: function () { /* noop */ }, + toString: arrayToString, + toLocaleString: $toLocaleString + }); + addGetter($TypedArrayPrototype$, 'buffer', 'b'); + addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); + addGetter($TypedArrayPrototype$, 'byteLength', 'l'); + addGetter($TypedArrayPrototype$, 'length', 'e'); + dP($TypedArrayPrototype$, TAG, { + get: function () { return this[TYPED_ARRAY]; } + }); + + // eslint-disable-next-line max-statements + module.exports = function (KEY, BYTES, wrapper, CLAMPED) { + CLAMPED = !!CLAMPED; + var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + KEY; + var SETTER = 'set' + KEY; + var TypedArray = global[NAME]; + var Base = TypedArray || {}; + var TAC = TypedArray && getPrototypeOf(TypedArray); + var FORCED = !TypedArray || !$typed.ABV; + var O = {}; + var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; + var getter = function (that, index) { + var data = that._d; + return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); + }; + var setter = function (that, index, value) { + var data = that._d; + if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; + data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); + }; + var addElement = function (that, index) { + dP(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + if (FORCED) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME, '_d'); + var index = 0; + var offset = 0; + var buffer, byteLength, length, klass; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new $ArrayBuffer(byteLength); + } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + buffer = data; + offset = toOffset($offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw RangeError(WRONG_LENGTH); + byteLength = $len - offset; + if (byteLength < 0) throw RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (TYPED_ARRAY in data) { + return fromList(TypedArray, data); + } else { + return $from.call(TypedArray, data); + } + hide(that, '_d', { + b: buffer, + o: offset, + l: byteLength, + e: length, + v: new $DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); + hide(TypedArrayPrototype, 'constructor', TypedArray); + } else if (!fails(function () { + TypedArray(1); + }) || !fails(function () { + new TypedArray(-1); // eslint-disable-line no-new + }) || !$iterDetect(function (iter) { + new TypedArray(); // eslint-disable-line no-new + new TypedArray(null); // eslint-disable-line no-new + new TypedArray(1.5); // eslint-disable-line no-new + new TypedArray(iter); // eslint-disable-line no-new + }, true)) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME); + var klass; + // `ws` module bug, temporarily remove validation length for Uint8Array + // https://github.com/websockets/ws/pull/645 + if (!isObject(data)) return new Base(toIndex(data)); + if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + return $length !== undefined + ? new Base(data, toOffset($offset, BYTES), $length) + : $offset !== undefined + ? new Base(data, toOffset($offset, BYTES)) + : new Base(data); + } + if (TYPED_ARRAY in data) return fromList(TypedArray, data); + return $from.call(TypedArray, data); + }); + arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { + if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); + }); + TypedArray[PROTOTYPE] = TypedArrayPrototype; + if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; + } + var $nativeIterator = TypedArrayPrototype[ITERATOR]; + var CORRECT_ITER_NAME = !!$nativeIterator + && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); + var $iterator = $iterators.values; + hide(TypedArray, TYPED_CONSTRUCTOR, true); + hide(TypedArrayPrototype, TYPED_ARRAY, NAME); + hide(TypedArrayPrototype, VIEW, true); + hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); + + if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { + dP(TypedArrayPrototype, TAG, { + get: function () { return NAME; } + }); + } + + O[NAME] = TypedArray; + + $export($export.G + $export.W + $export.F * (TypedArray != Base), O); + + $export($export.S, NAME, { + BYTES_PER_ELEMENT: BYTES + }); + + $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { + from: $from, + of: $of + }); + + if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); + + $export($export.P, NAME, proto); + + setSpecies(NAME); + + $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); + + $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); + + if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; + + $export($export.P + $export.F * fails(function () { + new TypedArray(1).slice(); + }), NAME, { slice: $slice }); + + $export($export.P + $export.F * (fails(function () { + return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); + }) || !fails(function () { + TypedArrayPrototype.toLocaleString.call([1, 2]); + })), NAME, { toLocaleString: $toLocaleString }); + + Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; + if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); + }; + } else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 236 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Uint8', 1, function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 237 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Uint8', 1, function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }, true); + + +/***/ }), +/* 238 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Int16', 2, function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 239 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Uint16', 2, function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 240 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Int32', 4, function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 241 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Uint32', 4, function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 242 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Float32', 4, function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 243 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(235)('Float64', 8, function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 244 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.1 Reflect.apply(target, thisArgument, argumentsList) + var $export = __webpack_require__(8); + var aFunction = __webpack_require__(24); + var anObject = __webpack_require__(12); + var rApply = (__webpack_require__(4).Reflect || {}).apply; + var fApply = Function.apply; + // MS Edge argumentsList argument is optional + $export($export.S + $export.F * !__webpack_require__(7)(function () { + rApply(function () { /* empty */ }); + }), 'Reflect', { + apply: function apply(target, thisArgument, argumentsList) { + var T = aFunction(target); + var L = anObject(argumentsList); + return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); + } + }); + + +/***/ }), +/* 245 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) + var $export = __webpack_require__(8); + var create = __webpack_require__(47); + var aFunction = __webpack_require__(24); + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var fails = __webpack_require__(7); + var bind = __webpack_require__(77); + var rConstruct = (__webpack_require__(4).Reflect || {}).construct; + + // MS Edge supports only 2 arguments and argumentsList argument is optional + // FF Nightly sets third argument as `new.target`, but does not create `this` from it + var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); + }); + var ARGS_BUG = !fails(function () { + rConstruct(function () { /* empty */ }); + }); + + $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { + construct: function construct(Target, args /* , newTarget */) { + aFunction(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); + if (Target == newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + $args.push.apply($args, args); + return new (bind.apply(Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : Object.prototype); + var result = Function.apply.call(Target, instance, args); + return isObject(result) ? result : instance; + } + }); + + +/***/ }), +/* 246 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) + var dP = __webpack_require__(11); + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var toPrimitive = __webpack_require__(16); + + // MS Edge has broken Reflect.defineProperty - throwing instead of returning false + $export($export.S + $export.F * __webpack_require__(7)(function () { + // eslint-disable-next-line no-undef + Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); + }), 'Reflect', { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + propertyKey = toPrimitive(propertyKey, true); + anObject(attributes); + try { + dP.f(target, propertyKey, attributes); + return true; + } catch (e) { + return false; + } + } + }); + + +/***/ }), +/* 247 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.4 Reflect.deleteProperty(target, propertyKey) + var $export = __webpack_require__(8); + var gOPD = __webpack_require__(52).f; + var anObject = __webpack_require__(12); + + $export($export.S, 'Reflect', { + deleteProperty: function deleteProperty(target, propertyKey) { + var desc = gOPD(anObject(target), propertyKey); + return desc && !desc.configurable ? false : delete target[propertyKey]; + } + }); + + +/***/ }), +/* 248 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 26.1.5 Reflect.enumerate(target) + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var Enumerate = function (iterated) { + this._t = anObject(iterated); // target + this._i = 0; // next index + var keys = this._k = []; // keys + var key; + for (key in iterated) keys.push(key); + }; + __webpack_require__(131)(Enumerate, 'Object', function () { + var that = this; + var keys = that._k; + var key; + do { + if (that._i >= keys.length) return { value: undefined, done: true }; + } while (!((key = keys[that._i++]) in that._t)); + return { value: key, done: false }; + }); + + $export($export.S, 'Reflect', { + enumerate: function enumerate(target) { + return new Enumerate(target); + } + }); + + +/***/ }), +/* 249 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.6 Reflect.get(target, propertyKey [, receiver]) + var gOPD = __webpack_require__(52); + var getPrototypeOf = __webpack_require__(59); + var has = __webpack_require__(5); + var $export = __webpack_require__(8); + var isObject = __webpack_require__(13); + var anObject = __webpack_require__(12); + + function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var desc, proto; + if (anObject(target) === receiver) return target[propertyKey]; + if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') + ? desc.value + : desc.get !== undefined + ? desc.get.call(receiver) + : undefined; + if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); + } + + $export($export.S, 'Reflect', { get: get }); + + +/***/ }), +/* 250 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) + var gOPD = __webpack_require__(52); + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + + $export($export.S, 'Reflect', { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return gOPD.f(anObject(target), propertyKey); + } + }); + + +/***/ }), +/* 251 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.8 Reflect.getPrototypeOf(target) + var $export = __webpack_require__(8); + var getProto = __webpack_require__(59); + var anObject = __webpack_require__(12); + + $export($export.S, 'Reflect', { + getPrototypeOf: function getPrototypeOf(target) { + return getProto(anObject(target)); + } + }); + + +/***/ }), +/* 252 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.9 Reflect.has(target, propertyKey) + var $export = __webpack_require__(8); + + $export($export.S, 'Reflect', { + has: function has(target, propertyKey) { + return propertyKey in target; + } + }); + + +/***/ }), +/* 253 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.10 Reflect.isExtensible(target) + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var $isExtensible = Object.isExtensible; + + $export($export.S, 'Reflect', { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible ? $isExtensible(target) : true; + } + }); + + +/***/ }), +/* 254 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.11 Reflect.ownKeys(target) + var $export = __webpack_require__(8); + + $export($export.S, 'Reflect', { ownKeys: __webpack_require__(255) }); + + +/***/ }), +/* 255 */ +/***/ (function(module, exports, __webpack_require__) { + + // all object keys, includes non-enumerable and symbols + var gOPN = __webpack_require__(51); + var gOPS = __webpack_require__(43); + var anObject = __webpack_require__(12); + var Reflect = __webpack_require__(4).Reflect; + module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { + var keys = gOPN.f(anObject(it)); + var getSymbols = gOPS.f; + return getSymbols ? keys.concat(getSymbols(it)) : keys; + }; + + +/***/ }), +/* 256 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.12 Reflect.preventExtensions(target) + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var $preventExtensions = Object.preventExtensions; + + $export($export.S, 'Reflect', { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + if ($preventExtensions) $preventExtensions(target); + return true; + } catch (e) { + return false; + } + } + }); + + +/***/ }), +/* 257 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) + var dP = __webpack_require__(11); + var gOPD = __webpack_require__(52); + var getPrototypeOf = __webpack_require__(59); + var has = __webpack_require__(5); + var $export = __webpack_require__(8); + var createDesc = __webpack_require__(17); + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + + function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDesc = gOPD.f(anObject(target), propertyKey); + var existingDescriptor, proto; + if (!ownDesc) { + if (isObject(proto = getPrototypeOf(target))) { + return set(proto, propertyKey, V, receiver); + } + ownDesc = createDesc(0); + } + if (has(ownDesc, 'value')) { + if (ownDesc.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = gOPD.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + dP.f(receiver, propertyKey, existingDescriptor); + } else dP.f(receiver, propertyKey, createDesc(0, V)); + return true; + } + return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); + } + + $export($export.S, 'Reflect', { set: set }); + + +/***/ }), +/* 258 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.14 Reflect.setPrototypeOf(target, proto) + var $export = __webpack_require__(8); + var setProto = __webpack_require__(73); + + if (setProto) $export($export.S, 'Reflect', { + setPrototypeOf: function setPrototypeOf(target, proto) { + setProto.check(target, proto); + try { + setProto.set(target, proto); + return true; + } catch (e) { + return false; + } + } + }); + + +/***/ }), +/* 259 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/Array.prototype.includes + var $export = __webpack_require__(8); + var $includes = __webpack_require__(37)(true); + + $export($export.P, 'Array', { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + __webpack_require__(188)('includes'); + + +/***/ }), +/* 260 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap + var $export = __webpack_require__(8); + var flattenIntoArray = __webpack_require__(261); + var toObject = __webpack_require__(46); + var toLength = __webpack_require__(38); + var aFunction = __webpack_require__(24); + var arraySpeciesCreate = __webpack_require__(175); + + $export($export.P, 'Array', { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen, A; + aFunction(callbackfn); + sourceLen = toLength(O.length); + A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]); + return A; + } + }); + + __webpack_require__(188)('flatMap'); + + +/***/ }), +/* 261 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray + var isArray = __webpack_require__(45); + var isObject = __webpack_require__(13); + var toLength = __webpack_require__(38); + var ctx = __webpack_require__(23); + var IS_CONCAT_SPREADABLE = __webpack_require__(27)('isConcatSpreadable'); + + function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? ctx(mapper, thisArg, 3) : false; + var element, spreadable; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + spreadable = false; + if (isObject(element)) { + spreadable = element[IS_CONCAT_SPREADABLE]; + spreadable = spreadable !== undefined ? !!spreadable : isArray(element); + } + + if (spreadable && depth > 0) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 0x1fffffffffffff) throw TypeError(); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; + } + + module.exports = flattenIntoArray; + + +/***/ }), +/* 262 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten + var $export = __webpack_require__(8); + var flattenIntoArray = __webpack_require__(261); + var toObject = __webpack_require__(46); + var toLength = __webpack_require__(38); + var toInteger = __webpack_require__(39); + var arraySpeciesCreate = __webpack_require__(175); + + $export($export.P, 'Array', { + flatten: function flatten(/* depthArg = 1 */) { + var depthArg = arguments[0]; + var O = toObject(this); + var sourceLen = toLength(O.length); + var A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + return A; + } + }); + + __webpack_require__(188)('flatten'); + + +/***/ }), +/* 263 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/mathiasbynens/String.prototype.at + var $export = __webpack_require__(8); + var $at = __webpack_require__(128)(true); + + $export($export.P, 'String', { + at: function at(pos) { + return $at(this, pos); + } + }); + + +/***/ }), +/* 264 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/proposal-string-pad-start-end + var $export = __webpack_require__(8); + var $pad = __webpack_require__(265); + var userAgent = __webpack_require__(218); + + // https://github.com/zloirock/core-js/issues/280 + var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); + + $export($export.P + $export.F * WEBKIT_BUG, 'String', { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); + } + }); + + +/***/ }), +/* 265 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-string-pad-start-end + var toLength = __webpack_require__(38); + var repeat = __webpack_require__(91); + var defined = __webpack_require__(36); + + module.exports = function (that, maxLength, fillString, left) { + var S = String(defined(that)); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : String(fillString); + var intMaxLength = toLength(maxLength); + if (intMaxLength <= stringLength || fillStr == '') return S; + var fillLen = intMaxLength - stringLength; + var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); + return left ? stringFiller + S : S + stringFiller; + }; + + +/***/ }), +/* 266 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/proposal-string-pad-start-end + var $export = __webpack_require__(8); + var $pad = __webpack_require__(265); + var userAgent = __webpack_require__(218); + + // https://github.com/zloirock/core-js/issues/280 + var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); + + $export($export.P + $export.F * WEBKIT_BUG, 'String', { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); + } + }); + + +/***/ }), +/* 267 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/sebmarkbage/ecmascript-string-left-right-trim + __webpack_require__(83)('trimLeft', function ($trim) { + return function trimLeft() { + return $trim(this, 1); + }; + }, 'trimStart'); + + +/***/ }), +/* 268 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/sebmarkbage/ecmascript-string-left-right-trim + __webpack_require__(83)('trimRight', function ($trim) { + return function trimRight() { + return $trim(this, 2); + }; + }, 'trimEnd'); + + +/***/ }), +/* 269 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/String.prototype.matchAll/ + var $export = __webpack_require__(8); + var defined = __webpack_require__(36); + var toLength = __webpack_require__(38); + var isRegExp = __webpack_require__(135); + var getFlags = __webpack_require__(198); + var RegExpProto = RegExp.prototype; + + var $RegExpStringIterator = function (regexp, string) { + this._r = regexp; + this._s = string; + }; + + __webpack_require__(131)($RegExpStringIterator, 'RegExp String', function next() { + var match = this._r.exec(this._s); + return { value: match, done: match === null }; + }); + + $export($export.P, 'String', { + matchAll: function matchAll(regexp) { + defined(this); + if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!'); + var S = String(this); + var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp); + var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags); + rx.lastIndex = toLength(regexp.lastIndex); + return new $RegExpStringIterator(rx, S); + } + }); + + +/***/ }), +/* 270 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(29)('asyncIterator'); + + +/***/ }), +/* 271 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(29)('observable'); + + +/***/ }), +/* 272 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-object-getownpropertydescriptors + var $export = __webpack_require__(8); + var ownKeys = __webpack_require__(255); + var toIObject = __webpack_require__(33); + var gOPD = __webpack_require__(52); + var createProperty = __webpack_require__(165); + + $export($export.S, 'Object', { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIObject(object); + var getDesc = gOPD.f; + var keys = ownKeys(O); + var result = {}; + var i = 0; + var key, desc; + while (keys.length > i) { + desc = getDesc(O, key = keys[i++]); + if (desc !== undefined) createProperty(result, key, desc); + } + return result; + } + }); + + +/***/ }), +/* 273 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-object-values-entries + var $export = __webpack_require__(8); + var $values = __webpack_require__(274)(false); + + $export($export.S, 'Object', { + values: function values(it) { + return $values(it); + } + }); + + +/***/ }), +/* 274 */ +/***/ (function(module, exports, __webpack_require__) { + + var DESCRIPTORS = __webpack_require__(6); + var getKeys = __webpack_require__(31); + var toIObject = __webpack_require__(33); + var isEnum = __webpack_require__(44).f; + module.exports = function (isEntries) { + return function (it) { + var O = toIObject(it); + var keys = getKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || isEnum.call(O, key)) { + result.push(isEntries ? [key, O[key]] : O[key]); + } + } + return result; + }; + }; + + +/***/ }), +/* 275 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-object-values-entries + var $export = __webpack_require__(8); + var $entries = __webpack_require__(274)(true); + + $export($export.S, 'Object', { + entries: function entries(it) { + return $entries(it); + } + }); + + +/***/ }), +/* 276 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(46); + var aFunction = __webpack_require__(24); + var $defineProperty = __webpack_require__(11); + + // B.2.2.2 Object.prototype.__defineGetter__(P, getter) + __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { + __defineGetter__: function __defineGetter__(P, getter) { + $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true }); + } + }); + + +/***/ }), +/* 277 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // Forced replacement prototype accessors methods + module.exports = __webpack_require__(22) || !__webpack_require__(7)(function () { + var K = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call + __defineSetter__.call(null, K, function () { /* empty */ }); + delete __webpack_require__(4)[K]; + }); + + +/***/ }), +/* 278 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(46); + var aFunction = __webpack_require__(24); + var $defineProperty = __webpack_require__(11); + + // B.2.2.3 Object.prototype.__defineSetter__(P, setter) + __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { + __defineSetter__: function __defineSetter__(P, setter) { + $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true }); + } + }); + + +/***/ }), +/* 279 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(46); + var toPrimitive = __webpack_require__(16); + var getPrototypeOf = __webpack_require__(59); + var getOwnPropertyDescriptor = __webpack_require__(52).f; + + // B.2.2.4 Object.prototype.__lookupGetter__(P) + __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.get; + } while (O = getPrototypeOf(O)); + } + }); + + +/***/ }), +/* 280 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(46); + var toPrimitive = __webpack_require__(16); + var getPrototypeOf = __webpack_require__(59); + var getOwnPropertyDescriptor = __webpack_require__(52).f; + + // B.2.2.5 Object.prototype.__lookupSetter__(P) + __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.set; + } while (O = getPrototypeOf(O)); + } + }); + + +/***/ }), +/* 281 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/DavidBruant/Map-Set.prototype.toJSON + var $export = __webpack_require__(8); + + $export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(282)('Map') }); + + +/***/ }), +/* 282 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/DavidBruant/Map-Set.prototype.toJSON + var classof = __webpack_require__(75); + var from = __webpack_require__(283); + module.exports = function (NAME) { + return function toJSON() { + if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); + return from(this); + }; + }; + + +/***/ }), +/* 283 */ +/***/ (function(module, exports, __webpack_require__) { + + var forOf = __webpack_require__(213); + + module.exports = function (iter, ITERATOR) { + var result = []; + forOf(iter, false, result.push, result, ITERATOR); + return result; + }; + + +/***/ }), +/* 284 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/DavidBruant/Map-Set.prototype.toJSON + var $export = __webpack_require__(8); + + $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(282)('Set') }); + + +/***/ }), +/* 285 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of + __webpack_require__(286)('Map'); + + +/***/ }), +/* 286 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-setmap-offrom/ + var $export = __webpack_require__(8); + + module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { of: function of() { + var length = arguments.length; + var A = new Array(length); + while (length--) A[length] = arguments[length]; + return new this(A); + } }); + }; + + +/***/ }), +/* 287 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-set.of + __webpack_require__(286)('Set'); + + +/***/ }), +/* 288 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of + __webpack_require__(286)('WeakMap'); + + +/***/ }), +/* 289 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of + __webpack_require__(286)('WeakSet'); + + +/***/ }), +/* 290 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from + __webpack_require__(291)('Map'); + + +/***/ }), +/* 291 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-setmap-offrom/ + var $export = __webpack_require__(8); + var aFunction = __webpack_require__(24); + var ctx = __webpack_require__(23); + var forOf = __webpack_require__(213); + + module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + return new this(A); + } }); + }; + + +/***/ }), +/* 292 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-set.from + __webpack_require__(291)('Set'); + + +/***/ }), +/* 293 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from + __webpack_require__(291)('WeakMap'); + + +/***/ }), +/* 294 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from + __webpack_require__(291)('WeakSet'); + + +/***/ }), +/* 295 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-global + var $export = __webpack_require__(8); + + $export($export.G, { global: __webpack_require__(4) }); + + +/***/ }), +/* 296 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-global + var $export = __webpack_require__(8); + + $export($export.S, 'System', { global: __webpack_require__(4) }); + + +/***/ }), +/* 297 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/ljharb/proposal-is-error + var $export = __webpack_require__(8); + var cof = __webpack_require__(35); + + $export($export.S, 'Error', { + isError: function isError(it) { + return cof(it) === 'Error'; + } + }); + + +/***/ }), +/* 298 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + clamp: function clamp(x, lower, upper) { + return Math.min(upper, Math.max(lower, x)); + } + }); + + +/***/ }), +/* 299 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 }); + + +/***/ }), +/* 300 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + var RAD_PER_DEG = 180 / Math.PI; + + $export($export.S, 'Math', { + degrees: function degrees(radians) { + return radians * RAD_PER_DEG; + } + }); + + +/***/ }), +/* 301 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + var scale = __webpack_require__(302); + var fround = __webpack_require__(114); + + $export($export.S, 'Math', { + fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { + return fround(scale(x, inLow, inHigh, outLow, outHigh)); + } + }); + + +/***/ }), +/* 302 */ +/***/ (function(module, exports) { + + // https://rwaldron.github.io/proposal-math-extensions/ + module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) { + if ( + arguments.length === 0 + // eslint-disable-next-line no-self-compare + || x != x + // eslint-disable-next-line no-self-compare + || inLow != inLow + // eslint-disable-next-line no-self-compare + || inHigh != inHigh + // eslint-disable-next-line no-self-compare + || outLow != outLow + // eslint-disable-next-line no-self-compare + || outHigh != outHigh + ) return NaN; + if (x === Infinity || x === -Infinity) return x; + return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow; + }; + + +/***/ }), +/* 303 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + iaddh: function iaddh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0; + } + }); + + +/***/ }), +/* 304 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + isubh: function isubh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0; + } + }); + + +/***/ }), +/* 305 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + imulh: function imulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >> 16; + var v1 = $v >> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16); + } + }); + + +/***/ }), +/* 306 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI }); + + +/***/ }), +/* 307 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + var DEG_PER_RAD = Math.PI / 180; + + $export($export.S, 'Math', { + radians: function radians(degrees) { + return degrees * DEG_PER_RAD; + } + }); + + +/***/ }), +/* 308 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { scale: __webpack_require__(302) }); + + +/***/ }), +/* 309 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + umulh: function umulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >>> 16; + var v1 = $v >>> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); + } + }); + + +/***/ }), +/* 310 */ +/***/ (function(module, exports, __webpack_require__) { + + // http://jfbastien.github.io/papers/Math.signbit.html + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { signbit: function signbit(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0; + } }); + + +/***/ }), +/* 311 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-promise-finally + 'use strict'; + var $export = __webpack_require__(8); + var core = __webpack_require__(9); + var global = __webpack_require__(4); + var speciesConstructor = __webpack_require__(210); + var promiseResolve = __webpack_require__(219); + + $export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { + var C = speciesConstructor(this, core.Promise || global.Promise); + var isFunction = typeof onFinally == 'function'; + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } }); + + +/***/ }), +/* 312 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/proposal-promise-try + var $export = __webpack_require__(8); + var newPromiseCapability = __webpack_require__(216); + var perform = __webpack_require__(217); + + $export($export.S, 'Promise', { 'try': function (callbackfn) { + var promiseCapability = newPromiseCapability.f(this); + var result = perform(callbackfn); + (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); + return promiseCapability.promise; + } }); + + +/***/ }), +/* 313 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var toMetaKey = metadata.key; + var ordinaryDefineOwnMetadata = metadata.set; + + metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); + } }); + + +/***/ }), +/* 314 */ +/***/ (function(module, exports, __webpack_require__) { + + var Map = __webpack_require__(221); + var $export = __webpack_require__(8); + var shared = __webpack_require__(21)('metadata'); + var store = shared.store || (shared.store = new (__webpack_require__(226))()); + + var getOrCreateMetadataMap = function (target, targetKey, create) { + var targetMetadata = store.get(target); + if (!targetMetadata) { + if (!create) return undefined; + store.set(target, targetMetadata = new Map()); + } + var keyMetadata = targetMetadata.get(targetKey); + if (!keyMetadata) { + if (!create) return undefined; + targetMetadata.set(targetKey, keyMetadata = new Map()); + } return keyMetadata; + }; + var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? false : metadataMap.has(MetadataKey); + }; + var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); + }; + var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { + getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); + }; + var ordinaryOwnMetadataKeys = function (target, targetKey) { + var metadataMap = getOrCreateMetadataMap(target, targetKey, false); + var keys = []; + if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); + return keys; + }; + var toMetaKey = function (it) { + return it === undefined || typeof it == 'symbol' ? it : String(it); + }; + var exp = function (O) { + $export($export.S, 'Reflect', O); + }; + + module.exports = { + store: store, + map: getOrCreateMetadataMap, + has: ordinaryHasOwnMetadata, + get: ordinaryGetOwnMetadata, + set: ordinaryDefineOwnMetadata, + keys: ordinaryOwnMetadataKeys, + key: toMetaKey, + exp: exp + }; + + +/***/ }), +/* 315 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var toMetaKey = metadata.key; + var getOrCreateMetadataMap = metadata.map; + var store = metadata.store; + + metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); + var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); + if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; + if (metadataMap.size) return true; + var targetMetadata = store.get(target); + targetMetadata['delete'](targetKey); + return !!targetMetadata.size || store['delete'](target); + } }); + + +/***/ }), +/* 316 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var getPrototypeOf = __webpack_require__(59); + var ordinaryHasOwnMetadata = metadata.has; + var ordinaryGetOwnMetadata = metadata.get; + var toMetaKey = metadata.key; + + var ordinaryGetMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; + }; + + metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { + return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 317 */ +/***/ (function(module, exports, __webpack_require__) { + + var Set = __webpack_require__(225); + var from = __webpack_require__(283); + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var getPrototypeOf = __webpack_require__(59); + var ordinaryOwnMetadataKeys = metadata.keys; + var toMetaKey = metadata.key; + + var ordinaryMetadataKeys = function (O, P) { + var oKeys = ordinaryOwnMetadataKeys(O, P); + var parent = getPrototypeOf(O); + if (parent === null) return oKeys; + var pKeys = ordinaryMetadataKeys(parent, P); + return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; + }; + + metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { + return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); + } }); + + +/***/ }), +/* 318 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var ordinaryGetOwnMetadata = metadata.get; + var toMetaKey = metadata.key; + + metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { + return ordinaryGetOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 319 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var ordinaryOwnMetadataKeys = metadata.keys; + var toMetaKey = metadata.key; + + metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { + return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); + } }); + + +/***/ }), +/* 320 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var getPrototypeOf = __webpack_require__(59); + var ordinaryHasOwnMetadata = metadata.has; + var toMetaKey = metadata.key; + + var ordinaryHasMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return true; + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; + }; + + metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { + return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 321 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var ordinaryHasOwnMetadata = metadata.has; + var toMetaKey = metadata.key; + + metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { + return ordinaryHasOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 322 */ +/***/ (function(module, exports, __webpack_require__) { + + var $metadata = __webpack_require__(314); + var anObject = __webpack_require__(12); + var aFunction = __webpack_require__(24); + var toMetaKey = $metadata.key; + var ordinaryDefineOwnMetadata = $metadata.set; + + $metadata.exp({ metadata: function metadata(metadataKey, metadataValue) { + return function decorator(target, targetKey) { + ordinaryDefineOwnMetadata( + metadataKey, metadataValue, + (targetKey !== undefined ? anObject : aFunction)(target), + toMetaKey(targetKey) + ); + }; + } }); + + +/***/ }), +/* 323 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask + var $export = __webpack_require__(8); + var microtask = __webpack_require__(215)(); + var process = __webpack_require__(4).process; + var isNode = __webpack_require__(35)(process) == 'process'; + + $export($export.G, { + asap: function asap(fn) { + var domain = isNode && process.domain; + microtask(domain ? domain.bind(fn) : fn); + } + }); + + +/***/ }), +/* 324 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/zenparsing/es-observable + var $export = __webpack_require__(8); + var global = __webpack_require__(4); + var core = __webpack_require__(9); + var microtask = __webpack_require__(215)(); + var OBSERVABLE = __webpack_require__(27)('observable'); + var aFunction = __webpack_require__(24); + var anObject = __webpack_require__(12); + var anInstance = __webpack_require__(212); + var redefineAll = __webpack_require__(220); + var hide = __webpack_require__(10); + var forOf = __webpack_require__(213); + var RETURN = forOf.RETURN; + + var getMethod = function (fn) { + return fn == null ? undefined : aFunction(fn); + }; + + var cleanupSubscription = function (subscription) { + var cleanup = subscription._c; + if (cleanup) { + subscription._c = undefined; + cleanup(); + } + }; + + var subscriptionClosed = function (subscription) { + return subscription._o === undefined; + }; + + var closeSubscription = function (subscription) { + if (!subscriptionClosed(subscription)) { + subscription._o = undefined; + cleanupSubscription(subscription); + } + }; + + var Subscription = function (observer, subscriber) { + anObject(observer); + this._c = undefined; + this._o = observer; + observer = new SubscriptionObserver(this); + try { + var cleanup = subscriber(observer); + var subscription = cleanup; + if (cleanup != null) { + if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); }; + else aFunction(cleanup); + this._c = cleanup; + } + } catch (e) { + observer.error(e); + return; + } if (subscriptionClosed(this)) cleanupSubscription(this); + }; + + Subscription.prototype = redefineAll({}, { + unsubscribe: function unsubscribe() { closeSubscription(this); } + }); + + var SubscriptionObserver = function (subscription) { + this._s = subscription; + }; + + SubscriptionObserver.prototype = redefineAll({}, { + next: function next(value) { + var subscription = this._s; + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + try { + var m = getMethod(observer.next); + if (m) return m.call(observer, value); + } catch (e) { + try { + closeSubscription(subscription); + } finally { + throw e; + } + } + } + }, + error: function error(value) { + var subscription = this._s; + if (subscriptionClosed(subscription)) throw value; + var observer = subscription._o; + subscription._o = undefined; + try { + var m = getMethod(observer.error); + if (!m) throw value; + value = m.call(observer, value); + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } cleanupSubscription(subscription); + return value; + }, + complete: function complete(value) { + var subscription = this._s; + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + subscription._o = undefined; + try { + var m = getMethod(observer.complete); + value = m ? m.call(observer, value) : undefined; + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } cleanupSubscription(subscription); + return value; + } + } + }); + + var $Observable = function Observable(subscriber) { + anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber); + }; + + redefineAll($Observable.prototype, { + subscribe: function subscribe(observer) { + return new Subscription(observer, this._f); + }, + forEach: function forEach(fn) { + var that = this; + return new (core.Promise || global.Promise)(function (resolve, reject) { + aFunction(fn); + var subscription = that.subscribe({ + next: function (value) { + try { + return fn(value); + } catch (e) { + reject(e); + subscription.unsubscribe(); + } + }, + error: reject, + complete: resolve + }); + }); + } + }); + + redefineAll($Observable, { + from: function from(x) { + var C = typeof this === 'function' ? this : $Observable; + var method = getMethod(anObject(x)[OBSERVABLE]); + if (method) { + var observable = anObject(method.call(x)); + return observable.constructor === C ? observable : new C(function (observer) { + return observable.subscribe(observer); + }); + } + return new C(function (observer) { + var done = false; + microtask(function () { + if (!done) { + try { + if (forOf(x, false, function (it) { + observer.next(it); + if (done) return RETURN; + }) === RETURN) return; + } catch (e) { + if (done) throw e; + observer.error(e); + return; + } observer.complete(); + } + }); + return function () { done = true; }; + }); + }, + of: function of() { + for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++]; + return new (typeof this === 'function' ? this : $Observable)(function (observer) { + var done = false; + microtask(function () { + if (!done) { + for (var j = 0; j < items.length; ++j) { + observer.next(items[j]); + if (done) return; + } observer.complete(); + } + }); + return function () { done = true; }; + }); + } + }); + + hide($Observable.prototype, OBSERVABLE, function () { return this; }); + + $export($export.G, { Observable: $Observable }); + + __webpack_require__(194)('Observable'); + + +/***/ }), +/* 325 */ +/***/ (function(module, exports, __webpack_require__) { + + // ie9- setTimeout & setInterval additional parameters fix + var global = __webpack_require__(4); + var $export = __webpack_require__(8); + var userAgent = __webpack_require__(218); + var slice = [].slice; + var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check + var wrap = function (set) { + return function (fn, time /* , ...args */) { + var boundArgs = arguments.length > 2; + var args = boundArgs ? slice.call(arguments, 2) : false; + return set(boundArgs ? function () { + // eslint-disable-next-line no-new-func + (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); + } : fn, time); + }; + }; + $export($export.G + $export.B + $export.F * MSIE, { + setTimeout: wrap(global.setTimeout), + setInterval: wrap(global.setInterval) + }); + + +/***/ }), +/* 326 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $task = __webpack_require__(214); + $export($export.G + $export.B, { + setImmediate: $task.set, + clearImmediate: $task.clear + }); + + +/***/ }), +/* 327 */ +/***/ (function(module, exports, __webpack_require__) { + + var $iterators = __webpack_require__(195); + var getKeys = __webpack_require__(31); + var redefine = __webpack_require__(18); + var global = __webpack_require__(4); + var hide = __webpack_require__(10); + var Iterators = __webpack_require__(130); + var wks = __webpack_require__(27); + var ITERATOR = wks('iterator'); + var TO_STRING_TAG = wks('toStringTag'); + var ArrayValues = Iterators.Array; + + var DOMIterables = { + CSSRuleList: true, // TODO: Not spec compliant, should be false. + CSSStyleDeclaration: false, + CSSValueList: false, + ClientRectList: false, + DOMRectList: false, + DOMStringList: false, + DOMTokenList: true, + DataTransferItemList: false, + FileList: false, + HTMLAllCollection: false, + HTMLCollection: false, + HTMLFormElement: false, + HTMLSelectElement: false, + MediaList: true, // TODO: Not spec compliant, should be false. + MimeTypeArray: false, + NamedNodeMap: false, + NodeList: true, + PaintRequestList: false, + Plugin: false, + PluginArray: false, + SVGLengthList: false, + SVGNumberList: false, + SVGPathSegList: false, + SVGPointList: false, + SVGStringList: false, + SVGTransformList: false, + SourceBufferList: false, + StyleSheetList: true, // TODO: Not spec compliant, should be false. + TextTrackCueList: false, + TextTrackList: false, + TouchList: false + }; + + for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { + var NAME = collections[i]; + var explicit = DOMIterables[NAME]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + var key; + if (proto) { + if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); + if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = ArrayValues; + if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); + } + } + + +/***/ }), +/* 328 */ +/***/ (function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + + !(function(global) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + var inModule = typeof module === "object"; + var runtime = global.regeneratorRuntime; + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + runtime.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + resolve(result); + }, reject); + } + } + + if (typeof global.process === "object" && global.process.domain) { + invoke = global.process.domain.bind(invoke); + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + runtime.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator.return) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + })( + // Among the various tricks for obtaining a reference to the global + // object, this seems to be the most reliable technique that does not + // use indirect eval (which violates Content Security Policy). + typeof global === "object" ? global : + typeof window === "object" ? window : + typeof self === "object" ? self : this + ); + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 329 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(330); + module.exports = __webpack_require__(9).RegExp.escape; + + +/***/ }), +/* 330 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/benjamingr/RexExp.escape + var $export = __webpack_require__(8); + var $re = __webpack_require__(331)(/[\\^$*+?.()|[\]{}]/g, '\\$&'); + + $export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } }); + + +/***/ }), +/* 331 */ +/***/ (function(module, exports) { + + module.exports = function (regExp, replace) { + var replacer = replace === Object(replace) ? function (part) { + return replace[part]; + } : replace; + return function (it) { + return String(it).replace(regExp, replacer); + }; + }; + + +/***/ }), +/* 332 */ +/***/ (function(module, exports, __webpack_require__) { + + var BSON = __webpack_require__(333), + Binary = __webpack_require__(356), + Code = __webpack_require__(351), + DBRef = __webpack_require__(355), + Decimal128 = __webpack_require__(352), + Double = __webpack_require__(336), + Int32 = __webpack_require__(350), + Long = __webpack_require__(335), + Map = __webpack_require__(334), + MaxKey = __webpack_require__(354), + MinKey = __webpack_require__(353), + ObjectId = __webpack_require__(338), + BSONRegExp = __webpack_require__(348), + Symbol = __webpack_require__(349), + Timestamp = __webpack_require__(337); + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Add BSON types to function creation + BSON.Binary = Binary; + BSON.Code = Code; + BSON.DBRef = DBRef; + BSON.Decimal128 = Decimal128; + BSON.Double = Double; + BSON.Int32 = Int32; + BSON.Long = Long; + BSON.Map = Map; + BSON.MaxKey = MaxKey; + BSON.MinKey = MinKey; + BSON.ObjectId = ObjectId; + BSON.ObjectID = ObjectId; + BSON.BSONRegExp = BSONRegExp; + BSON.Symbol = Symbol; + BSON.Timestamp = Timestamp; + + // Return the BSON + module.exports = BSON; + +/***/ }), +/* 333 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var Map = __webpack_require__(334), + Long = __webpack_require__(335), + Double = __webpack_require__(336), + Timestamp = __webpack_require__(337), + ObjectID = __webpack_require__(338), + BSONRegExp = __webpack_require__(348), + Symbol = __webpack_require__(349), + Int32 = __webpack_require__(350), + Code = __webpack_require__(351), + Decimal128 = __webpack_require__(352), + MinKey = __webpack_require__(353), + MaxKey = __webpack_require__(354), + DBRef = __webpack_require__(355), + Binary = __webpack_require__(356); + + // Parts of the parser + var deserialize = __webpack_require__(357), + serializer = __webpack_require__(358), + calculateObjectSize = __webpack_require__(360), + utils = __webpack_require__(344); + + /** + * @ignore + * @api private + */ + // Default Max Size + var MAXSIZE = 1024 * 1024 * 17; + + // Current Internal Temporary Serialization Buffer + var buffer = utils.allocBuffer(MAXSIZE); + + var BSON = function () {}; + + /** + * Serialize a Javascript object. + * + * @param {Object} object the Javascript object to serialize. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.minInternalBufferSize=1024*1024*17] minimum size of the internal temporary serialization buffer **(default:1024*1024*17)**. + * @return {Buffer} returns the Buffer object containing the serialized object. + * @api public + */ + BSON.prototype.serialize = function serialize(object, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var minInternalBufferSize = typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE; + + // Resize the internal serialization buffer if needed + if (buffer.length < minInternalBufferSize) { + buffer = utils.allocBuffer(minInternalBufferSize); + } + + // Attempt to serialize + var serializationIndex = serializer(buffer, object, checkKeys, 0, 0, serializeFunctions, ignoreUndefined, []); + // Create the final buffer + var finishedBuffer = utils.allocBuffer(serializationIndex); + // Copy into the finished buffer + buffer.copy(finishedBuffer, 0, 0, finishedBuffer.length); + // Return the buffer + return finishedBuffer; + }; + + /** + * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization. + * + * @param {Object} object the Javascript object to serialize. + * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.index] the index in the buffer where we wish to start serializing into. + * @return {Number} returns the index pointing to the last written byte in the buffer. + * @api public + */ + BSON.prototype.serializeWithBufferAndIndex = function (object, finalBuffer, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var startIndex = typeof options.index === 'number' ? options.index : 0; + + // Attempt to serialize + var serializationIndex = serializer(finalBuffer, object, checkKeys, startIndex || 0, 0, serializeFunctions, ignoreUndefined); + + // Return the index + return serializationIndex - 1; + }; + + /** + * Deserialize data as BSON. + * + * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Object} returns the deserialized Javascript Object. + * @api public + */ + BSON.prototype.deserialize = function (buffer, options) { + return deserialize(buffer, options); + }; + + /** + * Calculate the bson size for a passed in Javascript object. + * + * @param {Object} object the Javascript object to calculate the BSON byte size for. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @return {Number} returns the number of bytes the BSON object will take up. + * @api public + */ + BSON.prototype.calculateObjectSize = function (object, options) { + options = options || {}; + + var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + + return calculateObjectSize(object, serializeFunctions, ignoreUndefined); + }; + + /** + * Deserialize stream data as BSON documents. + * + * @param {Buffer} data the buffer containing the serialized set of BSON documents. + * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. + * @param {Number} numberOfDocuments number of documents to deserialize. + * @param {Array} documents an array where to store the deserialized documents. + * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. + * @param {Object} [options] additional options used for the deserialization. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. + * @api public + */ + BSON.prototype.deserializeStream = function (data, startIndex, numberOfDocuments, documents, docStartIndex, options) { + options = options != null ? options : {}; + var index = startIndex; + // Loop over all documents + for (var i = 0; i < numberOfDocuments; i++) { + // Find size of the document + var size = data[index] | data[index + 1] << 8 | data[index + 2] << 16 | data[index + 3] << 24; + // Update options with index + options['index'] = index; + // Parse the document at this point + documents[docStartIndex + i] = this.deserialize(data, options); + // Adjust index by the document size + index = index + size; + } + + // Return object containing end index of parsing and list of documents + return index; + }; + + /** + * @ignore + * @api private + */ + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Internal long versions + // var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. + // var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + + /** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ + BSON.BSON_DATA_NUMBER = 1; + /** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ + BSON.BSON_DATA_STRING = 2; + /** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ + BSON.BSON_DATA_OBJECT = 3; + /** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ + BSON.BSON_DATA_ARRAY = 4; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ + BSON.BSON_DATA_BINARY = 5; + /** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ + BSON.BSON_DATA_OID = 7; + /** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ + BSON.BSON_DATA_BOOLEAN = 8; + /** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ + BSON.BSON_DATA_DATE = 9; + /** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ + BSON.BSON_DATA_NULL = 10; + /** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ + BSON.BSON_DATA_REGEXP = 11; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ + BSON.BSON_DATA_CODE = 13; + /** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ + BSON.BSON_DATA_SYMBOL = 14; + /** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ + BSON.BSON_DATA_CODE_W_SCOPE = 15; + /** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ + BSON.BSON_DATA_INT = 16; + /** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ + BSON.BSON_DATA_TIMESTAMP = 17; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ + BSON.BSON_DATA_LONG = 18; + /** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ + BSON.BSON_DATA_MIN_KEY = 0xff; + /** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ + BSON.BSON_DATA_MAX_KEY = 0x7f; + + /** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ + BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; + /** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ + BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; + /** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ + BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; + /** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ + BSON.BSON_BINARY_SUBTYPE_UUID = 3; + /** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ + BSON.BSON_BINARY_SUBTYPE_MD5 = 4; + /** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ + BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + + // Return BSON + module.exports = BSON; + module.exports.Code = Code; + module.exports.Map = Map; + module.exports.Symbol = Symbol; + module.exports.BSON = BSON; + module.exports.DBRef = DBRef; + module.exports.Binary = Binary; + module.exports.ObjectID = ObjectID; + module.exports.Long = Long; + module.exports.Timestamp = Timestamp; + module.exports.Double = Double; + module.exports.Int32 = Int32; + module.exports.MinKey = MinKey; + module.exports.MaxKey = MaxKey; + module.exports.BSONRegExp = BSONRegExp; + module.exports.Decimal128 = Decimal128; + +/***/ }), +/* 334 */ +/***/ (function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + // We have an ES6 Map available, return the native instance + + if (typeof global.Map !== 'undefined') { + module.exports = global.Map; + module.exports.Map = global.Map; + } else { + // We will return a polyfill + var Map = function (array) { + this._keys = []; + this._values = {}; + + for (var i = 0; i < array.length; i++) { + if (array[i] == null) continue; // skip null and undefined + var entry = array[i]; + var key = entry[0]; + var value = entry[1]; + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + } + }; + + Map.prototype.clear = function () { + this._keys = []; + this._values = {}; + }; + + Map.prototype.delete = function (key) { + var value = this._values[key]; + if (value == null) return false; + // Delete entry + delete this._values[key]; + // Remove the key from the ordered keys list + this._keys.splice(value.i, 1); + return true; + }; + + Map.prototype.entries = function () { + var self = this; + var index = 0; + + return { + next: function () { + var key = self._keys[index++]; + return { + value: key !== undefined ? [key, self._values[key].v] : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.forEach = function (callback, self) { + self = self || this; + + for (var i = 0; i < this._keys.length; i++) { + var key = this._keys[i]; + // Call the forEach callback + callback.call(self, this._values[key].v, key, self); + } + }; + + Map.prototype.get = function (key) { + return this._values[key] ? this._values[key].v : undefined; + }; + + Map.prototype.has = function (key) { + return this._values[key] != null; + }; + + Map.prototype.keys = function () { + var self = this; + var index = 0; + + return { + next: function () { + var key = self._keys[index++]; + return { + value: key !== undefined ? key : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.set = function (key, value) { + if (this._values[key]) { + this._values[key].v = value; + return this; + } + + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + return this; + }; + + Map.prototype.values = function () { + var self = this; + var index = 0; + + return { + next: function () { + var key = self._keys[index++]; + return { + value: key !== undefined ? self._values[key].v : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + // Last ismaster + Object.defineProperty(Map.prototype, 'size', { + enumerable: true, + get: function () { + return this._keys.length; + } + }); + + module.exports = Map; + module.exports.Map = Map; + } + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 335 */ +/***/ (function(module, exports) { + + // Licensed under the Apache License, Version 2.0 (the "License"); + // you may not use this file except in compliance with the License. + // You may obtain a copy of the License at + // + // http://www.apache.org/licenses/LICENSE-2.0 + // + // Unless required by applicable law or agreed to in writing, software + // distributed under the License is distributed on an "AS IS" BASIS, + // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + // See the License for the specific language governing permissions and + // limitations under the License. + // + // Copyright 2009 Google Inc. All Rights Reserved + + /** + * Defines a Long class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Long". This + * implementation is derived from LongLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Longs. + * + * The internal representation of a Long is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Long. + * @param {number} high the high (signed) 32 bits of the Long. + * @return {Long} + */ + function Long(low, high) { + if (!(this instanceof Long)) return new Long(low, high); + + this._bsontype = 'Long'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. + } + + /** + * Return the int value. + * + * @method + * @return {number} the value, assuming it is a 32-bit integer. + */ + Long.prototype.toInt = function () { + return this.low_; + }; + + /** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ + Long.prototype.toNumber = function () { + return this.high_ * Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); + }; + + /** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ + Long.prototype.toJSON = function () { + return this.toString(); + }; + + /** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ + Long.prototype.toString = function (opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + // We need to change the Long value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixLong = Long.fromNumber(radix); + var div = this.div(radixLong); + var rem = div.multiply(radixLong).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } + }; + + /** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ + Long.prototype.getHighBits = function () { + return this.high_; + }; + + /** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ + Long.prototype.getLowBits = function () { + return this.low_; + }; + + /** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ + Long.prototype.getLowBitsUnsigned = function () { + return this.low_ >= 0 ? this.low_ : Long.TWO_PWR_32_DBL_ + this.low_; + }; + + /** + * Returns the number of bits needed to represent the absolute value of this Long. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Long. + */ + Long.prototype.getNumBitsAbs = function () { + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & 1 << bit) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } + }; + + /** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ + Long.prototype.isZero = function () { + return this.high_ === 0 && this.low_ === 0; + }; + + /** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ + Long.prototype.isNegative = function () { + return this.high_ < 0; + }; + + /** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ + Long.prototype.isOdd = function () { + return (this.low_ & 1) === 1; + }; + + /** + * Return whether this Long equals the other + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long equals the other + */ + Long.prototype.equals = function (other) { + return this.high_ === other.high_ && this.low_ === other.low_; + }; + + /** + * Return whether this Long does not equal the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long does not equal the other. + */ + Long.prototype.notEquals = function (other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; + }; + + /** + * Return whether this Long is less than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than the other. + */ + Long.prototype.lessThan = function (other) { + return this.compare(other) < 0; + }; + + /** + * Return whether this Long is less than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than or equal to the other. + */ + Long.prototype.lessThanOrEqual = function (other) { + return this.compare(other) <= 0; + }; + + /** + * Return whether this Long is greater than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than the other. + */ + Long.prototype.greaterThan = function (other) { + return this.compare(other) > 0; + }; + + /** + * Return whether this Long is greater than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than or equal to the other. + */ + Long.prototype.greaterThanOrEqual = function (other) { + return this.compare(other) >= 0; + }; + + /** + * Compares this Long with the given one. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ + Long.prototype.compare = function (other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } + }; + + /** + * The negation of this value. + * + * @method + * @return {Long} the negation of this value. + */ + Long.prototype.negate = function () { + if (this.equals(Long.MIN_VALUE)) { + return Long.MIN_VALUE; + } else { + return this.not().add(Long.ONE); + } + }; + + /** + * Returns the sum of this and the given Long. + * + * @method + * @param {Long} other Long to add to this one. + * @return {Long} the sum of this and the given Long. + */ + Long.prototype.add = function (other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns the difference of this and the given Long. + * + * @method + * @param {Long} other Long to subtract from this. + * @return {Long} the difference of this and the given Long. + */ + Long.prototype.subtract = function (other) { + return this.add(other.negate()); + }; + + /** + * Returns the product of this and the given Long. + * + * @method + * @param {Long} other Long to multiply with this. + * @return {Long} the product of this and the other. + */ + Long.prototype.multiply = function (other) { + if (this.isZero()) { + return Long.ZERO; + } else if (other.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + return other.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } else if (other.equals(Long.MIN_VALUE)) { + return this.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate().multiply(other).negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Longs are small, use float multiplication + if (this.lessThan(Long.TWO_PWR_24_) && other.lessThan(Long.TWO_PWR_24_)) { + return Long.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Long into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns this Long divided by the given one. + * + * @method + * @param {Long} other Long by which to divide. + * @return {Long} this Long divided by the given one. + */ + Long.prototype.div = function (other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + if (other.equals(Long.ONE) || other.equals(Long.NEG_ONE)) { + return Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Long.ZERO)) { + return other.isNegative() ? Long.ONE : Long.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate().div(other).negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Long.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Long.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Long.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Long.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; + }; + + /** + * Returns this Long modulo the given one. + * + * @method + * @param {Long} other Long by which to mod. + * @return {Long} this Long modulo the given one. + */ + Long.prototype.modulo = function (other) { + return this.subtract(this.div(other).multiply(other)); + }; + + /** + * The bitwise-NOT of this value. + * + * @method + * @return {Long} the bitwise-NOT of this value. + */ + Long.prototype.not = function () { + return Long.fromBits(~this.low_, ~this.high_); + }; + + /** + * Returns the bitwise-AND of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to AND. + * @return {Long} the bitwise-AND of this and the other. + */ + Long.prototype.and = function (other) { + return Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); + }; + + /** + * Returns the bitwise-OR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to OR. + * @return {Long} the bitwise-OR of this and the other. + */ + Long.prototype.or = function (other) { + return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); + }; + + /** + * Returns the bitwise-XOR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to XOR. + * @return {Long} the bitwise-XOR of this and the other. + */ + Long.prototype.xor = function (other) { + return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); + }; + + /** + * Returns this Long with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the left by the given amount. + */ + Long.prototype.shiftLeft = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Long.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); + } else { + return Long.fromBits(0, low << numBits - 32); + } + } + }; + + /** + * Returns this Long with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount. + */ + Long.prototype.shiftRight = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); + } else { + return Long.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); + } + } + }; + + /** + * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ + Long.prototype.shiftRightUnsigned = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); + } else if (numBits === 32) { + return Long.fromBits(high, 0); + } else { + return Long.fromBits(high >>> numBits - 32, 0); + } + } + }; + + /** + * Returns a Long representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Long} the corresponding Long value. + */ + Long.fromInt = function (value) { + if (-128 <= value && value < 128) { + var cachedObj = Long.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Long(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Long.INT_CACHE_[value] = obj; + } + return obj; + }; + + /** + * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Long} the corresponding Long value. + */ + Long.fromNumber = function (value) { + if (isNaN(value) || !isFinite(value)) { + return Long.ZERO; + } else if (value <= -Long.TWO_PWR_63_DBL_) { + return Long.MIN_VALUE; + } else if (value + 1 >= Long.TWO_PWR_63_DBL_) { + return Long.MAX_VALUE; + } else if (value < 0) { + return Long.fromNumber(-value).negate(); + } else { + return new Long(value % Long.TWO_PWR_32_DBL_ | 0, value / Long.TWO_PWR_32_DBL_ | 0); + } + }; + + /** + * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Long} the corresponding Long value. + */ + Long.fromBits = function (lowBits, highBits) { + return new Long(lowBits, highBits); + }; + + /** + * Returns a Long representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Long. + * @param {number} opt_radix the radix in which the text is written. + * @return {Long} the corresponding Long value. + */ + Long.fromString = function (str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Long.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 8)); + + var result = Long.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Long.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Long.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Long.fromNumber(value)); + } + } + return result; + }; + + // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the + // from* methods on which they depend. + + /** + * A cache of the Long representations of small integer values. + * @type {Object} + * @ignore + */ + Long.INT_CACHE_ = {}; + + // NOTE: the compiler should inline these constant values below and then remove + // these variables, so there should be no runtime penalty for these. + + /** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ + Long.TWO_PWR_16_DBL_ = 1 << 16; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_24_DBL_ = 1 << 24; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_32_DBL_ = Long.TWO_PWR_16_DBL_ * Long.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_31_DBL_ = Long.TWO_PWR_32_DBL_ / 2; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_48_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_64_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_32_DBL_; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_63_DBL_ = Long.TWO_PWR_64_DBL_ / 2; + + /** @type {Long} */ + Long.ZERO = Long.fromInt(0); + + /** @type {Long} */ + Long.ONE = Long.fromInt(1); + + /** @type {Long} */ + Long.NEG_ONE = Long.fromInt(-1); + + /** @type {Long} */ + Long.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0); + + /** @type {Long} */ + Long.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0); + + /** + * @type {Long} + * @ignore + */ + Long.TWO_PWR_24_ = Long.fromInt(1 << 24); + + /** + * Expose. + */ + module.exports = Long; + module.exports.Long = Long; + +/***/ }), +/* 336 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON Double type. + * + * @class + * @param {number} value the number we want to represent as a double. + * @return {Double} + */ + function Double(value) { + if (!(this instanceof Double)) return new Double(value); + + this._bsontype = 'Double'; + this.value = value; + } + + /** + * Access the number value. + * + * @method + * @return {number} returns the wrapped double number. + */ + Double.prototype.valueOf = function () { + return this.value; + }; + + /** + * @ignore + */ + Double.prototype.toJSON = function () { + return this.value; + }; + + module.exports = Double; + module.exports.Double = Double; + +/***/ }), +/* 337 */ +/***/ (function(module, exports) { + + // Licensed under the Apache License, Version 2.0 (the "License"); + // you may not use this file except in compliance with the License. + // You may obtain a copy of the License at + // + // http://www.apache.org/licenses/LICENSE-2.0 + // + // Unless required by applicable law or agreed to in writing, software + // distributed under the License is distributed on an "AS IS" BASIS, + // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + // See the License for the specific language governing permissions and + // limitations under the License. + // + // Copyright 2009 Google Inc. All Rights Reserved + + /** + * This type is for INTERNAL use in MongoDB only and should not be used in applications. + * The appropriate corresponding type is the JavaScript Date type. + * + * Defines a Timestamp class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Timestamp". This + * implementation is derived from TimestampLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Timestamps. + * + * The internal representation of a Timestamp is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Timestamp. + * @param {number} high the high (signed) 32 bits of the Timestamp. + */ + function Timestamp(low, high) { + if (!(this instanceof Timestamp)) return new Timestamp(low, high); + this._bsontype = 'Timestamp'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. + } + + /** + * Return the int value. + * + * @return {number} the value, assuming it is a 32-bit integer. + */ + Timestamp.prototype.toInt = function () { + return this.low_; + }; + + /** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ + Timestamp.prototype.toNumber = function () { + return this.high_ * Timestamp.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); + }; + + /** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ + Timestamp.prototype.toJSON = function () { + return this.toString(); + }; + + /** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ + Timestamp.prototype.toString = function (opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + // We need to change the Timestamp value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixTimestamp = Timestamp.fromNumber(radix); + var div = this.div(radixTimestamp); + var rem = div.multiply(radixTimestamp).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } + }; + + /** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ + Timestamp.prototype.getHighBits = function () { + return this.high_; + }; + + /** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ + Timestamp.prototype.getLowBits = function () { + return this.low_; + }; + + /** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ + Timestamp.prototype.getLowBitsUnsigned = function () { + return this.low_ >= 0 ? this.low_ : Timestamp.TWO_PWR_32_DBL_ + this.low_; + }; + + /** + * Returns the number of bits needed to represent the absolute value of this Timestamp. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Timestamp. + */ + Timestamp.prototype.getNumBitsAbs = function () { + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & 1 << bit) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } + }; + + /** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ + Timestamp.prototype.isZero = function () { + return this.high_ === 0 && this.low_ === 0; + }; + + /** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ + Timestamp.prototype.isNegative = function () { + return this.high_ < 0; + }; + + /** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ + Timestamp.prototype.isOdd = function () { + return (this.low_ & 1) === 1; + }; + + /** + * Return whether this Timestamp equals the other + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp equals the other + */ + Timestamp.prototype.equals = function (other) { + return this.high_ === other.high_ && this.low_ === other.low_; + }; + + /** + * Return whether this Timestamp does not equal the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp does not equal the other. + */ + Timestamp.prototype.notEquals = function (other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; + }; + + /** + * Return whether this Timestamp is less than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than the other. + */ + Timestamp.prototype.lessThan = function (other) { + return this.compare(other) < 0; + }; + + /** + * Return whether this Timestamp is less than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than or equal to the other. + */ + Timestamp.prototype.lessThanOrEqual = function (other) { + return this.compare(other) <= 0; + }; + + /** + * Return whether this Timestamp is greater than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than the other. + */ + Timestamp.prototype.greaterThan = function (other) { + return this.compare(other) > 0; + }; + + /** + * Return whether this Timestamp is greater than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than or equal to the other. + */ + Timestamp.prototype.greaterThanOrEqual = function (other) { + return this.compare(other) >= 0; + }; + + /** + * Compares this Timestamp with the given one. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ + Timestamp.prototype.compare = function (other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } + }; + + /** + * The negation of this value. + * + * @method + * @return {Timestamp} the negation of this value. + */ + Timestamp.prototype.negate = function () { + if (this.equals(Timestamp.MIN_VALUE)) { + return Timestamp.MIN_VALUE; + } else { + return this.not().add(Timestamp.ONE); + } + }; + + /** + * Returns the sum of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to add to this one. + * @return {Timestamp} the sum of this and the given Timestamp. + */ + Timestamp.prototype.add = function (other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Timestamp.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns the difference of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to subtract from this. + * @return {Timestamp} the difference of this and the given Timestamp. + */ + Timestamp.prototype.subtract = function (other) { + return this.add(other.negate()); + }; + + /** + * Returns the product of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to multiply with this. + * @return {Timestamp} the product of this and the other. + */ + Timestamp.prototype.multiply = function (other) { + if (this.isZero()) { + return Timestamp.ZERO; + } else if (other.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + return other.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } else if (other.equals(Timestamp.MIN_VALUE)) { + return this.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate().multiply(other).negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Timestamps are small, use float multiplication + if (this.lessThan(Timestamp.TWO_PWR_24_) && other.lessThan(Timestamp.TWO_PWR_24_)) { + return Timestamp.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Timestamp into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Timestamp.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns this Timestamp divided by the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to divide. + * @return {Timestamp} this Timestamp divided by the given one. + */ + Timestamp.prototype.div = function (other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + if (other.equals(Timestamp.ONE) || other.equals(Timestamp.NEG_ONE)) { + return Timestamp.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Timestamp.ZERO)) { + return other.isNegative() ? Timestamp.ONE : Timestamp.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate().div(other).negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Timestamp.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Timestamp.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Timestamp.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Timestamp.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; + }; + + /** + * Returns this Timestamp modulo the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to mod. + * @return {Timestamp} this Timestamp modulo the given one. + */ + Timestamp.prototype.modulo = function (other) { + return this.subtract(this.div(other).multiply(other)); + }; + + /** + * The bitwise-NOT of this value. + * + * @method + * @return {Timestamp} the bitwise-NOT of this value. + */ + Timestamp.prototype.not = function () { + return Timestamp.fromBits(~this.low_, ~this.high_); + }; + + /** + * Returns the bitwise-AND of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to AND. + * @return {Timestamp} the bitwise-AND of this and the other. + */ + Timestamp.prototype.and = function (other) { + return Timestamp.fromBits(this.low_ & other.low_, this.high_ & other.high_); + }; + + /** + * Returns the bitwise-OR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to OR. + * @return {Timestamp} the bitwise-OR of this and the other. + */ + Timestamp.prototype.or = function (other) { + return Timestamp.fromBits(this.low_ | other.low_, this.high_ | other.high_); + }; + + /** + * Returns the bitwise-XOR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to XOR. + * @return {Timestamp} the bitwise-XOR of this and the other. + */ + Timestamp.prototype.xor = function (other) { + return Timestamp.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); + }; + + /** + * Returns this Timestamp with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the left by the given amount. + */ + Timestamp.prototype.shiftLeft = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Timestamp.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); + } else { + return Timestamp.fromBits(0, low << numBits - 32); + } + } + }; + + /** + * Returns this Timestamp with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount. + */ + Timestamp.prototype.shiftRight = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); + } else { + return Timestamp.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); + } + } + }; + + /** + * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ + Timestamp.prototype.shiftRightUnsigned = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); + } else if (numBits === 32) { + return Timestamp.fromBits(high, 0); + } else { + return Timestamp.fromBits(high >>> numBits - 32, 0); + } + } + }; + + /** + * Returns a Timestamp representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromInt = function (value) { + if (-128 <= value && value < 128) { + var cachedObj = Timestamp.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Timestamp(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Timestamp.INT_CACHE_[value] = obj; + } + return obj; + }; + + /** + * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromNumber = function (value) { + if (isNaN(value) || !isFinite(value)) { + return Timestamp.ZERO; + } else if (value <= -Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MIN_VALUE; + } else if (value + 1 >= Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MAX_VALUE; + } else if (value < 0) { + return Timestamp.fromNumber(-value).negate(); + } else { + return new Timestamp(value % Timestamp.TWO_PWR_32_DBL_ | 0, value / Timestamp.TWO_PWR_32_DBL_ | 0); + } + }; + + /** + * Returns a Timestamp representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromBits = function (lowBits, highBits) { + return new Timestamp(lowBits, highBits); + }; + + /** + * Returns a Timestamp representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Timestamp. + * @param {number} opt_radix the radix in which the text is written. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromString = function (str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Timestamp.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 8)); + + var result = Timestamp.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Timestamp.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Timestamp.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Timestamp.fromNumber(value)); + } + } + return result; + }; + + // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the + // from* methods on which they depend. + + /** + * A cache of the Timestamp representations of small integer values. + * @type {Object} + * @ignore + */ + Timestamp.INT_CACHE_ = {}; + + // NOTE: the compiler should inline these constant values below and then remove + // these variables, so there should be no runtime penalty for these. + + /** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_16_DBL_ = 1 << 16; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_24_DBL_ = 1 << 24; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_32_DBL_ = Timestamp.TWO_PWR_16_DBL_ * Timestamp.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_31_DBL_ = Timestamp.TWO_PWR_32_DBL_ / 2; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_48_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_64_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_32_DBL_; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_63_DBL_ = Timestamp.TWO_PWR_64_DBL_ / 2; + + /** @type {Timestamp} */ + Timestamp.ZERO = Timestamp.fromInt(0); + + /** @type {Timestamp} */ + Timestamp.ONE = Timestamp.fromInt(1); + + /** @type {Timestamp} */ + Timestamp.NEG_ONE = Timestamp.fromInt(-1); + + /** @type {Timestamp} */ + Timestamp.MAX_VALUE = Timestamp.fromBits(0xffffffff | 0, 0x7fffffff | 0); + + /** @type {Timestamp} */ + Timestamp.MIN_VALUE = Timestamp.fromBits(0, 0x80000000 | 0); + + /** + * @type {Timestamp} + * @ignore + */ + Timestamp.TWO_PWR_24_ = Timestamp.fromInt(1 << 24); + + /** + * Expose. + */ + module.exports = Timestamp; + module.exports.Timestamp = Timestamp; + +/***/ }), +/* 338 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer, process) {// Custom inspect property name / symbol. + var inspect = 'inspect'; + + var utils = __webpack_require__(344); + + /** + * Machine id. + * + * Create a random 3-byte value (i.e. unique for this + * process). Other drivers use a md5 of the machine id here, but + * that would mean an asyc call to gethostname, so we don't bother. + * @ignore + */ + var MACHINE_ID = parseInt(Math.random() * 0xffffff, 10); + + // Regular expression that checks for hex value + var checkForHexRegExp = new RegExp('^[0-9a-fA-F]{24}$'); + + // Check if buffer exists + try { + if (Buffer && Buffer.from) { + var hasBufferType = true; + inspect = __webpack_require__(345).inspect.custom || 'inspect'; + } + } catch (err) { + hasBufferType = false; + } + + /** + * Create a new ObjectID instance + * + * @class + * @param {(string|number)} id Can be a 24 byte hex string, 12 byte binary string or a Number. + * @property {number} generationTime The generation time of this ObjectId instance + * @return {ObjectID} instance of ObjectID. + */ + var ObjectID = function ObjectID(id) { + // Duck-typing to support ObjectId from different npm packages + if (id instanceof ObjectID) return id; + if (!(this instanceof ObjectID)) return new ObjectID(id); + + this._bsontype = 'ObjectID'; + + // The most common usecase (blank id, new objectId instance) + if (id == null || typeof id === 'number') { + // Generate a new id + this.id = this.generate(id); + // If we are caching the hex string + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); + // Return the object + return; + } + + // Check if the passed in id is valid + var valid = ObjectID.isValid(id); + + // Throw an error if it's not a valid setup + if (!valid && id != null) { + throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); + } else if (valid && typeof id === 'string' && id.length === 24 && hasBufferType) { + return new ObjectID(utils.toBuffer(id, 'hex')); + } else if (valid && typeof id === 'string' && id.length === 24) { + return ObjectID.createFromHexString(id); + } else if (id != null && id.length === 12) { + // assume 12 byte string + this.id = id; + } else if (id != null && id.toHexString) { + // Duck-typing to support ObjectId from different npm packages + return id; + } else { + throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); + } + + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); + }; + + // Allow usage of ObjectId as well as ObjectID + // var ObjectId = ObjectID; + + // Precomputed hex table enables speedy hex string conversion + var hexTable = []; + for (var i = 0; i < 256; i++) { + hexTable[i] = (i <= 15 ? '0' : '') + i.toString(16); + } + + /** + * Return the ObjectID id as a 24 byte hex string representation + * + * @method + * @return {string} return the 24 byte hex string representation. + */ + ObjectID.prototype.toHexString = function () { + if (ObjectID.cacheHexString && this.__id) return this.__id; + + var hexString = ''; + if (!this.id || !this.id.length) { + throw new Error('invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is [' + JSON.stringify(this.id) + ']'); + } + + if (this.id instanceof _Buffer) { + hexString = convertToHex(this.id); + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; + } + + for (var i = 0; i < this.id.length; i++) { + hexString += hexTable[this.id.charCodeAt(i)]; + } + + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; + }; + + /** + * Update the ObjectID index used in generating new ObjectID's on the driver + * + * @method + * @return {number} returns next index value. + * @ignore + */ + ObjectID.prototype.get_inc = function () { + return ObjectID.index = (ObjectID.index + 1) % 0xffffff; + }; + + /** + * Update the ObjectID index used in generating new ObjectID's on the driver + * + * @method + * @return {number} returns next index value. + * @ignore + */ + ObjectID.prototype.getInc = function () { + return this.get_inc(); + }; + + /** + * Generate a 12 byte id buffer used in ObjectID's + * + * @method + * @param {number} [time] optional parameter allowing to pass in a second based timestamp. + * @return {Buffer} return the 12 byte id buffer string. + */ + ObjectID.prototype.generate = function (time) { + if ('number' !== typeof time) { + time = ~~(Date.now() / 1000); + } + + // Use pid + var pid = (typeof process === 'undefined' || process.pid === 1 ? Math.floor(Math.random() * 100000) : process.pid) % 0xffff; + var inc = this.get_inc(); + // Buffer used + var buffer = utils.allocBuffer(12); + // Encode time + buffer[3] = time & 0xff; + buffer[2] = time >> 8 & 0xff; + buffer[1] = time >> 16 & 0xff; + buffer[0] = time >> 24 & 0xff; + // Encode machine + buffer[6] = MACHINE_ID & 0xff; + buffer[5] = MACHINE_ID >> 8 & 0xff; + buffer[4] = MACHINE_ID >> 16 & 0xff; + // Encode pid + buffer[8] = pid & 0xff; + buffer[7] = pid >> 8 & 0xff; + // Encode index + buffer[11] = inc & 0xff; + buffer[10] = inc >> 8 & 0xff; + buffer[9] = inc >> 16 & 0xff; + // Return the buffer + return buffer; + }; + + /** + * Converts the id into a 24 byte hex string for printing + * + * @param {String} format The Buffer toString format parameter. + * @return {String} return the 24 byte hex string representation. + * @ignore + */ + ObjectID.prototype.toString = function (format) { + // Is the id a buffer then use the buffer toString method to return the format + if (this.id && this.id.copy) { + return this.id.toString(typeof format === 'string' ? format : 'hex'); + } + + // if(this.buffer ) + return this.toHexString(); + }; + + /** + * Converts to a string representation of this Id. + * + * @return {String} return the 24 byte hex string representation. + * @ignore + */ + ObjectID.prototype[inspect] = ObjectID.prototype.toString; + + /** + * Converts to its JSON representation. + * + * @return {String} return the 24 byte hex string representation. + * @ignore + */ + ObjectID.prototype.toJSON = function () { + return this.toHexString(); + }; + + /** + * Compares the equality of this ObjectID with `otherID`. + * + * @method + * @param {object} otherID ObjectID instance to compare against. + * @return {boolean} the result of comparing two ObjectID's + */ + ObjectID.prototype.equals = function equals(otherId) { + // var id; + + if (otherId instanceof ObjectID) { + return this.toString() === otherId.toString(); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12 && this.id instanceof _Buffer) { + return otherId === this.id.toString('binary'); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 24) { + return otherId.toLowerCase() === this.toHexString(); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12) { + return otherId === this.id; + } else if (otherId != null && (otherId instanceof ObjectID || otherId.toHexString)) { + return otherId.toHexString() === this.toHexString(); + } else { + return false; + } + }; + + /** + * Returns the generation date (accurate up to the second) that this ID was generated. + * + * @method + * @return {date} the generation date + */ + ObjectID.prototype.getTimestamp = function () { + var timestamp = new Date(); + var time = this.id[3] | this.id[2] << 8 | this.id[1] << 16 | this.id[0] << 24; + timestamp.setTime(Math.floor(time) * 1000); + return timestamp; + }; + + /** + * @ignore + */ + ObjectID.index = ~~(Math.random() * 0xffffff); + + /** + * @ignore + */ + ObjectID.createPk = function createPk() { + return new ObjectID(); + }; + + /** + * Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID. + * + * @method + * @param {number} time an integer number representing a number of seconds. + * @return {ObjectID} return the created ObjectID + */ + ObjectID.createFromTime = function createFromTime(time) { + var buffer = utils.toBuffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + // Encode time into first 4 bytes + buffer[3] = time & 0xff; + buffer[2] = time >> 8 & 0xff; + buffer[1] = time >> 16 & 0xff; + buffer[0] = time >> 24 & 0xff; + // Return the new objectId + return new ObjectID(buffer); + }; + + // Lookup tables + //var encodeLookup = '0123456789abcdef'.split(''); + var decodeLookup = []; + i = 0; + while (i < 10) decodeLookup[0x30 + i] = i++; + while (i < 16) decodeLookup[0x41 - 10 + i] = decodeLookup[0x61 - 10 + i] = i++; + + var _Buffer = Buffer; + var convertToHex = function (bytes) { + return bytes.toString('hex'); + }; + + /** + * Creates an ObjectID from a hex string representation of an ObjectID. + * + * @method + * @param {string} hexString create a ObjectID from a passed in 24 byte hexstring. + * @return {ObjectID} return the created ObjectID + */ + ObjectID.createFromHexString = function createFromHexString(string) { + // Throw an error if it's not a valid setup + if (typeof string === 'undefined' || string != null && string.length !== 24) { + throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); + } + + // Use Buffer.from method if available + if (hasBufferType) return new ObjectID(utils.toBuffer(string, 'hex')); + + // Calculate lengths + var array = new _Buffer(12); + var n = 0; + var i = 0; + + while (i < 24) { + array[n++] = decodeLookup[string.charCodeAt(i++)] << 4 | decodeLookup[string.charCodeAt(i++)]; + } + + return new ObjectID(array); + }; + + /** + * Checks if a value is a valid bson ObjectId + * + * @method + * @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise. + */ + ObjectID.isValid = function isValid(id) { + if (id == null) return false; + + if (typeof id === 'number') { + return true; + } + + if (typeof id === 'string') { + return id.length === 12 || id.length === 24 && checkForHexRegExp.test(id); + } + + if (id instanceof ObjectID) { + return true; + } + + if (id instanceof _Buffer) { + return true; + } + + // Duck-Typing detection of ObjectId like objects + if (id.toHexString) { + return id.id.length === 12 || id.id.length === 24 && checkForHexRegExp.test(id.id); + } + + return false; + }; + + /** + * @ignore + */ + Object.defineProperty(ObjectID.prototype, 'generationTime', { + enumerable: true, + get: function () { + return this.id[3] | this.id[2] << 8 | this.id[1] << 16 | this.id[0] << 24; + }, + set: function (value) { + // Encode time into first 4 bytes + this.id[3] = value & 0xff; + this.id[2] = value >> 8 & 0xff; + this.id[1] = value >> 16 & 0xff; + this.id[0] = value >> 24 & 0xff; + } + }); + + /** + * Expose. + */ + module.exports = ObjectID; + module.exports.ObjectID = ObjectID; + module.exports.ObjectId = ObjectID; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer, __webpack_require__(343))) + +/***/ }), +/* 339 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + /* eslint-disable no-proto */ + + 'use strict' + + var base64 = __webpack_require__(340) + var ieee754 = __webpack_require__(341) + var isArray = __webpack_require__(342) + + exports.Buffer = Buffer + exports.SlowBuffer = SlowBuffer + exports.INSPECT_MAX_BYTES = 50 + + /** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ + Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + + /* + * Export kMaxLength after typed array support is determined. + */ + exports.kMaxLength = kMaxLength() + + function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } + } + + function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff + } + + function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that + } + + /** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + + function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) + } + + Buffer.poolSize = 8192 // not used by this implementation + + // TODO: Legacy, not needed anymore. Remove in next major version. + Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr + } + + function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) + } + + /** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ + Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } + } + + function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } + } + + function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) + } + + /** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ + Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) + } + + function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that + } + + /** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ + Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) + } + /** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ + Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) + } + + function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that + } + + function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that + } + + function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that + } + + function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') + } + + function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 + } + + function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) + } + + Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) + } + + Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 + } + + Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } + } + + Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer + } + + function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } + } + Buffer.byteLength = byteLength + + function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } + } + + // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect + // Buffer instances. + Buffer.prototype._isBuffer = true + + function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i + } + + Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this + } + + Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this + } + + Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this + } + + Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) + } + + Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 + } + + Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' + } + + Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 + } + + // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, + // OR the last index of `val` in `buffer` at offset <= `byteOffset`. + // + // Arguments: + // - buffer - a Buffer to search + // - val - a string, Buffer, or number + // - byteOffset - an index into `buffer`; will be clamped to an int32 + // - encoding - an optional encoding, relevant is val is a string + // - dir - true for indexOf, false for lastIndexOf + function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') + } + + function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 + } + + Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 + } + + Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) + } + + Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) + } + + function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i + } + + function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) + } + + function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) + } + + function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) + } + + function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) + } + + function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) + } + + Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } + } + + Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } + } + + function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } + } + + function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) + } + + // Based on http://stackoverflow.com/a/22747272/680742, the browser with + // the lowest limit is Chrome, with 0x10000 args. + // We go 1 magnitude less, for safety + var MAX_ARGUMENTS_LENGTH = 0x1000 + + function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res + } + + function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret + } + + function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret + } + + function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out + } + + function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res + } + + Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf + } + + /* + * Need to make sure that buffer isn't trying to write out of bounds. + */ + function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') + } + + Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val + } + + Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val + } + + Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] + } + + Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) + } + + Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] + } + + Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) + } + + Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) + } + + Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val + } + + Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val + } + + Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) + } + + Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val + } + + Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val + } + + Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) + } + + Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) + } + + Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) + } + + Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) + } + + Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) + } + + Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) + } + + function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') + } + + Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 + } + + function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } + } + + Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 + } + + Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 + } + + function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } + } + + Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 + } + + Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 + } + + Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 + } + + Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 + } + + Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 + } + + Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 + } + + Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 + } + + function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') + } + + function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 + } + + Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) + } + + Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) + } + + function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 + } + + Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) + } + + Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) + } + + // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) + Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len + } + + // Usage: + // buffer.fill(number[, offset[, end]]) + // buffer.fill(buffer[, offset[, end]]) + // buffer.fill(string[, offset[, end]][, encoding]) + Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this + } + + // HELPER FUNCTIONS + // ================ + + var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + + function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str + } + + function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') + } + + function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) + } + + function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes + } + + function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray + } + + function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray + } + + function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) + } + + function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i + } + + function isnan (val) { + return val !== val // eslint-disable-line no-self-compare + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 340 */ +/***/ (function(module, exports) { + + 'use strict' + + exports.byteLength = byteLength + exports.toByteArray = toByteArray + exports.fromByteArray = fromByteArray + + var lookup = [] + var revLookup = [] + var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i + } + + // Support decoding URL-safe base64 strings, as Node.js does. + // See: https://en.wikipedia.org/wiki/Base64#URL_applications + revLookup['-'.charCodeAt(0)] = 62 + revLookup['_'.charCodeAt(0)] = 63 + + function getLens (b64) { + var len = b64.length + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len + + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4) + + return [validLen, placeHoldersLen] + } + + // base64 is 4/3 + up to two characters of the original data + function byteLength (b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen + } + + function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen + } + + function toByteArray (b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) + + var curByte = 0 + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen + + var i + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 0xFF + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + return arr + } + + function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] + } + + function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') + } + + function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk( + uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) + )) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ) + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ) + } + + return parts.join('') + } + + +/***/ }), +/* 341 */ +/***/ (function(module, exports) { + + exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) + } + + exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = ((value * c) - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 + } + + +/***/ }), +/* 342 */ +/***/ (function(module, exports) { + + var toString = {}.toString; + + module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; + }; + + +/***/ }), +/* 343 */ +/***/ (function(module, exports) { + + // shim for using process in browser + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + (function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; + + process.listeners = function (name) { return [] } + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }), +/* 344 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + /** + * Normalizes our expected stringified form of a function across versions of node + * @param {Function} fn The function to stringify + */ + + function normalizedFunctionString(fn) { + return fn.toString().replace(/function *\(/, 'function ('); + } + + function newBuffer(item, encoding) { + return new Buffer(item, encoding); + } + + function allocBuffer() { + return Buffer.alloc.apply(Buffer, arguments); + } + + function toBuffer() { + return Buffer.from.apply(Buffer, arguments); + } + + module.exports = { + normalizedFunctionString: normalizedFunctionString, + allocBuffer: typeof Buffer.alloc === 'function' ? allocBuffer : newBuffer, + toBuffer: typeof Buffer.from === 'function' ? toBuffer : newBuffer + }; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) + +/***/ }), +/* 345 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. + + var formatRegExp = /%[sdj%]/g; + exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; + }; + + + // Mark that a method should not be used. + // Returns a modified function which warns once by default. + // If --no-deprecation is set, then it is a no-op. + exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(global.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } + + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; + }; + + + var debugs = {}; + var debugEnviron; + exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = process.pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; + }; + + + /** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ + /* legacy: obj, showHidden, depth, colors*/ + function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); + } + exports.inspect = inspect; + + + // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics + inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] + }; + + // Don't use 'blue' not visible on cmd.exe + inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' + }; + + + function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } + } + + + function stylizeNoColor(str, styleType) { + return str; + } + + + function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; + } + + + function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); + } + + + function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); + } + + + function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; + } + + + function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; + } + + + function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; + } + + + function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; + } + + + // NOTE: These type checking functions intentionally don't use `instanceof` + // because it is fragile and can be easily faked with `Object.create()`. + function isArray(ar) { + return Array.isArray(ar); + } + exports.isArray = isArray; + + function isBoolean(arg) { + return typeof arg === 'boolean'; + } + exports.isBoolean = isBoolean; + + function isNull(arg) { + return arg === null; + } + exports.isNull = isNull; + + function isNullOrUndefined(arg) { + return arg == null; + } + exports.isNullOrUndefined = isNullOrUndefined; + + function isNumber(arg) { + return typeof arg === 'number'; + } + exports.isNumber = isNumber; + + function isString(arg) { + return typeof arg === 'string'; + } + exports.isString = isString; + + function isSymbol(arg) { + return typeof arg === 'symbol'; + } + exports.isSymbol = isSymbol; + + function isUndefined(arg) { + return arg === void 0; + } + exports.isUndefined = isUndefined; + + function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; + } + exports.isRegExp = isRegExp; + + function isObject(arg) { + return typeof arg === 'object' && arg !== null; + } + exports.isObject = isObject; + + function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; + } + exports.isDate = isDate; + + function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); + } + exports.isError = isError; + + function isFunction(arg) { + return typeof arg === 'function'; + } + exports.isFunction = isFunction; + + function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; + } + exports.isPrimitive = isPrimitive; + + exports.isBuffer = __webpack_require__(346); + + function objectToString(o) { + return Object.prototype.toString.call(o); + } + + + function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); + } + + + var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + + // 26 Feb 16:19:34 + function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); + } + + + // log is just a thin wrapper to console.log that prepends a timestamp + exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); + }; + + + /** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ + exports.inherits = __webpack_require__(347); + + exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; + }; + + function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(343))) + +/***/ }), +/* 346 */ +/***/ (function(module, exports) { + + module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; + } + +/***/ }), +/* 347 */ +/***/ (function(module, exports) { + + if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; + } else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } + + +/***/ }), +/* 348 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON RegExp type. + * + * @class + * @return {BSONRegExp} A MinKey instance + */ + function BSONRegExp(pattern, options) { + if (!(this instanceof BSONRegExp)) return new BSONRegExp(); + + // Execute + this._bsontype = 'BSONRegExp'; + this.pattern = pattern || ''; + this.options = options || ''; + + // Validate options + for (var i = 0; i < this.options.length; i++) { + if (!(this.options[i] === 'i' || this.options[i] === 'm' || this.options[i] === 'x' || this.options[i] === 'l' || this.options[i] === 's' || this.options[i] === 'u')) { + throw new Error('the regular expression options [' + this.options[i] + '] is not supported'); + } + } + } + + module.exports = BSONRegExp; + module.exports.BSONRegExp = BSONRegExp; + +/***/ }), +/* 349 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {// Custom inspect property name / symbol. + var inspect = Buffer ? __webpack_require__(345).inspect.custom || 'inspect' : 'inspect'; + + /** + * A class representation of the BSON Symbol type. + * + * @class + * @deprecated + * @param {string} value the string representing the symbol. + * @return {Symbol} + */ + function Symbol(value) { + if (!(this instanceof Symbol)) return new Symbol(value); + this._bsontype = 'Symbol'; + this.value = value; + } + + /** + * Access the wrapped string value. + * + * @method + * @return {String} returns the wrapped string. + */ + Symbol.prototype.valueOf = function () { + return this.value; + }; + + /** + * @ignore + */ + Symbol.prototype.toString = function () { + return this.value; + }; + + /** + * @ignore + */ + Symbol.prototype[inspect] = function () { + return this.value; + }; + + /** + * @ignore + */ + Symbol.prototype.toJSON = function () { + return this.value; + }; + + module.exports = Symbol; + module.exports.Symbol = Symbol; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) + +/***/ }), +/* 350 */ +/***/ (function(module, exports) { + + /** + * A class representation of a BSON Int32 type. + * + * @class + * @param {number} value the number we want to represent as an int32. + * @return {Int32} + */ + var Int32 = function (value) { + if (!(this instanceof Int32)) return new Int32(value); + + this._bsontype = 'Int32'; + this.value = value; + }; + + /** + * Access the number value. + * + * @method + * @return {number} returns the wrapped int32 number. + */ + Int32.prototype.valueOf = function () { + return this.value; + }; + + /** + * @ignore + */ + Int32.prototype.toJSON = function () { + return this.value; + }; + + module.exports = Int32; + module.exports.Int32 = Int32; + +/***/ }), +/* 351 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON Code type. + * + * @class + * @param {(string|function)} code a string or function. + * @param {Object} [scope] an optional scope for the function. + * @return {Code} + */ + var Code = function Code(code, scope) { + if (!(this instanceof Code)) return new Code(code, scope); + this._bsontype = 'Code'; + this.code = code; + this.scope = scope; + }; + + /** + * @ignore + */ + Code.prototype.toJSON = function () { + return { scope: this.scope, code: this.code }; + }; + + module.exports = Code; + module.exports.Code = Code; + +/***/ }), +/* 352 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var Long = __webpack_require__(335); + + var PARSE_STRING_REGEXP = /^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/; + var PARSE_INF_REGEXP = /^(\+|-)?(Infinity|inf)$/i; + var PARSE_NAN_REGEXP = /^(\+|-)?NaN$/i; + + var EXPONENT_MAX = 6111; + var EXPONENT_MIN = -6176; + var EXPONENT_BIAS = 6176; + var MAX_DIGITS = 34; + + // Nan value bits as 32 bit values (due to lack of longs) + var NAN_BUFFER = [0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); + // Infinity value bits 32 bit values (due to lack of longs) + var INF_NEGATIVE_BUFFER = [0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); + var INF_POSITIVE_BUFFER = [0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); + + var EXPONENT_REGEX = /^([-+])?(\d+)?$/; + + var utils = __webpack_require__(344); + + // Detect if the value is a digit + var isDigit = function (value) { + return !isNaN(parseInt(value, 10)); + }; + + // Divide two uint128 values + var divideu128 = function (value) { + var DIVISOR = Long.fromNumber(1000 * 1000 * 1000); + var _rem = Long.fromNumber(0); + var i = 0; + + if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) { + return { quotient: value, rem: _rem }; + } + + for (i = 0; i <= 3; i++) { + // Adjust remainder to match value of next dividend + _rem = _rem.shiftLeft(32); + // Add the divided to _rem + _rem = _rem.add(new Long(value.parts[i], 0)); + value.parts[i] = _rem.div(DIVISOR).low_; + _rem = _rem.modulo(DIVISOR); + } + + return { quotient: value, rem: _rem }; + }; + + // Multiply two Long values and return the 128 bit value + var multiply64x2 = function (left, right) { + if (!left && !right) { + return { high: Long.fromNumber(0), low: Long.fromNumber(0) }; + } + + var leftHigh = left.shiftRightUnsigned(32); + var leftLow = new Long(left.getLowBits(), 0); + var rightHigh = right.shiftRightUnsigned(32); + var rightLow = new Long(right.getLowBits(), 0); + + var productHigh = leftHigh.multiply(rightHigh); + var productMid = leftHigh.multiply(rightLow); + var productMid2 = leftLow.multiply(rightHigh); + var productLow = leftLow.multiply(rightLow); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productMid = new Long(productMid.getLowBits(), 0).add(productMid2).add(productLow.shiftRightUnsigned(32)); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0)); + + // Return the 128 bit result + return { high: productHigh, low: productLow }; + }; + + var lessThan = function (left, right) { + // Make values unsigned + var uhleft = left.high_ >>> 0; + var uhright = right.high_ >>> 0; + + // Compare high bits first + if (uhleft < uhright) { + return true; + } else if (uhleft === uhright) { + var ulleft = left.low_ >>> 0; + var ulright = right.low_ >>> 0; + if (ulleft < ulright) return true; + } + + return false; + }; + + // var longtoHex = function(value) { + // var buffer = utils.allocBuffer(8); + // var index = 0; + // // Encode the low 64 bits of the decimal + // // Encode low bits + // buffer[index++] = value.low_ & 0xff; + // buffer[index++] = (value.low_ >> 8) & 0xff; + // buffer[index++] = (value.low_ >> 16) & 0xff; + // buffer[index++] = (value.low_ >> 24) & 0xff; + // // Encode high bits + // buffer[index++] = value.high_ & 0xff; + // buffer[index++] = (value.high_ >> 8) & 0xff; + // buffer[index++] = (value.high_ >> 16) & 0xff; + // buffer[index++] = (value.high_ >> 24) & 0xff; + // return buffer.reverse().toString('hex'); + // }; + + // var int32toHex = function(value) { + // var buffer = utils.allocBuffer(4); + // var index = 0; + // // Encode the low 64 bits of the decimal + // // Encode low bits + // buffer[index++] = value & 0xff; + // buffer[index++] = (value >> 8) & 0xff; + // buffer[index++] = (value >> 16) & 0xff; + // buffer[index++] = (value >> 24) & 0xff; + // return buffer.reverse().toString('hex'); + // }; + + /** + * A class representation of the BSON Decimal128 type. + * + * @class + * @param {Buffer} bytes a buffer containing the raw Decimal128 bytes. + * @return {Double} + */ + var Decimal128 = function (bytes) { + this._bsontype = 'Decimal128'; + this.bytes = bytes; + }; + + /** + * Create a Decimal128 instance from a string representation + * + * @method + * @param {string} string a numeric string representation. + * @return {Decimal128} returns a Decimal128 instance. + */ + Decimal128.fromString = function (string) { + // Parse state tracking + var isNegative = false; + var sawRadix = false; + var foundNonZero = false; + + // Total number of significant digits (no leading or trailing zero) + var significantDigits = 0; + // Total number of significand digits read + var nDigitsRead = 0; + // Total number of digits (no leading zeros) + var nDigits = 0; + // The number of the digits after radix + var radixPosition = 0; + // The index of the first non-zero in *str* + var firstNonZero = 0; + + // Digits Array + var digits = [0]; + // The number of digits in digits + var nDigitsStored = 0; + // Insertion pointer for digits + var digitsInsert = 0; + // The index of the first non-zero digit + var firstDigit = 0; + // The index of the last digit + var lastDigit = 0; + + // Exponent + var exponent = 0; + // loop index over array + var i = 0; + // The high 17 digits of the significand + var significandHigh = [0, 0]; + // The low 17 digits of the significand + var significandLow = [0, 0]; + // The biased exponent + var biasedExponent = 0; + + // Read index + var index = 0; + + // Trim the string + string = string.trim(); + + // Naively prevent against REDOS attacks. + // TODO: implementing a custom parsing for this, or refactoring the regex would yield + // further gains. + if (string.length >= 7000) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Results + var stringMatch = string.match(PARSE_STRING_REGEXP); + var infMatch = string.match(PARSE_INF_REGEXP); + var nanMatch = string.match(PARSE_NAN_REGEXP); + + // Validate the string + if (!stringMatch && !infMatch && !nanMatch || string.length === 0) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Check if we have an illegal exponent format + if (stringMatch && stringMatch[4] && stringMatch[2] === undefined) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Get the negative or positive sign + if (string[index] === '+' || string[index] === '-') { + isNegative = string[index++] === '-'; + } + + // Check if user passed Infinity or NaN + if (!isDigit(string[index]) && string[index] !== '.') { + if (string[index] === 'i' || string[index] === 'I') { + return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } else if (string[index] === 'N') { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + } + + // Read all the digits + while (isDigit(string[index]) || string[index] === '.') { + if (string[index] === '.') { + if (sawRadix) { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + + sawRadix = true; + index = index + 1; + continue; + } + + if (nDigitsStored < 34) { + if (string[index] !== '0' || foundNonZero) { + if (!foundNonZero) { + firstNonZero = nDigitsRead; + } + + foundNonZero = true; + + // Only store 34 digits + digits[digitsInsert++] = parseInt(string[index], 10); + nDigitsStored = nDigitsStored + 1; + } + } + + if (foundNonZero) { + nDigits = nDigits + 1; + } + + if (sawRadix) { + radixPosition = radixPosition + 1; + } + + nDigitsRead = nDigitsRead + 1; + index = index + 1; + } + + if (sawRadix && !nDigitsRead) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Read exponent if exists + if (string[index] === 'e' || string[index] === 'E') { + // Read exponent digits + var match = string.substr(++index).match(EXPONENT_REGEX); + + // No digits read + if (!match || !match[2]) { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + + // Get exponent + exponent = parseInt(match[0], 10); + + // Adjust the index + index = index + match[0].length; + } + + // Return not a number + if (string[index]) { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + + // Done reading input + // Find first non-zero digit in digits + firstDigit = 0; + + if (!nDigitsStored) { + firstDigit = 0; + lastDigit = 0; + digits[0] = 0; + nDigits = 1; + nDigitsStored = 1; + significantDigits = 0; + } else { + lastDigit = nDigitsStored - 1; + significantDigits = nDigits; + + if (exponent !== 0 && significantDigits !== 1) { + while (string[firstNonZero + significantDigits - 1] === '0') { + significantDigits = significantDigits - 1; + } + } + } + + // Normalization of exponent + // Correct exponent based on radix position, and shift significand as needed + // to represent user input + + // Overflow prevention + if (exponent <= radixPosition && radixPosition - exponent > 1 << 14) { + exponent = EXPONENT_MIN; + } else { + exponent = exponent - radixPosition; + } + + // Attempt to normalize the exponent + while (exponent > EXPONENT_MAX) { + // Shift exponent to significand and decrease + lastDigit = lastDigit + 1; + + if (lastDigit - firstDigit > MAX_DIGITS) { + // Check if we have a zero then just hard clamp, otherwise fail + var digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + + exponent = exponent - 1; + } + + while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) { + // Shift last digit + if (lastDigit === 0) { + exponent = EXPONENT_MIN; + significantDigits = 0; + break; + } + + if (nDigitsStored < nDigits) { + // adjust to match digits not stored + nDigits = nDigits - 1; + } else { + // adjust to round + lastDigit = lastDigit - 1; + } + + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + } else { + // Check if we have a zero then just hard clamp, otherwise fail + digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + } + + // Round + // We've normalized the exponent, but might still need to round. + if (lastDigit - firstDigit + 1 < significantDigits && string[significantDigits] !== '0') { + var endOfString = nDigitsRead; + + // If we have seen a radix point, 'string' is 1 longer than we have + // documented with ndigits_read, so inc the position of the first nonzero + // digit and the position that digits are read to. + if (sawRadix && exponent === EXPONENT_MIN) { + firstNonZero = firstNonZero + 1; + endOfString = endOfString + 1; + } + + var roundDigit = parseInt(string[firstNonZero + lastDigit + 1], 10); + var roundBit = 0; + + if (roundDigit >= 5) { + roundBit = 1; + + if (roundDigit === 5) { + roundBit = digits[lastDigit] % 2 === 1; + + for (i = firstNonZero + lastDigit + 2; i < endOfString; i++) { + if (parseInt(string[i], 10)) { + roundBit = 1; + break; + } + } + } + } + + if (roundBit) { + var dIdx = lastDigit; + + for (; dIdx >= 0; dIdx--) { + if (++digits[dIdx] > 9) { + digits[dIdx] = 0; + + // overflowed most significant digit + if (dIdx === 0) { + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + digits[dIdx] = 1; + } else { + return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + } else { + break; + } + } + } + } + + // Encode significand + // The high 17 digits of the significand + significandHigh = Long.fromNumber(0); + // The low 17 digits of the significand + significandLow = Long.fromNumber(0); + + // read a zero + if (significantDigits === 0) { + significandHigh = Long.fromNumber(0); + significandLow = Long.fromNumber(0); + } else if (lastDigit - firstDigit < 17) { + dIdx = firstDigit; + significandLow = Long.fromNumber(digits[dIdx++]); + significandHigh = new Long(0, 0); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } else { + dIdx = firstDigit; + significandHigh = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit - 17; dIdx++) { + significandHigh = significandHigh.multiply(Long.fromNumber(10)); + significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx])); + } + + significandLow = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } + + var significand = multiply64x2(significandHigh, Long.fromString('100000000000000000')); + + significand.low = significand.low.add(significandLow); + + if (lessThan(significand.low, significandLow)) { + significand.high = significand.high.add(Long.fromNumber(1)); + } + + // Biased exponent + biasedExponent = exponent + EXPONENT_BIAS; + var dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) }; + + // Encode combination, exponent, and significand. + if (significand.high.shiftRightUnsigned(49).and(Long.fromNumber(1)).equals(Long.fromNumber)) { + // Encode '11' into bits 1 to 3 + dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61)); + dec.high = dec.high.or(Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47))); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff))); + } else { + dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49)); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff))); + } + + dec.low = significand.low; + + // Encode sign + if (isNegative) { + dec.high = dec.high.or(Long.fromString('9223372036854775808')); + } + + // Encode into a buffer + var buffer = utils.allocBuffer(16); + index = 0; + + // Encode the low 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.low.low_ & 0xff; + buffer[index++] = dec.low.low_ >> 8 & 0xff; + buffer[index++] = dec.low.low_ >> 16 & 0xff; + buffer[index++] = dec.low.low_ >> 24 & 0xff; + // Encode high bits + buffer[index++] = dec.low.high_ & 0xff; + buffer[index++] = dec.low.high_ >> 8 & 0xff; + buffer[index++] = dec.low.high_ >> 16 & 0xff; + buffer[index++] = dec.low.high_ >> 24 & 0xff; + + // Encode the high 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.high.low_ & 0xff; + buffer[index++] = dec.high.low_ >> 8 & 0xff; + buffer[index++] = dec.high.low_ >> 16 & 0xff; + buffer[index++] = dec.high.low_ >> 24 & 0xff; + // Encode high bits + buffer[index++] = dec.high.high_ & 0xff; + buffer[index++] = dec.high.high_ >> 8 & 0xff; + buffer[index++] = dec.high.high_ >> 16 & 0xff; + buffer[index++] = dec.high.high_ >> 24 & 0xff; + + // Return the new Decimal128 + return new Decimal128(buffer); + }; + + // Extract least significant 5 bits + var COMBINATION_MASK = 0x1f; + // Extract least significant 14 bits + var EXPONENT_MASK = 0x3fff; + // Value of combination field for Inf + var COMBINATION_INFINITY = 30; + // Value of combination field for NaN + var COMBINATION_NAN = 31; + // Value of combination field for NaN + // var COMBINATION_SNAN = 32; + // decimal128 exponent bias + EXPONENT_BIAS = 6176; + + /** + * Create a string representation of the raw Decimal128 value + * + * @method + * @return {string} returns a Decimal128 string representation. + */ + Decimal128.prototype.toString = function () { + // Note: bits in this routine are referred to starting at 0, + // from the sign bit, towards the coefficient. + + // bits 0 - 31 + var high; + // bits 32 - 63 + var midh; + // bits 64 - 95 + var midl; + // bits 96 - 127 + var low; + // bits 1 - 5 + var combination; + // decoded biased exponent (14 bits) + var biased_exponent; + // the number of significand digits + var significand_digits = 0; + // the base-10 digits in the significand + var significand = new Array(36); + for (var i = 0; i < significand.length; i++) significand[i] = 0; + // read pointer into significand + var index = 0; + + // unbiased exponent + var exponent; + // the exponent if scientific notation is used + var scientific_exponent; + + // true if the number is zero + var is_zero = false; + + // the most signifcant significand bits (50-46) + var significand_msb; + // temporary storage for significand decoding + var significand128 = { parts: new Array(4) }; + // indexing variables + i; + var j, k; + + // Output string + var string = []; + + // Unpack index + index = 0; + + // Buffer reference + var buffer = this.bytes; + + // Unpack the low 64bits into a long + low = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + midl = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Unpack the high 64bits into a long + midh = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + high = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Unpack index + index = 0; + + // Create the state of the decimal + var dec = { + low: new Long(low, midl), + high: new Long(midh, high) + }; + + if (dec.high.lessThan(Long.ZERO)) { + string.push('-'); + } + + // Decode combination field and exponent + combination = high >> 26 & COMBINATION_MASK; + + if (combination >> 3 === 3) { + // Check for 'special' values + if (combination === COMBINATION_INFINITY) { + return string.join('') + 'Infinity'; + } else if (combination === COMBINATION_NAN) { + return 'NaN'; + } else { + biased_exponent = high >> 15 & EXPONENT_MASK; + significand_msb = 0x08 + (high >> 14 & 0x01); + } + } else { + significand_msb = high >> 14 & 0x07; + biased_exponent = high >> 17 & EXPONENT_MASK; + } + + exponent = biased_exponent - EXPONENT_BIAS; + + // Create string of significand digits + + // Convert the 114-bit binary number represented by + // (significand_high, significand_low) to at most 34 decimal + // digits through modulo and division. + significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14); + significand128.parts[1] = midh; + significand128.parts[2] = midl; + significand128.parts[3] = low; + + if (significand128.parts[0] === 0 && significand128.parts[1] === 0 && significand128.parts[2] === 0 && significand128.parts[3] === 0) { + is_zero = true; + } else { + for (k = 3; k >= 0; k--) { + var least_digits = 0; + // Peform the divide + var result = divideu128(significand128); + significand128 = result.quotient; + least_digits = result.rem.low_; + + // We now have the 9 least significant digits (in base 2). + // Convert and output to string. + if (!least_digits) continue; + + for (j = 8; j >= 0; j--) { + // significand[k * 9 + j] = Math.round(least_digits % 10); + significand[k * 9 + j] = least_digits % 10; + // least_digits = Math.round(least_digits / 10); + least_digits = Math.floor(least_digits / 10); + } + } + } + + // Output format options: + // Scientific - [-]d.dddE(+/-)dd or [-]dE(+/-)dd + // Regular - ddd.ddd + + if (is_zero) { + significand_digits = 1; + significand[index] = 0; + } else { + significand_digits = 36; + i = 0; + + while (!significand[index]) { + i++; + significand_digits = significand_digits - 1; + index = index + 1; + } + } + + scientific_exponent = significand_digits - 1 + exponent; + + // The scientific exponent checks are dictated by the string conversion + // specification and are somewhat arbitrary cutoffs. + // + // We must check exponent > 0, because if this is the case, the number + // has trailing zeros. However, we *cannot* output these trailing zeros, + // because doing so would change the precision of the value, and would + // change stored data if the string converted number is round tripped. + + if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) { + // Scientific format + string.push(significand[index++]); + significand_digits = significand_digits - 1; + + if (significand_digits) { + string.push('.'); + } + + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + + // Exponent + string.push('E'); + if (scientific_exponent > 0) { + string.push('+' + scientific_exponent); + } else { + string.push(scientific_exponent); + } + } else { + // Regular format with no decimal place + if (exponent >= 0) { + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + } else { + var radix_position = significand_digits + exponent; + + // non-zero digits before radix + if (radix_position > 0) { + for (i = 0; i < radix_position; i++) { + string.push(significand[index++]); + } + } else { + string.push('0'); + } + + string.push('.'); + // add leading zeros after radix + while (radix_position++ < 0) { + string.push('0'); + } + + for (i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) { + string.push(significand[index++]); + } + } + } + + return string.join(''); + }; + + Decimal128.prototype.toJSON = function () { + return { $numberDecimal: this.toString() }; + }; + + module.exports = Decimal128; + module.exports.Decimal128 = Decimal128; + +/***/ }), +/* 353 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON MinKey type. + * + * @class + * @return {MinKey} A MinKey instance + */ + function MinKey() { + if (!(this instanceof MinKey)) return new MinKey(); + + this._bsontype = 'MinKey'; + } + + module.exports = MinKey; + module.exports.MinKey = MinKey; + +/***/ }), +/* 354 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON MaxKey type. + * + * @class + * @return {MaxKey} A MaxKey instance + */ + function MaxKey() { + if (!(this instanceof MaxKey)) return new MaxKey(); + + this._bsontype = 'MaxKey'; + } + + module.exports = MaxKey; + module.exports.MaxKey = MaxKey; + +/***/ }), +/* 355 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON DBRef type. + * + * @class + * @param {string} namespace the collection name. + * @param {ObjectID} oid the reference ObjectID. + * @param {string} [db] optional db name, if omitted the reference is local to the current db. + * @return {DBRef} + */ + function DBRef(namespace, oid, db) { + if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db); + + this._bsontype = 'DBRef'; + this.namespace = namespace; + this.oid = oid; + this.db = db; + } + + /** + * @ignore + * @api private + */ + DBRef.prototype.toJSON = function () { + return { + $ref: this.namespace, + $id: this.oid, + $db: this.db == null ? '' : this.db + }; + }; + + module.exports = DBRef; + module.exports.DBRef = DBRef; + +/***/ }), +/* 356 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {/** + * Module dependencies. + * @ignore + */ + + // Test if we're in Node via presence of "global" not absence of "window" + // to support hybrid environments like Electron + if (typeof global !== 'undefined') { + var Buffer = __webpack_require__(339).Buffer; // TODO just use global Buffer + } + + var utils = __webpack_require__(344); + + /** + * A class representation of the BSON Binary type. + * + * Sub types + * - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type. + * - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type. + * - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type. + * - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type. + * - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type. + * - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type. + * + * @class + * @param {Buffer} buffer a buffer object containing the binary data. + * @param {Number} [subType] the option binary type. + * @return {Binary} + */ + function Binary(buffer, subType) { + if (!(this instanceof Binary)) return new Binary(buffer, subType); + + if (buffer != null && !(typeof buffer === 'string') && !Buffer.isBuffer(buffer) && !(buffer instanceof Uint8Array) && !Array.isArray(buffer)) { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + + this._bsontype = 'Binary'; + + if (buffer instanceof Number) { + this.sub_type = buffer; + this.position = 0; + } else { + this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType; + this.position = 0; + } + + if (buffer != null && !(buffer instanceof Number)) { + // Only accept Buffer, Uint8Array or Arrays + if (typeof buffer === 'string') { + // Different ways of writing the length of the string for the different types + if (typeof Buffer !== 'undefined') { + this.buffer = utils.toBuffer(buffer); + } else if (typeof Uint8Array !== 'undefined' || Object.prototype.toString.call(buffer) === '[object Array]') { + this.buffer = writeStringToArray(buffer); + } else { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + } else { + this.buffer = buffer; + } + this.position = buffer.length; + } else { + if (typeof Buffer !== 'undefined') { + this.buffer = utils.allocBuffer(Binary.BUFFER_SIZE); + } else if (typeof Uint8Array !== 'undefined') { + this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE)); + } else { + this.buffer = new Array(Binary.BUFFER_SIZE); + } + // Set position to start of buffer + this.position = 0; + } + } + + /** + * Updates this binary with byte_value. + * + * @method + * @param {string} byte_value a single byte we wish to write. + */ + Binary.prototype.put = function put(byte_value) { + // If it's a string and a has more than one character throw an error + if (byte_value['length'] != null && typeof byte_value !== 'number' && byte_value.length !== 1) throw new Error('only accepts single character String, Uint8Array or Array'); + if (typeof byte_value !== 'number' && byte_value < 0 || byte_value > 255) throw new Error('only accepts number in a valid unsigned byte range 0-255'); + + // Decode the byte value once + var decoded_byte = null; + if (typeof byte_value === 'string') { + decoded_byte = byte_value.charCodeAt(0); + } else if (byte_value['length'] != null) { + decoded_byte = byte_value[0]; + } else { + decoded_byte = byte_value; + } + + if (this.buffer.length > this.position) { + this.buffer[this.position++] = decoded_byte; + } else { + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + // Create additional overflow buffer + var buffer = utils.allocBuffer(Binary.BUFFER_SIZE + this.buffer.length); + // Combine the two buffers together + this.buffer.copy(buffer, 0, 0, this.buffer.length); + this.buffer = buffer; + this.buffer[this.position++] = decoded_byte; + } else { + buffer = null; + // Create a new buffer (typed or normal array) + if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length)); + } else { + buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length); + } + + // We need to copy all the content to the new array + for (var i = 0; i < this.buffer.length; i++) { + buffer[i] = this.buffer[i]; + } + + // Reassign the buffer + this.buffer = buffer; + // Write the byte + this.buffer[this.position++] = decoded_byte; + } + } + }; + + /** + * Writes a buffer or string to the binary. + * + * @method + * @param {(Buffer|string)} string a string or buffer to be written to the Binary BSON object. + * @param {number} offset specify the binary of where to write the content. + * @return {null} + */ + Binary.prototype.write = function write(string, offset) { + offset = typeof offset === 'number' ? offset : this.position; + + // If the buffer is to small let's extend the buffer + if (this.buffer.length < offset + string.length) { + var buffer = null; + // If we are in node.js + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + buffer = utils.allocBuffer(this.buffer.length + string.length); + this.buffer.copy(buffer, 0, 0, this.buffer.length); + } else if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + // Create a new buffer + buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length)); + // Copy the content + for (var i = 0; i < this.position; i++) { + buffer[i] = this.buffer[i]; + } + } + + // Assign the new buffer + this.buffer = buffer; + } + + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) { + string.copy(this.buffer, offset, 0, string.length); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length + } else if (typeof Buffer !== 'undefined' && typeof string === 'string' && Buffer.isBuffer(this.buffer)) { + this.buffer.write(string, offset, 'binary'); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length; + } else if (Object.prototype.toString.call(string) === '[object Uint8Array]' || Object.prototype.toString.call(string) === '[object Array]' && typeof string !== 'string') { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string[i]; + } + + this.position = offset > this.position ? offset : this.position; + } else if (typeof string === 'string') { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string.charCodeAt(i); + } + + this.position = offset > this.position ? offset : this.position; + } + }; + + /** + * Reads **length** bytes starting at **position**. + * + * @method + * @param {number} position read from the given position in the Binary. + * @param {number} length the number of bytes to read. + * @return {Buffer} + */ + Binary.prototype.read = function read(position, length) { + length = length && length > 0 ? length : this.position; + + // Let's return the data based on the type we have + if (this.buffer['slice']) { + return this.buffer.slice(position, position + length); + } else { + // Create a buffer to keep the result + var buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(length)) : new Array(length); + for (var i = 0; i < length; i++) { + buffer[i] = this.buffer[position++]; + } + } + // Return the buffer + return buffer; + }; + + /** + * Returns the value of this binary as a string. + * + * @method + * @return {string} + */ + Binary.prototype.value = function value(asRaw) { + asRaw = asRaw == null ? false : asRaw; + + // Optimize to serialize for the situation where the data == size of buffer + if (asRaw && typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer) && this.buffer.length === this.position) return this.buffer; + + // If it's a node.js buffer object + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + return asRaw ? this.buffer.slice(0, this.position) : this.buffer.toString('binary', 0, this.position); + } else { + if (asRaw) { + // we support the slice command use it + if (this.buffer['slice'] != null) { + return this.buffer.slice(0, this.position); + } else { + // Create a new buffer to copy content to + var newBuffer = Object.prototype.toString.call(this.buffer) === '[object Uint8Array]' ? new Uint8Array(new ArrayBuffer(this.position)) : new Array(this.position); + // Copy content + for (var i = 0; i < this.position; i++) { + newBuffer[i] = this.buffer[i]; + } + // Return the buffer + return newBuffer; + } + } else { + return convertArraytoUtf8BinaryString(this.buffer, 0, this.position); + } + } + }; + + /** + * Length. + * + * @method + * @return {number} the length of the binary. + */ + Binary.prototype.length = function length() { + return this.position; + }; + + /** + * @ignore + */ + Binary.prototype.toJSON = function () { + return this.buffer != null ? this.buffer.toString('base64') : ''; + }; + + /** + * @ignore + */ + Binary.prototype.toString = function (format) { + return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : ''; + }; + + /** + * Binary default subtype + * @ignore + */ + var BSON_BINARY_SUBTYPE_DEFAULT = 0; + + /** + * @ignore + */ + var writeStringToArray = function (data) { + // Create a buffer + var buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(data.length)) : new Array(data.length); + // Write the content to the buffer + for (var i = 0; i < data.length; i++) { + buffer[i] = data.charCodeAt(i); + } + // Write the string to the buffer + return buffer; + }; + + /** + * Convert Array ot Uint8Array to Binary String + * + * @ignore + */ + var convertArraytoUtf8BinaryString = function (byteArray, startIndex, endIndex) { + var result = ''; + for (var i = startIndex; i < endIndex; i++) { + result = result + String.fromCharCode(byteArray[i]); + } + return result; + }; + + Binary.BUFFER_SIZE = 256; + + /** + * Default BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_DEFAULT = 0; + /** + * Function BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_FUNCTION = 1; + /** + * Byte Array BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_BYTE_ARRAY = 2; + /** + * OLD UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_UUID_OLD = 3; + /** + * UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_UUID = 4; + /** + * MD5 BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_MD5 = 5; + /** + * User BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_USER_DEFINED = 128; + + /** + * Expose. + */ + module.exports = Binary; + module.exports.Binary = Binary; + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 357 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var Long = __webpack_require__(335).Long, + Double = __webpack_require__(336).Double, + Timestamp = __webpack_require__(337).Timestamp, + ObjectID = __webpack_require__(338).ObjectID, + Symbol = __webpack_require__(349).Symbol, + Code = __webpack_require__(351).Code, + MinKey = __webpack_require__(353).MinKey, + MaxKey = __webpack_require__(354).MaxKey, + Decimal128 = __webpack_require__(352), + Int32 = __webpack_require__(350), + DBRef = __webpack_require__(355).DBRef, + BSONRegExp = __webpack_require__(348).BSONRegExp, + Binary = __webpack_require__(356).Binary; + + var utils = __webpack_require__(344); + + var deserialize = function (buffer, options, isArray) { + options = options == null ? {} : options; + var index = options && options.index ? options.index : 0; + // Read the document size + var size = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + + // Ensure buffer is valid size + if (size < 5 || buffer.length < size || size + index > buffer.length) { + throw new Error('corrupt bson message'); + } + + // Illegal end value + if (buffer[index + size - 1] !== 0) { + throw new Error("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00"); + } + + // Start deserializtion + return deserializeObject(buffer, index, options, isArray); + }; + + var deserializeObject = function (buffer, index, options, isArray) { + var evalFunctions = options['evalFunctions'] == null ? false : options['evalFunctions']; + var cacheFunctions = options['cacheFunctions'] == null ? false : options['cacheFunctions']; + var cacheFunctionsCrc32 = options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32']; + + if (!cacheFunctionsCrc32) var crc32 = null; + + var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw']; + + // Return raw bson buffer instead of parsing it + var raw = options['raw'] == null ? false : options['raw']; + + // Return BSONRegExp objects instead of native regular expressions + var bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false; + + // Controls the promotion of values vs wrapper classes + var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; + var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; + var promoteValues = options['promoteValues'] == null ? true : options['promoteValues']; + + // Set the start index + var startIndex = index; + + // Validate that we have at least 4 bytes of buffer + if (buffer.length < 5) throw new Error('corrupt bson message < 5 bytes long'); + + // Read the document size + var size = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Ensure buffer is valid size + if (size < 5 || size > buffer.length) throw new Error('corrupt bson message'); + + // Create holding object + var object = isArray ? [] : {}; + // Used for arrays to skip having to perform utf8 decoding + var arrayIndex = 0; + + var done = false; + + // While we have more left data left keep parsing + // while (buffer[index + 1] !== 0) { + while (!done) { + // Read the type + var elementType = buffer[index++]; + // If we get a zero it's the last byte, exit + if (elementType === 0) break; + + // Get the start search index + var i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + var name = isArray ? arrayIndex++ : buffer.toString('utf8', index, i); + + index = i + 1; + + if (elementType === BSON.BSON_DATA_STRING) { + var stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + object[name] = buffer.toString('utf8', index, index + stringSize - 1); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_OID) { + var oid = utils.allocBuffer(12); + buffer.copy(oid, 0, index, index + 12); + object[name] = new ObjectID(oid); + index = index + 12; + } else if (elementType === BSON.BSON_DATA_INT && promoteValues === false) { + object[name] = new Int32(buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24); + } else if (elementType === BSON.BSON_DATA_INT) { + object[name] = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + } else if (elementType === BSON.BSON_DATA_NUMBER && promoteValues === false) { + object[name] = new Double(buffer.readDoubleLE(index)); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_NUMBER) { + object[name] = buffer.readDoubleLE(index); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_DATE) { + var lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + var highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + object[name] = new Date(new Long(lowBits, highBits).toNumber()); + } else if (elementType === BSON.BSON_DATA_BOOLEAN) { + if (buffer[index] !== 0 && buffer[index] !== 1) throw new Error('illegal boolean type value'); + object[name] = buffer[index++] === 1; + } else if (elementType === BSON.BSON_DATA_OBJECT) { + var _index = index; + var objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + if (objectSize <= 0 || objectSize > buffer.length - index) throw new Error('bad embedded document length in bson'); + + // We have a raw value + if (raw) { + object[name] = buffer.slice(index, index + objectSize); + } else { + object[name] = deserializeObject(buffer, _index, options, false); + } + + index = index + objectSize; + } else if (elementType === BSON.BSON_DATA_ARRAY) { + _index = index; + objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + var arrayOptions = options; + + // Stop index + var stopIndex = index + objectSize; + + // All elements of array to be returned as raw bson + if (fieldsAsRaw && fieldsAsRaw[name]) { + arrayOptions = {}; + for (var n in options) arrayOptions[n] = options[n]; + arrayOptions['raw'] = true; + } + + object[name] = deserializeObject(buffer, _index, arrayOptions, true); + index = index + objectSize; + + if (buffer[index - 1] !== 0) throw new Error('invalid array terminator byte'); + if (index !== stopIndex) throw new Error('corrupted array bson'); + } else if (elementType === BSON.BSON_DATA_UNDEFINED) { + object[name] = undefined; + } else if (elementType === BSON.BSON_DATA_NULL) { + object[name] = null; + } else if (elementType === BSON.BSON_DATA_LONG) { + // Unpack the low and high bits + lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + var long = new Long(lowBits, highBits); + // Promote the long if possible + if (promoteLongs && promoteValues === true) { + object[name] = long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG) ? long.toNumber() : long; + } else { + object[name] = long; + } + } else if (elementType === BSON.BSON_DATA_DECIMAL128) { + // Buffer to contain the decimal bytes + var bytes = utils.allocBuffer(16); + // Copy the next 16 bytes into the bytes buffer + buffer.copy(bytes, 0, index, index + 16); + // Update index + index = index + 16; + // Assign the new Decimal128 value + var decimal128 = new Decimal128(bytes); + // If we have an alternative mapper use that + object[name] = decimal128.toObject ? decimal128.toObject() : decimal128; + } else if (elementType === BSON.BSON_DATA_BINARY) { + var binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + var totalBinarySize = binarySize; + var subType = buffer[index++]; + + // Did we have a negative binary size, throw + if (binarySize < 0) throw new Error('Negative binary type element size found'); + + // Is the length longer than the document + if (binarySize > buffer.length) throw new Error('Binary type size larger than document size'); + + // Decode as raw Buffer object if options specifies it + if (buffer['slice'] != null) { + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (binarySize < 0) throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + if (promoteBuffers && promoteValues) { + object[name] = buffer.slice(index, index + binarySize); + } else { + object[name] = new Binary(buffer.slice(index, index + binarySize), subType); + } + } else { + var _buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(binarySize)) : new Array(binarySize); + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (binarySize < 0) throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + // Copy the data + for (i = 0; i < binarySize; i++) { + _buffer[i] = buffer[index + i]; + } + + if (promoteBuffers && promoteValues) { + object[name] = _buffer; + } else { + object[name] = new Binary(_buffer, subType); + } + } + + // Update the index + index = index + binarySize; + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === false) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var source = buffer.toString('utf8', index, i); + // Create the regexp + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // For each option add the corresponding one for javascript + var optionsArray = new Array(regExpOptions.length); + + // Parse options + for (i = 0; i < regExpOptions.length; i++) { + switch (regExpOptions[i]) { + case 'm': + optionsArray[i] = 'm'; + break; + case 's': + optionsArray[i] = 'g'; + break; + case 'i': + optionsArray[i] = 'i'; + break; + } + } + + object[name] = new RegExp(source, optionsArray.join('')); + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === true) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + source = buffer.toString('utf8', index, i); + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // Set the object + object[name] = new BSONRegExp(source, regExpOptions); + } else if (elementType === BSON.BSON_DATA_SYMBOL) { + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + object[name] = new Symbol(buffer.toString('utf8', index, index + stringSize - 1)); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_TIMESTAMP) { + lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + object[name] = new Timestamp(lowBits, highBits); + } else if (elementType === BSON.BSON_DATA_MIN_KEY) { + object[name] = new MinKey(); + } else if (elementType === BSON.BSON_DATA_MAX_KEY) { + object[name] = new MaxKey(); + } else if (elementType === BSON.BSON_DATA_CODE) { + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + var functionString = buffer.toString('utf8', index, index + stringSize - 1); + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + var hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + } else { + object[name] = new Code(functionString); + } + + // Update parse index position + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_CODE_W_SCOPE) { + var totalSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Element cannot be shorter than totalSize + stringSize + documentSize + terminator + if (totalSize < 4 + 4 + 4 + 1) { + throw new Error('code_w_scope total size shorter minimum expected length'); + } + + // Get the code string size + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + // Check if we have a valid string + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + + // Javascript function + functionString = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + // Parse the element + _index = index; + // Decode the size of the object document + objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + // Decode the scope object + var scopeObject = deserializeObject(buffer, _index, options, false); + // Adjust the index + index = index + objectSize; + + // Check if field length is to short + if (totalSize < 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to short, truncating scope'); + } + + // Check if totalSize field is to long + if (totalSize > 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to long, clips outer document'); + } + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + + object[name].scope = scopeObject; + } else { + object[name] = new Code(functionString, scopeObject); + } + } else if (elementType === BSON.BSON_DATA_DBPOINTER) { + // Get the code string size + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + // Check if we have a valid string + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + // Namespace + var namespace = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + + // Read the oid + var oidBuffer = utils.allocBuffer(12); + buffer.copy(oidBuffer, 0, index, index + 12); + oid = new ObjectID(oidBuffer); + + // Update the index + index = index + 12; + + // Split the namespace + var parts = namespace.split('.'); + var db = parts.shift(); + var collection = parts.join('.'); + // Upgrade to DBRef type + object[name] = new DBRef(collection, oid, db); + } else { + throw new Error('Detected unknown BSON type ' + elementType.toString(16) + ' for fieldname "' + name + '", are you using the latest BSON parser'); + } + } + + // Check if the deserialization was against a valid array/object + if (size !== index - startIndex) { + if (isArray) throw new Error('corrupt array bson'); + throw new Error('corrupt object bson'); + } + + // Check if we have a db ref object + if (object['$id'] != null) object = new DBRef(object['$ref'], object['$id'], object['$db']); + return object; + }; + + /** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ + var isolateEvalWithHash = function (functionCache, hash, functionString, object) { + // Contains the value we are going to set + var value = null; + + // Check for cache hit, eval if missing and return cached function + if (functionCache[hash] == null) { + eval('value = ' + functionString); + functionCache[hash] = value; + } + // Set the object + return functionCache[hash].bind(object); + }; + + /** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ + var isolateEval = function (functionString) { + // Contains the value we are going to set + var value = null; + // Eval the function + eval('value = ' + functionString); + return value; + }; + + var BSON = {}; + + /** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ + var functionCache = BSON.functionCache = {}; + + /** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ + BSON.BSON_DATA_NUMBER = 1; + /** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ + BSON.BSON_DATA_STRING = 2; + /** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ + BSON.BSON_DATA_OBJECT = 3; + /** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ + BSON.BSON_DATA_ARRAY = 4; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ + BSON.BSON_DATA_BINARY = 5; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_UNDEFINED + **/ + BSON.BSON_DATA_UNDEFINED = 6; + /** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ + BSON.BSON_DATA_OID = 7; + /** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ + BSON.BSON_DATA_BOOLEAN = 8; + /** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ + BSON.BSON_DATA_DATE = 9; + /** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ + BSON.BSON_DATA_NULL = 10; + /** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ + BSON.BSON_DATA_REGEXP = 11; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_DBPOINTER + **/ + BSON.BSON_DATA_DBPOINTER = 12; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ + BSON.BSON_DATA_CODE = 13; + /** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ + BSON.BSON_DATA_SYMBOL = 14; + /** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ + BSON.BSON_DATA_CODE_W_SCOPE = 15; + /** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ + BSON.BSON_DATA_INT = 16; + /** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ + BSON.BSON_DATA_TIMESTAMP = 17; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ + BSON.BSON_DATA_LONG = 18; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ + BSON.BSON_DATA_DECIMAL128 = 19; + /** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ + BSON.BSON_DATA_MIN_KEY = 0xff; + /** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ + BSON.BSON_DATA_MAX_KEY = 0x7f; + + /** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ + BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; + /** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ + BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; + /** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ + BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; + /** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ + BSON.BSON_BINARY_SUBTYPE_UUID = 3; + /** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ + BSON.BSON_BINARY_SUBTYPE_MD5 = 4; + /** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ + BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Internal long versions + var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. + var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + + module.exports = deserialize; + +/***/ }), +/* 358 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + var writeIEEE754 = __webpack_require__(359).writeIEEE754, + Long = __webpack_require__(335).Long, + Map = __webpack_require__(334), + Binary = __webpack_require__(356).Binary; + + var normalizedFunctionString = __webpack_require__(344).normalizedFunctionString; + + // try { + // var _Buffer = Uint8Array; + // } catch (e) { + // _Buffer = Buffer; + // } + + var regexp = /\x00/; // eslint-disable-line no-control-regex + var ignoreKeys = ['$db', '$ref', '$id', '$clusterTime']; + + // To ensure that 0.4 of node works correctly + var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; + }; + + var isRegExp = function isRegExp(d) { + return Object.prototype.toString.call(d) === '[object RegExp]'; + }; + + var serializeString = function (buffer, key, value, index, isArray) { + // Encode String type + buffer[index++] = BSON.BSON_DATA_STRING; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes + 1; + buffer[index - 1] = 0; + // Write the string + var size = buffer.write(value, index + 4, 'utf8'); + // Write the size of the string to buffer + buffer[index + 3] = size + 1 >> 24 & 0xff; + buffer[index + 2] = size + 1 >> 16 & 0xff; + buffer[index + 1] = size + 1 >> 8 & 0xff; + buffer[index] = size + 1 & 0xff; + // Update index + index = index + 4 + size; + // Write zero + buffer[index++] = 0; + return index; + }; + + var serializeNumber = function (buffer, key, value, index, isArray) { + // We have an integer value + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // If the value fits in 32 bits encode as int, if it fits in a double + // encode it as a double, otherwise long + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = value >> 8 & 0xff; + buffer[index++] = value >> 16 & 0xff; + buffer[index++] = value >> 24 & 0xff; + } else if (value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } else { + // Set long type + buffer[index++] = BSON.BSON_DATA_LONG; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var longVal = Long.fromNumber(value); + var lowBits = longVal.getLowBits(); + var highBits = longVal.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = lowBits >> 8 & 0xff; + buffer[index++] = lowBits >> 16 & 0xff; + buffer[index++] = lowBits >> 24 & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = highBits >> 8 & 0xff; + buffer[index++] = highBits >> 16 & 0xff; + buffer[index++] = highBits >> 24 & 0xff; + } + } else { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } + + return index; + }; + + var serializeNull = function (buffer, key, value, index, isArray) { + // Set long type + buffer[index++] = BSON.BSON_DATA_NULL; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; + }; + + var serializeBoolean = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BOOLEAN; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Encode the boolean value + buffer[index++] = value ? 1 : 0; + return index; + }; + + var serializeDate = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_DATE; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the date + var dateInMilis = Long.fromNumber(value.getTime()); + var lowBits = dateInMilis.getLowBits(); + var highBits = dateInMilis.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = lowBits >> 8 & 0xff; + buffer[index++] = lowBits >> 16 & 0xff; + buffer[index++] = lowBits >> 24 & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = highBits >> 8 & 0xff; + buffer[index++] = highBits >> 16 & 0xff; + buffer[index++] = highBits >> 24 & 0xff; + return index; + }; + + var serializeRegExp = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + if (value.source && value.source.match(regexp) != null) { + throw Error('value ' + value.source + ' must not contain null bytes'); + } + // Adjust the index + index = index + buffer.write(value.source, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the parameters + if (value.global) buffer[index++] = 0x73; // s + if (value.ignoreCase) buffer[index++] = 0x69; // i + if (value.multiline) buffer[index++] = 0x6d; // m + // Add ending zero + buffer[index++] = 0x00; + return index; + }; + + var serializeBSONRegExp = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Check the pattern for 0 bytes + if (value.pattern.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('pattern ' + value.pattern + ' must not contain null bytes'); + } + + // Adjust the index + index = index + buffer.write(value.pattern, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the options + index = index + buffer.write(value.options.split('').sort().join(''), index, 'utf8'); + // Add ending zero + buffer[index++] = 0x00; + return index; + }; + + var serializeMinMax = function (buffer, key, value, index, isArray) { + // Write the type of either min or max key + if (value === null) { + buffer[index++] = BSON.BSON_DATA_NULL; + } else if (value._bsontype === 'MinKey') { + buffer[index++] = BSON.BSON_DATA_MIN_KEY; + } else { + buffer[index++] = BSON.BSON_DATA_MAX_KEY; + } + + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; + }; + + var serializeObjectId = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OID; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the objectId into the shared buffer + if (typeof value.id === 'string') { + buffer.write(value.id, index, 'binary'); + } else if (value.id && value.id.copy) { + value.id.copy(buffer, index, 0, 12); + } else { + throw new Error('object [' + JSON.stringify(value) + '] is not a valid ObjectId'); + } + + // Ajust index + return index + 12; + }; + + var serializeBuffer = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Get size of the buffer (current write point) + var size = value.length; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = size >> 8 & 0xff; + buffer[index++] = size >> 16 & 0xff; + buffer[index++] = size >> 24 & 0xff; + // Write the default subtype + buffer[index++] = BSON.BSON_BINARY_SUBTYPE_DEFAULT; + // Copy the content form the binary field to the buffer + value.copy(buffer, index, 0, size); + // Adjust the index + index = index + size; + return index; + }; + + var serializeObject = function (buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray, path) { + for (var i = 0; i < path.length; i++) { + if (path[i] === value) throw new Error('cyclic dependency detected'); + } + + // Push value to stack + path.push(value); + // Write the type + buffer[index++] = Array.isArray(value) ? BSON.BSON_DATA_ARRAY : BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var endIndex = serializeInto(buffer, value, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined, path); + // Pop stack + path.pop(); + // Write size + return endIndex; + }; + + var serializeDecimal128 = function (buffer, key, value, index, isArray) { + buffer[index++] = BSON.BSON_DATA_DECIMAL128; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the data from the value + value.bytes.copy(buffer, index, 0, 16); + return index + 16; + }; + + var serializeLong = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = value._bsontype === 'Long' ? BSON.BSON_DATA_LONG : BSON.BSON_DATA_TIMESTAMP; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the date + var lowBits = value.getLowBits(); + var highBits = value.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = lowBits >> 8 & 0xff; + buffer[index++] = lowBits >> 16 & 0xff; + buffer[index++] = lowBits >> 24 & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = highBits >> 8 & 0xff; + buffer[index++] = highBits >> 16 & 0xff; + buffer[index++] = highBits >> 24 & 0xff; + return index; + }; + + var serializeInt32 = function (buffer, key, value, index, isArray) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = value >> 8 & 0xff; + buffer[index++] = value >> 16 & 0xff; + buffer[index++] = value >> 24 & 0xff; + return index; + }; + + var serializeDouble = function (buffer, key, value, index, isArray) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + return index; + }; + + var serializeFunction = function (buffer, key, value, index, checkKeys, depth, isArray) { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + var functionString = normalizedFunctionString(value); + + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = size >> 8 & 0xff; + buffer[index + 2] = size >> 16 & 0xff; + buffer[index + 3] = size >> 24 & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + return index; + }; + + var serializeCode = function (buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray) { + if (value.scope && typeof value.scope === 'object') { + // Write the type + buffer[index++] = BSON.BSON_DATA_CODE_W_SCOPE; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Starting index + var startIndex = index; + + // Serialize the function + // Get the function string + var functionString = typeof value.code === 'string' ? value.code : value.code.toString(); + // Index adjustment + index = index + 4; + // Write string into buffer + var codeSize = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = codeSize & 0xff; + buffer[index + 1] = codeSize >> 8 & 0xff; + buffer[index + 2] = codeSize >> 16 & 0xff; + buffer[index + 3] = codeSize >> 24 & 0xff; + // Write end 0 + buffer[index + 4 + codeSize - 1] = 0; + // Write the + index = index + codeSize + 4; + + // + // Serialize the scope value + var endIndex = serializeInto(buffer, value.scope, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined); + index = endIndex - 1; + + // Writ the total + var totalSize = endIndex - startIndex; + + // Write the total size of the object + buffer[startIndex++] = totalSize & 0xff; + buffer[startIndex++] = totalSize >> 8 & 0xff; + buffer[startIndex++] = totalSize >> 16 & 0xff; + buffer[startIndex++] = totalSize >> 24 & 0xff; + // Write trailing zero + buffer[index++] = 0; + } else { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + functionString = value.code.toString(); + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = size >> 8 & 0xff; + buffer[index + 2] = size >> 16 & 0xff; + buffer[index + 3] = size >> 24 & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + } + + return index; + }; + + var serializeBinary = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Extract the buffer + var data = value.value(true); + // Calculate size + var size = value.position; + // Add the deprecated 02 type 4 bytes of size to total + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) size = size + 4; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = size >> 8 & 0xff; + buffer[index++] = size >> 16 & 0xff; + buffer[index++] = size >> 24 & 0xff; + // Write the subtype to the buffer + buffer[index++] = value.sub_type; + + // If we have binary type 2 the 4 first bytes are the size + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + size = size - 4; + buffer[index++] = size & 0xff; + buffer[index++] = size >> 8 & 0xff; + buffer[index++] = size >> 16 & 0xff; + buffer[index++] = size >> 24 & 0xff; + } + + // Write the data to the object + data.copy(buffer, index, 0, value.position); + // Adjust the index + index = index + value.position; + return index; + }; + + var serializeSymbol = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_SYMBOL; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the string + var size = buffer.write(value.value, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = size >> 8 & 0xff; + buffer[index + 2] = size >> 16 & 0xff; + buffer[index + 3] = size >> 24 & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0x00; + return index; + }; + + var serializeDBRef = function (buffer, key, value, index, depth, serializeFunctions, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + var startIndex = index; + var endIndex; + + // Serialize object + if (null != value.db) { + endIndex = serializeInto(buffer, { + $ref: value.namespace, + $id: value.oid, + $db: value.db + }, false, index, depth + 1, serializeFunctions); + } else { + endIndex = serializeInto(buffer, { + $ref: value.namespace, + $id: value.oid + }, false, index, depth + 1, serializeFunctions); + } + + // Calculate object size + var size = endIndex - startIndex; + // Write the size + buffer[startIndex++] = size & 0xff; + buffer[startIndex++] = size >> 8 & 0xff; + buffer[startIndex++] = size >> 16 & 0xff; + buffer[startIndex++] = size >> 24 & 0xff; + // Set index + return endIndex; + }; + + var serializeInto = function serializeInto(buffer, object, checkKeys, startingIndex, depth, serializeFunctions, ignoreUndefined, path) { + startingIndex = startingIndex || 0; + path = path || []; + + // Push the object to the path + path.push(object); + + // Start place to serialize into + var index = startingIndex + 4; + // var self = this; + + // Special case isArray + if (Array.isArray(object)) { + // Get object keys + for (var i = 0; i < object.length; i++) { + var key = '' + i; + var value = object[i]; + + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + var type = typeof value; + if (type === 'string') { + index = serializeString(buffer, key, value, index, true); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index, true); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index, true); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index, true); + } else if (value === undefined) { + index = serializeNull(buffer, key, value, index, true); + } else if (value === null) { + index = serializeNull(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + index = serializeObjectId(buffer, key, value, index, true); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index, true); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index, true); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true, path); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index, true); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions, true); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, true); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index, true); + } else if (typeof value['_bsontype'] !== 'undefined') { + throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); + } + } + } else if (object instanceof Map) { + var iterator = object.entries(); + var done = false; + + while (!done) { + // Unpack the next entry + var entry = iterator.next(); + done = entry.done; + // Are we done, then skip and terminate + if (done) continue; + + // Get the entry values + key = entry.value[0]; + value = entry.value[1]; + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + // } else if (value === undefined && ignoreUndefined === true) { + } else if (value === null || value === undefined && ignoreUndefined === false) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, false, path); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } else if (typeof value['_bsontype'] !== 'undefined') { + throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); + } + } + } else { + // Did we provide a custom serialization method + if (object.toBSON) { + if (typeof object.toBSON !== 'function') throw new Error('toBSON is not a function'); + object = object.toBSON(); + if (object != null && typeof object !== 'object') throw new Error('toBSON function did not return an object'); + } + + // Iterate over all the keys + for (key in object) { + value = object[key]; + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + } else if (value === undefined) { + if (ignoreUndefined === false) index = serializeNull(buffer, key, value, index); + } else if (value === null) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, false, path); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } else if (typeof value['_bsontype'] !== 'undefined') { + throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); + } + } + } + + // Remove the path + path.pop(); + + // Final padding byte for object + buffer[index++] = 0x00; + + // Final size + var size = index - startingIndex; + // Write the size of the object + buffer[startingIndex++] = size & 0xff; + buffer[startingIndex++] = size >> 8 & 0xff; + buffer[startingIndex++] = size >> 16 & 0xff; + buffer[startingIndex++] = size >> 24 & 0xff; + return index; + }; + + var BSON = {}; + + /** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ + // var functionCache = (BSON.functionCache = {}); + + /** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ + BSON.BSON_DATA_NUMBER = 1; + /** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ + BSON.BSON_DATA_STRING = 2; + /** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ + BSON.BSON_DATA_OBJECT = 3; + /** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ + BSON.BSON_DATA_ARRAY = 4; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ + BSON.BSON_DATA_BINARY = 5; + /** + * ObjectID BSON Type, deprecated + * + * @classconstant BSON_DATA_UNDEFINED + **/ + BSON.BSON_DATA_UNDEFINED = 6; + /** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ + BSON.BSON_DATA_OID = 7; + /** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ + BSON.BSON_DATA_BOOLEAN = 8; + /** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ + BSON.BSON_DATA_DATE = 9; + /** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ + BSON.BSON_DATA_NULL = 10; + /** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ + BSON.BSON_DATA_REGEXP = 11; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ + BSON.BSON_DATA_CODE = 13; + /** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ + BSON.BSON_DATA_SYMBOL = 14; + /** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ + BSON.BSON_DATA_CODE_W_SCOPE = 15; + /** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ + BSON.BSON_DATA_INT = 16; + /** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ + BSON.BSON_DATA_TIMESTAMP = 17; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ + BSON.BSON_DATA_LONG = 18; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ + BSON.BSON_DATA_DECIMAL128 = 19; + /** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ + BSON.BSON_DATA_MIN_KEY = 0xff; + /** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ + BSON.BSON_DATA_MAX_KEY = 0x7f; + /** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ + BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; + /** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ + BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; + /** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ + BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; + /** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ + BSON.BSON_BINARY_SUBTYPE_UUID = 3; + /** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ + BSON.BSON_BINARY_SUBTYPE_MD5 = 4; + /** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ + BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Internal long versions + // var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. + // var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + + module.exports = serializeInto; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) + +/***/ }), +/* 359 */ +/***/ (function(module, exports) { + + // Copyright (c) 2008, Fair Oaks Labs, Inc. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // + // * Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. + // + // * Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // + // * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors + // may be used to endorse or promote products derived from this software + // without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + // POSSIBILITY OF SUCH DAMAGE. + // + // + // Modifications to writeIEEE754 to support negative zeroes made by Brian White + + var readIEEE754 = function (buffer, offset, endian, mLen, nBytes) { + var e, + m, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + nBits = -7, + i = bBE ? 0 : nBytes - 1, + d = bBE ? 1 : -1, + s = buffer[offset + i]; + + i += d; + + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); + + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + + var writeIEEE754 = function (buffer, value, offset, endian, mLen, nBytes) { + var e, + m, + c, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + i = bBE ? nBytes - 1 : 0, + d = bBE ? -1 : 1, + s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); + + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); + + buffer[offset + i - d] |= s * 128; + }; + + exports.readIEEE754 = readIEEE754; + exports.writeIEEE754 = writeIEEE754; + +/***/ }), +/* 360 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + var Long = __webpack_require__(335).Long, + Double = __webpack_require__(336).Double, + Timestamp = __webpack_require__(337).Timestamp, + ObjectID = __webpack_require__(338).ObjectID, + Symbol = __webpack_require__(349).Symbol, + BSONRegExp = __webpack_require__(348).BSONRegExp, + Code = __webpack_require__(351).Code, + Decimal128 = __webpack_require__(352), + MinKey = __webpack_require__(353).MinKey, + MaxKey = __webpack_require__(354).MaxKey, + DBRef = __webpack_require__(355).DBRef, + Binary = __webpack_require__(356).Binary; + + var normalizedFunctionString = __webpack_require__(344).normalizedFunctionString; + + // To ensure that 0.4 of node works correctly + var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; + }; + + var calculateObjectSize = function calculateObjectSize(object, serializeFunctions, ignoreUndefined) { + var totalLength = 4 + 1; + + if (Array.isArray(object)) { + for (var i = 0; i < object.length; i++) { + totalLength += calculateElement(i.toString(), object[i], serializeFunctions, true, ignoreUndefined); + } + } else { + // If we have toBSON defined, override the current object + if (object.toBSON) { + object = object.toBSON(); + } + + // Calculate size + for (var key in object) { + totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined); + } + } + + return totalLength; + }; + + /** + * @ignore + * @api private + */ + function calculateElement(name, value, serializeFunctions, isArray, ignoreUndefined) { + // If we have toBSON defined, override the current object + if (value && value.toBSON) { + value = value.toBSON(); + } + + switch (typeof value) { + case 'string': + return 1 + Buffer.byteLength(name, 'utf8') + 1 + 4 + Buffer.byteLength(value, 'utf8') + 1; + case 'number': + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // 32 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (4 + 1); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + } else { + // 64 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + case 'undefined': + if (isArray || !ignoreUndefined) return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + return 0; + case 'boolean': + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 1); + case 'object': + if (value == null || value instanceof MinKey || value instanceof MaxKey || value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + } else if (value instanceof ObjectID || value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (12 + 1); + } else if (value instanceof Date || isDate(value)) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 4 + 1) + value.length; + } else if (value instanceof Long || value instanceof Double || value instanceof Timestamp || value['_bsontype'] === 'Long' || value['_bsontype'] === 'Double' || value['_bsontype'] === 'Timestamp') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (value instanceof Decimal128 || value['_bsontype'] === 'Decimal128') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (16 + 1); + } else if (value instanceof Code || value['_bsontype'] === 'Code') { + // Calculate size depending on the availability of a scope + if (value.scope != null && Object.keys(value.scope).length > 0) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + 4 + Buffer.byteLength(value.code.toString(), 'utf8') + 1 + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + Buffer.byteLength(value.code.toString(), 'utf8') + 1; + } + } else if (value instanceof Binary || value['_bsontype'] === 'Binary') { + // Check what kind of subtype we have + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1 + 4); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1); + } + } else if (value instanceof Symbol || value['_bsontype'] === 'Symbol') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + Buffer.byteLength(value.value, 'utf8') + 4 + 1 + 1; + } else if (value instanceof DBRef || value['_bsontype'] === 'DBRef') { + // Set up correct object for serialization + var ordered_values = { + $ref: value.namespace, + $id: value.oid + }; + + // Add db reference if it exists + if (null != value.db) { + ordered_values['$db'] = value.db; + } + + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + calculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined); + } else if (value instanceof RegExp || Object.prototype.toString.call(value) === '[object RegExp]') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.source, 'utf8') + 1 + (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1; + } else if (value instanceof BSONRegExp || value['_bsontype'] === 'BSONRegExp') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.pattern, 'utf8') + 1 + Buffer.byteLength(value.options, 'utf8') + 1; + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + calculateObjectSize(value, serializeFunctions, ignoreUndefined) + 1; + } + case 'function': + // WTF for 0.4.X where typeof /someregexp/ === 'function' + if (value instanceof RegExp || Object.prototype.toString.call(value) === '[object RegExp]' || String.call(value) === '[object RegExp]') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.source, 'utf8') + 1 + (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1; + } else { + if (serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + 4 + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + 1 + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined); + } else if (serializeFunctions) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + 1; + } + } + } + + return 0; + } + + var BSON = {}; + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + module.exports = calculateObjectSize; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/justdanceonline-main/node_modules/bson/browser_build/package.json b/justdanceonline-main/node_modules/bson/browser_build/package.json new file mode 100644 index 0000000000000000000000000000000000000000..980db7f95c43fbcd346a6655ab5197c66d5d0bad --- /dev/null +++ b/justdanceonline-main/node_modules/bson/browser_build/package.json @@ -0,0 +1,8 @@ +{ "name" : "bson" +, "description" : "A bson parser for node.js and the browser" +, "main": "../" +, "directories" : { "lib" : "../lib/bson" } +, "engines" : { "node" : ">=0.6.0" } +, "licenses" : [ { "type" : "Apache License, Version 2.0" + , "url" : "http://www.apache.org/licenses/LICENSE-2.0" } ] +} diff --git a/justdanceonline-main/node_modules/bson/index.js b/justdanceonline-main/node_modules/bson/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6502552dbe7f46f96779db3910f0d7f07fce15b0 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/index.js @@ -0,0 +1,46 @@ +var BSON = require('./lib/bson/bson'), + Binary = require('./lib/bson/binary'), + Code = require('./lib/bson/code'), + DBRef = require('./lib/bson/db_ref'), + Decimal128 = require('./lib/bson/decimal128'), + Double = require('./lib/bson/double'), + Int32 = require('./lib/bson/int_32'), + Long = require('./lib/bson/long'), + Map = require('./lib/bson/map'), + MaxKey = require('./lib/bson/max_key'), + MinKey = require('./lib/bson/min_key'), + ObjectId = require('./lib/bson/objectid'), + BSONRegExp = require('./lib/bson/regexp'), + Symbol = require('./lib/bson/symbol'), + Timestamp = require('./lib/bson/timestamp'); + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Add BSON types to function creation +BSON.Binary = Binary; +BSON.Code = Code; +BSON.DBRef = DBRef; +BSON.Decimal128 = Decimal128; +BSON.Double = Double; +BSON.Int32 = Int32; +BSON.Long = Long; +BSON.Map = Map; +BSON.MaxKey = MaxKey; +BSON.MinKey = MinKey; +BSON.ObjectId = ObjectId; +BSON.ObjectID = ObjectId; +BSON.BSONRegExp = BSONRegExp; +BSON.Symbol = Symbol; +BSON.Timestamp = Timestamp; + +// Return the BSON +module.exports = BSON; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/binary.js b/justdanceonline-main/node_modules/bson/lib/bson/binary.js new file mode 100644 index 0000000000000000000000000000000000000000..6d190bcaa7e934d91cf94fd36f03687e59ea7210 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/binary.js @@ -0,0 +1,384 @@ +/** + * Module dependencies. + * @ignore + */ + +// Test if we're in Node via presence of "global" not absence of "window" +// to support hybrid environments like Electron +if (typeof global !== 'undefined') { + var Buffer = require('buffer').Buffer; // TODO just use global Buffer +} + +var utils = require('./parser/utils'); + +/** + * A class representation of the BSON Binary type. + * + * Sub types + * - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type. + * - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type. + * - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type. + * - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type. + * - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type. + * - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type. + * + * @class + * @param {Buffer} buffer a buffer object containing the binary data. + * @param {Number} [subType] the option binary type. + * @return {Binary} + */ +function Binary(buffer, subType) { + if (!(this instanceof Binary)) return new Binary(buffer, subType); + + if ( + buffer != null && + !(typeof buffer === 'string') && + !Buffer.isBuffer(buffer) && + !(buffer instanceof Uint8Array) && + !Array.isArray(buffer) + ) { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + + this._bsontype = 'Binary'; + + if (buffer instanceof Number) { + this.sub_type = buffer; + this.position = 0; + } else { + this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType; + this.position = 0; + } + + if (buffer != null && !(buffer instanceof Number)) { + // Only accept Buffer, Uint8Array or Arrays + if (typeof buffer === 'string') { + // Different ways of writing the length of the string for the different types + if (typeof Buffer !== 'undefined') { + this.buffer = utils.toBuffer(buffer); + } else if ( + typeof Uint8Array !== 'undefined' || + Object.prototype.toString.call(buffer) === '[object Array]' + ) { + this.buffer = writeStringToArray(buffer); + } else { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + } else { + this.buffer = buffer; + } + this.position = buffer.length; + } else { + if (typeof Buffer !== 'undefined') { + this.buffer = utils.allocBuffer(Binary.BUFFER_SIZE); + } else if (typeof Uint8Array !== 'undefined') { + this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE)); + } else { + this.buffer = new Array(Binary.BUFFER_SIZE); + } + // Set position to start of buffer + this.position = 0; + } +} + +/** + * Updates this binary with byte_value. + * + * @method + * @param {string} byte_value a single byte we wish to write. + */ +Binary.prototype.put = function put(byte_value) { + // If it's a string and a has more than one character throw an error + if (byte_value['length'] != null && typeof byte_value !== 'number' && byte_value.length !== 1) + throw new Error('only accepts single character String, Uint8Array or Array'); + if ((typeof byte_value !== 'number' && byte_value < 0) || byte_value > 255) + throw new Error('only accepts number in a valid unsigned byte range 0-255'); + + // Decode the byte value once + var decoded_byte = null; + if (typeof byte_value === 'string') { + decoded_byte = byte_value.charCodeAt(0); + } else if (byte_value['length'] != null) { + decoded_byte = byte_value[0]; + } else { + decoded_byte = byte_value; + } + + if (this.buffer.length > this.position) { + this.buffer[this.position++] = decoded_byte; + } else { + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + // Create additional overflow buffer + var buffer = utils.allocBuffer(Binary.BUFFER_SIZE + this.buffer.length); + // Combine the two buffers together + this.buffer.copy(buffer, 0, 0, this.buffer.length); + this.buffer = buffer; + this.buffer[this.position++] = decoded_byte; + } else { + buffer = null; + // Create a new buffer (typed or normal array) + if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length)); + } else { + buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length); + } + + // We need to copy all the content to the new array + for (var i = 0; i < this.buffer.length; i++) { + buffer[i] = this.buffer[i]; + } + + // Reassign the buffer + this.buffer = buffer; + // Write the byte + this.buffer[this.position++] = decoded_byte; + } + } +}; + +/** + * Writes a buffer or string to the binary. + * + * @method + * @param {(Buffer|string)} string a string or buffer to be written to the Binary BSON object. + * @param {number} offset specify the binary of where to write the content. + * @return {null} + */ +Binary.prototype.write = function write(string, offset) { + offset = typeof offset === 'number' ? offset : this.position; + + // If the buffer is to small let's extend the buffer + if (this.buffer.length < offset + string.length) { + var buffer = null; + // If we are in node.js + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + buffer = utils.allocBuffer(this.buffer.length + string.length); + this.buffer.copy(buffer, 0, 0, this.buffer.length); + } else if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + // Create a new buffer + buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length)); + // Copy the content + for (var i = 0; i < this.position; i++) { + buffer[i] = this.buffer[i]; + } + } + + // Assign the new buffer + this.buffer = buffer; + } + + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) { + string.copy(this.buffer, offset, 0, string.length); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length + } else if ( + typeof Buffer !== 'undefined' && + typeof string === 'string' && + Buffer.isBuffer(this.buffer) + ) { + this.buffer.write(string, offset, 'binary'); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length; + } else if ( + Object.prototype.toString.call(string) === '[object Uint8Array]' || + (Object.prototype.toString.call(string) === '[object Array]' && typeof string !== 'string') + ) { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string[i]; + } + + this.position = offset > this.position ? offset : this.position; + } else if (typeof string === 'string') { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string.charCodeAt(i); + } + + this.position = offset > this.position ? offset : this.position; + } +}; + +/** + * Reads **length** bytes starting at **position**. + * + * @method + * @param {number} position read from the given position in the Binary. + * @param {number} length the number of bytes to read. + * @return {Buffer} + */ +Binary.prototype.read = function read(position, length) { + length = length && length > 0 ? length : this.position; + + // Let's return the data based on the type we have + if (this.buffer['slice']) { + return this.buffer.slice(position, position + length); + } else { + // Create a buffer to keep the result + var buffer = + typeof Uint8Array !== 'undefined' + ? new Uint8Array(new ArrayBuffer(length)) + : new Array(length); + for (var i = 0; i < length; i++) { + buffer[i] = this.buffer[position++]; + } + } + // Return the buffer + return buffer; +}; + +/** + * Returns the value of this binary as a string. + * + * @method + * @return {string} + */ +Binary.prototype.value = function value(asRaw) { + asRaw = asRaw == null ? false : asRaw; + + // Optimize to serialize for the situation where the data == size of buffer + if ( + asRaw && + typeof Buffer !== 'undefined' && + Buffer.isBuffer(this.buffer) && + this.buffer.length === this.position + ) + return this.buffer; + + // If it's a node.js buffer object + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + return asRaw + ? this.buffer.slice(0, this.position) + : this.buffer.toString('binary', 0, this.position); + } else { + if (asRaw) { + // we support the slice command use it + if (this.buffer['slice'] != null) { + return this.buffer.slice(0, this.position); + } else { + // Create a new buffer to copy content to + var newBuffer = + Object.prototype.toString.call(this.buffer) === '[object Uint8Array]' + ? new Uint8Array(new ArrayBuffer(this.position)) + : new Array(this.position); + // Copy content + for (var i = 0; i < this.position; i++) { + newBuffer[i] = this.buffer[i]; + } + // Return the buffer + return newBuffer; + } + } else { + return convertArraytoUtf8BinaryString(this.buffer, 0, this.position); + } + } +}; + +/** + * Length. + * + * @method + * @return {number} the length of the binary. + */ +Binary.prototype.length = function length() { + return this.position; +}; + +/** + * @ignore + */ +Binary.prototype.toJSON = function() { + return this.buffer != null ? this.buffer.toString('base64') : ''; +}; + +/** + * @ignore + */ +Binary.prototype.toString = function(format) { + return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : ''; +}; + +/** + * Binary default subtype + * @ignore + */ +var BSON_BINARY_SUBTYPE_DEFAULT = 0; + +/** + * @ignore + */ +var writeStringToArray = function(data) { + // Create a buffer + var buffer = + typeof Uint8Array !== 'undefined' + ? new Uint8Array(new ArrayBuffer(data.length)) + : new Array(data.length); + // Write the content to the buffer + for (var i = 0; i < data.length; i++) { + buffer[i] = data.charCodeAt(i); + } + // Write the string to the buffer + return buffer; +}; + +/** + * Convert Array ot Uint8Array to Binary String + * + * @ignore + */ +var convertArraytoUtf8BinaryString = function(byteArray, startIndex, endIndex) { + var result = ''; + for (var i = startIndex; i < endIndex; i++) { + result = result + String.fromCharCode(byteArray[i]); + } + return result; +}; + +Binary.BUFFER_SIZE = 256; + +/** + * Default BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_DEFAULT = 0; +/** + * Function BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_FUNCTION = 1; +/** + * Byte Array BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_BYTE_ARRAY = 2; +/** + * OLD UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_UUID_OLD = 3; +/** + * UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_UUID = 4; +/** + * MD5 BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_MD5 = 5; +/** + * User BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_USER_DEFINED = 128; + +/** + * Expose. + */ +module.exports = Binary; +module.exports.Binary = Binary; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/bson.js b/justdanceonline-main/node_modules/bson/lib/bson/bson.js new file mode 100644 index 0000000000000000000000000000000000000000..912c5b9213d9f11fe5b68a1523bb21dd19987f4e --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/bson.js @@ -0,0 +1,386 @@ +'use strict'; + +var Map = require('./map'), + Long = require('./long'), + Double = require('./double'), + Timestamp = require('./timestamp'), + ObjectID = require('./objectid'), + BSONRegExp = require('./regexp'), + Symbol = require('./symbol'), + Int32 = require('./int_32'), + Code = require('./code'), + Decimal128 = require('./decimal128'), + MinKey = require('./min_key'), + MaxKey = require('./max_key'), + DBRef = require('./db_ref'), + Binary = require('./binary'); + +// Parts of the parser +var deserialize = require('./parser/deserializer'), + serializer = require('./parser/serializer'), + calculateObjectSize = require('./parser/calculate_size'), + utils = require('./parser/utils'); + +/** + * @ignore + * @api private + */ +// Default Max Size +var MAXSIZE = 1024 * 1024 * 17; + +// Current Internal Temporary Serialization Buffer +var buffer = utils.allocBuffer(MAXSIZE); + +var BSON = function() {}; + +/** + * Serialize a Javascript object. + * + * @param {Object} object the Javascript object to serialize. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.minInternalBufferSize=1024*1024*17] minimum size of the internal temporary serialization buffer **(default:1024*1024*17)**. + * @return {Buffer} returns the Buffer object containing the serialized object. + * @api public + */ +BSON.prototype.serialize = function serialize(object, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = + typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = + typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var minInternalBufferSize = + typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE; + + // Resize the internal serialization buffer if needed + if (buffer.length < minInternalBufferSize) { + buffer = utils.allocBuffer(minInternalBufferSize); + } + + // Attempt to serialize + var serializationIndex = serializer( + buffer, + object, + checkKeys, + 0, + 0, + serializeFunctions, + ignoreUndefined, + [] + ); + // Create the final buffer + var finishedBuffer = utils.allocBuffer(serializationIndex); + // Copy into the finished buffer + buffer.copy(finishedBuffer, 0, 0, finishedBuffer.length); + // Return the buffer + return finishedBuffer; +}; + +/** + * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization. + * + * @param {Object} object the Javascript object to serialize. + * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.index] the index in the buffer where we wish to start serializing into. + * @return {Number} returns the index pointing to the last written byte in the buffer. + * @api public + */ +BSON.prototype.serializeWithBufferAndIndex = function(object, finalBuffer, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = + typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = + typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var startIndex = typeof options.index === 'number' ? options.index : 0; + + // Attempt to serialize + var serializationIndex = serializer( + finalBuffer, + object, + checkKeys, + startIndex || 0, + 0, + serializeFunctions, + ignoreUndefined + ); + + // Return the index + return serializationIndex - 1; +}; + +/** + * Deserialize data as BSON. + * + * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Object} returns the deserialized Javascript Object. + * @api public + */ +BSON.prototype.deserialize = function(buffer, options) { + return deserialize(buffer, options); +}; + +/** + * Calculate the bson size for a passed in Javascript object. + * + * @param {Object} object the Javascript object to calculate the BSON byte size for. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @return {Number} returns the number of bytes the BSON object will take up. + * @api public + */ +BSON.prototype.calculateObjectSize = function(object, options) { + options = options || {}; + + var serializeFunctions = + typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = + typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + + return calculateObjectSize(object, serializeFunctions, ignoreUndefined); +}; + +/** + * Deserialize stream data as BSON documents. + * + * @param {Buffer} data the buffer containing the serialized set of BSON documents. + * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. + * @param {Number} numberOfDocuments number of documents to deserialize. + * @param {Array} documents an array where to store the deserialized documents. + * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. + * @param {Object} [options] additional options used for the deserialization. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. + * @api public + */ +BSON.prototype.deserializeStream = function( + data, + startIndex, + numberOfDocuments, + documents, + docStartIndex, + options +) { + options = options != null ? options : {}; + var index = startIndex; + // Loop over all documents + for (var i = 0; i < numberOfDocuments; i++) { + // Find size of the document + var size = + data[index] | (data[index + 1] << 8) | (data[index + 2] << 16) | (data[index + 3] << 24); + // Update options with index + options['index'] = index; + // Parse the document at this point + documents[docStartIndex + i] = this.deserialize(data, options); + // Adjust index by the document size + index = index + size; + } + + // Return object containing end index of parsing and list of documents + return index; +}; + +/** + * @ignore + * @api private + */ +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Internal long versions +// var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. +// var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + +/** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ +BSON.BSON_DATA_NUMBER = 1; +/** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ +BSON.BSON_DATA_STRING = 2; +/** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ +BSON.BSON_DATA_OBJECT = 3; +/** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ +BSON.BSON_DATA_ARRAY = 4; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ +BSON.BSON_DATA_BINARY = 5; +/** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ +BSON.BSON_DATA_OID = 7; +/** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ +BSON.BSON_DATA_BOOLEAN = 8; +/** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ +BSON.BSON_DATA_DATE = 9; +/** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ +BSON.BSON_DATA_NULL = 10; +/** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ +BSON.BSON_DATA_REGEXP = 11; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ +BSON.BSON_DATA_CODE = 13; +/** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ +BSON.BSON_DATA_SYMBOL = 14; +/** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ +BSON.BSON_DATA_CODE_W_SCOPE = 15; +/** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ +BSON.BSON_DATA_INT = 16; +/** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ +BSON.BSON_DATA_TIMESTAMP = 17; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ +BSON.BSON_DATA_LONG = 18; +/** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ +BSON.BSON_DATA_MIN_KEY = 0xff; +/** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ +BSON.BSON_DATA_MAX_KEY = 0x7f; + +/** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ +BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; +/** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ +BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; +/** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ +BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; +/** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ +BSON.BSON_BINARY_SUBTYPE_UUID = 3; +/** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ +BSON.BSON_BINARY_SUBTYPE_MD5 = 4; +/** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ +BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + +// Return BSON +module.exports = BSON; +module.exports.Code = Code; +module.exports.Map = Map; +module.exports.Symbol = Symbol; +module.exports.BSON = BSON; +module.exports.DBRef = DBRef; +module.exports.Binary = Binary; +module.exports.ObjectID = ObjectID; +module.exports.Long = Long; +module.exports.Timestamp = Timestamp; +module.exports.Double = Double; +module.exports.Int32 = Int32; +module.exports.MinKey = MinKey; +module.exports.MaxKey = MaxKey; +module.exports.BSONRegExp = BSONRegExp; +module.exports.Decimal128 = Decimal128; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/code.js b/justdanceonline-main/node_modules/bson/lib/bson/code.js new file mode 100644 index 0000000000000000000000000000000000000000..c2984cd5ab8852c1c7fc6e7c19598305142a2a91 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/code.js @@ -0,0 +1,24 @@ +/** + * A class representation of the BSON Code type. + * + * @class + * @param {(string|function)} code a string or function. + * @param {Object} [scope] an optional scope for the function. + * @return {Code} + */ +var Code = function Code(code, scope) { + if (!(this instanceof Code)) return new Code(code, scope); + this._bsontype = 'Code'; + this.code = code; + this.scope = scope; +}; + +/** + * @ignore + */ +Code.prototype.toJSON = function() { + return { scope: this.scope, code: this.code }; +}; + +module.exports = Code; +module.exports.Code = Code; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/db_ref.js b/justdanceonline-main/node_modules/bson/lib/bson/db_ref.js new file mode 100644 index 0000000000000000000000000000000000000000..f95795b1cf3d90a634b65e459261f044fd4408b4 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/db_ref.js @@ -0,0 +1,32 @@ +/** + * A class representation of the BSON DBRef type. + * + * @class + * @param {string} namespace the collection name. + * @param {ObjectID} oid the reference ObjectID. + * @param {string} [db] optional db name, if omitted the reference is local to the current db. + * @return {DBRef} + */ +function DBRef(namespace, oid, db) { + if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db); + + this._bsontype = 'DBRef'; + this.namespace = namespace; + this.oid = oid; + this.db = db; +} + +/** + * @ignore + * @api private + */ +DBRef.prototype.toJSON = function() { + return { + $ref: this.namespace, + $id: this.oid, + $db: this.db == null ? '' : this.db + }; +}; + +module.exports = DBRef; +module.exports.DBRef = DBRef; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/decimal128.js b/justdanceonline-main/node_modules/bson/lib/bson/decimal128.js new file mode 100644 index 0000000000000000000000000000000000000000..924513f44b654529b08b39fea86a36f7f5ed47b2 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/decimal128.js @@ -0,0 +1,820 @@ +'use strict'; + +var Long = require('./long'); + +var PARSE_STRING_REGEXP = /^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/; +var PARSE_INF_REGEXP = /^(\+|-)?(Infinity|inf)$/i; +var PARSE_NAN_REGEXP = /^(\+|-)?NaN$/i; + +var EXPONENT_MAX = 6111; +var EXPONENT_MIN = -6176; +var EXPONENT_BIAS = 6176; +var MAX_DIGITS = 34; + +// Nan value bits as 32 bit values (due to lack of longs) +var NAN_BUFFER = [ + 0x7c, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 +].reverse(); +// Infinity value bits 32 bit values (due to lack of longs) +var INF_NEGATIVE_BUFFER = [ + 0xf8, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 +].reverse(); +var INF_POSITIVE_BUFFER = [ + 0x78, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 +].reverse(); + +var EXPONENT_REGEX = /^([-+])?(\d+)?$/; + +var utils = require('./parser/utils'); + +// Detect if the value is a digit +var isDigit = function(value) { + return !isNaN(parseInt(value, 10)); +}; + +// Divide two uint128 values +var divideu128 = function(value) { + var DIVISOR = Long.fromNumber(1000 * 1000 * 1000); + var _rem = Long.fromNumber(0); + var i = 0; + + if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) { + return { quotient: value, rem: _rem }; + } + + for (i = 0; i <= 3; i++) { + // Adjust remainder to match value of next dividend + _rem = _rem.shiftLeft(32); + // Add the divided to _rem + _rem = _rem.add(new Long(value.parts[i], 0)); + value.parts[i] = _rem.div(DIVISOR).low_; + _rem = _rem.modulo(DIVISOR); + } + + return { quotient: value, rem: _rem }; +}; + +// Multiply two Long values and return the 128 bit value +var multiply64x2 = function(left, right) { + if (!left && !right) { + return { high: Long.fromNumber(0), low: Long.fromNumber(0) }; + } + + var leftHigh = left.shiftRightUnsigned(32); + var leftLow = new Long(left.getLowBits(), 0); + var rightHigh = right.shiftRightUnsigned(32); + var rightLow = new Long(right.getLowBits(), 0); + + var productHigh = leftHigh.multiply(rightHigh); + var productMid = leftHigh.multiply(rightLow); + var productMid2 = leftLow.multiply(rightHigh); + var productLow = leftLow.multiply(rightLow); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productMid = new Long(productMid.getLowBits(), 0) + .add(productMid2) + .add(productLow.shiftRightUnsigned(32)); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0)); + + // Return the 128 bit result + return { high: productHigh, low: productLow }; +}; + +var lessThan = function(left, right) { + // Make values unsigned + var uhleft = left.high_ >>> 0; + var uhright = right.high_ >>> 0; + + // Compare high bits first + if (uhleft < uhright) { + return true; + } else if (uhleft === uhright) { + var ulleft = left.low_ >>> 0; + var ulright = right.low_ >>> 0; + if (ulleft < ulright) return true; + } + + return false; +}; + +// var longtoHex = function(value) { +// var buffer = utils.allocBuffer(8); +// var index = 0; +// // Encode the low 64 bits of the decimal +// // Encode low bits +// buffer[index++] = value.low_ & 0xff; +// buffer[index++] = (value.low_ >> 8) & 0xff; +// buffer[index++] = (value.low_ >> 16) & 0xff; +// buffer[index++] = (value.low_ >> 24) & 0xff; +// // Encode high bits +// buffer[index++] = value.high_ & 0xff; +// buffer[index++] = (value.high_ >> 8) & 0xff; +// buffer[index++] = (value.high_ >> 16) & 0xff; +// buffer[index++] = (value.high_ >> 24) & 0xff; +// return buffer.reverse().toString('hex'); +// }; + +// var int32toHex = function(value) { +// var buffer = utils.allocBuffer(4); +// var index = 0; +// // Encode the low 64 bits of the decimal +// // Encode low bits +// buffer[index++] = value & 0xff; +// buffer[index++] = (value >> 8) & 0xff; +// buffer[index++] = (value >> 16) & 0xff; +// buffer[index++] = (value >> 24) & 0xff; +// return buffer.reverse().toString('hex'); +// }; + +/** + * A class representation of the BSON Decimal128 type. + * + * @class + * @param {Buffer} bytes a buffer containing the raw Decimal128 bytes. + * @return {Double} + */ +var Decimal128 = function(bytes) { + this._bsontype = 'Decimal128'; + this.bytes = bytes; +}; + +/** + * Create a Decimal128 instance from a string representation + * + * @method + * @param {string} string a numeric string representation. + * @return {Decimal128} returns a Decimal128 instance. + */ +Decimal128.fromString = function(string) { + // Parse state tracking + var isNegative = false; + var sawRadix = false; + var foundNonZero = false; + + // Total number of significant digits (no leading or trailing zero) + var significantDigits = 0; + // Total number of significand digits read + var nDigitsRead = 0; + // Total number of digits (no leading zeros) + var nDigits = 0; + // The number of the digits after radix + var radixPosition = 0; + // The index of the first non-zero in *str* + var firstNonZero = 0; + + // Digits Array + var digits = [0]; + // The number of digits in digits + var nDigitsStored = 0; + // Insertion pointer for digits + var digitsInsert = 0; + // The index of the first non-zero digit + var firstDigit = 0; + // The index of the last digit + var lastDigit = 0; + + // Exponent + var exponent = 0; + // loop index over array + var i = 0; + // The high 17 digits of the significand + var significandHigh = [0, 0]; + // The low 17 digits of the significand + var significandLow = [0, 0]; + // The biased exponent + var biasedExponent = 0; + + // Read index + var index = 0; + + // Trim the string + string = string.trim(); + + // Naively prevent against REDOS attacks. + // TODO: implementing a custom parsing for this, or refactoring the regex would yield + // further gains. + if (string.length >= 7000) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Results + var stringMatch = string.match(PARSE_STRING_REGEXP); + var infMatch = string.match(PARSE_INF_REGEXP); + var nanMatch = string.match(PARSE_NAN_REGEXP); + + // Validate the string + if ((!stringMatch && !infMatch && !nanMatch) || string.length === 0) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Check if we have an illegal exponent format + if (stringMatch && stringMatch[4] && stringMatch[2] === undefined) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Get the negative or positive sign + if (string[index] === '+' || string[index] === '-') { + isNegative = string[index++] === '-'; + } + + // Check if user passed Infinity or NaN + if (!isDigit(string[index]) && string[index] !== '.') { + if (string[index] === 'i' || string[index] === 'I') { + return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } else if (string[index] === 'N') { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + } + + // Read all the digits + while (isDigit(string[index]) || string[index] === '.') { + if (string[index] === '.') { + if (sawRadix) { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + + sawRadix = true; + index = index + 1; + continue; + } + + if (nDigitsStored < 34) { + if (string[index] !== '0' || foundNonZero) { + if (!foundNonZero) { + firstNonZero = nDigitsRead; + } + + foundNonZero = true; + + // Only store 34 digits + digits[digitsInsert++] = parseInt(string[index], 10); + nDigitsStored = nDigitsStored + 1; + } + } + + if (foundNonZero) { + nDigits = nDigits + 1; + } + + if (sawRadix) { + radixPosition = radixPosition + 1; + } + + nDigitsRead = nDigitsRead + 1; + index = index + 1; + } + + if (sawRadix && !nDigitsRead) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Read exponent if exists + if (string[index] === 'e' || string[index] === 'E') { + // Read exponent digits + var match = string.substr(++index).match(EXPONENT_REGEX); + + // No digits read + if (!match || !match[2]) { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + + // Get exponent + exponent = parseInt(match[0], 10); + + // Adjust the index + index = index + match[0].length; + } + + // Return not a number + if (string[index]) { + return new Decimal128(utils.toBuffer(NAN_BUFFER)); + } + + // Done reading input + // Find first non-zero digit in digits + firstDigit = 0; + + if (!nDigitsStored) { + firstDigit = 0; + lastDigit = 0; + digits[0] = 0; + nDigits = 1; + nDigitsStored = 1; + significantDigits = 0; + } else { + lastDigit = nDigitsStored - 1; + significantDigits = nDigits; + + if (exponent !== 0 && significantDigits !== 1) { + while (string[firstNonZero + significantDigits - 1] === '0') { + significantDigits = significantDigits - 1; + } + } + } + + // Normalization of exponent + // Correct exponent based on radix position, and shift significand as needed + // to represent user input + + // Overflow prevention + if (exponent <= radixPosition && radixPosition - exponent > 1 << 14) { + exponent = EXPONENT_MIN; + } else { + exponent = exponent - radixPosition; + } + + // Attempt to normalize the exponent + while (exponent > EXPONENT_MAX) { + // Shift exponent to significand and decrease + lastDigit = lastDigit + 1; + + if (lastDigit - firstDigit > MAX_DIGITS) { + // Check if we have a zero then just hard clamp, otherwise fail + var digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + + exponent = exponent - 1; + } + + while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) { + // Shift last digit + if (lastDigit === 0) { + exponent = EXPONENT_MIN; + significantDigits = 0; + break; + } + + if (nDigitsStored < nDigits) { + // adjust to match digits not stored + nDigits = nDigits - 1; + } else { + // adjust to round + lastDigit = lastDigit - 1; + } + + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + } else { + // Check if we have a zero then just hard clamp, otherwise fail + digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + } + + // Round + // We've normalized the exponent, but might still need to round. + if (lastDigit - firstDigit + 1 < significantDigits && string[significantDigits] !== '0') { + var endOfString = nDigitsRead; + + // If we have seen a radix point, 'string' is 1 longer than we have + // documented with ndigits_read, so inc the position of the first nonzero + // digit and the position that digits are read to. + if (sawRadix && exponent === EXPONENT_MIN) { + firstNonZero = firstNonZero + 1; + endOfString = endOfString + 1; + } + + var roundDigit = parseInt(string[firstNonZero + lastDigit + 1], 10); + var roundBit = 0; + + if (roundDigit >= 5) { + roundBit = 1; + + if (roundDigit === 5) { + roundBit = digits[lastDigit] % 2 === 1; + + for (i = firstNonZero + lastDigit + 2; i < endOfString; i++) { + if (parseInt(string[i], 10)) { + roundBit = 1; + break; + } + } + } + } + + if (roundBit) { + var dIdx = lastDigit; + + for (; dIdx >= 0; dIdx--) { + if (++digits[dIdx] > 9) { + digits[dIdx] = 0; + + // overflowed most significant digit + if (dIdx === 0) { + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + digits[dIdx] = 1; + } else { + return new Decimal128( + utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER) + ); + } + } + } else { + break; + } + } + } + } + + // Encode significand + // The high 17 digits of the significand + significandHigh = Long.fromNumber(0); + // The low 17 digits of the significand + significandLow = Long.fromNumber(0); + + // read a zero + if (significantDigits === 0) { + significandHigh = Long.fromNumber(0); + significandLow = Long.fromNumber(0); + } else if (lastDigit - firstDigit < 17) { + dIdx = firstDigit; + significandLow = Long.fromNumber(digits[dIdx++]); + significandHigh = new Long(0, 0); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } else { + dIdx = firstDigit; + significandHigh = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit - 17; dIdx++) { + significandHigh = significandHigh.multiply(Long.fromNumber(10)); + significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx])); + } + + significandLow = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } + + var significand = multiply64x2(significandHigh, Long.fromString('100000000000000000')); + + significand.low = significand.low.add(significandLow); + + if (lessThan(significand.low, significandLow)) { + significand.high = significand.high.add(Long.fromNumber(1)); + } + + // Biased exponent + biasedExponent = exponent + EXPONENT_BIAS; + var dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) }; + + // Encode combination, exponent, and significand. + if ( + significand.high + .shiftRightUnsigned(49) + .and(Long.fromNumber(1)) + .equals(Long.fromNumber) + ) { + // Encode '11' into bits 1 to 3 + dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61)); + dec.high = dec.high.or( + Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47)) + ); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff))); + } else { + dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49)); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff))); + } + + dec.low = significand.low; + + // Encode sign + if (isNegative) { + dec.high = dec.high.or(Long.fromString('9223372036854775808')); + } + + // Encode into a buffer + var buffer = utils.allocBuffer(16); + index = 0; + + // Encode the low 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.low.low_ & 0xff; + buffer[index++] = (dec.low.low_ >> 8) & 0xff; + buffer[index++] = (dec.low.low_ >> 16) & 0xff; + buffer[index++] = (dec.low.low_ >> 24) & 0xff; + // Encode high bits + buffer[index++] = dec.low.high_ & 0xff; + buffer[index++] = (dec.low.high_ >> 8) & 0xff; + buffer[index++] = (dec.low.high_ >> 16) & 0xff; + buffer[index++] = (dec.low.high_ >> 24) & 0xff; + + // Encode the high 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.high.low_ & 0xff; + buffer[index++] = (dec.high.low_ >> 8) & 0xff; + buffer[index++] = (dec.high.low_ >> 16) & 0xff; + buffer[index++] = (dec.high.low_ >> 24) & 0xff; + // Encode high bits + buffer[index++] = dec.high.high_ & 0xff; + buffer[index++] = (dec.high.high_ >> 8) & 0xff; + buffer[index++] = (dec.high.high_ >> 16) & 0xff; + buffer[index++] = (dec.high.high_ >> 24) & 0xff; + + // Return the new Decimal128 + return new Decimal128(buffer); +}; + +// Extract least significant 5 bits +var COMBINATION_MASK = 0x1f; +// Extract least significant 14 bits +var EXPONENT_MASK = 0x3fff; +// Value of combination field for Inf +var COMBINATION_INFINITY = 30; +// Value of combination field for NaN +var COMBINATION_NAN = 31; +// Value of combination field for NaN +// var COMBINATION_SNAN = 32; +// decimal128 exponent bias +EXPONENT_BIAS = 6176; + +/** + * Create a string representation of the raw Decimal128 value + * + * @method + * @return {string} returns a Decimal128 string representation. + */ +Decimal128.prototype.toString = function() { + // Note: bits in this routine are referred to starting at 0, + // from the sign bit, towards the coefficient. + + // bits 0 - 31 + var high; + // bits 32 - 63 + var midh; + // bits 64 - 95 + var midl; + // bits 96 - 127 + var low; + // bits 1 - 5 + var combination; + // decoded biased exponent (14 bits) + var biased_exponent; + // the number of significand digits + var significand_digits = 0; + // the base-10 digits in the significand + var significand = new Array(36); + for (var i = 0; i < significand.length; i++) significand[i] = 0; + // read pointer into significand + var index = 0; + + // unbiased exponent + var exponent; + // the exponent if scientific notation is used + var scientific_exponent; + + // true if the number is zero + var is_zero = false; + + // the most signifcant significand bits (50-46) + var significand_msb; + // temporary storage for significand decoding + var significand128 = { parts: new Array(4) }; + // indexing variables + i; + var j, k; + + // Output string + var string = []; + + // Unpack index + index = 0; + + // Buffer reference + var buffer = this.bytes; + + // Unpack the low 64bits into a long + low = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + midl = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + + // Unpack the high 64bits into a long + midh = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + high = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + + // Unpack index + index = 0; + + // Create the state of the decimal + var dec = { + low: new Long(low, midl), + high: new Long(midh, high) + }; + + if (dec.high.lessThan(Long.ZERO)) { + string.push('-'); + } + + // Decode combination field and exponent + combination = (high >> 26) & COMBINATION_MASK; + + if (combination >> 3 === 3) { + // Check for 'special' values + if (combination === COMBINATION_INFINITY) { + return string.join('') + 'Infinity'; + } else if (combination === COMBINATION_NAN) { + return 'NaN'; + } else { + biased_exponent = (high >> 15) & EXPONENT_MASK; + significand_msb = 0x08 + ((high >> 14) & 0x01); + } + } else { + significand_msb = (high >> 14) & 0x07; + biased_exponent = (high >> 17) & EXPONENT_MASK; + } + + exponent = biased_exponent - EXPONENT_BIAS; + + // Create string of significand digits + + // Convert the 114-bit binary number represented by + // (significand_high, significand_low) to at most 34 decimal + // digits through modulo and division. + significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14); + significand128.parts[1] = midh; + significand128.parts[2] = midl; + significand128.parts[3] = low; + + if ( + significand128.parts[0] === 0 && + significand128.parts[1] === 0 && + significand128.parts[2] === 0 && + significand128.parts[3] === 0 + ) { + is_zero = true; + } else { + for (k = 3; k >= 0; k--) { + var least_digits = 0; + // Peform the divide + var result = divideu128(significand128); + significand128 = result.quotient; + least_digits = result.rem.low_; + + // We now have the 9 least significant digits (in base 2). + // Convert and output to string. + if (!least_digits) continue; + + for (j = 8; j >= 0; j--) { + // significand[k * 9 + j] = Math.round(least_digits % 10); + significand[k * 9 + j] = least_digits % 10; + // least_digits = Math.round(least_digits / 10); + least_digits = Math.floor(least_digits / 10); + } + } + } + + // Output format options: + // Scientific - [-]d.dddE(+/-)dd or [-]dE(+/-)dd + // Regular - ddd.ddd + + if (is_zero) { + significand_digits = 1; + significand[index] = 0; + } else { + significand_digits = 36; + i = 0; + + while (!significand[index]) { + i++; + significand_digits = significand_digits - 1; + index = index + 1; + } + } + + scientific_exponent = significand_digits - 1 + exponent; + + // The scientific exponent checks are dictated by the string conversion + // specification and are somewhat arbitrary cutoffs. + // + // We must check exponent > 0, because if this is the case, the number + // has trailing zeros. However, we *cannot* output these trailing zeros, + // because doing so would change the precision of the value, and would + // change stored data if the string converted number is round tripped. + + if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) { + // Scientific format + string.push(significand[index++]); + significand_digits = significand_digits - 1; + + if (significand_digits) { + string.push('.'); + } + + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + + // Exponent + string.push('E'); + if (scientific_exponent > 0) { + string.push('+' + scientific_exponent); + } else { + string.push(scientific_exponent); + } + } else { + // Regular format with no decimal place + if (exponent >= 0) { + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + } else { + var radix_position = significand_digits + exponent; + + // non-zero digits before radix + if (radix_position > 0) { + for (i = 0; i < radix_position; i++) { + string.push(significand[index++]); + } + } else { + string.push('0'); + } + + string.push('.'); + // add leading zeros after radix + while (radix_position++ < 0) { + string.push('0'); + } + + for (i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) { + string.push(significand[index++]); + } + } + } + + return string.join(''); +}; + +Decimal128.prototype.toJSON = function() { + return { $numberDecimal: this.toString() }; +}; + +module.exports = Decimal128; +module.exports.Decimal128 = Decimal128; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/double.js b/justdanceonline-main/node_modules/bson/lib/bson/double.js new file mode 100644 index 0000000000000000000000000000000000000000..523c21f88f0d51d9061568d34de4a5cbf9811bdf --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/double.js @@ -0,0 +1,33 @@ +/** + * A class representation of the BSON Double type. + * + * @class + * @param {number} value the number we want to represent as a double. + * @return {Double} + */ +function Double(value) { + if (!(this instanceof Double)) return new Double(value); + + this._bsontype = 'Double'; + this.value = value; +} + +/** + * Access the number value. + * + * @method + * @return {number} returns the wrapped double number. + */ +Double.prototype.valueOf = function() { + return this.value; +}; + +/** + * @ignore + */ +Double.prototype.toJSON = function() { + return this.value; +}; + +module.exports = Double; +module.exports.Double = Double; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/float_parser.js b/justdanceonline-main/node_modules/bson/lib/bson/float_parser.js new file mode 100644 index 0000000000000000000000000000000000000000..0054a2f66507e756944ec484c2bc11a5a51c2b32 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/float_parser.js @@ -0,0 +1,124 @@ +// Copyright (c) 2008, Fair Oaks Labs, Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// +// Modifications to writeIEEE754 to support negative zeroes made by Brian White + +var readIEEE754 = function(buffer, offset, endian, mLen, nBytes) { + var e, + m, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + nBits = -7, + i = bBE ? 0 : nBytes - 1, + d = bBE ? 1 : -1, + s = buffer[offset + i]; + + i += d; + + e = s & ((1 << -nBits) - 1); + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); + + m = e & ((1 << -nBits) - 1); + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); +}; + +var writeIEEE754 = function(buffer, value, offset, endian, mLen, nBytes) { + var e, + m, + c, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + i = bBE ? nBytes - 1 : 0, + d = bBE ? -1 : 1, + s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); + + e = (e << mLen) | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); + + buffer[offset + i - d] |= s * 128; +}; + +exports.readIEEE754 = readIEEE754; +exports.writeIEEE754 = writeIEEE754; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/int_32.js b/justdanceonline-main/node_modules/bson/lib/bson/int_32.js new file mode 100644 index 0000000000000000000000000000000000000000..85dbdec61e24d6a9b8763b47cbdb65ca0881100b --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/int_32.js @@ -0,0 +1,33 @@ +/** + * A class representation of a BSON Int32 type. + * + * @class + * @param {number} value the number we want to represent as an int32. + * @return {Int32} + */ +var Int32 = function(value) { + if (!(this instanceof Int32)) return new Int32(value); + + this._bsontype = 'Int32'; + this.value = value; +}; + +/** + * Access the number value. + * + * @method + * @return {number} returns the wrapped int32 number. + */ +Int32.prototype.valueOf = function() { + return this.value; +}; + +/** + * @ignore + */ +Int32.prototype.toJSON = function() { + return this.value; +}; + +module.exports = Int32; +module.exports.Int32 = Int32; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/long.js b/justdanceonline-main/node_modules/bson/lib/bson/long.js new file mode 100644 index 0000000000000000000000000000000000000000..551d1a60444a82a9653de7c32f4ebafa9b121b93 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/long.js @@ -0,0 +1,865 @@ +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright 2009 Google Inc. All Rights Reserved + +/** + * Defines a Long class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Long". This + * implementation is derived from LongLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Longs. + * + * The internal representation of a Long is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Long. + * @param {number} high the high (signed) 32 bits of the Long. + * @return {Long} + */ +function Long(low, high) { + if (!(this instanceof Long)) return new Long(low, high); + + this._bsontype = 'Long'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. +} + +/** + * Return the int value. + * + * @method + * @return {number} the value, assuming it is a 32-bit integer. + */ +Long.prototype.toInt = function() { + return this.low_; +}; + +/** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ +Long.prototype.toNumber = function() { + return this.high_ * Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); +}; + +/** Converts the Long to a BigInt (arbitrary precision). */ +Long.prototype.toBigInt = function () { + return BigInt(this.toString()); +} + +/** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ +Long.prototype.toJSON = function() { + return this.toString(); +}; + +/** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ +Long.prototype.toString = function(opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + // We need to change the Long value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixLong = Long.fromNumber(radix); + var div = this.div(radixLong); + var rem = div.multiply(radixLong).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } +}; + +/** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ +Long.prototype.getHighBits = function() { + return this.high_; +}; + +/** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ +Long.prototype.getLowBits = function() { + return this.low_; +}; + +/** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ +Long.prototype.getLowBitsUnsigned = function() { + return this.low_ >= 0 ? this.low_ : Long.TWO_PWR_32_DBL_ + this.low_; +}; + +/** + * Returns the number of bits needed to represent the absolute value of this Long. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Long. + */ +Long.prototype.getNumBitsAbs = function() { + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & (1 << bit)) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } +}; + +/** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ +Long.prototype.isZero = function() { + return this.high_ === 0 && this.low_ === 0; +}; + +/** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ +Long.prototype.isNegative = function() { + return this.high_ < 0; +}; + +/** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ +Long.prototype.isOdd = function() { + return (this.low_ & 1) === 1; +}; + +/** + * Return whether this Long equals the other + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long equals the other + */ +Long.prototype.equals = function(other) { + return this.high_ === other.high_ && this.low_ === other.low_; +}; + +/** + * Return whether this Long does not equal the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long does not equal the other. + */ +Long.prototype.notEquals = function(other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; +}; + +/** + * Return whether this Long is less than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than the other. + */ +Long.prototype.lessThan = function(other) { + return this.compare(other) < 0; +}; + +/** + * Return whether this Long is less than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than or equal to the other. + */ +Long.prototype.lessThanOrEqual = function(other) { + return this.compare(other) <= 0; +}; + +/** + * Return whether this Long is greater than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than the other. + */ +Long.prototype.greaterThan = function(other) { + return this.compare(other) > 0; +}; + +/** + * Return whether this Long is greater than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than or equal to the other. + */ +Long.prototype.greaterThanOrEqual = function(other) { + return this.compare(other) >= 0; +}; + +/** + * Compares this Long with the given one. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ +Long.prototype.compare = function(other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } +}; + +/** + * The negation of this value. + * + * @method + * @return {Long} the negation of this value. + */ +Long.prototype.negate = function() { + if (this.equals(Long.MIN_VALUE)) { + return Long.MIN_VALUE; + } else { + return this.not().add(Long.ONE); + } +}; + +/** + * Returns the sum of this and the given Long. + * + * @method + * @param {Long} other Long to add to this one. + * @return {Long} the sum of this and the given Long. + */ +Long.prototype.add = function(other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns the difference of this and the given Long. + * + * @method + * @param {Long} other Long to subtract from this. + * @return {Long} the difference of this and the given Long. + */ +Long.prototype.subtract = function(other) { + return this.add(other.negate()); +}; + +/** + * Returns the product of this and the given Long. + * + * @method + * @param {Long} other Long to multiply with this. + * @return {Long} the product of this and the other. + */ +Long.prototype.multiply = function(other) { + if (this.isZero()) { + return Long.ZERO; + } else if (other.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + return other.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } else if (other.equals(Long.MIN_VALUE)) { + return this.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate() + .multiply(other) + .negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Longs are small, use float multiplication + if (this.lessThan(Long.TWO_PWR_24_) && other.lessThan(Long.TWO_PWR_24_)) { + return Long.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Long into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns this Long divided by the given one. + * + * @method + * @param {Long} other Long by which to divide. + * @return {Long} this Long divided by the given one. + */ +Long.prototype.div = function(other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + if (other.equals(Long.ONE) || other.equals(Long.NEG_ONE)) { + return Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Long.ZERO)) { + return other.isNegative() ? Long.ONE : Long.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate() + .div(other) + .negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Long.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Long.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Long.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Long.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; +}; + +/** + * Returns this Long modulo the given one. + * + * @method + * @param {Long} other Long by which to mod. + * @return {Long} this Long modulo the given one. + */ +Long.prototype.modulo = function(other) { + return this.subtract(this.div(other).multiply(other)); +}; + +/** + * The bitwise-NOT of this value. + * + * @method + * @return {Long} the bitwise-NOT of this value. + */ +Long.prototype.not = function() { + return Long.fromBits(~this.low_, ~this.high_); +}; + +/** + * Returns the bitwise-AND of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to AND. + * @return {Long} the bitwise-AND of this and the other. + */ +Long.prototype.and = function(other) { + return Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); +}; + +/** + * Returns the bitwise-OR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to OR. + * @return {Long} the bitwise-OR of this and the other. + */ +Long.prototype.or = function(other) { + return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); +}; + +/** + * Returns the bitwise-XOR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to XOR. + * @return {Long} the bitwise-XOR of this and the other. + */ +Long.prototype.xor = function(other) { + return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); +}; + +/** + * Returns this Long with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the left by the given amount. + */ +Long.prototype.shiftLeft = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Long.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits))); + } else { + return Long.fromBits(0, low << (numBits - 32)); + } + } +}; + +/** + * Returns this Long with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount. + */ +Long.prototype.shiftRight = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits); + } else { + return Long.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1); + } + } +}; + +/** + * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ +Long.prototype.shiftRightUnsigned = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits); + } else if (numBits === 32) { + return Long.fromBits(high, 0); + } else { + return Long.fromBits(high >>> (numBits - 32), 0); + } + } +}; + +/** + * Returns a Long representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Long} the corresponding Long value. + */ +Long.fromInt = function(value) { + if (-128 <= value && value < 128) { + var cachedObj = Long.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Long(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Long.INT_CACHE_[value] = obj; + } + return obj; +}; + +/** + * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Long} the corresponding Long value. + */ +Long.fromNumber = function(value) { + if (isNaN(value) || !isFinite(value)) { + return Long.ZERO; + } else if (value <= -Long.TWO_PWR_63_DBL_) { + return Long.MIN_VALUE; + } else if (value + 1 >= Long.TWO_PWR_63_DBL_) { + return Long.MAX_VALUE; + } else if (value < 0) { + return Long.fromNumber(-value).negate(); + } else { + return new Long((value % Long.TWO_PWR_32_DBL_) | 0, (value / Long.TWO_PWR_32_DBL_) | 0); + } +}; + +/** + * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * @param {bigint} value - The number in question + * @returns {Long} The corresponding Long value + */ +Long.fromBigInt = function(value) { + return Long.fromString(value.toString(10), 10); +} + +/** + * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Long} the corresponding Long value. + */ +Long.fromBits = function(lowBits, highBits) { + return new Long(lowBits, highBits); +}; + +/** + * Returns a Long representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Long. + * @param {number} opt_radix the radix in which the text is written. + * @return {Long} the corresponding Long value. + */ +Long.fromString = function(str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Long.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 8)); + + var result = Long.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Long.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Long.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Long.fromNumber(value)); + } + } + return result; +}; + +// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the +// from* methods on which they depend. + +/** + * A cache of the Long representations of small integer values. + * @type {Object} + * @ignore + */ +Long.INT_CACHE_ = {}; + +// NOTE: the compiler should inline these constant values below and then remove +// these variables, so there should be no runtime penalty for these. + +/** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ +Long.TWO_PWR_16_DBL_ = 1 << 16; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_24_DBL_ = 1 << 24; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_32_DBL_ = Long.TWO_PWR_16_DBL_ * Long.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_31_DBL_ = Long.TWO_PWR_32_DBL_ / 2; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_48_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_64_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_32_DBL_; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_63_DBL_ = Long.TWO_PWR_64_DBL_ / 2; + +/** @type {Long} */ +Long.ZERO = Long.fromInt(0); + +/** @type {Long} */ +Long.ONE = Long.fromInt(1); + +/** @type {Long} */ +Long.NEG_ONE = Long.fromInt(-1); + +/** @type {Long} */ +Long.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0); + +/** @type {Long} */ +Long.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0); + +/** + * @type {Long} + * @ignore + */ +Long.TWO_PWR_24_ = Long.fromInt(1 << 24); + +/** + * Expose. + */ +module.exports = Long; +module.exports.Long = Long; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/map.js b/justdanceonline-main/node_modules/bson/lib/bson/map.js new file mode 100644 index 0000000000000000000000000000000000000000..7edb4f2a1f35baf149e2512291ca6715754d7cd9 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/map.js @@ -0,0 +1,128 @@ +'use strict'; + +// We have an ES6 Map available, return the native instance +if (typeof global.Map !== 'undefined') { + module.exports = global.Map; + module.exports.Map = global.Map; +} else { + // We will return a polyfill + var Map = function(array) { + this._keys = []; + this._values = {}; + + for (var i = 0; i < array.length; i++) { + if (array[i] == null) continue; // skip null and undefined + var entry = array[i]; + var key = entry[0]; + var value = entry[1]; + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + } + }; + + Map.prototype.clear = function() { + this._keys = []; + this._values = {}; + }; + + Map.prototype.delete = function(key) { + var value = this._values[key]; + if (value == null) return false; + // Delete entry + delete this._values[key]; + // Remove the key from the ordered keys list + this._keys.splice(value.i, 1); + return true; + }; + + Map.prototype.entries = function() { + var self = this; + var index = 0; + + return { + next: function() { + var key = self._keys[index++]; + return { + value: key !== undefined ? [key, self._values[key].v] : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.forEach = function(callback, self) { + self = self || this; + + for (var i = 0; i < this._keys.length; i++) { + var key = this._keys[i]; + // Call the forEach callback + callback.call(self, this._values[key].v, key, self); + } + }; + + Map.prototype.get = function(key) { + return this._values[key] ? this._values[key].v : undefined; + }; + + Map.prototype.has = function(key) { + return this._values[key] != null; + }; + + Map.prototype.keys = function() { + var self = this; + var index = 0; + + return { + next: function() { + var key = self._keys[index++]; + return { + value: key !== undefined ? key : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.set = function(key, value) { + if (this._values[key]) { + this._values[key].v = value; + return this; + } + + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + return this; + }; + + Map.prototype.values = function() { + var self = this; + var index = 0; + + return { + next: function() { + var key = self._keys[index++]; + return { + value: key !== undefined ? self._values[key].v : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + // Last ismaster + Object.defineProperty(Map.prototype, 'size', { + enumerable: true, + get: function() { + return this._keys.length; + } + }); + + module.exports = Map; + module.exports.Map = Map; +} diff --git a/justdanceonline-main/node_modules/bson/lib/bson/max_key.js b/justdanceonline-main/node_modules/bson/lib/bson/max_key.js new file mode 100644 index 0000000000000000000000000000000000000000..eebca7bc6104dad80ae78fc274cd0ab6b1200d3e --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/max_key.js @@ -0,0 +1,14 @@ +/** + * A class representation of the BSON MaxKey type. + * + * @class + * @return {MaxKey} A MaxKey instance + */ +function MaxKey() { + if (!(this instanceof MaxKey)) return new MaxKey(); + + this._bsontype = 'MaxKey'; +} + +module.exports = MaxKey; +module.exports.MaxKey = MaxKey; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/min_key.js b/justdanceonline-main/node_modules/bson/lib/bson/min_key.js new file mode 100644 index 0000000000000000000000000000000000000000..15f45228d371998a091a7b77834f560a2bc41522 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/min_key.js @@ -0,0 +1,14 @@ +/** + * A class representation of the BSON MinKey type. + * + * @class + * @return {MinKey} A MinKey instance + */ +function MinKey() { + if (!(this instanceof MinKey)) return new MinKey(); + + this._bsontype = 'MinKey'; +} + +module.exports = MinKey; +module.exports.MinKey = MinKey; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/objectid.js b/justdanceonline-main/node_modules/bson/lib/bson/objectid.js new file mode 100644 index 0000000000000000000000000000000000000000..0ebcc03432e81cd1184e731f2be4f7db1ef19aa7 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/objectid.js @@ -0,0 +1,392 @@ +// Custom inspect property name / symbol. +var inspect = 'inspect'; + +var utils = require('./parser/utils'); + +/** + * Machine id. + * + * Create a random 3-byte value (i.e. unique for this + * process). Other drivers use a md5 of the machine id here, but + * that would mean an asyc call to gethostname, so we don't bother. + * @ignore + */ +var MACHINE_ID = parseInt(Math.random() * 0xffffff, 10); + +// Regular expression that checks for hex value +var checkForHexRegExp = new RegExp('^[0-9a-fA-F]{24}$'); + +// Check if buffer exists +try { + if (Buffer && Buffer.from) { + var hasBufferType = true; + inspect = require('util').inspect.custom || 'inspect'; + } +} catch (err) { + hasBufferType = false; +} + +/** +* Create a new ObjectID instance +* +* @class +* @param {(string|number)} id Can be a 24 byte hex string, 12 byte binary string or a Number. +* @property {number} generationTime The generation time of this ObjectId instance +* @return {ObjectID} instance of ObjectID. +*/ +var ObjectID = function ObjectID(id) { + // Duck-typing to support ObjectId from different npm packages + if (id instanceof ObjectID) return id; + if (!(this instanceof ObjectID)) return new ObjectID(id); + + this._bsontype = 'ObjectID'; + + // The most common usecase (blank id, new objectId instance) + if (id == null || typeof id === 'number') { + // Generate a new id + this.id = this.generate(id); + // If we are caching the hex string + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); + // Return the object + return; + } + + // Check if the passed in id is valid + var valid = ObjectID.isValid(id); + + // Throw an error if it's not a valid setup + if (!valid && id != null) { + throw new Error( + 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' + ); + } else if (valid && typeof id === 'string' && id.length === 24 && hasBufferType) { + return new ObjectID(utils.toBuffer(id, 'hex')); + } else if (valid && typeof id === 'string' && id.length === 24) { + return ObjectID.createFromHexString(id); + } else if (id != null && id.length === 12) { + // assume 12 byte string + this.id = id; + } else if (id != null && typeof id.toHexString === 'function') { + // Duck-typing to support ObjectId from different npm packages + return id; + } else { + throw new Error( + 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' + ); + } + + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); +}; + +// Allow usage of ObjectId as well as ObjectID +// var ObjectId = ObjectID; + +// Precomputed hex table enables speedy hex string conversion +var hexTable = []; +for (var i = 0; i < 256; i++) { + hexTable[i] = (i <= 15 ? '0' : '') + i.toString(16); +} + +/** +* Return the ObjectID id as a 24 byte hex string representation +* +* @method +* @return {string} return the 24 byte hex string representation. +*/ +ObjectID.prototype.toHexString = function() { + if (ObjectID.cacheHexString && this.__id) return this.__id; + + var hexString = ''; + if (!this.id || !this.id.length) { + throw new Error( + 'invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is [' + + JSON.stringify(this.id) + + ']' + ); + } + + if (this.id instanceof _Buffer) { + hexString = convertToHex(this.id); + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; + } + + for (var i = 0; i < this.id.length; i++) { + hexString += hexTable[this.id.charCodeAt(i)]; + } + + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; +}; + +/** +* Update the ObjectID index used in generating new ObjectID's on the driver +* +* @method +* @return {number} returns next index value. +* @ignore +*/ +ObjectID.prototype.get_inc = function() { + return (ObjectID.index = (ObjectID.index + 1) % 0xffffff); +}; + +/** +* Update the ObjectID index used in generating new ObjectID's on the driver +* +* @method +* @return {number} returns next index value. +* @ignore +*/ +ObjectID.prototype.getInc = function() { + return this.get_inc(); +}; + +/** +* Generate a 12 byte id buffer used in ObjectID's +* +* @method +* @param {number} [time] optional parameter allowing to pass in a second based timestamp. +* @return {Buffer} return the 12 byte id buffer string. +*/ +ObjectID.prototype.generate = function(time) { + if ('number' !== typeof time) { + time = ~~(Date.now() / 1000); + } + + // Use pid + var pid = + (typeof process === 'undefined' || process.pid === 1 + ? Math.floor(Math.random() * 100000) + : process.pid) % 0xffff; + var inc = this.get_inc(); + // Buffer used + var buffer = utils.allocBuffer(12); + // Encode time + buffer[3] = time & 0xff; + buffer[2] = (time >> 8) & 0xff; + buffer[1] = (time >> 16) & 0xff; + buffer[0] = (time >> 24) & 0xff; + // Encode machine + buffer[6] = MACHINE_ID & 0xff; + buffer[5] = (MACHINE_ID >> 8) & 0xff; + buffer[4] = (MACHINE_ID >> 16) & 0xff; + // Encode pid + buffer[8] = pid & 0xff; + buffer[7] = (pid >> 8) & 0xff; + // Encode index + buffer[11] = inc & 0xff; + buffer[10] = (inc >> 8) & 0xff; + buffer[9] = (inc >> 16) & 0xff; + // Return the buffer + return buffer; +}; + +/** +* Converts the id into a 24 byte hex string for printing +* +* @param {String} format The Buffer toString format parameter. +* @return {String} return the 24 byte hex string representation. +* @ignore +*/ +ObjectID.prototype.toString = function(format) { + // Is the id a buffer then use the buffer toString method to return the format + if (this.id && this.id.copy) { + return this.id.toString(typeof format === 'string' ? format : 'hex'); + } + + // if(this.buffer ) + return this.toHexString(); +}; + +/** +* Converts to a string representation of this Id. +* +* @return {String} return the 24 byte hex string representation. +* @ignore +*/ +ObjectID.prototype[inspect] = ObjectID.prototype.toString; + +/** +* Converts to its JSON representation. +* +* @return {String} return the 24 byte hex string representation. +* @ignore +*/ +ObjectID.prototype.toJSON = function() { + return this.toHexString(); +}; + +/** +* Compares the equality of this ObjectID with `otherID`. +* +* @method +* @param {object} otherID ObjectID instance to compare against. +* @return {boolean} the result of comparing two ObjectID's +*/ +ObjectID.prototype.equals = function equals(otherId) { + // var id; + + if (otherId instanceof ObjectID) { + return this.toString() === otherId.toString(); + } else if ( + typeof otherId === 'string' && + ObjectID.isValid(otherId) && + otherId.length === 12 && + this.id instanceof _Buffer + ) { + return otherId === this.id.toString('binary'); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 24) { + return otherId.toLowerCase() === this.toHexString(); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12) { + return otherId === this.id; + } else if (otherId != null && (otherId instanceof ObjectID || otherId.toHexString)) { + return otherId.toHexString() === this.toHexString(); + } else { + return false; + } +}; + +/** +* Returns the generation date (accurate up to the second) that this ID was generated. +* +* @method +* @return {date} the generation date +*/ +ObjectID.prototype.getTimestamp = function() { + var timestamp = new Date(); + var time = this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24); + timestamp.setTime(Math.floor(time) * 1000); + return timestamp; +}; + +/** +* @ignore +*/ +ObjectID.index = ~~(Math.random() * 0xffffff); + +/** +* @ignore +*/ +ObjectID.createPk = function createPk() { + return new ObjectID(); +}; + +/** +* Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID. +* +* @method +* @param {number} time an integer number representing a number of seconds. +* @return {ObjectID} return the created ObjectID +*/ +ObjectID.createFromTime = function createFromTime(time) { + var buffer = utils.toBuffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + // Encode time into first 4 bytes + buffer[3] = time & 0xff; + buffer[2] = (time >> 8) & 0xff; + buffer[1] = (time >> 16) & 0xff; + buffer[0] = (time >> 24) & 0xff; + // Return the new objectId + return new ObjectID(buffer); +}; + +// Lookup tables +//var encodeLookup = '0123456789abcdef'.split(''); +var decodeLookup = []; +i = 0; +while (i < 10) decodeLookup[0x30 + i] = i++; +while (i < 16) decodeLookup[0x41 - 10 + i] = decodeLookup[0x61 - 10 + i] = i++; + +var _Buffer = Buffer; +var convertToHex = function(bytes) { + return bytes.toString('hex'); +}; + +/** +* Creates an ObjectID from a hex string representation of an ObjectID. +* +* @method +* @param {string} hexString create a ObjectID from a passed in 24 byte hexstring. +* @return {ObjectID} return the created ObjectID +*/ +ObjectID.createFromHexString = function createFromHexString(string) { + // Throw an error if it's not a valid setup + if (typeof string === 'undefined' || (string != null && string.length !== 24)) { + throw new Error( + 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' + ); + } + + // Use Buffer.from method if available + if (hasBufferType) return new ObjectID(utils.toBuffer(string, 'hex')); + + // Calculate lengths + var array = new _Buffer(12); + var n = 0; + var i = 0; + + while (i < 24) { + array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)]; + } + + return new ObjectID(array); +}; + +/** +* Checks if a value is a valid bson ObjectId +* +* @method +* @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise. +*/ +ObjectID.isValid = function isValid(id) { + if (id == null) return false; + + if (typeof id === 'number') { + return true; + } + + if (typeof id === 'string') { + return id.length === 12 || (id.length === 24 && checkForHexRegExp.test(id)); + } + + if (id instanceof ObjectID) { + return true; + } + + if (id instanceof _Buffer) { + return true; + } + + // Duck-Typing detection of ObjectId like objects + if ( + typeof id.toHexString === 'function' && + (id.id instanceof _Buffer || typeof id.id === 'string') + ) { + return id.id.length === 12 || (id.id.length === 24 && checkForHexRegExp.test(id.id)); + } + + return false; +}; + +/** +* @ignore +*/ +Object.defineProperty(ObjectID.prototype, 'generationTime', { + enumerable: true, + get: function() { + return this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24); + }, + set: function(value) { + // Encode time into first 4 bytes + this.id[3] = value & 0xff; + this.id[2] = (value >> 8) & 0xff; + this.id[1] = (value >> 16) & 0xff; + this.id[0] = (value >> 24) & 0xff; + } +}); + +/** + * Expose. + */ +module.exports = ObjectID; +module.exports.ObjectID = ObjectID; +module.exports.ObjectId = ObjectID; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/parser/calculate_size.js b/justdanceonline-main/node_modules/bson/lib/bson/parser/calculate_size.js new file mode 100644 index 0000000000000000000000000000000000000000..7e0026ca6716c5cdc7403c7d6913f90c7b03eac3 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/parser/calculate_size.js @@ -0,0 +1,255 @@ +'use strict'; + +var Long = require('../long').Long, + Double = require('../double').Double, + Timestamp = require('../timestamp').Timestamp, + ObjectID = require('../objectid').ObjectID, + Symbol = require('../symbol').Symbol, + BSONRegExp = require('../regexp').BSONRegExp, + Code = require('../code').Code, + Decimal128 = require('../decimal128'), + MinKey = require('../min_key').MinKey, + MaxKey = require('../max_key').MaxKey, + DBRef = require('../db_ref').DBRef, + Binary = require('../binary').Binary; + +var normalizedFunctionString = require('./utils').normalizedFunctionString; + +// To ensure that 0.4 of node works correctly +var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; +}; + +var calculateObjectSize = function calculateObjectSize( + object, + serializeFunctions, + ignoreUndefined +) { + var totalLength = 4 + 1; + + if (Array.isArray(object)) { + for (var i = 0; i < object.length; i++) { + totalLength += calculateElement( + i.toString(), + object[i], + serializeFunctions, + true, + ignoreUndefined + ); + } + } else { + // If we have toBSON defined, override the current object + if (object.toBSON) { + object = object.toBSON(); + } + + // Calculate size + for (var key in object) { + totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined); + } + } + + return totalLength; +}; + +/** + * @ignore + * @api private + */ +function calculateElement(name, value, serializeFunctions, isArray, ignoreUndefined) { + // If we have toBSON defined, override the current object + if (value && value.toBSON) { + value = value.toBSON(); + } + + switch (typeof value) { + case 'string': + return 1 + Buffer.byteLength(name, 'utf8') + 1 + 4 + Buffer.byteLength(value, 'utf8') + 1; + case 'number': + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // 32 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (4 + 1); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + } else { + // 64 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + case 'undefined': + if (isArray || !ignoreUndefined) + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + return 0; + case 'boolean': + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 1); + case 'object': + if ( + value == null || + value instanceof MinKey || + value instanceof MaxKey || + value['_bsontype'] === 'MinKey' || + value['_bsontype'] === 'MaxKey' + ) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + } else if (value instanceof ObjectID || value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (12 + 1); + } else if (value instanceof Date || isDate(value)) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 4 + 1) + value.length + ); + } else if ( + value instanceof Long || + value instanceof Double || + value instanceof Timestamp || + value['_bsontype'] === 'Long' || + value['_bsontype'] === 'Double' || + value['_bsontype'] === 'Timestamp' + ) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (value instanceof Decimal128 || value['_bsontype'] === 'Decimal128') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (16 + 1); + } else if (value instanceof Code || value['_bsontype'] === 'Code') { + // Calculate size depending on the availability of a scope + if (value.scope != null && Object.keys(value.scope).length > 0) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + 4 + + Buffer.byteLength(value.code.toString(), 'utf8') + + 1 + + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined) + ); + } else { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + Buffer.byteLength(value.code.toString(), 'utf8') + + 1 + ); + } + } else if (value instanceof Binary || value['_bsontype'] === 'Binary') { + // Check what kind of subtype we have + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + (value.position + 1 + 4 + 1 + 4) + ); + } else { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1) + ); + } + } else if (value instanceof Symbol || value['_bsontype'] === 'Symbol') { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + Buffer.byteLength(value.value, 'utf8') + + 4 + + 1 + + 1 + ); + } else if (value instanceof DBRef || value['_bsontype'] === 'DBRef') { + // Set up correct object for serialization + var ordered_values = { + $ref: value.namespace, + $id: value.oid + }; + + // Add db reference if it exists + if (null != value.db) { + ordered_values['$db'] = value.db; + } + + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + calculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined) + ); + } else if ( + value instanceof RegExp || + Object.prototype.toString.call(value) === '[object RegExp]' + ) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + Buffer.byteLength(value.source, 'utf8') + + 1 + + (value.global ? 1 : 0) + + (value.ignoreCase ? 1 : 0) + + (value.multiline ? 1 : 0) + + 1 + ); + } else if (value instanceof BSONRegExp || value['_bsontype'] === 'BSONRegExp') { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + Buffer.byteLength(value.pattern, 'utf8') + + 1 + + Buffer.byteLength(value.options, 'utf8') + + 1 + ); + } else { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + calculateObjectSize(value, serializeFunctions, ignoreUndefined) + + 1 + ); + } + case 'function': + // WTF for 0.4.X where typeof /someregexp/ === 'function' + if ( + value instanceof RegExp || + Object.prototype.toString.call(value) === '[object RegExp]' || + String.call(value) === '[object RegExp]' + ) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + Buffer.byteLength(value.source, 'utf8') + + 1 + + (value.global ? 1 : 0) + + (value.ignoreCase ? 1 : 0) + + (value.multiline ? 1 : 0) + + 1 + ); + } else { + if (serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + 4 + + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + + 1 + + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined) + ); + } else if (serializeFunctions) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + + 1 + ); + } + } + } + + return 0; +} + +var BSON = {}; + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +module.exports = calculateObjectSize; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/parser/deserializer.js b/justdanceonline-main/node_modules/bson/lib/bson/parser/deserializer.js new file mode 100644 index 0000000000000000000000000000000000000000..be3c8654c4b371c7c42c05675b952938eb438424 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/parser/deserializer.js @@ -0,0 +1,782 @@ +'use strict'; + +var Long = require('../long').Long, + Double = require('../double').Double, + Timestamp = require('../timestamp').Timestamp, + ObjectID = require('../objectid').ObjectID, + Symbol = require('../symbol').Symbol, + Code = require('../code').Code, + MinKey = require('../min_key').MinKey, + MaxKey = require('../max_key').MaxKey, + Decimal128 = require('../decimal128'), + Int32 = require('../int_32'), + DBRef = require('../db_ref').DBRef, + BSONRegExp = require('../regexp').BSONRegExp, + Binary = require('../binary').Binary; + +var utils = require('./utils'); + +var deserialize = function(buffer, options, isArray) { + options = options == null ? {} : options; + var index = options && options.index ? options.index : 0; + // Read the document size + var size = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + + // Ensure buffer is valid size + if (size < 5 || buffer.length < size || size + index > buffer.length) { + throw new Error('corrupt bson message'); + } + + // Illegal end value + if (buffer[index + size - 1] !== 0) { + throw new Error("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00"); + } + + // Start deserializtion + return deserializeObject(buffer, index, options, isArray); +}; + +var deserializeObject = function(buffer, index, options, isArray) { + var evalFunctions = options['evalFunctions'] == null ? false : options['evalFunctions']; + var cacheFunctions = options['cacheFunctions'] == null ? false : options['cacheFunctions']; + var cacheFunctionsCrc32 = + options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32']; + + if (!cacheFunctionsCrc32) var crc32 = null; + + var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw']; + + // Return raw bson buffer instead of parsing it + var raw = options['raw'] == null ? false : options['raw']; + + // Return BSONRegExp objects instead of native regular expressions + var bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false; + + // Controls the promotion of values vs wrapper classes + var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; + var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; + var promoteValues = options['promoteValues'] == null ? true : options['promoteValues']; + + // Set the start index + var startIndex = index; + + // Validate that we have at least 4 bytes of buffer + if (buffer.length < 5) throw new Error('corrupt bson message < 5 bytes long'); + + // Read the document size + var size = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + + // Ensure buffer is valid size + if (size < 5 || size > buffer.length) throw new Error('corrupt bson message'); + + // Create holding object + var object = isArray ? [] : {}; + // Used for arrays to skip having to perform utf8 decoding + var arrayIndex = 0; + + var done = false; + + // While we have more left data left keep parsing + // while (buffer[index + 1] !== 0) { + while (!done) { + // Read the type + var elementType = buffer[index++]; + // If we get a zero it's the last byte, exit + if (elementType === 0) break; + + // Get the start search index + var i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + var name = isArray ? arrayIndex++ : buffer.toString('utf8', index, i); + + index = i + 1; + + if (elementType === BSON.BSON_DATA_STRING) { + var stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + object[name] = buffer.toString('utf8', index, index + stringSize - 1); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_OID) { + var oid = utils.allocBuffer(12); + buffer.copy(oid, 0, index, index + 12); + object[name] = new ObjectID(oid); + index = index + 12; + } else if (elementType === BSON.BSON_DATA_INT && promoteValues === false) { + object[name] = new Int32( + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24) + ); + } else if (elementType === BSON.BSON_DATA_INT) { + object[name] = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + } else if (elementType === BSON.BSON_DATA_NUMBER && promoteValues === false) { + object[name] = new Double(buffer.readDoubleLE(index)); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_NUMBER) { + object[name] = buffer.readDoubleLE(index); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_DATE) { + var lowBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + var highBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + object[name] = new Date(new Long(lowBits, highBits).toNumber()); + } else if (elementType === BSON.BSON_DATA_BOOLEAN) { + if (buffer[index] !== 0 && buffer[index] !== 1) throw new Error('illegal boolean type value'); + object[name] = buffer[index++] === 1; + } else if (elementType === BSON.BSON_DATA_OBJECT) { + var _index = index; + var objectSize = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + if (objectSize <= 0 || objectSize > buffer.length - index) + throw new Error('bad embedded document length in bson'); + + // We have a raw value + if (raw) { + object[name] = buffer.slice(index, index + objectSize); + } else { + object[name] = deserializeObject(buffer, _index, options, false); + } + + index = index + objectSize; + } else if (elementType === BSON.BSON_DATA_ARRAY) { + _index = index; + objectSize = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + var arrayOptions = options; + + // Stop index + var stopIndex = index + objectSize; + + // All elements of array to be returned as raw bson + if (fieldsAsRaw && fieldsAsRaw[name]) { + arrayOptions = {}; + for (var n in options) arrayOptions[n] = options[n]; + arrayOptions['raw'] = true; + } + + object[name] = deserializeObject(buffer, _index, arrayOptions, true); + index = index + objectSize; + + if (buffer[index - 1] !== 0) throw new Error('invalid array terminator byte'); + if (index !== stopIndex) throw new Error('corrupted array bson'); + } else if (elementType === BSON.BSON_DATA_UNDEFINED) { + object[name] = undefined; + } else if (elementType === BSON.BSON_DATA_NULL) { + object[name] = null; + } else if (elementType === BSON.BSON_DATA_LONG) { + // Unpack the low and high bits + lowBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + highBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + var long = new Long(lowBits, highBits); + // Promote the long if possible + if (promoteLongs && promoteValues === true) { + object[name] = + long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG) + ? long.toNumber() + : long; + } else { + object[name] = long; + } + } else if (elementType === BSON.BSON_DATA_DECIMAL128) { + // Buffer to contain the decimal bytes + var bytes = utils.allocBuffer(16); + // Copy the next 16 bytes into the bytes buffer + buffer.copy(bytes, 0, index, index + 16); + // Update index + index = index + 16; + // Assign the new Decimal128 value + var decimal128 = new Decimal128(bytes); + // If we have an alternative mapper use that + object[name] = decimal128.toObject ? decimal128.toObject() : decimal128; + } else if (elementType === BSON.BSON_DATA_BINARY) { + var binarySize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + var totalBinarySize = binarySize; + var subType = buffer[index++]; + + // Did we have a negative binary size, throw + if (binarySize < 0) throw new Error('Negative binary type element size found'); + + // Is the length longer than the document + if (binarySize > buffer.length) throw new Error('Binary type size larger than document size'); + + // Decode as raw Buffer object if options specifies it + if (buffer['slice'] != null) { + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if (binarySize < 0) + throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + if (promoteBuffers && promoteValues) { + object[name] = buffer.slice(index, index + binarySize); + } else { + object[name] = new Binary(buffer.slice(index, index + binarySize), subType); + } + } else { + var _buffer = + typeof Uint8Array !== 'undefined' + ? new Uint8Array(new ArrayBuffer(binarySize)) + : new Array(binarySize); + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if (binarySize < 0) + throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + // Copy the data + for (i = 0; i < binarySize; i++) { + _buffer[i] = buffer[index + i]; + } + + if (promoteBuffers && promoteValues) { + object[name] = _buffer; + } else { + object[name] = new Binary(_buffer, subType); + } + } + + // Update the index + index = index + binarySize; + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === false) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var source = buffer.toString('utf8', index, i); + // Create the regexp + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // For each option add the corresponding one for javascript + var optionsArray = new Array(regExpOptions.length); + + // Parse options + for (i = 0; i < regExpOptions.length; i++) { + switch (regExpOptions[i]) { + case 'm': + optionsArray[i] = 'm'; + break; + case 's': + optionsArray[i] = 'g'; + break; + case 'i': + optionsArray[i] = 'i'; + break; + } + } + + object[name] = new RegExp(source, optionsArray.join('')); + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === true) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + source = buffer.toString('utf8', index, i); + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // Set the object + object[name] = new BSONRegExp(source, regExpOptions); + } else if (elementType === BSON.BSON_DATA_SYMBOL) { + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + object[name] = new Symbol(buffer.toString('utf8', index, index + stringSize - 1)); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_TIMESTAMP) { + lowBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + highBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + object[name] = new Timestamp(lowBits, highBits); + } else if (elementType === BSON.BSON_DATA_MIN_KEY) { + object[name] = new MinKey(); + } else if (elementType === BSON.BSON_DATA_MAX_KEY) { + object[name] = new MaxKey(); + } else if (elementType === BSON.BSON_DATA_CODE) { + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + var functionString = buffer.toString('utf8', index, index + stringSize - 1); + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + var hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + } else { + object[name] = new Code(functionString); + } + + // Update parse index position + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_CODE_W_SCOPE) { + var totalSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + + // Element cannot be shorter than totalSize + stringSize + documentSize + terminator + if (totalSize < 4 + 4 + 4 + 1) { + throw new Error('code_w_scope total size shorter minimum expected length'); + } + + // Get the code string size + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + // Check if we have a valid string + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + + // Javascript function + functionString = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + // Parse the element + _index = index; + // Decode the size of the object document + objectSize = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + // Decode the scope object + var scopeObject = deserializeObject(buffer, _index, options, false); + // Adjust the index + index = index + objectSize; + + // Check if field length is to short + if (totalSize < 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to short, truncating scope'); + } + + // Check if totalSize field is to long + if (totalSize > 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to long, clips outer document'); + } + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + + object[name].scope = scopeObject; + } else { + object[name] = new Code(functionString, scopeObject); + } + } else if (elementType === BSON.BSON_DATA_DBPOINTER) { + // Get the code string size + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + // Check if we have a valid string + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + // Namespace + var namespace = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + + // Read the oid + var oidBuffer = utils.allocBuffer(12); + buffer.copy(oidBuffer, 0, index, index + 12); + oid = new ObjectID(oidBuffer); + + // Update the index + index = index + 12; + + // Split the namespace + var parts = namespace.split('.'); + var db = parts.shift(); + var collection = parts.join('.'); + // Upgrade to DBRef type + object[name] = new DBRef(collection, oid, db); + } else { + throw new Error( + 'Detected unknown BSON type ' + + elementType.toString(16) + + ' for fieldname "' + + name + + '", are you using the latest BSON parser' + ); + } + } + + // Check if the deserialization was against a valid array/object + if (size !== index - startIndex) { + if (isArray) throw new Error('corrupt array bson'); + throw new Error('corrupt object bson'); + } + + // Check if we have a db ref object + if (object['$id'] != null) object = new DBRef(object['$ref'], object['$id'], object['$db']); + return object; +}; + +/** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ +var isolateEvalWithHash = function(functionCache, hash, functionString, object) { + // Contains the value we are going to set + var value = null; + + // Check for cache hit, eval if missing and return cached function + if (functionCache[hash] == null) { + eval('value = ' + functionString); + functionCache[hash] = value; + } + // Set the object + return functionCache[hash].bind(object); +}; + +/** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ +var isolateEval = function(functionString) { + // Contains the value we are going to set + var value = null; + // Eval the function + eval('value = ' + functionString); + return value; +}; + +var BSON = {}; + +/** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ +var functionCache = (BSON.functionCache = {}); + +/** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ +BSON.BSON_DATA_NUMBER = 1; +/** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ +BSON.BSON_DATA_STRING = 2; +/** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ +BSON.BSON_DATA_OBJECT = 3; +/** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ +BSON.BSON_DATA_ARRAY = 4; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ +BSON.BSON_DATA_BINARY = 5; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_UNDEFINED + **/ +BSON.BSON_DATA_UNDEFINED = 6; +/** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ +BSON.BSON_DATA_OID = 7; +/** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ +BSON.BSON_DATA_BOOLEAN = 8; +/** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ +BSON.BSON_DATA_DATE = 9; +/** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ +BSON.BSON_DATA_NULL = 10; +/** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ +BSON.BSON_DATA_REGEXP = 11; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_DBPOINTER + **/ +BSON.BSON_DATA_DBPOINTER = 12; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ +BSON.BSON_DATA_CODE = 13; +/** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ +BSON.BSON_DATA_SYMBOL = 14; +/** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ +BSON.BSON_DATA_CODE_W_SCOPE = 15; +/** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ +BSON.BSON_DATA_INT = 16; +/** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ +BSON.BSON_DATA_TIMESTAMP = 17; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ +BSON.BSON_DATA_LONG = 18; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ +BSON.BSON_DATA_DECIMAL128 = 19; +/** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ +BSON.BSON_DATA_MIN_KEY = 0xff; +/** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ +BSON.BSON_DATA_MAX_KEY = 0x7f; + +/** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ +BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; +/** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ +BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; +/** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ +BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; +/** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ +BSON.BSON_BINARY_SUBTYPE_UUID = 3; +/** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ +BSON.BSON_BINARY_SUBTYPE_MD5 = 4; +/** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ +BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Internal long versions +var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. +var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + +module.exports = deserialize; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/parser/serializer.js b/justdanceonline-main/node_modules/bson/lib/bson/parser/serializer.js new file mode 100644 index 0000000000000000000000000000000000000000..fab9b6f3c4b0d7517038720c6d30c2b0ebd84769 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/parser/serializer.js @@ -0,0 +1,1194 @@ +'use strict'; + +var writeIEEE754 = require('../float_parser').writeIEEE754, + Long = require('../long').Long, + Map = require('../map'), + Binary = require('../binary').Binary; + +var normalizedFunctionString = require('./utils').normalizedFunctionString; + +// try { +// var _Buffer = Uint8Array; +// } catch (e) { +// _Buffer = Buffer; +// } + +var regexp = /\x00/; // eslint-disable-line no-control-regex +var ignoreKeys = ['$db', '$ref', '$id', '$clusterTime']; + +// To ensure that 0.4 of node works correctly +var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; +}; + +var isRegExp = function isRegExp(d) { + return Object.prototype.toString.call(d) === '[object RegExp]'; +}; + +var serializeString = function(buffer, key, value, index, isArray) { + // Encode String type + buffer[index++] = BSON.BSON_DATA_STRING; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes + 1; + buffer[index - 1] = 0; + // Write the string + var size = buffer.write(value, index + 4, 'utf8'); + // Write the size of the string to buffer + buffer[index + 3] = ((size + 1) >> 24) & 0xff; + buffer[index + 2] = ((size + 1) >> 16) & 0xff; + buffer[index + 1] = ((size + 1) >> 8) & 0xff; + buffer[index] = (size + 1) & 0xff; + // Update index + index = index + 4 + size; + // Write zero + buffer[index++] = 0; + return index; +}; + +var serializeNumber = function(buffer, key, value, index, isArray) { + // We have an integer value + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // If the value fits in 32 bits encode as int, if it fits in a double + // encode it as a double, otherwise long + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = (value >> 8) & 0xff; + buffer[index++] = (value >> 16) & 0xff; + buffer[index++] = (value >> 24) & 0xff; + } else if (value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } else { + // Set long type + buffer[index++] = BSON.BSON_DATA_LONG; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var longVal = Long.fromNumber(value); + var lowBits = longVal.getLowBits(); + var highBits = longVal.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = (lowBits >> 8) & 0xff; + buffer[index++] = (lowBits >> 16) & 0xff; + buffer[index++] = (lowBits >> 24) & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = (highBits >> 8) & 0xff; + buffer[index++] = (highBits >> 16) & 0xff; + buffer[index++] = (highBits >> 24) & 0xff; + } + } else { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } + + return index; +}; + +var serializeNull = function(buffer, key, value, index, isArray) { + // Set long type + buffer[index++] = BSON.BSON_DATA_NULL; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; +}; + +var serializeBoolean = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BOOLEAN; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Encode the boolean value + buffer[index++] = value ? 1 : 0; + return index; +}; + +var serializeDate = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_DATE; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the date + var dateInMilis = Long.fromNumber(value.getTime()); + var lowBits = dateInMilis.getLowBits(); + var highBits = dateInMilis.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = (lowBits >> 8) & 0xff; + buffer[index++] = (lowBits >> 16) & 0xff; + buffer[index++] = (lowBits >> 24) & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = (highBits >> 8) & 0xff; + buffer[index++] = (highBits >> 16) & 0xff; + buffer[index++] = (highBits >> 24) & 0xff; + return index; +}; + +var serializeRegExp = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + if (value.source && value.source.match(regexp) != null) { + throw Error('value ' + value.source + ' must not contain null bytes'); + } + // Adjust the index + index = index + buffer.write(value.source, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the parameters + if (value.global) buffer[index++] = 0x73; // s + if (value.ignoreCase) buffer[index++] = 0x69; // i + if (value.multiline) buffer[index++] = 0x6d; // m + // Add ending zero + buffer[index++] = 0x00; + return index; +}; + +var serializeBSONRegExp = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Check the pattern for 0 bytes + if (value.pattern.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('pattern ' + value.pattern + ' must not contain null bytes'); + } + + // Adjust the index + index = index + buffer.write(value.pattern, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the options + index = + index + + buffer.write( + value.options + .split('') + .sort() + .join(''), + index, + 'utf8' + ); + // Add ending zero + buffer[index++] = 0x00; + return index; +}; + +var serializeMinMax = function(buffer, key, value, index, isArray) { + // Write the type of either min or max key + if (value === null) { + buffer[index++] = BSON.BSON_DATA_NULL; + } else if (value._bsontype === 'MinKey') { + buffer[index++] = BSON.BSON_DATA_MIN_KEY; + } else { + buffer[index++] = BSON.BSON_DATA_MAX_KEY; + } + + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; +}; + +var serializeObjectId = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OID; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the objectId into the shared buffer + if (typeof value.id === 'string') { + buffer.write(value.id, index, 'binary'); + } else if (value.id && value.id.copy) { + value.id.copy(buffer, index, 0, 12); + } else { + throw new Error('object [' + JSON.stringify(value) + '] is not a valid ObjectId'); + } + + // Ajust index + return index + 12; +}; + +var serializeBuffer = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Get size of the buffer (current write point) + var size = value.length; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = (size >> 8) & 0xff; + buffer[index++] = (size >> 16) & 0xff; + buffer[index++] = (size >> 24) & 0xff; + // Write the default subtype + buffer[index++] = BSON.BSON_BINARY_SUBTYPE_DEFAULT; + // Copy the content form the binary field to the buffer + value.copy(buffer, index, 0, size); + // Adjust the index + index = index + size; + return index; +}; + +var serializeObject = function( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + isArray, + path +) { + for (var i = 0; i < path.length; i++) { + if (path[i] === value) throw new Error('cyclic dependency detected'); + } + + // Push value to stack + path.push(value); + // Write the type + buffer[index++] = Array.isArray(value) ? BSON.BSON_DATA_ARRAY : BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var endIndex = serializeInto( + buffer, + value, + checkKeys, + index, + depth + 1, + serializeFunctions, + ignoreUndefined, + path + ); + // Pop stack + path.pop(); + // Write size + return endIndex; +}; + +var serializeDecimal128 = function(buffer, key, value, index, isArray) { + buffer[index++] = BSON.BSON_DATA_DECIMAL128; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the data from the value + value.bytes.copy(buffer, index, 0, 16); + return index + 16; +}; + +var serializeLong = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = value._bsontype === 'Long' ? BSON.BSON_DATA_LONG : BSON.BSON_DATA_TIMESTAMP; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the date + var lowBits = value.getLowBits(); + var highBits = value.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = (lowBits >> 8) & 0xff; + buffer[index++] = (lowBits >> 16) & 0xff; + buffer[index++] = (lowBits >> 24) & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = (highBits >> 8) & 0xff; + buffer[index++] = (highBits >> 16) & 0xff; + buffer[index++] = (highBits >> 24) & 0xff; + return index; +}; + +var serializeInt32 = function(buffer, key, value, index, isArray) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = (value >> 8) & 0xff; + buffer[index++] = (value >> 16) & 0xff; + buffer[index++] = (value >> 24) & 0xff; + return index; +}; + +var serializeDouble = function(buffer, key, value, index, isArray) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + return index; +}; + +var serializeFunction = function(buffer, key, value, index, checkKeys, depth, isArray) { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + var functionString = normalizedFunctionString(value); + + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = (size >> 8) & 0xff; + buffer[index + 2] = (size >> 16) & 0xff; + buffer[index + 3] = (size >> 24) & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + return index; +}; + +var serializeCode = function( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + isArray +) { + if (value.scope && typeof value.scope === 'object') { + // Write the type + buffer[index++] = BSON.BSON_DATA_CODE_W_SCOPE; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Starting index + var startIndex = index; + + // Serialize the function + // Get the function string + var functionString = typeof value.code === 'string' ? value.code : value.code.toString(); + // Index adjustment + index = index + 4; + // Write string into buffer + var codeSize = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = codeSize & 0xff; + buffer[index + 1] = (codeSize >> 8) & 0xff; + buffer[index + 2] = (codeSize >> 16) & 0xff; + buffer[index + 3] = (codeSize >> 24) & 0xff; + // Write end 0 + buffer[index + 4 + codeSize - 1] = 0; + // Write the + index = index + codeSize + 4; + + // + // Serialize the scope value + var endIndex = serializeInto( + buffer, + value.scope, + checkKeys, + index, + depth + 1, + serializeFunctions, + ignoreUndefined + ); + index = endIndex - 1; + + // Writ the total + var totalSize = endIndex - startIndex; + + // Write the total size of the object + buffer[startIndex++] = totalSize & 0xff; + buffer[startIndex++] = (totalSize >> 8) & 0xff; + buffer[startIndex++] = (totalSize >> 16) & 0xff; + buffer[startIndex++] = (totalSize >> 24) & 0xff; + // Write trailing zero + buffer[index++] = 0; + } else { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + functionString = value.code.toString(); + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = (size >> 8) & 0xff; + buffer[index + 2] = (size >> 16) & 0xff; + buffer[index + 3] = (size >> 24) & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + } + + return index; +}; + +var serializeBinary = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Extract the buffer + var data = value.value(true); + // Calculate size + var size = value.position; + // Add the deprecated 02 type 4 bytes of size to total + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) size = size + 4; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = (size >> 8) & 0xff; + buffer[index++] = (size >> 16) & 0xff; + buffer[index++] = (size >> 24) & 0xff; + // Write the subtype to the buffer + buffer[index++] = value.sub_type; + + // If we have binary type 2 the 4 first bytes are the size + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + size = size - 4; + buffer[index++] = size & 0xff; + buffer[index++] = (size >> 8) & 0xff; + buffer[index++] = (size >> 16) & 0xff; + buffer[index++] = (size >> 24) & 0xff; + } + + // Write the data to the object + data.copy(buffer, index, 0, value.position); + // Adjust the index + index = index + value.position; + return index; +}; + +var serializeSymbol = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_SYMBOL; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the string + var size = buffer.write(value.value, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = (size >> 8) & 0xff; + buffer[index + 2] = (size >> 16) & 0xff; + buffer[index + 3] = (size >> 24) & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0x00; + return index; +}; + +var serializeDBRef = function(buffer, key, value, index, depth, serializeFunctions, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + var startIndex = index; + var endIndex; + + // Serialize object + if (null != value.db) { + endIndex = serializeInto( + buffer, + { + $ref: value.namespace, + $id: value.oid, + $db: value.db + }, + false, + index, + depth + 1, + serializeFunctions + ); + } else { + endIndex = serializeInto( + buffer, + { + $ref: value.namespace, + $id: value.oid + }, + false, + index, + depth + 1, + serializeFunctions + ); + } + + // Calculate object size + var size = endIndex - startIndex; + // Write the size + buffer[startIndex++] = size & 0xff; + buffer[startIndex++] = (size >> 8) & 0xff; + buffer[startIndex++] = (size >> 16) & 0xff; + buffer[startIndex++] = (size >> 24) & 0xff; + // Set index + return endIndex; +}; + +var serializeInto = function serializeInto( + buffer, + object, + checkKeys, + startingIndex, + depth, + serializeFunctions, + ignoreUndefined, + path +) { + startingIndex = startingIndex || 0; + path = path || []; + + // Push the object to the path + path.push(object); + + // Start place to serialize into + var index = startingIndex + 4; + // var self = this; + + // Special case isArray + if (Array.isArray(object)) { + // Get object keys + for (var i = 0; i < object.length; i++) { + var key = '' + i; + var value = object[i]; + + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + var type = typeof value; + if (type === 'string') { + index = serializeString(buffer, key, value, index, true); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index, true); + } else if(type === 'bigint') { + throw new TypeError('Unsupported type BigInt, please use Decimal128'); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index, true); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index, true); + } else if (value === undefined) { + index = serializeNull(buffer, key, value, index, true); + } else if (value === null) { + index = serializeNull(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + index = serializeObjectId(buffer, key, value, index, true); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index, true); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index, true); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + true, + path + ); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index, true); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + true + ); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + true + ); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, true); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index, true); + } else if (typeof value['_bsontype'] !== 'undefined') { + throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); + } + } + } else if (object instanceof Map) { + var iterator = object.entries(); + var done = false; + + while (!done) { + // Unpack the next entry + var entry = iterator.next(); + done = entry.done; + // Are we done, then skip and terminate + if (done) continue; + + // Get the entry values + key = entry.value[0]; + value = entry.value[1]; + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if(type === 'bigint') { + throw new TypeError('Unsupported type BigInt, please use Decimal128'); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + // } else if (value === undefined && ignoreUndefined === true) { + } else if (value === null || (value === undefined && ignoreUndefined === false)) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + false, + path + ); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined + ); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } else if (typeof value['_bsontype'] !== 'undefined') { + throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); + } + } + } else { + // Did we provide a custom serialization method + if (object.toBSON) { + if (typeof object.toBSON !== 'function') throw new Error('toBSON is not a function'); + object = object.toBSON(); + if (object != null && typeof object !== 'object') + throw new Error('toBSON function did not return an object'); + } + + // Iterate over all the keys + for (key in object) { + value = object[key]; + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if(type === 'bigint') { + throw new TypeError('Unsupported type BigInt, please use Decimal128'); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + } else if (value === undefined) { + if (ignoreUndefined === false) index = serializeNull(buffer, key, value, index); + } else if (value === null) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + false, + path + ); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined + ); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } else if (typeof value['_bsontype'] !== 'undefined') { + throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); + } + } + } + + // Remove the path + path.pop(); + + // Final padding byte for object + buffer[index++] = 0x00; + + // Final size + var size = index - startingIndex; + // Write the size of the object + buffer[startingIndex++] = size & 0xff; + buffer[startingIndex++] = (size >> 8) & 0xff; + buffer[startingIndex++] = (size >> 16) & 0xff; + buffer[startingIndex++] = (size >> 24) & 0xff; + return index; +}; + +var BSON = {}; + +/** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ +// var functionCache = (BSON.functionCache = {}); + +/** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ +BSON.BSON_DATA_NUMBER = 1; +/** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ +BSON.BSON_DATA_STRING = 2; +/** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ +BSON.BSON_DATA_OBJECT = 3; +/** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ +BSON.BSON_DATA_ARRAY = 4; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ +BSON.BSON_DATA_BINARY = 5; +/** + * ObjectID BSON Type, deprecated + * + * @classconstant BSON_DATA_UNDEFINED + **/ +BSON.BSON_DATA_UNDEFINED = 6; +/** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ +BSON.BSON_DATA_OID = 7; +/** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ +BSON.BSON_DATA_BOOLEAN = 8; +/** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ +BSON.BSON_DATA_DATE = 9; +/** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ +BSON.BSON_DATA_NULL = 10; +/** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ +BSON.BSON_DATA_REGEXP = 11; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ +BSON.BSON_DATA_CODE = 13; +/** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ +BSON.BSON_DATA_SYMBOL = 14; +/** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ +BSON.BSON_DATA_CODE_W_SCOPE = 15; +/** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ +BSON.BSON_DATA_INT = 16; +/** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ +BSON.BSON_DATA_TIMESTAMP = 17; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ +BSON.BSON_DATA_LONG = 18; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ +BSON.BSON_DATA_DECIMAL128 = 19; +/** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ +BSON.BSON_DATA_MIN_KEY = 0xff; +/** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ +BSON.BSON_DATA_MAX_KEY = 0x7f; +/** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ +BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; +/** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ +BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; +/** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ +BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; +/** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ +BSON.BSON_BINARY_SUBTYPE_UUID = 3; +/** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ +BSON.BSON_BINARY_SUBTYPE_MD5 = 4; +/** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ +BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Internal long versions +// var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. +// var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + +module.exports = serializeInto; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/parser/utils.js b/justdanceonline-main/node_modules/bson/lib/bson/parser/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..6faa439694ec87c8076d53932b055ab95a266e45 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/parser/utils.js @@ -0,0 +1,28 @@ +'use strict'; + +/** + * Normalizes our expected stringified form of a function across versions of node + * @param {Function} fn The function to stringify + */ +function normalizedFunctionString(fn) { + return fn.toString().replace(/function *\(/, 'function ('); +} + +function newBuffer(item, encoding) { + return new Buffer(item, encoding); +} + +function allocBuffer() { + return Buffer.alloc.apply(Buffer, arguments); +} + +function toBuffer() { + return Buffer.from.apply(Buffer, arguments); +} + +module.exports = { + normalizedFunctionString: normalizedFunctionString, + allocBuffer: typeof Buffer.alloc === 'function' ? allocBuffer : newBuffer, + toBuffer: typeof Buffer.from === 'function' ? toBuffer : newBuffer +}; + diff --git a/justdanceonline-main/node_modules/bson/lib/bson/regexp.js b/justdanceonline-main/node_modules/bson/lib/bson/regexp.js new file mode 100644 index 0000000000000000000000000000000000000000..108f016665d5ed283d143528d8cfd111a835061b --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/regexp.js @@ -0,0 +1,33 @@ +/** + * A class representation of the BSON RegExp type. + * + * @class + * @return {BSONRegExp} A MinKey instance + */ +function BSONRegExp(pattern, options) { + if (!(this instanceof BSONRegExp)) return new BSONRegExp(); + + // Execute + this._bsontype = 'BSONRegExp'; + this.pattern = pattern || ''; + this.options = options || ''; + + // Validate options + for (var i = 0; i < this.options.length; i++) { + if ( + !( + this.options[i] === 'i' || + this.options[i] === 'm' || + this.options[i] === 'x' || + this.options[i] === 'l' || + this.options[i] === 's' || + this.options[i] === 'u' + ) + ) { + throw new Error('the regular expression options [' + this.options[i] + '] is not supported'); + } + } +} + +module.exports = BSONRegExp; +module.exports.BSONRegExp = BSONRegExp; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/symbol.js b/justdanceonline-main/node_modules/bson/lib/bson/symbol.js new file mode 100644 index 0000000000000000000000000000000000000000..ba20cabea0350660ed650981e758d9c2e278e041 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/symbol.js @@ -0,0 +1,50 @@ +// Custom inspect property name / symbol. +var inspect = Buffer ? require('util').inspect.custom || 'inspect' : 'inspect'; + +/** + * A class representation of the BSON Symbol type. + * + * @class + * @deprecated + * @param {string} value the string representing the symbol. + * @return {Symbol} + */ +function Symbol(value) { + if (!(this instanceof Symbol)) return new Symbol(value); + this._bsontype = 'Symbol'; + this.value = value; +} + +/** + * Access the wrapped string value. + * + * @method + * @return {String} returns the wrapped string. + */ +Symbol.prototype.valueOf = function() { + return this.value; +}; + +/** + * @ignore + */ +Symbol.prototype.toString = function() { + return this.value; +}; + +/** + * @ignore + */ +Symbol.prototype[inspect] = function() { + return this.value; +}; + +/** + * @ignore + */ +Symbol.prototype.toJSON = function() { + return this.value; +}; + +module.exports = Symbol; +module.exports.Symbol = Symbol; diff --git a/justdanceonline-main/node_modules/bson/lib/bson/timestamp.js b/justdanceonline-main/node_modules/bson/lib/bson/timestamp.js new file mode 100644 index 0000000000000000000000000000000000000000..dc61a6ccdb4cf570ebfbe6d511722e0565aa60a2 --- /dev/null +++ b/justdanceonline-main/node_modules/bson/lib/bson/timestamp.js @@ -0,0 +1,854 @@ +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright 2009 Google Inc. All Rights Reserved + +/** + * This type is for INTERNAL use in MongoDB only and should not be used in applications. + * The appropriate corresponding type is the JavaScript Date type. + * + * Defines a Timestamp class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Timestamp". This + * implementation is derived from TimestampLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Timestamps. + * + * The internal representation of a Timestamp is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Timestamp. + * @param {number} high the high (signed) 32 bits of the Timestamp. + */ +function Timestamp(low, high) { + if (!(this instanceof Timestamp)) return new Timestamp(low, high); + this._bsontype = 'Timestamp'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. +} + +/** + * Return the int value. + * + * @return {number} the value, assuming it is a 32-bit integer. + */ +Timestamp.prototype.toInt = function() { + return this.low_; +}; + +/** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ +Timestamp.prototype.toNumber = function() { + return this.high_ * Timestamp.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); +}; + +/** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ +Timestamp.prototype.toJSON = function() { + return this.toString(); +}; + +/** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ +Timestamp.prototype.toString = function(opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + // We need to change the Timestamp value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixTimestamp = Timestamp.fromNumber(radix); + var div = this.div(radixTimestamp); + var rem = div.multiply(radixTimestamp).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } +}; + +/** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ +Timestamp.prototype.getHighBits = function() { + return this.high_; +}; + +/** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ +Timestamp.prototype.getLowBits = function() { + return this.low_; +}; + +/** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ +Timestamp.prototype.getLowBitsUnsigned = function() { + return this.low_ >= 0 ? this.low_ : Timestamp.TWO_PWR_32_DBL_ + this.low_; +}; + +/** + * Returns the number of bits needed to represent the absolute value of this Timestamp. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Timestamp. + */ +Timestamp.prototype.getNumBitsAbs = function() { + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & (1 << bit)) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } +}; + +/** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ +Timestamp.prototype.isZero = function() { + return this.high_ === 0 && this.low_ === 0; +}; + +/** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ +Timestamp.prototype.isNegative = function() { + return this.high_ < 0; +}; + +/** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ +Timestamp.prototype.isOdd = function() { + return (this.low_ & 1) === 1; +}; + +/** + * Return whether this Timestamp equals the other + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp equals the other + */ +Timestamp.prototype.equals = function(other) { + return this.high_ === other.high_ && this.low_ === other.low_; +}; + +/** + * Return whether this Timestamp does not equal the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp does not equal the other. + */ +Timestamp.prototype.notEquals = function(other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; +}; + +/** + * Return whether this Timestamp is less than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than the other. + */ +Timestamp.prototype.lessThan = function(other) { + return this.compare(other) < 0; +}; + +/** + * Return whether this Timestamp is less than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than or equal to the other. + */ +Timestamp.prototype.lessThanOrEqual = function(other) { + return this.compare(other) <= 0; +}; + +/** + * Return whether this Timestamp is greater than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than the other. + */ +Timestamp.prototype.greaterThan = function(other) { + return this.compare(other) > 0; +}; + +/** + * Return whether this Timestamp is greater than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than or equal to the other. + */ +Timestamp.prototype.greaterThanOrEqual = function(other) { + return this.compare(other) >= 0; +}; + +/** + * Compares this Timestamp with the given one. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ +Timestamp.prototype.compare = function(other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } +}; + +/** + * The negation of this value. + * + * @method + * @return {Timestamp} the negation of this value. + */ +Timestamp.prototype.negate = function() { + if (this.equals(Timestamp.MIN_VALUE)) { + return Timestamp.MIN_VALUE; + } else { + return this.not().add(Timestamp.ONE); + } +}; + +/** + * Returns the sum of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to add to this one. + * @return {Timestamp} the sum of this and the given Timestamp. + */ +Timestamp.prototype.add = function(other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns the difference of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to subtract from this. + * @return {Timestamp} the difference of this and the given Timestamp. + */ +Timestamp.prototype.subtract = function(other) { + return this.add(other.negate()); +}; + +/** + * Returns the product of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to multiply with this. + * @return {Timestamp} the product of this and the other. + */ +Timestamp.prototype.multiply = function(other) { + if (this.isZero()) { + return Timestamp.ZERO; + } else if (other.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + return other.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } else if (other.equals(Timestamp.MIN_VALUE)) { + return this.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate() + .multiply(other) + .negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Timestamps are small, use float multiplication + if (this.lessThan(Timestamp.TWO_PWR_24_) && other.lessThan(Timestamp.TWO_PWR_24_)) { + return Timestamp.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Timestamp into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns this Timestamp divided by the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to divide. + * @return {Timestamp} this Timestamp divided by the given one. + */ +Timestamp.prototype.div = function(other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + if (other.equals(Timestamp.ONE) || other.equals(Timestamp.NEG_ONE)) { + return Timestamp.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Timestamp.ZERO)) { + return other.isNegative() ? Timestamp.ONE : Timestamp.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate() + .div(other) + .negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Timestamp.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Timestamp.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Timestamp.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Timestamp.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; +}; + +/** + * Returns this Timestamp modulo the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to mod. + * @return {Timestamp} this Timestamp modulo the given one. + */ +Timestamp.prototype.modulo = function(other) { + return this.subtract(this.div(other).multiply(other)); +}; + +/** + * The bitwise-NOT of this value. + * + * @method + * @return {Timestamp} the bitwise-NOT of this value. + */ +Timestamp.prototype.not = function() { + return Timestamp.fromBits(~this.low_, ~this.high_); +}; + +/** + * Returns the bitwise-AND of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to AND. + * @return {Timestamp} the bitwise-AND of this and the other. + */ +Timestamp.prototype.and = function(other) { + return Timestamp.fromBits(this.low_ & other.low_, this.high_ & other.high_); +}; + +/** + * Returns the bitwise-OR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to OR. + * @return {Timestamp} the bitwise-OR of this and the other. + */ +Timestamp.prototype.or = function(other) { + return Timestamp.fromBits(this.low_ | other.low_, this.high_ | other.high_); +}; + +/** + * Returns the bitwise-XOR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to XOR. + * @return {Timestamp} the bitwise-XOR of this and the other. + */ +Timestamp.prototype.xor = function(other) { + return Timestamp.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); +}; + +/** + * Returns this Timestamp with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the left by the given amount. + */ +Timestamp.prototype.shiftLeft = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Timestamp.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits))); + } else { + return Timestamp.fromBits(0, low << (numBits - 32)); + } + } +}; + +/** + * Returns this Timestamp with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount. + */ +Timestamp.prototype.shiftRight = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits); + } else { + return Timestamp.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1); + } + } +}; + +/** + * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ +Timestamp.prototype.shiftRightUnsigned = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits); + } else if (numBits === 32) { + return Timestamp.fromBits(high, 0); + } else { + return Timestamp.fromBits(high >>> (numBits - 32), 0); + } + } +}; + +/** + * Returns a Timestamp representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromInt = function(value) { + if (-128 <= value && value < 128) { + var cachedObj = Timestamp.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Timestamp(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Timestamp.INT_CACHE_[value] = obj; + } + return obj; +}; + +/** + * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromNumber = function(value) { + if (isNaN(value) || !isFinite(value)) { + return Timestamp.ZERO; + } else if (value <= -Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MIN_VALUE; + } else if (value + 1 >= Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MAX_VALUE; + } else if (value < 0) { + return Timestamp.fromNumber(-value).negate(); + } else { + return new Timestamp( + (value % Timestamp.TWO_PWR_32_DBL_) | 0, + (value / Timestamp.TWO_PWR_32_DBL_) | 0 + ); + } +}; + +/** + * Returns a Timestamp representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromBits = function(lowBits, highBits) { + return new Timestamp(lowBits, highBits); +}; + +/** + * Returns a Timestamp representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Timestamp. + * @param {number} opt_radix the radix in which the text is written. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromString = function(str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Timestamp.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 8)); + + var result = Timestamp.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Timestamp.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Timestamp.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Timestamp.fromNumber(value)); + } + } + return result; +}; + +// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the +// from* methods on which they depend. + +/** + * A cache of the Timestamp representations of small integer values. + * @type {Object} + * @ignore + */ +Timestamp.INT_CACHE_ = {}; + +// NOTE: the compiler should inline these constant values below and then remove +// these variables, so there should be no runtime penalty for these. + +/** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_16_DBL_ = 1 << 16; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_24_DBL_ = 1 << 24; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_32_DBL_ = Timestamp.TWO_PWR_16_DBL_ * Timestamp.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_31_DBL_ = Timestamp.TWO_PWR_32_DBL_ / 2; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_48_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_64_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_32_DBL_; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_63_DBL_ = Timestamp.TWO_PWR_64_DBL_ / 2; + +/** @type {Timestamp} */ +Timestamp.ZERO = Timestamp.fromInt(0); + +/** @type {Timestamp} */ +Timestamp.ONE = Timestamp.fromInt(1); + +/** @type {Timestamp} */ +Timestamp.NEG_ONE = Timestamp.fromInt(-1); + +/** @type {Timestamp} */ +Timestamp.MAX_VALUE = Timestamp.fromBits(0xffffffff | 0, 0x7fffffff | 0); + +/** @type {Timestamp} */ +Timestamp.MIN_VALUE = Timestamp.fromBits(0, 0x80000000 | 0); + +/** + * @type {Timestamp} + * @ignore + */ +Timestamp.TWO_PWR_24_ = Timestamp.fromInt(1 << 24); + +/** + * Expose. + */ +module.exports = Timestamp; +module.exports.Timestamp = Timestamp; diff --git a/justdanceonline-main/node_modules/bson/package.json b/justdanceonline-main/node_modules/bson/package.json new file mode 100644 index 0000000000000000000000000000000000000000..5dc76e8303508766ecb201914f93eab22023552a --- /dev/null +++ b/justdanceonline-main/node_modules/bson/package.json @@ -0,0 +1,58 @@ +{ + "name": "bson", + "description": "A bson parser for node.js and the browser", + "keywords": [ + "mongodb", + "bson", + "parser" + ], + "files": [ + "lib", + "index.js", + "browser_build", + "bower.json" + ], + "version": "1.1.6", + "author": "Christian Amor Kvalheim ", + "contributors": [], + "repository": "mongodb/js-bson", + "bugs": { + "mail": "node-mongodb-native@googlegroups.com", + "url": "https://github.com/mongodb/js-bson/issues" + }, + "devDependencies": { + "benchmark": "1.0.0", + "colors": "1.1.0", + "nodeunit": "0.9.0", + "babel-core": "^6.14.0", + "babel-loader": "^6.2.5", + "babel-polyfill": "^6.13.0", + "babel-preset-es2015": "^6.14.0", + "babel-preset-stage-0": "^6.5.0", + "babel-register": "^6.14.0", + "conventional-changelog-cli": "^1.3.5", + "standard-version": "^9.1.1", + "webpack": "^1.13.2", + "webpack-polyfills-plugin": "0.0.9" + }, + "config": { + "native": false + }, + "main": "./index", + "directories": { + "lib": "./lib/bson" + }, + "engines": { + "node": ">=0.6.19" + }, + "scripts": { + "test": "nodeunit ./test/node", + "build": "webpack --config ./webpack.dist.config.js", + "changelog": "conventional-changelog -p angular -i HISTORY.md -s", + "lint": "eslint lib test", + "format": "prettier --print-width 100 --tab-width 2 --single-quote --write 'test/**/*.js' 'lib/**/*.js'", + "release": "standard-version -i HISTORY.md" + }, + "browser": "lib/bson/bson.js", + "license": "Apache-2.0" +} diff --git a/justdanceonline-main/node_modules/buffer-crc32/LICENSE b/justdanceonline-main/node_modules/buffer-crc32/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..4cef10eb7b161e48e39d2cc4def3fd81db6cf884 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer-crc32/LICENSE @@ -0,0 +1,19 @@ +The MIT License + +Copyright (c) 2013 Brian J. Brennan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/buffer-crc32/README.md b/justdanceonline-main/node_modules/buffer-crc32/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0d9d8b83595b57dd04076fd2372ac47b4e526750 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer-crc32/README.md @@ -0,0 +1,47 @@ +# buffer-crc32 + +[![Build Status](https://secure.travis-ci.org/brianloveswords/buffer-crc32.png?branch=master)](http://travis-ci.org/brianloveswords/buffer-crc32) + +crc32 that works with binary data and fancy character sets, outputs +buffer, signed or unsigned data and has tests. + +Derived from the sample CRC implementation in the PNG specification: http://www.w3.org/TR/PNG/#D-CRCAppendix + +# install +``` +npm install buffer-crc32 +``` + +# example +```js +var crc32 = require('buffer-crc32'); +// works with buffers +var buf = Buffer([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]) +crc32(buf) // -> + +// has convenience methods for getting signed or unsigned ints +crc32.signed(buf) // -> -1805997238 +crc32.unsigned(buf) // -> 2488970058 + +// will cast to buffer if given a string, so you can +// directly use foreign characters safely +crc32('自動販売機') // -> + +// and works in append mode too +var partialCrc = crc32('hey'); +var partialCrc = crc32(' ', partialCrc); +var partialCrc = crc32('sup', partialCrc); +var partialCrc = crc32(' ', partialCrc); +var finalCrc = crc32('bros', partialCrc); // -> +``` + +# tests +This was tested against the output of zlib's crc32 method. You can run +the tests with`npm test` (requires tap) + +# see also +https://github.com/alexgorbatchev/node-crc, `crc.buffer.crc32` also +supports buffer inputs and return unsigned ints (thanks @tjholowaychuk). + +# license +MIT/X11 diff --git a/justdanceonline-main/node_modules/buffer-crc32/index.js b/justdanceonline-main/node_modules/buffer-crc32/index.js new file mode 100644 index 0000000000000000000000000000000000000000..6727dd39bb09ada1f02f48e11cacb435b86771c7 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer-crc32/index.js @@ -0,0 +1,111 @@ +var Buffer = require('buffer').Buffer; + +var CRC_TABLE = [ + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d +]; + +if (typeof Int32Array !== 'undefined') { + CRC_TABLE = new Int32Array(CRC_TABLE); +} + +function ensureBuffer(input) { + if (Buffer.isBuffer(input)) { + return input; + } + + var hasNewBufferAPI = + typeof Buffer.alloc === "function" && + typeof Buffer.from === "function"; + + if (typeof input === "number") { + return hasNewBufferAPI ? Buffer.alloc(input) : new Buffer(input); + } + else if (typeof input === "string") { + return hasNewBufferAPI ? Buffer.from(input) : new Buffer(input); + } + else { + throw new Error("input must be buffer, number, or string, received " + + typeof input); + } +} + +function bufferizeInt(num) { + var tmp = ensureBuffer(4); + tmp.writeInt32BE(num, 0); + return tmp; +} + +function _crc32(buf, previous) { + buf = ensureBuffer(buf); + if (Buffer.isBuffer(previous)) { + previous = previous.readUInt32BE(0); + } + var crc = ~~previous ^ -1; + for (var n = 0; n < buf.length; n++) { + crc = CRC_TABLE[(crc ^ buf[n]) & 0xff] ^ (crc >>> 8); + } + return (crc ^ -1); +} + +function crc32() { + return bufferizeInt(_crc32.apply(null, arguments)); +} +crc32.signed = function () { + return _crc32.apply(null, arguments); +}; +crc32.unsigned = function () { + return _crc32.apply(null, arguments) >>> 0; +}; + +module.exports = crc32; diff --git a/justdanceonline-main/node_modules/buffer-crc32/package.json b/justdanceonline-main/node_modules/buffer-crc32/package.json new file mode 100644 index 0000000000000000000000000000000000000000..e896bec584f960a953beb3b1f2291f5e33439a86 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer-crc32/package.json @@ -0,0 +1,39 @@ +{ + "author": "Brian J. Brennan ", + "name": "buffer-crc32", + "description": "A pure javascript CRC32 algorithm that plays nice with binary data", + "version": "0.2.13", + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/brianloveswords/buffer-crc32/raw/master/LICENSE" + } + ], + "contributors": [ + { + "name": "Vladimir Kuznetsov", + "github": "mistakster" + } + ], + "homepage": "https://github.com/brianloveswords/buffer-crc32", + "repository": { + "type": "git", + "url": "git://github.com/brianloveswords/buffer-crc32.git" + }, + "main": "index.js", + "scripts": { + "test": "./node_modules/.bin/tap tests/*.test.js" + }, + "dependencies": {}, + "devDependencies": { + "tap": "~0.2.5" + }, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "license": "MIT", + "files": [ + "index.js" + ] +} diff --git a/justdanceonline-main/node_modules/buffer/.travis.yml b/justdanceonline-main/node_modules/buffer/.travis.yml new file mode 100644 index 0000000000000000000000000000000000000000..6789094e0aa1d76e81e3bd941941421d8a441b6a --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: +- 'node' +sudo: false +env: + global: + - secure: AUsK+8fYSpwIMHcVt8Mu9SpG9RPHp4XDAwCQfpU3d5U65q8OVVC6C+XjvnNmEd2PoEJRHem8ZXEyRVfGM1sttKZLZP70TEKZOpOiRQnZiTQCAJ92TfGsDj/F4LoWSjUZUpfeg9b3iSp8G5dVw3+q9QZPIu6eykASK6bfcg//Cyg= + - secure: eQBKJWu7XbhAN4ZvOOhMenC0IPpoYj+wZVVzzsLwUppfJqlrHV0CUW8rJdvZNiaGhYhoyHTnAcynpTE5kZfg3XjevOvF8PGY5wUYCki9BI+rp+pvVPZE/DNUAQpFR2gd2nxMJ4kYv7GVb6i/DfuqJa0h8IuY4zcMuKWwbQd3Az8= diff --git a/justdanceonline-main/node_modules/buffer/AUTHORS.md b/justdanceonline-main/node_modules/buffer/AUTHORS.md new file mode 100644 index 0000000000000000000000000000000000000000..8df343a60dd7ddedbeddbbf0ec3689803c5a2a4b --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/AUTHORS.md @@ -0,0 +1,44 @@ +# Authors + +#### Ordered by first contribution. + +- Romain Beauxis (toots@rastageeks.org) +- Tobias Koppers (tobias.koppers@googlemail.com) +- Janus (ysangkok@gmail.com) +- Rainer Dreyer (rdrey1@gmail.com) +- Tõnis Tiigi (tonistiigi@gmail.com) +- James Halliday (mail@substack.net) +- Michael Williamson (mike@zwobble.org) +- elliottcable (github@elliottcable.name) +- rafael (rvalle@livelens.net) +- Andrew Kelley (superjoe30@gmail.com) +- Andreas Madsen (amwebdk@gmail.com) +- Mike Brevoort (mike.brevoort@pearson.com) +- Brian White (mscdex@mscdex.net) +- Feross Aboukhadijeh (feross@feross.org) +- Ruben Verborgh (ruben@verborgh.org) +- eliang (eliang.cs@gmail.com) +- Jesse Tane (jesse.tane@gmail.com) +- Alfonso Boza (alfonso@cloud.com) +- Mathias Buus (mathiasbuus@gmail.com) +- Devon Govett (devongovett@gmail.com) +- Daniel Cousens (github@dcousens.com) +- Joseph Dykstra (josephdykstra@gmail.com) +- Parsha Pourkhomami (parshap+git@gmail.com) +- Damjan Košir (damjan.kosir@gmail.com) +- daverayment (dave.rayment@gmail.com) +- kawanet (u-suke@kawa.net) +- Linus Unnebäck (linus@folkdatorn.se) +- Nolan Lawson (nolan.lawson@gmail.com) +- Calvin Metcalf (calvin.metcalf@gmail.com) +- Koki Takahashi (hakatasiloving@gmail.com) +- Guy Bedford (guybedford@gmail.com) +- Jan Schär (jscissr@gmail.com) +- RaulTsc (tomescu.raul@gmail.com) +- Matthieu Monsch (monsch@alum.mit.edu) +- Dan Ehrenberg (littledan@chromium.org) +- Kirill Fomichev (fanatid@ya.ru) +- Yusuke Kawasaki (u-suke@kawa.net) +- DC (dcposch@dcpos.ch) + +#### Generated by bin/update-authors.sh. diff --git a/justdanceonline-main/node_modules/buffer/LICENSE b/justdanceonline-main/node_modules/buffer/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..d6bf75dcf1f6f701d4a8fc502f01f93e9d1284f2 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh, and other contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/buffer/README.md b/justdanceonline-main/node_modules/buffer/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d3b82f66a3271ca6a40ffe7daa5a3c6cb658ec66 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/README.md @@ -0,0 +1,378 @@ +# buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][npm-url] + +#### The buffer module from [node.js](https://nodejs.org/), for the browser. + +[![saucelabs][saucelabs-image]][saucelabs-url] + +[travis-image]: https://img.shields.io/travis/feross/buffer/master.svg +[travis-url]: https://travis-ci.org/feross/buffer +[npm-image]: https://img.shields.io/npm/v/buffer.svg +[npm-url]: https://npmjs.org/package/buffer +[downloads-image]: https://img.shields.io/npm/dm/buffer.svg +[saucelabs-image]: https://saucelabs.com/browser-matrix/buffer.svg +[saucelabs-url]: https://saucelabs.com/u/buffer + +With [browserify](http://browserify.org), simply `require('buffer')` or use the `Buffer` global and you will get this module. + +The goal is to provide an API that is 100% identical to +[node's Buffer API](https://nodejs.org/api/buffer.html). Read the +[official docs](https://nodejs.org/api/buffer.html) for the full list of properties, +instance methods, and class methods that are supported. + +## features + +- Manipulate binary data like a boss, in all browsers -- even IE6! +- Super fast. Backed by Typed Arrays (`Uint8Array`/`ArrayBuffer`, not `Object`) +- Extremely small bundle size (**5.04KB minified + gzipped**, 35.5KB with comments) +- Excellent browser support (IE 6+, Chrome 4+, Firefox 3+, Safari 5.1+, Opera 11+, iOS, etc.) +- Preserves Node API exactly, with one minor difference (see below) +- Square-bracket `buf[4]` notation works, even in old browsers like IE6! +- Does not modify any browser prototypes or put anything on `window` +- Comprehensive test suite (including all buffer tests from node.js core) + + +## install + +To use this module directly (without browserify), install it: + +```bash +npm install buffer +``` + +This module was previously called **native-buffer-browserify**, but please use **buffer** +from now on. + +A standalone bundle is available [here](https://wzrd.in/standalone/buffer), for non-browserify users. + + +## usage + +The module's API is identical to node's `Buffer` API. Read the +[official docs](https://nodejs.org/api/buffer.html) for the full list of properties, +instance methods, and class methods that are supported. + +As mentioned above, `require('buffer')` or use the `Buffer` global with +[browserify](http://browserify.org) and this module will automatically be included +in your bundle. Almost any npm module will work in the browser, even if it assumes that +the node `Buffer` API will be available. + +To depend on this module explicitly (without browserify), require it like this: + +```js +var Buffer = require('buffer/').Buffer // note: the trailing slash is important! +``` + +To require this module explicitly, use `require('buffer/')` which tells the node.js module +lookup algorithm (also used by browserify) to use the **npm module** named `buffer` +instead of the **node.js core** module named `buffer`! + + +## how does it work? + +The Buffer constructor returns instances of `Uint8Array` that have their prototype +changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of `Uint8Array`, +so the returned instances will have all the node `Buffer` methods and the +`Uint8Array` methods. Square bracket notation works as expected -- it returns a +single octet. + +The `Uint8Array` prototype remains unmodified. + + +## one minor difference + +#### In old browsers, `buf.slice()` does not modify parent buffer's memory + +If you only support modern browsers (specifically, those with typed array support), +then this issue does not affect you. If you support super old browsers, then read on. + +In node, the `slice()` method returns a new `Buffer` that shares underlying memory +with the original Buffer. When you modify one buffer, you modify the other. +[Read more.](https://nodejs.org/api/buffer.html#buffer_buf_slice_start_end) + +In browsers with typed array support, this `Buffer` implementation supports this +behavior. In browsers without typed arrays, an alternate buffer implementation is +used that is based on `Object` which has no mechanism to point separate +`Buffer`s to the same underlying slab of memory. + +You can see which browser versions lack typed array support +[here](https://github.com/feross/buffer/blob/master/index.js#L22-L48). + + +## tracking the latest node api + +This module tracks the Buffer API in the latest (unstable) version of node.js. The Buffer +API is considered **stable** in the +[node stability index](https://nodejs.org/docs/latest/api/documentation.html#documentation_stability_index), +so it is unlikely that there will ever be breaking changes. +Nonetheless, when/if the Buffer API changes in node, this module's API will change +accordingly. + +## related packages + +- [`buffer-equals`](https://www.npmjs.com/package/buffer-equals) - Node.js 0.12 buffer.equals() ponyfill +- [`buffer-reverse`](https://www.npmjs.com/package/buffer-reverse) - A lite module for reverse-operations on buffers +- [`buffer-xor`](https://www.npmjs.com/package/buffer-xor) - A simple module for bitwise-xor on buffers +- [`is-buffer`](https://www.npmjs.com/package/is-buffer) - Determine if an object is a Buffer without including the whole `Buffer` package +- [`typedarray-to-buffer`](https://www.npmjs.com/package/typedarray-to-buffer) - Convert a typed array to a Buffer without a copy + +## performance + +See perf tests in `/perf`. + +`BrowserBuffer` is the browser `buffer` module (this repo). `Uint8Array` is included as a +sanity check (since `BrowserBuffer` uses `Uint8Array` under the hood, `Uint8Array` will +always be at least a bit faster). Finally, `NodeBuffer` is the node.js buffer module, +which is included to compare against. + +NOTE: Performance has improved since these benchmarks were taken. PR welcoem to update the README. + +### Chrome 38 + +| Method | Operations | Accuracy | Sampled | Fastest | +|:-------|:-----------|:---------|:--------|:-------:| +| BrowserBuffer#bracket-notation | 11,457,464 ops/sec | ±0.86% | 66 | ✓ | +| Uint8Array#bracket-notation | 10,824,332 ops/sec | ±0.74% | 65 | | +| | | | | +| BrowserBuffer#concat | 450,532 ops/sec | ±0.76% | 68 | | +| Uint8Array#concat | 1,368,911 ops/sec | ±1.50% | 62 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 903,001 ops/sec | ±0.96% | 67 | | +| Uint8Array#copy(16000) | 1,422,441 ops/sec | ±1.04% | 66 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 11,431,358 ops/sec | ±0.46% | 69 | | +| Uint8Array#copy(16) | 13,944,163 ops/sec | ±1.12% | 68 | ✓ | +| | | | | +| BrowserBuffer#new(16000) | 106,329 ops/sec | ±6.70% | 44 | | +| Uint8Array#new(16000) | 131,001 ops/sec | ±2.85% | 31 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 1,554,491 ops/sec | ±1.60% | 65 | | +| Uint8Array#new(16) | 6,623,930 ops/sec | ±1.66% | 65 | ✓ | +| | | | | +| BrowserBuffer#readDoubleBE | 112,830 ops/sec | ±0.51% | 69 | ✓ | +| DataView#getFloat64 | 93,500 ops/sec | ±0.57% | 68 | | +| | | | | +| BrowserBuffer#readFloatBE | 146,678 ops/sec | ±0.95% | 68 | ✓ | +| DataView#getFloat32 | 99,311 ops/sec | ±0.41% | 67 | | +| | | | | +| BrowserBuffer#readUInt32LE | 843,214 ops/sec | ±0.70% | 69 | ✓ | +| DataView#getUint32 | 103,024 ops/sec | ±0.64% | 67 | | +| | | | | +| BrowserBuffer#slice | 1,013,941 ops/sec | ±0.75% | 67 | | +| Uint8Array#subarray | 1,903,928 ops/sec | ±0.53% | 67 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 61,387 ops/sec | ±0.90% | 67 | | +| DataView#setFloat32 | 141,249 ops/sec | ±0.40% | 66 | ✓ | + + +### Firefox 33 + +| Method | Operations | Accuracy | Sampled | Fastest | +|:-------|:-----------|:---------|:--------|:-------:| +| BrowserBuffer#bracket-notation | 20,800,421 ops/sec | ±1.84% | 60 | | +| Uint8Array#bracket-notation | 20,826,235 ops/sec | ±2.02% | 61 | ✓ | +| | | | | +| BrowserBuffer#concat | 153,076 ops/sec | ±2.32% | 61 | | +| Uint8Array#concat | 1,255,674 ops/sec | ±8.65% | 52 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 1,105,312 ops/sec | ±1.16% | 63 | | +| Uint8Array#copy(16000) | 1,615,911 ops/sec | ±0.55% | 66 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 16,357,599 ops/sec | ±0.73% | 68 | | +| Uint8Array#copy(16) | 31,436,281 ops/sec | ±1.05% | 68 | ✓ | +| | | | | +| BrowserBuffer#new(16000) | 52,995 ops/sec | ±6.01% | 35 | | +| Uint8Array#new(16000) | 87,686 ops/sec | ±5.68% | 45 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 252,031 ops/sec | ±1.61% | 66 | | +| Uint8Array#new(16) | 8,477,026 ops/sec | ±0.49% | 68 | ✓ | +| | | | | +| BrowserBuffer#readDoubleBE | 99,871 ops/sec | ±0.41% | 69 | | +| DataView#getFloat64 | 285,663 ops/sec | ±0.70% | 68 | ✓ | +| | | | | +| BrowserBuffer#readFloatBE | 115,540 ops/sec | ±0.42% | 69 | | +| DataView#getFloat32 | 288,722 ops/sec | ±0.82% | 68 | ✓ | +| | | | | +| BrowserBuffer#readUInt32LE | 633,926 ops/sec | ±1.08% | 67 | ✓ | +| DataView#getUint32 | 294,808 ops/sec | ±0.79% | 64 | | +| | | | | +| BrowserBuffer#slice | 349,425 ops/sec | ±0.46% | 69 | | +| Uint8Array#subarray | 5,965,819 ops/sec | ±0.60% | 65 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 59,980 ops/sec | ±0.41% | 67 | | +| DataView#setFloat32 | 317,634 ops/sec | ±0.63% | 68 | ✓ | + +### Safari 8 + +| Method | Operations | Accuracy | Sampled | Fastest | +|:-------|:-----------|:---------|:--------|:-------:| +| BrowserBuffer#bracket-notation | 10,279,729 ops/sec | ±2.25% | 56 | ✓ | +| Uint8Array#bracket-notation | 10,030,767 ops/sec | ±2.23% | 59 | | +| | | | | +| BrowserBuffer#concat | 144,138 ops/sec | ±1.38% | 65 | | +| Uint8Array#concat | 4,950,764 ops/sec | ±1.70% | 63 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 1,058,548 ops/sec | ±1.51% | 64 | | +| Uint8Array#copy(16000) | 1,409,666 ops/sec | ±1.17% | 65 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 6,282,529 ops/sec | ±1.88% | 58 | | +| Uint8Array#copy(16) | 11,907,128 ops/sec | ±2.87% | 58 | ✓ | +| | | | | +| BrowserBuffer#new(16000) | 101,663 ops/sec | ±3.89% | 57 | | +| Uint8Array#new(16000) | 22,050,818 ops/sec | ±6.51% | 46 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 176,072 ops/sec | ±2.13% | 64 | | +| Uint8Array#new(16) | 24,385,731 ops/sec | ±5.01% | 51 | ✓ | +| | | | | +| BrowserBuffer#readDoubleBE | 41,341 ops/sec | ±1.06% | 67 | | +| DataView#getFloat64 | 322,280 ops/sec | ±0.84% | 68 | ✓ | +| | | | | +| BrowserBuffer#readFloatBE | 46,141 ops/sec | ±1.06% | 65 | | +| DataView#getFloat32 | 337,025 ops/sec | ±0.43% | 69 | ✓ | +| | | | | +| BrowserBuffer#readUInt32LE | 151,551 ops/sec | ±1.02% | 66 | | +| DataView#getUint32 | 308,278 ops/sec | ±0.94% | 67 | ✓ | +| | | | | +| BrowserBuffer#slice | 197,365 ops/sec | ±0.95% | 66 | | +| Uint8Array#subarray | 9,558,024 ops/sec | ±3.08% | 58 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 17,518 ops/sec | ±1.03% | 63 | | +| DataView#setFloat32 | 319,751 ops/sec | ±0.48% | 68 | ✓ | + + +### Node 0.11.14 + +| Method | Operations | Accuracy | Sampled | Fastest | +|:-------|:-----------|:---------|:--------|:-------:| +| BrowserBuffer#bracket-notation | 10,489,828 ops/sec | ±3.25% | 90 | | +| Uint8Array#bracket-notation | 10,534,884 ops/sec | ±0.81% | 92 | ✓ | +| NodeBuffer#bracket-notation | 10,389,910 ops/sec | ±0.97% | 87 | | +| | | | | +| BrowserBuffer#concat | 487,830 ops/sec | ±2.58% | 88 | | +| Uint8Array#concat | 1,814,327 ops/sec | ±1.28% | 88 | ✓ | +| NodeBuffer#concat | 1,636,523 ops/sec | ±1.88% | 73 | | +| | | | | +| BrowserBuffer#copy(16000) | 1,073,665 ops/sec | ±0.77% | 90 | | +| Uint8Array#copy(16000) | 1,348,517 ops/sec | ±0.84% | 89 | ✓ | +| NodeBuffer#copy(16000) | 1,289,533 ops/sec | ±0.82% | 93 | | +| | | | | +| BrowserBuffer#copy(16) | 12,782,706 ops/sec | ±0.74% | 85 | | +| Uint8Array#copy(16) | 14,180,427 ops/sec | ±0.93% | 92 | ✓ | +| NodeBuffer#copy(16) | 11,083,134 ops/sec | ±1.06% | 89 | | +| | | | | +| BrowserBuffer#new(16000) | 141,678 ops/sec | ±3.30% | 67 | | +| Uint8Array#new(16000) | 161,491 ops/sec | ±2.96% | 60 | | +| NodeBuffer#new(16000) | 292,699 ops/sec | ±3.20% | 55 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 1,655,466 ops/sec | ±2.41% | 82 | | +| Uint8Array#new(16) | 14,399,926 ops/sec | ±0.91% | 94 | ✓ | +| NodeBuffer#new(16) | 3,894,696 ops/sec | ±0.88% | 92 | | +| | | | | +| BrowserBuffer#readDoubleBE | 109,582 ops/sec | ±0.75% | 93 | ✓ | +| DataView#getFloat64 | 91,235 ops/sec | ±0.81% | 90 | | +| NodeBuffer#readDoubleBE | 88,593 ops/sec | ±0.96% | 81 | | +| | | | | +| BrowserBuffer#readFloatBE | 139,854 ops/sec | ±1.03% | 85 | ✓ | +| DataView#getFloat32 | 98,744 ops/sec | ±0.80% | 89 | | +| NodeBuffer#readFloatBE | 92,769 ops/sec | ±0.94% | 93 | | +| | | | | +| BrowserBuffer#readUInt32LE | 710,861 ops/sec | ±0.82% | 92 | | +| DataView#getUint32 | 117,893 ops/sec | ±0.84% | 91 | | +| NodeBuffer#readUInt32LE | 851,412 ops/sec | ±0.72% | 93 | ✓ | +| | | | | +| BrowserBuffer#slice | 1,673,877 ops/sec | ±0.73% | 94 | | +| Uint8Array#subarray | 6,919,243 ops/sec | ±0.67% | 90 | ✓ | +| NodeBuffer#slice | 4,617,604 ops/sec | ±0.79% | 93 | | +| | | | | +| BrowserBuffer#writeFloatBE | 66,011 ops/sec | ±0.75% | 93 | | +| DataView#setFloat32 | 127,760 ops/sec | ±0.72% | 93 | ✓ | +| NodeBuffer#writeFloatBE | 103,352 ops/sec | ±0.83% | 93 | | + +### iojs 1.8.1 + +| Method | Operations | Accuracy | Sampled | Fastest | +|:-------|:-----------|:---------|:--------|:-------:| +| BrowserBuffer#bracket-notation | 10,990,488 ops/sec | ±1.11% | 91 | | +| Uint8Array#bracket-notation | 11,268,757 ops/sec | ±0.65% | 97 | | +| NodeBuffer#bracket-notation | 11,353,260 ops/sec | ±0.83% | 94 | ✓ | +| | | | | +| BrowserBuffer#concat | 378,954 ops/sec | ±0.74% | 94 | | +| Uint8Array#concat | 1,358,288 ops/sec | ±0.97% | 87 | | +| NodeBuffer#concat | 1,934,050 ops/sec | ±1.11% | 78 | ✓ | +| | | | | +| BrowserBuffer#copy(16000) | 894,538 ops/sec | ±0.56% | 84 | | +| Uint8Array#copy(16000) | 1,442,656 ops/sec | ±0.71% | 96 | | +| NodeBuffer#copy(16000) | 1,457,898 ops/sec | ±0.53% | 92 | ✓ | +| | | | | +| BrowserBuffer#copy(16) | 12,870,457 ops/sec | ±0.67% | 95 | | +| Uint8Array#copy(16) | 16,643,989 ops/sec | ±0.61% | 93 | ✓ | +| NodeBuffer#copy(16) | 14,885,848 ops/sec | ±0.74% | 94 | | +| | | | | +| BrowserBuffer#new(16000) | 109,264 ops/sec | ±4.21% | 63 | | +| Uint8Array#new(16000) | 138,916 ops/sec | ±1.87% | 61 | | +| NodeBuffer#new(16000) | 281,449 ops/sec | ±3.58% | 51 | ✓ | +| | | | | +| BrowserBuffer#new(16) | 1,362,935 ops/sec | ±0.56% | 99 | | +| Uint8Array#new(16) | 6,193,090 ops/sec | ±0.64% | 95 | ✓ | +| NodeBuffer#new(16) | 4,745,425 ops/sec | ±1.56% | 90 | | +| | | | | +| BrowserBuffer#readDoubleBE | 118,127 ops/sec | ±0.59% | 93 | ✓ | +| DataView#getFloat64 | 107,332 ops/sec | ±0.65% | 91 | | +| NodeBuffer#readDoubleBE | 116,274 ops/sec | ±0.94% | 95 | | +| | | | | +| BrowserBuffer#readFloatBE | 150,326 ops/sec | ±0.58% | 95 | ✓ | +| DataView#getFloat32 | 110,541 ops/sec | ±0.57% | 98 | | +| NodeBuffer#readFloatBE | 121,599 ops/sec | ±0.60% | 87 | | +| | | | | +| BrowserBuffer#readUInt32LE | 814,147 ops/sec | ±0.62% | 93 | | +| DataView#getUint32 | 137,592 ops/sec | ±0.64% | 90 | | +| NodeBuffer#readUInt32LE | 931,650 ops/sec | ±0.71% | 96 | ✓ | +| | | | | +| BrowserBuffer#slice | 878,590 ops/sec | ±0.68% | 93 | | +| Uint8Array#subarray | 2,843,308 ops/sec | ±1.02% | 90 | | +| NodeBuffer#slice | 4,998,316 ops/sec | ±0.68% | 90 | ✓ | +| | | | | +| BrowserBuffer#writeFloatBE | 65,927 ops/sec | ±0.74% | 93 | | +| DataView#setFloat32 | 139,823 ops/sec | ±0.97% | 89 | ✓ | +| NodeBuffer#writeFloatBE | 135,763 ops/sec | ±0.65% | 96 | | +| | | | | + +## Testing the project + +First, install the project: + + npm install + +Then, to run tests in Node.js, run: + + npm run test-node + +To test locally in a browser, you can run: + + npm run test-browser-local + +This will print out a URL that you can then open in a browser to run the tests, using [Zuul](https://github.com/defunctzombie/zuul). + +To run automated browser tests using Saucelabs, ensure that your `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` environment variables are set, then run: + + npm test + +This is what's run in Travis, to check against various browsers. The list of browsers is kept in the `.zuul.yml` file. + +## JavaScript Standard Style + +This module uses [JavaScript Standard Style](https://github.com/feross/standard). + +[![JavaScript Style Guide](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + +To test that the code conforms to the style, `npm install` and run: + + ./node_modules/.bin/standard + +## credit + +This was originally forked from [buffer-browserify](https://github.com/toots/buffer-browserify). + + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org), and other contributors. Originally forked from an MIT-licensed module by Romain Beauxis. diff --git a/justdanceonline-main/node_modules/buffer/bin/download-node-tests.js b/justdanceonline-main/node_modules/buffer/bin/download-node-tests.js new file mode 100644 index 0000000000000000000000000000000000000000..97efde02f6fdc8f4622184b45949c613ad90c749 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/bin/download-node-tests.js @@ -0,0 +1,106 @@ +#!/usr/bin/env node + +var concat = require('concat-stream') +var cp = require('child_process') +var fs = require('fs') +var hyperquest = require('hyperquest') +var path = require('path') +var split = require('split') +var through = require('through2') + +var url = 'https://api.github.com/repos/nodejs/node/contents' +var dirs = [ + '/test/parallel', + '/test/pummel' +] + +cp.execSync('rm -rf node/*.js', { cwd: path.join(__dirname, '../test') }) + +var httpOpts = { + headers: { + 'User-Agent': null + // auth if github rate-limits you... + // 'Authorization': 'Basic ' + Buffer('username:password').toString('base64'), + } +} + +dirs.forEach(function (dir) { + var req = hyperquest(url + dir, httpOpts) + req.pipe(concat(function (data) { + if (req.response.statusCode !== 200) { + throw new Error(url + dir + ': ' + data.toString()) + } + downloadBufferTests(dir, JSON.parse(data)) + })) +}) + +function downloadBufferTests (dir, files) { + files.forEach(function (file) { + if (!/test-buffer.*/.test(file.name)) return + + if (file.name === 'test-buffer-fakes.js') { + // These teses only apply to node, where they're calling into C++ and need to + // ensure the prototype can't be faked, or else there will be a segfault. + return + } + + console.log(file.download_url) + + var out = path.join(__dirname, '../test/node', file.name) + hyperquest(file.download_url, httpOpts) + .pipe(split()) + .pipe(testfixer(file.name)) + .pipe(fs.createWriteStream(out)) + .on('finish', function () { + console.log('wrote ' + file.name) + }) + }) +} + +function testfixer (filename) { + var firstline = true + + return through(function (line, enc, cb) { + line = line.toString() + + if (firstline) { + // require buffer explicitly + var preamble = 'var Buffer = require(\'../../\').Buffer;\n' + if (/use strict/.test(line)) line += '\n' + preamble + else line + preamble + '\n' + line + firstline = false + } + + // use `var` instead of `const`/`let` + line = line.replace(/(const|let) /g, 'var ') + + // make `var common = require('common')` work + line = line.replace(/(var common = require.*)/g, 'var common = { skip: function () {} };') + + // make `require('../common')` work + line = line.replace(/require\('\.\.\/common'\);/g, '') + + // require browser buffer + line = line.replace(/(.*)require\('buffer'\)(.*)/g, '$1require(\'../../\')$2') + + // comment out console logs + line = line.replace(/(.*console\..*)/g, '// $1') + + // we can't reliably test typed array max-sizes in the browser + if (filename === 'test-buffer-big.js') { + line = line.replace(/(.*new Int8Array.*RangeError.*)/, '// $1') + line = line.replace(/(.*new ArrayBuffer.*RangeError.*)/, '// $1') + line = line.replace(/(.*new Float64Array.*RangeError.*)/, '// $1') + } + + // https://github.com/nodejs/node/blob/v0.12/test/parallel/test-buffer.js#L1138 + // unfortunately we can't run this because crypto-browserify doesn't work in old + // versions of ie + if (filename === 'test-buffer.js') { + line = line.replace(/^(\s*)(var crypto = require.*)/, '$1// $2') + line = line.replace(/(crypto.createHash.*\))/, '1 /*$1*/') + } + + cb(null, line + '\n') + }) +} diff --git a/justdanceonline-main/node_modules/buffer/bin/test.js b/justdanceonline-main/node_modules/buffer/bin/test.js new file mode 100644 index 0000000000000000000000000000000000000000..5a86f1b2c4be9eab11503cfe931ccbe2a87afd9f --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/bin/test.js @@ -0,0 +1,41 @@ +#!/usr/bin/env node + +var cp = require('child_process') +var fs = require('fs') +var path = require('path') + +var shouldRunBrowserTests = !process.env.TRAVIS_PULL_REQUEST || + process.env.TRAVIS_PULL_REQUEST === 'false' + +var node = cp.spawn('npm', ['run', 'test-node'], { stdio: 'inherit' }) +node.on('close', function (code) { + if (code === 0 && shouldRunBrowserTests) { + runBrowserTests() + } else { + process.exit(code) + } +}) + +function runBrowserTests () { + var zuulYmlPath = path.join(__dirname, '..', '.zuul.yml') + + writeES5ZuulYml() + cp.spawn('npm', ['run', 'test-browser-es5'], { stdio: 'inherit' }) + .on('close', function (code) { + if (code !== 0) process.exit(code) + writeES6ZuulYml() + cp.spawn('npm', ['run', 'test-browser-es6'], { stdio: 'inherit' }) + .on('close', function (code) { + process.exit(code) + }) + }) + + function writeES5ZuulYml () { + fs.writeFileSync(zuulYmlPath, fs.readFileSync(path.join(__dirname, 'zuul-es5.yml'))) + } + + function writeES6ZuulYml () { + fs.writeFileSync(zuulYmlPath, fs.readFileSync(path.join(__dirname, 'zuul-es6.yml'))) + } +} + diff --git a/justdanceonline-main/node_modules/buffer/bin/update-authors.sh b/justdanceonline-main/node_modules/buffer/bin/update-authors.sh new file mode 100644 index 0000000000000000000000000000000000000000..efcbc780740388086c058264d8d51033bcb9ec6b --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/bin/update-authors.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Update AUTHORS.md based on git history. + +git log --reverse --format='%aN (%aE)' | perl -we ' +BEGIN { + %seen = (), @authors = (); +} +while (<>) { + next if $seen{$_}; + next if /(support\@greenkeeper.io)/; + next if /(dcousens\@users.noreply.github.com)/; + next if /(cmetcalf\@appgeo.com)/; + $seen{$_} = push @authors, "- ", $_; +} +END { + print "# Authors\n\n"; + print "#### Ordered by first contribution.\n\n"; + print @authors, "\n"; + print "#### Generated by bin/update-authors.sh.\n"; +} +' > AUTHORS.md diff --git a/justdanceonline-main/node_modules/buffer/bin/zuul-es5.yml b/justdanceonline-main/node_modules/buffer/bin/zuul-es5.yml new file mode 100644 index 0000000000000000000000000000000000000000..3673bccf1f7aa45b491c66b439e4073445eb463b --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/bin/zuul-es5.yml @@ -0,0 +1,14 @@ +ui: tape +scripts: + - ./test/_polyfill.js +browsers: + - name: safari + version: latest + - name: ie + version: 8..latest + - name: microsoftedge + version: 13..latest + - name: android + version: 4.4..latest + - name: iphone + version: latest diff --git a/justdanceonline-main/node_modules/buffer/bin/zuul-es6.yml b/justdanceonline-main/node_modules/buffer/bin/zuul-es6.yml new file mode 100644 index 0000000000000000000000000000000000000000..8054ad652d90222221e06c8b99e3e60554c0fde5 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/bin/zuul-es6.yml @@ -0,0 +1,6 @@ +ui: tape +browsers: + - name: chrome + version: '-1..latest' + - name: firefox + version: '-1..latest' diff --git a/justdanceonline-main/node_modules/buffer/index.js b/justdanceonline-main/node_modules/buffer/index.js new file mode 100644 index 0000000000000000000000000000000000000000..13249104d9f0259a9132af07ed793cc6cf2e6251 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/index.js @@ -0,0 +1,1789 @@ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ + +'use strict' + +var base64 = require('base64-js') +var ieee754 = require('ieee754') +var isArray = require('isarray') + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + +/* + * Export kMaxLength after typed array support is determined. + */ +exports.kMaxLength = kMaxLength() + +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} diff --git a/justdanceonline-main/node_modules/buffer/package.json b/justdanceonline-main/node_modules/buffer/package.json new file mode 100644 index 0000000000000000000000000000000000000000..da7aa7cf3cc32a01802398750a9308e1456b9e61 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/package.json @@ -0,0 +1,77 @@ +{ + "name": "buffer", + "description": "Node.js Buffer API, for the browser", + "version": "4.9.2", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/buffer/issues" + }, + "contributors": [ + "Romain Beauxis ", + "James Halliday " + ], + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "devDependencies": { + "benchmark": "^2.0.0", + "browserify": "^13.0.0", + "concat-stream": "^1.4.7", + "hyperquest": "^2.0.0", + "is-buffer": "^1.1.1", + "is-nan": "^1.0.1", + "split": "^1.0.0", + "standard": "^7.0.0", + "tape": "^4.0.0", + "through2": "^2.0.0", + "zuul": "^3.0.0" + }, + "homepage": "https://github.com/feross/buffer", + "jspm": { + "map": { + "./index.js": { + "node": "@node/buffer" + } + } + }, + "keywords": [ + "arraybuffer", + "browser", + "browserify", + "buffer", + "compatible", + "dataview", + "uint8array" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/feross/buffer.git" + }, + "scripts": { + "perf": "browserify --debug perf/bracket-notation.js > perf/bundle.js && open perf/index.html", + "perf-node": "node perf/bracket-notation.js && node perf/concat.js && node perf/copy-big.js && node perf/copy.js && node perf/new-big.js && node perf/new.js && node perf/readDoubleBE.js && node perf/readFloatBE.js && node perf/readUInt32LE.js && node perf/slice.js && node perf/writeFloatBE.js", + "size": "browserify -r ./ | uglifyjs -c -m | gzip | wc -c", + "test": "standard && node ./bin/test.js", + "test-browser-es5": "zuul --ui tape -- test/*.js", + "test-browser-es5-local": "zuul --ui tape --local -- test/*.js", + "test-browser-es6": "zuul --ui tape -- test/*.js test/node/*.js", + "test-browser-es6-local": "zuul --ui tape --local -- test/*.js test/node/*.js", + "test-node": "tape test/*.js test/node/*.js && OBJECT_IMPL=true tape test/*.js", + "update-authors": "./bin/update-authors.sh" + }, + "standard": { + "ignore": [ + "test/node/*.js", + "test/_polyfill.js", + "perf/*.js" + ] + } +} diff --git a/justdanceonline-main/node_modules/buffer/test/_polyfill.js b/justdanceonline-main/node_modules/buffer/test/_polyfill.js new file mode 100644 index 0000000000000000000000000000000000000000..61f9c1801f879245fd8d173d03effdfd86ff9cca --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/_polyfill.js @@ -0,0 +1,150 @@ +if (!Array.prototype.forEach) { + + Array.prototype.forEach = function(callback, thisArg) { + + var T, k; + + if (this == null) { + throw new TypeError(' this is null or not defined'); + } + + // 1. Let O be the result of calling ToObject passing the |this| value as the argument. + var O = Object(this); + + // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length". + // 3. Let len be ToUint32(lenValue). + var len = O.length >>> 0; + + // 4. If IsCallable(callback) is false, throw a TypeError exception. + // See: http://es5.github.com/#x9.11 + if (typeof callback !== "function") { + throw new TypeError(callback + ' is not a function'); + } + + // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. + if (arguments.length > 1) { + T = thisArg; + } + + // 6. Let k be 0 + k = 0; + + // 7. Repeat, while k < len + while (k < len) { + + var kValue; + + // a. Let Pk be ToString(k). + // This is implicit for LHS operands of the in operator + // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk. + // This step can be combined with c + // c. If kPresent is true, then + if (k in O) { + + // i. Let kValue be the result of calling the Get internal method of O with argument Pk. + kValue = O[k]; + + // ii. Call the Call internal method of callback with T as the this value and + // argument list containing kValue, k, and O. + callback.call(T, kValue, k, O); + } + // d. Increase k by 1. + k++; + } + // 8. return undefined + }; +} + +if (!Array.isArray) { + Array.isArray = function(arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; + }; +} + +if (!Array.prototype.map) { + + Array.prototype.map = function(callback, thisArg) { + + var T, A, k; + + if (this == null) { + throw new TypeError(' this is null or not defined'); + } + + // 1. Let O be the result of calling ToObject passing the |this| + // value as the argument. + var O = Object(this); + + // 2. Let lenValue be the result of calling the Get internal + // method of O with the argument "length". + // 3. Let len be ToUint32(lenValue). + var len = O.length >>> 0; + + // 4. If IsCallable(callback) is false, throw a TypeError exception. + // See: http://es5.github.com/#x9.11 + if (typeof callback !== 'function') { + throw new TypeError(callback + ' is not a function'); + } + + // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. + if (arguments.length > 1) { + T = thisArg; + } + + // 6. Let A be a new array created as if by the expression new Array(len) + // where Array is the standard built-in constructor with that name and + // len is the value of len. + A = new Array(len); + + // 7. Let k be 0 + k = 0; + + // 8. Repeat, while k < len + while (k < len) { + + var kValue, mappedValue; + + // a. Let Pk be ToString(k). + // This is implicit for LHS operands of the in operator + // b. Let kPresent be the result of calling the HasProperty internal + // method of O with argument Pk. + // This step can be combined with c + // c. If kPresent is true, then + if (k in O) { + + // i. Let kValue be the result of calling the Get internal + // method of O with argument Pk. + kValue = O[k]; + + // ii. Let mappedValue be the result of calling the Call internal + // method of callback with T as the this value and argument + // list containing kValue, k, and O. + mappedValue = callback.call(T, kValue, k, O); + + // iii. Call the DefineOwnProperty internal method of A with arguments + // Pk, Property Descriptor + // { Value: mappedValue, + // Writable: true, + // Enumerable: true, + // Configurable: true }, + // and false. + + // In browsers that support Object.defineProperty, use the following: + // Object.defineProperty(A, k, { + // value: mappedValue, + // writable: true, + // enumerable: true, + // configurable: true + // }); + + // For best browser support, use the following: + A[k] = mappedValue; + } + // d. Increase k by 1. + k++; + } + + // 9. return A + return A; + }; +} diff --git a/justdanceonline-main/node_modules/buffer/test/base64.js b/justdanceonline-main/node_modules/buffer/test/base64.js new file mode 100644 index 0000000000000000000000000000000000000000..e4ecc56a946b0fb03d3484aa7d52bed10a5d80d0 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/base64.js @@ -0,0 +1,47 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('base64: ignore whitespace', function (t) { + var text = '\n YW9ldQ== ' + var buf = new B(text, 'base64') + t.equal(buf.toString(), 'aoeu') + t.end() +}) + +test('base64: strings without padding', function (t) { + t.equal((new B('YW9ldQ', 'base64').toString()), 'aoeu') + t.end() +}) + +test('base64: newline in utf8 -- should not be an issue', function (t) { + t.equal( + new B('LS0tCnRpdGxlOiBUaHJlZSBkYXNoZXMgbWFya3MgdGhlIHNwb3QKdGFnczoK', 'base64').toString('utf8'), + '---\ntitle: Three dashes marks the spot\ntags:\n' + ) + t.end() +}) + +test('base64: newline in base64 -- should get stripped', function (t) { + t.equal( + new B('LS0tCnRpdGxlOiBUaHJlZSBkYXNoZXMgbWFya3MgdGhlIHNwb3QKdGFnczoK\nICAtIHlhbWwKICAtIGZyb250LW1hdHRlcgogIC0gZGFzaGVzCmV4cGFuZWQt', 'base64').toString('utf8'), + '---\ntitle: Three dashes marks the spot\ntags:\n - yaml\n - front-matter\n - dashes\nexpaned-' + ) + t.end() +}) + +test('base64: tab characters in base64 - should get stripped', function (t) { + t.equal( + new B('LS0tCnRpdGxlOiBUaHJlZSBkYXNoZXMgbWFya3MgdGhlIHNwb3QKdGFnczoK\t\t\t\tICAtIHlhbWwKICAtIGZyb250LW1hdHRlcgogIC0gZGFzaGVzCmV4cGFuZWQt', 'base64').toString('utf8'), + '---\ntitle: Three dashes marks the spot\ntags:\n - yaml\n - front-matter\n - dashes\nexpaned-' + ) + t.end() +}) + +test('base64: invalid non-alphanumeric characters -- should be stripped', function (t) { + t.equal( + new B('!"#$%&\'()*,.:;<=>?@[\\]^`{|}~', 'base64').toString('utf8'), + '' + ) + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/basic.js b/justdanceonline-main/node_modules/buffer/test/basic.js new file mode 100644 index 0000000000000000000000000000000000000000..0368ed919ab75eeb6fe43066a179efe16d5c1573 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/basic.js @@ -0,0 +1,85 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('instanceof Buffer', function (t) { + var buf = new B([1, 2]) + t.ok(buf instanceof B) + t.end() +}) + +test('convert to Uint8Array in modern browsers', function (t) { + if (B.TYPED_ARRAY_SUPPORT) { + var buf = new B([1, 2]) + var uint8array = new Uint8Array(buf.buffer) + t.ok(uint8array instanceof Uint8Array) + t.equal(uint8array[0], 1) + t.equal(uint8array[1], 2) + } else { + t.pass('object impl: skipping test') + } + t.end() +}) + +test('indexes from a string', function (t) { + var buf = new B('abc') + t.equal(buf[0], 97) + t.equal(buf[1], 98) + t.equal(buf[2], 99) + t.end() +}) + +test('indexes from an array', function (t) { + var buf = new B([ 97, 98, 99 ]) + t.equal(buf[0], 97) + t.equal(buf[1], 98) + t.equal(buf[2], 99) + t.end() +}) + +test('setting index value should modify buffer contents', function (t) { + var buf = new B([ 97, 98, 99 ]) + t.equal(buf[2], 99) + t.equal(buf.toString(), 'abc') + + buf[2] += 10 + t.equal(buf[2], 109) + t.equal(buf.toString(), 'abm') + t.end() +}) + +test('storing negative number should cast to unsigned', function (t) { + var buf = new B(1) + + if (B.TYPED_ARRAY_SUPPORT) { + // This does not work with the object implementation -- nothing we can do! + buf[0] = -3 + t.equal(buf[0], 253) + } + + buf = new B(1) + buf.writeInt8(-3, 0) + t.equal(buf[0], 253) + + t.end() +}) + +test('test that memory is copied from array-like', function (t) { + if (B.TYPED_ARRAY_SUPPORT) { + var u = new Uint8Array(4) + var b = new B(u) + b[0] = 1 + b[1] = 2 + b[2] = 3 + b[3] = 4 + + t.equal(u[0], 0) + t.equal(u[1], 0) + t.equal(u[2], 0) + t.equal(u[3], 0) + } else { + t.pass('object impl: skipping test') + } + + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/compare.js b/justdanceonline-main/node_modules/buffer/test/compare.js new file mode 100644 index 0000000000000000000000000000000000000000..62b478c73ef9b862bce08604d0b4d1c2300e436c --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/compare.js @@ -0,0 +1,59 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('buffer.compare', function (t) { + var b = new B(1).fill('a') + var c = new B(1).fill('c') + var d = new B(2).fill('aa') + + t.equal(b.compare(c), -1) + t.equal(c.compare(d), 1) + t.equal(d.compare(b), 1) + t.equal(b.compare(d), -1) + + // static method + t.equal(B.compare(b, c), -1) + t.equal(B.compare(c, d), 1) + t.equal(B.compare(d, b), 1) + t.equal(B.compare(b, d), -1) + t.end() +}) + +test('buffer.compare argument validation', function (t) { + t.throws(function () { + var b = new B(1) + B.compare(b, 'abc') + }) + + t.throws(function () { + var b = new B(1) + B.compare('abc', b) + }) + + t.throws(function () { + var b = new B(1) + b.compare('abc') + }) + t.end() +}) + +test('buffer.equals', function (t) { + var b = new B(5).fill('abcdf') + var c = new B(5).fill('abcdf') + var d = new B(5).fill('abcde') + var e = new B(6).fill('abcdef') + + t.ok(b.equals(c)) + t.ok(!c.equals(d)) + t.ok(!d.equals(e)) + t.end() +}) + +test('buffer.equals argument validation', function (t) { + t.throws(function () { + var b = new B(1) + b.equals('abc') + }) + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/constructor.js b/justdanceonline-main/node_modules/buffer/test/constructor.js new file mode 100644 index 0000000000000000000000000000000000000000..cec5cdcbe522f167f28d211e17d147019ab13956 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/constructor.js @@ -0,0 +1,193 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('new buffer from array', function (t) { + t.equal( + new B([1, 2, 3]).toString(), + '\u0001\u0002\u0003' + ) + t.end() +}) + +test('new buffer from array w/ negatives', function (t) { + t.equal( + new B([-1, -2, -3]).toString('hex'), + 'fffefd' + ) + t.end() +}) + +test('new buffer from array with mixed signed input', function (t) { + t.equal( + new B([-255, 255, -128, 128, 512, -512, 511, -511]).toString('hex'), + '01ff80800000ff01' + ) + t.end() +}) + +test('new buffer from string', function (t) { + t.equal( + new B('hey', 'utf8').toString(), + 'hey' + ) + t.end() +}) + +test('new buffer from buffer', function (t) { + var b1 = new B('asdf') + var b2 = new B(b1) + t.equal(b1.toString('hex'), b2.toString('hex')) + t.end() +}) + +test('new buffer from ArrayBuffer', function (t) { + if (typeof ArrayBuffer !== 'undefined') { + var arraybuffer = new Uint8Array([0, 1, 2, 3]).buffer + var b = new B(arraybuffer) + t.equal(b.length, 4) + t.equal(b[0], 0) + t.equal(b[1], 1) + t.equal(b[2], 2) + t.equal(b[3], 3) + t.equal(b[4], undefined) + } + t.end() +}) + +test('new buffer from ArrayBuffer, shares memory', function (t) { + if (Buffer.TYPED_ARRAY_SUPPORT) { + var u = new Uint8Array([0, 1, 2, 3]) + var arraybuffer = u.buffer + var b = new B(arraybuffer) + t.equal(b.length, 4) + t.equal(b[0], 0) + t.equal(b[1], 1) + t.equal(b[2], 2) + t.equal(b[3], 3) + t.equal(b[4], undefined) + + // changing the Uint8Array (and thus the ArrayBuffer), changes the Buffer + u[0] = 10 + t.equal(b[0], 10) + u[1] = 11 + t.equal(b[1], 11) + u[2] = 12 + t.equal(b[2], 12) + u[3] = 13 + t.equal(b[3], 13) + } + t.end() +}) + +test('new buffer from Uint8Array', function (t) { + if (typeof Uint8Array !== 'undefined') { + var b1 = new Uint8Array([0, 1, 2, 3]) + var b2 = new B(b1) + t.equal(b1.length, b2.length) + t.equal(b1[0], 0) + t.equal(b1[1], 1) + t.equal(b1[2], 2) + t.equal(b1[3], 3) + t.equal(b1[4], undefined) + } + t.end() +}) + +test('new buffer from Uint16Array', function (t) { + if (typeof Uint16Array !== 'undefined') { + var b1 = new Uint16Array([0, 1, 2, 3]) + var b2 = new B(b1) + t.equal(b1.length, b2.length) + t.equal(b1[0], 0) + t.equal(b1[1], 1) + t.equal(b1[2], 2) + t.equal(b1[3], 3) + t.equal(b1[4], undefined) + } + t.end() +}) + +test('new buffer from Uint32Array', function (t) { + if (typeof Uint32Array !== 'undefined') { + var b1 = new Uint32Array([0, 1, 2, 3]) + var b2 = new B(b1) + t.equal(b1.length, b2.length) + t.equal(b1[0], 0) + t.equal(b1[1], 1) + t.equal(b1[2], 2) + t.equal(b1[3], 3) + t.equal(b1[4], undefined) + } + t.end() +}) + +test('new buffer from Int16Array', function (t) { + if (typeof Int16Array !== 'undefined') { + var b1 = new Int16Array([0, 1, 2, 3]) + var b2 = new B(b1) + t.equal(b1.length, b2.length) + t.equal(b1[0], 0) + t.equal(b1[1], 1) + t.equal(b1[2], 2) + t.equal(b1[3], 3) + t.equal(b1[4], undefined) + } + t.end() +}) + +test('new buffer from Int32Array', function (t) { + if (typeof Int32Array !== 'undefined') { + var b1 = new Int32Array([0, 1, 2, 3]) + var b2 = new B(b1) + t.equal(b1.length, b2.length) + t.equal(b1[0], 0) + t.equal(b1[1], 1) + t.equal(b1[2], 2) + t.equal(b1[3], 3) + t.equal(b1[4], undefined) + } + t.end() +}) + +test('new buffer from Float32Array', function (t) { + if (typeof Float32Array !== 'undefined') { + var b1 = new Float32Array([0, 1, 2, 3]) + var b2 = new B(b1) + t.equal(b1.length, b2.length) + t.equal(b1[0], 0) + t.equal(b1[1], 1) + t.equal(b1[2], 2) + t.equal(b1[3], 3) + t.equal(b1[4], undefined) + } + t.end() +}) + +test('new buffer from Float64Array', function (t) { + if (typeof Float64Array !== 'undefined') { + var b1 = new Float64Array([0, 1, 2, 3]) + var b2 = new B(b1) + t.equal(b1.length, b2.length) + t.equal(b1[0], 0) + t.equal(b1[1], 1) + t.equal(b1[2], 2) + t.equal(b1[3], 3) + t.equal(b1[4], undefined) + } + t.end() +}) + +test('new buffer from buffer.toJSON() output', function (t) { + if (typeof JSON === 'undefined') { + // ie6, ie7 lack support + t.end() + return + } + var buf = new B('test') + var json = JSON.stringify(buf) + var obj = JSON.parse(json) + var copy = new B(obj) + t.ok(buf.equals(copy)) + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/from-string.js b/justdanceonline-main/node_modules/buffer/test/from-string.js new file mode 100644 index 0000000000000000000000000000000000000000..e25db269971b92f4e3f91c79e8700873590198a9 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/from-string.js @@ -0,0 +1,132 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('detect utf16 surrogate pairs', function (t) { + var text = '\uD83D\uDE38' + '\uD83D\uDCAD' + '\uD83D\uDC4D' + var buf = new B(text) + t.equal(text, buf.toString()) + t.end() +}) + +test('detect utf16 surrogate pairs over U+20000 until U+10FFFF', function (t) { + var text = '\uD842\uDFB7' + '\uD93D\uDCAD' + '\uDBFF\uDFFF' + var buf = new B(text) + t.equal(text, buf.toString()) + t.end() +}) + +test('replace orphaned utf16 surrogate lead code point', function (t) { + var text = '\uD83D\uDE38' + '\uD83D' + '\uD83D\uDC4D' + var buf = new B(text) + t.deepEqual(buf, new B([ 0xf0, 0x9f, 0x98, 0xb8, 0xef, 0xbf, 0xbd, 0xf0, 0x9f, 0x91, 0x8d ])) + t.end() +}) + +test('replace orphaned utf16 surrogate trail code point', function (t) { + var text = '\uD83D\uDE38' + '\uDCAD' + '\uD83D\uDC4D' + var buf = new B(text) + t.deepEqual(buf, new B([ 0xf0, 0x9f, 0x98, 0xb8, 0xef, 0xbf, 0xbd, 0xf0, 0x9f, 0x91, 0x8d ])) + t.end() +}) + +test('do not write partial utf16 code units', function (t) { + var f = new B([0, 0, 0, 0, 0]) + t.equal(f.length, 5) + var size = f.write('あいうえお', 'utf16le') + t.equal(size, 4) + t.deepEqual(f, new B([0x42, 0x30, 0x44, 0x30, 0x00])) + t.end() +}) + +test('handle partial utf16 code points when encoding to utf8 the way node does', function (t) { + var text = '\uD83D\uDE38' + '\uD83D\uDC4D' + + var buf = new B(8) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0xf0, 0x9f, 0x98, 0xb8, 0xf0, 0x9f, 0x91, 0x8d ])) + + buf = new B(7) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0xf0, 0x9f, 0x98, 0xb8, 0x00, 0x00, 0x00 ])) + + buf = new B(6) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0xf0, 0x9f, 0x98, 0xb8, 0x00, 0x00 ])) + + buf = new B(5) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0xf0, 0x9f, 0x98, 0xb8, 0x00 ])) + + buf = new B(4) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0xf0, 0x9f, 0x98, 0xb8 ])) + + buf = new B(3) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x00, 0x00, 0x00 ])) + + buf = new B(2) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x00, 0x00 ])) + + buf = new B(1) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x00 ])) + + t.end() +}) + +test('handle invalid utf16 code points when encoding to utf8 the way node does', function (t) { + var text = 'a' + '\uDE38\uD83D' + 'b' + + var buf = new B(8) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61, 0xef, 0xbf, 0xbd, 0xef, 0xbf, 0xbd, 0x62 ])) + + buf = new B(7) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61, 0xef, 0xbf, 0xbd, 0xef, 0xbf, 0xbd ])) + + buf = new B(6) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61, 0xef, 0xbf, 0xbd, 0x00, 0x00 ])) + + buf = new B(5) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61, 0xef, 0xbf, 0xbd, 0x00 ])) + + buf = new B(4) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61, 0xef, 0xbf, 0xbd ])) + + buf = new B(3) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61, 0x00, 0x00 ])) + + buf = new B(2) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61, 0x00 ])) + + buf = new B(1) + buf.fill(0) + buf.write(text) + t.deepEqual(buf, new B([ 0x61 ])) + + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/is-buffer.js b/justdanceonline-main/node_modules/buffer/test/is-buffer.js new file mode 100644 index 0000000000000000000000000000000000000000..3744b23a79d4835f26497b8619d56bd7b7a37687 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/is-buffer.js @@ -0,0 +1,22 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var isBuffer = require('is-buffer') +var test = require('tape') + +test('is-buffer tests', function (t) { + t.ok(isBuffer(new B(4)), 'new Buffer(4)') + + t.notOk(isBuffer(undefined), 'undefined') + t.notOk(isBuffer(null), 'null') + t.notOk(isBuffer(''), 'empty string') + t.notOk(isBuffer(true), 'true') + t.notOk(isBuffer(false), 'false') + t.notOk(isBuffer(0), '0') + t.notOk(isBuffer(1), '1') + t.notOk(isBuffer(1.0), '1.0') + t.notOk(isBuffer('string'), 'string') + t.notOk(isBuffer({}), '{}') + t.notOk(isBuffer(function foo () {}), 'function foo () {}') + + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/methods.js b/justdanceonline-main/node_modules/buffer/test/methods.js new file mode 100644 index 0000000000000000000000000000000000000000..f4bd3f213bec4993eddf24a98612c93d19e2cd7b --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/methods.js @@ -0,0 +1,127 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('buffer.toJSON', function (t) { + var data = [1, 2, 3, 4] + t.deepEqual( + new B(data).toJSON(), + { type: 'Buffer', data: [ 1, 2, 3, 4 ] } + ) + t.end() +}) + +test('buffer.copy', function (t) { + // copied from nodejs.org example + var buf1 = new B(26) + var buf2 = new B(26) + + for (var i = 0; i < 26; i++) { + buf1[i] = i + 97 // 97 is ASCII a + buf2[i] = 33 // ASCII ! + } + + buf1.copy(buf2, 8, 16, 20) + + t.equal( + buf2.toString('ascii', 0, 25), + '!!!!!!!!qrst!!!!!!!!!!!!!' + ) + t.end() +}) + +test('test offset returns are correct', function (t) { + var b = new B(16) + t.equal(4, b.writeUInt32LE(0, 0)) + t.equal(6, b.writeUInt16LE(0, 4)) + t.equal(7, b.writeUInt8(0, 6)) + t.equal(8, b.writeInt8(0, 7)) + t.equal(16, b.writeDoubleLE(0, 8)) + t.end() +}) + +test('concat() a varying number of buffers', function (t) { + var zero = [] + var one = [ new B('asdf') ] + var long = [] + for (var i = 0; i < 10; i++) { + long.push(new B('asdf')) + } + + var flatZero = B.concat(zero) + var flatOne = B.concat(one) + var flatLong = B.concat(long) + var flatLongLen = B.concat(long, 40) + + t.equal(flatZero.length, 0) + t.equal(flatOne.toString(), 'asdf') + t.deepEqual(flatOne, one[0]) + t.equal(flatLong.toString(), (new Array(10 + 1).join('asdf'))) + t.equal(flatLongLen.toString(), (new Array(10 + 1).join('asdf'))) + t.end() +}) + +test('fill', function (t) { + var b = new B(10) + b.fill(2) + t.equal(b.toString('hex'), '02020202020202020202') + t.end() +}) + +test('fill (string)', function (t) { + var b = new B(10) + b.fill('abc') + t.equal(b.toString(), 'abcabcabca') + b.fill('է') + t.equal(b.toString(), 'էէէէէ') + t.end() +}) + +test('copy() empty buffer with sourceEnd=0', function (t) { + var source = new B([42]) + var destination = new B([43]) + source.copy(destination, 0, 0, 0) + t.equal(destination.readUInt8(0), 43) + t.end() +}) + +test('copy() after slice()', function (t) { + var source = new B(200) + var dest = new B(200) + var expected = new B(200) + for (var i = 0; i < 200; i++) { + source[i] = i + dest[i] = 0 + } + + source.slice(2).copy(dest) + source.copy(expected, 0, 2) + t.deepEqual(dest, expected) + t.end() +}) + +test('copy() ascending', function (t) { + var b = new B('abcdefghij') + b.copy(b, 0, 3, 10) + t.equal(b.toString(), 'defghijhij') + t.end() +}) + +test('copy() descending', function (t) { + var b = new B('abcdefghij') + b.copy(b, 3, 0, 7) + t.equal(b.toString(), 'abcabcdefg') + t.end() +}) + +test('buffer.slice sets indexes', function (t) { + t.equal((new B('hallo')).slice(0, 5).toString(), 'hallo') + t.end() +}) + +test('buffer.slice out of range', function (t) { + t.plan(2) + t.equal((new B('hallo')).slice(0, 10).toString(), 'hallo') + t.equal((new B('hallo')).slice(10, 2).toString(), '') + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-alloc.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-alloc.js new file mode 100644 index 0000000000000000000000000000000000000000..b524f51ef3f1bf65369fb026c0a1283b98ab3544 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-alloc.js @@ -0,0 +1,1501 @@ +'use strict'; +var Buffer = require('../../').Buffer; + +var common = { skip: function () {} }; +var assert = require('assert'); + +var Buffer = require('../../').Buffer; + +// counter to ensure unique value is always copied +var cntr = 0; + +var b = Buffer.allocUnsafe(1024); + +// console.log('b.length == %d', b.length); +assert.strictEqual(1024, b.length); + +b[0] = -1; +assert.strictEqual(b[0], 255); + +for (var i = 0; i < 1024; i++) { + b[i] = i % 256; +} + +for (var i = 0; i < 1024; i++) { + assert.strictEqual(i % 256, b[i]); +} + +var c = Buffer.allocUnsafe(512); +// console.log('c.length == %d', c.length); +assert.strictEqual(512, c.length); + +var d = Buffer.from([]); +assert.strictEqual(0, d.length); + +var ui32 = new Uint32Array(4).fill(42); +var e = Buffer.from(ui32); +for (var [index, value] of e.entries()) { + assert.strictEqual(value, ui32[index]); +} + +// First check Buffer#fill() works as expected. + +assert.throws(function() { + Buffer.allocUnsafe(8).fill('a', -1); +}); + +assert.throws(function() { + Buffer.allocUnsafe(8).fill('a', 0, 9); +}); + +// Make sure this doesn't hang indefinitely. +Buffer.allocUnsafe(8).fill(''); +Buffer.alloc(8, ''); + +{ + var buf = Buffer.alloc(64, 10); + for (var i = 0; i < buf.length; i++) + assert.equal(buf[i], 10); + + buf.fill(11, 0, buf.length >> 1); + for (var i = 0; i < buf.length >> 1; i++) + assert.equal(buf[i], 11); + for (var i = (buf.length >> 1) + 1; i < buf.length; i++) + assert.equal(buf[i], 10); + + buf.fill('h'); + for (var i = 0; i < buf.length; i++) + assert.equal('h'.charCodeAt(0), buf[i]); + + buf.fill(0); + for (var i = 0; i < buf.length; i++) + assert.equal(0, buf[i]); + + buf.fill(null); + for (var i = 0; i < buf.length; i++) + assert.equal(0, buf[i]); + + buf.fill(1, 16, 32); + for (var i = 0; i < 16; i++) + assert.equal(0, buf[i]); + for (var i = 16; i < 32; i++) + assert.equal(1, buf[i]); + for (var i = 32; i < buf.length; i++) + assert.equal(0, buf[i]); +} + +{ + var buf = Buffer.alloc(10, 'abc'); + assert.equal(buf.toString(), 'abcabcabca'); + buf.fill('է'); + assert.equal(buf.toString(), 'էէէէէ'); +} + +{ + // copy 512 bytes, from 0 to 512. + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, 0, 512); +// console.log('copied %d bytes from b into c', copied); + assert.strictEqual(512, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +{ + // copy c into b, without specifying sourceEnd + b.fill(++cntr); + c.fill(++cntr); + var copied = c.copy(b, 0, 0); +// console.log('copied %d bytes from c into b w/o sourceEnd', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(c[i], b[i]); + } +} + +{ + // copy c into b, without specifying sourceStart + b.fill(++cntr); + c.fill(++cntr); + var copied = c.copy(b, 0); +// console.log('copied %d bytes from c into b w/o sourceStart', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(c[i], b[i]); + } +} + +{ + // copy longer buffer b to shorter c without targetStart + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c); +// console.log('copied %d bytes from b into c w/o targetStart', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +{ + // copy starting near end of b to c + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, b.length - Math.floor(c.length / 2)); +// console.log('copied %d bytes from end of b into beginning of c', copied); + assert.strictEqual(Math.floor(c.length / 2), copied); + for (var i = 0; i < Math.floor(c.length / 2); i++) { + assert.strictEqual(b[b.length - Math.floor(c.length / 2) + i], c[i]); + } + for (var i = Math.floor(c.length / 2) + 1; i < c.length; i++) { + assert.strictEqual(c[c.length - 1], c[i]); + } +} + +{ + // try to copy 513 bytes, and check we don't overrun c + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, 0, 513); +// console.log('copied %d bytes from b trying to overrun c', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +{ + // copy 768 bytes from b into b + b.fill(++cntr); + b.fill(++cntr, 256); + var copied = b.copy(b, 0, 256, 1024); +// console.log('copied %d bytes from b into b', copied); + assert.strictEqual(768, copied); + for (var i = 0; i < b.length; i++) { + assert.strictEqual(cntr, b[i]); + } +} + +// copy string longer than buffer length (failure will segfault) +var bb = Buffer.allocUnsafe(10); +bb.fill('hello crazy world'); + + +// try to copy from before the beginning of b +assert.doesNotThrow(() => { b.copy(c, 0, 100, 10); }); + +// copy throws at negative sourceStart +assert.throws(function() { + Buffer.allocUnsafe(5).copy(Buffer.allocUnsafe(5), 0, -1); +}, RangeError); + +{ + // check sourceEnd resets to targetEnd if former is greater than the latter + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, 0, 1025); +// console.log('copied %d bytes from b into c', copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +// throw with negative sourceEnd +// console.log('test copy at negative sourceEnd'); +assert.throws(function() { + b.copy(c, 0, 0, -1); +}, RangeError); + +// when sourceStart is greater than sourceEnd, zero copied +assert.equal(b.copy(c, 0, 100, 10), 0); + +// when targetStart > targetLength, zero copied +assert.equal(b.copy(c, 512, 0, 10), 0); + +var caught_error; + +// invalid encoding for Buffer.toString +caught_error = null; +try { + b.toString('invalid'); +} catch (err) { + caught_error = err; +} +assert.strictEqual('Unknown encoding: invalid', caught_error.message); + +// invalid encoding for Buffer.write +caught_error = null; +try { + b.write('test string', 0, 5, 'invalid'); +} catch (err) { + caught_error = err; +} +assert.strictEqual('Unknown encoding: invalid', caught_error.message); + +// try to create 0-length buffers +Buffer.from(''); +Buffer.from('', 'ascii'); +Buffer.from('', 'latin1'); +Buffer.alloc(0); +Buffer.allocUnsafe(0); + +// try to write a 0-length string beyond the end of b +assert.throws(function() { + b.write('', 2048); +}, RangeError); + +// throw when writing to negative offset +assert.throws(function() { + b.write('a', -1); +}, RangeError); + +// throw when writing past bounds from the pool +assert.throws(function() { + b.write('a', 2048); +}, RangeError); + +// throw when writing to negative offset +assert.throws(function() { + b.write('a', -1); +}, RangeError); + +// try to copy 0 bytes worth of data into an empty buffer +b.copy(Buffer.alloc(0), 0, 0, 0); + +// try to copy 0 bytes past the end of the target buffer +b.copy(Buffer.alloc(0), 1, 1, 1); +b.copy(Buffer.alloc(1), 1, 1, 1); + +// try to copy 0 bytes from past the end of the source buffer +b.copy(Buffer.alloc(1), 0, 2048, 2048); + +var rangeBuffer = Buffer.from('abc'); + +// if start >= buffer's length, empty string will be returned +assert.equal(rangeBuffer.toString('ascii', 3), ''); +assert.equal(rangeBuffer.toString('ascii', +Infinity), ''); +assert.equal(rangeBuffer.toString('ascii', 3.14, 3), ''); +assert.equal(rangeBuffer.toString('ascii', 'Infinity', 3), ''); + +// if end <= 0, empty string will be returned +assert.equal(rangeBuffer.toString('ascii', 1, 0), ''); +assert.equal(rangeBuffer.toString('ascii', 1, -1.2), ''); +assert.equal(rangeBuffer.toString('ascii', 1, -100), ''); +assert.equal(rangeBuffer.toString('ascii', 1, -Infinity), ''); + +// if start < 0, start will be taken as zero +assert.equal(rangeBuffer.toString('ascii', -1, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', -1.99, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', -Infinity, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '-1', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '-1.99', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '-Infinity', 3), 'abc'); + +// if start is an invalid integer, start will be taken as zero +assert.equal(rangeBuffer.toString('ascii', 'node.js', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', {}, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', [], 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', NaN, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', null, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', undefined, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', false, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '', 3), 'abc'); + +// but, if start is an integer when coerced, then it will be coerced and used. +assert.equal(rangeBuffer.toString('ascii', '-1', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '1', 3), 'bc'); +assert.equal(rangeBuffer.toString('ascii', '-Infinity', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '3', 3), ''); +assert.equal(rangeBuffer.toString('ascii', Number(3), 3), ''); +assert.equal(rangeBuffer.toString('ascii', '3.14', 3), ''); +assert.equal(rangeBuffer.toString('ascii', '1.99', 3), 'bc'); +assert.equal(rangeBuffer.toString('ascii', '-1.99', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 1.99, 3), 'bc'); +assert.equal(rangeBuffer.toString('ascii', true, 3), 'bc'); + +// if end > buffer's length, end will be taken as buffer's length +assert.equal(rangeBuffer.toString('ascii', 0, 5), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, 6.99), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, Infinity), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '5'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '6.99'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, 'Infinity'), 'abc'); + +// if end is an invalid integer, end will be taken as buffer's length +assert.equal(rangeBuffer.toString('ascii', 0, 'node.js'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, {}), ''); +assert.equal(rangeBuffer.toString('ascii', 0, NaN), ''); +assert.equal(rangeBuffer.toString('ascii', 0, undefined), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, null), ''); +assert.equal(rangeBuffer.toString('ascii', 0, []), ''); +assert.equal(rangeBuffer.toString('ascii', 0, false), ''); +assert.equal(rangeBuffer.toString('ascii', 0, ''), ''); + +// but, if end is an integer when coerced, then it will be coerced and used. +assert.equal(rangeBuffer.toString('ascii', 0, '-1'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, '1'), 'a'); +assert.equal(rangeBuffer.toString('ascii', 0, '-Infinity'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, '3'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, Number(3)), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '3.14'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '1.99'), 'a'); +assert.equal(rangeBuffer.toString('ascii', 0, '-1.99'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, 1.99), 'a'); +assert.equal(rangeBuffer.toString('ascii', 0, true), 'a'); + +// try toString() with a object as a encoding +assert.equal(rangeBuffer.toString({toString: function() { + return 'ascii'; +}}), 'abc'); + +// testing for smart defaults and ability to pass string values as offset +var writeTest = Buffer.from('abcdes'); +writeTest.write('n', 'ascii'); +writeTest.write('o', '1', 'ascii'); +writeTest.write('d', '2', 'ascii'); +writeTest.write('e', 3, 'ascii'); +writeTest.write('j', 4, 'ascii'); +assert.equal(writeTest.toString(), 'nodejs'); + +// ASCII slice test +{ + var asciiString = 'hello world'; + + for (var i = 0; i < asciiString.length; i++) { + b[i] = asciiString.charCodeAt(i); + } + var asciiSlice = b.toString('ascii', 0, asciiString.length); + assert.equal(asciiString, asciiSlice); +} + +{ + var asciiString = 'hello world'; + var offset = 100; + + var written = b.write(asciiString, offset, 'ascii'); + assert.equal(asciiString.length, written); + var asciiSlice = b.toString('ascii', offset, offset + asciiString.length); + assert.equal(asciiString, asciiSlice); +} + +{ + var asciiString = 'hello world'; + var offset = 100; + + var sliceA = b.slice(offset, offset + asciiString.length); + var sliceB = b.slice(offset, offset + asciiString.length); + for (var i = 0; i < asciiString.length; i++) { + assert.equal(sliceA[i], sliceB[i]); + } +} + +// UTF-8 slice test + +var utf8String = '¡hέlló wôrld!'; +var offset = 100; + +b.write(utf8String, 0, Buffer.byteLength(utf8String), 'utf8'); +var utf8Slice = b.toString('utf8', 0, Buffer.byteLength(utf8String)); +assert.equal(utf8String, utf8Slice); + +var written = b.write(utf8String, offset, 'utf8'); +assert.equal(Buffer.byteLength(utf8String), written); +utf8Slice = b.toString('utf8', offset, offset + Buffer.byteLength(utf8String)); +assert.equal(utf8String, utf8Slice); + +var sliceA = b.slice(offset, offset + Buffer.byteLength(utf8String)); +var sliceB = b.slice(offset, offset + Buffer.byteLength(utf8String)); +for (var i = 0; i < Buffer.byteLength(utf8String); i++) { + assert.equal(sliceA[i], sliceB[i]); +} + +{ + var slice = b.slice(100, 150); + assert.equal(50, slice.length); + for (var i = 0; i < 50; i++) { + assert.equal(b[100 + i], slice[i]); + } +} + +{ + // make sure only top level parent propagates from allocPool + var b = Buffer.allocUnsafe(5); + var c = b.slice(0, 4); + var d = c.slice(0, 2); + assert.equal(b.parent, c.parent); + assert.equal(b.parent, d.parent); +} + +{ + // also from a non-pooled instance + var b = Buffer.allocUnsafeSlow(5); + var c = b.slice(0, 4); + var d = c.slice(0, 2); + assert.equal(c.parent, d.parent); +} + +{ + // Bug regression test + var testValue = '\u00F6\u65E5\u672C\u8A9E'; // ö日本語 + var buffer = Buffer.allocUnsafe(32); + var size = buffer.write(testValue, 0, 'utf8'); +// console.log('bytes written to buffer: ' + size); + var slice = buffer.toString('utf8', 0, size); + assert.equal(slice, testValue); +} + +{ + // Test triple slice + var a = Buffer.allocUnsafe(8); + for (var i = 0; i < 8; i++) a[i] = i; + var b = a.slice(4, 8); + assert.equal(4, b[0]); + assert.equal(5, b[1]); + assert.equal(6, b[2]); + assert.equal(7, b[3]); + var c = b.slice(2, 4); + assert.equal(6, c[0]); + assert.equal(7, c[1]); +} + +{ + var d = Buffer.from([23, 42, 255]); + assert.equal(d.length, 3); + assert.equal(d[0], 23); + assert.equal(d[1], 42); + assert.equal(d[2], 255); + assert.deepStrictEqual(d, Buffer.from(d)); +} + +{ + var e = Buffer.from('über'); +// console.error('uber: \'%s\'', e.toString()); + assert.deepStrictEqual(e, Buffer.from([195, 188, 98, 101, 114])); +} + +{ + var f = Buffer.from('über', 'ascii'); +// console.error('f.length: %d (should be 4)', f.length); + assert.deepStrictEqual(f, Buffer.from([252, 98, 101, 114])); +} + +['ucs2', 'ucs-2', 'utf16le', 'utf-16le'].forEach(function(encoding) { + { + var f = Buffer.from('über', encoding); +// console.error('f.length: %d (should be 8)', f.length); + assert.deepStrictEqual(f, Buffer.from([252, 0, 98, 0, 101, 0, 114, 0])); + } + + { + var f = Buffer.from('привет', encoding); +// console.error('f.length: %d (should be 12)', f.length); + assert.deepStrictEqual(f, + Buffer.from([63, 4, 64, 4, 56, 4, 50, 4, 53, 4, 66, 4])); + assert.equal(f.toString(encoding), 'привет'); + } + + { + var f = Buffer.from([0, 0, 0, 0, 0]); + assert.equal(f.length, 5); + var size = f.write('あいうえお', encoding); +// console.error('bytes written to buffer: %d (should be 4)', size); + assert.equal(size, 4); + assert.deepStrictEqual(f, Buffer.from([0x42, 0x30, 0x44, 0x30, 0x00])); + } +}); + +{ + var f = Buffer.from('\uD83D\uDC4D', 'utf-16le'); // THUMBS UP SIGN (U+1F44D) + assert.equal(f.length, 4); + assert.deepStrictEqual(f, Buffer.from('3DD84DDC', 'hex')); +} + + +var arrayIsh = {0: 0, 1: 1, 2: 2, 3: 3, length: 4}; +var g = Buffer.from(arrayIsh); +assert.deepStrictEqual(g, Buffer.from([0, 1, 2, 3])); +var strArrayIsh = {0: '0', 1: '1', 2: '2', 3: '3', length: 4}; +g = Buffer.from(strArrayIsh); +assert.deepStrictEqual(g, Buffer.from([0, 1, 2, 3])); + + +// +// Test toString('base64') +// +assert.equal('TWFu', (Buffer.from('Man')).toString('base64')); + +{ + // test that regular and URL-safe base64 both work + var expected = [0xff, 0xff, 0xbe, 0xff, 0xef, 0xbf, 0xfb, 0xef, 0xff]; + assert.deepStrictEqual(Buffer.from('//++/++/++//', 'base64'), + Buffer.from(expected)); + assert.deepStrictEqual(Buffer.from('__--_--_--__', 'base64'), + Buffer.from(expected)); +} + +{ + // big example + var quote = 'Man is distinguished, not only by his reason, but by this ' + + 'singular passion from other animals, which is a lust ' + + 'of the mind, that by a perseverance of delight in the ' + + 'continued and indefatigable generation of knowledge, ' + + 'exceeds the short vehemence of any carnal pleasure.'; + var expected = 'TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb' + + '24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlci' + + 'BhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQ' + + 'gYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu' + + 'dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZ' + + 'GdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm' + + '5hbCBwbGVhc3VyZS4='; + assert.equal(expected, (Buffer.from(quote)).toString('base64')); + + var b = Buffer.allocUnsafe(1024); + var bytesWritten = b.write(expected, 0, 'base64'); + assert.equal(quote.length, bytesWritten); + assert.equal(quote, b.toString('ascii', 0, quote.length)); + + // check that the base64 decoder ignores whitespace + var expectedWhite = expected.slice(0, 60) + ' \n' + + expected.slice(60, 120) + ' \n' + + expected.slice(120, 180) + ' \n' + + expected.slice(180, 240) + ' \n' + + expected.slice(240, 300) + '\n' + + expected.slice(300, 360) + '\n'; + b = Buffer.allocUnsafe(1024); + bytesWritten = b.write(expectedWhite, 0, 'base64'); + assert.equal(quote.length, bytesWritten); + assert.equal(quote, b.toString('ascii', 0, quote.length)); + + // check that the base64 decoder on the constructor works + // even in the presence of whitespace. + b = Buffer.from(expectedWhite, 'base64'); + assert.equal(quote.length, b.length); + assert.equal(quote, b.toString('ascii', 0, quote.length)); + + // check that the base64 decoder ignores illegal chars + var expectedIllegal = expected.slice(0, 60) + ' \x80' + + expected.slice(60, 120) + ' \xff' + + expected.slice(120, 180) + ' \x00' + + expected.slice(180, 240) + ' \x98' + + expected.slice(240, 300) + '\x03' + + expected.slice(300, 360); + b = Buffer.from(expectedIllegal, 'base64'); + assert.equal(quote.length, b.length); + assert.equal(quote, b.toString('ascii', 0, quote.length)); +} + +assert.equal(Buffer.from('', 'base64').toString(), ''); +assert.equal(Buffer.from('K', 'base64').toString(), ''); + +// multiple-of-4 with padding +assert.equal(Buffer.from('Kg==', 'base64').toString(), '*'); +assert.equal(Buffer.from('Kio=', 'base64').toString(), '**'); +assert.equal(Buffer.from('Kioq', 'base64').toString(), '***'); +assert.equal(Buffer.from('KioqKg==', 'base64').toString(), '****'); +assert.equal(Buffer.from('KioqKio=', 'base64').toString(), '*****'); +assert.equal(Buffer.from('KioqKioq', 'base64').toString(), '******'); +assert.equal(Buffer.from('KioqKioqKg==', 'base64').toString(), '*******'); +assert.equal(Buffer.from('KioqKioqKio=', 'base64').toString(), '********'); +assert.equal(Buffer.from('KioqKioqKioq', 'base64').toString(), '*********'); +assert.equal(Buffer.from('KioqKioqKioqKg==', 'base64').toString(), + '**********'); +assert.equal(Buffer.from('KioqKioqKioqKio=', 'base64').toString(), + '***********'); +assert.equal(Buffer.from('KioqKioqKioqKioq', 'base64').toString(), + '************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKg==', 'base64').toString(), + '*************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKio=', 'base64').toString(), + '**************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioq', 'base64').toString(), + '***************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKg==', 'base64').toString(), + '****************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKio=', 'base64').toString(), + '*****************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKioq', 'base64').toString(), + '******************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKioqKg==', 'base64').toString(), + '*******************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKioqKio=', 'base64').toString(), + '********************'); + +// no padding, not a multiple of 4 +assert.equal(Buffer.from('Kg', 'base64').toString(), '*'); +assert.equal(Buffer.from('Kio', 'base64').toString(), '**'); +assert.equal(Buffer.from('KioqKg', 'base64').toString(), '****'); +assert.equal(Buffer.from('KioqKio', 'base64').toString(), '*****'); +assert.equal(Buffer.from('KioqKioqKg', 'base64').toString(), '*******'); +assert.equal(Buffer.from('KioqKioqKio', 'base64').toString(), '********'); +assert.equal(Buffer.from('KioqKioqKioqKg', 'base64').toString(), '**********'); +assert.equal(Buffer.from('KioqKioqKioqKio', 'base64').toString(), + '***********'); +assert.equal(Buffer.from('KioqKioqKioqKioqKg', 'base64').toString(), + '*************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKio', 'base64').toString(), + '**************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKg', 'base64').toString(), + '****************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKio', 'base64').toString(), + '*****************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKioqKg', 'base64').toString(), + '*******************'); +assert.equal(Buffer.from('KioqKioqKioqKioqKioqKioqKio', 'base64').toString(), + '********************'); + +// handle padding graciously, multiple-of-4 or not +assert.equal( + Buffer.from('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw==', 'base64').length, + 32 +); +assert.equal( + Buffer.from('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw=', 'base64').length, + 32 +); +assert.equal( + Buffer.from('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw', 'base64').length, + 32 +); +assert.equal( + Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg==', 'base64').length, + 31 +); +assert.equal( + Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg=', 'base64').length, + 31 +); +assert.equal( + Buffer.from('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg', 'base64').length, + 31 +); + +// This string encodes single '.' character in UTF-16 +var dot = Buffer.from('//4uAA==', 'base64'); +assert.equal(dot[0], 0xff); +assert.equal(dot[1], 0xfe); +assert.equal(dot[2], 0x2e); +assert.equal(dot[3], 0x00); +assert.equal(dot.toString('base64'), '//4uAA=='); + +{ + // Writing base64 at a position > 0 should not mangle the result. + // + // https://github.com/joyent/node/issues/402 + var segments = ['TWFkbmVzcz8h', 'IFRoaXM=', 'IGlz', 'IG5vZGUuanMh']; + var b = Buffer.allocUnsafe(64); + var pos = 0; + + for (var i = 0; i < segments.length; ++i) { + pos += b.write(segments[i], pos, 'base64'); + } + assert.equal(b.toString('latin1', 0, pos), 'Madness?! This is node.js!'); +} + +// Regression test for https://github.com/nodejs/node/issues/3496. +// assert.equal(Buffer.from('=bad'.repeat(1e4), 'base64').length, 0); + +{ + // Creating buffers larger than pool size. + var l = Buffer.poolSize + 5; + var s = ''; + for (var i = 0; i < l; i++) { + s += 'h'; + } + + var b = Buffer.from(s); + + for (var i = 0; i < l; i++) { + assert.equal('h'.charCodeAt(0), b[i]); + } + + var sb = b.toString(); + assert.equal(sb.length, s.length); + assert.equal(sb, s); +} + +{ + // Single argument slice + var b = Buffer.from('abcde'); + assert.equal('bcde', b.slice(1).toString()); +} + +// slice(0,0).length === 0 +assert.equal(0, Buffer.from('hello').slice(0, 0).length); + +// test hex toString +// console.log('Create hex string from buffer'); +var hexb = Buffer.allocUnsafe(256); +for (var i = 0; i < 256; i++) { + hexb[i] = i; +} +var hexStr = hexb.toString('hex'); +assert.equal(hexStr, + '000102030405060708090a0b0c0d0e0f' + + '101112131415161718191a1b1c1d1e1f' + + '202122232425262728292a2b2c2d2e2f' + + '303132333435363738393a3b3c3d3e3f' + + '404142434445464748494a4b4c4d4e4f' + + '505152535455565758595a5b5c5d5e5f' + + '606162636465666768696a6b6c6d6e6f' + + '707172737475767778797a7b7c7d7e7f' + + '808182838485868788898a8b8c8d8e8f' + + '909192939495969798999a9b9c9d9e9f' + + 'a0a1a2a3a4a5a6a7a8a9aaabacadaeaf' + + 'b0b1b2b3b4b5b6b7b8b9babbbcbdbebf' + + 'c0c1c2c3c4c5c6c7c8c9cacbcccdcecf' + + 'd0d1d2d3d4d5d6d7d8d9dadbdcdddedf' + + 'e0e1e2e3e4e5e6e7e8e9eaebecedeeef' + + 'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff'); + +// console.log('Create buffer from hex string'); +var hexb2 = Buffer.from(hexStr, 'hex'); +for (var i = 0; i < 256; i++) { + assert.equal(hexb2[i], hexb[i]); +} + +{ + // test an invalid slice end. +// console.log('Try to slice off the end of the buffer'); + var b = Buffer.from([1, 2, 3, 4, 5]); + var b2 = b.toString('hex', 1, 10000); + var b3 = b.toString('hex', 1, 5); + var b4 = b.toString('hex', 1); + assert.equal(b2, b3); + assert.equal(b2, b4); +} + +function buildBuffer(data) { + if (Array.isArray(data)) { + var buffer = Buffer.allocUnsafe(data.length); + data.forEach(function(v, k) { + buffer[k] = v; + }); + return buffer; + } + return null; +} + +var x = buildBuffer([0x81, 0xa3, 0x66, 0x6f, 0x6f, 0xa3, 0x62, 0x61, 0x72]); + +// console.log(x.inspect()); +assert.equal('', x.inspect()); + +{ + var z = x.slice(4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(5, z.length); + assert.equal(0x6f, z[0]); + assert.equal(0xa3, z[1]); + assert.equal(0x62, z[2]); + assert.equal(0x61, z[3]); + assert.equal(0x72, z[4]); +} + +{ + var z = x.slice(0); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(z.length, x.length); +} + +{ + var z = x.slice(0, 4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(4, z.length); + assert.equal(0x81, z[0]); + assert.equal(0xa3, z[1]); +} + +{ + var z = x.slice(0, 9); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(9, z.length); +} + +{ + var z = x.slice(1, 4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(3, z.length); + assert.equal(0xa3, z[0]); +} + +{ + var z = x.slice(2, 4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(2, z.length); + assert.equal(0x66, z[0]); + assert.equal(0x6f, z[1]); +} + +assert.equal(0, Buffer.from('hello').slice(0, 0).length); + +['ucs2', 'ucs-2', 'utf16le', 'utf-16le'].forEach(function(encoding) { + var b = Buffer.allocUnsafe(10); + b.write('あいうえお', encoding); + assert.equal(b.toString(encoding), 'あいうえお'); +}); + +{ + // Binary encoding should write only one byte per character. + var b = Buffer.from([0xde, 0xad, 0xbe, 0xef]); + var s = String.fromCharCode(0xffff); + b.write(s, 0, 'latin1'); + assert.equal(0xff, b[0]); + assert.equal(0xad, b[1]); + assert.equal(0xbe, b[2]); + assert.equal(0xef, b[3]); + s = String.fromCharCode(0xaaee); + b.write(s, 0, 'latin1'); + assert.equal(0xee, b[0]); + assert.equal(0xad, b[1]); + assert.equal(0xbe, b[2]); + assert.equal(0xef, b[3]); +} + +{ + // #1210 Test UTF-8 string includes null character + var buf = Buffer.from('\0'); + assert.equal(buf.length, 1); + buf = Buffer.from('\0\0'); + assert.equal(buf.length, 2); +} + +{ + var buf = Buffer.allocUnsafe(2); + var written = buf.write(''); // 0byte + assert.equal(written, 0); + written = buf.write('\0'); // 1byte (v8 adds null terminator) + assert.equal(written, 1); + written = buf.write('a\0'); // 1byte * 2 + assert.equal(written, 2); + written = buf.write('あ'); // 3bytes + assert.equal(written, 0); + written = buf.write('\0あ'); // 1byte + 3bytes + assert.equal(written, 1); + written = buf.write('\0\0あ'); // 1byte * 2 + 3bytes + assert.equal(written, 2); +} + +{ + var buf = Buffer.allocUnsafe(10); + written = buf.write('あいう'); // 3bytes * 3 (v8 adds null terminator) + assert.equal(written, 9); + written = buf.write('あいう\0'); // 3bytes * 3 + 1byte + assert.equal(written, 10); +} + +{ + // #243 Test write() with maxLength + var buf = Buffer.allocUnsafe(4); + buf.fill(0xFF); + var written = buf.write('abcd', 1, 2, 'utf8'); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0x61); + assert.equal(buf[2], 0x62); + assert.equal(buf[3], 0xFF); + + buf.fill(0xFF); + written = buf.write('abcd', 1, 4); +// console.log(buf); + assert.equal(written, 3); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0x61); + assert.equal(buf[2], 0x62); + assert.equal(buf[3], 0x63); + + buf.fill(0xFF); + written = buf.write('abcd', 1, 2, 'utf8'); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0x61); + assert.equal(buf[2], 0x62); + assert.equal(buf[3], 0xFF); + + buf.fill(0xFF); + written = buf.write('abcdef', 1, 2, 'hex'); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0xAB); + assert.equal(buf[2], 0xCD); + assert.equal(buf[3], 0xFF); + + ['ucs2', 'ucs-2', 'utf16le', 'utf-16le'].forEach(function(encoding) { + buf.fill(0xFF); + written = buf.write('abcd', 0, 2, encoding); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0x61); + assert.equal(buf[1], 0x00); + assert.equal(buf[2], 0xFF); + assert.equal(buf[3], 0xFF); + }); +} + +{ + // test offset returns are correct + var b = Buffer.allocUnsafe(16); + assert.equal(4, b.writeUInt32LE(0, 0)); + assert.equal(6, b.writeUInt16LE(0, 4)); + assert.equal(7, b.writeUInt8(0, 6)); + assert.equal(8, b.writeInt8(0, 7)); + assert.equal(16, b.writeDoubleLE(0, 8)); +} + +{ + // test unmatched surrogates not producing invalid utf8 output + // ef bf bd = utf-8 representation of unicode replacement character + // see https://codereview.chromium.org/121173009/ + var buf = Buffer.from('ab\ud800cd', 'utf8'); + assert.equal(buf[0], 0x61); + assert.equal(buf[1], 0x62); + assert.equal(buf[2], 0xef); + assert.equal(buf[3], 0xbf); + assert.equal(buf[4], 0xbd); + assert.equal(buf[5], 0x63); + assert.equal(buf[6], 0x64); +} + +{ + // test for buffer overrun + var buf = Buffer.from([0, 0, 0, 0, 0]); // length: 5 + var sub = buf.slice(0, 4); // length: 4 + written = sub.write('12345', 'latin1'); + assert.equal(written, 4); + assert.equal(buf[4], 0); +} + +// Check for fractional length args, junk length args, etc. +// https://github.com/joyent/node/issues/1758 + +// Call .fill() first, stops valgrind warning about uninitialized memory reads. +Buffer.allocUnsafe(3.3).fill().toString(); + // throws bad argument error in commit 43cb4ec +Buffer.alloc(3.3).fill().toString(); +assert.equal(Buffer.allocUnsafe(NaN).length, 0); +assert.equal(Buffer.allocUnsafe(3.3).length, 3); +assert.equal(Buffer.from({length: 3.3}).length, 3); +assert.equal(Buffer.from({length: 'BAM'}).length, 0); + +// Make sure that strings are not coerced to numbers. +assert.equal(Buffer.from('99').length, 2); +assert.equal(Buffer.from('13.37').length, 5); + +// Ensure that the length argument is respected. +'ascii utf8 hex base64 latin1'.split(' ').forEach(function(enc) { + assert.equal(Buffer.allocUnsafe(1).write('aaaaaa', 0, 1, enc), 1); +}); + +{ + // Regression test, guard against buffer overrun in the base64 decoder. + var a = Buffer.allocUnsafe(3); + var b = Buffer.from('xxx'); + a.write('aaaaaaaa', 'base64'); + assert.equal(b.toString(), 'xxx'); +} + +// issue GH-3416 +Buffer.from(Buffer.allocUnsafe(0), 0, 0); + +[ 'hex', + 'utf8', + 'utf-8', + 'ascii', + 'latin1', + 'binary', + 'base64', + 'ucs2', + 'ucs-2', + 'utf16le', + 'utf-16le' ].forEach(function(enc) { + assert.equal(Buffer.isEncoding(enc), true); + }); + +[ 'utf9', + 'utf-7', + 'Unicode-FTW', + 'new gnu gun', + false, + NaN, + {}, + Infinity, + [], + 1, + 0, + -1 ].forEach(function(enc) { + assert.equal(Buffer.isEncoding(enc), false); + }); + + +// GH-5110 +{ + var buffer = Buffer.from('test'); + var string = JSON.stringify(buffer); + + assert.strictEqual(string, '{"type":"Buffer","data":[116,101,115,116]}'); + + assert.deepStrictEqual(buffer, JSON.parse(string, function(key, value) { + return value && value.type === 'Buffer' + ? Buffer.from(value.data) + : value; + })); +} + +// issue GH-7849 +{ + var buf = Buffer.from('test'); + var json = JSON.stringify(buf); + var obj = JSON.parse(json); + var copy = Buffer.from(obj); + + assert(buf.equals(copy)); +} + +// issue GH-4331 +assert.throws(function() { + Buffer.allocUnsafe(0xFFFFFFFF); +}, RangeError); +assert.throws(function() { + Buffer.allocUnsafe(0xFFFFFFFFF); +}, RangeError); + + +// attempt to overflow buffers, similar to previous bug in array buffers +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.readFloatLE(0xffffffff); +}, RangeError); + +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.writeFloatLE(0.0, 0xffffffff); +}, RangeError); + +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.readFloatLE(0xffffffff); +}, RangeError); + +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.writeFloatLE(0.0, 0xffffffff); +}, RangeError); + + +// ensure negative values can't get past offset +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.readFloatLE(-1); +}, RangeError); + +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.writeFloatLE(0.0, -1); +}, RangeError); + +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.readFloatLE(-1); +}, RangeError); + +assert.throws(function() { + var buf = Buffer.allocUnsafe(8); + buf.writeFloatLE(0.0, -1); +}, RangeError); + +// offset checks +{ + var buf = Buffer.allocUnsafe(0); + + assert.throws(function() { buf.readUInt8(0); }, RangeError); + assert.throws(function() { buf.readInt8(0); }, RangeError); +} + +{ + var buf = Buffer.from([0xFF]); + + assert.equal(buf.readUInt8(0), 255); + assert.equal(buf.readInt8(0), -1); +} + +[16, 32].forEach(function(bits) { + var buf = Buffer.allocUnsafe(bits / 8 - 1); + + assert.throws(function() { buf['readUInt' + bits + 'BE'](0); }, + RangeError, + 'readUInt' + bits + 'BE'); + + assert.throws(function() { buf['readUInt' + bits + 'LE'](0); }, + RangeError, + 'readUInt' + bits + 'LE'); + + assert.throws(function() { buf['readInt' + bits + 'BE'](0); }, + RangeError, + 'readInt' + bits + 'BE()'); + + assert.throws(function() { buf['readInt' + bits + 'LE'](0); }, + RangeError, + 'readInt' + bits + 'LE()'); +}); + +[16, 32].forEach(function(bits) { + var buf = Buffer.from([0xFF, 0xFF, 0xFF, 0xFF]); + + assert.equal(buf['readUInt' + bits + 'BE'](0), + (0xFFFFFFFF >>> (32 - bits))); + + assert.equal(buf['readUInt' + bits + 'LE'](0), + (0xFFFFFFFF >>> (32 - bits))); + + assert.equal(buf['readInt' + bits + 'BE'](0), + (0xFFFFFFFF >> (32 - bits))); + + assert.equal(buf['readInt' + bits + 'LE'](0), + (0xFFFFFFFF >> (32 - bits))); +}); + +// test for common read(U)IntLE/BE +{ + var buf = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05, 0x06]); + + assert.strictEqual(buf.readUIntLE(0, 1), 0x01); + assert.strictEqual(buf.readUIntBE(0, 1), 0x01); + assert.strictEqual(buf.readUIntLE(0, 3), 0x030201); + assert.strictEqual(buf.readUIntBE(0, 3), 0x010203); + assert.strictEqual(buf.readUIntLE(0, 5), 0x0504030201); + assert.strictEqual(buf.readUIntBE(0, 5), 0x0102030405); + assert.strictEqual(buf.readUIntLE(0, 6), 0x060504030201); + assert.strictEqual(buf.readUIntBE(0, 6), 0x010203040506); + assert.strictEqual(buf.readIntLE(0, 1), 0x01); + assert.strictEqual(buf.readIntBE(0, 1), 0x01); + assert.strictEqual(buf.readIntLE(0, 3), 0x030201); + assert.strictEqual(buf.readIntBE(0, 3), 0x010203); + assert.strictEqual(buf.readIntLE(0, 5), 0x0504030201); + assert.strictEqual(buf.readIntBE(0, 5), 0x0102030405); + assert.strictEqual(buf.readIntLE(0, 6), 0x060504030201); + assert.strictEqual(buf.readIntBE(0, 6), 0x010203040506); +} + +// test for common write(U)IntLE/BE +{ + var buf = Buffer.allocUnsafe(3); + buf.writeUIntLE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x56, 0x34, 0x12]); + assert.equal(buf.readUIntLE(0, 3), 0x123456); + + buf = Buffer.allocUnsafe(3); + buf.writeUIntBE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56]); + assert.equal(buf.readUIntBE(0, 3), 0x123456); + + buf = Buffer.allocUnsafe(3); + buf.writeIntLE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x56, 0x34, 0x12]); + assert.equal(buf.readIntLE(0, 3), 0x123456); + + buf = Buffer.allocUnsafe(3); + buf.writeIntBE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56]); + assert.equal(buf.readIntBE(0, 3), 0x123456); + + buf = Buffer.allocUnsafe(3); + buf.writeIntLE(-0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xaa, 0xcb, 0xed]); + assert.equal(buf.readIntLE(0, 3), -0x123456); + + buf = Buffer.allocUnsafe(3); + buf.writeIntBE(-0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xed, 0xcb, 0xaa]); + assert.equal(buf.readIntBE(0, 3), -0x123456); + + buf = Buffer.allocUnsafe(3); + buf.writeIntLE(-0x123400, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x00, 0xcc, 0xed]); + assert.equal(buf.readIntLE(0, 3), -0x123400); + + buf = Buffer.allocUnsafe(3); + buf.writeIntBE(-0x123400, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xed, 0xcc, 0x00]); + assert.equal(buf.readIntBE(0, 3), -0x123400); + + buf = Buffer.allocUnsafe(3); + buf.writeIntLE(-0x120000, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x00, 0x00, 0xee]); + assert.equal(buf.readIntLE(0, 3), -0x120000); + + buf = Buffer.allocUnsafe(3); + buf.writeIntBE(-0x120000, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xee, 0x00, 0x00]); + assert.equal(buf.readIntBE(0, 3), -0x120000); + + buf = Buffer.allocUnsafe(5); + buf.writeUIntLE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x90, 0x78, 0x56, 0x34, 0x12]); + assert.equal(buf.readUIntLE(0, 5), 0x1234567890); + + buf = Buffer.allocUnsafe(5); + buf.writeUIntBE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56, 0x78, 0x90]); + assert.equal(buf.readUIntBE(0, 5), 0x1234567890); + + buf = Buffer.allocUnsafe(5); + buf.writeIntLE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x90, 0x78, 0x56, 0x34, 0x12]); + assert.equal(buf.readIntLE(0, 5), 0x1234567890); + + buf = Buffer.allocUnsafe(5); + buf.writeIntBE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56, 0x78, 0x90]); + assert.equal(buf.readIntBE(0, 5), 0x1234567890); + + buf = Buffer.allocUnsafe(5); + buf.writeIntLE(-0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x70, 0x87, 0xa9, 0xcb, 0xed]); + assert.equal(buf.readIntLE(0, 5), -0x1234567890); + + buf = Buffer.allocUnsafe(5); + buf.writeIntBE(-0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0xed, 0xcb, 0xa9, 0x87, 0x70]); + assert.equal(buf.readIntBE(0, 5), -0x1234567890); + + buf = Buffer.allocUnsafe(5); + buf.writeIntLE(-0x0012000000, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x00, 0x00, 0x00, 0xee, 0xff]); + assert.equal(buf.readIntLE(0, 5), -0x0012000000); + + buf = Buffer.allocUnsafe(5); + buf.writeIntBE(-0x0012000000, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0xff, 0xee, 0x00, 0x00, 0x00]); + assert.equal(buf.readIntBE(0, 5), -0x0012000000); +} + +// test Buffer slice +{ + var buf = Buffer.from('0123456789'); + assert.equal(buf.slice(-10, 10), '0123456789'); + assert.equal(buf.slice(-20, 10), '0123456789'); + assert.equal(buf.slice(-20, -10), ''); + assert.equal(buf.slice(), '0123456789'); + assert.equal(buf.slice(0), '0123456789'); + assert.equal(buf.slice(0, 0), ''); + assert.equal(buf.slice(undefined), '0123456789'); + assert.equal(buf.slice('foobar'), '0123456789'); + assert.equal(buf.slice(undefined, undefined), '0123456789'); + + assert.equal(buf.slice(2), '23456789'); + assert.equal(buf.slice(5), '56789'); + assert.equal(buf.slice(10), ''); + assert.equal(buf.slice(5, 8), '567'); + assert.equal(buf.slice(8, -1), '8'); + assert.equal(buf.slice(-10), '0123456789'); + assert.equal(buf.slice(0, -9), '0'); + assert.equal(buf.slice(0, -10), ''); + assert.equal(buf.slice(0, -1), '012345678'); + assert.equal(buf.slice(2, -2), '234567'); + assert.equal(buf.slice(0, 65536), '0123456789'); + assert.equal(buf.slice(65536, 0), ''); + assert.equal(buf.slice(-5, -8), ''); + assert.equal(buf.slice(-5, -3), '56'); + assert.equal(buf.slice(-10, 10), '0123456789'); + for (var i = 0, s = buf.toString(); i < buf.length; ++i) { + assert.equal(buf.slice(i), s.slice(i)); + assert.equal(buf.slice(0, i), s.slice(0, i)); + assert.equal(buf.slice(-i), s.slice(-i)); + assert.equal(buf.slice(0, -i), s.slice(0, -i)); + } + + var utf16Buf = Buffer.from('0123456789', 'utf16le'); + // assert.deepStrictEqual(utf16Buf.slice(0, 6), Buffer.from('012', 'utf16le')); + + assert.equal(buf.slice('0', '1'), '0'); + assert.equal(buf.slice('-5', '10'), '56789'); + assert.equal(buf.slice('-10', '10'), '0123456789'); + assert.equal(buf.slice('-10', '-5'), '01234'); + assert.equal(buf.slice('-10', '-0'), ''); + assert.equal(buf.slice('111'), ''); + assert.equal(buf.slice('0', '-111'), ''); + + // try to slice a zero length Buffer + // see https://github.com/joyent/node/issues/5881 + Buffer.alloc(0).slice(0, 1); +} + +// Regression test for #5482: should throw but not assert in C++ land. +assert.throws(function() { + Buffer.from('', 'buffer'); +}, TypeError); + +// Regression test for #6111. Constructing a buffer from another buffer +// should a) work, and b) not corrupt the source buffer. +{ + var a = [0]; + for (var i = 0; i < 7; ++i) a = a.concat(a); + a = a.map(function(_, i) { return i; }); + var b = Buffer.from(a); + var c = Buffer.from(b); + assert.strictEqual(b.length, a.length); + assert.strictEqual(c.length, a.length); + for (var i = 0, k = a.length; i < k; ++i) { + assert.strictEqual(a[i], i); + assert.strictEqual(b[i], i); + assert.strictEqual(c[i], i); + } +} + + +assert.throws(function() { + Buffer.allocUnsafe((-1 >>> 0) + 1); +}, RangeError); + +assert.throws(function() { + Buffer.allocUnsafeSlow((-1 >>> 0) + 1); +}, RangeError); + +if (common.hasCrypto) { + // Test truncation after decode + var crypto = require('crypto'); + + var b1 = Buffer.from('YW55=======', 'base64'); + var b2 = Buffer.from('YW55', 'base64'); + + assert.equal( + crypto.createHash('sha1').update(b1).digest('hex'), + crypto.createHash('sha1').update(b2).digest('hex') + ); +} else { + common.skip('missing crypto'); +} + +// Test Compare +{ + var b = Buffer.alloc(1, 'a'); + var c = Buffer.alloc(1, 'c'); + var d = Buffer.alloc(2, 'aa'); + + assert.equal(b.compare(c), -1); + assert.equal(c.compare(d), 1); + assert.equal(d.compare(b), 1); + assert.equal(b.compare(d), -1); + assert.equal(b.compare(b), 0); + + assert.equal(Buffer.compare(b, c), -1); + assert.equal(Buffer.compare(c, d), 1); + assert.equal(Buffer.compare(d, b), 1); + assert.equal(Buffer.compare(b, d), -1); + assert.equal(Buffer.compare(c, c), 0); + + assert.equal(Buffer.compare(Buffer.alloc(0), Buffer.alloc(0)), 0); + assert.equal(Buffer.compare(Buffer.alloc(0), Buffer.alloc(1)), -1); + assert.equal(Buffer.compare(Buffer.alloc(1), Buffer.alloc(0)), 1); +} + +assert.throws(function() { + var b = Buffer.allocUnsafe(1); + Buffer.compare(b, 'abc'); +}); + +assert.throws(function() { + var b = Buffer.allocUnsafe(1); + Buffer.compare('abc', b); +}); + +assert.throws(function() { + var b = Buffer.allocUnsafe(1); + b.compare('abc'); +}); + +// Test Equals +{ + var b = Buffer.alloc(5, 'abcdf'); + var c = Buffer.alloc(5, 'abcdf'); + var d = Buffer.alloc(5, 'abcde'); + var e = Buffer.alloc(6, 'abcdef'); + + assert.ok(b.equals(c)); + assert.ok(!c.equals(d)); + assert.ok(!d.equals(e)); + assert.ok(d.equals(d)); +} + +assert.throws(function() { + var b = Buffer.allocUnsafe(1); + b.equals('abc'); +}); + +// Regression test for https://github.com/nodejs/node/issues/649. +assert.throws(() => { Buffer.allocUnsafe(1422561062959).toString('utf8');}); + +var ps = Buffer.poolSize; +Buffer.poolSize = 0; +assert.equal(Buffer.allocUnsafe(1).parent, undefined); +Buffer.poolSize = ps; + +// Test Buffer.copy() segfault +assert.throws(function() { + Buffer.allocUnsafe(10).copy(); +}); + +var regErrorMsg = new RegExp('First argument must be a string, Buffer, ' + + 'ArrayBuffer, Array, or array-like object.'); + +assert.throws(function() { + Buffer.from(); +}, regErrorMsg); + +assert.throws(function() { + Buffer.from(null); +}, regErrorMsg); + + +// Test that ParseArrayIndex handles full uint32 +assert.throws(function() { + Buffer.from(new ArrayBuffer(0), -1 >>> 0); +}, /RangeError: 'offset' is out of bounds/); + +// ParseArrayIndex() should reject values that don't fit in a 32 bits size_t. +assert.throws(() => { + var a = Buffer(1).fill(0); + var b = Buffer(1).fill(0); + a.copy(b, 0, 0x100000000, 0x100000001); +}), /out of range index/; + +// Unpooled buffer (replaces SlowBuffer) +var ubuf = Buffer.allocUnsafeSlow(10); +assert(ubuf); +assert(ubuf.buffer); +assert.equal(ubuf.buffer.byteLength, 10); + +// Regression test +assert.doesNotThrow(() => { + Buffer.from(new ArrayBuffer()); +}); + +assert.throws(() => Buffer.alloc(-Buffer.poolSize), + '"size" argument must not be negative'); +assert.throws(() => Buffer.alloc(-100), + '"size" argument must not be negative'); +assert.throws(() => Buffer.allocUnsafe(-Buffer.poolSize), + '"size" argument must not be negative'); +assert.throws(() => Buffer.allocUnsafe(-100), + '"size" argument must not be negative'); +assert.throws(() => Buffer.allocUnsafeSlow(-Buffer.poolSize), + '"size" argument must not be negative'); +assert.throws(() => Buffer.allocUnsafeSlow(-100), + '"size" argument must not be negative'); + +assert.throws(() => Buffer.alloc({ valueOf: () => 1 }), + /"size" argument must be a number/); +assert.throws(() => Buffer.alloc({ valueOf: () => -1 }), + /"size" argument must be a number/); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-arraybuffer.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-arraybuffer.js new file mode 100644 index 0000000000000000000000000000000000000000..a418752ba25702f27613f4fcef27d7a4540b192f --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-arraybuffer.js @@ -0,0 +1,112 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); + +var Buffer = require('../../').Buffer; +var LENGTH = 16; + +var ab = new ArrayBuffer(LENGTH); +var dv = new DataView(ab); +var ui = new Uint8Array(ab); +var buf = Buffer.from(ab); + + +assert.ok(buf instanceof Buffer); +// For backwards compatibility of old .parent property test that if buf is not +// a slice then .parent should be undefined. +assert.equal(buf.parent, undefined); +assert.equal(buf.buffer, ab); +assert.equal(buf.length, ab.byteLength); + + +buf.fill(0xC); +for (var i = 0; i < LENGTH; i++) { + assert.equal(ui[i], 0xC); + ui[i] = 0xF; + assert.equal(buf[i], 0xF); +} + +buf.writeUInt32LE(0xF00, 0); +buf.writeUInt32BE(0xB47, 4); +buf.writeDoubleLE(3.1415, 8); + +assert.equal(dv.getUint32(0, true), 0xF00); +assert.equal(dv.getUint32(4), 0xB47); +assert.equal(dv.getFloat64(8, true), 3.1415); + + +// Now test protecting users from doing stupid things + +assert.throws(function() { + function AB() { } + Object.setPrototypeOf(AB, ArrayBuffer); + Object.setPrototypeOf(AB.prototype, ArrayBuffer.prototype); + Buffer.from(new AB()); +}, TypeError); + +// write{Double,Float}{LE,BE} with noAssert should not crash, cf. #3766 +var b = Buffer.allocUnsafe(1); +b.writeFloatLE(11.11, 0, true); +b.writeFloatBE(11.11, 0, true); +b.writeDoubleLE(11.11, 0, true); +b.writeDoubleBE(11.11, 0, true); + +// Test the byteOffset and length arguments +{ + var ab = new Uint8Array(5); + ab[0] = 1; + ab[1] = 2; + ab[2] = 3; + ab[3] = 4; + ab[4] = 5; + var buf = Buffer.from(ab.buffer, 1, 3); + assert.equal(buf.length, 3); + assert.equal(buf[0], 2); + assert.equal(buf[1], 3); + assert.equal(buf[2], 4); + buf[0] = 9; + assert.equal(ab[1], 9); + + assert.throws(() => Buffer.from(ab.buffer, 6), (err) => { + assert(err instanceof RangeError); + assert(/'offset' is out of bounds/.test(err.message)); + return true; + }); + assert.throws(() => Buffer.from(ab.buffer, 3, 6), (err) => { + assert(err instanceof RangeError); + assert(/'length' is out of bounds/.test(err.message)); + return true; + }); +} + +// Test the deprecated Buffer() version also +{ + var ab = new Uint8Array(5); + ab[0] = 1; + ab[1] = 2; + ab[2] = 3; + ab[3] = 4; + ab[4] = 5; + var buf = Buffer(ab.buffer, 1, 3); + assert.equal(buf.length, 3); + assert.equal(buf[0], 2); + assert.equal(buf[1], 3); + assert.equal(buf[2], 4); + buf[0] = 9; + assert.equal(ab[1], 9); + + assert.throws(() => Buffer(ab.buffer, 6), (err) => { + assert(err instanceof RangeError); + assert(/'offset' is out of bounds/.test(err.message)); + return true; + }); + assert.throws(() => Buffer(ab.buffer, 3, 6), (err) => { + assert(err instanceof RangeError); + assert(/'length' is out of bounds/.test(err.message)); + return true; + }); +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-ascii.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-ascii.js new file mode 100644 index 0000000000000000000000000000000000000000..4a06098abf3def38de45a2dc823a110ce35041da --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-ascii.js @@ -0,0 +1,28 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); + +// ASCII conversion in node.js simply masks off the high bits, +// it doesn't do transliteration. +assert.equal(Buffer.from('hérité').toString('ascii'), 'hC)ritC)'); + +// 71 characters, 78 bytes. The ’ character is a triple-byte sequence. +var input = 'C’est, graphiquement, la réunion d’un accent aigu ' + + 'et d’un accent grave.'; + +var expected = 'Cb\u0000\u0019est, graphiquement, la rC)union ' + + 'db\u0000\u0019un accent aigu et db\u0000\u0019un ' + + 'accent grave.'; + +var buf = Buffer.from(input); + +for (var i = 0; i < expected.length; ++i) { + assert.equal(buf.slice(i).toString('ascii'), expected.slice(i)); + + // Skip remainder of multi-byte sequence. + if (input.charCodeAt(i) > 65535) ++i; + if (input.charCodeAt(i) > 127) ++i; +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-bad-overload.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-bad-overload.js new file mode 100644 index 0000000000000000000000000000000000000000..282227d73c2fb9eee231b72dd294a3648d21f677 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-bad-overload.js @@ -0,0 +1,18 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); + +assert.doesNotThrow(function() { + Buffer.allocUnsafe(10); +}); + +assert.throws(function() { + Buffer.from(10, 'hex'); +}); + +assert.doesNotThrow(function() { + Buffer.from('deadbeaf', 'hex'); +}); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-badhex.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-badhex.js new file mode 100644 index 0000000000000000000000000000000000000000..fd7851d968cb0f46a66774653da87ecef19dca9c --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-badhex.js @@ -0,0 +1,46 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); +var Buffer = require('../../').Buffer; + +// Test hex strings and bad hex strings +{ + var buf1 = Buffer.alloc(4); + assert.strictEqual(buf1.length, 4); + assert.deepStrictEqual(buf1, new Buffer([0, 0, 0, 0])); + assert.strictEqual(buf1.write('abcdxx', 0, 'hex'), 2); + assert.deepStrictEqual(buf1, new Buffer([0xab, 0xcd, 0x00, 0x00])); + assert.strictEqual(buf1.toString('hex'), 'abcd0000'); + assert.strictEqual(buf1.write('abcdef01', 0, 'hex'), 4); + assert.deepStrictEqual(buf1, new Buffer([0xab, 0xcd, 0xef, 0x01])); + assert.strictEqual(buf1.toString('hex'), 'abcdef01'); + + var buf2 = Buffer.from(buf1.toString('hex'), 'hex'); + assert.strictEqual(buf1.toString('hex'), buf2.toString('hex')); + + var buf3 = Buffer.alloc(5); + assert.strictEqual(buf3.write('abcdxx', 1, 'hex'), 2); + assert.strictEqual(buf3.toString('hex'), '00abcd0000'); + + var buf4 = Buffer.alloc(4); + assert.deepStrictEqual(buf4, new Buffer([0, 0, 0, 0])); + assert.strictEqual(buf4.write('xxabcd', 0, 'hex'), 0); + assert.deepStrictEqual(buf4, new Buffer([0, 0, 0, 0])); + assert.strictEqual(buf4.write('xxab', 1, 'hex'), 0); + assert.deepStrictEqual(buf4, new Buffer([0, 0, 0, 0])); + assert.strictEqual(buf4.write('cdxxab', 0, 'hex'), 1); + assert.deepStrictEqual(buf4, new Buffer([0xcd, 0, 0, 0])); + + var buf5 = Buffer.alloc(256); + for (var i = 0; i < 256; i++) + buf5[i] = i; + + var hex = buf5.toString('hex'); + assert.deepStrictEqual(Buffer.from(hex, 'hex'), buf5); + + var badHex = hex.slice(0, 256) + 'xx' + hex.slice(256, 510); + assert.deepStrictEqual(Buffer.from(badHex, 'hex'), buf5.slice(0, 128)); +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-bytelength.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-bytelength.js new file mode 100644 index 0000000000000000000000000000000000000000..8d7dc35b9d9818575ee74cc896c4de872e190ec8 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-bytelength.js @@ -0,0 +1,90 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); +var Buffer = require('../../').Buffer; +var SlowBuffer = require('../../').SlowBuffer; + +// coerce values to string +assert.equal(Buffer.byteLength(32, 'latin1'), 2); +assert.equal(Buffer.byteLength(NaN, 'utf8'), 3); +assert.equal(Buffer.byteLength({}, 'latin1'), 15); +assert.equal(Buffer.byteLength(), 9); + +var buff = new Buffer(10); +assert(ArrayBuffer.isView(buff)); +var slowbuff = new SlowBuffer(10); +assert(ArrayBuffer.isView(slowbuff)); + +// buffer +var incomplete = Buffer.from([0xe4, 0xb8, 0xad, 0xe6, 0x96]); +assert.equal(Buffer.byteLength(incomplete), 5); +var ascii = Buffer.from('abc'); +assert.equal(Buffer.byteLength(ascii), 3); + +// ArrayBuffer +var buffer = new ArrayBuffer(8); +assert.equal(Buffer.byteLength(buffer), 8); + +// TypedArray +var int8 = new Int8Array(8); +assert.equal(Buffer.byteLength(int8), 8); +var uint8 = new Uint8Array(8); +assert.equal(Buffer.byteLength(uint8), 8); +var uintc8 = new Uint8ClampedArray(2); +assert.equal(Buffer.byteLength(uintc8), 2); +var int16 = new Int16Array(8); +assert.equal(Buffer.byteLength(int16), 16); +var uint16 = new Uint16Array(8); +assert.equal(Buffer.byteLength(uint16), 16); +var int32 = new Int32Array(8); +assert.equal(Buffer.byteLength(int32), 32); +var uint32 = new Uint32Array(8); +assert.equal(Buffer.byteLength(uint32), 32); +var float32 = new Float32Array(8); +assert.equal(Buffer.byteLength(float32), 32); +var float64 = new Float64Array(8); +assert.equal(Buffer.byteLength(float64), 64); + +// DataView +var dv = new DataView(new ArrayBuffer(2)); +assert.equal(Buffer.byteLength(dv), 2); + +// special case: zero length string +assert.equal(Buffer.byteLength('', 'ascii'), 0); +assert.equal(Buffer.byteLength('', 'HeX'), 0); + +// utf8 +assert.equal(Buffer.byteLength('∑éllö wørl∂!', 'utf-8'), 19); +assert.equal(Buffer.byteLength('κλμνξο', 'utf8'), 12); +assert.equal(Buffer.byteLength('挵挶挷挸挹', 'utf-8'), 15); +assert.equal(Buffer.byteLength('𠝹𠱓𠱸', 'UTF8'), 12); +// without an encoding, utf8 should be assumed +assert.equal(Buffer.byteLength('hey there'), 9); +assert.equal(Buffer.byteLength('𠱸挶νξ#xx :)'), 17); +assert.equal(Buffer.byteLength('hello world', ''), 11); +// it should also be assumed with unrecognized encoding +assert.equal(Buffer.byteLength('hello world', 'abc'), 11); +assert.equal(Buffer.byteLength('ßœ∑≈', 'unkn0wn enc0ding'), 10); + +// base64 +assert.equal(Buffer.byteLength('aGVsbG8gd29ybGQ=', 'base64'), 11); +assert.equal(Buffer.byteLength('bm9kZS5qcyByb2NrcyE=', 'base64'), 14); +assert.equal(Buffer.byteLength('aGkk', 'base64'), 3); +assert.equal(Buffer.byteLength('bHNrZGZsa3NqZmtsc2xrZmFqc2RsZmtqcw==', + 'base64'), 25); +// special padding +assert.equal(Buffer.byteLength('aaa=', 'base64'), 2); +assert.equal(Buffer.byteLength('aaaa==', 'base64'), 3); + +assert.equal(Buffer.byteLength('Il était tué'), 14); +assert.equal(Buffer.byteLength('Il était tué', 'utf8'), 14); +assert.equal(Buffer.byteLength('Il était tué', 'ascii'), 12); +assert.equal(Buffer.byteLength('Il était tué', 'latin1'), 12); +assert.equal(Buffer.byteLength('Il était tué', 'binary'), 12); +['ucs2', 'ucs-2', 'utf16le', 'utf-16le'].forEach(function(encoding) { + assert.equal(24, Buffer.byteLength('Il était tué', encoding)); +}); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-compare-offset.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-compare-offset.js new file mode 100644 index 0000000000000000000000000000000000000000..f1984ed9141883e7f283404f82b9e5cceed6e27e --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-compare-offset.js @@ -0,0 +1,66 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); + +var a = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]); +var b = Buffer.from([5, 6, 7, 8, 9, 0, 1, 2, 3, 4]); + +assert.equal(-1, a.compare(b)); + +// Equivalent to a.compare(b). +assert.equal(-1, a.compare(b, 0)); +assert.equal(-1, a.compare(b, '0')); + +// Equivalent to a.compare(b). +assert.equal(-1, a.compare(b, 0, undefined, 0)); + +// Zero-length targer, return 1 +assert.equal(1, a.compare(b, 0, 0, 0)); +assert.equal(1, a.compare(b, '0', '0', '0')); + +// Equivalent to Buffer.compare(a, b.slice(6, 10)) +assert.equal(1, a.compare(b, 6, 10)); + +// Zero-length source, return -1 +assert.equal(-1, a.compare(b, 6, 10, 0, 0)); + +// Equivalent to Buffer.compare(a.slice(4), b.slice(0, 5)) +assert.equal(1, a.compare(b, 0, 5, 4)); + +// Equivalent to Buffer.compare(a.slice(1), b.slice(5)) +assert.equal(1, a.compare(b, 5, undefined, 1)); + +// Equivalent to Buffer.compare(a.slice(2), b.slice(2, 4)) +assert.equal(-1, a.compare(b, 2, 4, 2)); + +// Equivalent to Buffer.compare(a.slice(4), b.slice(0, 7)) +assert.equal(-1, a.compare(b, 0, 7, 4)); + +// Equivalent to Buffer.compare(a.slice(4, 6), b.slice(0, 7)); +assert.equal(-1, a.compare(b, 0, 7, 4, 6)); + +// zero length target +assert.equal(1, a.compare(b, 0, null)); + +// coerces to targetEnd == 5 +assert.equal(-1, a.compare(b, 0, {valueOf: () => 5})); + +// zero length target +assert.equal(1, a.compare(b, Infinity, -Infinity)); + +// zero length target because default for targetEnd <= targetSource +assert.equal(1, a.compare(b, '0xff')); + +var oor = /out of range index/; + +assert.throws(() => a.compare(b, 0, 100, 0), oor); +assert.throws(() => a.compare(b, 0, 1, 0, 100), oor); +assert.throws(() => a.compare(b, -1), oor); +assert.throws(() => a.compare(b, 0, '0xff'), oor); +assert.throws(() => a.compare(b, 0, Infinity), oor); +assert.throws(() => a.compare(b, -Infinity, Infinity), oor); +assert.throws(() => a.compare(), /Argument must be a Buffer/); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-concat.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-concat.js new file mode 100644 index 0000000000000000000000000000000000000000..c0dc4da09556f5f0f2d08010079995afbf3b5fa9 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-concat.js @@ -0,0 +1,40 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); + +var zero = []; +var one = [ Buffer.from('asdf') ]; +var long = []; +for (var i = 0; i < 10; i++) long.push(Buffer.from('asdf')); + +var flatZero = Buffer.concat(zero); +var flatOne = Buffer.concat(one); +var flatLong = Buffer.concat(long); +var flatLongLen = Buffer.concat(long, 40); + +assert(flatZero.length === 0); +assert(flatOne.toString() === 'asdf'); +// A special case where concat used to return the first item, +// if the length is one. This check is to make sure that we don't do that. +assert(flatOne !== one[0]); +assert(flatLong.toString() === (new Array(10 + 1).join('asdf'))); +assert(flatLongLen.toString() === (new Array(10 + 1).join('asdf'))); + +assertWrongList(); +assertWrongList(null); +assertWrongList(Buffer.from('hello')); +assertWrongList([42]); +assertWrongList(['hello', 'world']); +assertWrongList(['hello', Buffer.from('world')]); + +function assertWrongList(value) { + assert.throws(function() { + Buffer.concat(value); + }, function(err) { + return err instanceof TypeError && + err.message === '"list" argument must be an Array of Buffers'; + }); +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-fill.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-fill.js new file mode 100644 index 0000000000000000000000000000000000000000..7138094a72cb4e0a89b53baf5659c2e665abde5d --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-fill.js @@ -0,0 +1,272 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); +var os = require('os'); +var SIZE = 28; + +var buf1 = Buffer.allocUnsafe(SIZE); +var buf2 = Buffer.allocUnsafe(SIZE); + + +// Default encoding +testBufs('abc'); +testBufs('\u0222aa'); +testBufs('a\u0234b\u0235c\u0236'); +testBufs('abc', 4); +testBufs('abc', 5); +testBufs('abc', SIZE); +testBufs('\u0222aa', 2); +testBufs('\u0222aa', 8); +testBufs('a\u0234b\u0235c\u0236', 4); +testBufs('a\u0234b\u0235c\u0236', 12); +testBufs('abc', 4, -1); +testBufs('abc', 4, 1); +testBufs('abc', 5, 1); +testBufs('\u0222aa', 2, -1); +testBufs('\u0222aa', 8, 1); +testBufs('a\u0234b\u0235c\u0236', 4, -1); +testBufs('a\u0234b\u0235c\u0236', 4, 1); +testBufs('a\u0234b\u0235c\u0236', 12, 1); + + +// UTF8 +testBufs('abc', 'utf8'); +testBufs('\u0222aa', 'utf8'); +testBufs('a\u0234b\u0235c\u0236', 'utf8'); +testBufs('abc', 4, 'utf8'); +testBufs('abc', 5, 'utf8'); +testBufs('abc', SIZE, 'utf8'); +testBufs('\u0222aa', 2, 'utf8'); +testBufs('\u0222aa', 8, 'utf8'); +testBufs('a\u0234b\u0235c\u0236', 4, 'utf8'); +testBufs('a\u0234b\u0235c\u0236', 12, 'utf8'); +testBufs('abc', 4, -1, 'utf8'); +testBufs('abc', 4, 1, 'utf8'); +testBufs('abc', 5, 1, 'utf8'); +testBufs('\u0222aa', 2, -1, 'utf8'); +testBufs('\u0222aa', 8, 1, 'utf8'); +testBufs('a\u0234b\u0235c\u0236', 4, -1, 'utf8'); +testBufs('a\u0234b\u0235c\u0236', 4, 1, 'utf8'); +testBufs('a\u0234b\u0235c\u0236', 12, 1, 'utf8'); +assert.equal(Buffer.allocUnsafe(1).fill(0).fill('\u0222')[0], 0xc8); + + +// BINARY +testBufs('abc', 'binary'); +testBufs('\u0222aa', 'binary'); +testBufs('a\u0234b\u0235c\u0236', 'binary'); +testBufs('abc', 4, 'binary'); +testBufs('abc', 5, 'binary'); +testBufs('abc', SIZE, 'binary'); +testBufs('\u0222aa', 2, 'binary'); +testBufs('\u0222aa', 8, 'binary'); +testBufs('a\u0234b\u0235c\u0236', 4, 'binary'); +testBufs('a\u0234b\u0235c\u0236', 12, 'binary'); +testBufs('abc', 4, -1, 'binary'); +testBufs('abc', 4, 1, 'binary'); +testBufs('abc', 5, 1, 'binary'); +testBufs('\u0222aa', 2, -1, 'binary'); +testBufs('\u0222aa', 8, 1, 'binary'); +testBufs('a\u0234b\u0235c\u0236', 4, -1, 'binary'); +testBufs('a\u0234b\u0235c\u0236', 4, 1, 'binary'); +testBufs('a\u0234b\u0235c\u0236', 12, 1, 'binary'); + + +// LATIN1 +testBufs('abc', 'latin1'); +testBufs('\u0222aa', 'latin1'); +testBufs('a\u0234b\u0235c\u0236', 'latin1'); +testBufs('abc', 4, 'latin1'); +testBufs('abc', 5, 'latin1'); +testBufs('abc', SIZE, 'latin1'); +testBufs('\u0222aa', 2, 'latin1'); +testBufs('\u0222aa', 8, 'latin1'); +testBufs('a\u0234b\u0235c\u0236', 4, 'latin1'); +testBufs('a\u0234b\u0235c\u0236', 12, 'latin1'); +testBufs('abc', 4, -1, 'latin1'); +testBufs('abc', 4, 1, 'latin1'); +testBufs('abc', 5, 1, 'latin1'); +testBufs('\u0222aa', 2, -1, 'latin1'); +testBufs('\u0222aa', 8, 1, 'latin1'); +testBufs('a\u0234b\u0235c\u0236', 4, -1, 'latin1'); +testBufs('a\u0234b\u0235c\u0236', 4, 1, 'latin1'); +testBufs('a\u0234b\u0235c\u0236', 12, 1, 'latin1'); + + +// UCS2 +testBufs('abc', 'ucs2'); +testBufs('\u0222aa', 'ucs2'); +testBufs('a\u0234b\u0235c\u0236', 'ucs2'); +testBufs('abc', 4, 'ucs2'); +testBufs('abc', SIZE, 'ucs2'); +testBufs('\u0222aa', 2, 'ucs2'); +testBufs('\u0222aa', 8, 'ucs2'); +testBufs('a\u0234b\u0235c\u0236', 4, 'ucs2'); +testBufs('a\u0234b\u0235c\u0236', 12, 'ucs2'); +testBufs('abc', 4, -1, 'ucs2'); +testBufs('abc', 4, 1, 'ucs2'); +testBufs('abc', 5, 1, 'ucs2'); +testBufs('\u0222aa', 2, -1, 'ucs2'); +testBufs('\u0222aa', 8, 1, 'ucs2'); +testBufs('a\u0234b\u0235c\u0236', 4, -1, 'ucs2'); +testBufs('a\u0234b\u0235c\u0236', 4, 1, 'ucs2'); +testBufs('a\u0234b\u0235c\u0236', 12, 1, 'ucs2'); +assert.equal(Buffer.allocUnsafe(1).fill('\u0222', 'ucs2')[0], + os.endianness() === 'LE' ? 0x22 : 0x02); + + +// HEX +testBufs('616263', 'hex'); +testBufs('c8a26161', 'hex'); +testBufs('61c8b462c8b563c8b6', 'hex'); +testBufs('616263', 4, 'hex'); +testBufs('616263', 5, 'hex'); +testBufs('616263', SIZE, 'hex'); +testBufs('c8a26161', 2, 'hex'); +testBufs('c8a26161', 8, 'hex'); +testBufs('61c8b462c8b563c8b6', 4, 'hex'); +testBufs('61c8b462c8b563c8b6', 12, 'hex'); +testBufs('616263', 4, -1, 'hex'); +testBufs('616263', 4, 1, 'hex'); +testBufs('616263', 5, 1, 'hex'); +testBufs('c8a26161', 2, -1, 'hex'); +testBufs('c8a26161', 8, 1, 'hex'); +testBufs('61c8b462c8b563c8b6', 4, -1, 'hex'); +testBufs('61c8b462c8b563c8b6', 4, 1, 'hex'); +testBufs('61c8b462c8b563c8b6', 12, 1, 'hex'); +// Make sure this operation doesn't go on forever +buf1.fill('yKJh', 'hex'); +assert.throws(() => buf1.fill('\u0222', 'hex')); + + +// BASE64 +testBufs('YWJj', 'ucs2'); +testBufs('yKJhYQ==', 'ucs2'); +testBufs('Yci0Ysi1Y8i2', 'ucs2'); +testBufs('YWJj', 4, 'ucs2'); +testBufs('YWJj', SIZE, 'ucs2'); +testBufs('yKJhYQ==', 2, 'ucs2'); +testBufs('yKJhYQ==', 8, 'ucs2'); +testBufs('Yci0Ysi1Y8i2', 4, 'ucs2'); +testBufs('Yci0Ysi1Y8i2', 12, 'ucs2'); +testBufs('YWJj', 4, -1, 'ucs2'); +testBufs('YWJj', 4, 1, 'ucs2'); +testBufs('YWJj', 5, 1, 'ucs2'); +testBufs('yKJhYQ==', 2, -1, 'ucs2'); +testBufs('yKJhYQ==', 8, 1, 'ucs2'); +testBufs('Yci0Ysi1Y8i2', 4, -1, 'ucs2'); +testBufs('Yci0Ysi1Y8i2', 4, 1, 'ucs2'); +testBufs('Yci0Ysi1Y8i2', 12, 1, 'ucs2'); + + +// Buffer +function deepStrictEqualValues(buf, arr) { + for (var [index, value] of buf.entries()) { + assert.deepStrictEqual(value, arr[index]); + } +} + + +var buf2Fill = Buffer.allocUnsafe(1).fill(2); +deepStrictEqualValues(genBuffer(4, [buf2Fill]), [2, 2, 2, 2]); +deepStrictEqualValues(genBuffer(4, [buf2Fill, 1]), [0, 2, 2, 2]); +deepStrictEqualValues(genBuffer(4, [buf2Fill, 1, 3]), [0, 2, 2, 0]); +deepStrictEqualValues(genBuffer(4, [buf2Fill, 1, 1]), [0, 0, 0, 0]); +deepStrictEqualValues(genBuffer(4, [buf2Fill, 1, -1]), [0, 0, 0, 0]); +var hexBufFill = Buffer.allocUnsafe(2).fill(0).fill('0102', 'hex'); +deepStrictEqualValues(genBuffer(4, [hexBufFill]), [1, 2, 1, 2]); +deepStrictEqualValues(genBuffer(4, [hexBufFill, 1]), [0, 1, 2, 1]); +deepStrictEqualValues(genBuffer(4, [hexBufFill, 1, 3]), [0, 1, 2, 0]); +deepStrictEqualValues(genBuffer(4, [hexBufFill, 1, 1]), [0, 0, 0, 0]); +deepStrictEqualValues(genBuffer(4, [hexBufFill, 1, -1]), [0, 0, 0, 0]); + + +// Check exceptions +assert.throws(() => buf1.fill(0, -1)); +assert.throws(() => buf1.fill(0, 0, buf1.length + 1)); +assert.throws(() => buf1.fill('', -1)); +assert.throws(() => buf1.fill('', 0, buf1.length + 1)); +assert.throws(() => buf1.fill('a', 0, buf1.length, 'node rocks!')); +assert.throws(() => buf1.fill('a', 0, 0, NaN)); +assert.throws(() => buf1.fill('a', 0, 0, null)); +assert.throws(() => buf1.fill('a', 0, 0, 'foo')); + + +function genBuffer(size, args) { + var b = Buffer.allocUnsafe(size); + return b.fill(0).fill.apply(b, args); +} + + +function bufReset() { + buf1.fill(0); + buf2.fill(0); +} + + +// This is mostly accurate. Except write() won't write partial bytes to the +// string while fill() blindly copies bytes into memory. To account for that an +// error will be thrown if not all the data can be written, and the SIZE has +// been massaged to work with the input characters. +function writeToFill(string, offset, end, encoding) { + if (typeof offset === 'string') { + encoding = offset; + offset = 0; + end = buf2.length; + } else if (typeof end === 'string') { + encoding = end; + end = buf2.length; + } else if (end === undefined) { + end = buf2.length; + } + + if (offset < 0 || end > buf2.length) + throw new RangeError('Out of range index'); + + if (end <= offset) + return buf2; + + offset >>>= 0; + end >>>= 0; + assert(offset <= buf2.length); + + // Convert "end" to "length" (which write understands). + var length = end - offset < 0 ? 0 : end - offset; + + var wasZero = false; + do { + var written = buf2.write(string, offset, length, encoding); + offset += written; + // Safety check in case write falls into infinite loop. + if (written === 0) { + if (wasZero) + throw new Error('Could not write all data to Buffer'); + else + wasZero = true; + } + } while (offset < buf2.length); + + // Correction for UCS2 operations. + if (os.endianness() === 'BE' && encoding === 'ucs2') { + for (var i = 0; i < buf2.length; i += 2) { + var tmp = buf2[i]; + buf2[i] = buf2[i + 1]; + buf2[i + 1] = tmp; + } + } + + return buf2; +} + + +function testBufs(string, offset, length, encoding) { + bufReset(); + buf1.fill.apply(buf1, arguments); + // Swap bytes on BE archs for ucs2 encoding. + assert.deepStrictEqual(buf1.fill.apply(buf1, arguments), + writeToFill.apply(null, arguments)); +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-includes.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-includes.js new file mode 100644 index 0000000000000000000000000000000000000000..2096a34ba45bdd5f1bf988fae084b8ffc9a9d981 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-includes.js @@ -0,0 +1,305 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); + +var Buffer = require('../../').Buffer; + +var b = Buffer.from('abcdef'); +var buf_a = Buffer.from('a'); +var buf_bc = Buffer.from('bc'); +var buf_f = Buffer.from('f'); +var buf_z = Buffer.from('z'); +var buf_empty = Buffer.from(''); + +assert(b.includes('a')); +assert(!b.includes('a', 1)); +assert(!b.includes('a', -1)); +assert(!b.includes('a', -4)); +assert(b.includes('a', -b.length)); +assert(b.includes('a', NaN)); +assert(b.includes('a', -Infinity)); +assert(!b.includes('a', Infinity)); +assert(b.includes('bc')); +assert(!b.includes('bc', 2)); +assert(!b.includes('bc', -1)); +assert(!b.includes('bc', -3)); +assert(b.includes('bc', -5)); +assert(b.includes('bc', NaN)); +assert(b.includes('bc', -Infinity)); +assert(!b.includes('bc', Infinity)); +assert(b.includes('f'), b.length - 1); +assert(!b.includes('z')); +assert(!b.includes('')); +assert(!b.includes('', 1)); +assert(!b.includes('', b.length + 1)); +assert(!b.includes('', Infinity)); +assert(b.includes(buf_a)); +assert(!b.includes(buf_a, 1)); +assert(!b.includes(buf_a, -1)); +assert(!b.includes(buf_a, -4)); +assert(b.includes(buf_a, -b.length)); +assert(b.includes(buf_a, NaN)); +assert(b.includes(buf_a, -Infinity)); +assert(!b.includes(buf_a, Infinity)); +assert(b.includes(buf_bc)); +assert(!b.includes(buf_bc, 2)); +assert(!b.includes(buf_bc, -1)); +assert(!b.includes(buf_bc, -3)); +assert(b.includes(buf_bc, -5)); +assert(b.includes(buf_bc, NaN)); +assert(b.includes(buf_bc, -Infinity)); +assert(!b.includes(buf_bc, Infinity)); +assert(b.includes(buf_f), b.length - 1); +assert(!b.includes(buf_z)); +assert(!b.includes(buf_empty)); +assert(!b.includes(buf_empty, 1)); +assert(!b.includes(buf_empty, b.length + 1)); +assert(!b.includes(buf_empty, Infinity)); +assert(b.includes(0x61)); +assert(!b.includes(0x61, 1)); +assert(!b.includes(0x61, -1)); +assert(!b.includes(0x61, -4)); +assert(b.includes(0x61, -b.length)); +assert(b.includes(0x61, NaN)); +assert(b.includes(0x61, -Infinity)); +assert(!b.includes(0x61, Infinity)); +assert(!b.includes(0x0)); + +// test offsets +assert(b.includes('d', 2)); +assert(b.includes('f', 5)); +assert(b.includes('f', -1)); +assert(!b.includes('f', 6)); + +assert(b.includes(Buffer.from('d'), 2)); +assert(b.includes(Buffer.from('f'), 5)); +assert(b.includes(Buffer.from('f'), -1)); +assert(!b.includes(Buffer.from('f'), 6)); + +assert(!Buffer.from('ff').includes(Buffer.from('f'), 1, 'ucs2')); + +// test hex encoding +assert.strictEqual( + Buffer.from(b.toString('hex'), 'hex') + .includes('64', 0, 'hex'), + true +); +assert.strictEqual( + Buffer.from(b.toString('hex'), 'hex') + .includes(Buffer.from('64', 'hex'), 0, 'hex'), + true +); + +// test base64 encoding +assert.strictEqual( + Buffer.from(b.toString('base64'), 'base64') + .includes('ZA==', 0, 'base64'), + true +); +assert.strictEqual( + Buffer.from(b.toString('base64'), 'base64') + .includes(Buffer.from('ZA==', 'base64'), 0, 'base64'), + true +); + +// test ascii encoding +assert.strictEqual( + Buffer.from(b.toString('ascii'), 'ascii') + .includes('d', 0, 'ascii'), + true +); +assert.strictEqual( + Buffer.from(b.toString('ascii'), 'ascii') + .includes(Buffer.from('d', 'ascii'), 0, 'ascii'), + true +); + +// test latin1 encoding +assert.strictEqual( + Buffer.from(b.toString('latin1'), 'latin1') + .includes('d', 0, 'latin1'), + true +); +assert.strictEqual( + Buffer.from(b.toString('latin1'), 'latin1') + .includes(Buffer.from('d', 'latin1'), 0, 'latin1'), + true +); + +// test binary encoding +assert.strictEqual( + Buffer.from(b.toString('binary'), 'binary') + .includes('d', 0, 'binary'), + true +); +assert.strictEqual( + Buffer.from(b.toString('binary'), 'binary') + .includes(Buffer.from('d', 'binary'), 0, 'binary'), + true +); + + +// test usc2 encoding +var twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2'); + +assert(twoByteString.includes('\u0395', 4, 'ucs2')); +assert(twoByteString.includes('\u03a3', -4, 'ucs2')); +assert(twoByteString.includes('\u03a3', -6, 'ucs2')); +assert(twoByteString.includes( + Buffer.from('\u03a3', 'ucs2'), -6, 'ucs2')); +assert(!twoByteString.includes('\u03a3', -2, 'ucs2')); + +var mixedByteStringUcs2 = + Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395', 'ucs2'); +assert(mixedByteStringUcs2.includes('bc', 0, 'ucs2')); +assert(mixedByteStringUcs2.includes('\u03a3', 0, 'ucs2')); +assert(!mixedByteStringUcs2.includes('\u0396', 0, 'ucs2')); + +assert( + 6, mixedByteStringUcs2.includes(Buffer.from('bc', 'ucs2'), 0, 'ucs2')); +assert( + 10, mixedByteStringUcs2.includes(Buffer.from('\u03a3', 'ucs2'), + 0, 'ucs2')); +assert( + -1, mixedByteStringUcs2.includes(Buffer.from('\u0396', 'ucs2'), + 0, 'ucs2')); + +twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2'); + +// Test single char pattern +assert(twoByteString.includes('\u039a', 0, 'ucs2')); +assert(twoByteString.includes('\u0391', 0, 'ucs2'), 'Alpha'); +assert(twoByteString.includes('\u03a3', 0, 'ucs2'), 'First Sigma'); +assert(twoByteString.includes('\u03a3', 6, 'ucs2'), 'Second Sigma'); +assert(twoByteString.includes('\u0395', 0, 'ucs2'), 'Epsilon'); +assert(!twoByteString.includes('\u0392', 0, 'ucs2'), 'Not beta'); + +// Test multi-char pattern +assert(twoByteString.includes('\u039a\u0391', 0, 'ucs2'), 'Lambda Alpha'); +assert(twoByteString.includes('\u0391\u03a3', 0, 'ucs2'), 'Alpha Sigma'); +assert(twoByteString.includes('\u03a3\u03a3', 0, 'ucs2'), 'Sigma Sigma'); +assert(twoByteString.includes('\u03a3\u0395', 0, 'ucs2'), 'Sigma Epsilon'); + +var mixedByteStringUtf8 = Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395'); +assert(mixedByteStringUtf8.includes('bc')); +assert(mixedByteStringUtf8.includes('bc', 5)); +assert(mixedByteStringUtf8.includes('bc', -8)); +assert(mixedByteStringUtf8.includes('\u03a3')); +assert(!mixedByteStringUtf8.includes('\u0396')); + + +// Test complex string includes algorithms. Only trigger for long strings. +// Long string that isn't a simple repeat of a shorter string. +var longString = 'A'; +for (var i = 66; i < 76; i++) { // from 'B' to 'K' + longString = longString + String.fromCharCode(i) + longString; +} + +var longBufferString = Buffer.from(longString); + +// pattern of 15 chars, repeated every 16 chars in long +var pattern = 'ABACABADABACABA'; +for (var i = 0; i < longBufferString.length - pattern.length; i += 7) { + var includes = longBufferString.includes(pattern, i); + assert(includes, 'Long ABACABA...-string at index ' + i); +} +assert(longBufferString.includes('AJABACA'), 'Long AJABACA, First J'); +assert(longBufferString.includes('AJABACA', 511), 'Long AJABACA, Second J'); + +pattern = 'JABACABADABACABA'; +assert(longBufferString.includes(pattern), 'Long JABACABA..., First J'); +assert(longBufferString.includes(pattern, 512), 'Long JABACABA..., Second J'); + +// Search for a non-ASCII string in a pure ASCII string. +var asciiString = Buffer.from( + 'arglebargleglopglyfarglebargleglopglyfarglebargleglopglyf'); +assert(!asciiString.includes('\x2061')); +assert(asciiString.includes('leb', 0)); + +// Search in string containing many non-ASCII chars. +var allCodePoints = []; +for (var i = 0; i < 65536; i++) allCodePoints[i] = i; +var allCharsString = String.fromCharCode.apply(String, allCodePoints); +var allCharsBufferUtf8 = Buffer.from(allCharsString); +var allCharsBufferUcs2 = Buffer.from(allCharsString, 'ucs2'); + +// Search for string long enough to trigger complex search with ASCII pattern +// and UC16 subject. +assert(!allCharsBufferUtf8.includes('notfound')); +assert(!allCharsBufferUcs2.includes('notfound')); + +// Find substrings in Utf8. +var lengths = [1, 3, 15]; // Single char, simple and complex. +var indices = [0x5, 0x60, 0x400, 0x680, 0x7ee, 0xFF02, 0x16610, 0x2f77b]; +for (var lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (var i = 0; i < indices.length; i++) { + var index = indices[i]; + var length = lengths[lengthIndex]; + + if (index + length > 0x7F) { + length = 2 * length; + } + + if (index + length > 0x7FF) { + length = 3 * length; + } + + if (index + length > 0xFFFF) { + length = 4 * length; + } + + var patternBufferUtf8 = allCharsBufferUtf8.slice(index, index + length); + assert(index, allCharsBufferUtf8.includes(patternBufferUtf8)); + + var patternStringUtf8 = patternBufferUtf8.toString(); + assert(index, allCharsBufferUtf8.includes(patternStringUtf8)); + } +} + +// Find substrings in Usc2. +lengths = [2, 4, 16]; // Single char, simple and complex. +indices = [0x5, 0x65, 0x105, 0x205, 0x285, 0x2005, 0x2085, 0xfff0]; +for (var lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (var i = 0; i < indices.length; i++) { + var index = indices[i] * 2; + var length = lengths[lengthIndex]; + + var patternBufferUcs2 = + allCharsBufferUcs2.slice(index, index + length); + assert( + index, allCharsBufferUcs2.includes(patternBufferUcs2, 0, 'ucs2')); + + var patternStringUcs2 = patternBufferUcs2.toString('ucs2'); + assert( + index, allCharsBufferUcs2.includes(patternStringUcs2, 0, 'ucs2')); + } +} + +assert.throws(function() { + b.includes(function() { }); +}); +assert.throws(function() { + b.includes({}); +}); +assert.throws(function() { + b.includes([]); +}); + +// test truncation of Number arguments to uint8 +{ + var buf = Buffer.from('this is a test'); + assert.ok(buf.includes(0x6973)); + assert.ok(buf.includes(0x697320)); + assert.ok(buf.includes(0x69732069)); + assert.ok(buf.includes(0x697374657374)); + assert.ok(buf.includes(0x69737374)); + assert.ok(buf.includes(0x69737465)); + assert.ok(buf.includes(0x69737465)); + assert.ok(buf.includes(-140)); + assert.ok(buf.includes(-152)); + assert.ok(!buf.includes(0xff)); + assert.ok(!buf.includes(0xffff)); +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-indexof.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-indexof.js new file mode 100644 index 0000000000000000000000000000000000000000..24502c3f4582e054b05e9b5de4fd5eef1c8593e7 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-indexof.js @@ -0,0 +1,523 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); + +var Buffer = require('../../').Buffer; + +var b = Buffer.from('abcdef'); +var buf_a = Buffer.from('a'); +var buf_bc = Buffer.from('bc'); +var buf_f = Buffer.from('f'); +var buf_z = Buffer.from('z'); +var buf_empty = Buffer.from(''); + +assert.equal(b.indexOf('a'), 0); +assert.equal(b.indexOf('a', 1), -1); +assert.equal(b.indexOf('a', -1), -1); +assert.equal(b.indexOf('a', -4), -1); +assert.equal(b.indexOf('a', -b.length), 0); +assert.equal(b.indexOf('a', NaN), 0); +assert.equal(b.indexOf('a', -Infinity), 0); +assert.equal(b.indexOf('a', Infinity), -1); +assert.equal(b.indexOf('bc'), 1); +assert.equal(b.indexOf('bc', 2), -1); +assert.equal(b.indexOf('bc', -1), -1); +assert.equal(b.indexOf('bc', -3), -1); +assert.equal(b.indexOf('bc', -5), 1); +assert.equal(b.indexOf('bc', NaN), 1); +assert.equal(b.indexOf('bc', -Infinity), 1); +assert.equal(b.indexOf('bc', Infinity), -1); +assert.equal(b.indexOf('f'), b.length - 1); +assert.equal(b.indexOf('z'), -1); +assert.equal(b.indexOf(''), -1); +assert.equal(b.indexOf('', 1), -1); +assert.equal(b.indexOf('', b.length + 1), -1); +assert.equal(b.indexOf('', Infinity), -1); +assert.equal(b.indexOf(buf_a), 0); +assert.equal(b.indexOf(buf_a, 1), -1); +assert.equal(b.indexOf(buf_a, -1), -1); +assert.equal(b.indexOf(buf_a, -4), -1); +assert.equal(b.indexOf(buf_a, -b.length), 0); +assert.equal(b.indexOf(buf_a, NaN), 0); +assert.equal(b.indexOf(buf_a, -Infinity), 0); +assert.equal(b.indexOf(buf_a, Infinity), -1); +assert.equal(b.indexOf(buf_bc), 1); +assert.equal(b.indexOf(buf_bc, 2), -1); +assert.equal(b.indexOf(buf_bc, -1), -1); +assert.equal(b.indexOf(buf_bc, -3), -1); +assert.equal(b.indexOf(buf_bc, -5), 1); +assert.equal(b.indexOf(buf_bc, NaN), 1); +assert.equal(b.indexOf(buf_bc, -Infinity), 1); +assert.equal(b.indexOf(buf_bc, Infinity), -1); +assert.equal(b.indexOf(buf_f), b.length - 1); +assert.equal(b.indexOf(buf_z), -1); +assert.equal(b.indexOf(buf_empty), -1); +assert.equal(b.indexOf(buf_empty, 1), -1); +assert.equal(b.indexOf(buf_empty, b.length + 1), -1); +assert.equal(b.indexOf(buf_empty, Infinity), -1); +assert.equal(b.indexOf(0x61), 0); +assert.equal(b.indexOf(0x61, 1), -1); +assert.equal(b.indexOf(0x61, -1), -1); +assert.equal(b.indexOf(0x61, -4), -1); +assert.equal(b.indexOf(0x61, -b.length), 0); +assert.equal(b.indexOf(0x61, NaN), 0); +assert.equal(b.indexOf(0x61, -Infinity), 0); +assert.equal(b.indexOf(0x61, Infinity), -1); +assert.equal(b.indexOf(0x0), -1); + +// test offsets +assert.equal(b.indexOf('d', 2), 3); +assert.equal(b.indexOf('f', 5), 5); +assert.equal(b.indexOf('f', -1), 5); +assert.equal(b.indexOf('f', 6), -1); + +assert.equal(b.indexOf(Buffer.from('d'), 2), 3); +assert.equal(b.indexOf(Buffer.from('f'), 5), 5); +assert.equal(b.indexOf(Buffer.from('f'), -1), 5); +assert.equal(b.indexOf(Buffer.from('f'), 6), -1); + +assert.equal(Buffer.from('ff').indexOf(Buffer.from('f'), 1, 'ucs2'), -1); + +// test hex encoding +assert.strictEqual( + Buffer.from(b.toString('hex'), 'hex') + .indexOf('64', 0, 'hex'), + 3 +); +assert.strictEqual( + Buffer.from(b.toString('hex'), 'hex') + .indexOf(Buffer.from('64', 'hex'), 0, 'hex'), + 3 +); + +// test base64 encoding +assert.strictEqual( + Buffer.from(b.toString('base64'), 'base64') + .indexOf('ZA==', 0, 'base64'), + 3 +); +assert.strictEqual( + Buffer.from(b.toString('base64'), 'base64') + .indexOf(Buffer.from('ZA==', 'base64'), 0, 'base64'), + 3 +); + +// test ascii encoding +assert.strictEqual( + Buffer.from(b.toString('ascii'), 'ascii') + .indexOf('d', 0, 'ascii'), + 3 +); +assert.strictEqual( + Buffer.from(b.toString('ascii'), 'ascii') + .indexOf(Buffer.from('d', 'ascii'), 0, 'ascii'), + 3 +); + +// test latin1 encoding +assert.strictEqual( + Buffer.from(b.toString('latin1'), 'latin1') + .indexOf('d', 0, 'latin1'), + 3 +); +assert.strictEqual( + Buffer.from(b.toString('latin1'), 'latin1') + .indexOf(Buffer.from('d', 'latin1'), 0, 'latin1'), + 3 +); +assert.strictEqual( + Buffer.from('aa\u00e8aa', 'latin1') + .indexOf('\u00e8', 'latin1'), + 2 +); +assert.strictEqual( + Buffer.from('\u00e8', 'latin1') + .indexOf('\u00e8', 'latin1'), + 0 +); +assert.strictEqual( + Buffer.from('\u00e8', 'latin1') + .indexOf(Buffer.from('\u00e8', 'latin1'), 'latin1'), + 0 +); + +// test binary encoding +assert.strictEqual( + Buffer.from(b.toString('binary'), 'binary') + .indexOf('d', 0, 'binary'), + 3 +); +assert.strictEqual( + Buffer.from(b.toString('binary'), 'binary') + .indexOf(Buffer.from('d', 'binary'), 0, 'binary'), + 3 +); +assert.strictEqual( + Buffer.from('aa\u00e8aa', 'binary') + .indexOf('\u00e8', 'binary'), + 2 +); +assert.strictEqual( + Buffer.from('\u00e8', 'binary') + .indexOf('\u00e8', 'binary'), + 0 +); +assert.strictEqual( + Buffer.from('\u00e8', 'binary') + .indexOf(Buffer.from('\u00e8', 'binary'), 'binary'), + 0 +); + + +// test optional offset with passed encoding +assert.equal(Buffer.from('aaaa0').indexOf('30', 'hex'), 4); +assert.equal(Buffer.from('aaaa00a').indexOf('3030', 'hex'), 4); + +{ + // test usc2 encoding + var twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2'); + + assert.equal(8, twoByteString.indexOf('\u0395', 4, 'ucs2')); + assert.equal(6, twoByteString.indexOf('\u03a3', -4, 'ucs2')); + assert.equal(4, twoByteString.indexOf('\u03a3', -6, 'ucs2')); + assert.equal(4, twoByteString.indexOf( + Buffer.from('\u03a3', 'ucs2'), -6, 'ucs2')); + assert.equal(-1, twoByteString.indexOf('\u03a3', -2, 'ucs2')); +} + +var mixedByteStringUcs2 = + Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395', 'ucs2'); +assert.equal(6, mixedByteStringUcs2.indexOf('bc', 0, 'ucs2')); +assert.equal(10, mixedByteStringUcs2.indexOf('\u03a3', 0, 'ucs2')); +assert.equal(-1, mixedByteStringUcs2.indexOf('\u0396', 0, 'ucs2')); + +assert.equal( + 6, mixedByteStringUcs2.indexOf(Buffer.from('bc', 'ucs2'), 0, 'ucs2')); +assert.equal( + 10, mixedByteStringUcs2.indexOf(Buffer.from('\u03a3', 'ucs2'), 0, 'ucs2')); +assert.equal( + -1, mixedByteStringUcs2.indexOf(Buffer.from('\u0396', 'ucs2'), 0, 'ucs2')); + +{ + var twoByteString = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'ucs2'); + + // Test single char pattern + assert.equal(0, twoByteString.indexOf('\u039a', 0, 'ucs2')); + assert.equal(2, twoByteString.indexOf('\u0391', 0, 'ucs2'), 'Alpha'); + assert.equal(4, twoByteString.indexOf('\u03a3', 0, 'ucs2'), 'First Sigma'); + assert.equal(6, twoByteString.indexOf('\u03a3', 6, 'ucs2'), 'Second Sigma'); + assert.equal(8, twoByteString.indexOf('\u0395', 0, 'ucs2'), 'Epsilon'); + assert.equal(-1, twoByteString.indexOf('\u0392', 0, 'ucs2'), 'Not beta'); + + // Test multi-char pattern + assert.equal( + 0, twoByteString.indexOf('\u039a\u0391', 0, 'ucs2'), 'Lambda Alpha'); + assert.equal( + 2, twoByteString.indexOf('\u0391\u03a3', 0, 'ucs2'), 'Alpha Sigma'); + assert.equal( + 4, twoByteString.indexOf('\u03a3\u03a3', 0, 'ucs2'), 'Sigma Sigma'); + assert.equal( + 6, twoByteString.indexOf('\u03a3\u0395', 0, 'ucs2'), 'Sigma Epsilon'); +} + +var mixedByteStringUtf8 = Buffer.from('\u039a\u0391abc\u03a3\u03a3\u0395'); +assert.equal(5, mixedByteStringUtf8.indexOf('bc')); +assert.equal(5, mixedByteStringUtf8.indexOf('bc', 5)); +assert.equal(5, mixedByteStringUtf8.indexOf('bc', -8)); +assert.equal(7, mixedByteStringUtf8.indexOf('\u03a3')); +assert.equal(-1, mixedByteStringUtf8.indexOf('\u0396')); + + +// Test complex string indexOf algorithms. Only trigger for long strings. +// Long string that isn't a simple repeat of a shorter string. +var longString = 'A'; +for (var i = 66; i < 76; i++) { // from 'B' to 'K' + longString = longString + String.fromCharCode(i) + longString; +} + +var longBufferString = Buffer.from(longString); + +// pattern of 15 chars, repeated every 16 chars in long +var pattern = 'ABACABADABACABA'; +for (var i = 0; i < longBufferString.length - pattern.length; i += 7) { + var index = longBufferString.indexOf(pattern, i); + assert.equal((i + 15) & ~0xf, index, 'Long ABACABA...-string at index ' + i); +} +assert.equal(510, longBufferString.indexOf('AJABACA'), 'Long AJABACA, First J'); +assert.equal( + 1534, longBufferString.indexOf('AJABACA', 511), 'Long AJABACA, Second J'); + +pattern = 'JABACABADABACABA'; +assert.equal( + 511, longBufferString.indexOf(pattern), 'Long JABACABA..., First J'); +assert.equal( + 1535, longBufferString.indexOf(pattern, 512), 'Long JABACABA..., Second J'); + +// Search for a non-ASCII string in a pure ASCII string. +var asciiString = Buffer.from( + 'arglebargleglopglyfarglebargleglopglyfarglebargleglopglyf'); +assert.equal(-1, asciiString.indexOf('\x2061')); +assert.equal(3, asciiString.indexOf('leb', 0)); + +// Search in string containing many non-ASCII chars. +var allCodePoints = []; +for (var i = 0; i < 65536; i++) allCodePoints[i] = i; +var allCharsString = String.fromCharCode.apply(String, allCodePoints); +var allCharsBufferUtf8 = Buffer.from(allCharsString); +var allCharsBufferUcs2 = Buffer.from(allCharsString, 'ucs2'); + +// Search for string long enough to trigger complex search with ASCII pattern +// and UC16 subject. +assert.equal(-1, allCharsBufferUtf8.indexOf('notfound')); +assert.equal(-1, allCharsBufferUcs2.indexOf('notfound')); + +// Needle is longer than haystack, but only because it's encoded as UTF-16 +assert.strictEqual(Buffer.from('aaaa').indexOf('a'.repeat(4), 'ucs2'), -1); + +assert.strictEqual(Buffer.from('aaaa').indexOf('a'.repeat(4), 'utf8'), 0); +assert.strictEqual(Buffer.from('aaaa').indexOf('你好', 'ucs2'), -1); + +// Haystack has odd length, but the needle is UCS2. +// assert.strictEqual(Buffer.from('aaaaa').indexOf('b', 'ucs2'), -1); + +{ + // Find substrings in Utf8. + var lengths = [1, 3, 15]; // Single char, simple and complex. + var indices = [0x5, 0x60, 0x400, 0x680, 0x7ee, 0xFF02, 0x16610, 0x2f77b]; + for (var lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (var i = 0; i < indices.length; i++) { + var index = indices[i]; + var length = lengths[lengthIndex]; + + if (index + length > 0x7F) { + length = 2 * length; + } + + if (index + length > 0x7FF) { + length = 3 * length; + } + + if (index + length > 0xFFFF) { + length = 4 * length; + } + + var patternBufferUtf8 = allCharsBufferUtf8.slice(index, index + length); + assert.equal(index, allCharsBufferUtf8.indexOf(patternBufferUtf8)); + + var patternStringUtf8 = patternBufferUtf8.toString(); + assert.equal(index, allCharsBufferUtf8.indexOf(patternStringUtf8)); + } + } +} + +{ + // Find substrings in Usc2. + var lengths = [2, 4, 16]; // Single char, simple and complex. + var indices = [0x5, 0x65, 0x105, 0x205, 0x285, 0x2005, 0x2085, 0xfff0]; + for (var lengthIndex = 0; lengthIndex < lengths.length; lengthIndex++) { + for (var i = 0; i < indices.length; i++) { + var index = indices[i] * 2; + var length = lengths[lengthIndex]; + + var patternBufferUcs2 = + allCharsBufferUcs2.slice(index, index + length); + assert.equal( + index, allCharsBufferUcs2.indexOf(patternBufferUcs2, 0, 'ucs2')); + + var patternStringUcs2 = patternBufferUcs2.toString('ucs2'); + assert.equal( + index, allCharsBufferUcs2.indexOf(patternStringUcs2, 0, 'ucs2')); + } + } +} + +assert.throws(function() { + b.indexOf(function() { }); +}); +assert.throws(function() { + b.indexOf({}); +}); +assert.throws(function() { + b.indexOf([]); +}); + +// All code for handling encodings is shared between Buffer.indexOf and +// Buffer.lastIndexOf, so only testing the separate lastIndexOf semantics. + +// Test lastIndexOf basic functionality; Buffer b contains 'abcdef'. +// lastIndexOf string: +assert.equal(b.lastIndexOf('a'), 0); +assert.equal(b.lastIndexOf('a', 1), 0); +assert.equal(b.lastIndexOf('b', 1), 1); +assert.equal(b.lastIndexOf('c', 1), -1); +assert.equal(b.lastIndexOf('a', -1), 0); +assert.equal(b.lastIndexOf('a', -4), 0); +assert.equal(b.lastIndexOf('a', -b.length), 0); +assert.equal(b.lastIndexOf('a', -b.length - 1), -1); +assert.equal(b.lastIndexOf('a', NaN), 0); +assert.equal(b.lastIndexOf('a', -Infinity), -1); +assert.equal(b.lastIndexOf('a', Infinity), 0); +// lastIndexOf Buffer: +assert.equal(b.lastIndexOf(buf_a), 0); +assert.equal(b.lastIndexOf(buf_a, 1), 0); +assert.equal(b.lastIndexOf(buf_a, -1), 0); +assert.equal(b.lastIndexOf(buf_a, -4), 0); +assert.equal(b.lastIndexOf(buf_a, -b.length), 0); +assert.equal(b.lastIndexOf(buf_a, -b.length - 1), -1); +assert.equal(b.lastIndexOf(buf_a, NaN), 0); +assert.equal(b.lastIndexOf(buf_a, -Infinity), -1); +assert.equal(b.lastIndexOf(buf_a, Infinity), 0); +assert.equal(b.lastIndexOf(buf_bc), 1); +assert.equal(b.lastIndexOf(buf_bc, 2), 1); +assert.equal(b.lastIndexOf(buf_bc, -1), 1); +assert.equal(b.lastIndexOf(buf_bc, -3), 1); +assert.equal(b.lastIndexOf(buf_bc, -5), 1); +assert.equal(b.lastIndexOf(buf_bc, -6), -1); +assert.equal(b.lastIndexOf(buf_bc, NaN), 1); +assert.equal(b.lastIndexOf(buf_bc, -Infinity), -1); +assert.equal(b.lastIndexOf(buf_bc, Infinity), 1); +assert.equal(b.lastIndexOf(buf_f), b.length - 1); +assert.equal(b.lastIndexOf(buf_z), -1); +assert.equal(b.lastIndexOf(buf_empty), -1); +assert.equal(b.lastIndexOf(buf_empty, 1), -1); +assert.equal(b.lastIndexOf(buf_empty, b.length + 1), -1); +assert.equal(b.lastIndexOf(buf_empty, Infinity), -1); +// lastIndexOf number: +assert.equal(b.lastIndexOf(0x61), 0); +assert.equal(b.lastIndexOf(0x61, 1), 0); +assert.equal(b.lastIndexOf(0x61, -1), 0); +assert.equal(b.lastIndexOf(0x61, -4), 0); +assert.equal(b.lastIndexOf(0x61, -b.length), 0); +assert.equal(b.lastIndexOf(0x61, -b.length - 1), -1); +assert.equal(b.lastIndexOf(0x61, NaN), 0); +assert.equal(b.lastIndexOf(0x61, -Infinity), -1); +assert.equal(b.lastIndexOf(0x61, Infinity), 0); +assert.equal(b.lastIndexOf(0x0), -1); + +// Test weird offset arguments. +// Behaviour should match String.lastIndexOf: +assert.equal(b.lastIndexOf('b', 0), -1); +assert.equal(b.lastIndexOf('b', undefined), 1); +assert.equal(b.lastIndexOf('b', null), -1); +assert.equal(b.lastIndexOf('b', {}), 1); +assert.equal(b.lastIndexOf('b', []), -1); +assert.equal(b.lastIndexOf('b', [2]), 1); + +// Test needles longer than the haystack. +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 'ucs2'), -1); +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 'utf8'), -1); +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 'latin1'), -1); +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 'binary'), -1); +assert.strictEqual(b.lastIndexOf(Buffer.from('aaaaaaaaaaaaaaa')), -1); +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 2, 'ucs2'), -1); +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 3, 'utf8'), -1); +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 5, 'latin1'), -1); +assert.strictEqual(b.lastIndexOf('aaaaaaaaaaaaaaa', 5, 'binary'), -1); +assert.strictEqual(b.lastIndexOf(Buffer.from('aaaaaaaaaaaaaaa'), 7), -1); + +// 你好 expands to a total of 6 bytes using UTF-8 and 4 bytes using UTF-16 +assert.strictEqual(buf_bc.lastIndexOf('你好', 'ucs2'), -1); +assert.strictEqual(buf_bc.lastIndexOf('你好', 'utf8'), -1); +assert.strictEqual(buf_bc.lastIndexOf('你好', 'latin1'), -1); +assert.strictEqual(buf_bc.lastIndexOf('你好', 'binary'), -1); +assert.strictEqual(buf_bc.lastIndexOf(Buffer.from('你好')), -1); +assert.strictEqual(buf_bc.lastIndexOf('你好', 2, 'ucs2'), -1); +assert.strictEqual(buf_bc.lastIndexOf('你好', 3, 'utf8'), -1); +assert.strictEqual(buf_bc.lastIndexOf('你好', 5, 'latin1'), -1); +assert.strictEqual(buf_bc.lastIndexOf('你好', 5, 'binary'), -1); +assert.strictEqual(buf_bc.lastIndexOf(Buffer.from('你好'), 7), -1); + +// Test lastIndexOf on a longer buffer: +var bufferString = new Buffer('a man a plan a canal panama'); +assert.equal(15, bufferString.lastIndexOf('canal')); +assert.equal(21, bufferString.lastIndexOf('panama')); +assert.equal(0, bufferString.lastIndexOf('a man a plan a canal panama')); +assert.equal(-1, bufferString.lastIndexOf('a man a plan a canal mexico')); +assert.equal(-1, bufferString.lastIndexOf('a man a plan a canal mexico city')); +assert.equal(-1, bufferString.lastIndexOf(Buffer.from('a'.repeat(1000)))); +assert.equal(0, bufferString.lastIndexOf('a man a plan', 4)); +assert.equal(13, bufferString.lastIndexOf('a ')); +assert.equal(13, bufferString.lastIndexOf('a ', 13)); +assert.equal(6, bufferString.lastIndexOf('a ', 12)); +assert.equal(0, bufferString.lastIndexOf('a ', 5)); +assert.equal(13, bufferString.lastIndexOf('a ', -1)); +assert.equal(0, bufferString.lastIndexOf('a ', -27)); +assert.equal(-1, bufferString.lastIndexOf('a ', -28)); + +// Test lastIndexOf for the case that the first character can be found, +// but in a part of the buffer that does not make search to search +// due do length constraints. +var abInUCS2 = Buffer.from('ab', 'ucs2'); +assert.strictEqual(-1, Buffer.from('µaaaa¶bbbb', 'latin1').lastIndexOf('µ')); +assert.strictEqual(-1, Buffer.from('µaaaa¶bbbb', 'binary').lastIndexOf('µ')); +assert.strictEqual(-1, Buffer.from('bc').lastIndexOf('ab')); +assert.strictEqual(-1, Buffer.from('abc').lastIndexOf('qa')); +assert.strictEqual(-1, Buffer.from('abcdef').lastIndexOf('qabc')); +assert.strictEqual(-1, Buffer.from('bc').lastIndexOf(Buffer.from('ab'))); +assert.strictEqual(-1, Buffer.from('bc', 'ucs2').lastIndexOf('ab', 'ucs2')); +assert.strictEqual(-1, Buffer.from('bc', 'ucs2').lastIndexOf(abInUCS2)); + +assert.strictEqual(0, Buffer.from('abc').lastIndexOf('ab')); +assert.strictEqual(0, Buffer.from('abc').lastIndexOf('ab', 1)); +assert.strictEqual(0, Buffer.from('abc').lastIndexOf('ab', 2)); +assert.strictEqual(0, Buffer.from('abc').lastIndexOf('ab', 3)); + +// The above tests test the LINEAR and SINGLE-CHAR strategies. +// Now, we test the BOYER-MOORE-HORSPOOL strategy. +// Test lastIndexOf on a long buffer w multiple matches: +pattern = 'JABACABADABACABA'; +assert.equal(1535, longBufferString.lastIndexOf(pattern)); +assert.equal(1535, longBufferString.lastIndexOf(pattern, 1535)); +assert.equal(511, longBufferString.lastIndexOf(pattern, 1534)); + +// Finally, give it a really long input to trigger fallback from BMH to +// regular BOYER-MOORE (which has better worst-case complexity). + +// Generate a really long Thue-Morse sequence of 'yolo' and 'swag', +// "yolo swag swag yolo swag yolo yolo swag" ..., goes on for about 5MB. +// This is hard to search because it all looks similar, but never repeats. + +// countBits returns the number of bits in the binary reprsentation of n. +function countBits(n) { + for (var count = 0; n > 0; count++) { + n = n & (n - 1); // remove top bit + } + return count; +} +var parts = []; +for (var i = 0; i < 1000000; i++) { + parts.push((countBits(i) % 2 === 0) ? 'yolo' : 'swag'); +} +var reallyLong = new Buffer(parts.join(' ')); +assert.equal('yolo swag swag yolo', reallyLong.slice(0, 19).toString()); + +// Expensive reverse searches. Stress test lastIndexOf: +pattern = reallyLong.slice(0, 100000); // First 1/50th of the pattern. +assert.equal(4751360, reallyLong.lastIndexOf(pattern)); +assert.equal(3932160, reallyLong.lastIndexOf(pattern, 4000000)); +assert.equal(2949120, reallyLong.lastIndexOf(pattern, 3000000)); +pattern = reallyLong.slice(100000, 200000); // Second 1/50th. +assert.equal(4728480, reallyLong.lastIndexOf(pattern)); +pattern = reallyLong.slice(0, 1000000); // First 1/5th. +assert.equal(3932160, reallyLong.lastIndexOf(pattern)); +pattern = reallyLong.slice(0, 2000000); // first 2/5ths. +assert.equal(0, reallyLong.lastIndexOf(pattern)); + +// test truncation of Number arguments to uint8 +{ + var buf = Buffer.from('this is a test'); + assert.strictEqual(buf.indexOf(0x6973), 3); + assert.strictEqual(buf.indexOf(0x697320), 4); + assert.strictEqual(buf.indexOf(0x69732069), 2); + assert.strictEqual(buf.indexOf(0x697374657374), 0); + assert.strictEqual(buf.indexOf(0x69737374), 0); + assert.strictEqual(buf.indexOf(0x69737465), 11); + assert.strictEqual(buf.indexOf(0x69737465), 11); + assert.strictEqual(buf.indexOf(-140), 0); + assert.strictEqual(buf.indexOf(-152), 1); + assert.strictEqual(buf.indexOf(0xff), -1); + assert.strictEqual(buf.indexOf(0xffff), -1); +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-inheritance.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-inheritance.js new file mode 100644 index 0000000000000000000000000000000000000000..711d9f23fd61be731287ad6f9e3a589170acd7c7 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-inheritance.js @@ -0,0 +1,42 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); + + +function T(n) { + var ui8 = new Uint8Array(n); + Object.setPrototypeOf(ui8, T.prototype); + return ui8; +} +Object.setPrototypeOf(T.prototype, Buffer.prototype); +Object.setPrototypeOf(T, Buffer); + +T.prototype.sum = function sum() { + var cntr = 0; + for (var i = 0; i < this.length; i++) + cntr += this[i]; + return cntr; +}; + + +var vals = [new T(4), T(4)]; + +vals.forEach(function(t) { + assert.equal(t.constructor, T); + assert.equal(Object.getPrototypeOf(t), T.prototype); + assert.equal(Object.getPrototypeOf(Object.getPrototypeOf(t)), + Buffer.prototype); + + t.fill(5); + var cntr = 0; + for (var i = 0; i < t.length; i++) + cntr += t[i]; + assert.equal(t.length * 5, cntr); + + // Check this does not throw + t.toString(); +}); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-inspect.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-inspect.js new file mode 100644 index 0000000000000000000000000000000000000000..d0ed590d4545a236e109f2b5fa17e367f837467f --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-inspect.js @@ -0,0 +1,41 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); + +var util = require('util'); + +var buffer = require('../../'); + +buffer.INSPECT_MAX_BYTES = 2; + +var b = Buffer.allocUnsafe(4); +b.fill('1234'); + +var s = buffer.SlowBuffer(4); +s.fill('1234'); + +var expected = ''; + +assert.strictEqual(util.inspect(b), expected); +assert.strictEqual(util.inspect(s), expected); + +b = Buffer.allocUnsafe(2); +b.fill('12'); + +s = buffer.SlowBuffer(2); +s.fill('12'); + +expected = ''; + +assert.strictEqual(util.inspect(b), expected); +assert.strictEqual(util.inspect(s), expected); + +buffer.INSPECT_MAX_BYTES = Infinity; + +assert.doesNotThrow(function() { + assert.strictEqual(util.inspect(b), expected); + assert.strictEqual(util.inspect(s), expected); +}); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-iterator.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-iterator.js new file mode 100644 index 0000000000000000000000000000000000000000..f27709f31c3925d98451fe0370d34944919035b2 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-iterator.js @@ -0,0 +1,65 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + +var assert = require('assert'); + +var buffer = Buffer.from([1, 2, 3, 4, 5]); +var arr; +var b; + +// buffers should be iterable + +arr = []; + +for (b of buffer) + arr.push(b); + +assert.deepStrictEqual(arr, [1, 2, 3, 4, 5]); + + +// buffer iterators should be iterable + +arr = []; + +for (b of buffer[Symbol.iterator]()) + arr.push(b); + +assert.deepStrictEqual(arr, [1, 2, 3, 4, 5]); + + +// buffer#values() should return iterator for values + +arr = []; + +for (b of buffer.values()) + arr.push(b); + +assert.deepStrictEqual(arr, [1, 2, 3, 4, 5]); + + +// buffer#keys() should return iterator for keys + +arr = []; + +for (b of buffer.keys()) + arr.push(b); + +assert.deepStrictEqual(arr, [0, 1, 2, 3, 4]); + + +// buffer#entries() should return iterator for entries + +arr = []; + +for (b of buffer.entries()) + arr.push(b); + +assert.deepStrictEqual(arr, [ + [0, 1], + [1, 2], + [2, 3], + [3, 4], + [4, 5] +]); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-safe-unsafe.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-safe-unsafe.js new file mode 100644 index 0000000000000000000000000000000000000000..22ba29e85b0116dbe01c2dba5d1c31200d0d734f --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-safe-unsafe.js @@ -0,0 +1,27 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); + +var safe = Buffer.alloc(10); + +function isZeroFilled(buf) { + for (var n = 0; n < buf.length; n++) + if (buf[n] !== 0) return false; + return true; +} + +assert(isZeroFilled(safe)); + +// Test that unsafe allocations doesn't affect subsequent safe allocations +Buffer.allocUnsafe(10); +assert(isZeroFilled(new Float64Array(10))); + +new Buffer(10); +assert(isZeroFilled(new Float64Array(10))); + +Buffer.allocUnsafe(10); +assert(isZeroFilled(Buffer.alloc(10))); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-slow.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-slow.js new file mode 100644 index 0000000000000000000000000000000000000000..65cea21ed1e2be4ff9f1920c4236e188e32054ea --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-slow.js @@ -0,0 +1,63 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); +var buffer = require('../../'); +var Buffer = buffer.Buffer; +var SlowBuffer = buffer.SlowBuffer; + +var ones = [1, 1, 1, 1]; + +// should create a Buffer +var sb = SlowBuffer(4); +assert(sb instanceof Buffer); +assert.strictEqual(sb.length, 4); +sb.fill(1); +for (var [key, value] of sb.entries()) { + assert.deepStrictEqual(value, ones[key]); +} + +// underlying ArrayBuffer should have the same length +assert.strictEqual(sb.buffer.byteLength, 4); + +// should work without new +sb = SlowBuffer(4); +assert(sb instanceof Buffer); +assert.strictEqual(sb.length, 4); +sb.fill(1); +for (var [key, value] of sb.entries()) { + assert.deepStrictEqual(value, ones[key]); +} + +// should work with edge cases +assert.strictEqual(SlowBuffer(0).length, 0); +try { + assert.strictEqual( + SlowBuffer(buffer.kMaxLength).length, buffer.kMaxLength); +} catch (e) { + assert.equal(e.message, 'Array buffer allocation failed'); +} + +// should work with number-coercible values +assert.strictEqual(SlowBuffer('6').length, 6); +assert.strictEqual(SlowBuffer(true).length, 1); + +// should create zero-length buffer if parameter is not a number +assert.strictEqual(SlowBuffer().length, 0); +assert.strictEqual(SlowBuffer(NaN).length, 0); +assert.strictEqual(SlowBuffer({}).length, 0); +assert.strictEqual(SlowBuffer('string').length, 0); + +// should throw with invalid length +assert.throws(function() { + SlowBuffer(Infinity); +}, 'invalid Buffer length'); +assert.throws(function() { + SlowBuffer(-1); +}, 'invalid Buffer length'); +assert.throws(function() { + SlowBuffer(buffer.kMaxLength + 1); +}, 'invalid Buffer length'); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-swap.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-swap.js new file mode 100644 index 0000000000000000000000000000000000000000..2ec1a7aacc42d6cb0a5a231aac9fa7e794906d8c --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-swap.js @@ -0,0 +1,141 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); + +// Test buffers small enough to use the JS implementation +var buf = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, + 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10]); + +assert.strictEqual(buf, buf.swap16()); +assert.deepStrictEqual(buf, Buffer.from([0x02, 0x01, 0x04, 0x03, 0x06, 0x05, + 0x08, 0x07, 0x0a, 0x09, 0x0c, 0x0b, + 0x0e, 0x0d, 0x10, 0x0f])); +buf.swap16(); // restore + +assert.strictEqual(buf, buf.swap32()); +assert.deepStrictEqual(buf, Buffer.from([0x04, 0x03, 0x02, 0x01, 0x08, 0x07, + 0x06, 0x05, 0x0c, 0x0b, 0x0a, 0x09, + 0x10, 0x0f, 0x0e, 0x0d])); +buf.swap32(); // restore + +assert.strictEqual(buf, buf.swap64()); +assert.deepStrictEqual(buf, Buffer.from([0x08, 0x07, 0x06, 0x05, 0x04, 0x03, + 0x02, 0x01, 0x10, 0x0f, 0x0e, 0x0d, + 0x0c, 0x0b, 0x0a, 0x09])); + +// Operates in-place +var buf3 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7]); +buf3.slice(1, 5).swap32(); +assert.deepStrictEqual(buf3, Buffer.from([0x1, 0x5, 0x4, 0x3, 0x2, 0x6, 0x7])); + +buf3.slice(1, 5).swap16(); +assert.deepStrictEqual(buf3, Buffer.from([0x1, 0x4, 0x5, 0x2, 0x3, 0x6, 0x7])); + +var buf3_64 = Buffer.from([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10]); +buf3_64.slice(2, 18).swap64(); +assert.deepStrictEqual(buf3_64, Buffer.from([0x01, 0x02, 0x0a, 0x09, 0x08, 0x07, + 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, + 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, + 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, + 0x0f, 0x10])); + +// Force use of native code (Buffer size above threshold limit for js impl) +var buf4A = new Uint32Array(256).fill(0x04030201); +var buf4 = Buffer.from(buf4A.buffer, buf4A.byteOffset); +var buf5A = new Uint32Array(256).fill(0x03040102); +var buf5 = Buffer.from(buf5A.buffer, buf5A.byteOffset); + +buf4.swap16(); +assert.deepStrictEqual(buf4, buf5); + +var buf6A = new Uint32Array(256).fill(0x04030201); +var buf6 = Buffer.from(buf6A.buffer); +var bu7A = new Uint32Array(256).fill(0x01020304); +var buf7 = Buffer.from(bu7A.buffer, bu7A.byteOffset); + +buf6.swap32(); +assert.deepStrictEqual(buf6, buf7); + +var buf8A = new Uint8Array(256 * 8); +var buf9A = new Uint8Array(256 * 8); +for (var i = 0; i < buf8A.length; i++) { + buf8A[i] = i % 8; + buf9A[buf9A.length - i - 1] = i % 8; +} +var buf8 = Buffer.from(buf8A.buffer, buf8A.byteOffset); +var buf9 = Buffer.from(buf9A.buffer, buf9A.byteOffset); + +buf8.swap64(); +assert.deepStrictEqual(buf8, buf9); + +// Test native code with buffers that are not memory-aligned +var buf10A = new Uint8Array(256 * 8); +var buf11A = new Uint8Array(256 * 8 - 2); +for (var i = 0; i < buf10A.length; i++) { + buf10A[i] = i % 2; +} +for (var i = 1; i < buf11A.length; i++) { + buf11A[buf11A.length - i] = (i + 1) % 2; +} +var buf10 = Buffer.from(buf10A.buffer, buf10A.byteOffset); +// 0|1 0|1 0|1... +var buf11 = Buffer.from(buf11A.buffer, buf11A.byteOffset); +// 0|0 1|0 1|0... + +buf10.slice(1, buf10.length - 1).swap16(); +assert.deepStrictEqual(buf10.slice(0, buf11.length), buf11); + + +var buf12A = new Uint8Array(256 * 8); +var buf13A = new Uint8Array(256 * 8 - 4); +for (var i = 0; i < buf12A.length; i++) { + buf12A[i] = i % 4; +} +for (var i = 1; i < buf13A.length; i++) { + buf13A[buf13A.length - i] = (i + 1) % 4; +} +var buf12 = Buffer.from(buf12A.buffer, buf12A.byteOffset); +// 0|1 2 3 0|1 2 3... +var buf13 = Buffer.from(buf13A.buffer, buf13A.byteOffset); +// 0|0 3 2 1|0 3 2... + +buf12.slice(1, buf12.length - 3).swap32(); +assert.deepStrictEqual(buf12.slice(0, buf13.length), buf13); + + +var buf14A = new Uint8Array(256 * 8); +var buf15A = new Uint8Array(256 * 8 - 8); +for (var i = 0; i < buf14A.length; i++) { + buf14A[i] = i % 8; +} +for (var i = 1; i < buf15A.length; i++) { + buf15A[buf15A.length - i] = (i + 1) % 8; +} +var buf14 = Buffer.from(buf14A.buffer, buf14A.byteOffset); +// 0|1 2 3 4 5 6 7 0|1 2 3 4... +var buf15 = Buffer.from(buf15A.buffer, buf15A.byteOffset); +// 0|0 7 6 5 4 3 2 1|0 7 6 5... + +buf14.slice(1, buf14.length - 7).swap64(); +assert.deepStrictEqual(buf14.slice(0, buf15.length), buf15); + +// Length assertions +var re16 = /Buffer size must be a multiple of 16-bits/; +var re32 = /Buffer size must be a multiple of 32-bits/; +var re64 = /Buffer size must be a multiple of 64-bits/; + +assert.throws(() => Buffer.from(buf3).swap16(), re16); +assert.throws(() => Buffer.alloc(1025).swap16(), re16); +assert.throws(() => Buffer.from(buf3).swap32(), re32); +assert.throws(() => buf3.slice(1, 3).swap32(), re32); +assert.throws(() => Buffer.alloc(1025).swap32(), re32); +assert.throws(() => buf3.slice(1, 3).swap64(), re64); +assert.throws(() => Buffer.alloc(1025).swap64(), re64); + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-zero-fill-cli.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-zero-fill-cli.js new file mode 100644 index 0000000000000000000000000000000000000000..744b33497ffdffc778e62448988712755d4bdf84 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-zero-fill-cli.js @@ -0,0 +1,35 @@ +'use strict'; +var Buffer = require('../../').Buffer; + +// Flags: --zero-fill-buffers + +// when using --zero-fill-buffers, every Buffer and SlowBuffer +// instance must be zero filled upon creation + + +var SlowBuffer = require('../../').SlowBuffer; +var assert = require('assert'); + +function isZeroFilled(buf) { + for (var n = 0; n < buf.length; n++) + if (buf[n] > 0) return false; + return true; +} + +// This can be somewhat unreliable because the +// allocated memory might just already happen to +// contain all zeroes. The test is run multiple +// times to improve the reliability. +for (var i = 0; i < 50; i++) { + var bufs = [ + Buffer.alloc(20), + Buffer.allocUnsafe(20), + SlowBuffer(20), + Buffer(20), + new SlowBuffer(20) + ]; + for (var buf of bufs) { + assert(isZeroFilled(buf)); + } +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer-zero-fill-reset.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-zero-fill-reset.js new file mode 100644 index 0000000000000000000000000000000000000000..b21a6b2621052bc2ca6e10f5c5a6b034bfe07657 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer-zero-fill-reset.js @@ -0,0 +1,22 @@ +'use strict'; +var Buffer = require('../../').Buffer; + + + +var assert = require('assert'); + + +function testUint8Array(ui) { + var length = ui.length; + for (var i = 0; i < length; i++) + if (ui[i] !== 0) return false; + return true; +} + + +for (var i = 0; i < 100; i++) { + Buffer.alloc(0); + var ui = new Uint8Array(65); + assert.ok(testUint8Array(ui), 'Uint8Array is not zero-filled'); +} + diff --git a/justdanceonline-main/node_modules/buffer/test/node/test-buffer.js b/justdanceonline-main/node_modules/buffer/test/node/test-buffer.js new file mode 100644 index 0000000000000000000000000000000000000000..2e94de211d95a0e24899705dfe127cbbdb45fa6c --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/node/test-buffer.js @@ -0,0 +1,1534 @@ +'use strict'; +var Buffer = require('../../').Buffer; + +var common = { skip: function () {} }; +var assert = require('assert'); + +var Buffer = require('../../').Buffer; +var SlowBuffer = require('../../').SlowBuffer; + +// counter to ensure unique value is always copied +var cntr = 0; + +var b = Buffer(1024); // safe constructor + +// console.log('b.length == %d', b.length); +assert.strictEqual(1024, b.length); + +b[0] = -1; +assert.strictEqual(b[0], 255); + +for (var i = 0; i < 1024; i++) { + b[i] = i % 256; +} + +for (var i = 0; i < 1024; i++) { + assert.strictEqual(i % 256, b[i]); +} + +var c = Buffer(512); +// console.log('c.length == %d', c.length); +assert.strictEqual(512, c.length); + +var d = new Buffer([]); +assert.strictEqual(0, d.length); + +var ui32 = new Uint32Array(4).fill(42); +var e = Buffer(ui32); +for (var [key, value] of e.entries()) { + assert.deepStrictEqual(value, ui32[key]); +} + +// First check Buffer#fill() works as expected. + +assert.throws(function() { + Buffer(8).fill('a', -1); +}); + +assert.throws(function() { + Buffer(8).fill('a', 0, 9); +}); + +// Make sure this doesn't hang indefinitely. +Buffer(8).fill(''); + +{ + var buf = new Buffer(64); + buf.fill(10); + for (var i = 0; i < buf.length; i++) + assert.equal(buf[i], 10); + + buf.fill(11, 0, buf.length >> 1); + for (var i = 0; i < buf.length >> 1; i++) + assert.equal(buf[i], 11); + for (var i = (buf.length >> 1) + 1; i < buf.length; i++) + assert.equal(buf[i], 10); + + buf.fill('h'); + for (var i = 0; i < buf.length; i++) + assert.equal('h'.charCodeAt(0), buf[i]); + + buf.fill(0); + for (var i = 0; i < buf.length; i++) + assert.equal(0, buf[i]); + + buf.fill(null); + for (var i = 0; i < buf.length; i++) + assert.equal(0, buf[i]); + + buf.fill(1, 16, 32); + for (var i = 0; i < 16; i++) + assert.equal(0, buf[i]); + for (var i = 16; i < 32; i++) + assert.equal(1, buf[i]); + for (var i = 32; i < buf.length; i++) + assert.equal(0, buf[i]); +} + +{ + var buf = new Buffer(10); + buf.fill('abc'); + assert.equal(buf.toString(), 'abcabcabca'); + buf.fill('է'); + assert.equal(buf.toString(), 'էէէէէ'); +} + +{ + // copy 512 bytes, from 0 to 512. + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, 0, 512); +// console.log('copied %d bytes from b into c', copied); + assert.strictEqual(512, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +{ + // copy c into b, without specifying sourceEnd + b.fill(++cntr); + c.fill(++cntr); + var copied = c.copy(b, 0, 0); +// console.log('copied %d bytes from c into b w/o sourceEnd', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(c[i], b[i]); + } +} + +{ + // copy c into b, without specifying sourceStart + b.fill(++cntr); + c.fill(++cntr); + var copied = c.copy(b, 0); +// console.log('copied %d bytes from c into b w/o sourceStart', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(c[i], b[i]); + } +} + +{ + // copy longer buffer b to shorter c without targetStart + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c); +// console.log('copied %d bytes from b into c w/o targetStart', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +{ + // copy starting near end of b to c + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, b.length - Math.floor(c.length / 2)); +// console.log('copied %d bytes from end of b into beginning of c', copied); + assert.strictEqual(Math.floor(c.length / 2), copied); + for (var i = 0; i < Math.floor(c.length / 2); i++) { + assert.strictEqual(b[b.length - Math.floor(c.length / 2) + i], c[i]); + } + for (var i = Math.floor(c.length / 2) + 1; i < c.length; i++) { + assert.strictEqual(c[c.length - 1], c[i]); + } +} + +{ + // try to copy 513 bytes, and check we don't overrun c + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, 0, 513); +// console.log('copied %d bytes from b trying to overrun c', copied); + assert.strictEqual(c.length, copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +{ + // copy 768 bytes from b into b + b.fill(++cntr); + b.fill(++cntr, 256); + var copied = b.copy(b, 0, 256, 1024); +// console.log('copied %d bytes from b into b', copied); + assert.strictEqual(768, copied); + for (var i = 0; i < b.length; i++) { + assert.strictEqual(cntr, b[i]); + } +} + +// copy string longer than buffer length (failure will segfault) +var bb = Buffer(10); +bb.fill('hello crazy world'); + + +// try to copy from before the beginning of b +assert.doesNotThrow(() => { b.copy(c, 0, 100, 10); }); + +// copy throws at negative sourceStart +assert.throws(function() { + Buffer(5).copy(Buffer(5), 0, -1); +}, RangeError); + +{ + // check sourceEnd resets to targetEnd if former is greater than the latter + b.fill(++cntr); + c.fill(++cntr); + var copied = b.copy(c, 0, 0, 1025); +// console.log('copied %d bytes from b into c', copied); + for (var i = 0; i < c.length; i++) { + assert.strictEqual(b[i], c[i]); + } +} + +// throw with negative sourceEnd +// console.log('test copy at negative sourceEnd'); +assert.throws(function() { + b.copy(c, 0, 0, -1); +}, RangeError); + +// when sourceStart is greater than sourceEnd, zero copied +assert.equal(b.copy(c, 0, 100, 10), 0); + +// when targetStart > targetLength, zero copied +assert.equal(b.copy(c, 512, 0, 10), 0); + +var caught_error; + +// invalid encoding for Buffer.toString +caught_error = null; +try { + b.toString('invalid'); +} catch (err) { + caught_error = err; +} +assert.strictEqual('Unknown encoding: invalid', caught_error.message); + +// invalid encoding for Buffer.write +caught_error = null; +try { + b.write('test string', 0, 5, 'invalid'); +} catch (err) { + caught_error = err; +} +assert.strictEqual('Unknown encoding: invalid', caught_error.message); + +// try to create 0-length buffers +new Buffer(''); +new Buffer('', 'ascii'); +new Buffer('', 'latin1'); +new Buffer('', 'binary'); +Buffer(0); + +// try to write a 0-length string beyond the end of b +assert.throws(function() { + b.write('', 2048); +}, RangeError); + +// throw when writing to negative offset +assert.throws(function() { + b.write('a', -1); +}, RangeError); + +// throw when writing past bounds from the pool +assert.throws(function() { + b.write('a', 2048); +}, RangeError); + +// throw when writing to negative offset +assert.throws(function() { + b.write('a', -1); +}, RangeError); + +// try to copy 0 bytes worth of data into an empty buffer +b.copy(Buffer(0), 0, 0, 0); + +// try to copy 0 bytes past the end of the target buffer +b.copy(Buffer(0), 1, 1, 1); +b.copy(Buffer(1), 1, 1, 1); + +// try to copy 0 bytes from past the end of the source buffer +b.copy(Buffer(1), 0, 2048, 2048); + +var rangeBuffer = new Buffer('abc'); + +// if start >= buffer's length, empty string will be returned +assert.equal(rangeBuffer.toString('ascii', 3), ''); +assert.equal(rangeBuffer.toString('ascii', +Infinity), ''); +assert.equal(rangeBuffer.toString('ascii', 3.14, 3), ''); +assert.equal(rangeBuffer.toString('ascii', 'Infinity', 3), ''); + +// if end <= 0, empty string will be returned +assert.equal(rangeBuffer.toString('ascii', 1, 0), ''); +assert.equal(rangeBuffer.toString('ascii', 1, -1.2), ''); +assert.equal(rangeBuffer.toString('ascii', 1, -100), ''); +assert.equal(rangeBuffer.toString('ascii', 1, -Infinity), ''); + +// if start < 0, start will be taken as zero +assert.equal(rangeBuffer.toString('ascii', -1, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', -1.99, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', -Infinity, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '-1', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '-1.99', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '-Infinity', 3), 'abc'); + +// if start is an invalid integer, start will be taken as zero +assert.equal(rangeBuffer.toString('ascii', 'node.js', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', {}, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', [], 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', NaN, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', null, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', undefined, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', false, 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '', 3), 'abc'); + +// but, if start is an integer when coerced, then it will be coerced and used. +assert.equal(rangeBuffer.toString('ascii', '-1', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '1', 3), 'bc'); +assert.equal(rangeBuffer.toString('ascii', '-Infinity', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', '3', 3), ''); +assert.equal(rangeBuffer.toString('ascii', Number(3), 3), ''); +assert.equal(rangeBuffer.toString('ascii', '3.14', 3), ''); +assert.equal(rangeBuffer.toString('ascii', '1.99', 3), 'bc'); +assert.equal(rangeBuffer.toString('ascii', '-1.99', 3), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 1.99, 3), 'bc'); +assert.equal(rangeBuffer.toString('ascii', true, 3), 'bc'); + +// if end > buffer's length, end will be taken as buffer's length +assert.equal(rangeBuffer.toString('ascii', 0, 5), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, 6.99), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, Infinity), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '5'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '6.99'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, 'Infinity'), 'abc'); + +// if end is an invalid integer, end will be taken as buffer's length +assert.equal(rangeBuffer.toString('ascii', 0, 'node.js'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, {}), ''); +assert.equal(rangeBuffer.toString('ascii', 0, NaN), ''); +assert.equal(rangeBuffer.toString('ascii', 0, undefined), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, null), ''); +assert.equal(rangeBuffer.toString('ascii', 0, []), ''); +assert.equal(rangeBuffer.toString('ascii', 0, false), ''); +assert.equal(rangeBuffer.toString('ascii', 0, ''), ''); + +// but, if end is an integer when coerced, then it will be coerced and used. +assert.equal(rangeBuffer.toString('ascii', 0, '-1'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, '1'), 'a'); +assert.equal(rangeBuffer.toString('ascii', 0, '-Infinity'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, '3'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, Number(3)), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '3.14'), 'abc'); +assert.equal(rangeBuffer.toString('ascii', 0, '1.99'), 'a'); +assert.equal(rangeBuffer.toString('ascii', 0, '-1.99'), ''); +assert.equal(rangeBuffer.toString('ascii', 0, 1.99), 'a'); +assert.equal(rangeBuffer.toString('ascii', 0, true), 'a'); + +// try toString() with a object as a encoding +assert.equal(rangeBuffer.toString({toString: function() { + return 'ascii'; +}}), 'abc'); + +// testing for smart defaults and ability to pass string values as offset +var writeTest = new Buffer('abcdes'); +writeTest.write('n', 'ascii'); +writeTest.write('o', '1', 'ascii'); +writeTest.write('d', '2', 'ascii'); +writeTest.write('e', 3, 'ascii'); +writeTest.write('j', 4, 'ascii'); +assert.equal(writeTest.toString(), 'nodejs'); + +// ASCII slice test +{ + var asciiString = 'hello world'; + + for (var i = 0; i < asciiString.length; i++) { + b[i] = asciiString.charCodeAt(i); + } + var asciiSlice = b.toString('ascii', 0, asciiString.length); + assert.equal(asciiString, asciiSlice); +} + +{ + var asciiString = 'hello world'; + var offset = 100; + + var written = b.write(asciiString, offset, 'ascii'); + assert.equal(asciiString.length, written); + var asciiSlice = b.toString('ascii', offset, offset + asciiString.length); + assert.equal(asciiString, asciiSlice); +} + +{ + var asciiString = 'hello world'; + var offset = 100; + + var sliceA = b.slice(offset, offset + asciiString.length); + var sliceB = b.slice(offset, offset + asciiString.length); + for (var i = 0; i < asciiString.length; i++) { + assert.equal(sliceA[i], sliceB[i]); + } +} + +// UTF-8 slice test + +var utf8String = '¡hέlló wôrld!'; +var offset = 100; + +b.write(utf8String, 0, Buffer.byteLength(utf8String), 'utf8'); +var utf8Slice = b.toString('utf8', 0, Buffer.byteLength(utf8String)); +assert.equal(utf8String, utf8Slice); + +var written = b.write(utf8String, offset, 'utf8'); +assert.equal(Buffer.byteLength(utf8String), written); +utf8Slice = b.toString('utf8', offset, offset + Buffer.byteLength(utf8String)); +assert.equal(utf8String, utf8Slice); + +var sliceA = b.slice(offset, offset + Buffer.byteLength(utf8String)); +var sliceB = b.slice(offset, offset + Buffer.byteLength(utf8String)); +for (var i = 0; i < Buffer.byteLength(utf8String); i++) { + assert.equal(sliceA[i], sliceB[i]); +} + +{ + var slice = b.slice(100, 150); + assert.equal(50, slice.length); + for (var i = 0; i < 50; i++) { + assert.equal(b[100 + i], slice[i]); + } +} + +{ + // make sure only top level parent propagates from allocPool + var b = new Buffer(5); + var c = b.slice(0, 4); + var d = c.slice(0, 2); + assert.equal(b.parent, c.parent); + assert.equal(b.parent, d.parent); +} + +{ + // also from a non-pooled instance + var b = new SlowBuffer(5); + var c = b.slice(0, 4); + var d = c.slice(0, 2); + assert.equal(c.parent, d.parent); +} + +{ + // Bug regression test + var testValue = '\u00F6\u65E5\u672C\u8A9E'; // ö日本語 + var buffer = new Buffer(32); + var size = buffer.write(testValue, 0, 'utf8'); +// console.log('bytes written to buffer: ' + size); + var slice = buffer.toString('utf8', 0, size); + assert.equal(slice, testValue); +} + +{ + // Test triple slice + var a = new Buffer(8); + for (var i = 0; i < 8; i++) a[i] = i; + var b = a.slice(4, 8); + assert.equal(4, b[0]); + assert.equal(5, b[1]); + assert.equal(6, b[2]); + assert.equal(7, b[3]); + var c = b.slice(2, 4); + assert.equal(6, c[0]); + assert.equal(7, c[1]); +} + +{ + var d = new Buffer([23, 42, 255]); + assert.equal(d.length, 3); + assert.equal(d[0], 23); + assert.equal(d[1], 42); + assert.equal(d[2], 255); + assert.deepStrictEqual(d, new Buffer(d)); +} + +{ + var e = new Buffer('über'); +// console.error('uber: \'%s\'', e.toString()); + assert.deepStrictEqual(e, new Buffer([195, 188, 98, 101, 114])); +} + +{ + var f = new Buffer('über', 'ascii'); +// console.error('f.length: %d (should be 4)', f.length); + assert.deepStrictEqual(f, new Buffer([252, 98, 101, 114])); +} + +['ucs2', 'ucs-2', 'utf16le', 'utf-16le'].forEach(function(encoding) { + { + var f = new Buffer('über', encoding); +// console.error('f.length: %d (should be 8)', f.length); + assert.deepStrictEqual(f, new Buffer([252, 0, 98, 0, 101, 0, 114, 0])); + } + + { + var f = new Buffer('привет', encoding); +// console.error('f.length: %d (should be 12)', f.length); + var expected = new Buffer([63, 4, 64, 4, 56, 4, 50, 4, 53, 4, 66, 4]); + assert.deepStrictEqual(f, expected); + assert.equal(f.toString(encoding), 'привет'); + } + + { + var f = new Buffer([0, 0, 0, 0, 0]); + assert.equal(f.length, 5); + var size = f.write('あいうえお', encoding); +// console.error('bytes written to buffer: %d (should be 4)', size); + assert.equal(size, 4); + assert.deepStrictEqual(f, new Buffer([0x42, 0x30, 0x44, 0x30, 0x00])); + } +}); + +{ + var f = new Buffer('\uD83D\uDC4D', 'utf-16le'); // THUMBS UP SIGN (U+1F44D) + assert.equal(f.length, 4); + assert.deepStrictEqual(f, new Buffer('3DD84DDC', 'hex')); +} + + +var arrayIsh = {0: 0, 1: 1, 2: 2, 3: 3, length: 4}; +var g = new Buffer(arrayIsh); +assert.deepStrictEqual(g, new Buffer([0, 1, 2, 3])); +var strArrayIsh = {0: '0', 1: '1', 2: '2', 3: '3', length: 4}; +g = new Buffer(strArrayIsh); +assert.deepStrictEqual(g, new Buffer([0, 1, 2, 3])); + + +// +// Test toString('base64') +// +assert.equal('TWFu', (new Buffer('Man')).toString('base64')); + +{ + // test that regular and URL-safe base64 both work + var expected = [0xff, 0xff, 0xbe, 0xff, 0xef, 0xbf, 0xfb, 0xef, 0xff]; + assert.deepStrictEqual(Buffer('//++/++/++//', 'base64'), Buffer(expected)); + assert.deepStrictEqual(Buffer('__--_--_--__', 'base64'), Buffer(expected)); +} + +{ + // big example + var quote = 'Man is distinguished, not only by his reason, but by this ' + + 'singular passion from other animals, which is a lust ' + + 'of the mind, that by a perseverance of delight in the ' + + 'continued and indefatigable generation of knowledge, ' + + 'exceeds the short vehemence of any carnal pleasure.'; + var expected = 'TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb' + + '24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlci' + + 'BhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQ' + + 'gYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu' + + 'dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZ' + + 'GdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm' + + '5hbCBwbGVhc3VyZS4='; + assert.equal(expected, (new Buffer(quote)).toString('base64')); + + var b = new Buffer(1024); + var bytesWritten = b.write(expected, 0, 'base64'); + assert.equal(quote.length, bytesWritten); + assert.equal(quote, b.toString('ascii', 0, quote.length)); + + // check that the base64 decoder ignores whitespace + var expectedWhite = expected.slice(0, 60) + ' \n' + + expected.slice(60, 120) + ' \n' + + expected.slice(120, 180) + ' \n' + + expected.slice(180, 240) + ' \n' + + expected.slice(240, 300) + '\n' + + expected.slice(300, 360) + '\n'; + b = new Buffer(1024); + bytesWritten = b.write(expectedWhite, 0, 'base64'); + assert.equal(quote.length, bytesWritten); + assert.equal(quote, b.toString('ascii', 0, quote.length)); + + // check that the base64 decoder on the constructor works + // even in the presence of whitespace. + b = new Buffer(expectedWhite, 'base64'); + assert.equal(quote.length, b.length); + assert.equal(quote, b.toString('ascii', 0, quote.length)); + + // check that the base64 decoder ignores illegal chars + var expectedIllegal = expected.slice(0, 60) + ' \x80' + + expected.slice(60, 120) + ' \xff' + + expected.slice(120, 180) + ' \x00' + + expected.slice(180, 240) + ' \x98' + + expected.slice(240, 300) + '\x03' + + expected.slice(300, 360); + b = new Buffer(expectedIllegal, 'base64'); + assert.equal(quote.length, b.length); + assert.equal(quote, b.toString('ascii', 0, quote.length)); +} + +assert.equal(new Buffer('', 'base64').toString(), ''); +assert.equal(new Buffer('K', 'base64').toString(), ''); + +// multiple-of-4 with padding +assert.equal(new Buffer('Kg==', 'base64').toString(), '*'); +assert.equal(new Buffer('Kio=', 'base64').toString(), '**'); +assert.equal(new Buffer('Kioq', 'base64').toString(), '***'); +assert.equal(new Buffer('KioqKg==', 'base64').toString(), '****'); +assert.equal(new Buffer('KioqKio=', 'base64').toString(), '*****'); +assert.equal(new Buffer('KioqKioq', 'base64').toString(), '******'); +assert.equal(new Buffer('KioqKioqKg==', 'base64').toString(), '*******'); +assert.equal(new Buffer('KioqKioqKio=', 'base64').toString(), '********'); +assert.equal(new Buffer('KioqKioqKioq', 'base64').toString(), '*********'); +assert.equal(new Buffer('KioqKioqKioqKg==', 'base64').toString(), + '**********'); +assert.equal(new Buffer('KioqKioqKioqKio=', 'base64').toString(), + '***********'); +assert.equal(new Buffer('KioqKioqKioqKioq', 'base64').toString(), + '************'); +assert.equal(new Buffer('KioqKioqKioqKioqKg==', 'base64').toString(), + '*************'); +assert.equal(new Buffer('KioqKioqKioqKioqKio=', 'base64').toString(), + '**************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioq', 'base64').toString(), + '***************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKg==', 'base64').toString(), + '****************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKio=', 'base64').toString(), + '*****************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKioq', 'base64').toString(), + '******************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKioqKg==', 'base64').toString(), + '*******************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKioqKio=', 'base64').toString(), + '********************'); + +// no padding, not a multiple of 4 +assert.equal(new Buffer('Kg', 'base64').toString(), '*'); +assert.equal(new Buffer('Kio', 'base64').toString(), '**'); +assert.equal(new Buffer('KioqKg', 'base64').toString(), '****'); +assert.equal(new Buffer('KioqKio', 'base64').toString(), '*****'); +assert.equal(new Buffer('KioqKioqKg', 'base64').toString(), '*******'); +assert.equal(new Buffer('KioqKioqKio', 'base64').toString(), '********'); +assert.equal(new Buffer('KioqKioqKioqKg', 'base64').toString(), '**********'); +assert.equal(new Buffer('KioqKioqKioqKio', 'base64').toString(), '***********'); +assert.equal(new Buffer('KioqKioqKioqKioqKg', 'base64').toString(), + '*************'); +assert.equal(new Buffer('KioqKioqKioqKioqKio', 'base64').toString(), + '**************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKg', 'base64').toString(), + '****************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKio', 'base64').toString(), + '*****************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKioqKg', 'base64').toString(), + '*******************'); +assert.equal(new Buffer('KioqKioqKioqKioqKioqKioqKio', 'base64').toString(), + '********************'); + +// handle padding graciously, multiple-of-4 or not +assert.equal( + new Buffer('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw==', 'base64').length, + 32 +); +assert.equal( + new Buffer('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw=', 'base64').length, + 32 +); +assert.equal( + new Buffer('72INjkR5fchcxk9+VgdGPFJDxUBFR5/rMFsghgxADiw', 'base64').length, + 32 +); +assert.equal( + new Buffer('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg==', 'base64').length, + 31 +); +assert.equal( + new Buffer('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg=', 'base64').length, + 31 +); +assert.equal( + new Buffer('w69jACy6BgZmaFvv96HG6MYksWytuZu3T1FvGnulPg', 'base64').length, + 31 +); + +// This string encodes single '.' character in UTF-16 +var dot = new Buffer('//4uAA==', 'base64'); +assert.equal(dot[0], 0xff); +assert.equal(dot[1], 0xfe); +assert.equal(dot[2], 0x2e); +assert.equal(dot[3], 0x00); +assert.equal(dot.toString('base64'), '//4uAA=='); + +{ + // Writing base64 at a position > 0 should not mangle the result. + // + // https://github.com/joyent/node/issues/402 + var segments = ['TWFkbmVzcz8h', 'IFRoaXM=', 'IGlz', 'IG5vZGUuanMh']; + var b = new Buffer(64); + var pos = 0; + + for (var i = 0; i < segments.length; ++i) { + pos += b.write(segments[i], pos, 'base64'); + } + assert.equal(b.toString('latin1', 0, pos), 'Madness?! This is node.js!'); + assert.equal(b.toString('binary', 0, pos), 'Madness?! This is node.js!'); +} + +// Regression test for https://github.com/nodejs/node/issues/3496. +// assert.equal(Buffer('=bad'.repeat(1e4), 'base64').length, 0); + +{ + // Creating buffers larger than pool size. + var l = Buffer.poolSize + 5; + var s = 'h'.repeat(l); + + var b = new Buffer(s); + + for (var i = 0; i < l; i++) { + assert.equal('h'.charCodeAt(0), b[i]); + } + + var sb = b.toString(); + assert.equal(sb.length, s.length); + assert.equal(sb, s); +} + +{ + // Single argument slice + var b = new Buffer('abcde'); + assert.equal('bcde', b.slice(1).toString()); +} + +// slice(0,0).length === 0 +assert.equal(0, Buffer('hello').slice(0, 0).length); + +// test hex toString +// console.log('Create hex string from buffer'); +var hexb = new Buffer(256); +for (var i = 0; i < 256; i++) { + hexb[i] = i; +} +var hexStr = hexb.toString('hex'); +assert.equal(hexStr, + '000102030405060708090a0b0c0d0e0f' + + '101112131415161718191a1b1c1d1e1f' + + '202122232425262728292a2b2c2d2e2f' + + '303132333435363738393a3b3c3d3e3f' + + '404142434445464748494a4b4c4d4e4f' + + '505152535455565758595a5b5c5d5e5f' + + '606162636465666768696a6b6c6d6e6f' + + '707172737475767778797a7b7c7d7e7f' + + '808182838485868788898a8b8c8d8e8f' + + '909192939495969798999a9b9c9d9e9f' + + 'a0a1a2a3a4a5a6a7a8a9aaabacadaeaf' + + 'b0b1b2b3b4b5b6b7b8b9babbbcbdbebf' + + 'c0c1c2c3c4c5c6c7c8c9cacbcccdcecf' + + 'd0d1d2d3d4d5d6d7d8d9dadbdcdddedf' + + 'e0e1e2e3e4e5e6e7e8e9eaebecedeeef' + + 'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff'); + +// console.log('Create buffer from hex string'); +var hexb2 = new Buffer(hexStr, 'hex'); +for (var i = 0; i < 256; i++) { + assert.equal(hexb2[i], hexb[i]); +} + +// Test single hex character throws TypeError +// - https://github.com/nodejs/node/issues/6770 +assert.throws(function() { + Buffer.from('A', 'hex'); +}, TypeError); + +// Test single base64 char encodes as 0 +// assert.strictEqual(Buffer.from('A', 'base64').length, 0); + +{ + // test an invalid slice end. +// console.log('Try to slice off the end of the buffer'); + var b = new Buffer([1, 2, 3, 4, 5]); + var b2 = b.toString('hex', 1, 10000); + var b3 = b.toString('hex', 1, 5); + var b4 = b.toString('hex', 1); + assert.equal(b2, b3); + assert.equal(b2, b4); +} + +function buildBuffer(data) { + if (Array.isArray(data)) { + var buffer = Buffer(data.length); + data.forEach(function(v, k) { + buffer[k] = v; + }); + return buffer; + } + return null; +} + +var x = buildBuffer([0x81, 0xa3, 0x66, 0x6f, 0x6f, 0xa3, 0x62, 0x61, 0x72]); + +// console.log(x.inspect()); +assert.equal('', x.inspect()); + +{ + var z = x.slice(4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(5, z.length); + assert.equal(0x6f, z[0]); + assert.equal(0xa3, z[1]); + assert.equal(0x62, z[2]); + assert.equal(0x61, z[3]); + assert.equal(0x72, z[4]); +} + +{ + var z = x.slice(0); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(z.length, x.length); +} + +{ + var z = x.slice(0, 4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(4, z.length); + assert.equal(0x81, z[0]); + assert.equal(0xa3, z[1]); +} + +{ + var z = x.slice(0, 9); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(9, z.length); +} + +{ + var z = x.slice(1, 4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(3, z.length); + assert.equal(0xa3, z[0]); +} + +{ + var z = x.slice(2, 4); +// console.log(z.inspect()); +// console.log(z.length); + assert.equal(2, z.length); + assert.equal(0x66, z[0]); + assert.equal(0x6f, z[1]); +} + +assert.equal(0, Buffer('hello').slice(0, 0).length); + +['ucs2', 'ucs-2', 'utf16le', 'utf-16le'].forEach(function(encoding) { + var b = new Buffer(10); + b.write('あいうえお', encoding); + assert.equal(b.toString(encoding), 'あいうえお'); +}); + +{ + // latin1 encoding should write only one byte per character. + var b = Buffer([0xde, 0xad, 0xbe, 0xef]); + var s = String.fromCharCode(0xffff); + b.write(s, 0, 'latin1'); + assert.equal(0xff, b[0]); + assert.equal(0xad, b[1]); + assert.equal(0xbe, b[2]); + assert.equal(0xef, b[3]); + s = String.fromCharCode(0xaaee); + b.write(s, 0, 'latin1'); + assert.equal(0xee, b[0]); + assert.equal(0xad, b[1]); + assert.equal(0xbe, b[2]); + assert.equal(0xef, b[3]); +} + +{ + // Binary encoding should write only one byte per character. + var b = Buffer([0xde, 0xad, 0xbe, 0xef]); + var s = String.fromCharCode(0xffff); + b.write(s, 0, 'binary'); + assert.equal(0xff, b[0]); + assert.equal(0xad, b[1]); + assert.equal(0xbe, b[2]); + assert.equal(0xef, b[3]); + s = String.fromCharCode(0xaaee); + b.write(s, 0, 'binary'); + assert.equal(0xee, b[0]); + assert.equal(0xad, b[1]); + assert.equal(0xbe, b[2]); + assert.equal(0xef, b[3]); +} + +{ + // #1210 Test UTF-8 string includes null character + var buf = new Buffer('\0'); + assert.equal(buf.length, 1); + buf = new Buffer('\0\0'); + assert.equal(buf.length, 2); +} + +{ + var buf = new Buffer(2); + var written = buf.write(''); // 0byte + assert.equal(written, 0); + written = buf.write('\0'); // 1byte (v8 adds null terminator) + assert.equal(written, 1); + written = buf.write('a\0'); // 1byte * 2 + assert.equal(written, 2); + written = buf.write('あ'); // 3bytes + assert.equal(written, 0); + written = buf.write('\0あ'); // 1byte + 3bytes + assert.equal(written, 1); + written = buf.write('\0\0あ'); // 1byte * 2 + 3bytes + assert.equal(written, 2); +} + +{ + var buf = new Buffer(10); + written = buf.write('あいう'); // 3bytes * 3 (v8 adds null terminator) + assert.equal(written, 9); + written = buf.write('あいう\0'); // 3bytes * 3 + 1byte + assert.equal(written, 10); +} + +{ + // #243 Test write() with maxLength + var buf = new Buffer(4); + buf.fill(0xFF); + var written = buf.write('abcd', 1, 2, 'utf8'); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0x61); + assert.equal(buf[2], 0x62); + assert.equal(buf[3], 0xFF); + + buf.fill(0xFF); + written = buf.write('abcd', 1, 4); +// console.log(buf); + assert.equal(written, 3); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0x61); + assert.equal(buf[2], 0x62); + assert.equal(buf[3], 0x63); + + buf.fill(0xFF); + written = buf.write('abcd', 1, 2, 'utf8'); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0x61); + assert.equal(buf[2], 0x62); + assert.equal(buf[3], 0xFF); + + buf.fill(0xFF); + written = buf.write('abcdef', 1, 2, 'hex'); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0xFF); + assert.equal(buf[1], 0xAB); + assert.equal(buf[2], 0xCD); + assert.equal(buf[3], 0xFF); + + ['ucs2', 'ucs-2', 'utf16le', 'utf-16le'].forEach(function(encoding) { + buf.fill(0xFF); + written = buf.write('abcd', 0, 2, encoding); +// console.log(buf); + assert.equal(written, 2); + assert.equal(buf[0], 0x61); + assert.equal(buf[1], 0x00); + assert.equal(buf[2], 0xFF); + assert.equal(buf[3], 0xFF); + }); +} + +{ + // test offset returns are correct + var b = new Buffer(16); + assert.equal(4, b.writeUInt32LE(0, 0)); + assert.equal(6, b.writeUInt16LE(0, 4)); + assert.equal(7, b.writeUInt8(0, 6)); + assert.equal(8, b.writeInt8(0, 7)); + assert.equal(16, b.writeDoubleLE(0, 8)); +} + +{ + // test unmatched surrogates not producing invalid utf8 output + // ef bf bd = utf-8 representation of unicode replacement character + // see https://codereview.chromium.org/121173009/ + var buf = new Buffer('ab\ud800cd', 'utf8'); + assert.equal(buf[0], 0x61); + assert.equal(buf[1], 0x62); + assert.equal(buf[2], 0xef); + assert.equal(buf[3], 0xbf); + assert.equal(buf[4], 0xbd); + assert.equal(buf[5], 0x63); + assert.equal(buf[6], 0x64); +} + +{ + // test for buffer overrun + var buf = new Buffer([0, 0, 0, 0, 0]); // length: 5 + var sub = buf.slice(0, 4); // length: 4 + written = sub.write('12345', 'latin1'); + assert.equal(written, 4); + assert.equal(buf[4], 0); + written = sub.write('12345', 'binary'); + assert.equal(written, 4); + assert.equal(buf[4], 0); +} + +// Check for fractional length args, junk length args, etc. +// https://github.com/joyent/node/issues/1758 + +// Call .fill() first, stops valgrind warning about uninitialized memory reads. +Buffer(3.3).fill().toString(); // throws bad argument error in commit 43cb4ec +assert.equal(Buffer(NaN).length, 0); +assert.equal(Buffer(3.3).length, 3); +assert.equal(Buffer({length: 3.3}).length, 3); +assert.equal(Buffer({length: 'BAM'}).length, 0); + +// Make sure that strings are not coerced to numbers. +assert.equal(Buffer('99').length, 2); +assert.equal(Buffer('13.37').length, 5); + +// Ensure that the length argument is respected. +'ascii utf8 hex base64 latin1 binary'.split(' ').forEach(function(enc) { + assert.equal(Buffer(1).write('aaaaaa', 0, 1, enc), 1); +}); + +{ + // Regression test, guard against buffer overrun in the base64 decoder. + var a = Buffer(3); + var b = Buffer('xxx'); + a.write('aaaaaaaa', 'base64'); + assert.equal(b.toString(), 'xxx'); +} + +// issue GH-3416 +Buffer(Buffer(0), 0, 0); + +[ 'hex', + 'utf8', + 'utf-8', + 'ascii', + 'latin1', + 'binary', + 'base64', + 'ucs2', + 'ucs-2', + 'utf16le', + 'utf-16le' ].forEach(function(enc) { + assert.equal(Buffer.isEncoding(enc), true); + }); + +[ 'utf9', + 'utf-7', + 'Unicode-FTW', + 'new gnu gun' ].forEach(function(enc) { + assert.equal(Buffer.isEncoding(enc), false); + }); + + +// GH-5110 +{ + var buffer = new Buffer('test'); + var string = JSON.stringify(buffer); + + assert.strictEqual(string, '{"type":"Buffer","data":[116,101,115,116]}'); + + assert.deepStrictEqual(buffer, JSON.parse(string, function(key, value) { + return value && value.type === 'Buffer' + ? new Buffer(value.data) + : value; + })); +} + +// issue GH-7849 +{ + var buf = new Buffer('test'); + var json = JSON.stringify(buf); + var obj = JSON.parse(json); + var copy = new Buffer(obj); + + assert(buf.equals(copy)); +} + +// issue GH-4331 +assert.throws(function() { + Buffer(0xFFFFFFFF); +}, RangeError); +assert.throws(function() { + Buffer(0xFFFFFFFFF); +}, RangeError); + +// issue GH-5587 +assert.throws(function() { + var buf = new Buffer(8); + buf.writeFloatLE(0, 5); +}, RangeError); +assert.throws(function() { + var buf = new Buffer(16); + buf.writeDoubleLE(0, 9); +}, RangeError); + + +// attempt to overflow buffers, similar to previous bug in array buffers +assert.throws(function() { + var buf = Buffer(8); + buf.readFloatLE(0xffffffff); +}, RangeError); + +assert.throws(function() { + var buf = Buffer(8); + buf.writeFloatLE(0.0, 0xffffffff); +}, RangeError); + +assert.throws(function() { + var buf = Buffer(8); + buf.readFloatLE(0xffffffff); +}, RangeError); + +assert.throws(function() { + var buf = Buffer(8); + buf.writeFloatLE(0.0, 0xffffffff); +}, RangeError); + + +// ensure negative values can't get past offset +assert.throws(function() { + var buf = Buffer(8); + buf.readFloatLE(-1); +}, RangeError); + +assert.throws(function() { + var buf = Buffer(8); + buf.writeFloatLE(0.0, -1); +}, RangeError); + +assert.throws(function() { + var buf = Buffer(8); + buf.readFloatLE(-1); +}, RangeError); + +assert.throws(function() { + var buf = Buffer(8); + buf.writeFloatLE(0.0, -1); +}, RangeError); + +// offset checks +{ + var buf = new Buffer(0); + + assert.throws(function() { buf.readUInt8(0); }, RangeError); + assert.throws(function() { buf.readInt8(0); }, RangeError); +} + +{ + var buf = new Buffer([0xFF]); + + assert.equal(buf.readUInt8(0), 255); + assert.equal(buf.readInt8(0), -1); +} + +[16, 32].forEach(function(bits) { + var buf = new Buffer(bits / 8 - 1); + + assert.throws(function() { buf['readUInt' + bits + 'BE'](0); }, + RangeError, + 'readUInt' + bits + 'BE'); + + assert.throws(function() { buf['readUInt' + bits + 'LE'](0); }, + RangeError, + 'readUInt' + bits + 'LE'); + + assert.throws(function() { buf['readInt' + bits + 'BE'](0); }, + RangeError, + 'readInt' + bits + 'BE()'); + + assert.throws(function() { buf['readInt' + bits + 'LE'](0); }, + RangeError, + 'readInt' + bits + 'LE()'); +}); + +[16, 32].forEach(function(bits) { + var buf = new Buffer([0xFF, 0xFF, 0xFF, 0xFF]); + + assert.equal(buf['readUInt' + bits + 'BE'](0), + (0xFFFFFFFF >>> (32 - bits))); + + assert.equal(buf['readUInt' + bits + 'LE'](0), + (0xFFFFFFFF >>> (32 - bits))); + + assert.equal(buf['readInt' + bits + 'BE'](0), + (0xFFFFFFFF >> (32 - bits))); + + assert.equal(buf['readInt' + bits + 'LE'](0), + (0xFFFFFFFF >> (32 - bits))); +}); + +// test for common read(U)IntLE/BE +{ + var buf = new Buffer([0x01, 0x02, 0x03, 0x04, 0x05, 0x06]); + + assert.strictEqual(buf.readUIntLE(0, 1), 0x01); + assert.strictEqual(buf.readUIntBE(0, 1), 0x01); + assert.strictEqual(buf.readUIntLE(0, 3), 0x030201); + assert.strictEqual(buf.readUIntBE(0, 3), 0x010203); + assert.strictEqual(buf.readUIntLE(0, 5), 0x0504030201); + assert.strictEqual(buf.readUIntBE(0, 5), 0x0102030405); + assert.strictEqual(buf.readUIntLE(0, 6), 0x060504030201); + assert.strictEqual(buf.readUIntBE(0, 6), 0x010203040506); + assert.strictEqual(buf.readIntLE(0, 1), 0x01); + assert.strictEqual(buf.readIntBE(0, 1), 0x01); + assert.strictEqual(buf.readIntLE(0, 3), 0x030201); + assert.strictEqual(buf.readIntBE(0, 3), 0x010203); + assert.strictEqual(buf.readIntLE(0, 5), 0x0504030201); + assert.strictEqual(buf.readIntBE(0, 5), 0x0102030405); + assert.strictEqual(buf.readIntLE(0, 6), 0x060504030201); + assert.strictEqual(buf.readIntBE(0, 6), 0x010203040506); +} + +// test for common write(U)IntLE/BE +{ + var buf = Buffer(3); + buf.writeUIntLE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x56, 0x34, 0x12]); + assert.equal(buf.readUIntLE(0, 3), 0x123456); + + buf = Buffer(3); + buf.writeUIntBE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56]); + assert.equal(buf.readUIntBE(0, 3), 0x123456); + + buf = Buffer(3); + buf.writeIntLE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x56, 0x34, 0x12]); + assert.equal(buf.readIntLE(0, 3), 0x123456); + + buf = Buffer(3); + buf.writeIntBE(0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56]); + assert.equal(buf.readIntBE(0, 3), 0x123456); + + buf = Buffer(3); + buf.writeIntLE(-0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xaa, 0xcb, 0xed]); + assert.equal(buf.readIntLE(0, 3), -0x123456); + + buf = Buffer(3); + buf.writeIntBE(-0x123456, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xed, 0xcb, 0xaa]); + assert.equal(buf.readIntBE(0, 3), -0x123456); + + buf = Buffer(3); + buf.writeIntLE(-0x123400, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x00, 0xcc, 0xed]); + assert.equal(buf.readIntLE(0, 3), -0x123400); + + buf = Buffer(3); + buf.writeIntBE(-0x123400, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xed, 0xcc, 0x00]); + assert.equal(buf.readIntBE(0, 3), -0x123400); + + buf = Buffer(3); + buf.writeIntLE(-0x120000, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0x00, 0x00, 0xee]); + assert.equal(buf.readIntLE(0, 3), -0x120000); + + buf = Buffer(3); + buf.writeIntBE(-0x120000, 0, 3); + assert.deepStrictEqual(buf.toJSON().data, [0xee, 0x00, 0x00]); + assert.equal(buf.readIntBE(0, 3), -0x120000); + + buf = Buffer(5); + buf.writeUIntLE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x90, 0x78, 0x56, 0x34, 0x12]); + assert.equal(buf.readUIntLE(0, 5), 0x1234567890); + + buf = Buffer(5); + buf.writeUIntBE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56, 0x78, 0x90]); + assert.equal(buf.readUIntBE(0, 5), 0x1234567890); + + buf = Buffer(5); + buf.writeIntLE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x90, 0x78, 0x56, 0x34, 0x12]); + assert.equal(buf.readIntLE(0, 5), 0x1234567890); + + buf = Buffer(5); + buf.writeIntBE(0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x12, 0x34, 0x56, 0x78, 0x90]); + assert.equal(buf.readIntBE(0, 5), 0x1234567890); + + buf = Buffer(5); + buf.writeIntLE(-0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x70, 0x87, 0xa9, 0xcb, 0xed]); + assert.equal(buf.readIntLE(0, 5), -0x1234567890); + + buf = Buffer(5); + buf.writeIntBE(-0x1234567890, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0xed, 0xcb, 0xa9, 0x87, 0x70]); + assert.equal(buf.readIntBE(0, 5), -0x1234567890); + + buf = Buffer(5); + buf.writeIntLE(-0x0012000000, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0x00, 0x00, 0x00, 0xee, 0xff]); + assert.equal(buf.readIntLE(0, 5), -0x0012000000); + + buf = Buffer(5); + buf.writeIntBE(-0x0012000000, 0, 5); + assert.deepStrictEqual(buf.toJSON().data, [0xff, 0xee, 0x00, 0x00, 0x00]); + assert.equal(buf.readIntBE(0, 5), -0x0012000000); +} + +// test Buffer slice +{ + var buf = new Buffer('0123456789'); + assert.equal(buf.slice(-10, 10), '0123456789'); + assert.equal(buf.slice(-20, 10), '0123456789'); + assert.equal(buf.slice(-20, -10), ''); + assert.equal(buf.slice(), '0123456789'); + assert.equal(buf.slice(0), '0123456789'); + assert.equal(buf.slice(0, 0), ''); + assert.equal(buf.slice(undefined), '0123456789'); + assert.equal(buf.slice('foobar'), '0123456789'); + assert.equal(buf.slice(undefined, undefined), '0123456789'); + + assert.equal(buf.slice(2), '23456789'); + assert.equal(buf.slice(5), '56789'); + assert.equal(buf.slice(10), ''); + assert.equal(buf.slice(5, 8), '567'); + assert.equal(buf.slice(8, -1), '8'); + assert.equal(buf.slice(-10), '0123456789'); + assert.equal(buf.slice(0, -9), '0'); + assert.equal(buf.slice(0, -10), ''); + assert.equal(buf.slice(0, -1), '012345678'); + assert.equal(buf.slice(2, -2), '234567'); + assert.equal(buf.slice(0, 65536), '0123456789'); + assert.equal(buf.slice(65536, 0), ''); + assert.equal(buf.slice(-5, -8), ''); + assert.equal(buf.slice(-5, -3), '56'); + assert.equal(buf.slice(-10, 10), '0123456789'); + for (var i = 0, s = buf.toString(); i < buf.length; ++i) { + assert.equal(buf.slice(i), s.slice(i)); + assert.equal(buf.slice(0, i), s.slice(0, i)); + assert.equal(buf.slice(-i), s.slice(-i)); + assert.equal(buf.slice(0, -i), s.slice(0, -i)); + } + + var utf16Buf = new Buffer('0123456789', 'utf16le'); + assert.deepStrictEqual(utf16Buf.slice(0, 6), Buffer('012', 'utf16le')); + + assert.equal(buf.slice('0', '1'), '0'); + assert.equal(buf.slice('-5', '10'), '56789'); + assert.equal(buf.slice('-10', '10'), '0123456789'); + assert.equal(buf.slice('-10', '-5'), '01234'); + assert.equal(buf.slice('-10', '-0'), ''); + assert.equal(buf.slice('111'), ''); + assert.equal(buf.slice('0', '-111'), ''); + + // try to slice a zero length Buffer + // see https://github.com/joyent/node/issues/5881 + SlowBuffer(0).slice(0, 1); +} + +// Regression test for #5482: should throw but not assert in C++ land. +assert.throws(function() { + Buffer('', 'buffer'); +}, TypeError); + +// Regression test for #6111. Constructing a buffer from another buffer +// should a) work, and b) not corrupt the source buffer. +{ + var a = [0]; + for (var i = 0; i < 7; ++i) a = a.concat(a); + a = a.map(function(_, i) { return i; }); + var b = Buffer(a); + var c = Buffer(b); + assert.strictEqual(b.length, a.length); + assert.strictEqual(c.length, a.length); + for (var i = 0, k = a.length; i < k; ++i) { + assert.strictEqual(a[i], i); + assert.strictEqual(b[i], i); + assert.strictEqual(c[i], i); + } +} + + +assert.throws(function() { + new Buffer((-1 >>> 0) + 1); +}, RangeError); + +assert.throws(function() { + SlowBuffer((-1 >>> 0) + 1); +}, RangeError); + +if (common.hasCrypto) { + // Test truncation after decode + // var crypto = require('crypto'); + + var b1 = new Buffer('YW55=======', 'base64'); + var b2 = new Buffer('YW55', 'base64'); + + assert.equal( + 1 /*crypto.createHash('sha1').update(b1).digest('hex')*/, + 1 /*crypto.createHash('sha1').update(b2).digest('hex')*/ + ); +} else { + common.skip('missing crypto'); +} + +// Test Compare +{ + var b = new Buffer(1).fill('a'); + var c = new Buffer(1).fill('c'); + var d = new Buffer(2).fill('aa'); + + assert.equal(b.compare(c), -1); + assert.equal(c.compare(d), 1); + assert.equal(d.compare(b), 1); + assert.equal(b.compare(d), -1); + assert.equal(b.compare(b), 0); + + assert.equal(Buffer.compare(b, c), -1); + assert.equal(Buffer.compare(c, d), 1); + assert.equal(Buffer.compare(d, b), 1); + assert.equal(Buffer.compare(b, d), -1); + assert.equal(Buffer.compare(c, c), 0); + + assert.equal(Buffer.compare(Buffer(0), Buffer(0)), 0); + assert.equal(Buffer.compare(Buffer(0), Buffer(1)), -1); + assert.equal(Buffer.compare(Buffer(1), Buffer(0)), 1); +} + +assert.throws(function() { + var b = Buffer(1); + Buffer.compare(b, 'abc'); +}); + +assert.throws(function() { + var b = Buffer(1); + Buffer.compare('abc', b); +}); + +assert.throws(function() { + var b = Buffer(1); + b.compare('abc'); +}); + +// Test Equals +{ + var b = new Buffer(5).fill('abcdf'); + var c = new Buffer(5).fill('abcdf'); + var d = new Buffer(5).fill('abcde'); + var e = new Buffer(6).fill('abcdef'); + + assert.ok(b.equals(c)); + assert.ok(!c.equals(d)); + assert.ok(!d.equals(e)); + assert.ok(d.equals(d)); +} + +assert.throws(function() { + var b = Buffer(1); + b.equals('abc'); +}); + +// Regression test for https://github.com/nodejs/node/issues/649. +assert.throws(function() { Buffer(1422561062959).toString('utf8'); }); + +var ps = Buffer.poolSize; +Buffer.poolSize = 0; +assert.equal(Buffer(1).parent, undefined); +Buffer.poolSize = ps; + +// Test Buffer.copy() segfault +assert.throws(function() { + Buffer(10).copy(); +}); + +var regErrorMsg = new RegExp('First argument must be a string, Buffer, ' + + 'ArrayBuffer, Array, or array-like object.'); + +assert.throws(function() { + new Buffer(); +}, regErrorMsg); + +assert.throws(function() { + new Buffer(null); +}, regErrorMsg); + + +// Test prototype getters don't throw +assert.equal(Buffer.prototype.parent, undefined); +assert.equal(Buffer.prototype.offset, undefined); +assert.equal(SlowBuffer.prototype.parent, undefined); +assert.equal(SlowBuffer.prototype.offset, undefined); + +{ + // Test that large negative Buffer length inputs don't affect the pool offset. + // Use the fromArrayLike() variant here because it's more lenient + // about its input and passes the length directly to allocate(). + assert.deepStrictEqual(Buffer({ length: -Buffer.poolSize }), Buffer.from('')); + assert.deepStrictEqual(Buffer({ length: -100 }), Buffer.from('')); + + // Check pool offset after that by trying to write string into the pool. + assert.doesNotThrow(() => Buffer.from('abc')); +} + + +// Test failed or zero-sized Buffer allocations not affecting typed arrays +{ + var zeroArray = new Uint32Array(10).fill(0); + var sizes = [1e10, 0, 0.1, -1, 'a', undefined, null, NaN]; + var allocators = [ + Buffer, + SlowBuffer, + Buffer.alloc, + Buffer.allocUnsafe, + Buffer.allocUnsafeSlow + ]; + for (var allocator of allocators) { + for (var size of sizes) { + try { + allocator(size); + } catch (e) { + assert.deepStrictEqual(new Uint32Array(10), zeroArray); + } + } + } +} + +// Test that large negative Buffer length inputs throw errors. +assert.throws(() => Buffer(-Buffer.poolSize), + '"size" argument must not be negative'); +assert.throws(() => Buffer(-100), + '"size" argument must not be negative'); +assert.throws(() => Buffer(-1), + '"size" argument must not be negative'); + diff --git a/justdanceonline-main/node_modules/buffer/test/slice.js b/justdanceonline-main/node_modules/buffer/test/slice.js new file mode 100644 index 0000000000000000000000000000000000000000..25c111c80b9c9ae197191ac262f613c597dafa49 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/slice.js @@ -0,0 +1,37 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('modifying buffer created by .slice() modifies original memory', function (t) { + if (!B.TYPED_ARRAY_SUPPORT) return t.end() + + var buf1 = new B(26) + for (var i = 0; i < 26; i++) { + buf1[i] = i + 97 // 97 is ASCII a + } + + var buf2 = buf1.slice(0, 3) + t.equal(buf2.toString('ascii', 0, buf2.length), 'abc') + + buf2[0] = '!'.charCodeAt(0) + t.equal(buf1.toString('ascii', 0, buf2.length), '!bc') + + t.end() +}) + +test('modifying parent buffer modifies .slice() buffer\'s memory', function (t) { + if (!B.TYPED_ARRAY_SUPPORT) return t.end() + + var buf1 = new B(26) + for (var i = 0; i < 26; i++) { + buf1[i] = i + 97 // 97 is ASCII a + } + + var buf2 = buf1.slice(0, 3) + t.equal(buf2.toString('ascii', 0, buf2.length), 'abc') + + buf1[0] = '!'.charCodeAt(0) + t.equal(buf2.toString('ascii', 0, buf2.length), '!bc') + + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/static.js b/justdanceonline-main/node_modules/buffer/test/static.js new file mode 100644 index 0000000000000000000000000000000000000000..4de900bc79ff9b6b1d8b592277a7be5762273832 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/static.js @@ -0,0 +1,17 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('Buffer.isEncoding', function (t) { + t.equal(B.isEncoding('HEX'), true) + t.equal(B.isEncoding('hex'), true) + t.equal(B.isEncoding('bad'), false) + t.end() +}) + +test('Buffer.isBuffer', function (t) { + t.equal(B.isBuffer(new B('hey', 'utf8')), true) + t.equal(B.isBuffer(new B([1, 2, 3], 'utf8')), true) + t.equal(B.isBuffer('hey'), false) + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/to-string.js b/justdanceonline-main/node_modules/buffer/test/to-string.js new file mode 100644 index 0000000000000000000000000000000000000000..2950d4d0d027b85308f031fea3fff31f4ea953f0 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/to-string.js @@ -0,0 +1,233 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('utf8 buffer to base64', function (t) { + t.equal( + new B('Ձאab', 'utf8').toString('base64'), + '1YHXkGFi' + ) + t.end() +}) + +test('utf8 buffer to hex', function (t) { + t.equal( + new B('Ձאab', 'utf8').toString('hex'), + 'd581d7906162' + ) + t.end() +}) + +test('utf8 to utf8', function (t) { + t.equal( + new B('öäüõÖÄÜÕ', 'utf8').toString('utf8'), + 'öäüõÖÄÜÕ' + ) + t.end() +}) + +test('utf16le to utf16', function (t) { + t.equal( + new B(new B('abcd', 'utf8').toString('utf16le'), 'utf16le').toString('utf8'), + 'abcd' + ) + t.end() +}) + +test('utf16le to hex', function (t) { + t.equal( + new B('abcd', 'utf16le').toString('hex'), + '6100620063006400' + ) + t.end() +}) + +test('ascii buffer to base64', function (t) { + t.equal( + new B('123456!@#$%^', 'ascii').toString('base64'), + 'MTIzNDU2IUAjJCVe' + ) + t.end() +}) + +test('ascii buffer to hex', function (t) { + t.equal( + new B('123456!@#$%^', 'ascii').toString('hex'), + '31323334353621402324255e' + ) + t.end() +}) + +test('base64 buffer to utf8', function (t) { + t.equal( + new B('1YHXkGFi', 'base64').toString('utf8'), + 'Ձאab' + ) + t.end() +}) + +test('hex buffer to utf8', function (t) { + t.equal( + new B('d581d7906162', 'hex').toString('utf8'), + 'Ձאab' + ) + t.end() +}) + +test('base64 buffer to ascii', function (t) { + t.equal( + new B('MTIzNDU2IUAjJCVe', 'base64').toString('ascii'), + '123456!@#$%^' + ) + t.end() +}) + +test('hex buffer to ascii', function (t) { + t.equal( + new B('31323334353621402324255e', 'hex').toString('ascii'), + '123456!@#$%^' + ) + t.end() +}) + +test('base64 buffer to binary', function (t) { + t.equal( + new B('MTIzNDU2IUAjJCVe', 'base64').toString('binary'), + '123456!@#$%^' + ) + t.end() +}) + +test('hex buffer to binary', function (t) { + t.equal( + new B('31323334353621402324255e', 'hex').toString('binary'), + '123456!@#$%^' + ) + t.end() +}) + +test('utf8 to binary', function (t) { + /* jshint -W100 */ + t.equal( + new B('öäüõÖÄÜÕ', 'utf8').toString('binary'), + 'öäüõÖÄÜÕ' + ) + /* jshint +W100 */ + t.end() +}) + +test('utf8 replacement chars (1 byte sequence)', function (t) { + t.equal( + new B([ 0x80 ]).toString(), + '\uFFFD' + ) + t.equal( + new B([ 0x7F ]).toString(), + '\u007F' + ) + t.end() +}) + +test('utf8 replacement chars (2 byte sequences)', function (t) { + t.equal( + new B([ 0xC7 ]).toString(), + '\uFFFD' + ) + t.equal( + new B([ 0xC7, 0xB1 ]).toString(), + '\u01F1' + ) + t.equal( + new B([ 0xC0, 0xB1 ]).toString(), + '\uFFFD\uFFFD' + ) + t.equal( + new B([ 0xC1, 0xB1 ]).toString(), + '\uFFFD\uFFFD' + ) + t.end() +}) + +test('utf8 replacement chars (3 byte sequences)', function (t) { + t.equal( + new B([ 0xE0 ]).toString(), + '\uFFFD' + ) + t.equal( + new B([ 0xE0, 0xAC ]).toString(), + '\uFFFD\uFFFD' + ) + t.equal( + new B([ 0xE0, 0xAC, 0xB9 ]).toString(), + '\u0B39' + ) + t.end() +}) + +test('utf8 replacement chars (4 byte sequences)', function (t) { + t.equal( + new B([ 0xF4 ]).toString(), + '\uFFFD' + ) + t.equal( + new B([ 0xF4, 0x8F ]).toString(), + '\uFFFD\uFFFD' + ) + t.equal( + new B([ 0xF4, 0x8F, 0x80 ]).toString(), + '\uFFFD\uFFFD\uFFFD' + ) + t.equal( + new B([ 0xF4, 0x8F, 0x80, 0x84 ]).toString(), + '\uDBFC\uDC04' + ) + t.equal( + new B([ 0xFF ]).toString(), + '\uFFFD' + ) + t.equal( + new B([ 0xFF, 0x8F, 0x80, 0x84 ]).toString(), + '\uFFFD\uFFFD\uFFFD\uFFFD' + ) + t.end() +}) + +test('utf8 replacement chars on 256 random bytes', function (t) { + t.equal( + new B([ 152, 130, 206, 23, 243, 238, 197, 44, 27, 86, 208, 36, 163, 184, 164, 21, 94, 242, 178, 46, 25, 26, 253, 178, 72, 147, 207, 112, 236, 68, 179, 190, 29, 83, 239, 147, 125, 55, 143, 19, 157, 68, 157, 58, 212, 224, 150, 39, 128, 24, 94, 225, 120, 121, 75, 192, 112, 19, 184, 142, 203, 36, 43, 85, 26, 147, 227, 139, 242, 186, 57, 78, 11, 102, 136, 117, 180, 210, 241, 92, 3, 215, 54, 167, 249, 1, 44, 225, 146, 86, 2, 42, 68, 21, 47, 238, 204, 153, 216, 252, 183, 66, 222, 255, 15, 202, 16, 51, 134, 1, 17, 19, 209, 76, 238, 38, 76, 19, 7, 103, 249, 5, 107, 137, 64, 62, 170, 57, 16, 85, 179, 193, 97, 86, 166, 196, 36, 148, 138, 193, 210, 69, 187, 38, 242, 97, 195, 219, 252, 244, 38, 1, 197, 18, 31, 246, 53, 47, 134, 52, 105, 72, 43, 239, 128, 203, 73, 93, 199, 75, 222, 220, 166, 34, 63, 236, 11, 212, 76, 243, 171, 110, 78, 39, 205, 204, 6, 177, 233, 212, 243, 0, 33, 41, 122, 118, 92, 252, 0, 157, 108, 120, 70, 137, 100, 223, 243, 171, 232, 66, 126, 111, 142, 33, 3, 39, 117, 27, 107, 54, 1, 217, 227, 132, 13, 166, 3, 73, 53, 127, 225, 236, 134, 219, 98, 214, 125, 148, 24, 64, 142, 111, 231, 194, 42, 150, 185, 10, 182, 163, 244, 19, 4, 59, 135, 16 ]).toString(), + '\uFFFD\uFFFD\uFFFD\u0017\uFFFD\uFFFD\uFFFD\u002C\u001B\u0056\uFFFD\u0024\uFFFD\uFFFD\uFFFD\u0015\u005E\uFFFD\uFFFD\u002E\u0019\u001A\uFFFD\uFFFD\u0048\uFFFD\uFFFD\u0070\uFFFD\u0044\uFFFD\uFFFD\u001D\u0053\uFFFD\uFFFD\u007D\u0037\uFFFD\u0013\uFFFD\u0044\uFFFD\u003A\uFFFD\uFFFD\uFFFD\u0027\uFFFD\u0018\u005E\uFFFD\u0078\u0079\u004B\uFFFD\u0070\u0013\uFFFD\uFFFD\uFFFD\u0024\u002B\u0055\u001A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0039\u004E\u000B\u0066\uFFFD\u0075\uFFFD\uFFFD\uFFFD\u005C\u0003\uFFFD\u0036\uFFFD\uFFFD\u0001\u002C\uFFFD\uFFFD\u0056\u0002\u002A\u0044\u0015\u002F\uFFFD\u0319\uFFFD\uFFFD\uFFFD\u0042\uFFFD\uFFFD\u000F\uFFFD\u0010\u0033\uFFFD\u0001\u0011\u0013\uFFFD\u004C\uFFFD\u0026\u004C\u0013\u0007\u0067\uFFFD\u0005\u006B\uFFFD\u0040\u003E\uFFFD\u0039\u0010\u0055\uFFFD\uFFFD\u0061\u0056\uFFFD\uFFFD\u0024\uFFFD\uFFFD\uFFFD\uFFFD\u0045\uFFFD\u0026\uFFFD\u0061\uFFFD\uFFFD\uFFFD\uFFFD\u0026\u0001\uFFFD\u0012\u001F\uFFFD\u0035\u002F\uFFFD\u0034\u0069\u0048\u002B\uFFFD\uFFFD\uFFFD\u0049\u005D\uFFFD\u004B\uFFFD\u0726\u0022\u003F\uFFFD\u000B\uFFFD\u004C\uFFFD\uFFFD\u006E\u004E\u0027\uFFFD\uFFFD\u0006\uFFFD\uFFFD\uFFFD\uFFFD\u0000\u0021\u0029\u007A\u0076\u005C\uFFFD\u0000\uFFFD\u006C\u0078\u0046\uFFFD\u0064\uFFFD\uFFFD\uFFFD\uFFFD\u0042\u007E\u006F\uFFFD\u0021\u0003\u0027\u0075\u001B\u006B\u0036\u0001\uFFFD\uFFFD\uFFFD\u000D\uFFFD\u0003\u0049\u0035\u007F\uFFFD\uFFFD\uFFFD\uFFFD\u0062\uFFFD\u007D\uFFFD\u0018\u0040\uFFFD\u006F\uFFFD\uFFFD\u002A\uFFFD\uFFFD\u000A\uFFFD\uFFFD\uFFFD\u0013\u0004\u003B\uFFFD\u0010' + ) + t.end() +}) + +test('utf8 replacement chars for anything in the surrogate pair range', function (t) { + t.equal( + new B([ 0xED, 0x9F, 0xBF ]).toString(), + '\uD7FF' + ) + t.equal( + new B([ 0xED, 0xA0, 0x80 ]).toString(), + '\uFFFD\uFFFD\uFFFD' + ) + t.equal( + new B([ 0xED, 0xBE, 0x8B ]).toString(), + '\uFFFD\uFFFD\uFFFD' + ) + t.equal( + new B([ 0xED, 0xBF, 0xBF ]).toString(), + '\uFFFD\uFFFD\uFFFD' + ) + t.equal( + new B([ 0xEE, 0x80, 0x80 ]).toString(), + '\uE000' + ) + t.end() +}) + +test('utf8 don\'t replace the replacement char', function (t) { + t.equal( + new B('\uFFFD').toString(), + '\uFFFD' + ) + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/write.js b/justdanceonline-main/node_modules/buffer/test/write.js new file mode 100644 index 0000000000000000000000000000000000000000..584180634af26ce98bae52d38b2943e749818984 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/write.js @@ -0,0 +1,131 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') +var isnan = require('is-nan') + +test('buffer.write string should get parsed as number', function (t) { + var b = new B(64) + b.writeUInt16LE('1003', 0) + t.equal(b.readUInt16LE(0), 1003) + t.end() +}) + +test('buffer.writeUInt8 a fractional number will get Math.floored', function (t) { + // Some extra work is necessary to make this test pass with the Object implementation + + var b = new B(1) + b.writeInt8(5.5, 0) + t.equal(b[0], 5) + t.end() +}) + +test('writeUint8 with a negative number throws', function (t) { + var buf = new B(1) + + t.throws(function () { + buf.writeUInt8(-3, 0) + }) + + t.end() +}) + +test('hex of write{Uint,Int}{8,16,32}{LE,BE}', function (t) { + t.plan(2 * (2 * 2 * 2 + 2)) + var hex = [ + '03', '0300', '0003', '03000000', '00000003', + 'fd', 'fdff', 'fffd', 'fdffffff', 'fffffffd' + ] + var reads = [ 3, 3, 3, 3, 3, -3, -3, -3, -3, -3 ] + var xs = ['UInt', 'Int'] + var ys = [8, 16, 32] + for (var i = 0; i < xs.length; i++) { + var x = xs[i] + for (var j = 0; j < ys.length; j++) { + var y = ys[j] + var endianesses = (y === 8) ? [''] : ['LE', 'BE'] + for (var k = 0; k < endianesses.length; k++) { + var z = endianesses[k] + + var v1 = new B(y / 8) + var writefn = 'write' + x + y + z + var val = (x === 'Int') ? -3 : 3 + v1[writefn](val, 0) + t.equal( + v1.toString('hex'), + hex.shift() + ) + var readfn = 'read' + x + y + z + t.equal( + v1[readfn](0), + reads.shift() + ) + } + } + } + t.end() +}) + +test('hex of write{Uint,Int}{8,16,32}{LE,BE} with overflow', function (t) { + if (!B.TYPED_ARRAY_SUPPORT) { + t.pass('object impl: skipping overflow test') + t.end() + return + } + + t.plan(3 * (2 * 2 * 2 + 2)) + var hex = [ + '', '03', '00', '030000', '000000', + '', 'fd', 'ff', 'fdffff', 'ffffff' + ] + var reads = [ + undefined, 3, 0, NaN, 0, + undefined, 253, -256, 16777213, -256 + ] + var xs = ['UInt', 'Int'] + var ys = [8, 16, 32] + for (var i = 0; i < xs.length; i++) { + var x = xs[i] + for (var j = 0; j < ys.length; j++) { + var y = ys[j] + var endianesses = (y === 8) ? [''] : ['LE', 'BE'] + for (var k = 0; k < endianesses.length; k++) { + var z = endianesses[k] + + var v1 = new B(y / 8 - 1) + var next = new B(4) + next.writeUInt32BE(0, 0) + var writefn = 'write' + x + y + z + var val = (x === 'Int') ? -3 : 3 + v1[writefn](val, 0, true) + t.equal( + v1.toString('hex'), + hex.shift() + ) + // check that nothing leaked to next buffer. + t.equal(next.readUInt32BE(0), 0) + // check that no bytes are read from next buffer. + next.writeInt32BE(~0, 0) + var readfn = 'read' + x + y + z + var r = reads.shift() + if (isnan(r)) t.pass('equal') + else t.equal(v1[readfn](0, true), r) + } + } + } + t.end() +}) +test('large values do not improperly roll over (ref #80)', function (t) { + var nums = [-25589992, -633756690, -898146932] + var out = new B(12) + out.fill(0) + out.writeInt32BE(nums[0], 0) + var newNum = out.readInt32BE(0) + t.equal(nums[0], newNum) + out.writeInt32BE(nums[1], 4) + newNum = out.readInt32BE(4) + t.equal(nums[1], newNum) + out.writeInt32BE(nums[2], 8) + newNum = out.readInt32BE(8) + t.equal(nums[2], newNum) + t.end() +}) diff --git a/justdanceonline-main/node_modules/buffer/test/write_infinity.js b/justdanceonline-main/node_modules/buffer/test/write_infinity.js new file mode 100644 index 0000000000000000000000000000000000000000..17d606a1cf9abd16fe9a3ba87e12d32f61c1dd29 --- /dev/null +++ b/justdanceonline-main/node_modules/buffer/test/write_infinity.js @@ -0,0 +1,45 @@ +if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false +var B = require('../').Buffer +var test = require('tape') + +test('write/read Infinity as a float', function (t) { + var buf = new B(4) + t.equal(buf.writeFloatBE(Infinity, 0), 4) + t.equal(buf.readFloatBE(0), Infinity) + t.end() +}) + +test('write/read -Infinity as a float', function (t) { + var buf = new B(4) + t.equal(buf.writeFloatBE(-Infinity, 0), 4) + t.equal(buf.readFloatBE(0), -Infinity) + t.end() +}) + +test('write/read Infinity as a double', function (t) { + var buf = new B(8) + t.equal(buf.writeDoubleBE(Infinity, 0), 8) + t.equal(buf.readDoubleBE(0), Infinity) + t.end() +}) + +test('write/read -Infinity as a double', function (t) { + var buf = new B(8) + t.equal(buf.writeDoubleBE(-Infinity, 0), 8) + t.equal(buf.readDoubleBE(0), -Infinity) + t.end() +}) + +test('write/read float greater than max', function (t) { + var buf = new B(4) + t.equal(buf.writeFloatBE(4e38, 0), 4) + t.equal(buf.readFloatBE(0), Infinity) + t.end() +}) + +test('write/read float less than min', function (t) { + var buf = new B(4) + t.equal(buf.writeFloatBE(-4e40, 0), 4) + t.equal(buf.readFloatBE(0), -Infinity) + t.end() +}) diff --git a/justdanceonline-main/node_modules/bytes/History.md b/justdanceonline-main/node_modules/bytes/History.md new file mode 100644 index 0000000000000000000000000000000000000000..cf6a5bb9cf0cb1dd3f5a94d5dde1797ef8188be8 --- /dev/null +++ b/justdanceonline-main/node_modules/bytes/History.md @@ -0,0 +1,87 @@ +3.1.0 / 2019-01-22 +================== + + * Add petabyte (`pb`) support + +3.0.0 / 2017-08-31 +================== + + * Change "kB" to "KB" in format output + * Remove support for Node.js 0.6 + * Remove support for ComponentJS + +2.5.0 / 2017-03-24 +================== + + * Add option "unit" + +2.4.0 / 2016-06-01 +================== + + * Add option "unitSeparator" + +2.3.0 / 2016-02-15 +================== + + * Drop partial bytes on all parsed units + * Fix non-finite numbers to `.format` to return `null` + * Fix parsing byte string that looks like hex + * perf: hoist regular expressions + +2.2.0 / 2015-11-13 +================== + + * add option "decimalPlaces" + * add option "fixedDecimals" + +2.1.0 / 2015-05-21 +================== + + * add `.format` export + * add `.parse` export + +2.0.2 / 2015-05-20 +================== + + * remove map recreation + * remove unnecessary object construction + +2.0.1 / 2015-05-07 +================== + + * fix browserify require + * remove node.extend dependency + +2.0.0 / 2015-04-12 +================== + + * add option "case" + * add option "thousandsSeparator" + * return "null" on invalid parse input + * support proper round-trip: bytes(bytes(num)) === num + * units no longer case sensitive when parsing + +1.0.0 / 2014-05-05 +================== + + * add negative support. fixes #6 + +0.3.0 / 2014-03-19 +================== + + * added terabyte support + +0.2.1 / 2013-04-01 +================== + + * add .component + +0.2.0 / 2012-10-28 +================== + + * bytes(200).should.eql('200b') + +0.1.0 / 2012-07-04 +================== + + * add bytes to string conversion [yields] diff --git a/justdanceonline-main/node_modules/bytes/LICENSE b/justdanceonline-main/node_modules/bytes/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..63e95a96338a608c218a7ef5805629878aaa951f --- /dev/null +++ b/justdanceonline-main/node_modules/bytes/LICENSE @@ -0,0 +1,23 @@ +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015 Jed Watson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/bytes/Readme.md b/justdanceonline-main/node_modules/bytes/Readme.md new file mode 100644 index 0000000000000000000000000000000000000000..6ad1ec6e2a57a90493527881b969952b4d4ec105 --- /dev/null +++ b/justdanceonline-main/node_modules/bytes/Readme.md @@ -0,0 +1,126 @@ +# Bytes utility + +[![NPM Version][npm-image]][npm-url] +[![NPM Downloads][downloads-image]][downloads-url] +[![Build Status][travis-image]][travis-url] +[![Test Coverage][coveralls-image]][coveralls-url] + +Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. + +## Installation + +This is a [Node.js](https://nodejs.org/en/) module available through the +[npm registry](https://www.npmjs.com/). Installation is done using the +[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): + +```bash +$ npm install bytes +``` + +## Usage + +```js +var bytes = require('bytes'); +``` + +#### bytes.format(number value, [options]): string|null + +Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is + rounded. + +**Arguments** + +| Name | Type | Description | +|---------|----------|--------------------| +| value | `number` | Value in bytes | +| options | `Object` | Conversion options | + +**Options** + +| Property | Type | Description | +|-------------------|--------|-----------------------------------------------------------------------------------------| +| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | +| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | +| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `.`... Default value to `''`. | +| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | +| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | + +**Returns** + +| Name | Type | Description | +|---------|------------------|-------------------------------------------------| +| results | `string`|`null` | Return null upon error. String value otherwise. | + +**Example** + +```js +bytes(1024); +// output: '1KB' + +bytes(1000); +// output: '1000B' + +bytes(1000, {thousandsSeparator: ' '}); +// output: '1 000B' + +bytes(1024 * 1.7, {decimalPlaces: 0}); +// output: '2KB' + +bytes(1024, {unitSeparator: ' '}); +// output: '1 KB' + +``` + +#### bytes.parse(string|number value): number|null + +Parse the string value into an integer in bytes. If no unit is given, or `value` +is a number, it is assumed the value is in bytes. + +Supported units and abbreviations are as follows and are case-insensitive: + + * `b` for bytes + * `kb` for kilobytes + * `mb` for megabytes + * `gb` for gigabytes + * `tb` for terabytes + * `pb` for petabytes + +The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. + +**Arguments** + +| Name | Type | Description | +|---------------|--------|--------------------| +| value | `string`|`number` | String to parse, or number in bytes. | + +**Returns** + +| Name | Type | Description | +|---------|-------------|-------------------------| +| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | + +**Example** + +```js +bytes('1KB'); +// output: 1024 + +bytes('1024'); +// output: 1024 + +bytes(1024); +// output: 1KB +``` + +## License + +[MIT](LICENSE) + +[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master +[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master +[downloads-image]: https://badgen.net/npm/dm/bytes +[downloads-url]: https://npmjs.org/package/bytes +[npm-image]: https://badgen.net/npm/node/bytes +[npm-url]: https://npmjs.org/package/bytes +[travis-image]: https://badgen.net/travis/visionmedia/bytes.js/master +[travis-url]: https://travis-ci.org/visionmedia/bytes.js diff --git a/justdanceonline-main/node_modules/bytes/index.js b/justdanceonline-main/node_modules/bytes/index.js new file mode 100644 index 0000000000000000000000000000000000000000..4975bfb0c9f6f67e151c22dab71a733b7a6c2d8d --- /dev/null +++ b/justdanceonline-main/node_modules/bytes/index.js @@ -0,0 +1,162 @@ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ + +'use strict'; + +/** + * Module exports. + * @public + */ + +module.exports = bytes; +module.exports.format = format; +module.exports.parse = parse; + +/** + * Module variables. + * @private + */ + +var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + +var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + +var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5), +}; + +var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + +/** + * Convert the given value in bytes into a string or parse to string to an integer in bytes. + * + * @param {string|number} value + * @param {{ + * case: [string], + * decimalPlaces: [number] + * fixedDecimals: [boolean] + * thousandsSeparator: [string] + * unitSeparator: [string] + * }} [options] bytes options. + * + * @returns {string|number|null} + */ + +function bytes(value, options) { + if (typeof value === 'string') { + return parse(value); + } + + if (typeof value === 'number') { + return format(value, options); + } + + return null; +} + +/** + * Format the given value in bytes into a string. + * + * If the value is negative, it is kept as such. If it is a float, + * it is rounded. + * + * @param {number} value + * @param {object} [options] + * @param {number} [options.decimalPlaces=2] + * @param {number} [options.fixedDecimals=false] + * @param {string} [options.thousandsSeparator=] + * @param {string} [options.unit=] + * @param {string} [options.unitSeparator=] + * + * @returns {string|null} + * @public + */ + +function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + + var mag = Math.abs(value); + var thousandsSeparator = (options && options.thousandsSeparator) || ''; + var unitSeparator = (options && options.unitSeparator) || ''; + var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = (options && options.unit) || ''; + + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = 'PB'; + } else if (mag >= map.tb) { + unit = 'TB'; + } else if (mag >= map.gb) { + unit = 'GB'; + } else if (mag >= map.mb) { + unit = 'MB'; + } else if (mag >= map.kb) { + unit = 'KB'; + } else { + unit = 'B'; + } + } + + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, '$1'); + } + + if (thousandsSeparator) { + str = str.replace(formatThousandsRegExp, thousandsSeparator); + } + + return str + unitSeparator + unit; +} + +/** + * Parse the string value into an integer in bytes. + * + * If no unit is given, it is assumed the value is in bytes. + * + * @param {number|string} val + * + * @returns {number|null} + * @public + */ + +function parse(val) { + if (typeof val === 'number' && !isNaN(val)) { + return val; + } + + if (typeof val !== 'string') { + return null; + } + + // Test if the string passed is valid + var results = parseRegExp.exec(val); + var floatValue; + var unit = 'b'; + + if (!results) { + // Nothing could be extracted from the given string + floatValue = parseInt(val, 10); + unit = 'b' + } else { + // Retrieve the value and the unit + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + + return Math.floor(map[unit] * floatValue); +} diff --git a/justdanceonline-main/node_modules/bytes/package.json b/justdanceonline-main/node_modules/bytes/package.json new file mode 100644 index 0000000000000000000000000000000000000000..72ee63d03b597307b8fcecd7250fe7a3a772ab46 --- /dev/null +++ b/justdanceonline-main/node_modules/bytes/package.json @@ -0,0 +1,41 @@ +{ + "name": "bytes", + "description": "Utility to parse a string bytes to bytes and vice-versa", + "version": "3.1.0", + "author": "TJ Holowaychuk (http://tjholowaychuk.com)", + "contributors": [ + "Jed Watson ", + "Théo FIDRY " + ], + "license": "MIT", + "keywords": [ + "byte", + "bytes", + "utility", + "parse", + "parser", + "convert", + "converter" + ], + "repository": "visionmedia/bytes.js", + "devDependencies": { + "eslint": "5.12.1", + "mocha": "5.2.0", + "nyc": "13.1.0" + }, + "files": [ + "History.md", + "LICENSE", + "Readme.md", + "index.js" + ], + "engines": { + "node": ">= 0.8" + }, + "scripts": { + "lint": "eslint .", + "test": "mocha --check-leaks --reporter spec", + "test-ci": "nyc --reporter=text npm test", + "test-cov": "nyc --reporter=html --reporter=text npm test" + } +} diff --git a/justdanceonline-main/node_modules/chalk/index.d.ts b/justdanceonline-main/node_modules/chalk/index.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..9cd88f38beea8708b25ee3f797ebc453dffa4fb0 --- /dev/null +++ b/justdanceonline-main/node_modules/chalk/index.d.ts @@ -0,0 +1,415 @@ +/** +Basic foreground colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type ForegroundColor = + | 'black' + | 'red' + | 'green' + | 'yellow' + | 'blue' + | 'magenta' + | 'cyan' + | 'white' + | 'gray' + | 'grey' + | 'blackBright' + | 'redBright' + | 'greenBright' + | 'yellowBright' + | 'blueBright' + | 'magentaBright' + | 'cyanBright' + | 'whiteBright'; + +/** +Basic background colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type BackgroundColor = + | 'bgBlack' + | 'bgRed' + | 'bgGreen' + | 'bgYellow' + | 'bgBlue' + | 'bgMagenta' + | 'bgCyan' + | 'bgWhite' + | 'bgGray' + | 'bgGrey' + | 'bgBlackBright' + | 'bgRedBright' + | 'bgGreenBright' + | 'bgYellowBright' + | 'bgBlueBright' + | 'bgMagentaBright' + | 'bgCyanBright' + | 'bgWhiteBright'; + +/** +Basic colors. + +[More colors here.](https://github.com/chalk/chalk/blob/master/readme.md#256-and-truecolor-color-support) +*/ +declare type Color = ForegroundColor | BackgroundColor; + +declare type Modifiers = + | 'reset' + | 'bold' + | 'dim' + | 'italic' + | 'underline' + | 'inverse' + | 'hidden' + | 'strikethrough' + | 'visible'; + +declare namespace chalk { + /** + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + type Level = 0 | 1 | 2 | 3; + + interface Options { + /** + Specify the color support for Chalk. + + By default, color support is automatically detected based on the environment. + + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + level?: Level; + } + + /** + Return a new Chalk instance. + */ + type Instance = new (options?: Options) => Chalk; + + /** + Detect whether the terminal supports color. + */ + interface ColorSupport { + /** + The color level used by Chalk. + */ + level: Level; + + /** + Return whether Chalk supports basic 16 colors. + */ + hasBasic: boolean; + + /** + Return whether Chalk supports ANSI 256 colors. + */ + has256: boolean; + + /** + Return whether Chalk supports Truecolor 16 million colors. + */ + has16m: boolean; + } + + interface ChalkFunction { + /** + Use a template string. + + @remarks Template literals are unsupported for nested calls (see [issue #341](https://github.com/chalk/chalk/issues/341)) + + @example + ``` + import chalk = require('chalk'); + + log(chalk` + CPU: {red ${cpu.totalPercent}%} + RAM: {green ${ram.used / ram.total * 100}%} + DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} + `); + ``` + + @example + ``` + import chalk = require('chalk'); + + log(chalk.red.bgBlack`2 + 3 = {bold ${2 + 3}}`) + ``` + */ + (text: TemplateStringsArray, ...placeholders: unknown[]): string; + + (...text: unknown[]): string; + } + + interface Chalk extends ChalkFunction { + /** + Return a new Chalk instance. + */ + Instance: Instance; + + /** + The color support for Chalk. + + By default, color support is automatically detected based on the environment. + + Levels: + - `0` - All colors disabled. + - `1` - Basic 16 colors support. + - `2` - ANSI 256 colors support. + - `3` - Truecolor 16 million colors support. + */ + level: Level; + + /** + Use HEX value to set text color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.hex('#DEADED'); + ``` + */ + hex(color: string): Chalk; + + /** + Use keyword color value to set text color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.keyword('orange'); + ``` + */ + keyword(color: string): Chalk; + + /** + Use RGB values to set text color. + */ + rgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set text color. + */ + hsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set text color. + */ + hsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set text color. + */ + hwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set text color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + */ + ansi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(index: number): Chalk; + + /** + Use HEX value to set background color. + + @param color - Hexadecimal value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgHex('#DEADED'); + ``` + */ + bgHex(color: string): Chalk; + + /** + Use keyword color value to set background color. + + @param color - Keyword value representing the desired color. + + @example + ``` + import chalk = require('chalk'); + + chalk.bgKeyword('orange'); + ``` + */ + bgKeyword(color: string): Chalk; + + /** + Use RGB values to set background color. + */ + bgRgb(red: number, green: number, blue: number): Chalk; + + /** + Use HSL values to set background color. + */ + bgHsl(hue: number, saturation: number, lightness: number): Chalk; + + /** + Use HSV values to set background color. + */ + bgHsv(hue: number, saturation: number, value: number): Chalk; + + /** + Use HWB values to set background color. + */ + bgHwb(hue: number, whiteness: number, blackness: number): Chalk; + + /** + Use a [Select/Set Graphic Rendition](https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters) (SGR) [color code number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit) to set background color. + + 30 <= code && code < 38 || 90 <= code && code < 98 + For example, 31 for red, 91 for redBright. + Use the foreground code, not the background code (for example, not 41, nor 101). + */ + bgAnsi(code: number): Chalk; + + /** + Use a [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set background color. + */ + bgAnsi256(index: number): Chalk; + + /** + Modifier: Resets the current color chain. + */ + readonly reset: Chalk; + + /** + Modifier: Make text bold. + */ + readonly bold: Chalk; + + /** + Modifier: Emitting only a small amount of light. + */ + readonly dim: Chalk; + + /** + Modifier: Make text italic. (Not widely supported) + */ + readonly italic: Chalk; + + /** + Modifier: Make text underline. (Not widely supported) + */ + readonly underline: Chalk; + + /** + Modifier: Inverse background and foreground colors. + */ + readonly inverse: Chalk; + + /** + Modifier: Prints the text, but makes it invisible. + */ + readonly hidden: Chalk; + + /** + Modifier: Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: Chalk; + + /** + Modifier: Prints the text only when Chalk has a color support level > 0. + Can be useful for things that are purely cosmetic. + */ + readonly visible: Chalk; + + readonly black: Chalk; + readonly red: Chalk; + readonly green: Chalk; + readonly yellow: Chalk; + readonly blue: Chalk; + readonly magenta: Chalk; + readonly cyan: Chalk; + readonly white: Chalk; + + /* + Alias for `blackBright`. + */ + readonly gray: Chalk; + + /* + Alias for `blackBright`. + */ + readonly grey: Chalk; + + readonly blackBright: Chalk; + readonly redBright: Chalk; + readonly greenBright: Chalk; + readonly yellowBright: Chalk; + readonly blueBright: Chalk; + readonly magentaBright: Chalk; + readonly cyanBright: Chalk; + readonly whiteBright: Chalk; + + readonly bgBlack: Chalk; + readonly bgRed: Chalk; + readonly bgGreen: Chalk; + readonly bgYellow: Chalk; + readonly bgBlue: Chalk; + readonly bgMagenta: Chalk; + readonly bgCyan: Chalk; + readonly bgWhite: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGray: Chalk; + + /* + Alias for `bgBlackBright`. + */ + readonly bgGrey: Chalk; + + readonly bgBlackBright: Chalk; + readonly bgRedBright: Chalk; + readonly bgGreenBright: Chalk; + readonly bgYellowBright: Chalk; + readonly bgBlueBright: Chalk; + readonly bgMagentaBright: Chalk; + readonly bgCyanBright: Chalk; + readonly bgWhiteBright: Chalk; + } +} + +/** +Main Chalk object that allows to chain styles together. +Call the last one as a method with a string argument. +Order doesn't matter, and later styles take precedent in case of a conflict. +This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`. +*/ +declare const chalk: chalk.Chalk & chalk.ChalkFunction & { + supportsColor: chalk.ColorSupport | false; + Level: chalk.Level; + Color: Color; + ForegroundColor: ForegroundColor; + BackgroundColor: BackgroundColor; + Modifiers: Modifiers; + stderr: chalk.Chalk & {supportsColor: chalk.ColorSupport | false}; +}; + +export = chalk; diff --git a/justdanceonline-main/node_modules/chalk/license b/justdanceonline-main/node_modules/chalk/license new file mode 100644 index 0000000000000000000000000000000000000000..e7af2f77107d73046421ef56c4684cbfdd3c1e89 --- /dev/null +++ b/justdanceonline-main/node_modules/chalk/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/justdanceonline-main/node_modules/chalk/package.json b/justdanceonline-main/node_modules/chalk/package.json new file mode 100644 index 0000000000000000000000000000000000000000..c2d63f67e5e955c6d49095d6e4dd20f7b2c9e790 --- /dev/null +++ b/justdanceonline-main/node_modules/chalk/package.json @@ -0,0 +1,68 @@ +{ + "name": "chalk", + "version": "4.1.1", + "description": "Terminal string styling done right", + "license": "MIT", + "repository": "chalk/chalk", + "funding": "https://github.com/chalk/chalk?sponsor=1", + "main": "source", + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && nyc ava && tsd", + "bench": "matcha benchmark.js" + }, + "files": [ + "source", + "index.d.ts" + ], + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "devDependencies": { + "ava": "^2.4.0", + "coveralls": "^3.0.7", + "execa": "^4.0.0", + "import-fresh": "^3.1.0", + "matcha": "^0.7.0", + "nyc": "^15.0.0", + "resolve-from": "^5.0.0", + "tsd": "^0.7.4", + "xo": "^0.28.2" + }, + "xo": { + "rules": { + "unicorn/prefer-string-slice": "off", + "unicorn/prefer-includes": "off", + "@typescript-eslint/member-ordering": "off", + "no-redeclare": "off", + "unicorn/string-content": "off", + "unicorn/better-regex": "off" + } + } +} diff --git a/justdanceonline-main/node_modules/chalk/readme.md b/justdanceonline-main/node_modules/chalk/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..851259216bc193bc211a8d005017cc213ac67337 --- /dev/null +++ b/justdanceonline-main/node_modules/chalk/readme.md @@ -0,0 +1,335 @@ +

+
+
+ Chalk +
+
+
+

+ +> Terminal string styling done right + +[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) [![run on repl.it](https://repl.it/badge/github/chalk/chalk)](https://repl.it/github/chalk/chalk) + + + +
+ +--- + +
+ +--- + +
+ +## Highlights + +- Expressive API +- Highly performant +- Ability to nest styles +- [256/Truecolor color support](#256-and-truecolor-color-support) +- Auto-detects color support +- Doesn't extend `String.prototype` +- Clean and focused +- Actively maintained +- [Used by ~50,000 packages](https://www.npmjs.com/browse/depended/chalk) as of January 1, 2020 + +## Install + +```console +$ npm install chalk +``` + +## Usage + +```js +const chalk = require('chalk'); + +console.log(chalk.blue('Hello world!')); +``` + +Chalk comes with an easy to use composable API where you just chain and nest the styles you want. + +```js +const chalk = require('chalk'); +const log = console.log; + +// Combine styled and normal strings +log(chalk.blue('Hello') + ' World' + chalk.red('!')); + +// Compose multiple styles using the chainable API +log(chalk.blue.bgRed.bold('Hello world!')); + +// Pass in multiple arguments +log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); + +// Nest styles +log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); + +// Nest styles of the same type even (color, underline, background) +log(chalk.green( + 'I am a green line ' + + chalk.blue.underline.bold('with a blue substring') + + ' that becomes green again!' +)); + +// ES2015 template literal +log(` +CPU: ${chalk.red('90%')} +RAM: ${chalk.green('40%')} +DISK: ${chalk.yellow('70%')} +`); + +// ES2015 tagged template literal +log(chalk` +CPU: {red ${cpu.totalPercent}%} +RAM: {green ${ram.used / ram.total * 100}%} +DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} +`); + +// Use RGB colors in terminal emulators that support it. +log(chalk.keyword('orange')('Yay for orange colored text!')); +log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); +log(chalk.hex('#DEADED').bold('Bold gray!')); +``` + +Easily define your own themes: + +```js +const chalk = require('chalk'); + +const error = chalk.bold.red; +const warning = chalk.keyword('orange'); + +console.log(error('Error!')); +console.log(warning('Warning!')); +``` + +Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): + +```js +const name = 'Sindre'; +console.log(chalk.green('Hello %s'), name); +//=> 'Hello Sindre' +``` + +## API + +### chalk.` +
+ userType: + Required!
+ userType = {{userType}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+ + + it('should initialize to model', function() { + var userType = element(by.binding('userType')); + var valid = element(by.binding('myForm.input.$valid')); + + expect(userType.getText()).toContain('guest'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + var userType = element(by.binding('userType')); + var valid = element(by.binding('myForm.input.$valid')); + var userInput = element(by.model('userType')); + + userInput.clear(); + userInput.sendKeys(''); + + expect(userType.getText()).toEqual('userType ='); + expect(valid.getText()).toContain('false'); + }); + + + * + */ + var formDirectiveFactory = function(isNgForm) { + return ['$timeout', function($timeout) { + var formDirective = { + name: 'form', + restrict: isNgForm ? 'EAC' : 'E', + controller: FormController, + compile: function() { + return { + pre: function(scope, formElement, attr, controller) { + if (!attr.action) { + // we can't use jq events because if a form is destroyed during submission the default + // action is not prevented. see #1238 + // + // IE 9 is not affected because it doesn't fire a submit event and try to do a full + // page reload if the form was destroyed by submission of the form via a click handler + // on a button in the form. Looks like an IE9 specific bug. + var preventDefaultListener = function(event) { + event.preventDefault ? + event.preventDefault() : + event.returnValue = false; // IE + }; + + addEventListenerFn(formElement[0], 'submit', preventDefaultListener); + + // unregister the preventDefault listener so that we don't not leak memory but in a + // way that will achieve the prevention of the default action. + formElement.on('$destroy', function() { + $timeout(function() { + removeEventListenerFn(formElement[0], 'submit', preventDefaultListener); + }, 0, false); + }); + } + + var parentFormCtrl = formElement.parent().controller('form'), + alias = attr.name || attr.ngForm; + + if (alias) { + setter(scope, alias, controller, alias); + } + if (parentFormCtrl) { + formElement.on('$destroy', function() { + parentFormCtrl.$removeControl(controller); + if (alias) { + setter(scope, alias, undefined, alias); + } + extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards + }); + } + } + }; + } + }; + + return formDirective; + }]; + }; + + var formDirective = formDirectiveFactory(); + var ngFormDirective = formDirectiveFactory(true); + + /* global VALID_CLASS: true, + INVALID_CLASS: true, + PRISTINE_CLASS: true, + DIRTY_CLASS: true + */ + + var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/; + var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; + var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/; + + var inputType = { + + /** + * @ngdoc input + * @name input[text] + * + * @description + * Standard HTML text input with angular data binding, inherited by most of the `input` elements. + * + * *NOTE* Not every feature offered is available for all input types. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Adds `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. + * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the + * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for + * patterns defined as scope expressions. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + * This parameter is ignored for input[type=password] controls, which will never trim the + * input. + * + * @example + + + +
+ Single word: + + Required! + + Single word only! + + text = {{text}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var text = element(by.binding('text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('guest'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if multi word', function() { + input.clear(); + input.sendKeys('hello world'); + + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'text': textInputType, + + + /** + * @ngdoc input + * @name input[number] + * + * @description + * Text input with number validation and transformation. Sets the `number` validation + * error if not a valid number. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. + * @param {string=} max Sets the `max` validation error key if the value entered is greater than `max`. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. + * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the + * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for + * patterns defined as scope expressions. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ Number: + + Required! + + Not valid number! + value = {{value}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var value = element(by.binding('value')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('value')); + + it('should initialize to model', function() { + expect(value.getText()).toContain('12'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if over max', function() { + input.clear(); + input.sendKeys('123'); + expect(value.getText()).toEqual('value ='); + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'number': numberInputType, + + + /** + * @ngdoc input + * @name input[url] + * + * @description + * Text input with URL validation. Sets the `url` validation error key if the content is not a + * valid URL. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. + * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the + * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for + * patterns defined as scope expressions. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ URL: + + Required! + + Not valid url! + text = {{text}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ myForm.$error.url = {{!!myForm.$error.url}}
+
+
+ + var text = element(by.binding('text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('http://google.com'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if not url', function() { + input.clear(); + input.sendKeys('box'); + + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'url': urlInputType, + + + /** + * @ngdoc input + * @name input[email] + * + * @description + * Text input with email validation. Sets the `email` validation error key if not a valid email + * address. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. + * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the + * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for + * patterns defined as scope expressions. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ Email: + + Required! + + Not valid email! + text = {{text}}
+ myForm.input.$valid = {{myForm.input.$valid}}
+ myForm.input.$error = {{myForm.input.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ myForm.$error.email = {{!!myForm.$error.email}}
+
+
+ + var text = element(by.binding('text')); + var valid = element(by.binding('myForm.input.$valid')); + var input = element(by.model('text')); + + it('should initialize to model', function() { + expect(text.getText()).toContain('me@example.com'); + expect(valid.getText()).toContain('true'); + }); + + it('should be invalid if empty', function() { + input.clear(); + input.sendKeys(''); + expect(text.getText()).toEqual('text ='); + expect(valid.getText()).toContain('false'); + }); + + it('should be invalid if not email', function() { + input.clear(); + input.sendKeys('xxx'); + + expect(valid.getText()).toContain('false'); + }); + +
+ */ + 'email': emailInputType, + + + /** + * @ngdoc input + * @name input[radio] + * + * @description + * HTML radio button. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string} value The value to which the expression should be set when selected. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {string} ngValue Angular expression which sets the value to which the expression should + * be set when selected. + * + * @example + + + +
+ Red
+ Green
+ Blue
+ color = {{color | json}}
+
+ Note that `ng-value="specialValue"` sets radio item's value to be the value of `$scope.specialValue`. +
+ + it('should change state', function() { + var color = element(by.binding('color')); + + expect(color.getText()).toContain('blue'); + + element.all(by.model('color')).get(0).click(); + + expect(color.getText()).toContain('red'); + }); + +
+ */ + 'radio': radioInputType, + + + /** + * @ngdoc input + * @name input[checkbox] + * + * @description + * HTML checkbox. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} ngTrueValue The value to which the expression should be set when selected. + * @param {string=} ngFalseValue The value to which the expression should be set when not selected. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * + * @example + + + +
+ Value1:
+ Value2:
+ value1 = {{value1}}
+ value2 = {{value2}}
+
+
+ + it('should change state', function() { + var value1 = element(by.binding('value1')); + var value2 = element(by.binding('value2')); + + expect(value1.getText()).toContain('true'); + expect(value2.getText()).toContain('YES'); + + element(by.model('value1')).click(); + element(by.model('value2')).click(); + + expect(value1.getText()).toContain('false'); + expect(value2.getText()).toContain('NO'); + }); + +
+ */ + 'checkbox': checkboxInputType, + + 'hidden': noop, + 'button': noop, + 'submit': noop, + 'reset': noop, + 'file': noop + }; + + // A helper function to call $setValidity and return the value / undefined, + // a pattern that is repeated a lot in the input validation logic. + function validate(ctrl, validatorName, validity, value) { + ctrl.$setValidity(validatorName, validity); + return validity ? value : undefined; + } + + function testFlags(validity, flags) { + var i, flag; + if (flags) { + for (i = 0; i < flags.length; ++i) { + flag = flags[i]; + if (validity[flag]) { + return true; + } + } + } + return false; + } + + // Pass validity so that behaviour can be mocked easier. + function addNativeHtml5Validators(ctrl, validatorName, badFlags, ignoreFlags, validity) { + if (isObject(validity)) { + ctrl.$$hasNativeValidators = true; + var validator = function(value) { + // Don't overwrite previous validation, don't consider valueMissing to apply (ng-required can + // perform the required validation) + if (!ctrl.$error[validatorName] && + !testFlags(validity, ignoreFlags) && + testFlags(validity, badFlags)) { + ctrl.$setValidity(validatorName, false); + return; + } + return value; + }; + ctrl.$parsers.push(validator); + } + } + + function textInputType(scope, element, attr, ctrl, $sniffer, $browser) { + var validity = element.prop(VALIDITY_STATE_PROPERTY); + var placeholder = element[0].placeholder, + noevent = {}; + var type = lowercase(element[0].type); + ctrl.$$validityState = validity; + + // In composition mode, users are still inputing intermediate text buffer, + // hold the listener until composition is done. + // More about composition events: https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent + if (!$sniffer.android) { + var composing = false; + + element.on('compositionstart', function(data) { + composing = true; + }); + + element.on('compositionend', function() { + composing = false; + listener(); + }); + } + + var listener = function(ev) { + if (composing) return; + var value = element.val(); + + // IE (11 and under) seem to emit an 'input' event if the placeholder value changes. + // We don't want to dirty the value when this happens, so we abort here. Unfortunately, + // IE also sends input events for other non-input-related things, (such as focusing on a + // form control), so this change is not entirely enough to solve this. + if (msie && (ev || noevent).type === 'input' && element[0].placeholder !== placeholder) { + placeholder = element[0].placeholder; + return; + } + + // By default we will trim the value + // If the attribute ng-trim exists we will avoid trimming + // If input type is 'password', the value is never trimmed + if (type !== 'password' && (toBoolean(attr.ngTrim || 'T'))) { + value = trim(value); + } + + // If a control is suffering from bad input, browsers discard its value, so it may be + // necessary to revalidate even if the control's value is the same empty value twice in + // a row. + var revalidate = validity && ctrl.$$hasNativeValidators; + if (ctrl.$viewValue !== value || (value === '' && revalidate)) { + if (scope.$$phase) { + ctrl.$setViewValue(value); + } else { + scope.$apply(function() { + ctrl.$setViewValue(value); + }); + } + } + }; + + // if the browser does support "input" event, we are fine - except on IE9 which doesn't fire the + // input event on backspace, delete or cut + if ($sniffer.hasEvent('input')) { + element.on('input', listener); + } else { + var timeout; + + var deferListener = function() { + if (!timeout) { + timeout = $browser.defer(function() { + listener(); + timeout = null; + }); + } + }; + + element.on('keydown', function(event) { + var key = event.keyCode; + + // ignore + // command modifiers arrows + if (key === 91 || (15 < key && key < 19) || (37 <= key && key <= 40)) return; + + deferListener(); + }); + + // if user modifies input value using context menu in IE, we need "paste" and "cut" events to catch it + if ($sniffer.hasEvent('paste')) { + element.on('paste cut', deferListener); + } + } + + // if user paste into input using mouse on older browser + // or form autocomplete on newer browser, we need "change" event to catch it + element.on('change', listener); + + ctrl.$render = function() { + element.val(ctrl.$isEmpty(ctrl.$viewValue) ? '' : ctrl.$viewValue); + }; + + // pattern validator + var pattern = attr.ngPattern, + patternValidator, + match; + + if (pattern) { + var validateRegex = function(regexp, value) { + return validate(ctrl, 'pattern', ctrl.$isEmpty(value) || regexp.test(value), value); + }; + match = pattern.match(/^\/(.*)\/([gim]*)$/); + if (match) { + pattern = new RegExp(match[1], match[2]); + patternValidator = function(value) { + return validateRegex(pattern, value); + }; + } else { + patternValidator = function(value) { + var patternObj = scope.$eval(pattern); + + if (!patternObj || !patternObj.test) { + throw minErr('ngPattern')('noregexp', + 'Expected {0} to be a RegExp but was {1}. Element: {2}', pattern, + patternObj, startingTag(element)); + } + return validateRegex(patternObj, value); + }; + } + + ctrl.$formatters.push(patternValidator); + ctrl.$parsers.push(patternValidator); + } + + // min length validator + if (attr.ngMinlength) { + var minlength = int(attr.ngMinlength); + var minLengthValidator = function(value) { + return validate(ctrl, 'minlength', ctrl.$isEmpty(value) || value.length >= minlength, value); + }; + + ctrl.$parsers.push(minLengthValidator); + ctrl.$formatters.push(minLengthValidator); + } + + // max length validator + if (attr.ngMaxlength) { + var maxlength = int(attr.ngMaxlength); + var maxLengthValidator = function(value) { + return validate(ctrl, 'maxlength', ctrl.$isEmpty(value) || value.length <= maxlength, value); + }; + + ctrl.$parsers.push(maxLengthValidator); + ctrl.$formatters.push(maxLengthValidator); + } + } + + var numberBadFlags = ['badInput']; + + function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) { + textInputType(scope, element, attr, ctrl, $sniffer, $browser); + + ctrl.$parsers.push(function(value) { + var empty = ctrl.$isEmpty(value); + if (empty || NUMBER_REGEXP.test(value)) { + ctrl.$setValidity('number', true); + return value === '' ? null : (empty ? value : parseFloat(value)); + } else { + ctrl.$setValidity('number', false); + return undefined; + } + }); + + addNativeHtml5Validators(ctrl, 'number', numberBadFlags, null, ctrl.$$validityState); + + ctrl.$formatters.push(function(value) { + return ctrl.$isEmpty(value) ? '' : '' + value; + }); + + if (attr.min) { + var minValidator = function(value) { + var min = parseFloat(attr.min); + return validate(ctrl, 'min', ctrl.$isEmpty(value) || value >= min, value); + }; + + ctrl.$parsers.push(minValidator); + ctrl.$formatters.push(minValidator); + } + + if (attr.max) { + var maxValidator = function(value) { + var max = parseFloat(attr.max); + return validate(ctrl, 'max', ctrl.$isEmpty(value) || value <= max, value); + }; + + ctrl.$parsers.push(maxValidator); + ctrl.$formatters.push(maxValidator); + } + + ctrl.$formatters.push(function(value) { + return validate(ctrl, 'number', ctrl.$isEmpty(value) || isNumber(value), value); + }); + } + + function urlInputType(scope, element, attr, ctrl, $sniffer, $browser) { + textInputType(scope, element, attr, ctrl, $sniffer, $browser); + + var urlValidator = function(value) { + return validate(ctrl, 'url', ctrl.$isEmpty(value) || URL_REGEXP.test(value), value); + }; + + ctrl.$formatters.push(urlValidator); + ctrl.$parsers.push(urlValidator); + } + + function emailInputType(scope, element, attr, ctrl, $sniffer, $browser) { + textInputType(scope, element, attr, ctrl, $sniffer, $browser); + + var emailValidator = function(value) { + return validate(ctrl, 'email', ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value), value); + }; + + ctrl.$formatters.push(emailValidator); + ctrl.$parsers.push(emailValidator); + } + + function radioInputType(scope, element, attr, ctrl) { + // make the name unique, if not defined + if (isUndefined(attr.name)) { + element.attr('name', nextUid()); + } + + element.on('click', function() { + if (element[0].checked) { + scope.$apply(function() { + ctrl.$setViewValue(attr.value); + }); + } + }); + + ctrl.$render = function() { + var value = attr.value; + element[0].checked = (value == ctrl.$viewValue); + }; + + attr.$observe('value', ctrl.$render); + } + + function checkboxInputType(scope, element, attr, ctrl) { + var trueValue = attr.ngTrueValue, + falseValue = attr.ngFalseValue; + + if (!isString(trueValue)) trueValue = true; + if (!isString(falseValue)) falseValue = false; + + element.on('click', function() { + scope.$apply(function() { + ctrl.$setViewValue(element[0].checked); + }); + }); + + ctrl.$render = function() { + element[0].checked = ctrl.$viewValue; + }; + + // Override the standard `$isEmpty` because a value of `false` means empty in a checkbox. + ctrl.$isEmpty = function(value) { + return value !== trueValue; + }; + + ctrl.$formatters.push(function(value) { + return value === trueValue; + }); + + ctrl.$parsers.push(function(value) { + return value ? trueValue : falseValue; + }); + } + + + /** + * @ngdoc directive + * @name textarea + * @restrict E + * + * @description + * HTML textarea element control with angular data-binding. The data-binding and validation + * properties of this element are exactly the same as those of the + * {@link ng.directive:input input element}. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {string=} ngRequired Adds `required` attribute and `required` validation constraint to + * the element when the ngRequired expression evaluates to true. Use `ngRequired` instead of + * `required` when you want to data-bind to the `required` attribute. + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. + * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the + * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for + * patterns defined as scope expressions. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + */ + + + /** + * @ngdoc directive + * @name input + * @restrict E + * + * @description + * HTML input element control with angular data-binding. Input control follows HTML5 input types + * and polyfills the HTML5 validation behavior for older browsers. + * + * *NOTE* Not every feature offered is available for all input types. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} name Property name of the form under which the control is published. + * @param {string=} required Sets `required` validation error key if the value is not entered. + * @param {boolean=} ngRequired Sets `required` attribute if set to true + * @param {number=} ngMinlength Sets `minlength` validation error key if the value is shorter than + * minlength. + * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than + * maxlength. + * @param {string=} ngPattern Sets `pattern` validation error key if the value does not match the + * RegExp pattern expression. Expected value is `/regexp/` for inline patterns or `regexp` for + * patterns defined as scope expressions. + * @param {string=} ngChange Angular expression to be executed when input changes due to user + * interaction with the input element. + * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. + * This parameter is ignored for input[type=password] controls, which will never trim the + * input. + * + * @example + + + +
+
+ User name: + + Required!
+ Last name: + + Too short! + + Too long!
+
+
+ user = {{user}}
+ myForm.userName.$valid = {{myForm.userName.$valid}}
+ myForm.userName.$error = {{myForm.userName.$error}}
+ myForm.lastName.$valid = {{myForm.lastName.$valid}}
+ myForm.lastName.$error = {{myForm.lastName.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+ myForm.$error.minlength = {{!!myForm.$error.minlength}}
+ myForm.$error.maxlength = {{!!myForm.$error.maxlength}}
+
+
+ + var user = element(by.binding('{{user}}')); + var userNameValid = element(by.binding('myForm.userName.$valid')); + var lastNameValid = element(by.binding('myForm.lastName.$valid')); + var lastNameError = element(by.binding('myForm.lastName.$error')); + var formValid = element(by.binding('myForm.$valid')); + var userNameInput = element(by.model('user.name')); + var userLastInput = element(by.model('user.last')); + + it('should initialize to model', function() { + expect(user.getText()).toContain('{"name":"guest","last":"visitor"}'); + expect(userNameValid.getText()).toContain('true'); + expect(formValid.getText()).toContain('true'); + }); + + it('should be invalid if empty when required', function() { + userNameInput.clear(); + userNameInput.sendKeys(''); + + expect(user.getText()).toContain('{"last":"visitor"}'); + expect(userNameValid.getText()).toContain('false'); + expect(formValid.getText()).toContain('false'); + }); + + it('should be valid if empty when min length is set', function() { + userLastInput.clear(); + userLastInput.sendKeys(''); + + expect(user.getText()).toContain('{"name":"guest","last":""}'); + expect(lastNameValid.getText()).toContain('true'); + expect(formValid.getText()).toContain('true'); + }); + + it('should be invalid if less than required min length', function() { + userLastInput.clear(); + userLastInput.sendKeys('xx'); + + expect(user.getText()).toContain('{"name":"guest"}'); + expect(lastNameValid.getText()).toContain('false'); + expect(lastNameError.getText()).toContain('minlength'); + expect(formValid.getText()).toContain('false'); + }); + + it('should be invalid if longer than max length', function() { + userLastInput.clear(); + userLastInput.sendKeys('some ridiculously long name'); + + expect(user.getText()).toContain('{"name":"guest"}'); + expect(lastNameValid.getText()).toContain('false'); + expect(lastNameError.getText()).toContain('maxlength'); + expect(formValid.getText()).toContain('false'); + }); + +
+ */ + var inputDirective = ['$browser', '$sniffer', function($browser, $sniffer) { + return { + restrict: 'E', + require: '?ngModel', + link: function(scope, element, attr, ctrl) { + if (ctrl) { + (inputType[lowercase(attr.type)] || inputType.text)(scope, element, attr, ctrl, $sniffer, + $browser); + } + } + }; + }]; + + var VALID_CLASS = 'ng-valid', + INVALID_CLASS = 'ng-invalid', + PRISTINE_CLASS = 'ng-pristine', + DIRTY_CLASS = 'ng-dirty'; + + /** + * @ngdoc type + * @name ngModel.NgModelController + * + * @property {string} $viewValue Actual string value in the view. + * @property {*} $modelValue The value in the model, that the control is bound to. + * @property {Array.} $parsers Array of functions to execute, as a pipeline, whenever + the control reads value from the DOM. Each function is called, in turn, passing the value + through to the next. The last return value is used to populate the model. + Used to sanitize / convert the value as well as validation. For validation, + the parsers should update the validity state using + {@link ngModel.NgModelController#$setValidity $setValidity()}, + and return `undefined` for invalid values. + + * + * @property {Array.} $formatters Array of functions to execute, as a pipeline, whenever + the model value changes. Each function is called, in turn, passing the value through to the + next. Used to format / convert values for display in the control and validation. + * ```js + * function formatter(value) { + * if (value) { + * return value.toUpperCase(); + * } + * } + * ngModel.$formatters.push(formatter); + * ``` + * + * @property {Array.} $viewChangeListeners Array of functions to execute whenever the + * view value has changed. It is called with no arguments, and its return value is ignored. + * This can be used in place of additional $watches against the model value. + * + * @property {Object} $error An object hash with all errors as keys. + * + * @property {boolean} $pristine True if user has not interacted with the control yet. + * @property {boolean} $dirty True if user has already interacted with the control. + * @property {boolean} $valid True if there is no error. + * @property {boolean} $invalid True if at least one error on the control. + * + * @description + * + * `NgModelController` provides API for the `ng-model` directive. The controller contains + * services for data-binding, validation, CSS updates, and value formatting and parsing. It + * purposefully does not contain any logic which deals with DOM rendering or listening to + * DOM events. Such DOM related logic should be provided by other directives which make use of + * `NgModelController` for data-binding. + * + * ## Custom Control Example + * This example shows how to use `NgModelController` with a custom control to achieve + * data-binding. Notice how different directives (`contenteditable`, `ng-model`, and `required`) + * collaborate together to achieve the desired result. + * + * Note that `contenteditable` is an HTML5 attribute, which tells the browser to let the element + * contents be edited in place by the user. This will not work on older browsers. + * + * We are using the {@link ng.service:$sce $sce} service here and include the {@link ngSanitize $sanitize} + * module to automatically remove "bad" content like inline event listener (e.g. ``). + * However, as we are using `$sce` the model can still decide to to provide unsafe content if it marks + * that content using the `$sce` service. + * + * + + [contenteditable] { + border: 1px solid black; + background-color: white; + min-height: 20px; + } + + .ng-invalid { + border: 1px solid red; + } + + + + angular.module('customControl', ['ngSanitize']). + directive('contenteditable', ['$sce', function($sce) { + return { + restrict: 'A', // only activate on element attribute + require: '?ngModel', // get a hold of NgModelController + link: function(scope, element, attrs, ngModel) { + if(!ngModel) return; // do nothing if no ng-model + + // Specify how UI should be updated + ngModel.$render = function() { + element.html($sce.getTrustedHtml(ngModel.$viewValue || '')); + }; + + // Listen for change events to enable binding + element.on('blur keyup change', function() { + scope.$apply(read); + }); + read(); // initialize + + // Write data to the model + function read() { + var html = element.html(); + // When we clear the content editable the browser leaves a
behind + // If strip-br attribute is provided then we strip this out + if( attrs.stripBr && html == '
' ) { + html = ''; + } + ngModel.$setViewValue(html); + } + } + }; + }]); +
+ +
+
Change me!
+ Required! +
+ +
+
+ + it('should data-bind and become invalid', function() { + if (browser.params.browser == 'safari' || browser.params.browser == 'firefox') { + // SafariDriver can't handle contenteditable + // and Firefox driver can't clear contenteditables very well + return; + } + var contentEditable = element(by.css('[contenteditable]')); + var content = 'Change me!'; + + expect(contentEditable.getText()).toEqual(content); + + contentEditable.clear(); + contentEditable.sendKeys(protractor.Key.BACK_SPACE); + expect(contentEditable.getText()).toEqual(''); + expect(contentEditable.getAttribute('class')).toMatch(/ng-invalid-required/); + }); + + *
+ * + * + */ + var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$parse', '$animate', + function($scope, $exceptionHandler, $attr, $element, $parse, $animate) { + this.$viewValue = Number.NaN; + this.$modelValue = Number.NaN; + this.$parsers = []; + this.$formatters = []; + this.$viewChangeListeners = []; + this.$pristine = true; + this.$dirty = false; + this.$valid = true; + this.$invalid = false; + this.$name = $attr.name; + + var ngModelGet = $parse($attr.ngModel), + ngModelSet = ngModelGet.assign; + + if (!ngModelSet) { + throw minErr('ngModel')('nonassign', "Expression '{0}' is non-assignable. Element: {1}", + $attr.ngModel, startingTag($element)); + } + + /** + * @ngdoc method + * @name ngModel.NgModelController#$render + * + * @description + * Called when the view needs to be updated. It is expected that the user of the ng-model + * directive will implement this method. + */ + this.$render = noop; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$isEmpty + * + * @description + * This is called when we need to determine if the value of the input is empty. + * + * For instance, the required directive does this to work out if the input has data or not. + * The default `$isEmpty` function checks whether the value is `undefined`, `''`, `null` or `NaN`. + * + * You can override this for input directives whose concept of being empty is different to the + * default. The `checkboxInputType` directive does this because in its case a value of `false` + * implies empty. + * + * @param {*} value Reference to check. + * @returns {boolean} True if `value` is empty. + */ + this.$isEmpty = function(value) { + return isUndefined(value) || value === '' || value === null || value !== value; + }; + + var parentForm = $element.inheritedData('$formController') || nullFormCtrl, + invalidCount = 0, // used to easily determine if we are valid + $error = this.$error = {}; // keep invalid keys here + + + // Setup initial state of the control + $element.addClass(PRISTINE_CLASS); + toggleValidCss(true); + + // convenience method for easy toggling of classes + function toggleValidCss(isValid, validationErrorKey) { + validationErrorKey = validationErrorKey ? '-' + snake_case(validationErrorKey, '-') : ''; + $animate.removeClass($element, (isValid ? INVALID_CLASS : VALID_CLASS) + validationErrorKey); + $animate.addClass($element, (isValid ? VALID_CLASS : INVALID_CLASS) + validationErrorKey); + } + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setValidity + * + * @description + * Change the validity state, and notifies the form when the control changes validity. (i.e. it + * does not notify form if given validator is already marked as invalid). + * + * This method should be called by validators - i.e. the parser or formatter functions. + * + * @param {string} validationErrorKey Name of the validator. the `validationErrorKey` will assign + * to `$error[validationErrorKey]=!isValid` so that it is available for data-binding. + * The `validationErrorKey` should be in camelCase and will get converted into dash-case + * for class name. Example: `myError` will result in `ng-valid-my-error` and `ng-invalid-my-error` + * class and can be bound to as `{{someForm.someControl.$error.myError}}` . + * @param {boolean} isValid Whether the current state is valid (true) or invalid (false). + */ + this.$setValidity = function(validationErrorKey, isValid) { + // Purposeful use of ! here to cast isValid to boolean in case it is undefined + // jshint -W018 + if ($error[validationErrorKey] === !isValid) return; + // jshint +W018 + + if (isValid) { + if ($error[validationErrorKey]) invalidCount--; + if (!invalidCount) { + toggleValidCss(true); + this.$valid = true; + this.$invalid = false; + } + } else { + toggleValidCss(false); + this.$invalid = true; + this.$valid = false; + invalidCount++; + } + + $error[validationErrorKey] = !isValid; + toggleValidCss(isValid, validationErrorKey); + + parentForm.$setValidity(validationErrorKey, isValid, this); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setPristine + * + * @description + * Sets the control to its pristine state. + * + * This method can be called to remove the 'ng-dirty' class and set the control to its pristine + * state (ng-pristine class). + */ + this.$setPristine = function() { + this.$dirty = false; + this.$pristine = true; + $animate.removeClass($element, DIRTY_CLASS); + $animate.addClass($element, PRISTINE_CLASS); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setViewValue + * + * @description + * Update the view value. + * + * This method should be called when the view value changes, typically from within a DOM event handler. + * For example {@link ng.directive:input input} and + * {@link ng.directive:select select} directives call it. + * + * It will update the $viewValue, then pass this value through each of the functions in `$parsers`, + * which includes any validators. The value that comes out of this `$parsers` pipeline, be applied to + * `$modelValue` and the **expression** specified in the `ng-model` attribute. + * + * Lastly, all the registered change listeners, in the `$viewChangeListeners` list, are called. + * + * Note that calling this function does not trigger a `$digest`. + * + * @param {string} value Value from the view. + */ + this.$setViewValue = function(value) { + this.$viewValue = value; + + // change to dirty + if (this.$pristine) { + this.$dirty = true; + this.$pristine = false; + $animate.removeClass($element, PRISTINE_CLASS); + $animate.addClass($element, DIRTY_CLASS); + parentForm.$setDirty(); + } + + forEach(this.$parsers, function(fn) { + value = fn(value); + }); + + if (this.$modelValue !== value) { + this.$modelValue = value; + ngModelSet($scope, value); + forEach(this.$viewChangeListeners, function(listener) { + try { + listener(); + } catch (e) { + $exceptionHandler(e); + } + }); + } + }; + + // model -> value + var ctrl = this; + + $scope.$watch(function ngModelWatch() { + var value = ngModelGet($scope); + + // if scope model value and ngModel value are out of sync + if (ctrl.$modelValue !== value) { + + var formatters = ctrl.$formatters, + idx = formatters.length; + + ctrl.$modelValue = value; + while (idx--) { + value = formatters[idx](value); + } + + if (ctrl.$viewValue !== value) { + ctrl.$viewValue = value; + ctrl.$render(); + } + } + + return value; + }); + } + ]; + + + /** + * @ngdoc directive + * @name ngModel + * + * @element input + * + * @description + * The `ngModel` directive binds an `input`,`select`, `textarea` (or custom form control) to a + * property on the scope using {@link ngModel.NgModelController NgModelController}, + * which is created and exposed by this directive. + * + * `ngModel` is responsible for: + * + * - Binding the view into the model, which other directives such as `input`, `textarea` or `select` + * require. + * - Providing validation behavior (i.e. required, number, email, url). + * - Keeping the state of the control (valid/invalid, dirty/pristine, validation errors). + * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`) including animations. + * - Registering the control with its parent {@link ng.directive:form form}. + * + * Note: `ngModel` will try to bind to the property given by evaluating the expression on the + * current scope. If the property doesn't already exist on this scope, it will be created + * implicitly and added to the scope. + * + * For best practices on using `ngModel`, see: + * + * - [https://github.com/angular/angular.js/wiki/Understanding-Scopes] + * + * For basic examples, how to use `ngModel`, see: + * + * - {@link ng.directive:input input} + * - {@link input[text] text} + * - {@link input[checkbox] checkbox} + * - {@link input[radio] radio} + * - {@link input[number] number} + * - {@link input[email] email} + * - {@link input[url] url} + * - {@link ng.directive:select select} + * - {@link ng.directive:textarea textarea} + * + * # CSS classes + * The following CSS classes are added and removed on the associated input/select/textarea element + * depending on the validity of the model. + * + * - `ng-valid` is set if the model is valid. + * - `ng-invalid` is set if the model is invalid. + * - `ng-pristine` is set if the model is pristine. + * - `ng-dirty` is set if the model is dirty. + * + * Keep in mind that ngAnimate can detect each of these classes when added and removed. + * + * ## Animation Hooks + * + * Animations within models are triggered when any of the associated CSS classes are added and removed + * on the input element which is attached to the model. These classes are: `.ng-pristine`, `.ng-dirty`, + * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself. + * The animations that are triggered within ngModel are similar to how they work in ngClass and + * animations can be hooked into using CSS transitions, keyframes as well as JS animations. + * + * The following example shows a simple way to utilize CSS transitions to style an input element + * that has been rendered as invalid after it has been validated: + * + *
+     * //be sure to include ngAnimate as a module to hook into more
+     * //advanced animations
+     * .my-input {
+     *   transition:0.5s linear all;
+     *   background: white;
+     * }
+     * .my-input.ng-invalid {
+     *   background: red;
+     *   color:white;
+     * }
+     * 
+ * + * @example + * + + + + Update input to see transitions when valid/invalid. + Integer is a valid value. +
+ +
+
+ *
+ */ + var ngModelDirective = function() { + return { + require: ['ngModel', '^?form'], + controller: NgModelController, + link: function(scope, element, attr, ctrls) { + // notify others, especially parent forms + + var modelCtrl = ctrls[0], + formCtrl = ctrls[1] || nullFormCtrl; + + formCtrl.$addControl(modelCtrl); + + scope.$on('$destroy', function() { + formCtrl.$removeControl(modelCtrl); + }); + } + }; + }; + + + /** + * @ngdoc directive + * @name ngChange + * + * @description + * Evaluate the given expression when the user changes the input. + * The expression is evaluated immediately, unlike the JavaScript onchange event + * which only triggers at the end of a change (usually, when the user leaves the + * form element or presses the return key). + * The expression is not evaluated when the value change is coming from the model. + * + * Note, this directive requires `ngModel` to be present. + * + * @element input + * @param {expression} ngChange {@link guide/expression Expression} to evaluate upon change + * in input value. + * + * @example + * + * + * + *
+ * + * + *
+ * debug = {{confirmed}}
+ * counter = {{counter}}
+ *
+ *
+ * + * var counter = element(by.binding('counter')); + * var debug = element(by.binding('confirmed')); + * + * it('should evaluate the expression if changing from view', function() { + * expect(counter.getText()).toContain('0'); + * + * element(by.id('ng-change-example1')).click(); + * + * expect(counter.getText()).toContain('1'); + * expect(debug.getText()).toContain('true'); + * }); + * + * it('should not evaluate the expression if changing from model', function() { + * element(by.id('ng-change-example2')).click(); + + * expect(counter.getText()).toContain('0'); + * expect(debug.getText()).toContain('true'); + * }); + * + *
+ */ + var ngChangeDirective = valueFn({ + require: 'ngModel', + link: function(scope, element, attr, ctrl) { + ctrl.$viewChangeListeners.push(function() { + scope.$eval(attr.ngChange); + }); + } + }); + + + var requiredDirective = function() { + return { + require: '?ngModel', + link: function(scope, elm, attr, ctrl) { + if (!ctrl) return; + attr.required = true; // force truthy in case we are on non input element + + var validator = function(value) { + if (attr.required && ctrl.$isEmpty(value)) { + ctrl.$setValidity('required', false); + return; + } else { + ctrl.$setValidity('required', true); + return value; + } + }; + + ctrl.$formatters.push(validator); + ctrl.$parsers.unshift(validator); + + attr.$observe('required', function() { + validator(ctrl.$viewValue); + }); + } + }; + }; + + + /** + * @ngdoc directive + * @name ngList + * + * @description + * Text input that converts between a delimited string and an array of strings. The delimiter + * can be a fixed string (by default a comma) or a regular expression. + * + * @element input + * @param {string=} ngList optional delimiter that should be used to split the value. If + * specified in form `/something/` then the value will be converted into a regular expression. + * + * @example + + + +
+ List: + + Required! +
+ names = {{names}}
+ myForm.namesInput.$valid = {{myForm.namesInput.$valid}}
+ myForm.namesInput.$error = {{myForm.namesInput.$error}}
+ myForm.$valid = {{myForm.$valid}}
+ myForm.$error.required = {{!!myForm.$error.required}}
+
+
+ + var listInput = element(by.model('names')); + var names = element(by.binding('{{names}}')); + var valid = element(by.binding('myForm.namesInput.$valid')); + var error = element(by.css('span.error')); + + it('should initialize to model', function() { + expect(names.getText()).toContain('["igor","misko","vojta"]'); + expect(valid.getText()).toContain('true'); + expect(error.getCssValue('display')).toBe('none'); + }); + + it('should be invalid if empty', function() { + listInput.clear(); + listInput.sendKeys(''); + + expect(names.getText()).toContain(''); + expect(valid.getText()).toContain('false'); + expect(error.getCssValue('display')).not.toBe('none'); }); + +
+ */ + var ngListDirective = function() { + return { + require: 'ngModel', + link: function(scope, element, attr, ctrl) { + var match = /\/(.*)\//.exec(attr.ngList), + separator = match && new RegExp(match[1]) || attr.ngList || ','; + + var parse = function(viewValue) { + // If the viewValue is invalid (say required but empty) it will be `undefined` + if (isUndefined(viewValue)) return; + + var list = []; + + if (viewValue) { + forEach(viewValue.split(separator), function(value) { + if (value) list.push(trim(value)); + }); + } + + return list; + }; + + ctrl.$parsers.push(parse); + ctrl.$formatters.push(function(value) { + if (isArray(value)) { + return value.join(', '); + } + + return undefined; + }); + + // Override the standard $isEmpty because an empty array means the input is empty. + ctrl.$isEmpty = function(value) { + return !value || !value.length; + }; + } + }; + }; + + + var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; + /** + * @ngdoc directive + * @name ngValue + * + * @description + * Binds the given expression to the value of `input[select]` or `input[radio]`, so + * that when the element is selected, the `ngModel` of that element is set to the + * bound value. + * + * `ngValue` is useful when dynamically generating lists of radio buttons using `ng-repeat`, as + * shown below. + * + * @element input + * @param {string=} ngValue angular expression, whose value will be bound to the `value` attribute + * of the `input` element + * + * @example + + + +
+

Which is your favorite?

+ +
You chose {{my.favorite}}
+
+
+ + var favorite = element(by.binding('my.favorite')); + + it('should initialize to model', function() { + expect(favorite.getText()).toContain('unicorns'); + }); + it('should bind the values to the inputs', function() { + element.all(by.model('my.favorite')).get(0).click(); + expect(favorite.getText()).toContain('pizza'); + }); + +
+ */ + var ngValueDirective = function() { + return { + priority: 100, + compile: function(tpl, tplAttr) { + if (CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)) { + return function ngValueConstantLink(scope, elm, attr) { + attr.$set('value', scope.$eval(attr.ngValue)); + }; + } else { + return function ngValueLink(scope, elm, attr) { + scope.$watch(attr.ngValue, function valueWatchAction(value) { + attr.$set('value', value); + }); + }; + } + } + }; + }; + + /** + * @ngdoc directive + * @name ngBind + * @restrict AC + * + * @description + * The `ngBind` attribute tells Angular to replace the text content of the specified HTML element + * with the value of a given expression, and to update the text content when the value of that + * expression changes. + * + * Typically, you don't use `ngBind` directly, but instead you use the double curly markup like + * `{{ expression }}` which is similar but less verbose. + * + * It is preferable to use `ngBind` instead of `{{ expression }}` if a template is momentarily + * displayed by the browser in its raw state before Angular compiles it. Since `ngBind` is an + * element attribute, it makes the bindings invisible to the user while the page is loading. + * + * An alternative solution to this problem would be using the + * {@link ng.directive:ngCloak ngCloak} directive. + * + * + * @element ANY + * @param {expression} ngBind {@link guide/expression Expression} to evaluate. + * + * @example + * Enter a name in the Live Preview text box; the greeting below the text box changes instantly. + + + +
+ Enter name:
+ Hello ! +
+
+ + it('should check ng-bind', function() { + var nameInput = element(by.model('name')); + + expect(element(by.binding('name')).getText()).toBe('Whirled'); + nameInput.clear(); + nameInput.sendKeys('world'); + expect(element(by.binding('name')).getText()).toBe('world'); + }); + +
+ */ + var ngBindDirective = ngDirective({ + compile: function(templateElement) { + templateElement.addClass('ng-binding'); + return function(scope, element, attr) { + element.data('$binding', attr.ngBind); + scope.$watch(attr.ngBind, function ngBindWatchAction(value) { + // We are purposefully using == here rather than === because we want to + // catch when value is "null or undefined" + // jshint -W041 + element.text(value == undefined ? '' : value); + }); + }; + } + }); + + + /** + * @ngdoc directive + * @name ngBindTemplate + * + * @description + * The `ngBindTemplate` directive specifies that the element + * text content should be replaced with the interpolation of the template + * in the `ngBindTemplate` attribute. + * Unlike `ngBind`, the `ngBindTemplate` can contain multiple `{{` `}}` + * expressions. This directive is needed since some HTML elements + * (such as TITLE and OPTION) cannot contain SPAN elements. + * + * @element ANY + * @param {string} ngBindTemplate template of form + * {{ expression }} to eval. + * + * @example + * Try it here: enter text in text box and watch the greeting change. + + + +
+ Salutation:
+ Name:
+

+           
+
+ + it('should check ng-bind', function() { + var salutationElem = element(by.binding('salutation')); + var salutationInput = element(by.model('salutation')); + var nameInput = element(by.model('name')); + + expect(salutationElem.getText()).toBe('Hello World!'); + + salutationInput.clear(); + salutationInput.sendKeys('Greetings'); + nameInput.clear(); + nameInput.sendKeys('user'); + + expect(salutationElem.getText()).toBe('Greetings user!'); + }); + +
+ */ + var ngBindTemplateDirective = ['$interpolate', function($interpolate) { + return function(scope, element, attr) { + // TODO: move this to scenario runner + var interpolateFn = $interpolate(element.attr(attr.$attr.ngBindTemplate)); + element.addClass('ng-binding').data('$binding', interpolateFn); + attr.$observe('ngBindTemplate', function(value) { + element.text(value); + }); + }; + }]; + + + /** + * @ngdoc directive + * @name ngBindHtml + * + * @description + * Creates a binding that will innerHTML the result of evaluating the `expression` into the current + * element in a secure way. By default, the innerHTML-ed content will be sanitized using the {@link + * ngSanitize.$sanitize $sanitize} service. To utilize this functionality, ensure that `$sanitize` + * is available, for example, by including {@link ngSanitize} in your module's dependencies (not in + * core Angular.) You may also bypass sanitization for values you know are safe. To do so, bind to + * an explicitly trusted value via {@link ng.$sce#trustAsHtml $sce.trustAsHtml}. See the example + * under {@link ng.$sce#Example Strict Contextual Escaping (SCE)}. + * + * Note: If a `$sanitize` service is unavailable and the bound value isn't explicitly trusted, you + * will have an exception (instead of an exploit.) + * + * @element ANY + * @param {expression} ngBindHtml {@link guide/expression Expression} to evaluate. + * + * @example + + + +
+

+
+
+ + + angular.module('bindHtmlExample', ['ngSanitize']) + .controller('ExampleController', ['$scope', function($scope) { + $scope.myHTML = + 'I am an HTMLstring with ' + + 'links! and other stuff'; + }]); + + + + it('should check ng-bind-html', function() { + expect(element(by.binding('myHTML')).getText()).toBe( + 'I am an HTMLstring with links! and other stuff'); + }); + +
+ */ + var ngBindHtmlDirective = ['$sce', '$parse', function($sce, $parse) { + return { + compile: function(tElement) { + tElement.addClass('ng-binding'); + + return function(scope, element, attr) { + element.data('$binding', attr.ngBindHtml); + + var parsed = $parse(attr.ngBindHtml); + + function getStringValue() { + return (parsed(scope) || '').toString(); + } + + scope.$watch(getStringValue, function ngBindHtmlWatchAction(value) { + element.html($sce.getTrustedHtml(parsed(scope)) || ''); + }); + }; + } + }; + }]; + + function classDirective(name, selector) { + name = 'ngClass' + name; + return ['$animate', function($animate) { + return { + restrict: 'AC', + link: function(scope, element, attr) { + var oldVal; + + scope.$watch(attr[name], ngClassWatchAction, true); + + attr.$observe('class', function(value) { + ngClassWatchAction(scope.$eval(attr[name])); + }); + + + if (name !== 'ngClass') { + scope.$watch('$index', function($index, old$index) { + // jshint bitwise: false + var mod = $index & 1; + if (mod !== (old$index & 1)) { + var classes = arrayClasses(scope.$eval(attr[name])); + mod === selector ? + addClasses(classes) : + removeClasses(classes); + } + }); + } + + function addClasses(classes) { + var newClasses = digestClassCounts(classes, 1); + attr.$addClass(newClasses); + } + + function removeClasses(classes) { + var newClasses = digestClassCounts(classes, -1); + attr.$removeClass(newClasses); + } + + function digestClassCounts(classes, count) { + var classCounts = element.data('$classCounts') || {}; + var classesToUpdate = []; + forEach(classes, function(className) { + if (count > 0 || classCounts[className]) { + classCounts[className] = (classCounts[className] || 0) + count; + if (classCounts[className] === +(count > 0)) { + classesToUpdate.push(className); + } + } + }); + element.data('$classCounts', classCounts); + return classesToUpdate.join(' '); + } + + function updateClasses(oldClasses, newClasses) { + var toAdd = arrayDifference(newClasses, oldClasses); + var toRemove = arrayDifference(oldClasses, newClasses); + toRemove = digestClassCounts(toRemove, -1); + toAdd = digestClassCounts(toAdd, 1); + + if (toAdd.length === 0) { + $animate.removeClass(element, toRemove); + } else if (toRemove.length === 0) { + $animate.addClass(element, toAdd); + } else { + $animate.setClass(element, toAdd, toRemove); + } + } + + function ngClassWatchAction(newVal) { + if (selector === true || scope.$index % 2 === selector) { + var newClasses = arrayClasses(newVal || []); + if (!oldVal) { + addClasses(newClasses); + } else if (!equals(newVal, oldVal)) { + var oldClasses = arrayClasses(oldVal); + updateClasses(oldClasses, newClasses); + } + } + oldVal = shallowCopy(newVal); + } + } + }; + + function arrayDifference(tokens1, tokens2) { + var values = []; + + outer: + for (var i = 0; i < tokens1.length; i++) { + var token = tokens1[i]; + for (var j = 0; j < tokens2.length; j++) { + if (token == tokens2[j]) continue outer; + } + values.push(token); + } + return values; + } + + function arrayClasses(classVal) { + if (isArray(classVal)) { + return classVal; + } else if (isString(classVal)) { + return classVal.split(' '); + } else if (isObject(classVal)) { + var classes = [], + i = 0; + forEach(classVal, function(v, k) { + if (v) { + classes = classes.concat(k.split(' ')); + } + }); + return classes; + } + return classVal; + } + }]; + } + + /** + * @ngdoc directive + * @name ngClass + * @restrict AC + * + * @description + * The `ngClass` directive allows you to dynamically set CSS classes on an HTML element by databinding + * an expression that represents all classes to be added. + * + * The directive operates in three different ways, depending on which of three types the expression + * evaluates to: + * + * 1. If the expression evaluates to a string, the string should be one or more space-delimited class + * names. + * + * 2. If the expression evaluates to an array, each element of the array should be a string that is + * one or more space-delimited class names. + * + * 3. If the expression evaluates to an object, then for each key-value pair of the + * object with a truthy value the corresponding key is used as a class name. + * + * The directive won't add duplicate classes if a particular class was already set. + * + * When the expression changes, the previously added classes are removed and only then the + * new classes are added. + * + * @animations + * add - happens just before the class is applied to the element + * remove - happens just before the class is removed from the element + * + * @element ANY + * @param {expression} ngClass {@link guide/expression Expression} to eval. The result + * of the evaluation can be a string representing space delimited class + * names, an array, or a map of class names to boolean values. In the case of a map, the + * names of the properties whose values are truthy will be added as css classes to the + * element. + * + * @example Example that demonstrates basic bindings via ngClass directive. + + +

Map Syntax Example

+ deleted (apply "strike" class)
+ important (apply "bold" class)
+ error (apply "red" class) +
+

Using String Syntax

+ +
+

Using Array Syntax

+
+
+
+
+ + .strike { + text-decoration: line-through; + } + .bold { + font-weight: bold; + } + .red { + color: red; + } + + + var ps = element.all(by.css('p')); + + it('should let you toggle the class', function() { + + expect(ps.first().getAttribute('class')).not.toMatch(/bold/); + expect(ps.first().getAttribute('class')).not.toMatch(/red/); + + element(by.model('important')).click(); + expect(ps.first().getAttribute('class')).toMatch(/bold/); + + element(by.model('error')).click(); + expect(ps.first().getAttribute('class')).toMatch(/red/); + }); + + it('should let you toggle string example', function() { + expect(ps.get(1).getAttribute('class')).toBe(''); + element(by.model('style')).clear(); + element(by.model('style')).sendKeys('red'); + expect(ps.get(1).getAttribute('class')).toBe('red'); + }); + + it('array example should have 3 classes', function() { + expect(ps.last().getAttribute('class')).toBe(''); + element(by.model('style1')).sendKeys('bold'); + element(by.model('style2')).sendKeys('strike'); + element(by.model('style3')).sendKeys('red'); + expect(ps.last().getAttribute('class')).toBe('bold strike red'); + }); + +
+ + ## Animations + + The example below demonstrates how to perform animations using ngClass. + + + + + +
+ Sample Text +
+ + .base-class { + -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + } + + .base-class.my-class { + color: red; + font-size:3em; + } + + + it('should check ng-class', function() { + expect(element(by.css('.base-class')).getAttribute('class')).not. + toMatch(/my-class/); + + element(by.id('setbtn')).click(); + + expect(element(by.css('.base-class')).getAttribute('class')). + toMatch(/my-class/); + + element(by.id('clearbtn')).click(); + + expect(element(by.css('.base-class')).getAttribute('class')).not. + toMatch(/my-class/); + }); + +
+ + + ## ngClass and pre-existing CSS3 Transitions/Animations + The ngClass directive still supports CSS3 Transitions/Animations even if they do not follow the ngAnimate CSS naming structure. + Upon animation ngAnimate will apply supplementary CSS classes to track the start and end of an animation, but this will not hinder + any pre-existing CSS transitions already on the element. To get an idea of what happens during a class-based animation, be sure + to view the step by step details of {@link ngAnimate.$animate#addclass $animate.addClass} and + {@link ngAnimate.$animate#removeclass $animate.removeClass}. + */ + var ngClassDirective = classDirective('', true); + + /** + * @ngdoc directive + * @name ngClassOdd + * @restrict AC + * + * @description + * The `ngClassOdd` and `ngClassEven` directives work exactly as + * {@link ng.directive:ngClass ngClass}, except they work in + * conjunction with `ngRepeat` and take effect only on odd (even) rows. + * + * This directive can be applied only within the scope of an + * {@link ng.directive:ngRepeat ngRepeat}. + * + * @element ANY + * @param {expression} ngClassOdd {@link guide/expression Expression} to eval. The result + * of the evaluation can be a string representing space delimited class names or an array. + * + * @example + + +
    +
  1. + + {{name}} + +
  2. +
+
+ + .odd { + color: red; + } + .even { + color: blue; + } + + + it('should check ng-class-odd and ng-class-even', function() { + expect(element(by.repeater('name in names').row(0).column('name')).getAttribute('class')). + toMatch(/odd/); + expect(element(by.repeater('name in names').row(1).column('name')).getAttribute('class')). + toMatch(/even/); + }); + +
+ */ + var ngClassOddDirective = classDirective('Odd', 0); + + /** + * @ngdoc directive + * @name ngClassEven + * @restrict AC + * + * @description + * The `ngClassOdd` and `ngClassEven` directives work exactly as + * {@link ng.directive:ngClass ngClass}, except they work in + * conjunction with `ngRepeat` and take effect only on odd (even) rows. + * + * This directive can be applied only within the scope of an + * {@link ng.directive:ngRepeat ngRepeat}. + * + * @element ANY + * @param {expression} ngClassEven {@link guide/expression Expression} to eval. The + * result of the evaluation can be a string representing space delimited class names or an array. + * + * @example + + +
    +
  1. + + {{name}}       + +
  2. +
+
+ + .odd { + color: red; + } + .even { + color: blue; + } + + + it('should check ng-class-odd and ng-class-even', function() { + expect(element(by.repeater('name in names').row(0).column('name')).getAttribute('class')). + toMatch(/odd/); + expect(element(by.repeater('name in names').row(1).column('name')).getAttribute('class')). + toMatch(/even/); + }); + +
+ */ + var ngClassEvenDirective = classDirective('Even', 1); + + /** + * @ngdoc directive + * @name ngCloak + * @restrict AC + * + * @description + * The `ngCloak` directive is used to prevent the Angular html template from being briefly + * displayed by the browser in its raw (uncompiled) form while your application is loading. Use this + * directive to avoid the undesirable flicker effect caused by the html template display. + * + * The directive can be applied to the `` element, but the preferred usage is to apply + * multiple `ngCloak` directives to small portions of the page to permit progressive rendering + * of the browser view. + * + * `ngCloak` works in cooperation with the following css rule embedded within `angular.js` and + * `angular.min.js`. + * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}). + * + * ```css + * [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { + * display: none !important; + * } + * ``` + * + * When this css rule is loaded by the browser, all html elements (including their children) that + * are tagged with the `ngCloak` directive are hidden. When Angular encounters this directive + * during the compilation of the template it deletes the `ngCloak` element attribute, making + * the compiled element visible. + * + * For the best result, the `angular.js` script must be loaded in the head section of the html + * document; alternatively, the css rule above must be included in the external stylesheet of the + * application. + * + * Legacy browsers, like IE7, do not provide attribute selector support (added in CSS 2.1) so they + * cannot match the `[ng\:cloak]` selector. To work around this limitation, you must add the css + * class `ng-cloak` in addition to the `ngCloak` directive as shown in the example below. + * + * @element ANY + * + * @example + + +
{{ 'hello' }}
+
{{ 'hello IE7' }}
+
+ + it('should remove the template directive and css class', function() { + expect($('#template1').getAttribute('ng-cloak')). + toBeNull(); + expect($('#template2').getAttribute('ng-cloak')). + toBeNull(); + }); + +
+ * + */ + var ngCloakDirective = ngDirective({ + compile: function(element, attr) { + attr.$set('ngCloak', undefined); + element.removeClass('ng-cloak'); + } + }); + + /** + * @ngdoc directive + * @name ngController + * + * @description + * The `ngController` directive attaches a controller class to the view. This is a key aspect of how angular + * supports the principles behind the Model-View-Controller design pattern. + * + * MVC components in angular: + * + * * Model — Models are the properties of a scope; scopes are attached to the DOM where scope properties + * are accessed through bindings. + * * View — The template (HTML with data bindings) that is rendered into the View. + * * Controller — The `ngController` directive specifies a Controller class; the class contains business + * logic behind the application to decorate the scope with functions and values + * + * Note that you can also attach controllers to the DOM by declaring it in a route definition + * via the {@link ngRoute.$route $route} service. A common mistake is to declare the controller + * again using `ng-controller` in the template itself. This will cause the controller to be attached + * and executed twice. + * + * @element ANY + * @scope + * @param {expression} ngController Name of a globally accessible constructor function or an + * {@link guide/expression expression} that on the current scope evaluates to a + * constructor function. The controller instance can be published into a scope property + * by specifying `as propertyName`. + * + * @example + * Here is a simple form for editing user contact information. Adding, removing, clearing, and + * greeting are methods declared on the controller (see source tab). These methods can + * easily be called from the angular markup. Any changes to the data are automatically reflected + * in the View without the need for a manual update. + * + * Two different declaration styles are included below: + * + * * one binds methods and properties directly onto the controller using `this`: + * `ng-controller="SettingsController1 as settings"` + * * one injects `$scope` into the controller: + * `ng-controller="SettingsController2"` + * + * The second option is more common in the Angular community, and is generally used in boilerplates + * and in this guide. However, there are advantages to binding properties directly to the controller + * and avoiding scope. + * + * * Using `controller as` makes it obvious which controller you are accessing in the template when + * multiple controllers apply to an element. + * * If you are writing your controllers as classes you have easier access to the properties and + * methods, which will appear on the scope, from inside the controller code. + * * Since there is always a `.` in the bindings, you don't have to worry about prototypal + * inheritance masking primitives. + * + * This example demonstrates the `controller as` syntax. + * + * + * + *
+ * Name: + * [ greet ]
+ * Contact: + *
    + *
  • + * + * + * [ clear + * | X ] + *
  • + *
  • [ add ]
  • + *
+ *
+ *
+ * + * angular.module('controllerAsExample', []) + * .controller('SettingsController1', SettingsController1); + * + * function SettingsController1() { + * this.name = "John Smith"; + * this.contacts = [ + * {type: 'phone', value: '408 555 1212'}, + * {type: 'email', value: 'john.smith@example.org'} ]; + * } + * + * SettingsController1.prototype.greet = function() { + * alert(this.name); + * }; + * + * SettingsController1.prototype.addContact = function() { + * this.contacts.push({type: 'email', value: 'yourname@example.org'}); + * }; + * + * SettingsController1.prototype.removeContact = function(contactToRemove) { + * var index = this.contacts.indexOf(contactToRemove); + * this.contacts.splice(index, 1); + * }; + * + * SettingsController1.prototype.clearContact = function(contact) { + * contact.type = 'phone'; + * contact.value = ''; + * }; + * + * + * it('should check controller as', function() { + * var container = element(by.id('ctrl-as-exmpl')); + * expect(container.element(by.model('settings.name')) + * .getAttribute('value')).toBe('John Smith'); + * + * var firstRepeat = + * container.element(by.repeater('contact in settings.contacts').row(0)); + * var secondRepeat = + * container.element(by.repeater('contact in settings.contacts').row(1)); + * + * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) + * .toBe('408 555 1212'); + * + * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value')) + * .toBe('john.smith@example.org'); + * + * firstRepeat.element(by.linkText('clear')).click(); + * + * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) + * .toBe(''); + * + * container.element(by.linkText('add')).click(); + * + * expect(container.element(by.repeater('contact in settings.contacts').row(2)) + * .element(by.model('contact.value')) + * .getAttribute('value')) + * .toBe('yourname@example.org'); + * }); + * + *
+ * + * This example demonstrates the "attach to `$scope`" style of controller. + * + * + * + *
+ * Name: + * [ greet ]
+ * Contact: + *
    + *
  • + * + * + * [ clear + * | X ] + *
  • + *
  • [ add ]
  • + *
+ *
+ *
+ * + * angular.module('controllerExample', []) + * .controller('SettingsController2', ['$scope', SettingsController2]); + * + * function SettingsController2($scope) { + * $scope.name = "John Smith"; + * $scope.contacts = [ + * {type:'phone', value:'408 555 1212'}, + * {type:'email', value:'john.smith@example.org'} ]; + * + * $scope.greet = function() { + * alert($scope.name); + * }; + * + * $scope.addContact = function() { + * $scope.contacts.push({type:'email', value:'yourname@example.org'}); + * }; + * + * $scope.removeContact = function(contactToRemove) { + * var index = $scope.contacts.indexOf(contactToRemove); + * $scope.contacts.splice(index, 1); + * }; + * + * $scope.clearContact = function(contact) { + * contact.type = 'phone'; + * contact.value = ''; + * }; + * } + * + * + * it('should check controller', function() { + * var container = element(by.id('ctrl-exmpl')); + * + * expect(container.element(by.model('name')) + * .getAttribute('value')).toBe('John Smith'); + * + * var firstRepeat = + * container.element(by.repeater('contact in contacts').row(0)); + * var secondRepeat = + * container.element(by.repeater('contact in contacts').row(1)); + * + * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) + * .toBe('408 555 1212'); + * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value')) + * .toBe('john.smith@example.org'); + * + * firstRepeat.element(by.linkText('clear')).click(); + * + * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) + * .toBe(''); + * + * container.element(by.linkText('add')).click(); + * + * expect(container.element(by.repeater('contact in contacts').row(2)) + * .element(by.model('contact.value')) + * .getAttribute('value')) + * .toBe('yourname@example.org'); + * }); + * + *
+ + */ + var ngControllerDirective = [function() { + return { + scope: true, + controller: '@', + priority: 500 + }; + }]; + + /** + * @ngdoc directive + * @name ngCsp + * + * @element html + * @description + * Enables [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) support. + * + * This is necessary when developing things like Google Chrome Extensions. + * + * CSP forbids apps to use `eval` or `Function(string)` generated functions (among other things). + * For Angular to be CSP compatible there are only two things that we need to do differently: + * + * - don't use `Function` constructor to generate optimized value getters + * - don't inject custom stylesheet into the document + * + * AngularJS uses `Function(string)` generated functions as a speed optimization. Applying the `ngCsp` + * directive will cause Angular to use CSP compatibility mode. When this mode is on AngularJS will + * evaluate all expressions up to 30% slower than in non-CSP mode, but no security violations will + * be raised. + * + * CSP forbids JavaScript to inline stylesheet rules. In non CSP mode Angular automatically + * includes some CSS rules (e.g. {@link ng.directive:ngCloak ngCloak}). + * To make those directives work in CSP mode, include the `angular-csp.css` manually. + * + * Angular tries to autodetect if CSP is active and automatically turn on the CSP-safe mode. This + * autodetection however triggers a CSP error to be logged in the console: + * + * ``` + * Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of + * script in the following Content Security Policy directive: "default-src 'self'". Note that + * 'script-src' was not explicitly set, so 'default-src' is used as a fallback. + * ``` + * + * This error is harmless but annoying. To prevent the error from showing up, put the `ngCsp` + * directive on the root element of the application or on the `angular.js` script tag, whichever + * appears first in the html document. + * + * *Note: This directive is only available in the `ng-csp` and `data-ng-csp` attribute form.* + * + * @example + * This example shows how to apply the `ngCsp` directive to the `html` tag. + ```html + + + ... + ... + + ``` + */ + + // ngCsp is not implemented as a proper directive any more, because we need it be processed while we + // bootstrap the system (before $parse is instantiated), for this reason we just have + // the csp.isActive() fn that looks for ng-csp attribute anywhere in the current doc + + /** + * @ngdoc directive + * @name ngClick + * + * @description + * The ngClick directive allows you to specify custom behavior when + * an element is clicked. + * + * @element ANY + * @priority 0 + * @param {expression} ngClick {@link guide/expression Expression} to evaluate upon + * click. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + count: {{count}} + + + it('should check ng-click', function() { + expect(element(by.binding('count')).getText()).toMatch('0'); + element(by.css('button')).click(); + expect(element(by.binding('count')).getText()).toMatch('1'); + }); + + + */ + /* + * A directive that allows creation of custom onclick handlers that are defined as angular + * expressions and are compiled and executed within the current scope. + * + * Events that are handled via these handler are always configured not to propagate further. + */ + var ngEventDirectives = {}; + forEach( + 'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '), + function(name) { + var directiveName = directiveNormalize('ng-' + name); + ngEventDirectives[directiveName] = ['$parse', function($parse) { + return { + compile: function($element, attr) { + var fn = $parse(attr[directiveName]); + return function ngEventHandler(scope, element) { + element.on(lowercase(name), function(event) { + scope.$apply(function() { + fn(scope, { + $event: event + }); + }); + }); + }; + } + }; + }]; + } + ); + + /** + * @ngdoc directive + * @name ngDblclick + * + * @description + * The `ngDblclick` directive allows you to specify custom behavior on a dblclick event. + * + * @element ANY + * @priority 0 + * @param {expression} ngDblclick {@link guide/expression Expression} to evaluate upon + * a dblclick. (The Event object is available as `$event`) + * + * @example + + + + count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngMousedown + * + * @description + * The ngMousedown directive allows you to specify custom behavior on mousedown event. + * + * @element ANY + * @priority 0 + * @param {expression} ngMousedown {@link guide/expression Expression} to evaluate upon + * mousedown. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngMouseup + * + * @description + * Specify custom behavior on mouseup event. + * + * @element ANY + * @priority 0 + * @param {expression} ngMouseup {@link guide/expression Expression} to evaluate upon + * mouseup. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + count: {{count}} + + + */ + + /** + * @ngdoc directive + * @name ngMouseover + * + * @description + * Specify custom behavior on mouseover event. + * + * @element ANY + * @priority 0 + * @param {expression} ngMouseover {@link guide/expression Expression} to evaluate upon + * mouseover. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngMouseenter + * + * @description + * Specify custom behavior on mouseenter event. + * + * @element ANY + * @priority 0 + * @param {expression} ngMouseenter {@link guide/expression Expression} to evaluate upon + * mouseenter. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngMouseleave + * + * @description + * Specify custom behavior on mouseleave event. + * + * @element ANY + * @priority 0 + * @param {expression} ngMouseleave {@link guide/expression Expression} to evaluate upon + * mouseleave. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngMousemove + * + * @description + * Specify custom behavior on mousemove event. + * + * @element ANY + * @priority 0 + * @param {expression} ngMousemove {@link guide/expression Expression} to evaluate upon + * mousemove. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngKeydown + * + * @description + * Specify custom behavior on keydown event. + * + * @element ANY + * @priority 0 + * @param {expression} ngKeydown {@link guide/expression Expression} to evaluate upon + * keydown. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) + * + * @example + + + + key down count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngKeyup + * + * @description + * Specify custom behavior on keyup event. + * + * @element ANY + * @priority 0 + * @param {expression} ngKeyup {@link guide/expression Expression} to evaluate upon + * keyup. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) + * + * @example + + +

Typing in the input box below updates the key count

+ key up count: {{count}} + +

Typing in the input box below updates the keycode

+ +

event keyCode: {{ event.keyCode }}

+

event altKey: {{ event.altKey }}

+
+
+ */ + + + /** + * @ngdoc directive + * @name ngKeypress + * + * @description + * Specify custom behavior on keypress event. + * + * @element ANY + * @param {expression} ngKeypress {@link guide/expression Expression} to evaluate upon + * keypress. ({@link guide/expression#-event- Event object is available as `$event`} + * and can be interrogated for keyCode, altKey, etc.) + * + * @example + + + + key press count: {{count}} + + + */ + + + /** + * @ngdoc directive + * @name ngSubmit + * + * @description + * Enables binding angular expressions to onsubmit events. + * + * Additionally it prevents the default action (which for form means sending the request to the + * server and reloading the current page), but only if the form does not contain `action`, + * `data-action`, or `x-action` attributes. + * + *
+ * **Warning:** Be careful not to cause "double-submission" by using both the `ngClick` and + * `ngSubmit` handlers together. See the + * {@link form#submitting-a-form-and-preventing-the-default-action `form` directive documentation} + * for a detailed discussion of when `ngSubmit` may be triggered. + *
+ * + * @element form + * @priority 0 + * @param {expression} ngSubmit {@link guide/expression Expression} to eval. + * ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + +
+ Enter text and hit enter: + + +
list={{list}}
+
+
+ + it('should check ng-submit', function() { + expect(element(by.binding('list')).getText()).toBe('list=[]'); + element(by.css('#submit')).click(); + expect(element(by.binding('list')).getText()).toContain('hello'); + expect(element(by.model('text')).getAttribute('value')).toBe(''); + }); + it('should ignore empty strings', function() { + expect(element(by.binding('list')).getText()).toBe('list=[]'); + element(by.css('#submit')).click(); + element(by.css('#submit')).click(); + expect(element(by.binding('list')).getText()).toContain('hello'); + }); + +
+ */ + + /** + * @ngdoc directive + * @name ngFocus + * + * @description + * Specify custom behavior on focus event. + * + * @element window, input, select, textarea, a + * @priority 0 + * @param {expression} ngFocus {@link guide/expression Expression} to evaluate upon + * focus. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + * See {@link ng.directive:ngClick ngClick} + */ + + /** + * @ngdoc directive + * @name ngBlur + * + * @description + * Specify custom behavior on blur event. + * + * @element window, input, select, textarea, a + * @priority 0 + * @param {expression} ngBlur {@link guide/expression Expression} to evaluate upon + * blur. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + * See {@link ng.directive:ngClick ngClick} + */ + + /** + * @ngdoc directive + * @name ngCopy + * + * @description + * Specify custom behavior on copy event. + * + * @element window, input, select, textarea, a + * @priority 0 + * @param {expression} ngCopy {@link guide/expression Expression} to evaluate upon + * copy. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + copied: {{copied}} + + + */ + + /** + * @ngdoc directive + * @name ngCut + * + * @description + * Specify custom behavior on cut event. + * + * @element window, input, select, textarea, a + * @priority 0 + * @param {expression} ngCut {@link guide/expression Expression} to evaluate upon + * cut. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + cut: {{cut}} + + + */ + + /** + * @ngdoc directive + * @name ngPaste + * + * @description + * Specify custom behavior on paste event. + * + * @element window, input, select, textarea, a + * @priority 0 + * @param {expression} ngPaste {@link guide/expression Expression} to evaluate upon + * paste. ({@link guide/expression#-event- Event object is available as `$event`}) + * + * @example + + + + pasted: {{paste}} + + + */ + + /** + * @ngdoc directive + * @name ngIf + * @restrict A + * + * @description + * The `ngIf` directive removes or recreates a portion of the DOM tree based on an + * {expression}. If the expression assigned to `ngIf` evaluates to a false + * value then the element is removed from the DOM, otherwise a clone of the + * element is reinserted into the DOM. + * + * `ngIf` differs from `ngShow` and `ngHide` in that `ngIf` completely removes and recreates the + * element in the DOM rather than changing its visibility via the `display` css property. A common + * case when this difference is significant is when using css selectors that rely on an element's + * position within the DOM, such as the `:first-child` or `:last-child` pseudo-classes. + * + * Note that when an element is removed using `ngIf` its scope is destroyed and a new scope + * is created when the element is restored. The scope created within `ngIf` inherits from + * its parent scope using + * [prototypal inheritance](https://github.com/angular/angular.js/wiki/The-Nuances-of-Scope-Prototypal-Inheritance). + * An important implication of this is if `ngModel` is used within `ngIf` to bind to + * a javascript primitive defined in the parent scope. In this case any modifications made to the + * variable within the child scope will override (hide) the value in the parent scope. + * + * Also, `ngIf` recreates elements using their compiled state. An example of this behavior + * is if an element's class attribute is directly modified after it's compiled, using something like + * jQuery's `.addClass()` method, and the element is later removed. When `ngIf` recreates the element + * the added class will be lost because the original compiled state is used to regenerate the element. + * + * Additionally, you can provide animations via the `ngAnimate` module to animate the `enter` + * and `leave` effects. + * + * @animations + * enter - happens just after the ngIf contents change and a new DOM element is created and injected into the ngIf container + * leave - happens just before the ngIf contents are removed from the DOM + * + * @element ANY + * @scope + * @priority 600 + * @param {expression} ngIf If the {@link guide/expression expression} is falsy then + * the element is removed from the DOM tree. If it is truthy a copy of the compiled + * element is added to the DOM tree. + * + * @example + + + Click me:
+ Show when checked: + + I'm removed when the checkbox is unchecked. + +
+ + .animate-if { + background:white; + border:1px solid black; + padding:10px; + } + + .animate-if.ng-enter, .animate-if.ng-leave { + -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + } + + .animate-if.ng-enter, + .animate-if.ng-leave.ng-leave-active { + opacity:0; + } + + .animate-if.ng-leave, + .animate-if.ng-enter.ng-enter-active { + opacity:1; + } + +
+ */ + var ngIfDirective = ['$animate', function($animate) { + return { + transclude: 'element', + priority: 600, + terminal: true, + restrict: 'A', + $$tlb: true, + link: function($scope, $element, $attr, ctrl, $transclude) { + var block, childScope, previousElements; + $scope.$watch($attr.ngIf, function ngIfWatchAction(value) { + + if (toBoolean(value)) { + if (!childScope) { + childScope = $scope.$new(); + $transclude(childScope, function(clone) { + clone[clone.length++] = document.createComment(' end ngIf: ' + $attr.ngIf + ' '); + // Note: We only need the first/last node of the cloned nodes. + // However, we need to keep the reference to the jqlite wrapper as it might be changed later + // by a directive with templateUrl when its template arrives. + block = { + clone: clone + }; + $animate.enter(clone, $element.parent(), $element); + }); + } + } else { + if (previousElements) { + previousElements.remove(); + previousElements = null; + } + if (childScope) { + childScope.$destroy(); + childScope = null; + } + if (block) { + previousElements = getBlockElements(block.clone); + $animate.leave(previousElements, function() { + previousElements = null; + }); + block = null; + } + } + }); + } + }; + }]; + + /** + * @ngdoc directive + * @name ngInclude + * @restrict ECA + * + * @description + * Fetches, compiles and includes an external HTML fragment. + * + * By default, the template URL is restricted to the same domain and protocol as the + * application document. This is done by calling {@link ng.$sce#getTrustedResourceUrl + * $sce.getTrustedResourceUrl} on it. To load templates from other domains or protocols + * you may either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist them} or + * [wrap them](ng.$sce#trustAsResourceUrl) as trusted values. Refer to Angular's {@link + * ng.$sce Strict Contextual Escaping}. + * + * In addition, the browser's + * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest) + * and [Cross-Origin Resource Sharing (CORS)](http://www.w3.org/TR/cors/) + * policy may further restrict whether the template is successfully loaded. + * For example, `ngInclude` won't work for cross-domain requests on all browsers and for `file://` + * access on some browsers. + * + * @animations + * enter - animation is used to bring new content into the browser. + * leave - animation is used to animate existing content away. + * + * The enter and leave animation occur concurrently. + * + * @scope + * @priority 400 + * + * @param {string} ngInclude|src angular expression evaluating to URL. If the source is a string constant, + * make sure you wrap it in **single** quotes, e.g. `src="'myPartialTemplate.html'"`. + * @param {string=} onload Expression to evaluate when a new partial is loaded. + * + * @param {string=} autoscroll Whether `ngInclude` should call {@link ng.$anchorScroll + * $anchorScroll} to scroll the viewport after the content is loaded. + * + * - If the attribute is not set, disable scrolling. + * - If the attribute is set without value, enable scrolling. + * - Otherwise enable scrolling only if the expression evaluates to truthy value. + * + * @example + + +
+ + url of the template: {{template.url}} +
+
+
+
+
+
+ + angular.module('includeExample', ['ngAnimate']) + .controller('ExampleController', ['$scope', function($scope) { + $scope.templates = + [ { name: 'template1.html', url: 'template1.html'}, + { name: 'template2.html', url: 'template2.html'} ]; + $scope.template = $scope.templates[0]; + }]); + + + Content of template1.html + + + Content of template2.html + + + .slide-animate-container { + position:relative; + background:white; + border:1px solid black; + height:40px; + overflow:hidden; + } + + .slide-animate { + padding:10px; + } + + .slide-animate.ng-enter, .slide-animate.ng-leave { + -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + + position:absolute; + top:0; + left:0; + right:0; + bottom:0; + display:block; + padding:10px; + } + + .slide-animate.ng-enter { + top:-50px; + } + .slide-animate.ng-enter.ng-enter-active { + top:0; + } + + .slide-animate.ng-leave { + top:0; + } + .slide-animate.ng-leave.ng-leave-active { + top:50px; + } + + + var templateSelect = element(by.model('template')); + var includeElem = element(by.css('[ng-include]')); + + it('should load template1.html', function() { + expect(includeElem.getText()).toMatch(/Content of template1.html/); + }); + + it('should load template2.html', function() { + if (browser.params.browser == 'firefox') { + // Firefox can't handle using selects + // See https://github.com/angular/protractor/issues/480 + return; + } + templateSelect.click(); + templateSelect.all(by.css('option')).get(2).click(); + expect(includeElem.getText()).toMatch(/Content of template2.html/); + }); + + it('should change to blank', function() { + if (browser.params.browser == 'firefox') { + // Firefox can't handle using selects + return; + } + templateSelect.click(); + templateSelect.all(by.css('option')).get(0).click(); + expect(includeElem.isPresent()).toBe(false); + }); + +
+ */ + + + /** + * @ngdoc event + * @name ngInclude#$includeContentRequested + * @eventType emit on the scope ngInclude was declared in + * @description + * Emitted every time the ngInclude content is requested. + */ + + + /** + * @ngdoc event + * @name ngInclude#$includeContentLoaded + * @eventType emit on the current ngInclude scope + * @description + * Emitted every time the ngInclude content is reloaded. + */ + var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$animate', '$sce', + function($http, $templateCache, $anchorScroll, $animate, $sce) { + return { + restrict: 'ECA', + priority: 400, + terminal: true, + transclude: 'element', + controller: angular.noop, + compile: function(element, attr) { + var srcExp = attr.ngInclude || attr.src, + onloadExp = attr.onload || '', + autoScrollExp = attr.autoscroll; + + return function(scope, $element, $attr, ctrl, $transclude) { + var changeCounter = 0, + currentScope, + previousElement, + currentElement; + + var cleanupLastIncludeContent = function() { + if (previousElement) { + previousElement.remove(); + previousElement = null; + } + if (currentScope) { + currentScope.$destroy(); + currentScope = null; + } + if (currentElement) { + $animate.leave(currentElement, function() { + previousElement = null; + }); + previousElement = currentElement; + currentElement = null; + } + }; + + scope.$watch($sce.parseAsResourceUrl(srcExp), function ngIncludeWatchAction(src) { + var afterAnimation = function() { + if (isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))) { + $anchorScroll(); + } + }; + var thisChangeId = ++changeCounter; + + if (src) { + $http.get(src, { + cache: $templateCache + }).success(function(response) { + if (thisChangeId !== changeCounter) return; + var newScope = scope.$new(); + ctrl.template = response; + + // Note: This will also link all children of ng-include that were contained in the original + // html. If that content contains controllers, ... they could pollute/change the scope. + // However, using ng-include on an element with additional content does not make sense... + // Note: We can't remove them in the cloneAttchFn of $transclude as that + // function is called before linking the content, which would apply child + // directives to non existing elements. + var clone = $transclude(newScope, function(clone) { + cleanupLastIncludeContent(); + $animate.enter(clone, null, $element, afterAnimation); + }); + + currentScope = newScope; + currentElement = clone; + + currentScope.$emit('$includeContentLoaded'); + scope.$eval(onloadExp); + }).error(function() { + if (thisChangeId === changeCounter) cleanupLastIncludeContent(); + }); + scope.$emit('$includeContentRequested'); + } else { + cleanupLastIncludeContent(); + ctrl.template = null; + } + }); + }; + } + }; + } + ]; + + // This directive is called during the $transclude call of the first `ngInclude` directive. + // It will replace and compile the content of the element with the loaded template. + // We need this directive so that the element content is already filled when + // the link function of another directive on the same element as ngInclude + // is called. + var ngIncludeFillContentDirective = ['$compile', + function($compile) { + return { + restrict: 'ECA', + priority: -400, + require: 'ngInclude', + link: function(scope, $element, $attr, ctrl) { + $element.html(ctrl.template); + $compile($element.contents())(scope); + } + }; + } + ]; + + /** + * @ngdoc directive + * @name ngInit + * @restrict AC + * + * @description + * The `ngInit` directive allows you to evaluate an expression in the + * current scope. + * + *
+ * The only appropriate use of `ngInit` is for aliasing special properties of + * {@link ng.directive:ngRepeat `ngRepeat`}, as seen in the demo below. Besides this case, you + * should use {@link guide/controller controllers} rather than `ngInit` + * to initialize values on a scope. + *
+ *
+ * **Note**: If you have assignment in `ngInit` along with {@link ng.$filter `$filter`}, make + * sure you have parenthesis for correct precedence: + *
+     *   
+ *
+ *
+ * + * @priority 450 + * + * @element ANY + * @param {expression} ngInit {@link guide/expression Expression} to eval. + * + * @example + + + +
+
+
+ list[ {{outerIndex}} ][ {{innerIndex}} ] = {{value}}; +
+
+
+
+ + it('should alias index positions', function() { + var elements = element.all(by.css('.example-init')); + expect(elements.get(0).getText()).toBe('list[ 0 ][ 0 ] = a;'); + expect(elements.get(1).getText()).toBe('list[ 0 ][ 1 ] = b;'); + expect(elements.get(2).getText()).toBe('list[ 1 ][ 0 ] = c;'); + expect(elements.get(3).getText()).toBe('list[ 1 ][ 1 ] = d;'); + }); + +
+ */ + var ngInitDirective = ngDirective({ + priority: 450, + compile: function() { + return { + pre: function(scope, element, attrs) { + scope.$eval(attrs.ngInit); + } + }; + } + }); + + /** + * @ngdoc directive + * @name ngNonBindable + * @restrict AC + * @priority 1000 + * + * @description + * The `ngNonBindable` directive tells Angular not to compile or bind the contents of the current + * DOM element. This is useful if the element contains what appears to be Angular directives and + * bindings but which should be ignored by Angular. This could be the case if you have a site that + * displays snippets of code, for instance. + * + * @element ANY + * + * @example + * In this example there are two locations where a simple interpolation binding (`{{}}`) is present, + * but the one wrapped in `ngNonBindable` is left alone. + * + * @example + + +
Normal: {{1 + 2}}
+
Ignored: {{1 + 2}}
+
+ + it('should check ng-non-bindable', function() { + expect(element(by.binding('1 + 2')).getText()).toContain('3'); + expect(element.all(by.css('div')).last().getText()).toMatch(/1 \+ 2/); + }); + +
+ */ + var ngNonBindableDirective = ngDirective({ + terminal: true, + priority: 1000 + }); + + /** + * @ngdoc directive + * @name ngPluralize + * @restrict EA + * + * @description + * `ngPluralize` is a directive that displays messages according to en-US localization rules. + * These rules are bundled with angular.js, but can be overridden + * (see {@link guide/i18n Angular i18n} dev guide). You configure ngPluralize directive + * by specifying the mappings between + * [plural categories](http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html) + * and the strings to be displayed. + * + * # Plural categories and explicit number rules + * There are two + * [plural categories](http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html) + * in Angular's default en-US locale: "one" and "other". + * + * While a plural category may match many numbers (for example, in en-US locale, "other" can match + * any number that is not 1), an explicit number rule can only match one number. For example, the + * explicit number rule for "3" matches the number 3. There are examples of plural categories + * and explicit number rules throughout the rest of this documentation. + * + * # Configuring ngPluralize + * You configure ngPluralize by providing 2 attributes: `count` and `when`. + * You can also provide an optional attribute, `offset`. + * + * The value of the `count` attribute can be either a string or an {@link guide/expression + * Angular expression}; these are evaluated on the current scope for its bound value. + * + * The `when` attribute specifies the mappings between plural categories and the actual + * string to be displayed. The value of the attribute should be a JSON object. + * + * The following example shows how to configure ngPluralize: + * + * ```html + * + * + *``` + * + * In the example, `"0: Nobody is viewing."` is an explicit number rule. If you did not + * specify this rule, 0 would be matched to the "other" category and "0 people are viewing" + * would be shown instead of "Nobody is viewing". You can specify an explicit number rule for + * other numbers, for example 12, so that instead of showing "12 people are viewing", you can + * show "a dozen people are viewing". + * + * You can use a set of closed braces (`{}`) as a placeholder for the number that you want substituted + * into pluralized strings. In the previous example, Angular will replace `{}` with + * `{{personCount}}`. The closed braces `{}` is a placeholder + * for {{numberExpression}}. + * + * # Configuring ngPluralize with offset + * The `offset` attribute allows further customization of pluralized text, which can result in + * a better user experience. For example, instead of the message "4 people are viewing this document", + * you might display "John, Kate and 2 others are viewing this document". + * The offset attribute allows you to offset a number by any desired value. + * Let's take a look at an example: + * + * ```html + * + * + * ``` + * + * Notice that we are still using two plural categories(one, other), but we added + * three explicit number rules 0, 1 and 2. + * When one person, perhaps John, views the document, "John is viewing" will be shown. + * When three people view the document, no explicit number rule is found, so + * an offset of 2 is taken off 3, and Angular uses 1 to decide the plural category. + * In this case, plural category 'one' is matched and "John, Mary and one other person are viewing" + * is shown. + * + * Note that when you specify offsets, you must provide explicit number rules for + * numbers from 0 up to and including the offset. If you use an offset of 3, for example, + * you must provide explicit number rules for 0, 1, 2 and 3. You must also provide plural strings for + * plural categories "one" and "other". + * + * @param {string|expression} count The variable to be bound to. + * @param {string} when The mapping between plural category to its corresponding strings. + * @param {number=} offset Offset to deduct from the total number. + * + * @example + + + +
+ Person 1:
+ Person 2:
+ Number of People:
+ + + Without Offset: + +
+ + + With Offset(2): + + +
+
+ + it('should show correct pluralized string', function() { + var withoutOffset = element.all(by.css('ng-pluralize')).get(0); + var withOffset = element.all(by.css('ng-pluralize')).get(1); + var countInput = element(by.model('personCount')); + + expect(withoutOffset.getText()).toEqual('1 person is viewing.'); + expect(withOffset.getText()).toEqual('Igor is viewing.'); + + countInput.clear(); + countInput.sendKeys('0'); + + expect(withoutOffset.getText()).toEqual('Nobody is viewing.'); + expect(withOffset.getText()).toEqual('Nobody is viewing.'); + + countInput.clear(); + countInput.sendKeys('2'); + + expect(withoutOffset.getText()).toEqual('2 people are viewing.'); + expect(withOffset.getText()).toEqual('Igor and Misko are viewing.'); + + countInput.clear(); + countInput.sendKeys('3'); + + expect(withoutOffset.getText()).toEqual('3 people are viewing.'); + expect(withOffset.getText()).toEqual('Igor, Misko and one other person are viewing.'); + + countInput.clear(); + countInput.sendKeys('4'); + + expect(withoutOffset.getText()).toEqual('4 people are viewing.'); + expect(withOffset.getText()).toEqual('Igor, Misko and 2 other people are viewing.'); + }); + it('should show data-bound names', function() { + var withOffset = element.all(by.css('ng-pluralize')).get(1); + var personCount = element(by.model('personCount')); + var person1 = element(by.model('person1')); + var person2 = element(by.model('person2')); + personCount.clear(); + personCount.sendKeys('4'); + person1.clear(); + person1.sendKeys('Di'); + person2.clear(); + person2.sendKeys('Vojta'); + expect(withOffset.getText()).toEqual('Di, Vojta and 2 other people are viewing.'); + }); + +
+ */ + var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interpolate) { + var BRACE = /{}/g; + return { + restrict: 'EA', + link: function(scope, element, attr) { + var numberExp = attr.count, + whenExp = attr.$attr.when && element.attr(attr.$attr.when), // we have {{}} in attrs + offset = attr.offset || 0, + whens = scope.$eval(whenExp) || {}, + whensExpFns = {}, + startSymbol = $interpolate.startSymbol(), + endSymbol = $interpolate.endSymbol(), + isWhen = /^when(Minus)?(.+)$/; + + forEach(attr, function(expression, attributeName) { + if (isWhen.test(attributeName)) { + whens[lowercase(attributeName.replace('when', '').replace('Minus', '-'))] = + element.attr(attr.$attr[attributeName]); + } + }); + forEach(whens, function(expression, key) { + whensExpFns[key] = + $interpolate(expression.replace(BRACE, startSymbol + numberExp + '-' + + offset + endSymbol)); + }); + + scope.$watch(function ngPluralizeWatch() { + var value = parseFloat(scope.$eval(numberExp)); + + if (!isNaN(value)) { + //if explicit number rule such as 1, 2, 3... is defined, just use it. Otherwise, + //check it against pluralization rules in $locale service + if (!(value in whens)) value = $locale.pluralCat(value - offset); + return whensExpFns[value](scope, element, true); + } else { + return ''; + } + }, function ngPluralizeWatchAction(newVal) { + element.text(newVal); + }); + } + }; + }]; + + /** + * @ngdoc directive + * @name ngRepeat + * + * @description + * The `ngRepeat` directive instantiates a template once per item from a collection. Each template + * instance gets its own scope, where the given loop variable is set to the current collection item, + * and `$index` is set to the item index or key. + * + * Special properties are exposed on the local scope of each template instance, including: + * + * | Variable | Type | Details | + * |-----------|-----------------|-----------------------------------------------------------------------------| + * | `$index` | {@type number} | iterator offset of the repeated element (0..length-1) | + * | `$first` | {@type boolean} | true if the repeated element is first in the iterator. | + * | `$middle` | {@type boolean} | true if the repeated element is between the first and last in the iterator. | + * | `$last` | {@type boolean} | true if the repeated element is last in the iterator. | + * | `$even` | {@type boolean} | true if the iterator position `$index` is even (otherwise false). | + * | `$odd` | {@type boolean} | true if the iterator position `$index` is odd (otherwise false). | + * + * Creating aliases for these properties is possible with {@link ng.directive:ngInit `ngInit`}. + * This may be useful when, for instance, nesting ngRepeats. + * + * # Special repeat start and end points + * To repeat a series of elements instead of just one parent element, ngRepeat (as well as other ng directives) supports extending + * the range of the repeater by defining explicit start and end points by using **ng-repeat-start** and **ng-repeat-end** respectively. + * The **ng-repeat-start** directive works the same as **ng-repeat**, but will repeat all the HTML code (including the tag it's defined on) + * up to and including the ending HTML tag where **ng-repeat-end** is placed. + * + * The example below makes use of this feature: + * ```html + *
+ * Header {{ item }} + *
+ *
+ * Body {{ item }} + *
+ *
+ * Footer {{ item }} + *
+ * ``` + * + * And with an input of {@type ['A','B']} for the items variable in the example above, the output will evaluate to: + * ```html + *
+ * Header A + *
+ *
+ * Body A + *
+ *
+ * Footer A + *
+ *
+ * Header B + *
+ *
+ * Body B + *
+ *
+ * Footer B + *
+ * ``` + * + * The custom start and end points for ngRepeat also support all other HTML directive syntax flavors provided in AngularJS (such + * as **data-ng-repeat-start**, **x-ng-repeat-start** and **ng:repeat-start**). + * + * @animations + * **.enter** - when a new item is added to the list or when an item is revealed after a filter + * + * **.leave** - when an item is removed from the list or when an item is filtered out + * + * **.move** - when an adjacent item is filtered out causing a reorder or when the item contents are reordered + * + * @element ANY + * @scope + * @priority 1000 + * @param {repeat_expression} ngRepeat The expression indicating how to enumerate a collection. These + * formats are currently supported: + * + * * `variable in expression` – where variable is the user defined loop variable and `expression` + * is a scope expression giving the collection to enumerate. + * + * For example: `album in artist.albums`. + * + * * `(key, value) in expression` – where `key` and `value` can be any user defined identifiers, + * and `expression` is the scope expression giving the collection to enumerate. + * + * For example: `(name, age) in {'adam':10, 'amalie':12}`. + * + * * `variable in expression track by tracking_expression` – You can also provide an optional tracking function + * which can be used to associate the objects in the collection with the DOM elements. If no tracking function + * is specified the ng-repeat associates elements by identity in the collection. It is an error to have + * more than one tracking function to resolve to the same key. (This would mean that two distinct objects are + * mapped to the same DOM element, which is not possible.) Filters should be applied to the expression, + * before specifying a tracking expression. + * + * For example: `item in items` is equivalent to `item in items track by $id(item)`. This implies that the DOM elements + * will be associated by item identity in the array. + * + * For example: `item in items track by $id(item)`. A built in `$id()` function can be used to assign a unique + * `$$hashKey` property to each item in the array. This property is then used as a key to associated DOM elements + * with the corresponding item in the array by identity. Moving the same object in array would move the DOM + * element in the same way in the DOM. + * + * For example: `item in items track by item.id` is a typical pattern when the items come from the database. In this + * case the object identity does not matter. Two objects are considered equivalent as long as their `id` + * property is same. + * + * For example: `item in items | filter:searchText track by item.id` is a pattern that might be used to apply a filter + * to items in conjunction with a tracking expression. + * + * @example + * This example initializes the scope to a list of names and + * then uses `ngRepeat` to display every person: + + +
+ I have {{friends.length}} friends. They are: + +
    +
  • + [{{$index + 1}}] {{friend.name}} who is {{friend.age}} years old. +
  • +
+
+
+ + .example-animate-container { + background:white; + border:1px solid black; + list-style:none; + margin:0; + padding:0 10px; + } + + .animate-repeat { + line-height:40px; + list-style:none; + box-sizing:border-box; + } + + .animate-repeat.ng-move, + .animate-repeat.ng-enter, + .animate-repeat.ng-leave { + -webkit-transition:all linear 0.5s; + transition:all linear 0.5s; + } + + .animate-repeat.ng-leave.ng-leave-active, + .animate-repeat.ng-move, + .animate-repeat.ng-enter { + opacity:0; + max-height:0; + } + + .animate-repeat.ng-leave, + .animate-repeat.ng-move.ng-move-active, + .animate-repeat.ng-enter.ng-enter-active { + opacity:1; + max-height:40px; + } + + + var friends = element.all(by.repeater('friend in friends')); + + it('should render initial data set', function() { + expect(friends.count()).toBe(10); + expect(friends.get(0).getText()).toEqual('[1] John who is 25 years old.'); + expect(friends.get(1).getText()).toEqual('[2] Jessie who is 30 years old.'); + expect(friends.last().getText()).toEqual('[10] Samantha who is 60 years old.'); + expect(element(by.binding('friends.length')).getText()) + .toMatch("I have 10 friends. They are:"); + }); + + it('should update repeater when filter predicate changes', function() { + expect(friends.count()).toBe(10); + + element(by.model('q')).sendKeys('ma'); + + expect(friends.count()).toBe(2); + expect(friends.get(0).getText()).toEqual('[1] Mary who is 28 years old.'); + expect(friends.last().getText()).toEqual('[2] Samantha who is 60 years old.'); + }); + +
+ */ + var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { + var NG_REMOVED = '$$NG_REMOVED'; + var ngRepeatMinErr = minErr('ngRepeat'); + return { + transclude: 'element', + priority: 1000, + terminal: true, + $$tlb: true, + link: function($scope, $element, $attr, ctrl, $transclude) { + var expression = $attr.ngRepeat; + var match = expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/), + trackByExp, trackByExpGetter, trackByIdExpFn, trackByIdArrayFn, trackByIdObjFn, + lhs, rhs, valueIdentifier, keyIdentifier, + hashFnLocals = { + $id: hashKey + }; + + if (!match) { + throw ngRepeatMinErr('iexp', "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.", + expression); + } + + lhs = match[1]; + rhs = match[2]; + trackByExp = match[3]; + + if (trackByExp) { + trackByExpGetter = $parse(trackByExp); + trackByIdExpFn = function(key, value, index) { + // assign key, value, and $index to the locals so that they can be used in hash functions + if (keyIdentifier) hashFnLocals[keyIdentifier] = key; + hashFnLocals[valueIdentifier] = value; + hashFnLocals.$index = index; + return trackByExpGetter($scope, hashFnLocals); + }; + } else { + trackByIdArrayFn = function(key, value) { + return hashKey(value); + }; + trackByIdObjFn = function(key) { + return key; + }; + } + + match = lhs.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/); + if (!match) { + throw ngRepeatMinErr('iidexp', "'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.", + lhs); + } + valueIdentifier = match[3] || match[1]; + keyIdentifier = match[2]; + + // Store a list of elements from previous run. This is a hash where key is the item from the + // iterator, and the value is objects with following properties. + // - scope: bound scope + // - element: previous element. + // - index: position + var lastBlockMap = {}; + + //watch props + $scope.$watchCollection(rhs, function ngRepeatAction(collection) { + var index, length, + previousNode = $element[0], // current position of the node + nextNode, + // Same as lastBlockMap but it has the current state. It will become the + // lastBlockMap on the next iteration. + nextBlockMap = {}, + arrayLength, + childScope, + key, value, // key/value of iteration + trackById, + trackByIdFn, + collectionKeys, + block, // last object information {scope, element, id} + nextBlockOrder = [], + elementsToRemove; + + + if (isArrayLike(collection)) { + collectionKeys = collection; + trackByIdFn = trackByIdExpFn || trackByIdArrayFn; + } else { + trackByIdFn = trackByIdExpFn || trackByIdObjFn; + // if object, extract keys, sort them and use to determine order of iteration over obj props + collectionKeys = []; + for (key in collection) { + if (collection.hasOwnProperty(key) && key.charAt(0) != '$') { + collectionKeys.push(key); + } + } + collectionKeys.sort(); + } + + arrayLength = collectionKeys.length; + + // locate existing items + length = nextBlockOrder.length = collectionKeys.length; + for (index = 0; index < length; index++) { + key = (collection === collectionKeys) ? index : collectionKeys[index]; + value = collection[key]; + trackById = trackByIdFn(key, value, index); + assertNotHasOwnProperty(trackById, '`track by` id'); + if (lastBlockMap.hasOwnProperty(trackById)) { + block = lastBlockMap[trackById]; + delete lastBlockMap[trackById]; + nextBlockMap[trackById] = block; + nextBlockOrder[index] = block; + } else if (nextBlockMap.hasOwnProperty(trackById)) { + // restore lastBlockMap + forEach(nextBlockOrder, function(block) { + if (block && block.scope) lastBlockMap[block.id] = block; + }); + // This is a duplicate and we need to throw an error + throw ngRepeatMinErr('dupes', "Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}", + expression, trackById); + } else { + // new never before seen block + nextBlockOrder[index] = { + id: trackById + }; + nextBlockMap[trackById] = false; + } + } + + // remove existing items + for (key in lastBlockMap) { + // lastBlockMap is our own object so we don't need to use special hasOwnPropertyFn + if (lastBlockMap.hasOwnProperty(key)) { + block = lastBlockMap[key]; + elementsToRemove = getBlockElements(block.clone); + $animate.leave(elementsToRemove); + forEach(elementsToRemove, function(element) { + element[NG_REMOVED] = true; + }); + block.scope.$destroy(); + } + } + + // we are not using forEach for perf reasons (trying to avoid #call) + for (index = 0, length = collectionKeys.length; index < length; index++) { + key = (collection === collectionKeys) ? index : collectionKeys[index]; + value = collection[key]; + block = nextBlockOrder[index]; + if (nextBlockOrder[index - 1]) previousNode = getBlockEnd(nextBlockOrder[index - 1]); + + if (block.scope) { + // if we have already seen this object, then we need to reuse the + // associated scope/element + childScope = block.scope; + + nextNode = previousNode; + do { + nextNode = nextNode.nextSibling; + } while (nextNode && nextNode[NG_REMOVED]); + + if (getBlockStart(block) != nextNode) { + // existing item which got moved + $animate.move(getBlockElements(block.clone), null, jqLite(previousNode)); + } + previousNode = getBlockEnd(block); + } else { + // new item which we don't know about + childScope = $scope.$new(); + } + + childScope[valueIdentifier] = value; + if (keyIdentifier) childScope[keyIdentifier] = key; + childScope.$index = index; + childScope.$first = (index === 0); + childScope.$last = (index === (arrayLength - 1)); + childScope.$middle = !(childScope.$first || childScope.$last); + // jshint bitwise: false + childScope.$odd = !(childScope.$even = (index & 1) === 0); + // jshint bitwise: true + + if (!block.scope) { + $transclude(childScope, function(clone) { + clone[clone.length++] = document.createComment(' end ngRepeat: ' + expression + ' '); + $animate.enter(clone, null, jqLite(previousNode)); + previousNode = clone; + block.scope = childScope; + // Note: We only need the first/last node of the cloned nodes. + // However, we need to keep the reference to the jqlite wrapper as it might be changed later + // by a directive with templateUrl when its template arrives. + block.clone = clone; + nextBlockMap[block.id] = block; + }); + } + } + lastBlockMap = nextBlockMap; + }); + } + }; + + function getBlockStart(block) { + return block.clone[0]; + } + + function getBlockEnd(block) { + return block.clone[block.clone.length - 1]; + } + }]; + + /** + * @ngdoc directive + * @name ngShow + * + * @description + * The `ngShow` directive shows or hides the given HTML element based on the expression + * provided to the ngShow attribute. The element is shown or hidden by removing or adding + * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined + * in AngularJS and sets the display style to none (using an !important flag). + * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}). + * + * ```html + * + *
+ * + * + *
+ * ``` + * + * When the ngShow expression evaluates to false then the ng-hide CSS class is added to the class attribute + * on the element causing it to become hidden. When true, the ng-hide CSS class is removed + * from the element causing the element not to appear hidden. + * + *
+ * **Note:** Here is a list of values that ngShow will consider as a falsy value (case insensitive):
+ * "f" / "0" / "false" / "no" / "n" / "[]" + *
+ * + * ## Why is !important used? + * + * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector + * can be easily overridden by heavier selectors. For example, something as simple + * as changing the display style on a HTML list item would make hidden elements appear visible. + * This also becomes a bigger issue when dealing with CSS frameworks. + * + * By using !important, the show and hide behavior will work as expected despite any clash between CSS selector + * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the + * styling to change how to hide an element then it is just a matter of using !important in their own CSS code. + * + * ### Overriding .ng-hide + * + * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change + * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide` + * class in CSS: + * + * ```css + * .ng-hide { + * //this is just another form of hiding an element + * display:block!important; + * position:absolute; + * top:-9999px; + * left:-9999px; + * } + * ``` + * + * By default you don't need to override in CSS anything and the animations will work around the display style. + * + * ## A note about animations with ngShow + * + * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression + * is true and false. This system works like the animation system present with ngClass except that + * you must also include the !important flag to override the display property + * so that you can perform an animation when the element is hidden during the time of the animation. + * + * ```css + * // + * //a working example can be found at the bottom of this page + * // + * .my-element.ng-hide-add, .my-element.ng-hide-remove { + * transition:0.5s linear all; + * } + * + * .my-element.ng-hide-add { ... } + * .my-element.ng-hide-add.ng-hide-add-active { ... } + * .my-element.ng-hide-remove { ... } + * .my-element.ng-hide-remove.ng-hide-remove-active { ... } + * ``` + * + * Keep in mind that, as of AngularJS version 1.2.17 (and 1.3.0-beta.11), there is no need to change the display + * property to block during animation states--ngAnimate will handle the style toggling automatically for you. + * + * @animations + * addClass: .ng-hide - happens after the ngShow expression evaluates to a truthy value and the just before contents are set to visible + * removeClass: .ng-hide - happens after the ngShow expression evaluates to a non truthy value and just before the contents are set to hidden + * + * @element ANY + * @param {expression} ngShow If the {@link guide/expression expression} is truthy + * then the element is shown or hidden respectively. + * + * @example + + + Click me:
+
+ Show: +
+ I show up when your checkbox is checked. +
+
+
+ Hide: +
+ I hide when your checkbox is checked. +
+
+
+ + @import url(//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css); + + + .animate-show { + -webkit-transition:all linear 0.5s; + transition:all linear 0.5s; + line-height:20px; + opacity:1; + padding:10px; + border:1px solid black; + background:white; + } + + .animate-show.ng-hide { + line-height:0; + opacity:0; + padding:0 10px; + } + + .check-element { + padding:10px; + border:1px solid black; + background:white; + } + + + var thumbsUp = element(by.css('span.glyphicon-thumbs-up')); + var thumbsDown = element(by.css('span.glyphicon-thumbs-down')); + + it('should check ng-show / ng-hide', function() { + expect(thumbsUp.isDisplayed()).toBeFalsy(); + expect(thumbsDown.isDisplayed()).toBeTruthy(); + + element(by.model('checked')).click(); + + expect(thumbsUp.isDisplayed()).toBeTruthy(); + expect(thumbsDown.isDisplayed()).toBeFalsy(); + }); + +
+ */ + var ngShowDirective = ['$animate', function($animate) { + return function(scope, element, attr) { + scope.$watch(attr.ngShow, function ngShowWatchAction(value) { + $animate[toBoolean(value) ? 'removeClass' : 'addClass'](element, 'ng-hide'); + }); + }; + }]; + + + /** + * @ngdoc directive + * @name ngHide + * + * @description + * The `ngHide` directive shows or hides the given HTML element based on the expression + * provided to the ngHide attribute. The element is shown or hidden by removing or adding + * the `ng-hide` CSS class onto the element. The `.ng-hide` CSS class is predefined + * in AngularJS and sets the display style to none (using an !important flag). + * For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}). + * + * ```html + * + *
+ * + * + *
+ * ``` + * + * When the ngHide expression evaluates to true then the .ng-hide CSS class is added to the class attribute + * on the element causing it to become hidden. When false, the ng-hide CSS class is removed + * from the element causing the element not to appear hidden. + * + *
+ * **Note:** Here is a list of values that ngHide will consider as a falsy value (case insensitive):
+ * "f" / "0" / "false" / "no" / "n" / "[]" + *
+ * + * ## Why is !important used? + * + * You may be wondering why !important is used for the .ng-hide CSS class. This is because the `.ng-hide` selector + * can be easily overridden by heavier selectors. For example, something as simple + * as changing the display style on a HTML list item would make hidden elements appear visible. + * This also becomes a bigger issue when dealing with CSS frameworks. + * + * By using !important, the show and hide behavior will work as expected despite any clash between CSS selector + * specificity (when !important isn't used with any conflicting styles). If a developer chooses to override the + * styling to change how to hide an element then it is just a matter of using !important in their own CSS code. + * + * ### Overriding .ng-hide + * + * By default, the `.ng-hide` class will style the element with `display:none!important`. If you wish to change + * the hide behavior with ngShow/ngHide then this can be achieved by restating the styles for the `.ng-hide` + * class in CSS: + * + * ```css + * .ng-hide { + * //this is just another form of hiding an element + * display:block!important; + * position:absolute; + * top:-9999px; + * left:-9999px; + * } + * ``` + * + * By default you don't need to override in CSS anything and the animations will work around the display style. + * + * ## A note about animations with ngHide + * + * Animations in ngShow/ngHide work with the show and hide events that are triggered when the directive expression + * is true and false. This system works like the animation system present with ngClass, except that the `.ng-hide` + * CSS class is added and removed for you instead of your own CSS class. + * + * ```css + * // + * //a working example can be found at the bottom of this page + * // + * .my-element.ng-hide-add, .my-element.ng-hide-remove { + * transition:0.5s linear all; + * } + * + * .my-element.ng-hide-add { ... } + * .my-element.ng-hide-add.ng-hide-add-active { ... } + * .my-element.ng-hide-remove { ... } + * .my-element.ng-hide-remove.ng-hide-remove-active { ... } + * ``` + * + * Keep in mind that, as of AngularJS version 1.2.17 (and 1.3.0-beta.11), there is no need to change the display + * property to block during animation states--ngAnimate will handle the style toggling automatically for you. + * + * @animations + * removeClass: .ng-hide - happens after the ngHide expression evaluates to a truthy value and just before the contents are set to hidden + * addClass: .ng-hide - happens after the ngHide expression evaluates to a non truthy value and just before the contents are set to visible + * + * @element ANY + * @param {expression} ngHide If the {@link guide/expression expression} is truthy then + * the element is shown or hidden respectively. + * + * @example + + + Click me:
+
+ Show: +
+ I show up when your checkbox is checked. +
+
+
+ Hide: +
+ I hide when your checkbox is checked. +
+
+
+ + @import url(//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css); + + + .animate-hide { + -webkit-transition:all linear 0.5s; + transition:all linear 0.5s; + line-height:20px; + opacity:1; + padding:10px; + border:1px solid black; + background:white; + } + + .animate-hide.ng-hide { + line-height:0; + opacity:0; + padding:0 10px; + } + + .check-element { + padding:10px; + border:1px solid black; + background:white; + } + + + var thumbsUp = element(by.css('span.glyphicon-thumbs-up')); + var thumbsDown = element(by.css('span.glyphicon-thumbs-down')); + + it('should check ng-show / ng-hide', function() { + expect(thumbsUp.isDisplayed()).toBeFalsy(); + expect(thumbsDown.isDisplayed()).toBeTruthy(); + + element(by.model('checked')).click(); + + expect(thumbsUp.isDisplayed()).toBeTruthy(); + expect(thumbsDown.isDisplayed()).toBeFalsy(); + }); + +
+ */ + var ngHideDirective = ['$animate', function($animate) { + return function(scope, element, attr) { + scope.$watch(attr.ngHide, function ngHideWatchAction(value) { + $animate[toBoolean(value) ? 'addClass' : 'removeClass'](element, 'ng-hide'); + }); + }; + }]; + + /** + * @ngdoc directive + * @name ngStyle + * @restrict AC + * + * @description + * The `ngStyle` directive allows you to set CSS style on an HTML element conditionally. + * + * @element ANY + * @param {expression} ngStyle + * + * {@link guide/expression Expression} which evals to an + * object whose keys are CSS style names and values are corresponding values for those CSS + * keys. + * + * Since some CSS style names are not valid keys for an object, they must be quoted. + * See the 'background-color' style in the example below. + * + * @example + + + + + +
+ Sample Text +
myStyle={{myStyle}}
+
+ + span { + color: black; + } + + + var colorSpan = element(by.css('span')); + + it('should check ng-style', function() { + expect(colorSpan.getCssValue('color')).toBe('rgba(0, 0, 0, 1)'); + element(by.css('input[value=\'set color\']')).click(); + expect(colorSpan.getCssValue('color')).toBe('rgba(255, 0, 0, 1)'); + element(by.css('input[value=clear]')).click(); + expect(colorSpan.getCssValue('color')).toBe('rgba(0, 0, 0, 1)'); + }); + +
+ */ + var ngStyleDirective = ngDirective(function(scope, element, attr) { + scope.$watch(attr.ngStyle, function ngStyleWatchAction(newStyles, oldStyles) { + if (oldStyles && (newStyles !== oldStyles)) { + forEach(oldStyles, function(val, style) { + element.css(style, ''); + }); + } + if (newStyles) element.css(newStyles); + }, true); + }); + + /** + * @ngdoc directive + * @name ngSwitch + * @restrict EA + * + * @description + * The `ngSwitch` directive is used to conditionally swap DOM structure on your template based on a scope expression. + * Elements within `ngSwitch` but without `ngSwitchWhen` or `ngSwitchDefault` directives will be preserved at the location + * as specified in the template. + * + * The directive itself works similar to ngInclude, however, instead of downloading template code (or loading it + * from the template cache), `ngSwitch` simply chooses one of the nested elements and makes it visible based on which element + * matches the value obtained from the evaluated expression. In other words, you define a container element + * (where you place the directive), place an expression on the **`on="..."` attribute** + * (or the **`ng-switch="..."` attribute**), define any inner elements inside of the directive and place + * a when attribute per element. The when attribute is used to inform ngSwitch which element to display when the on + * expression is evaluated. If a matching expression is not found via a when attribute then an element with the default + * attribute is displayed. + * + *
+ * Be aware that the attribute values to match against cannot be expressions. They are interpreted + * as literal string values to match against. + * For example, **`ng-switch-when="someVal"`** will match against the string `"someVal"` not against the + * value of the expression `$scope.someVal`. + *
+ + * @animations + * enter - happens after the ngSwitch contents change and the matched child element is placed inside the container + * leave - happens just after the ngSwitch contents change and just before the former contents are removed from the DOM + * + * @usage + * + * ``` + * + * ... + * ... + * ... + * + * ``` + * + * + * @scope + * @priority 800 + * @param {*} ngSwitch|on expression to match against ng-switch-when. + * On child elements add: + * + * * `ngSwitchWhen`: the case statement to match against. If match then this + * case will be displayed. If the same match appears multiple times, all the + * elements will be displayed. + * * `ngSwitchDefault`: the default case when no other case match. If there + * are multiple default cases, all of them will be displayed when no other + * case match. + * + * + * @example + + +
+ + selection={{selection}} +
+
+
Settings Div
+
Home Span
+
default
+
+
+
+ + angular.module('switchExample', ['ngAnimate']) + .controller('ExampleController', ['$scope', function($scope) { + $scope.items = ['settings', 'home', 'other']; + $scope.selection = $scope.items[0]; + }]); + + + .animate-switch-container { + position:relative; + background:white; + border:1px solid black; + height:40px; + overflow:hidden; + } + + .animate-switch { + padding:10px; + } + + .animate-switch.ng-animate { + -webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s; + + position:absolute; + top:0; + left:0; + right:0; + bottom:0; + } + + .animate-switch.ng-leave.ng-leave-active, + .animate-switch.ng-enter { + top:-50px; + } + .animate-switch.ng-leave, + .animate-switch.ng-enter.ng-enter-active { + top:0; + } + + + var switchElem = element(by.css('[ng-switch]')); + var select = element(by.model('selection')); + + it('should start in settings', function() { + expect(switchElem.getText()).toMatch(/Settings Div/); + }); + it('should change to home', function() { + select.all(by.css('option')).get(1).click(); + expect(switchElem.getText()).toMatch(/Home Span/); + }); + it('should select default', function() { + select.all(by.css('option')).get(2).click(); + expect(switchElem.getText()).toMatch(/default/); + }); + +
+ */ + var ngSwitchDirective = ['$animate', function($animate) { + return { + restrict: 'EA', + require: 'ngSwitch', + + // asks for $scope to fool the BC controller module + controller: ['$scope', function ngSwitchController() { + this.cases = {}; + }], + link: function(scope, element, attr, ngSwitchController) { + var watchExpr = attr.ngSwitch || attr.on, + selectedTranscludes = [], + selectedElements = [], + previousElements = [], + selectedScopes = []; + + scope.$watch(watchExpr, function ngSwitchWatchAction(value) { + var i, ii; + for (i = 0, ii = previousElements.length; i < ii; ++i) { + previousElements[i].remove(); + } + previousElements.length = 0; + + for (i = 0, ii = selectedScopes.length; i < ii; ++i) { + var selected = selectedElements[i]; + selectedScopes[i].$destroy(); + previousElements[i] = selected; + $animate.leave(selected, function() { + previousElements.splice(i, 1); + }); + } + + selectedElements.length = 0; + selectedScopes.length = 0; + + if ((selectedTranscludes = ngSwitchController.cases['!' + value] || ngSwitchController.cases['?'])) { + scope.$eval(attr.change); + forEach(selectedTranscludes, function(selectedTransclude) { + var selectedScope = scope.$new(); + selectedScopes.push(selectedScope); + selectedTransclude.transclude(selectedScope, function(caseElement) { + var anchor = selectedTransclude.element; + + selectedElements.push(caseElement); + $animate.enter(caseElement, anchor.parent(), anchor); + }); + }); + } + }); + } + }; + }]; + + var ngSwitchWhenDirective = ngDirective({ + transclude: 'element', + priority: 800, + require: '^ngSwitch', + link: function(scope, element, attrs, ctrl, $transclude) { + ctrl.cases['!' + attrs.ngSwitchWhen] = (ctrl.cases['!' + attrs.ngSwitchWhen] || []); + ctrl.cases['!' + attrs.ngSwitchWhen].push({ + transclude: $transclude, + element: element + }); + } + }); + + var ngSwitchDefaultDirective = ngDirective({ + transclude: 'element', + priority: 800, + require: '^ngSwitch', + link: function(scope, element, attr, ctrl, $transclude) { + ctrl.cases['?'] = (ctrl.cases['?'] || []); + ctrl.cases['?'].push({ + transclude: $transclude, + element: element + }); + } + }); + + /** + * @ngdoc directive + * @name ngTransclude + * @restrict AC + * + * @description + * Directive that marks the insertion point for the transcluded DOM of the nearest parent directive that uses transclusion. + * + * Any existing content of the element that this directive is placed on will be removed before the transcluded content is inserted. + * + * @element ANY + * + * @example + + + +
+
+
+ {{text}} +
+
+ + it('should have transcluded', function() { + var titleElement = element(by.model('title')); + titleElement.clear(); + titleElement.sendKeys('TITLE'); + var textElement = element(by.model('text')); + textElement.clear(); + textElement.sendKeys('TEXT'); + expect(element(by.binding('title')).getText()).toEqual('TITLE'); + expect(element(by.binding('text')).getText()).toEqual('TEXT'); + }); + +
+ * + */ + var ngTranscludeDirective = ngDirective({ + link: function($scope, $element, $attrs, controller, $transclude) { + if (!$transclude) { + throw minErr('ngTransclude')('orphan', + 'Illegal use of ngTransclude directive in the template! ' + + 'No parent directive that requires a transclusion found. ' + + 'Element: {0}', + startingTag($element)); + } + + $transclude(function(clone) { + $element.empty(); + $element.append(clone); + }); + } + }); + + /** + * @ngdoc directive + * @name script + * @restrict E + * + * @description + * Load the content of a ` + + Load inlined template +
+ + + it('should load template defined inside script tag', function() { + element(by.css('#tpl-link')).click(); + expect(element(by.css('#tpl-content')).getText()).toMatch(/Content of the template/); + }); + + + */ + var scriptDirective = ['$templateCache', function($templateCache) { + return { + restrict: 'E', + terminal: true, + compile: function(element, attr) { + if (attr.type == 'text/ng-template') { + var templateUrl = attr.id, + // IE is not consistent, in scripts we have to read .text but in other nodes we have to read .textContent + text = element[0].text; + + $templateCache.put(templateUrl, text); + } + } + }; + }]; + + var ngOptionsMinErr = minErr('ngOptions'); + /** + * @ngdoc directive + * @name select + * @restrict E + * + * @description + * HTML `SELECT` element with angular data-binding. + * + * # `ngOptions` + * + * The `ngOptions` attribute can be used to dynamically generate a list of `` + * DOM element. + * * `trackexpr`: Used when working with an array of objects. The result of this expression will be + * used to identify the objects in the array. The `trackexpr` will most likely refer to the + * `value` variable (e.g. `value.propertyName`). + * + * @example + + + +
+
    +
  • + Name: + [X] +
  • +
  • + [add] +
  • +
+
+ Color (null not allowed): +
+ + Color (null allowed): + + +
+ + Color grouped by shade: +
+ + + Select bogus.
+
+ Currently selected: {{ {selected_color:myColor} }} +
+
+
+
+ + it('should check ng-options', function() { + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('red'); + element.all(by.model('myColor')).first().click(); + element.all(by.css('select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('black'); + element(by.css('.nullable select[ng-model="myColor"]')).click(); + element.all(by.css('.nullable select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('null'); + }); + +
+ */ + + var ngOptionsDirective = valueFn({ + terminal: true + }); + // jshint maxlen: false + var selectDirective = ['$compile', '$parse', function($compile, $parse) { + //000011111111110000000000022222222220000000000000000000003333333333000000000000004444444444444440000000005555555555555550000000666666666666666000000000000000777777777700000000000000000008888888888 + var NG_OPTIONS_REGEXP = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/, + nullModelCtrl = { + $setViewValue: noop + }; + // jshint maxlen: 100 + + return { + restrict: 'E', + require: ['select', '?ngModel'], + controller: ['$element', '$scope', '$attrs', function($element, $scope, $attrs) { + var self = this, + optionsMap = {}, + ngModelCtrl = nullModelCtrl, + nullOption, + unknownOption; + + + self.databound = $attrs.ngModel; + + + self.init = function(ngModelCtrl_, nullOption_, unknownOption_) { + ngModelCtrl = ngModelCtrl_; + nullOption = nullOption_; + unknownOption = unknownOption_; + }; + + + self.addOption = function(value) { + assertNotHasOwnProperty(value, '"option value"'); + optionsMap[value] = true; + + if (ngModelCtrl.$viewValue == value) { + $element.val(value); + if (unknownOption.parent()) unknownOption.remove(); + } + }; + + + self.removeOption = function(value) { + if (this.hasOption(value)) { + delete optionsMap[value]; + if (ngModelCtrl.$viewValue == value) { + this.renderUnknownOption(value); + } + } + }; + + + self.renderUnknownOption = function(val) { + var unknownVal = '? ' + hashKey(val) + ' ?'; + unknownOption.val(unknownVal); + $element.prepend(unknownOption); + $element.val(unknownVal); + unknownOption.prop('selected', true); // needed for IE + }; + + + self.hasOption = function(value) { + return optionsMap.hasOwnProperty(value); + }; + + $scope.$on('$destroy', function() { + // disable unknown option so that we don't do work when the whole select is being destroyed + self.renderUnknownOption = noop; + }); + }], + + link: function(scope, element, attr, ctrls) { + // if ngModel is not defined, we don't need to do anything + if (!ctrls[1]) return; + + var selectCtrl = ctrls[0], + ngModelCtrl = ctrls[1], + multiple = attr.multiple, + optionsExp = attr.ngOptions, + nullOption = false, // if false, user will not be able to select it (used by ngOptions) + emptyOption, + // we can't just jqLite('